Начало работы
Этот документ охватывает установку, конфигурацию и начальную настройку@ui8kit/core в вашем React-приложении. Он предоставляет пошаговые инструкции по интеграции библиотеки в различные типы проектов (Next.js, Vite, Create React App) и демонстрирует базовые паттерны использования компонентов.
Для получения подробной информации об архитектуре см. Архитектура. Для полной документации по API компонентов см. Справочник API. Для продвинутых паттернов интеграции, включая настройку монорепозитория, обратитесь к SUBMODULE_GUIDE.md
Предварительные требования
Перед установкой@ui8kit/core убедитесь, что ваша среда разработки соответствует следующим требованиям:
| Требование | Версия | Назначение |
|---|---|---|
| Node.js | 18.0.0+ | JavaScript runtime |
| React | 18.0.0 или 19.0.0+ | Peer dependency |
| React DOM | 18.0.0 или 19.0.0+ | Peer dependency |
| Tailwind CSS | 3.4.0+ | Utility-first стилизация |
| TypeScript | 5.0.0+ (опционально) | Типобезопасность |
Методы установки
Библиотека поддерживает несколько подходов к установке для различных архитектур проектов и требований к оптимизации.Процесс установки
Метод 1: Установка полной библиотеки (Рекомендуется)
Установите полную библиотеку со всеми 15 UI-компонентами и 3 шаблонами макетов:- Базовые примитивы:
Block,Box,Grid,Flex,Stack - UI-компоненты:
Button,Card,Text,Title,Container,Icon,Image,Badge,Group,Sheet,Accordion - Компоненты макетов:
DashLayout,LayoutBlock,SplitBlock - Систему вариантов CVA и утилиты для тем
Метод 2: Установка отдельных компонентов
Установите отдельные компоненты для оптимального размера бандла:- UI-компоненты →
components/ui/ - Компоненты макетов →
layouts/
Метод 3: Submodule для монорепозитория
Для архитектур монорепозиториев интегрируйте как Git submodule:- Прямой доступ к исходникам для кастомизации
- Интеграцию с Turbo/workspace
- Разрешение зависимостей без копирования
Настройка проекта
После установки настройте ваш проект для включения утилит Tailwind CSS, переменных темы и разрешения путей TypeScript.Шаги настройки по файлам
Шаг 1: Установка Tailwind CSS
Если Tailwind CSS еще не установлен:tailwind.config.js и postcss.config.js.
Источники: README.md29-34
Шаг 2: Настройка Tailwind
Обновитеtailwind.config.js, чтобы включить пути к компонентам библиотеки и активировать темную тему:
- Пути
content: Должны включать файлы исходников библиотеки, чтобы предотвратить удаление необходимых классов Tailwind darkMode: 'class': Требуется для функциональности переключения темы- Цвета через CSS-переменные: Включают динамическое изменение темы через паттерн
hsl(var(--primary))
Шаг 3: Настройка CSS-переменных и слоев Tailwind
Создайте или обновите ваш глобальный CSS-файл (обычноsrc/index.css или app/globals.css):
- Цвета используют формат HSL без обертки
hsl():"187.4739 173.4032% 31.3580%" - Применяются в конфигурации Tailwind как:
hsl(var(--primary)) - Этот паттерн позволяет переключать тему во время выполнения
Шаг 4: Настройка TypeScript (Опционально)
Если используете TypeScript, добавьте алиасы путей вtsconfig.json:
Базовое использование
После настройки вы можете импортировать и использовать компоненты с системой вариантов CVA.Паттерн импорта и использования компонентов
Пример 1: Первый компонент
Создайте простую карточку с кнопкой, используя пропсы вариантов:- Пропсы вариантов:
p="lg",rounded="xl",shadow="md"вместоclassName - Составные компоненты:
Card.Header,Card.Content,Card.Footerдля гибкой композиции - Семантические компоненты:
Text as="h2"рендерит элемент<h2> - Макет Stack:
Stack gap="md"для вертикальных отступов
Пример 2: Настройка провайдера темы
Оберните ваше приложение вThemeProvider для поддержки темной темы:
useTheme в компонентах:
modernUITheme- Современная дизайн-системаskyOSTheme- Палитра, вдохновленная небомlesseUITheme- Минималистичная эстетика
Пример 3: Композиция макета
Постройте макет страницы с примитивами:- Block: Семантический контейнер (
section,nav,main,article) - Container: Адаптивная обертка с максимальной шириной
- Stack: Вертикальный макет с отступами
- Grid: CSS Grid с управлением колонками
- Box: Универсальный div с пропсами вариантов
Настройка для конкретных фреймворков
Интеграция с Next.js
App Router (Next.js 13+)
1. Установите зависимости:app/layout.tsx:
suppressHydrationWarning к <html>, чтобы предотвратить предупреждения о несоответствии класса темы во время гидратации.
3. Обновите app/globals.css:
Импортируйте слои Tailwind и CSS-переменные, как показано в Шаг 3
4. Настройте tailwind.config.js:
Pages Router (Next.js 12 и ранее)
Настройтеpages/_app.tsx:
Интеграция с Vite
1. Создайте проект Vite React:vite.config.ts:
src/main.tsx:
src/App.tsx:
Интеграция с Create React App
1. Создайте проект CRA:tailwind.config.js:
src/index.tsx:
src/App.tsx:
Проверка
После настройки проверьте вашу установку с помощью этого чек-листа:Чек-лист проверки
| Проверка | Ожидаемое поведение | Решение проблем |
|---|---|---|
| Импорт компонента | import { Button } from '@ui8kit/core' работает без ошибок | Проверьте, что существует node_modules/@ui8kit/core |
| Пропсы вариантов | <Box p="lg" rounded="md" /> применяет классы | Проверьте, что пути content в Tailwind включают библиотеку |
| Переключение темной темы | Клик по переключателю темы меняет внешний вид | Проверьте darkMode: 'class' в конфигурации Tailwind |
| CSS-переменные | Цвета рендерятся корректно в светлом/темном режиме | Проверьте переменные :root и .dark в CSS |
| Типы TypeScript | Нет ошибок типов в IDE | Проверьте версию TypeScript ≥5.0.0 |
| Dev-сервер | Приложение запускается без ошибок в консоли | Проверьте установку peer-зависимостей |
Тестовый компонент
Создайте тестовый компонент для проверки всех функций:- Карточка рендерится с отступами, скругленными углами и тенью
- Кнопка меняет внешний вид при наведении
- Переключатель темы переключает между светлым/темным режимами
- Цвета обновляются на основе CSS-переменных
- Нет ошибок или предупреждений в консоли
Следующие шаги
После завершения настройки:- Изучите компоненты: Просмотрите раздел UI-компоненты для подробной документации по компонентам
- Изучите варианты: Изучите Система вариантов, чтобы понять 12 многократно используемых вариантов
- Создавайте макеты: Исследуйте Компоненты макетов для шаблонов дашбордов и страниц
- Изучите паттерны: Проверьте Руководство разработчика для распространенных паттернов использования
- Реализуйте темную тему: См. Темная тема для продвинутого управления темами