Базовый рабочий процесс
Назначение и область применения
Этот документ описывает типичные рабочие процессы и паттерны разработки, используемые при создании пользовательских интерфейсов с помощью@ui8kit/core. Он охватывает распространенные сценарии, с которыми сталкиваются разработчики при компоновке компонентов, применении стилизации через систему вариантов и построении стандартных паттернов UI, таких как карточки, формы и макеты.
Для продвинутых сценариев, где стандартных компонентов недостаточно (например, создание пользовательских компонентов форм), см. Продвинутый рабочий процесс. Для общих рекомендаций и советов по производительности см. Лучшие практики.
Источники: .devin/wiki.json181-188 src/components/README.md1-259
Рабочий процесс выбора компонента
Первый шаг в любом рабочем процессе разработки — это выбор подходящего компонента для вашего случая использования. Библиотека следует трехуровневой иерархии, где каждый уровень служит определенным целям.| Сценарий | Выбор компонента | Причина |
|---|---|---|
| Универсальный контейнер со стилями | Box | Гибкий примитив с полной поддержкой вариантов |
| Семантический HTML-элемент (section, article, nav) | Block | Рендерит семантические теги через проп component |
| Сеточный макет | Grid | CSS Grid с адаптивными пресетами |
| Flexbox-макет | Flex или Stack | Flex для общих случаев, Stack для вертикального/горизонтального |
| Интерактивная кнопка | Button | Готовый стиль с вариантами и состояниями |
| Контентная карточка | Card | Составной компонент с Header/Content/Footer |
| Шаблон дашборда | DashLayout | Полный макет с боковой панелью и шапкой |
Рабочий процесс базовой стилизации
Все компоненты принимают пропы вариантов вместо строк className. Этот рабочий процесс показывает, как применять стилизацию через систему вариантов.Пошагово: Стилизация компонента
Шаг 1: Применение вариантов отступовnone, xs, sm, md, lg, xl, 2xl, auto
Шаг 2: Применение вариантов цветов
Справочник пропов вариантов
| Категория | Пропы | Значения |
|---|---|---|
| Отступы | p, px, py, pt, pb, pl, pr | none, xs, sm, md, lg, xl, 2xl |
| Отступы | m, mx, my, mt, mb, ml, mr | none, xs, sm, md, lg, xl, 2xl, auto |
| Цвета | bg, c, borderColor | Токены цветов дизайн-системы |
| Скругление | rounded | none, sm, md, lg, xl, 2xl, 3xl, full |
| Тень | shadow | none, sm, md, lg, xl, 2xl |
| Макет | w, h, minH, maxW | auto, full, screen, fit, min, max |
| Позиция | position | static, relative, absolute, fixed, sticky |
Рабочие процессы паттернов макетов
Вертикальная укладка с Stack
Наиболее распространенный паттерн макета — это вертикальная укладка элементов.
Stack:
gap: Пространство между дочерними элементами (xs,sm,md,lg,xl,2xl)align: Выравнивание по поперечной оси (start,center,end,stretch)justify: Выравнивание по главной оси (start,center,end,between,around)
Горизонтальный макет с Group
Для горизонтальных расположений используйте Group.
Сеточный макет с Grid
Для многоколоночных макетов используйте Grid с адаптивными пресетами.
cols:
"1-2-3": 1 колонка на мобильных, 2 на планшетах, 3 на десктопе"2": 2 колонки на всех разрешениях- Кастомные: Используйте стандартные пропы Grid
Адаптивный контейнер
ИспользуйтеContainer для центрированных макетов с максимальной шириной.
xs: 448pxsm: 640pxmd: 768pxlg: 1024pxxl: 1280px
Паттерны UI-компонентов
Работа с карточками
Card — это составной компонент с семантическими подкомпонентами.
Работа с кнопками
Button поддерживает варианты, размеры, состояния загрузки и секции с иконками.
default: Стандартная кнопкаprimary: Основное действиеsecondary: Второстепенное действиеdestructive: Опасные действияoutline: Стиль с обводкойghost: Минималистичный стильlink: Стиль ссылки
Работа с типографикой
ИспользуйтеTitle для заголовков и Text для основного контента.
Title order:
order={1}: тег<h1>order={2}: тег<h2>order={3}: тег<h3>- (продолжается до
order={6})
Работа с бейджами
ИспользуйтеBadge для индикаторов статуса и меток.
default: Стандартный бейджsuccess: Зеленый/позитивныйwarning: Желтый/предупреждениеerror: Красный/негативныйoutline: Стиль с обводкой
Рабочий процесс семантического HTML
ИспользуйтеBlock с пропом component для рендера семантических HTML5-элементов.
section: Тематическая группировкаarticle: Самодостаточный контентnav: Навигационные ссылкиheader: Вводный контентfooter: Контент подвалаaside: Контент боковой панелиmain: Основная область контента
Распространенные сценарии разработки
Сценарий 1: Построение карточки функции
Сценарий 2: Построение макета формы
Когда специфичные для форм компоненты недоступны, компонуйте макеты, используяBlock и Box.
Сценарий 3: Построение секции дашборда
Сценарий 4: Адаптивная навигация
Таргетирование атрибутов данных
Все UI-компоненты включают атрибутыdata-class для семантического таргетирования в CSS и тестах.
Итоговая таблица рабочих процессов
| Задача | Используемые компоненты | Ключевые пропы | Паттерн |
|---|---|---|---|
| Вертикальный макет | Stack | gap, align | Вертикальная укладка элементов |
| Горизонтальный макет | Group | gap, justify | Горизонтальное расположение элементов |
| Сеточный макет | Grid, GridCol | cols, gap, span | Многоколоночные адаптивные макеты |
| Контентная карточка | Card + подкомпоненты | p, rounded, shadow | Card.Header → Content → Footer |
| Семантический контейнер | Block | component, варианты | Section, article, nav и т.д. |
| Интерактивная кнопка | Button | variant, size, состояния загрузки | Триггеры действий |
| Типографика | Title, Text | order, size, weight | Заголовки и основной текст |
| Индикатор статуса | Badge | variant, size, dot | Метки и статусы |
| Центрированный контент | Container | size, centered | Адаптивные макеты с максимальной шириной |
| Макет формы | Block, Box | Варианты отступов и границ | Пользовательские композиции форм |