К основному содержанию
скилл Claude Code CX Codex Cursor GitHub Copilot

variant — скилл для Codex: варианты UI и установка

Скилл собирает несколько заметно разных версий одного элемента интерфейса и показывает их на реальной странице. Пригодится, когда нужно сравнить направления дизайна перед выбором.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add jakubkrehel/skills --skill variant -a claude-code
Открыть на GitHub

Что делает variant

За один запуск скилл берёт один элемент интерфейса и предлагает для него три варианта. Они различаются по одной выбранной оси: например, по структуре, плотности или типографике. Скилл описывает компромиссы, но не выбирает победителя за вас.

Варианты появляются в переключателе на странице проекта; каждый можно открыть по URL-параметру ?__variant=quiet. Скилл учитывает дизайн-систему и соседние элементы, а также проверяет доступность: клавиатурную навигацию, фокус, контраст и отображение на узком экране. Это повод проверить результат в контексте страницы, а не на пустом маршруте.

Для установки в Codex выполните команду и проверьте файл .agents/skills/variant/SKILL.md в проекте. По просьбе скилл может подготовить пять вариантов вместо трёх. После выбора он предлагает перенести выбранный вариант в проект и удалить переключатель и остальные варианты.

Какие задачи решает

  • сравнить несколько направлений дизайна одного компонента
  • показать варианты интерфейса на реальной странице проекта
  • выявить компромиссы между плотностью и визуальным акцентом
  • проверить доступность вариантов до выбора

Примеры запросов агенту

  • Сделай три версии карточки метрики на странице дашборда, различая их по плотности.
  • Подготовь пять вариантов формы поиска и покажи их в переключателе на странице.
  • Сравни варианты боковой панели и опиши, чем приходится жертвовать в каждом.

Как установить variant

1Через Skills CLI (Vercel)

npx skills add jakubkrehel/skills --skill variant -a claude-code

2Вручную: положить файлы

~/.claude/skills/variant/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/variant/

Из того же набора13

Весь набор →
better-ui jakubkrehel Скилл задаёт точные правила для радиусов, теней, иконок и анимаций интерфейса. Пригодится, когда базовые взаимодействия уже работают и нужна визуальная доводка. Claude Code CX Codex Cursor +1 38 900установок better-typography jakubkrehel Проверяет типографику интерфейса и предлагает правки в системе стилей проекта. Пригодится, когда нужно привести текст, переносы и пунктуацию к правилам дизайна. Claude Code CX Codex Cursor +1 33 800установок better-colors jakubkrehel Скилл проверяет палитры и строит систему цветовых токенов. Он нужен, когда в коде накопились случайные hex-значения, а контраст текста никто не считал. Claude Code CX Codex Cursor +1 32 200установок better-layout jakubkrehel Скилл проверяет и правит группировку, выравнивание, порядок чтения и адаптивную структуру макета, а потом ломает её ресайзом, переводом и зеркалированием под RTL. Claude Code CX Codex Cursor +1 30 400установок better-interface jakubkrehel Проводит сквозной аудит экранов и интерфейсов по правилам доступности, вёрстки, текста, цвета и типографики. Сводит отчёты узких скиллов в единый список замечаний по приоритету. Claude Code CX Codex Cursor +1 29 700установок better-accessibility jakubkrehel Проверяет доступность интерфейса по WCAG 2.2 и исправляет найденные проблемы в стилях проекта. Пригодится, когда нужно проверить клавиатурную навигацию и работу со скринридером. Claude Code CX Codex Cursor +1 29 200установок better-writing jakubkrehel Скилл проверяет и пишет текст интерфейса: ошибки, пустые экраны, кнопки и подсказки. Он помогает выдержать единый тон продукта и не заводить тупиковых сценариев. Claude Code CX Codex Cursor +1 28 700установок interface-review jakubkrehel Проверяет ветки, пулл-реквесты и незакоммиченные правки на дефекты UI, вёрстки, типографики и доступности. Показывает, что именно сломалось или добавилось в интерфейсе. Claude Code CX Codex Cursor +1 18 100установок

