50% — это сколько в HEX?

Для профессиональной веб-разработки (особенно при работе с CSS-цветами в формате #RRGGBBAA) часто требуется преобразование прозрачности (Alpha channel) из процентов в шестнадцатеричный код.

Диапазон 00–FF соответствует десятичному 0–255.
Формула расчета: Math.round((Процент / 100) * 255).toString(16).

Ниже приведена полная справочная таблица для всех целочисленных процентов.

Таблица прозрачности (Opacity Cheat Sheet)

%Hex%Hex%Hex%Hex
100%FF75%BF50%8025%40
99%FC74%BD49%7D24%3D
98%FA73%BA48%7A23%3B
97%F772%B847%7822%38
96%F571%B546%7521%36
95%F270%B345%7320%33
94%F069%B044%7019%30
93%ED68%AD43%6E18%2E
92%EB67%AB42%6B17%2B
91%E866%A841%6916%29
90%E665%A640%6615%26
89%E364%A339%6314%24
88%E063%A138%6113%21
87%DE62%9E37%5E12%1F
86%DB61%9C36%5C11%1C
85%D960%9935%5910%1A
84%D659%9634%579%17
83%D458%9433%548%14
82%D157%9132%527%12
81%CF56%8F31%4F6%0F
80%CC55%8C30%4D5%0D
79%C954%8A29%4A4%0A
78%C753%8728%473%08
77%C452%8527%452%05
76%C251%8226%421%03
0%00

JS-хелпер для расчетов

Если нужно вычислить значение программно (например, для динамической генерации стилей или работы с canvas), можно использовать эту функцию:

JavaScript
const percentToHex = (percent) => {
    // Ограничиваем диапазон от 0 до 100
    const value = Math.max(0, Math.min(100, percent)); 
    // Округляем (255 * percent / 100)
    const decimalValue = Math.round(value * 2.55);
    
    // Преобразуем в hex, переводим в верхний регистр и добавляем ведущий ноль
    return decimalValue.toString(16).toUpperCase().padStart(2, '0');
};

// Примеры использования:
console.log(percentToHex(0));   // "00"
console.log(percentToHex(50));  // "7F"
console.log(percentToHex(100)); // "FF"

Для наглядности код есть на CodePen

codepen.io

Важные нюансы

  • CSS Colors 4: В современном CSS (как указано в спецификациях на web.dev) можно использовать синтаксис rgb(0 0 0 / 50%) или #00000080. Браузеры сами отлично понимают проценты в функциях rgb() и hsl(), поэтому ручная конвертация в HEX нужна преимущественно для поддержки старых инструментов или строгих гайдлайнов (например, в дизайн-системах или БЭМ-библиотеках).​
  • Точность: Значения в таблице округлены до ближайшего целого. Например, 50% от 255 — это 127.5. Стандартная практика округляет это до 128 (0x80), а не 127 (0x7F).