@verta/ui-gates (0.1.0)

Published 2026-07-06 18:34:26 +00:00 by forgeadmin

Installation

@verta:registry=
npm install @verta/ui-gates@0.1.0
"@verta/ui-gates": "0.1.0"

About this package

@verta/ui-gates

Дизайн-гейты Verta: Biome-пресет (+GritQL-правила) и ui-gates-check (токен-контракт + добивка динамики). Ловит машина, не ревью.

Подключение (consumer)

pnpm add -D @verta/ui-gates

biome.json проекта:

{ "extends": ["@verta/ui-gates/biome"] }

Ось гейта в package.json / CI:

{ "scripts": { "ui-gate": "ui-gates-check" } }

Пакет должен быть прямым devDependency — пути GritQL-плагинов резолвятся как ./node_modules/@verta/ui-gates/rules/*.grit от корня проекта (pnpm-симлинк подходит).

Что ловится

  • nursery/noInlineStyles, nursery/useSortedClasses (функции: cn, cva, clsx, tw) — Biome-правила;
  • no-native-interactive.grit — нативные <button>/<input>/<select>/<textarea>/<a> вне src/shared/ui/**;
  • no-raw-color-classname.grit — arbitrary-цвета в классах: bg-[#…], text-[rgb(…)], ring-[oklch(…)];
  • no-raw-color-css.grit — сырые цвета в CSS вне токен-файла (globals.css);
  • ui-gates-check — каждый токен из contract/tokens.json объявлен в :root и .dark (не-цветовые — только :root); сырые цвета в cn()/cva()/ template-строках, которые GritQL не видит.

Known limitations: интерполяция `bg-${tone}` не анализируется; useSortedClasses не сортирует объект-пропсы clsx и часть вариантов — см. доку Biome.

Semver-политика

Якорь для всех UI-реп — версия в Forgejo npm.

  • major — новое правило гейта или изменение состава contract/tokens.json required-имён: ломает CI потребителей.
  • minor — backwards-compatible опция/улучшение диагностики/ослабление правила.
  • patch — фикс правила или репорта без изменения поверхности.

Релиз-флоу

  1. В ветке: pnpm changeset (описать изменение, выбрать bump по политике выше).
  2. Там же: pnpm changeset version (бампит версию, пишет CHANGELOG).
  3. Мерж в main → CI (.forgejo/workflows/publish.yml) публикует недостающие версии в Forgejo npm (changeset publish, идемпотентно).

Peer-диапазон Biome запинован (>=2.5.2 <2.6.0): nursery-правила и GritQL экспериментальны, бамп Biome = перепроверка фикстур.

Dependencies

Dependencies

ID Version
oxc-parser ^0.139.0

Development dependencies

ID Version
@biomejs/biome 2.5.2
vitest ^3.2.4

Peer dependencies

ID Version
@biomejs/biome >=2.5.2 <2.6.0
Details
npm
2026-07-06 18:34:26 +00:00
30
5.7 KiB
Assets (1)
Versions (2) View all
1.0.0 2026-07-07
0.1.0 2026-07-06