Похожие

flutter-add-widget-preview flutter Скилл учит агента создавать интерактивные превью виджетов во Flutter через package:flutter/widget_previews.dart. Пригодится для изолированной вёрстки UI без сборки всего приложения. Claude Code CX Codex Cursor +1 36 600установок flutter-setup-localization flutter Скилл автоматизирует инициализацию поддержки многоязычности в Flutter-проекте. Добавляет зависимости, включает генерацию кода и создаёт конфиг для работы с .arb-файлами. Claude Code CX Codex Cursor +1 36 600установок transitions-polish Jakubantalik Скилл проверяет уже существующие анимации и подбирает токены для времени, расстояния, масштаба, blur и easing. Пригодится для точной настройки motion. Claude Code CX Codex Cursor +1 10 600установок codegen vercel-labs Утилиты для генерации кода из json-render UI-деревьев. Помогает строить кастомные экспортеры кода для Next.js, Remix и других фреймворков, обходить спеки и сериализовать пропсы. Claude Code CX Codex Cursor +1 8 900установок interaction-design Seth Hobson Скилл помогает проектировать микровзаимодействия, переходы и состояния обратной связи. Подойдёт для полировки интерфейса и загрузочных экранов. Claude Code CX Codex Cursor 16 146установок frontend-design официальный anthropics Скилл задаёт осмысленное визуальное направление для новых интерфейсов и редизайна. Подойдёт, когда стандартный шаблонный UI не устраивает. Claude Code Claude.ai 1 025 790установок design-taste-frontend Leonxlnx Скилл задаёт арт-дирекцию для публичных страниц и рабочих экранов, а затем проверяет результат в браузере по скриншотам. Нужен, когда интерфейс выглядит шаблонным или недоработанным. Claude Code CX Codex Cursor +1 673 100установок prototype Matt Pocock Создаёт временный прототип, чтобы проверить логику, модель состояния или вид интерфейса до работы над основным кодом. Claude Code 986 201установок

Вопросы о variant

Как установить variant в Codex?

Выполните npx skills add jakubkrehel/skills --skill variant -a codex. Файл скилла находится по пути .agents/skills/variant/SKILL.md.

Что делает variant?

Он создаёт несколько версий одного элемента интерфейса, размещает их в переключателе на реальной странице и описывает компромиссы. Выбор оставляет разработчику.

Сколько вариантов создаёт скилл?

По умолчанию он готовит три варианта. Пять создаёт только по просьбе.

Исходный текст

SKILL.md · MIT
---
name: variant
description: Builds multiple variants of a component you're working on and helps you iterate and pick one.
disable-model-invocation: true
---

# Variants

This skill takes one described piece of UI and builds three versions that differ on purpose. They go behind a picker in the real page, so you can flip between them and choose.

It produces candidates and never ranks them. Reviewing existing UI is `interface-review` and `better-interface`, stress testing one component is `break` and working through a component's states is `state-machine`.

## Different answers, not different tints

Each variant is a different answer to the same brief, on an axis this collection owns:

| Axis | Owner | What varies |
| --- | --- | --- |
| Structure | `better-layout` | Grouping, order, column count, what collapses |
| Density | `better-layout` | Spacing scale, how much fits |
| Emphasis | `better-colors` | Where filled color goes, what recedes |
| Type | `better-typography` | Scale steps, weight contrast, measure |
| Voice | `better-writing` | Labels, tone, how much copy |

Pick **one primary axis** and give each variant a different position on it. The axis names the picker's group heading. Secondary choices follow from it rather than varying on their own. A dense variant may need a smaller type step, and that is coherence, not a second axis.

## The floor every variant clears

Before a variant enters the picker it clears `better-interface`'s escalation triggers, which are:

