Архівний матеріал: розбір публікації від 2023-12-18. Назви функцій, інтерфейс, можливості плагінів і умови доступу наведені в контексті того часу.
У матеріалі розбирається підхід Луїса Уріача до того, як будувати Figma-компоненти так, щоб їх реально споживали продукт-команди, а не оминали через складність. У фокусі чотири характеристики з його FRAILS-рамки: adoptable (придатні до впровадження), indexable (легко знаходяться), logical (логічні в роботі) та specific (достатньо конкретні).
Adoptable — компоненти, які хочеться використовувати
1. Іменування: про зручний пошук, а не про 1:1 з кодом
Автор виходить із болю з опитування Sparkbox 2022 року: серед трьох головних проблем дизайн-систем adoption опинилася на одному рівні з технічним боргом і паритетом «design — code». Тобто можна мати класну систему, але її просто не беруть у роботу.
Одна з ключових причин — як компоненти названі та знаходяться в інструменті. Уріач не радить зациклюватися на 1:1 відповідності між назвами в дизайні та в коді. Дизайнери й розробники шукають по-різному, тому вигідніше орієнтуватися на те, як кожна аудиторія шукає.
Практичний прийом — використовувати поле опису компонентів у Figma як «контейнер аліасів». Основні моменти:
- компонент у коді може зватися
headerNavItemActive, а в Figma — «Header link»; - в поле опису вносяться альтернативні назви: і кодова, і терміни, якими оперують дизайнери;
- так само можна робити зі styles і variables, додаючи до опису всі поширені синоніми.

Це не про красу, а про пошук: як тільки хтось шукає «header», «nav», «link» чи кодовий ідентифікатор, Figma тягне й текст з опису.
2. Окремі сети: «швидкі» стилі для ідей та семантичні токени для продакшену
Уріач описує конфлікт між більш «сирими» візуальними стилями для ідей та суворо семантичними токенами в коді. Якщо все змішати в один шар, команда ризикує отримати дві (або більше) «правди» й хаос у Figma.
Його порада для великих команд:
- тримати швидкі стилі для ескізів/ідеації окремо від набору семантичних змінних;
- на рівні продакшен-компонентів підв’язувати саме семантичні токени;
- на рівні «пісочниці» — дозволяти використання більш інтуїтивних назв (типу Brand/Primary).

Приклад: дизайнер у процесі ідей робить активну вкладку з бордером Brand/Primary. Коли ж з'являється компонент «Tabs» для бібліотеки, цей бордер у ньому має стати семантичним токеном, наприклад border-active. У файлі, який потрапляє в бібліотеку, стилі приводять до семантики.

Автор окремо застерігає від надмірної деталізації, на кшталт токенів рівня header-nav-item-active. Супер-специфічні токени варто розглядати як опціональний рівень — вони множать кількість сутностей для підтримки.
3. Спільнота та «хаб — споук» модель
Уріач підкреслює: дизайн-система не працює без внутрішніх адвокатів у product, design і engineering. Інакше центральна команда стає вузьким горлом — бізнес росте швидше, ніж вони встигають відповідати на запити.
IBM, за словами Робіна Кеннона, використовує «hub and spoke» модель: центральна команда (hub) розвиває принципи й базу, а продукт-команди (spokes) отримують повноваження розширювати й підтримувати рішення на місцях.
Практичні формати спільноти:
- спільний Slack/Teams-канал для всіх, хто працює з системою;
- регулярні «open house» сесії, демо чи навчальні мітинги;
- офісні години або щомісячні Q&A для дизайнерів, розробників, продактів.
Уріач посилається на приклад Zalando, де систему підтримують порталом, навчанням та культурою «відкритого дому». Аналогічно команда Gov UK проводить публічні заходи — від воркшопів з доступності до повноцінних «design system days».
4. (Over) communication — краще забагато, ніж замало
Щоб adoption не «просідає», команда системи має постійно тримати інших у курсі. Автор пропонує ввести ритм оновлень, наприклад прив'язаний до спринтів:
- в останній день спринту — changelog / release notes;
- на початку спринту — «What’s next?» з планами робіт;
- в середині — шаринг цікавих ресурсів для натхнення;
- щокварталу — «small wins»;
- раз на півроку — результати опитувань про зрілість дизайну;
- оновлення щодо найму — по факту.

Ці повідомлення можуть супроводжуватися конкретними release notes в чаті: що додали, що перейменували, які зміни потрібно «Accept library updates» у Figma.

Окремий пласт комунікації — всередині самого Figma-файлу:
- детальні позначки у version history (що змінено, ким, навіщо);
- змістовні описи гілок (branches) при branch-based workflow;
- використання branch-ів для дрібних фіксів, а великі релізи — в нових файлах, щоб паралельно жити v1 і v2.

