HSL рд╕реЗ Hex рдХрдиреНрд╡рд░реНрдЯрд░ рдХреНрдпрд╛ рд╣реИ?
рдпрд╣ рдЯреВрд▓ HSL рдореЙрдбрд▓ тАФ рдпрд╛рдиреА Hue (рд░рдВрдЧ), Saturation (рд╕рдВрддреГрдкреНрддрд┐) рдФрд░ Lightness (рдЪрдордХ) тАФ рдореЗрдВ рджрд░реНрд╢рд╛рдП рдЧрдП рдХрд┐рд╕реА рд░рдВрдЧ рдХреЛ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдиреЛрдЯреЗрд╢рди рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ CSS, рдбрд┐рдЬрд╝рд╛рдЗрди рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдФрд░ рд╡реЗрдм рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред HSL рдЗрдВрд╕рд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ Hue рд░рдВрдЧ-рдЪрдХреНрд░ рдкрд░ рд░рдВрдЧ рдЪреБрдирддрд╛ рд╣реИ, Saturation рдпрд╣ рддрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд░рдВрдЧ рдХрд┐рддрдирд╛ рдЧрд╣рд░рд╛-рдЪрдЯрдХ рд╣реИ, рдФрд░ Lightness рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдХрд┐рддрдирд╛ рд╣рд▓реНрдХрд╛ рдпрд╛ рдЧрд╛рдврд╝рд╛ рд╣реИред рд╡рд╣реАрдВ Hex (рдЬреИрд╕реЗ #3F7FBF) рд╡рд╣ рдлрд╝реЙрд░реНрдореЗрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рдЯреВрд▓ рдЕрд╕рд▓ рдореЗрдВ рдкрдврд╝рддреЗ рд╣реИрдВред
рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреИрд╕реЗ рдХрд░реЗрдВ
Hue рдХреЛ 0 рд╕реЗ 360 рдбрд┐рдЧреНрд░реА рдХреЗ рдмреАрдЪ, Saturation рдХреЛ 0 рд╕реЗ 100 рдкреНрд░рддрд┐рд╢рдд рдФрд░ Lightness рдХреЛ 0 рд╕реЗ 100 рдкреНрд░рддрд┐рд╢рдд рдХреЗ рдмреАрдЪ рдбрд╛рд▓реЗрдВ, рдлрд┐рд░ рддреБрд░рдВрдд рдирддреАрдЬреЗ рдореЗрдВ Hex рдХреЛрдб, RGB рдЪреИрдирд▓ рд╡реИрд▓реНрдпреВ рдФрд░ рдПрдХ рд▓рд╛рдЗрд╡ рдХрд▓рд░ рд╕реНрд╡реИрдЪ рджреЗрдЦреЗрдВред рдпрд╣ рдХрдиреНрд╡рд░реНрдЬрд╝рди рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рд░рдВрдЧ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ тАФ рдХреЛрдИ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВред
рдлрд╝реЙрд░реНрдореВрд▓рд╛ рд╕рдордЭреЗрдВ
рдХрдиреНрд╡рд░реНрдЬрд╝рди рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдХреНрд░реЛрдорд╛ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ: \( C = (1 - |2L - 1|)\cdot S \), рдЬрд╣рд╛рдБ S рдФрд░ L рдХреЛ 0тАУ1 рдХреЗ рдЕрдВрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рд╕рд╣рд╛рдпрдХ рдорд╛рди \( X = C\left(1 - \left|\left(\tfrac{H}{60}\bmod 2\right) - 1\right|\right) \) рдкреНрд░рд╛рдердорд┐рдХ рд░рдВрдЧреЛрдВ рдХреЗ рдмреАрдЪ рдХреЗ рдХреНрд░рдорд┐рдХ рдмрджрд▓рд╛рд╡ (рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ) рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдмреНрд░рд╛рдЗрдЯрдиреЗрд╕ рдСрдлрд╝рд╕реЗрдЯ \( m = L - \tfrac{C}{2} \) рдирддреАрдЬреЗ рдХреЛ рд╕рд╣реА рдЪрдордХ рддрдХ рдЙрдард╛рддрд╛ рд╣реИред Hue рдЬрд┐рд╕ 60┬░ рдХреЗ рдЦрдВрдб рдореЗрдВ рдкрдбрд╝рддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ (RтА▓,GтА▓,BтА▓) рдЪреИрдирд▓ C, X рдФрд░ 0 рдореЗрдВ рд╕реЗ рддрдп рд╣реЛрддреЗ рд╣реИрдВред рд╣рд░ рдЕрдВрддрд┐рдо рдЪреИрдирд▓ \( \text{round}((c^{\prime} + m)\cdot 255) \) рд╣реЛрддрд╛ рд╣реИ, рдФрд░ Hex рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмрд╕ R, G рдФрд░ B рдХреЗ рджреЛ-рдЕрдВрдХреАрдп рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдмрдирддреА рд╣реИред
$$\text{Hex} = \texttt{\#}\,\text{HH}_{R}\,\text{HH}_{G}\,\text{HH}_{B}$$$$\text{where}\quad \left\{ \begin{aligned} C &= (1 - |2L - 1|)\cdot S \\ X &= C\left(1 - \left|\left(\tfrac{H}{60}\bmod 2\right) - 1\right|\right) \\ m &= L - \tfrac{C}{2} \\ (R,G,B) &= \text{round}\big((R^{\prime}+m,\,G^{\prime}+m,\,B^{\prime}+m)\cdot 255\big) \\ H &= \text{Hue},\quad S = \dfrac{\text{Sat}}{100},\quad L = \dfrac{\text{Light}}{100} \end{aligned} \right.$$
рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг
HSL(210, 50%, 50%) рдХреЗ рд▓рд┐рдП: S = 0.5, L = 0.5, рддреЛ \( C = (1 - |0|)\cdot 0.5 = 0.5 \)ред \( H/60 = 3.5 \), рддреЛ \( (3.5 \bmod 2) = 1.5 \) рдФрд░ \( X = 0.5\cdot(1 - |0.5|) = 0.25 \)ред \( m = 0.5 - 0.25 = 0.25 \)ред Hue 210 рдЦрдВрдб 3 (180тАУ240) рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ (RтА▓,GтА▓,BтА▓) = (0, X, C)ред рддреЛ \( R = \text{round}(0.25\cdot 255) = 64 \), \( G = \text{round}(0.5\cdot 255) = 128 \), \( B = \text{round}(0.75\cdot 255) = 191 \) тЖТ #4080BFред
рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд╡рд╛рд▓
рдХреНрдпрд╛ Hue рдЪрд╛рд░реЛрдВ рдУрд░ рдШреВрдордХрд░ рд╡рд╛рдкрд╕ рдЖрддрд╛ рд╣реИ? рд╣рд╛рдБ тАФ 360 рдХрд╛ Hue рд╡рд╣реА рд▓рд╛рд▓ рд░рдВрдЧ рд╣реИ рдЬреЛ 0 рдХрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЯреВрд▓ рдХрд┐рд╕реА рднреА рд╡реИрд▓реНрдпреВ рдХреЛ 0тАУ360 рдХреА рд╕реАрдорд╛ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдХрд░ рджреЗрддрд╛ рд╣реИред
рдореЗрд░реЗ рдЪреИрдирд▓ рдХрднреА-рдХрднреА рдПрдХ рдЕрдВрдХ рд╕реЗ рдЕрд▓рдЧ рдХреНрдпреЛрдВ рджрд┐рдЦрддреЗ рд╣реИрдВ? рдирдЬрд╝рджреАрдХреА рдкреВрд░реНрдгрд╛рдВрдХ рддрдХ рд░рд╛рдЙрдВрдб рдХрд░рдиреЗ рд╕реЗ рдХрд┐рд╕реА рдЪреИрдирд▓ рдореЗрдВ ┬▒1 рдХрд╛ рдлрд╝рд░реНрдХ рдЖ рд╕рдХрддрд╛ рд╣реИ, рдЙрди рдЯреВрд▓реНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЬреЛ рд╡реИрд▓реНрдпреВ рдХреЛ рд╕реАрдзреЗ рдХрд╛рдЯ (truncate) рджреЗрддреЗ рд╣реИрдВ; рд░рд╛рдЙрдВрдб рдХрд░рдирд╛ рдЬрд╝реНрдпрд╛рджрд╛ рд╕рдЯреАрдХ рддрд░реАрдХрд╛ рд╣реИред
рдХреНрдпрд╛ рдЧреНрд░реЗ рд░рдВрдЧ рдмрди рд╕рдХрддрд╛ рд╣реИ? рд╣рд╛рдБ тАФ Saturation рдХреЛ 0 рдХрд░ рджреЗрдВ рдФрд░ рдХреЛрдИ рднреА Hue рд░рдЦреЗрдВ, рддреЛ рддреАрдиреЛрдВ рдЪреИрдирд▓ \( \text{round}(L\cdot 255) \) рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдВрдЧреЗ, рдЬрд┐рд╕рд╕реЗ рдПрдХ рдиреНрдпреВрдЯреНрд░рд▓ рдЧреНрд░реЗ рд░рдВрдЧ рдмрдирддрд╛ рд╣реИред