- Every control has an accessible name and a visible focus indicator.
- Keyboard reaches everything a pointer does.
- Motion and auto-playing content respect `prefers-reduced-motion`.
- Nothing clips, overlaps or becomes unreachable at 320px width or 200% zoom.
- Body and control text pass their required contrast ratio.
- No state or meaning rides on color alone, and no state change on motion alone.
- A destructive action has a confirmation, an undo or a distinct treatment.
- Truncated content has a way to reach the full value.
- Nothing hides past a scroll edge or behind a disclosure with no visible cue.
- Every error names a way to recover.
- No semantic color is used against its meaning, such as the danger hue on a non-destructive action.

That floor is identical across variants. It is not an axis and never trades against one. Where a direction can only work by breaking it, say so and drop the direction.

## 1. Scope one piece

One piece of UI per run. "The dashboard" is not a piece; the metric card is. Where the request spans several, list the candidates and ask which one to explore.

Restate the brief in one sentence: what the thing is, where it renders, what it has to do.

## 2. Learn the ground

Variants have to look like they could ship tomorrow, so read what they stand on:

- The styling system, the component library and any motion library.
- The tokens: color, spacing, radius, type scale, easing.
- The product's density and voice. A dense professional tool bounds how far the boldest variant may go.
- Where the piece renders: against what background, beside which neighbours, at which widths.

With no project to read, use neutral grays, one accent and the system font stack, and say that is what you did.

## 3. Name the axis before writing code

Default to three variants. Go to five only when asked.

Write the set down first, a name and an axis position each. Names say what the direction is, so `Quiet`, `Editorial`, `Dense`, never `Option A`.

This step is done when no two variants share a position and you can state each one's axis in a phrase.

## 4. Build it into the real page

Host the variants on the page that will actually contain the piece, with the real chrome, the real neighbours and realistic data.

Select with a URL search param such as `?__variant=quiet`, so every variant is a link you can send someone. A grouped list beside the piece sets it. Where there is no room beside the piece, it moves above it as a select with the same groups. [picker.md](picker.md) holds the spec.

Render one variant at a time, full size. Thumbnails distort spacing and scale, and spacing is usually the thing you are choosing between.

Variant files may import production components. Only the hosting page imports a variant, and nothing else imports from the harness.

Where no page can host it, build one self-contained HTML file and keep the same picker.

Give every variant real content: product-shaped copy, plausible names and the number of items the page will really carry. Lorem ipsum and three rows make every structure look good.

## 5. Present the tradeoffs and stop

Load the page once in a browser already at hand and flip through every variant. Each one renders, each interaction responds and the console is clean. With no browser at hand, say so and hand the URL over for the user to check.

Then hand the decision over:

| Variant | Axis position | Right when | Costs |
| --- | --- | --- | --- |
| Quiet | Lowest visual weight | The page is used daily | Least memorable |
| Editorial | Largest type, most space | The moment deserves weight | Eats vertical space |

Say where the picker is running, which key flips it and which width you judged at. The answer can change between 375px and 1440px.

Never mark a favourite in the table. Asked directly, answer from how often the piece is seen and from the product's personality, not from which one you enjoyed building.

## 6. Promote one, delete the rest

On a choice, build that variant properly where it belongs, following the project's own conventions. Then delete the other variants, the picker and the hosting page's import of the variants. Search for the variant names and the `__variant` param, and check the diff leaves nothing of the harness behind.

Asked for another round instead, keep the harness and run **Name the axis before writing code** again, taking new positions around the direction you leaned toward.

## Before you finish

| Mistake | Fix |
| --- | --- |
| Variants differ only in accent color or copy | Move one to a different position on the primary axis, or cut it |
| Every axis varies at once | Vary one; let the rest follow from it |
| Judged on a blank route | Host them on the page that will contain the piece |
| Lorem ipsum, three rows, "Jane Doe" | Real copy and the item count the page will really carry |
| The boldest variant skips keyboard or focus | Clear the floor or drop the direction |
| A favourite marked in the table | State each variant's cost and let the user choose |
| Picker restyled with the project's tokens | Keep it visibly outside the design system |
| One long row of tabs, one per variant | A grouped list beside the piece that scrolls on its own; a select above it where the list does not fit |
| Harness left behind after promotion | Delete it and search for the names and the param |

© jakubkrehel · MIT · jakubkrehel/skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой