У цьому файлі викладено бачення та вимоги до бібліотеки, яка розробляється. Наразі бібліотека перебуває в активній розробці, тому цей документ є декларацією намірів.
Дизайн-система Дії доступна публічно протягом останніх пʼяти років, а візуальний стиль усіх вебсайтів також відкритий. Проте, якщо потрібно створити щось нове, пов’язане з Дією, або щось, що має бути візуально доступним і якісним, кожного разу доводиться вигадувати все з нуля.
Тому я вирішив створити CSS-бібліотеку, яка дозволить простіше та швидше створювати інтерфейси, схожі або натхненні Дією.
Цей проєкт жодним чином не пов’язаний із державою чи розробниками Дії і є лише моєю ініціативою.
У цьому файлі стисло описано функціонал бібліотеки.
Перша фаза розробки: MVP-1.
MVP розшифровується як Minimum Viable Product. Нижче наведено плани на перший реліз бібліотеки:
✅: так позначено вимоги, які вже виконано.
- 🚧 Бібліотека доступна для встановлення через NPM як окремий пакет.
- 🚧 Цей пакет експортує:
- CSS-файли, мінімізовані та з мапами вихідного коду.
- Публічні безкоштовні шрифти.
- ✅ Класи та стилі оптимізовані для використання на мобільних пристроях із вузькими екранами.
- ✅ Усі розміри тексту прив’язані до розміру тексту в кореневому елементі
<html>, усюди використовуються одиниці розміруrem. - ✅ Бібліотека підтримує сучасні браузери, підтримки браузера IE немає.
- 🚧 Документація бібліотеки представлена на окремому сайті та описує весь функціонал бібліотеки.
- ✅ Бібліотека надає набір CSS-змінних, доступних у корені сайту. Усі ці змінні мають префікс
diі виглядають приблизно так:
:root {
--di-text-color: #000;
--di-bg-color: #fff;
}- ✅ Детальний опис доступних змінних наведено в розділах нижче.
- ✅ Бібліотека надає набір стандартних кольорів через CSS-змінні.
- ✅ Кольори поділяються на:
- ✅ палітру чорних, сірих і білих для тексту та підкладки;
- ✅ палітру з нейтральним забарвленням;
- ✅ палітру з позитивним забарвленням;
- ✅ кольори із застережливим забарвленням;
- ✅ палітру для підсвічення помилок;
- ✅ усі інші кольори з дизайн-системи Дії.
- ✅ Спрощені градієнти в змінних.
- ✅ CSS-класи для підкладки:
- ✅ усіх кольорів у забарвленні
100%; - ✅ усіх кольорів у забарвленні
80%; - ✅ усіх кольорів у забарвленні
60%; - ✅ усіх кольорів у забарвленні
40%; - ✅ усіх кольорів у забарвленні
20%; - ✅ усіх доступних градієнтів. У рамках
MVP-1доступні не всі можливі градієнти.
- ✅ усіх кольорів у забарвленні
- ✅ CSS-класи для тексту:
- ✅ усіх кольорів у забарвленні
100%та всіх кольорів без градації забарвлення.
- ✅ усіх кольорів у забарвленні
- Стилі та розмір шрифту для тексту різного розміру: маленький текст, звичайний текст, дуже маленький текст.
- Стилі та розмір шрифту для HTML-заголовків
h1-h6. - Стилі та розмір шрифту для HTML-заголовків
h1-h6в режиміdisplay. - Стилі та розмір шрифту для заголовку
H1, але супер величезного розміру. - Стилі та розмір шрифту для підкресленого тексту різних розмірів.
- Стилі та розмір шрифту для цитат.
- Списки нумеровані та ненумеровані з відступами.
- Блок тексту аля
<p>із зовнішніми відступами. - Посилання різних видів як тут: https://thedigital.gov.ua/news/rozvivaemo-napivprovidnikovi-tekhnologii-pidpisano-memorandum-pro-spivpratsyu
- ✅ Шрифти
- ✅ Експортується і підключається шрифт
e-ukraineдля основного тексту іe-ukrainer-headспеціальних заголовків. - ✅ Більше про шрифти з дизайн-системи: https://thedigital.gov.ua/fonts
- ✅ Шрифти надаються в форматах:
woff,woff2іotf.
- ✅ Експортується і підключається шрифт
- Кнопки різних розмірів: маленькі і великі.
- стани:
hover,disabled
- стани:
- Три види кнопок: звичайна, лише з обідком, текстова кнопка.
- Базовий елемент вводу який включає в себе:
inputв різних станах.labelпідʼєднаний до нього- елемент з підказкою/помилкою
- Елемент для створення поля пошуку БЕЗ ІКОНКИ (Іконки то
MVP-2).- різні стани
labelпідʼєднаний до нього- елемент з підказкою/помилкою
- Окремо елемент з підказкою/помилкою.
- ✅ Бейджі 5-ти кольорів: ✅ чорний, ✅ сірий, ✅ жовтий, ✅ зелений, ✅ червоний.
- ✅ Бейджи з додаткових кольорів з палітри Дії.
- ✅ Таби двох типів: прямокутні і з круглими кутами.
- ✅ Три стани: неактивний, активний, нейтральний.
- ✅ Всі перемикачі ідуть в двох розмірах: нормальний і маленький.
- ✅ Перемикач з анімацією в стилі "Apple" пристроїв.
- ✅ Радіо кнопка.
- ✅ Чекбокс.
- ✅ Аватари п’яти різних розмірів.
- ✅ Аватари з фото.
- ✅ Аватари з літерами.
- ✅ Заголовок картки з другорядним текстом.
- 🚧 Картинка із заголовком і другорядним текстом унизу.
- 🚧 Картинка із заголовком і текстом праворуч.
- ✅ Таблиця на основі елементів таблиці і
displayвластивості CSS.
цей розділ доповнюється
Це не є частиною офіційної дизайн-системи. Додано для зручності і щоб бібліотека була самодостатньою.
- 🚧 Для властивостей флексбоксів і похідних.
- 🚧 Для внутрішніх відступів різних розмірів.
- 🚧 Для зовнішніх відступів різних розмірів.
- 🚧 Для віступів на основі
rem. - 🚧 Для розміру шрифту.
- 🚧 Для відступів.
- 🚧 Загальні стилі по типу CSSBaseline в Material UI
Друга фаза розробки: MVP-2.
Тут описаний додатковий функціонал, який доповнює MVP-1. Цей функціонал буде реалізований вже після першої фази.
- Додатково експортовані SASS(SCSS) файли, які дозволять сконфігурувати стилі під себе, задавши свої змінні замість типових.
- Документація доступна англійською мовою.
- Градієнт для Hover.
- Градієнт для рамки.
- Статичні градієнти в змінних.
- Для створення випадвючого списку додається JavaScript.
- Випадаючий список на основі input.
- Таблиця на основі флексбоксів з
ariaатрибутами.
- Тема MUI для Реакту по мотивах Дії з усіма основними компонентами.
- Решта компонентів має буди в стилі Дії.