# Обмежила систему кольорів 28 задокументованими кольорами й написала лінтер, який відхиляє значення, що застосоване, але не задокументоване, задокументоване, але не застосоване, хибно виміряне, переписане як літерал або розташоване в межах перцептивної відстані 0,02 від уже наявного.

серпень 2026

**Ситуація.** Кольори на сайті з темною темою за замовчуванням, світлою темою, таблицею стилів для друку, режимом примусових кольорів та ілюстрованим брендом самі собою не залишаються невеликим набором. Вони вже почали розповзатися, як це буває завжди: два написання того самого кольору були настільки близькі, що ніхто не міг їх розрізнити, значення повторно вписували як літерали поруч із токенами, які їх визначали, а задокументованими кольорами не було зафарбовано нічого.

**Завдання.** Палітра мала стати закритим набором із чітко заданим порогом відмінності, і щось мало забезпечувати цю закритість.

**Дія.** Двадцять вісім кольорів, і для кожного задокументовано коефіцієнт контрасту, виміряний на тій поверхні, де він з'являється, а одинадцять брендових значень оголошено один раз як токени. Поріг числовий, а не редакторський: два кольори, перцептивна відстань між якими в однорідному колірному просторі менша за 0,02, — це один колір, записаний двома способами. Лінтер видає помилку в п'яти різних випадках: значення використано, але не задокументовано; задокументовано, але не використано; записано з неправильним коефіцієнтом; воно лежить у межах порога від наявного кольору; або брендове значення повторно записано як літерал. Він одразу знайшов два випадки: колір теми, що існував у двох написаннях на відстані 0,018, і колір тла, який підміняв колір стіни, хоча відрізнявся від нього на 0,021. Прозорість задано через відносний колірний синтаксис, а не через функцію змішування, саме тому, що запобіжник не бачить крізь суміш, а запобіжник палітри, який можна обійти, — не запобіжник. Правило до цього коротке: змінювати токен, а не правило, додавати колір лише тоді, коли жоден наявний не підходить, і ніколи не знижувати задокументований коефіцієнт заради того, щоб дизайн спрацював.

**Результат.** Палітра тепер — закритий виміряний набір, який не може непомітно розростатися, а два майже однакові написання, через які все почалося, зникли. Це обмеження, яке часом каже «ні»: якщо дизайну потрібен трохи інший синій, доведеться взяти наявний або обґрунтувати двадцять дев'ятий колір, і в обґрунтуванні має бути коефіцієнт контрасту.

---

- Роль: Інженер дизайн‑систем
- Категорії: [Frontend‑розробка](https://brand.engineer.company/uk/categories/frontend/), [Автоматизація та CI/CD](https://brand.engineer.company/uk/categories/automation/), [Тестування та QA](https://brand.engineer.company/uk/categories/testing/), [Дизайн‑системи та UI](https://brand.engineer.company/uk/categories/design-systems/), [UX / UI‑дизайн](https://brand.engineer.company/uk/categories/ux-ui/), [Документація](https://brand.engineer.company/uk/categories/documentation/)
- Послуги: [Frontend‑розробка](https://brand.engineer.company/uk/services/frontend-development/), [UI/UX‑дизайн та дизайн‑системи](https://brand.engineer.company/uk/services/ui-ux-design/), [Бренд, маркетинг та SEO](https://brand.engineer.company/uk/services/brand-marketing/)

<https://brand.engineer.company/uk/portfolio/closed-the-colour-system-at-28-colours-133/>
