CSS oklch() — колір у просторі Oklch


Опис

автор: Bond

Загальний опис

автор: NagarD

Нотатка

Використовуйте функцію oklch() для отримання кольорів в просторі Oklch, який забезпечує більш однорідну та передбачувану яскравість у порівнянні з RGB або HSL.

автор: Bond
Нотатка

Зверніть увагу, що простір кольорів Oklch базується на моделі Oklab, яка працює у деяких браузерах, але не підтримується в усіх. Перед використанням переконайтесь, що цей простір кольорів підтримується вашою цільовою аудиторією.

автор: Bond
Нотатка

Експериментуйте зі значеннями окомпоненти, сили та відтінку, щоб створити бажані кольори в просторі Oklch.

автор: Bond

Синтаксис

oklch(<lightness>, <chroma>, <hue>, <alpha>);

Функція oklch може отримувати 4 значень:

<lightness>

Числове значення в діапазоні від 0% до 100% (наприклад, 50%).

автор: Bond

<chroma>

Числове значення без одиниць, зазвичай від 0 до 100, але може бути більшим. Вищі значення дадуть більш насичені кольори.

автор: Bond

<hue>

Числове значення з одиницями виміру кута, такими як градуси (deg) або радіани (rad). Зазвичай використовуються значення від 0 до 360 градусів, де 0 відповідає червоному коліру, 120 - зеленому, 240 - синьому.

автор: Bond

<alpha>

Числове значення в діапазоні від 0 до 1, де 0 відповідає повній прозорості, а 1 - повній непрозорості.

автор: Bond

Значення без задання: (50%, 0, 0deg, 1)

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
111 113 15.4 97 111
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
111 111 113 15.4

Приклади

+ запропонувати свій приклад у пісочниці

Зміна фонового кольору при наведенні за допомогою функції oklch().

HTML

<div id="description">
  <h2>Приклад 1</h2>
  <p>Зміна фонового кольору при наведенні за допомогою функції oklch()</p>
</div>

<div id="result">
  <div class="box"></div>
</div>

CSS

#description {
  font-style: italic;
  text-align: left;
  line-height: 1.5;
  margin-bottom: 50px;
  padding: 12px 16px;
  background-color: #f7f7f7;
  border: 1px solid #ccc;
}

#result {
  display: flex;
  justify-content: center;
  align-items: center;
}

.box {
  width: 200px;
  height: 200px;
  background-color: oklch(60% 0.4 240);
  transition: background-color 0.3s ease;
}

.box:hover {
  background-color: oklch(90% 0.6 120);
}
автор: Bond

Три блоки з різними фоновими кольорами за допомогою функції oklch().

HTML

<div id="description">
  <h2>Приклад 2</h2>
  <p>Три блоки з різними фоновими кольорами за допомогою функції oklch()</p>
</div>

<div id="result">
  <div class="box" style="background-color: oklch(90% 0.4 240);"></div>
  <div class="box" style="background-color: oklch(100% 0.4 30);"></div>
  <div class="box" style="background-color: oklch(100% 0.3 40);"></div>
</div>

CSS

#description {
  background: #ccc;
  padding: 20px;
  font-family: Arial, sans-serif;
}

#result {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 200px;
}

.box {
  width: 100px;
  height: 100px;
  margin: 10px;
}
автор: Bond

Верхній ряд — шість відтінків із однаковою світлістю 50% у HSL: жовтий сліпить, синій майже чорний. Нижній ряд — ті самі відтінки з однаковою світлістю 70% в Oklch: смуга читається як рівна за яскравістю.

HTML

<div id="description">
  <h2>Однакова світлість: HSL проти Oklch</h2>
  <p>В обох рядах змінюється лише відтінок. Порівняйте, наскільки нерівним виглядає верхній ряд.</p>
</div>

<div id="result">
  <p class="label">hsl(H 100% 50%)</p>
  <div class="row">
    <div class="sw" style="background: hsl(30 100% 50%)"></div>
    <div class="sw" style="background: hsl(60 100% 50%)"></div>
    <div class="sw" style="background: hsl(140 100% 50%)"></div>
    <div class="sw" style="background: hsl(200 100% 50%)"></div>
    <div class="sw" style="background: hsl(260 100% 50%)"></div>
    <div class="sw" style="background: hsl(330 100% 50%)"></div>
  </div>

  <p class="label">oklch(70% 0.15 H)</p>
  <div class="row">
    <div class="sw" style="background: oklch(70% 0.15 30)"></div>
    <div class="sw" style="background: oklch(70% 0.15 60)"></div>
    <div class="sw" style="background: oklch(70% 0.15 140)"></div>
    <div class="sw" style="background: oklch(70% 0.15 200)"></div>
    <div class="sw" style="background: oklch(70% 0.15 260)"></div>
    <div class="sw" style="background: oklch(70% 0.15 330)"></div>
  </div>
</div>

CSS

#description {
  font-style: italic;
  line-height: 1.5;
  margin-bottom: 30px;
  padding: 12px 16px;
  background-color: #f7f7f7;
  border: 1px solid #ccc;
}

#result {
  max-width: 480px;
  margin: 0 auto;
}

.label {
  margin: 18px 0 6px;
  font: 13px/1.4 monospace;
  color: #555;
}

.row {
  display: flex;
}

.sw {
  flex: 1;
  height: 70px;
}
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Правка
Зворотний зв'язок
Вхід