function layers_too_light_then_dark($color, $factor = 30) { if ('#ffffff' == layers_hex_lighter($color, 96)) { $color = layers_hex_darker($color, $factor / 3); } else { $color = layers_hex_lighter($color, $factor); } return $color; }
function layers_inline_button_styles($container_id = NULL, $type = 'background', $args = array()) { // Auto text color based on background color if (isset($args['button']['background-color']) && NULL !== layers_is_light_or_dark($args['button']['background-color'])) { // temporarily darken the background color, so we only switch text color if very light $background_darker = layers_hex_darker($args['button']['background-color'], 28); if ('light' == layers_is_light_or_dark($background_darker)) { $args['button']['color'] = 'rgba(0,0,0,.85)'; } else { if ('dark' == layers_is_light_or_dark($background_darker)) { $args['button']['color'] = '#FFFFFF'; } } } // Add styling for the standard colors layers_inline_styles($container_id, $type, $args); // Add styling for the hover colors if (isset($args['selectors'])) { if (!is_array($args['selectors'])) { // Make sure selectors is array if comma seperated string is passed $args['selectors'] = explode(',', $args['selectors']); $args['selectors'] = array_map('trim', $args['selectors']); } $hover_args = $args; foreach ($args['selectors'] as $selector) { $new_selectors[] = $selector . ':hover'; } $hover_args['selectors'] = $new_selectors; } // Generate a lighter text background color if (isset($args['button']['background-color'])) { $hover_args['button']['background-color'] = layers_hex_lighter($args['button']['background-color']); } // Apply hover colors if (isset($hover_args)) { layers_inline_styles($container_id, $type, $hover_args); } }