<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>UXPUB 🇺🇦 Дизайн-спільнота: Anna Loban</title>
    <description>The latest articles on UXPUB 🇺🇦 Дизайн-спільнота by Anna Loban (@anna_loban_8614830f484b07).</description>
    <link>https://ux.pub/anna_loban_8614830f484b07</link>
    <image>
      <url>https://ux.pub/images/e5jtnrOudyP6VVRMRbWFxesUCwdOJ8rbNRfGR8uN2fU/rs:fill:90:90/mb:500000/ar:1/aHR0cHM6Ly91eC5w/dWIvdXBsb2Fkcy91/c2VyL3Byb2ZpbGVf/aW1hZ2UvMTE2Nzcv/MWI3YjExMzQtMDhm/ZS00MThjLTk5Zjct/YmFhOTZlMmZlNTYy/LnBuZw</url>
      <title>UXPUB 🇺🇦 Дизайн-спільнота: Anna Loban</title>
      <link>https://ux.pub/anna_loban_8614830f484b07</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://ux.pub/feed/anna_loban_8614830f484b07"/>
    <language>en</language>
    <item>
      <title>Як OKLCH допоміг мені перестати підбирати UI-кольори на око</title>
      <dc:creator>Anna Loban</dc:creator>
      <pubDate>Thu, 02 Jul 2026 13:31:03 +0000</pubDate>
      <link>https://ux.pub/anna_loban_8614830f484b07/iak-oklch-dopomigh-mieni-pieriestati-pidbirati-ui-kolori-na-oko-ih6</link>
      <guid>https://ux.pub/anna_loban_8614830f484b07/iak-oklch-dopomigh-mieni-pieriestati-pidbirati-ui-kolori-na-oko-ih6</guid>
      <description>&lt;p&gt;Зараз я працюю над конструктором сайтів для недизайнерів.&lt;br&gt;
У такому продукті користувач може змінювати тему, фон, акцентний колір і стилі кнопок. Але він не має розуміти контраст, колірні моделі чи UI-стани.Тому колір не може просто добре виглядати в одному вибраному варіанті. Він має залишатися читабельним і передбачуваним у всій системі.&lt;/p&gt;

&lt;p&gt;Нещодавно я почала детальніше розбиратися з OKLCH.&lt;br&gt;
Коротко: OKLCH — це колірна модель у CSS, яка описує колір ближче до того, як ми його сприймаємо: через perceptual lightness, chroma і hue.&lt;/p&gt;

&lt;p&gt;Порівняно з HSL, lightness в OKLCH поводиться передбачуваніше. Два кольори з однаковим значенням lightness зазвичай сприймаються ближче за візуальною яскравістю.&lt;br&gt;
Для UI це виявилося дуже практичним. Замість того щоб підбирати кожен колір вручну, можна виводити пов’язані значення з однієї логіки.&lt;/p&gt;

&lt;p&gt;Наприклад, фон, CTA, hover, border або shadow можуть бути не випадковими окремими значеннями, а пов’язаними кольорами.&lt;br&gt;
Коли підбираєш кольори на око, усе зазвичай виглядає нормально до першого edge case.&lt;/p&gt;

&lt;p&gt;Фон м’який. Кнопка помітна. Потім змінюєш hue, перевіряєш hover, border, shadow, текст на кнопці або перемикаєш тему — і система починає розвалюватися.&lt;/p&gt;

&lt;p&gt;Типові проблеми:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;фон і кнопка занадто близькі за світлотою;&lt;/li&gt;
&lt;li&gt;CTA втрачає контраст;&lt;/li&gt;
&lt;li&gt;hover виглядає брудно;&lt;/li&gt;
&lt;li&gt;border здається випадковим;&lt;/li&gt;
&lt;li&gt;shadow не пов’язаний із кнопкою;&lt;/li&gt;
&lt;li&gt;текст на кнопці читається гірше, ніж очікувалося;&lt;/li&gt;
&lt;li&gt;акцентний колір, вибраний користувачем, ламає весь інтерфейс.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;На звичайному сайті більшість цього можна поправити вручну. У конструкторі це не масштабується. Користувачі будуть створювати власні комбінації, і система має допомагати їм не отримати нечитабельний UI.&lt;/p&gt;

&lt;p&gt;В OKLCH колір описується трьома частинами:&lt;/p&gt;

&lt;p&gt;L — perceptual lightness, сприймана світлота;&lt;br&gt;
C — chroma, інтенсивність кольору;&lt;br&gt;
H — hue, відтінок.&lt;/p&gt;

&lt;p&gt;Найкорисніше для мене — можливість окремо змінювати lightness і chroma, зберігаючи той самий hue.&lt;br&gt;
Так простіше зробити колір світлішим, темнішим, м’якшим або глибшим, не втрачаючи зв’язок з оригінальним кольором.&lt;/p&gt;

&lt;p&gt;Наприклад:&lt;br&gt;
--background: oklch(98% 0.015 260);&lt;br&gt;
--primary: oklch(58% 0.18 260);&lt;br&gt;
--primary-text: oklch(99% 0.01 260);&lt;br&gt;
--primary-hover: oklch(52% 0.17 260);&lt;/p&gt;

&lt;p&gt;Логіка проста:&lt;br&gt;
фон залишається дуже світлим і спокійним;&lt;br&gt;
кнопка помітно темніша й інтенсивніша;&lt;br&gt;
текст на кнопці залишається читабельним;&lt;br&gt;
hover залишається в тій самій колірній сім’ї, тому відчувається як стан, а не як випадковий новий колір.&lt;br&gt;
Це не замінює перевірку контрасту. Але зменшує ручне вгадування: частину колірних пар можна будувати за зрозумілим правилом.&lt;/p&gt;

&lt;p&gt;Маленький приклад — тінь кнопки.&lt;br&gt;
Я перевірила це в CodePen. Замість того щоб вручну вибирати shadow color, можна взяти колір кнопки й зробити його темнішим через OKLCH:&lt;/p&gt;

&lt;p&gt;oklch(from var(--button) calc(l - 0.15) c h / 0.45)&lt;/p&gt;

&lt;p&gt;Тінь зберігає той самий hue і chroma, але отримує нижче значення lightness. Тому вона все ще виглядає візуально пов’язаною з CTA, а не як випадкова сіра чи чорна тінь.&lt;br&gt;
Це невеликий приклад, але він добре показує принцип: користувач змінює один колір, а система будує пов’язані значення навколо нього.&lt;/p&gt;

&lt;p&gt;Для конструктора головне не сама палітра. Важливо, як колір поводиться в різних станах: фон, кнопка, текст на кнопці, hover, border, shadow, disabled...&lt;/p&gt;

&lt;p&gt;Користувач вибирає настрій теми. Система допомагає зберегти інтерфейс читабельним і акуратним.&lt;/p&gt;

&lt;p&gt;Для мене це хороший приклад системного мислення в UI-дизайні. Дизайн тут не лише про те, щоб вибрати красивий колір. Він про те, щоб продукт залишався цілісним і читабельним навіть тоді, коли фінальну комбінацію створює користувач.&lt;/p&gt;

&lt;p&gt;CodePen playground: &lt;a href="https://codepen.io/anna-loban/pen/vEyOraY"&gt;https://codepen.io/anna-loban/pen/vEyOraY&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ui</category>
      <category>tools</category>
      <category>tutorial</category>
      <category>css</category>
    </item>
  </channel>
</rss>
