Привет! Вы находитесь в репозитории дизайн-системы и React-компонентов, созданных для команды xi.team и платформы xieffect.
Выполните установку зависимостей, запустив команду в корне репозитория:
npm i
Если зависимости не устанавливаются, возможно, потребуется использовать флаг --legacy-peer-deps.
Запустите следующую команду в корне репозитория для начала локальной разработки компонентов:
npm run dev
Запустится Storybook из xi.storybook на порту 6006 и среда тестирования компонентов из xi.playground на порту 3600, а также все компоненты перейдут в режим HMR.
Процесс добавления новых иконок в проект:
- Выбор иконок из дизайна в Figma
- Экспорт в формате SVG из фрейма 24×24 пикселя
- Оптимизация через SVGO для удаления лишних атрибутов и конвертации из stroke в fill
- Создание нового файла в директории
packages/pkg.icons/icons/
с названием иконки в формате PascalCase (например,NewIcon.tsx
) - Использование базового шаблона для компонента иконки:
import { Svg, IconProps } from '../Svg'; export const NewIcon = ({ ...props }: IconProps) => ( <Svg {...props}> <path d="..." /> // SVG-путь из оптимизированного файла </Svg> );
- Добавление названия иконки в массив
icons
в файлеpackages/pkg.icons/config.ts
- Сборка пакета иконок командой
npm run build
в директорииpackages/pkg.icons/
- Проверка отображения иконки в Storybook
Все компоненты иконок имеют единый интерфейс и поддерживают настройку размера и темы через пропсы.
Пакеты публикуются автоматически с помощью GitHub Actions. Перед публикацией убедитесь, что версия пакета в файле package.json обновлена в соответствии с внесёнными изменениями (соблюдая SemVer). Перед отправкой изменений не забудьте выполнить npm i в корне репозитория.