Funzione di luminanza del colore - Trucchi CSS

Anonim

Quando si approfondisce la teoria del colore, c'è qualcosa chiamato luminanza relativa del colore. Per dirla semplicemente, la luminanza di un colore definisce se la sua luminosità. Una luminanza di 1 significa che il colore è bianco. Al contrario, un punteggio di luminanza pari a 0 significa che il colore è nero.

Conoscere la luminanza di un colore può essere utile quando si ha a che fare con colori dinamici o casuali, al fine di fornire un colore di sfondo accurato se il colore è troppo luminoso o troppo scuro. Come regola generale, puoi considerare che un colore la cui luminanza è superiore a 0,7 sarà difficile da leggere su uno sfondo bianco.

Codice

/// 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); )

Utilizzo

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