0 ) { // Lighter $rgb[$i] = round( $rgb[$i] * $percent ) + round( 255 * ( 1 - $percent ) ); } else { // Darker $positivePercent = $percent - ( $percent * 2 ); $rgb[$i] = round( $rgb[$i] * $positivePercent ) + round( 0 * ( 1 - $positivePercent ) ); } // In case rounding up causes us to go to 256 if ( $rgb[$i] > 255 ) { $rgb[$i] = 255; } } //// RBG to Hex $hex = ''; for( $i = 0; $i < 3; $i++ ) { // Convert the decimal digit to hex $hexDigit = dechex( $rgb[$i] ); // Add a leading zero if necessary if( strlen( $hexDigit ) == 1 ) { $hexDigit = "0" . $hexDigit; } // Append to the hex string $hex .= $hexDigit; } return $hash . $hex; } endif;