using-ui-stack — скилл для Claude Code: единый дизайн-система в UI
Заставляет агента строить интерфейс по фиксированным правилам: сетка 8px, цвета 60-30-10, типографика, тёмная тема и состояния интерактивных элементов.
npx skills add spencerpauly/awesome-cursor-skills --skill using-ui-stack -a claude-codeЧто делает using-ui-stack
Скилл включается, когда агент генерирует компоненты интерфейса, и подставляет в работу набор правил вместо случайных значений. Отступы считаются кратными 8px, цвета делятся по схеме 60-30-10 с семантическими статусами, шрифтовые размеры идут по шкале с шагом 1.25. Для тёмной темы прописаны пары токенов: фон white → slate-950, текст slate-900 → slate-100, границы slate-200 → slate-800. Чистый чёрный в тёмной теме не используется.
Каждый интерактивный элемент получает пять состояний: обычное, наведение, нажатие, фокус с видимым кольцом и отключённое. Есть требования по доступности — контраст не ниже 4.5:1 для текста, зоны нажатия от 44×44px, семантическая разметка и навигация с клавиатуры. Анимации ограничены 150–300ms и учитывают prefers-reduced-motion. Для наложений задана шкала z-index от z-10 для выпадающих списков до z-60 для подсказок.
Порядок работы такой: сначала скилл проверяет, есть ли в проекте конфиг ui-stack или свои токены. Если их нет, применяются значения по умолчанию из самого скилла. Дальше каждый компонент проверяется на попадание в сетку, схему цветов и наличие всех пяти состояний, а тёмная тема — переключением класса или атрибута. Если у вас уже есть своя дизайн-система, эти умолчания будут с ней спорить, поэтому конфиг лучше задать заранее.
Какие задачи решает
- собрать компонент с отступами по одной сетке, а не наугад
- добавить тёмную тему без чёрных заливок и потерянного контраста
- дописать состояния наведения и фокуса всем кнопкам и полям
- развести цвета по фоновым, основным и акцентным долям
- проверить доступность и клавиатурную навигацию до ревью
Примеры запросов агенту
- Собери карточку товара по правилам using-ui-stack
- Сделай форму входа: сетка 8px, пять состояний, тёмная тема
- Проверь этот компонент на соответствие дизайн-системе из скилла
Как установить using-ui-stack
1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill using-ui-stack -a claude-code2Вручную: положить файлы
~/.claude/skills/using-ui-stack/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/using-ui-stack/
1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill using-ui-stack -a codex2Вручную: положить файлы
.agents/skills/using-ui-stack/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill using-ui-stack -a cursor2Вручную: положить файлы
.cursor/skills/using-ui-stack/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install spencerpauly/awesome-cursor-skills using-ui-stack2Вручную: положить файлы
.github/skills/using-ui-stack/SKILL.md1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill using-ui-stack -a gemini-cli2Командой платформы
gemini skills install https://github.com/spencerpauly/awesome-cursor-skills --path resources/using-ui-stackВручную: положить файлы
.devin/skills/using-ui-stack/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill using-ui-stack -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о using-ui-stack
Как установить using-ui-stack в Claude?
Выполните npx skills add spencerpauly/awesome-cursor-skills --skill using-ui-stack -a claude-code. Скилл окажется в ~/.claude/skills/using-ui-stack/SKILL.md.
Что делает using-ui-stack?
Задаёт агенту правила генерации интерфейса: сетка 8px, цвета 60-30-10, шкала типографики, тёмная тема, пять состояний интерактивных элементов и требования по доступности.
Что будет, если в проекте уже есть своя дизайн-система?
Скилл сначала ищет конфиг ui-stack или токены проекта и опирается на них. Без такого конфига применяются значения по умолчанию из скилла.
Исходный текст
SKILL.md · CC0-1.0
--- name: using-ui-stack description: Enforce a configuration-driven design system when generating UI. Ensures consistent spacing, colors, typography, dark mode, interactions, and accessibility across all AI-generated components. user-invocable: true --- # Using UI Stack Apply a structured design system to every UI component you generate. This prevents inconsistent padding, mismatched colors, and forgotten hover states. ## Design System Principles Follow these rules for **every** component you build: ### Spacing — 8px Grid Use multiples of 8 for all spacing (padding, margin, gap): - `4px` — tight internal padding only - `8px` — inline gaps, icon spacing - `16px` — standard padding, card gaps - `24px` — section padding - `32px` — large section gaps - `48px / 64px` — page-level spacing ### Color — 60-30-10 Rule - **60%** neutral/background - **30%** primary brand color - **10%** accent for CTAs and highlights - Semantic colors: success (green), warning (amber), error (red), info (blue) - Never use pure black (`#000`) for dark mode — use `slate-950` or similar ### Typography — 1.25 Ratio Scale ``` text-xs: 12px / 16px text-sm: 14px / 20px text-base: 16px / 24px text-lg: 18px / 28px text-xl: 20px / 28px text-2xl: 24px / 32px text-3xl: 30px / 36px text-4xl: 36px / 40px ``` - Headings: `font-semibold` or `font-bold` - Body: `font-normal`, line-height 1.5–1.75 - Mono: use for code, IDs, numeric data ### Dark Mode - Provide complete light/dark mappings for every color token - Background: `white` → `slate-950`, not `black` - Text: `slate-900` → `slate-100` - Borders: `slate-200` → `slate-800` ### 5-State Interactions Every interactive element must have: 1. **Default** — base appearance 2. **Hover** — subtle color shift or shadow 3. **Active/Pressed** — slightly darker or scaled down 4. **Focus** — visible ring (`ring-2 ring-offset-2`) 5. **Disabled** — reduced opacity, `cursor-not-allowed` ### Accessibility - Contrast ratio ≥ 4.5:1 for text, ≥ 3:1 for large text - Touch targets ≥ 44×44px - Semantic HTML (`button` not `div`, `nav`, `main`, etc.) - Keyboard navigable — all interactions reachable via Tab/Enter/Escape - Respect `prefers-reduced-motion` for animations ### Animations - Duration: 150–300ms for micro-interactions - Easing: `ease-out` for entrances, `ease-in` for exits - Wrap motion in `motion-safe:` or check `prefers-reduced-motion` ### Overlay Z-Index Scale ``` dropdown: z-10 sticky: z-20 overlay: z-30 modal: z-40 toast: z-50 tooltip: z-60 ``` ## Workflow 1. Before generating UI, check if the project has a `ui-stack` config or design tokens 2. If not, apply the defaults above 3. For every component, verify spacing is on the 8px grid, colors follow 60-30-10, and all 5 interaction states exist 4. Test dark mode by toggling the class/attribute and confirming all tokens map correctly ## References - [ui-stack.dev](https://ui-stack.dev) — interactive configurator and full docs - [GitHub: rashoodkhan/ui-stack](https://github.com/rashoodkhan/ui-stack) — source repo
© spencerpauly · CC0-1.0 · spencerpauly/awesome-cursor-skills