Color Converter

Конвертуйте кольори між форматами HEX, RGB, HSL та HSV з візуальним селектором

Спробувати приклад

Клацніть на колір для відкриття селектора

Або змініть будь-яке значення нижче

HEX
RGB
HSL
HSV

Що таке конвертація кольорів?

Конвертер кольорів перекладає значення кольору з одного запису в інший — наприклад, з HEX-триплета (#6366F1) у RGB-кортеж (99, 102, 241) або HSL-трійку (239, 84%, 67%). Той самий колір можна також записати як HSV-трійку (239, 59%, 95%). Кожен формат кодує один і той самий візуальний колір за допомогою різної математичної моделі; різні інструменти, мови програмування та API очікують різні формати залежно від контексту.

HEX і RGB описують колір як суміш червоного, зеленого та синього світла. HEX — це компактне шістнадцяткове представлення тих самих трьох значень каналів від 0 до 255, які RGB записує у десятковому вигляді. HSL (відтінок, насиченість, освітленість) та HSV (відтінок, насиченість, яскравість) перегруповують ту саму інформацію в циліндричну систему координат, де відтінок — це кут на колірному колі (0–360 градусів), а насиченість та освітленість або яскравість виражаються у відсотках. Це робить HSL та HSV інтуїтивнішими для таких завдань, як створення світліших або темніших відтінків того самого кольору.

Перетворення між цими форматами вимагає чітко визначеної математики. Специфікація W3C CSS Color Module Level 4 документує алгоритми, які браузери використовують для зведення будь-якого CSS-кольору до sRGB-триплета. Формули детерміновані: певний вхід завжди дає той самий результат, тому конвертації є без втрат, якщо значення не округлюються або не обрізаються. Більшість селекторів кольорів та інструментів дизайну покладаються на ці самі формули.

Навіщо використовувати цей конвертер кольорів?

Інструменти дизайну експортують кольори в одному форматі, CSS потребує іншого, а API, який ви викликаєте, очікує третього. Замість того щоб писати код конвертації або шукати потрібну формулу, вставте значення і отримайте всі формати одночасно.

Миттєва конвертація в реальному часі
Введіть або оберіть колір і спостерігайте, як HEX, RGB, HSL та HSV оновлюються в реальному часі. Без кнопки надсилання, без звернень до сервера.
🔒
Обробка з пріоритетом приватності
Вся математика конвертації виконується у вашому браузері. Жодні значення кольорів, дані про використання та cookie не надсилаються нікуди.
🔀
Усі чотири формати одночасно
Один вхід видає HEX, RGB, HSL та HSV одночасно. Скопіюйте потрібний формат одним кліком.
📋
Без облікового запису
Відкрийте сторінку і починайте конвертувати. Без реєстрації, без email, без обмежень запитів. Працює офлайн після завантаження.

Варіанти використання конвертера кольорів

Розробка CSS
Дизайнер передає вам HEX-значення з Figma, але бібліотека компонентів використовує HSL для тематизації. Конвертуйте значення і вставте його у CSS-змінні або конфігурацію Tailwind.
Інтеграція з бекенд API
Ваш ендпоінт приймає кольори як RGB-масиви для генерації діаграм. Конвертуйте HEX-коди бренду з посібника зі стилів у цілочисельні триплети, яких очікує API.
Підтримка системи дизайну
При документуванні системи дизайну вам потрібно, щоб кожен колірний токен був представлений у HEX для довідки, RGB для рендерингу Canvas і HSL для програмної генерації відтінків.
QA та візуальне тестування
Порівняння кольору пікселя на знімку екрана (зазвичай виводиться в RGB через DevTools браузера) з очікуваним HEX-значенням зі специфікації Figma. Швидка конвертація підтверджує або виявляє розбіжності.
Візуалізація даних
Бібліотеки діаграм на кшталт D3.js та Chart.js приймають кольори в різних форматах залежно від методу. Конвертуйте один раз і підтримуйте узгоджений запис у конфігурації набору даних.
Вивчення теорії кольорів
Студенти, що вивчають комп'ютерну графіку або вебдизайн, можуть побачити, як один і той самий колір відображається в HEX, RGB, HSL та HSV. Зміна одного каналу і спостереження за тим, як змінюються інші, формує розуміння взаємозв'язку між колірними моделями.

Довідник форматів кольорів

У таблиці нижче перелічено п'ять найпоширеніших форматів кольорів, де той самий колір індиго (#6366F1) показано в кожному записі. HEX і RGB найширше підтримуються в CSS і JavaScript. HSL є кращим для тематизації, оскільки налаштування освітленості та насиченості є простим. HSV — це модель, яку використовують селектори кольорів більшості програм графічного дизайну.

ФорматПриклад (індиго)КаналиПоширене використання
HEX#6366F16 (or 3/8)CSS, design tools, brand guides
RGBrgb(99, 102, 241)3 (0–255 each)CSS, Canvas API, image processing
HSLhsl(239, 84%, 67%)3 (deg, %, %)CSS, color theming, accessibility tuning
HSVhsv(239, 59%, 95%)3 (deg, %, %)Color pickers, Photoshop, Figma
CMYKcmyk(59%, 58%, 0%, 5%)4 (0–100% each)Print design, prepress workflows

HEX vs RGB vs HSL

Усі три формати описують один і той самий колірний простір sRGB. Різниця полягає в тому, як вони розкривають дані, що впливає на читабельність і зручність маніпулювання в різних контекстах.

HEX
Шістнадцятковий рядок із 6 символів (або скорочення з 3 символів). Компактний і універсальний у CSS, інструментах дизайну та брендових настановах. Важко читати з першого погляду: #6366F1 не говорить вам нічого про відтінок. Підтримує необов'язковий 8-символьний формат (#6366F180) для прозорості альфа-каналу.
RGB
Три цілих числа від 0 до 255 для каналів червоного, зеленого та синього. Рідний формат для Canvas 2D, WebGL і більшості бібліотек обробки зображень. Легко маніпулювати каналами окремо, але регулювання сприйманої яскравості вимагає одночасної зміни всіх трьох значень.
HSL
Відтінок (0–360 градусів), насиченість (0–100%) і освітленість (0–100%). Розроблений для зручності читання людиною. Щоб зробити колір світлішим, збільшіть L. Щоб знизити насиченість, зменшіть S. CSS нативно підтримує запис hsl(), а сучасні color-mix() та синтаксис відносних кольорів CSS засновані на ньому.

Приклади коду

Конвертація кольорів між HEX, RGB та HSL у поширених мовах та середовищах. У кожному прикладі використовується той самий колір індиго (#6366F1) для зручного порівняння.

JavaScript
// HEX → RGB
function hexToRgb(hex) {
  const n = parseInt(hex.replace('#', ''), 16)
  return [(n >> 16) & 255, (n >> 8) & 255, n & 255]
}
hexToRgb('#6366f1') // → [99, 102, 241]

// RGB → HSL
function rgbToHsl(r, g, b) {
  r /= 255; g /= 255; b /= 255
  const max = Math.max(r, g, b), min = Math.min(r, g, b)
  const l = (max + min) / 2
  if (max === min) return [0, 0, Math.round(l * 100)]
  const d = max - min
  const s = l > 0.5 ? d / (2 - max - min) : d / (max + min)
  let h = 0
  if (max === r) h = ((g - b) / d + (g < b ? 6 : 0)) / 6
  else if (max === g) h = ((b - r) / d + 2) / 6
  else h = ((r - g) / d + 4) / 6
  return [Math.round(h * 360), Math.round(s * 100), Math.round(l * 100)]
}
rgbToHsl(99, 102, 241) // → [239, 84, 67]
Python
import colorsys

# HEX → RGB
def hex_to_rgb(hex_str: str) -> tuple[int, int, int]:
    h = hex_str.lstrip('#')
    return tuple(int(h[i:i+2], 16) for i in (0, 2, 4))

hex_to_rgb('#6366f1')  # → (99, 102, 241)

# RGB → HSL (colorsys uses HLS order)
r, g, b = 99 / 255, 102 / 255, 241 / 255
h, l, s = colorsys.rgb_to_hls(r, g, b)
print(f"hsl({h * 360:.0f}, {s * 100:.0f}%, {l * 100:.0f}%)")
# → hsl(239, 84%, 67%)

# RGB → HSV
h, s, v = colorsys.rgb_to_hsv(r, g, b)
print(f"hsv({h * 360:.0f}, {s * 100:.0f}%, {v * 100:.0f}%)")
# → hsv(239, 59%, 95%)
Go
package main

import (
	"fmt"
	"math"
)

func hexToRGB(hex string) (int, int, int) {
	var r, g, b int
	fmt.Sscanf(hex, "#%02x%02x%02x", &r, &g, &b)
	return r, g, b
}

func rgbToHSL(r, g, b int) (int, int, int) {
	rf, gf, bf := float64(r)/255, float64(g)/255, float64(b)/255
	max := math.Max(rf, math.Max(gf, bf))
	min := math.Min(rf, math.Min(gf, bf))
	l := (max + min) / 2
	if max == min {
		return 0, 0, int(math.Round(l * 100))
	}
	d := max - min
	s := d / (2 - max - min)
	if l <= 0.5 {
		s = d / (max + min)
	}
	var h float64
	switch max {
	case rf: h = (gf - bf) / d; if gf < bf { h += 6 }
	case gf: h = (bf - rf) / d + 2
	case bf: h = (rf - gf) / d + 4
	}
	return int(math.Round(h / 6 * 360)), int(math.Round(s * 100)), int(math.Round(l * 100))
}

func main() {
	r, g, b := hexToRGB("#6366f1")
	fmt.Println(r, g, b)         // → 99 102 241
	fmt.Println(rgbToHSL(r, g, b)) // → 239 84 67
}
CSS
/* Modern CSS supports multiple color formats natively */

/* HEX notation */
.button { color: #6366f1; }

/* RGB functional notation */
.button { color: rgb(99 102 241); }

/* HSL — easier to adjust lightness and saturation */
.button { color: hsl(239 84% 67%); }

/* CSS Color Level 4: relative color syntax (Chrome 119+) */
.button-light { color: hsl(from #6366f1 h s calc(l + 20%)); }

/* color-mix() for tinting without manual conversion */
.button-muted { color: color-mix(in srgb, #6366f1 70%, white); }

Поширені запитання

У чому різниця між HSL та HSV?
Обидва використовують відтінок та насиченість, але по-різному визначають яскравість. HSL використовує освітленість: 50% — чистий колір, 0% — чорний, 100% — білий. HSV використовує значення (яскравість): 100% — чистий колір, 0% — чорний. У HSV немає прямої білої кінцевої точки. На практиці HSL використовується в CSS та веброзробці, тоді як HSV є моделлю, що лежить в основі більшості селекторів кольорів у програмах дизайну, таких як Photoshop та Figma.
Як конвертувати HEX у RGB у JavaScript?
Розберіть рядок hex у ціле число за допомогою parseInt(hex, 16), потім витягніть кожен канал зсувом бітів: (n >> 16) & 255 для червоного, (n >> 8) & 255 для зеленого та n & 255 для синього. Це обробляє будь-який 6-символьний hex-рядок з символом # або без нього. Для 3-символьного скорочення на кшталт #F0F спочатку розгорніть кожну цифру (FF00FF) перед розбором.
Чи можна використовувати HSL безпосередньо в CSS?
Так. Усі сучасні браузери підтримують hsl() та hsla() у CSS. Починаючи з CSS Color Level 4, синтаксис — hsl(239 84% 67%) з розділеними пробілами значеннями (коми також досі приймаються). Ви також можете додати альфа як четвертий параметр: hsl(239 84% 67% / 0.5). Safari, Chrome, Firefox і Edge — усі підтримують цей синтаксис.
Чи конвертація кольорів є з втратами?
Математично — ні. HEX, RGB, HSL та HSV описують один і той самий колірний простір sRGB, і конвертації є оборотними. На практиці можуть з'являтися незначні відмінності через округлення, оскільки HEX обмежений 256 кроками на канал, а відсотки HSL зазвичай округлюються до цілих чисел. Багаторазова конвертація в обох напрямках може накопичувати помилки округлення в 1–2 одиниці.
Що таке 8-символьний формат HEX?
8-символьний формат HEX додає два символи альфа (прозорості) до стандартного 6-символьного HEX-кольору. Наприклад, #6366F180 означає той самий колір індиго з 50% непрозорістю (0x80 = 128, приблизно 50% від 255). CSS підтримує цей запис у всіх сучасних браузерах. Скорочена форма — 4 символи, наприклад #63F8.
Чому мій колір виглядає інакше на іншому моніторі?
Відображення кольору залежить від колірного профілю монітора, яскравості та гамма-калібрування. Два екрани можуть відображати одне й те саме значення sRGB (#6366F1) по-різному, якщо їхні колірні профілі відрізняються. Інструменти конвертації кольорів працюють у визначеному колірному просторі (зазвичай sRGB) і видають математично коректний результат. Сприймані відмінності — це проблема калібрування дисплея, а не помилка конвертації.
Як вибрати світліший або темніший відтінок кольору?
Конвертуйте колір у HSL і відрегулюйте канал L (освітленість). Збільшення L до 100% дає світліші відтінки; зменшення до 0% — темніші. Відтінок і насиченість залишаються незмінними. У CSS ви можете зробити це безпосередньо: hsl(239 84% 80%) — світліша версія hsl(239 84% 67%). Сучасний CSS також пропонує color-mix(in srgb, #6366F1, white 30%) для того самого ефекту без ручної конвертації.