PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

Сравни способы модификации цвета и объясни, когда выбирать каждый вариант.

Продвинутые темы

Способы модификации цвета в CSS: изменение значения (hex/rgb/hsl), прозрачность (rgba/alpha), CSS-функции (`color-mix`, относительные цвета), фильтры, CSS-переменные. Выбор — по задаче.

Способы

Прямое значение

color: #6b46ff;
color: rgb(107, 70, 255);
color: hsl(252, 100%, 64%);

Прозрачность (alpha)

color: rgba(107, 70, 255, 0.5);
color: hsla(252, 100%, 64%, 0.5);
background: rgb(107 70 255 / 50%); /* современный синтаксис */

Когда: полупрозрачные оверлеи, тени.

HSL для вариаций

Удобно менять яркость/насыщенность, меняя одно число:

--base: 252 100% 64%;
color: hsl(var(--base));
color: hsl(252 100% 40%); /* темнее — меняем lightness */

Когда: генерировать оттенки (hover, темнее/светлее).

color-mix (современный)

color: color-mix(in srgb, blue 70%, white); /* смешать цвета */

Когда: смешивание, осветление/затемнение без препроцессора.

Относительные цвета (новое)

color: hsl(from var(--base) h s calc(l - 10)); /* на основе другого */

CSS-переменные

:root { --primary: #6b46ff; }
.btn { color: var(--primary); }
.btn:hover { color: color-mix(in srgb, var(--primary), black 10%); }

Когда: темизация, единый источник цвета.

Препроцессоры (Sass)

@use 'sass:color';
color: color.adjust($primary, $lightness: -10%); // затемнение (darken() устарел)

Фильтры

filter: brightness(1.2); /* влияет на весь элемент */

Как выбирать

  • Прозрачность → rgba/alpha.
  • Оттенки/яркость → HSL или color-mix.
  • Темизация → CSS-переменные.
  • Смешивание → color-mix.

Коротко для собеседования

Модификация цвета: прямые значения (hex/rgb/hsl), прозрачность (rgba/alpha), HSL для оттенков (меняешь lightness/saturation), color-mix (смешивание, осветление без препроцессора), относительные цвета (hsl(from...)), CSS-переменные (темизация), Sass darken/lighten, фильтры (brightness). Выбор: прозрачность → rgba, оттенки → HSL/color-mix, темы → переменные.

Другие вопросы раздела