Конвертер HEXA в HSLA

Преобразуйте цветовые коды HEXA в значения hsla(h, s, l, a) без ручных вычислений. Этот конвертер полезен, когда экспорты или дизайн-токены используют HEX с альфа-каналом, а в CSS или документации применяется HSLA.

Введите цвет в формате HEXA, и соответствующая запись HSLA появится сразу. После этого вы можете скопировать вызов hsla() в стили, файлы темы или пропсы компонентов.

На этой странице также есть краткое объяснение HEX с альфа-каналом и HSLA, понятная формула преобразования, подробный пошаговый разбор, справочная таблица и раздел FAQ с ответами на типичные вопросы об этих форматах.

Что такое цветовой код HEXA

Значение HEXA расширяет классический формат HEX, добавляя прозрачность. Вместо #RRGGBB используется #RRGGBBAA, где последние два символа кодируют альфа-канал.

Все четыре пары — это шестнадцатеричные числа в диапазоне от 00 до FF. Первые три пары управляют красным, зелёным и синим каналами, как в обычном HEX. Последняя пара задаёт прозрачность: 00 означает полную прозрачность, FF — полную непрозрачность.

Браузеры и инструменты считывают каждую пару, переводят её в десятичное число и используют первые три как RGB-каналы, а последнюю — как альфа-значение от 0 до 255. Это делает HEXA компактным способом хранения цвета и прозрачности в одной строке.

Что такое HSLA

HSLA — это цветовая модель HSL с альфа-каналом. Она записывается как hsla(h, s, l, a), где h — оттенок, s — насыщенность, l — светлота, а a — значение прозрачности.

Оттенок измеряется в градусах от 0 до 360. Насыщенность и светлота задаются в процентах от 0% до 100%. Альфа-компонент — это число от 0 до 1, где 0 означает полную прозрачность, а 1 — полную непрозрачность.

HSLA удобна для работы с дизайном, потому что позволяет отдельно настраивать оттенок, интенсивность и яркость, сохраняя контроль над прозрачностью через четвёртый параметр. Формат широко поддерживается в современном CSS.

Формула преобразования HEXA в HSLA

#RRGGBBAA -> hsla(h, s, l, a)

1) Split the HEXA string:
   #RRGGBBAA -> RR, GG, BB, AA

2) Convert each pair from hex to decimal:
   R = hex_to_dec(RR)
   G = hex_to_dec(GG)
   B = hex_to_dec(BB)
   A = hex_to_dec(AA)

3) Normalize the alpha channel:
   a = A / 255

4) Convert RGB to HSL:
   r' = R / 255
   g' = G / 255
   b' = B / 255

   max = max(r', g', b')
   min = min(r', g', b')
   delta = max - min

   // Lightness:
   l = (max + min) / 2

   // Saturation:
   if delta == 0 then s' = 0
   else s' = delta / (1 - |2 * l - 1|)

   // Hue:
   if delta == 0 then h = 0
   else if max == r' then h = 60 * (((g' - b') / delta) mod 6)
   else if max == g' then h = 60 * (((b' - r') / delta) + 2)
   else if max == b' then h = 60 * (((r' - g') / delta) + 4)

5) Scale to final units:
   H = h
   S = s' * 100
   L = l * 100

6) Compose HSLA:
   hsla(H, S%, L%, a)

Helper:
   hex_to_dec("FF") = 255
   hex_to_dec("00") = 0

Красный, зелёный и синий компоненты обрабатываются так же, как при любом преобразовании из HEX в HSL. Пара альфа-канала используется только для вычисления итогового значения a в HSLA, поэтому сам цвет не меняется, изменяется лишь его прозрачность.

Пример для #4FA3C2CC
1) Пары:
   RR = 4F, GG = A3, BB = C2, AA = CC
2) Десятичные значения:
   R = 79, G = 163, B = 194, A = 204
3) Альфа:
   a = 204 / 255  (около 0.8)
4) Преобразование (79, 163, 194) в HSL:
   hsl(196, 49%, 54%)  (округлено)
5) Итоговый HSLA:
   hsla(196, 49%, 54%, 0.8)

Как работает преобразование HEXA в HSLA шаг за шагом

Внутри преобразование HEXA в HSLA — это комбинация шагов HEX в RGB, RGB в HSL и простой нормализации альфа-канала. Вы извлекаете все каналы из шестнадцатеричного вида и затем отображаете их в модель HSLA.

#1A2B3C80
-> [1A, 2B, 3C, 80]
-> rgb(r, g, b) + alpha
-> hsla(h, s, l, a)

Ниже приведён более подробный разбор на примере #1A2B3C80.

  • Шаг 1 — декодирование HEX-пар

    Разделите строку на четыре пары и переведите каждую из них из системы счисления с основанием 16 в систему с основанием 10. Первые три станут значениями R, G и B, а последняя — исходным значением альфа-канала.

    RR = 1A -> 26
    GG = 2B -> 43
    BB = 3C -> 60
    AA = 80 -> 128
  • Шаг 2 — вычисление H, S и L из RGB

    Нормализуйте каналы RGB в диапазон от 0 до 1, найдите максимальное и минимальное значения, затем используйте стандартные формулы HSL для получения оттенка, насыщенности и светлоты.

    r' = 26 / 255
    g' = 43 / 255
    b' = 60 / 255
    l = (max + min) / 2
    ... -> hsl(210, 39%, 17%) (rounded)
  • Шаг 3 — нормализация альфа-канала и сборка HSLA

    Разделите значение альфа-канала на 255 и подставьте все параметры в функцию hsla().

    hsla(210, 39%, 17%, 0.5)

