Función de luminancia de color - Trucos CSS

Anonim

Al profundizar en la teoría del color, existe algo llamado luminancia de color relativa. En pocas palabras, la luminancia de un color define si su brillo. Una luminancia de 1 significa que el color es blanco. Por el contrario, una puntuación de luminancia de 0 significa que el color es negro.

Conocer la luminancia de un color puede resultar útil cuando se trata de colores dinámicos o aleatorios, a fin de proporcionar un color de fondo preciso si el color es demasiado brillante o demasiado oscuro. Como regla general, puede considerar que un color cuya luminancia sea superior a 0,7 será difícil de leer sobre un fondo blanco.

Código

/// Returns the luminance of `$color` as a float (between 0 and 1) /// 1 is pure white, 0 is pure black /// @param (Color) $color - Color /// @return (Number) /// @link http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef Reference @function luminance($color) ( $colors: ( 'red': red($color), 'green': green($color), 'blue': blue($color) ); @each $name, $value in $colors ( $adjusted: 0; $value: $value / 255; @if $value < 0.03928 ( $value: $value / 12.92; ) @else ( $value: ($value + .055) / 1.055; $value: pow($value, 2.4); ) $colors: map-merge($colors, ($name: $value)); ) @return (map-get($colors, 'red') * .2126) + (map-get($colors, 'green') * .7152) + (map-get($colors, 'blue') * .0722); )

Uso

$color: #BADA55; $luminance: luminance($color); // 0.6123778773