Як інструмент контролю якості Уріач рекомендує плагін Design Lint. З кастомними правилами він дає змогу:
- знайти відсутні стилі;
- позначити некоректне використання color styles;
- виявити компоненти, яких немає в бібліотеці або без опису.
Indexable — як зробити компоненти знахідними
1. Розрив «гарної бібліотеки» й реального використання
Автор описує типовий сценарій: команда випускає базову бібліотеку (inputs, navigation, alerts), а далі помічає, що продуктові флоу створюють «обхідними шляхами» — без системи. Основні причини:
- команда не знає, що саме вже існує;
- не розуміє, як це називається;
- не бачить маппінг в код;
- частину компонентів зробили «на майбутнє», до реального попиту.
Висновок Уріача: індексація — це не тільки структура бібліотеки, а й окрема комунікаційна робота.
2. Публічний канал про стан компонентів
У Slack/Teams доцільно мати окремий канал «design-system-components» (назва умовна), де команда системи регулярно відповідає на п'ять простих запитань:
- що зараз у роботі;
- які оновлення очікуються найближчим часом;
- хто за що відповідає;
- як інші можуть допомогти чи законтриб'ютити;
- які є блокери.
Так формується «жива індексація» — не тільки того, що вже в бібліотеці, а й того, що скоро з'явиться.
3. Іменування для пошуку: вербозність замість мінімалізму
Уріач пропонує орієнтуватися на принцип: «discoverability over complexity». Часто краще більш довга, але точна назва, ніж лаконічна, в яку кожен вкладає своє.
Він розбирає приклад меню з діями «Import / Export / Share»:

Без контексту це може бути dropdown, popover, modal, action list — команда не домовиться. Але в інтерфейсі це меню прив'язане до триточкового контролу над результатами пошуку:

У такому контексті автор пропонує називати компонент search actions або іншим контекстним терміном (action list, search dropdown, filter menu тощо) — не намагаючись одразу зробити «універсальну» назву.
Щоб не втрачати альтернативи, в поле опису компоненту можна дописати інші можливі назви як аліаси, щоб різні люди знаходили його своїми словами.

Logical — компоненти, якими реально зручно користуватися
1. Проблема «prop soup»
Figma дає дуже багато можливостей через component properties. Уріач зауважує, що часто системні дизайнери оптимізують під створення компонента (усі можливі варіанти в одному сеті), а не під використання. У результаті:
- панель властивостей перетворюється на «prop soup»;
- споживачі компонентів не розуміють, з чого почати й що можна міняти;
- з'являються однакові питання на кшталт «чому navbar з 4 табами, якщо в проді 3?».

2. Розділення перезавантажених компонентів
У прикладі з кнопкою один «універсальний» компонент містить:
- 4 intentions: primary, secondary, error, warning;
- 2 type: fill / stroke;
- 3 size: large, medium, small;
- 4 state: default, hover, focus, inactive.

Автор ставить запитання: чи справді дизайнеру потрібно в одному місці перемикатися між primary та warning? У реальному флоу це дві різні задачі, тому логічніше винести їх у окремі компоненти-варіанти:
- Button / Primary;
- Button / Secondary;
- Button / Error;
- Button / Warning.

На думку автора, це дає дві переваги:
- список Assets читається простіше — ключові варіанти видно візуально;
- користувач компонента приймає на один вибір менше — не потрібно згадувати, який intention включити.
Так втрачається ідеальний паритет з кодом (де все може бути однією абстрактною кнопкою), але Уріач вважає це прийнятним компромісом: розробники отримують документацію з відповідністю варіантів, а дизайнери — логічні для них компоненти.
3. Auto layout як обов'язковий інструмент
Ще одна практична порада — «all in» на auto layout у компонентах:
- знімає потребу «на око» виставляти відступи;
- дозволяє нетехнічним ролям (копірайтери, продакти) спокійно правити текст у компонентах;
- через змінні padding/gap усередині можна стандартизувати spacing.
Автор вважає, що суцільне використання auto layout створює для команди «рейки» для відступів і вирівнювання, що напряму підсилює консистентність.
Specific — навмисна конкретність замість гіпер-універсальності
1. Чому «search» і «combobox» мають жити окремо
Останній акцент Уріача — на специфічності назв і компонентів. Він порівнює термінологію великих систем:
- Apple HIG — «search field»;
- Material Design — «search bar»;
- Fluent 2 — «combobox» з typeahead-пошуком, без окремого search-компонента.
Для системної команди ці відмінності логічні, але для більшості дизайнерів і розробників — ні. Тому коли все загортається в один універсальний компонент типу «Input / Search / Combobox», з властивістю «mode», виникають зайві питання: що саме я шукаю в Assets, як це потім виявиться в коді, чи можу я використати цей «режим» тут?
Автор пропонує відокремлювати сутності:
- Search як самостійний компонент;
- Combobox — інший компонент.

Це означає певну «неефективність» у короткостроковій перспективі (два компоненти, більше підтримки), але різко скорочує час пошуку й помилкові використання. На думку Уріача, справжню ефективність дизайн-система здобуває поступово, а не в перший день — тому дозволити собі таку неефективність на старті цілком раціонально.
Що можна взяти в роботу вже зараз
- Додати до ключових Figma-компонентів і стилів описи з аліасами назв (включно з кодовими).
- Розвести «швидкі» стилі для ескізів і семантичні токени для продакшен-компонентів (особливо в великих командах).
- Запустити публічний канал або регулярні сесії навколо дизайн-системи, де центральна команда ділиться планами, релізами й запрошує до контриб'юцій.
- Переглянути найбільш «монолітні» Figma-компоненти та розділити їх за реальними сценаріями використання, навіть якщо це збільшить їх кількість.
- Стандартизувати використання auto layout та spacing-variables у всіх базових компонентах.
- Для «супер-широких» компонентів (на кшталт «універсального поля вводу») розглянути розділення на конкретні компоненти: search, combobox, filter тощо.
Ці кроки безпосередньо підтримують ідею Луїса Уріача: компоненти дизайн-системи мають бути створені насамперед для споживання командами, а не як максимально «чиста» абстракція заради самої абстракції.
Джерело: Luis Ouriach – Smashing Magazine. Дата оригіналу: 2023-12-18.