Newer
Older
vmk-ui-kit / PROJECT_NOTES.md

Рабочие заметки по VMK UI Kit

Контекст и цель

Создать UI kit vmk-ui-kit на основе Figma-макета, с сохранением API-совместимости с gnexus-ui-kit. Существующие проекты, использующие gnexus-ui-kit, должны иметь возможность мигрировать без массовой переписки кода.

Согласованные решения

  • Пакет: новый пакет vmk-ui-kit, а не drop-in replacement. API импортов и компонентов повторяет gnexus-ui-kit, но имя пакета своё.
  • Билд-стек: Gulp 5 + Dart Sass (@use/@forward) + PostCSS/autoprefixer + clean-css + esbuild + BrowserSync. Максимальная близость к reference для простоты совместимости.
  • Playwright: добавлен @playwright/test для визуального сравнения и точной подгонки компонентов под дизайн.
  • Коммиты: без Co-Authored-By и прочего соавторства.
  • Документация: ведём PROJECT_NOTES.md для внутреннего состояния; публичная документация разработчика и демо-страницы компонентов — в docs/ и demo/, как в gnexus-ui-kit.
  • Порядок работы:
    1. Общие стили и токены.
    2. Компоненты, общие для нового и старого наборов.
    3. Компоненты из gnexus-ui-kit, отсутствующие в новом дизайне, — перерисовать в новом стиле.
    4. Новые компоненты, есть только в новом наборе.

Ссылки

Текущее состояние

Что сделано

  • Созданы package.json, gulpfile.js, .gitignore.
  • Добавлены npm-скрипты: build, build:vue, dev, start, test:e2e, test:vue-adapter, build:example:vue.
  • Playwright добавлен в devDependencies.

Что нужно сделать

  1. Подключить Figma-макет (получить токены).
  2. Создать структуру исходников:
    • src/scss/ — токены, утилиты, компоненты.
    • src/js/ — browser JS entry и UI-компоненты.
    • src/vue/ — Vue 3 adapter.
    • demo/ — demo/docs страница и HTML partials.
    • public/assets/ — шрифты, иконки, изображения.
  3. Создать начальную документацию в docs/:
    • index.md — обзор и quick start.
    • getting-started.md — подключение.
    • vue.md — Vue adapter.
    • style-guide.md — design tokens и принципы.
    • release.md — проверки перед релизом.
    • component-coverage.md — карта компонентов.
  4. Настроить Playwright конфиг (playwright.config.js) и первый визуальный тест.
  5. Создать Vue example в examples/vue/ для smoke build.
  6. Реализовать foundation: типографику, палитру, spacing, токены.
  7. Реализовать базовые компоненты (button, input, badge и т.д.) и их Vue-адаптеры.

Заметки по reference

  • gnexus-ui-kit публикует browser API в window.GNexusUIKit и одновременно в window (Helper, Toasts, Modals и т.д.).
  • Vue adapter — render-function .js файлы, без .vue SFC.
  • CSS entry src/scss/kit.scss импортирует все компоненты и базовые стили.
  • Иконки — Phosphor Icons, обязательный base class ph.
  • Варианты: primary, secondary, accent, success, warning, danger, error, info.

Риски и открытые вопросы

  • Figma недоступна публично — блокирует вытаскивание точных токенов.
  • Нужно решить, копировать ли IBM Plex Mono + Phosphor Icons в public/assets/ или подключать через npm/CDN.
  • Нужно ли сохранять dist/js/vmk-ui-kit.js global namespace как VMKUIKit или дублировать под GNexusUIKit для совместимости? (Пока выбран VMKUIKit, потому что пакет новый.)