Та же последовательность шагов работает для любого корректного значения HEXA, поэтому использование конвертера или вспомогательной функции обычно является самым надёжным и быстрым вариантом.

Выбор между HEXA и HSLA

HEXA и HSLA описывают одни и те же данные: цвет и прозрачность. Основное различие заключается в том, что вы ставите в приоритет — компактность хранения или удобочитаемость и редактирование.

Когда HEXA подходит лучше

  • Дизайн-токены и файлы тем: короткие строки вроде #4FA3C2CC удобно хранить в JSON или конфигурационных объектах.
  • Копирование из дизайн-инструментов: многие графические редакторы экспортируют цвета в HEX с альфа-каналом, который можно сразу вставить в набор токенов.
  • Общие палитры: коды HEXA компактны и хорошо подходят для больших таблиц семантических цветов.

Когда HSLA практичнее

  • Тонкая настройка тем: явные значения оттенка, насыщенности и светлоты в HSLA проще корректировать, чем три сырых канала в HEX.
  • Объяснение дизайн-решений: значения вроде hsla(210, 40%, 20%, 0.7) проще обсуждать в спецификациях, чем восьмизначные HEX-коды.
  • Использование современных возможностей CSS: HSLA естественно сочетается с другими утилитами и техниками на основе HSL.

Итог

Используйте HEXA, когда нужны компактные токены и простое копирование. Преобразуйте их в HSLA, когда требуются читаемые и настраиваемые параметры для тем, компонентов или документации.

Лучшие практики совместного использования HEXA и HSLA

В одном проекте нормально поддерживать как HEX-, так и HSL-основанные цвета. Несколько правил помогают сохранить систему удобной для сопровождения.

Определите источник истины

  • Выберите один основной формат для токенов: многие команды используют HEXA для базовых токенов и получают HSLA по мере необходимости.
  • Делайте преобразования автоматическими: избегайте ручного редактирования альфа-канала или цветовых компонентов в нескольких местах; используйте скрипты или утилиты.

Комбинируйте с другими цветовыми моделями

  • Используйте RGB как промежуточный шаг: преобразования между HEXA, HSLA и другими моделями обычно проходят через RGB.
  • Безопасно ограничивайте значения: всегда удерживайте оттенок, насыщенность, светлоту и альфа-канал в допустимых диапазонах при анимациях или генерации вариантов.

Сохраняйте консистентность палитры

  • Документируйте использование форматов: например, HEXA для токенов, HSLA в документации и примерах кода, RGBA в низкоуровневом коде отрисовки.
  • Используйте утилиты вместо ручных вычислений: это снижает количество ошибок и упрощает массовые обновления тем.

При чётких правилах и автоматических преобразованиях можно эффективно использовать и HEXA, и HSLA без потери ясности в стилях и дизайн-системе.

Таблица преобразования HEXA в HSLA

В таблице ниже приведены несколько распространённых цветов с прозрачностью в форматах HEXA и HSLA. Значения округлены для удобства чтения, поэтому для точных чисел используйте конвертер выше.

Справочная таблица HEXA в HSLA
ОписаниеHEXAHSLA
Белый 50%#FFFFFF80hsla(0, 0%, 100%, 0.5)
Чёрный 50%#00000080hsla(0, 0%, 0%, 0.5)
Красный 80%#FF0000CChsla(0, 100%, 50%, 0.8)
Зелёный 40%#00FF0066hsla(120, 100%, 50%, 0.4)
Синий 30%#0000FF4Dhsla(240, 100%, 50%, 0.3)
Жёлтый 60%#FFFF0099hsla(60, 100%, 50%, 0.6)
Циан 70%#00FFFFB3hsla(180, 100%, 50%, 0.7)
Маджента 90%#FF00FFE6hsla(300, 100%, 50%, 0.9)
Серый оверлей#11111180hsla(0, 0%, 7%, 0.5)
Мягкий серый#33333380hsla(0, 0%, 20%, 0.5)
Граница панели#55555580hsla(0, 0%, 33%, 0.5)
Акцентный оранжевый 70%#FFA500B3hsla(39, 100%, 50%, 0.7)
Фиолетовый оверлей#80008080hsla(300, 100%, 25%, 0.5)
Бирюзовый оверлей#00808080hsla(180, 100%, 25%, 0.5)

Для любого другого значения HEXA вы можете использовать конвертер в верхней части страницы, чтобы получить соответствующий цвет HSLA по стандартному алгоритму.

FAQ: HEXA в HSLA

  • Чем HEXA отличается от HEX

    HEX использует шесть символов только для RGB. HEXA расширяет формат до восьми символов, добавляя пару для альфа-канала, поэтому может описывать и цвет, и прозрачность.

  • Зачем преобразовывать HEXA в HSLA

    HSLA упрощает независимую настройку оттенка, насыщенности и светлоты, при этом альфа-канал остаётся отдельным параметром. Это особенно удобно при работе с темами и документацией дизайн-решений.

  • Меняется ли визуальный цвет при преобразовании

    Нет. Корректно преобразованное значение HSLA описывает тот же цвет и ту же прозрачность, что и исходная строка HEXA. Меняется только форма записи.

  • Можно ли вернуться от HSLA к HEXA

    Да. Можно преобразовать HSLA в RGB, умножить значение альфа-канала на 255 и затем перевести все четыре числа в двухзначные HEX-пары, чтобы собрать строку HEXA.

  • Что использовать в CSS: HSLA или RGBA

    Оба варианта допустимы. HSLA часто интуитивнее при настройке палитр и тем, тогда как RGBA удобно использовать, если вы уже работаете в модели RGB. Во многих проектах применяются оба формата в зависимости от задачи.

Связанные конвертеры: