CSS

Цвета

Форматы цветов: именованные, hex, rgb, rgba, hsl, hsla и opacity.

Начальный (Beginner)

Кратко

CSS поддерживает несколько форматов цветов: именованные (red, blue), hex (#ff0000), rgb (rgb(255,0,0)), rgba (с прозрачностью), hsl (hue-saturation-lightness). Выбор формата зависит от задачи: hex — для дизайнеров, rgb — для программистов, hsl — для интуитивной настройки.


Подробно

Форматы цветов:

  • Именованные:

color: red; color: navy; color: tomato; ~140 стандартных имён. Удобно, но ограничено.

  • Hex (шестнадцатеричный):

color: #ff0000; — красный color: #f00; — сокращённый (аналог #ff0000) color: #333; — тёмно-серый Формат: #RRGGBB или #RGB

  • RGB:

color: rgb(255, 0, 0); — красный color: rgb(0, 128, 255); — голубой Значения: 0-255 для каждого канала

  • RGBA (с прозрачностью):

color: rgba(0, 0, 0, 0.5); — чёрный 50% прозрачный Альфа: 0 (прозрачный) — 1 (непрозрачный)

  • HSL (Hue-Saturation-Lightness):

color: hsl(0, 100%, 50%); — красный Hue: 0-360 (цветовой круг) Saturation: 0-100% (насыщенность) Lightness: 0-100% (яркость)

  • HSLA:

color: hsla(0, 100%, 50%, 0.5); — красный 50%

Opacity (прозрачность элемента): opacity: 0.5; — весь элемент 50% прозрачный

Рекомендация:

  • Именованные — для быстрого прототипирования
  • Hex — для работы с дизайнерами
  • HSL — для интуитивной настройки (легко менять яркость)

Ментальная модель

Цвета — как краски в палитре. Именованные — баночки с подписями (красный, синий). Hex — код краски (для компьютера). RGB — три ползунка (красный, зелёный, синий). HSL — три ползунка (оттенок, насыщенность, яркость).


Примеры

**Самый простой:**

css
/* Именованные */
body { color: #333; background: white; }

/* Hex */
h1 { color: #2c3e50; }
a { color: #3498db; }

/* RGB */
p { color: rgb(52, 73, 94); }

Базовые форматы: hex для основных цветов, rgb для точных значений.

**Простой:**

css
/* HSL — удобно менять яркость */
:root {
  --primary: hsl(210, 80%, 50%);
  --primary-light: hsl(210, 80%, 70%);
  --primary-dark: hsl(210, 80%, 30%);
}

/* Прозрачность */
.overlay {
  background: rgba(0, 0, 0, 0.6);
  color: white;
}

/* Opacity — весь элемент */
.faded {
  opacity: 0.4;
}

HSL для цветовых схем, rgba для оверлеев, opacity для прозрачности.

**Реальный пример:**

css
/* Цветовая палитра проекта */
:root {
  /* Основные */
  --color-primary: hsl(210, 80%, 50%);
  --color-secondary: hsl(160, 60%, 45%);
  --color-accent: hsl(35, 100%, 55%);

  /* Нейтральные */
  --color-text: hsl(220, 15%, 20%);
  --color-text-muted: hsl(220, 10%, 45%);
  --color-bg: hsl(0, 0%, 98%);
  --color-border: hsl(220, 15%, 88%);

  /* Семантические */
  --color-success: hsl(145, 60%, 40%);
  --color-error: hsl(0, 70%, 50%);
  --color-warning: hsl(40, 90%, 50%);
}

body {
  color: var(--color-text);
  background: var(--color-bg);
}

a {
  color: var(--color-primary);
}

.error-message {
  color: var(--color-error);
  background: hsla(0, 70%, 50%, 0.1);
}

Реальная цветовая палитра с CSS-переменными и семантическими цветами.


Частые ошибки

**Неправильно:** Использовать opacity вместо rgba

**Почему:** opacity делает прозрачным ВСЁ (текст, фон, дочерние элементы). rgba — только фон.

**Правильно:** Для прозрачного фона: rgba(). Для прозрачности всего элемента: opacity.

**Неправильно:** Не использовать CSS-переменные для цветов

**Почему:** Хардкод цветов в разных местах — difficult to maintain. Изменение цвета = правки в 20 файлах.

**Правильно:** Определите цвета в :root как CSS-переменные и используйте var(--color-primary).

**Неправильно:** Путать hsl и rgb

**Почему:** rgb(255, 0, 0) = красный. hsl(0, 100%, 50%) = красный. Формулы конвертации не тривиальны.

**Правильно:** HSL интуитивнее: hue (цвет), saturation (насыщенность), lightness (яркость).


Важно запомнить

  • Hex: #RRGGBB или #RGB (сокращённый)
  • RGB: rgb(r, g, b) — значения 0-255
  • HSL: hsl(h, s%, l%) — оттенок, насыщенность, яркость
  • rgba/hsla — цвет с прозрачностью (альфа-канал)
  • CSS-переменные для переиспользования цветов

Связь

Назад: Вы знаете каскад и специфичность (C3) — теперь вы можете применять цвета к стилизованным элементам.

Вперёд: В следующем уроке (C5) вы изучите текст и шрифты: font-family, font-size, текстовые свойства.

Материалы курса CSS — PROlab Academy.