본문으로 건너뛰기
cccskills
무료GitHub에 공개

variant

Create three distinct versions of one interface component and compare them at full size on the actual page. Explore a chosen design dimension, review each option's tradeoffs, and integrate the selected version while removing the temporary comparison controls.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

원문원문 설명 보기

Builds multiple variants of a component you're working on and helps you iterate and pick one.

설치 방법 보기

이럴 때 유용합니다

  • Compare alternative structures for one component
  • Explore different spacing and density levels
  • Share links to individual design options
  • Integrate the chosen option and remove comparison controls

포함된 파일(3)

  • SKILL.md6.7 KB
  • agents/openai.yaml152 B
  • picker.md6.9 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

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:

AxisOwnerWhat varies
Structurebetter-layoutGrouping, order, column count, what collapses
Densitybetter-layoutSpacing scale, how much fits
Emphasisbetter-colorsWhere filled color goes, what recedes
Typebetter-typographyScale steps, weight contrast, measure
Voicebetter-writingLabels, 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 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:

VariantAxis positionRight whenCosts
QuietLowest visual weightThe page is used dailyLeast memorable
EditorialLargest type, most spaceThe moment deserves weightEats 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 guarded import. 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

MistakeFix
Variants differ only in accent color or copyMove one to a different position on the primary axis, or cut it
Every axis varies at onceVary one; let the rest follow from it
Judged on a blank routeHost 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 focusClear the floor or drop the direction
A favourite marked in the tableState each variant's cost and let the user choose
Picker restyled with the project's tokensKeep it visibly outside the design system
One long row of tabs, one per variantA grouped list beside the piece that scrolls on its own; a select above it where the list does not fit
Harness left behind after promotionDelete it and search for the names and the param

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Review and fix interface accessibility against WCAG 2.2, a web accessibility standard. Check keyboard navigation, focus, screen reader labels, forms, motion, and zoom, then report failures with their criteria and implement fixes using the project's existing styling system.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Check flows using only the keyboard
  • Fix control names and screen reader announcements
  • Improve form labels and error feedback
jakubkrehel/skills8.2천2026년 10월 13일 업데이트

Build and review interface color systems with palettes, format conversions, and semantic tokens that name colors by purpose. Measure foreground and background contrast, and identify inconsistent themes, misused color roles, and colors outside the supported range.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Build palettes around interface roles
  • Organize color tokens by purpose
  • Measure text and background contrast
jakubkrehel/skills8.2천2026년 10월 13일 업데이트

Review an interface across accessibility, layout, writing, typography, color, and visual polish. It coordinates specialist skills, combines evidence from code and rendered screens, and produces one report with findings ranked by their impact on users.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Reviewing a screen or complete user flow
  • Checking loading, error, and narrow-screen states
  • Prioritizing interface fixes by user impact
jakubkrehel/skills8.2천2026년 10월 13일 업데이트

Review and improve interface grouping, alignment, spacing, and responsive structure. Check whether content and actions remain accessible when screens resize, text grows in translation, zoom increases, or the layout switches to right-to-left reading.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Checking clipping and overlap on narrow screens or at higher zoom
  • Preparing layouts for longer translated text
  • Reviewing right-to-left layouts
jakubkrehel/skills8.2천2026년 10월 13일 업데이트

Set and review how interface text renders, including font loading, size hierarchy, line spacing, wrapping, truncation, and punctuation. Apply fixes within the existing styling system and check how realistic content behaves across different widths.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Organize heading and body text sizes
  • Fix wrapping and truncated text
  • Keep changing numbers aligned
jakubkrehel/skills8.2천2026년 10월 13일 업데이트

better-ui

무료

Refine interface surfaces, icons, and motion with specific values for corners, shadows, alignment, and transitions. Preserve the project's existing design conventions while identifying visual inconsistencies, touch interaction problems, and missing alternatives for reduced motion.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Refining corners and shadows on nested cards
  • Unifying icon appearance across interaction states
  • Adjusting button feedback and entrance animations
jakubkrehel/skills8.2천2026년 10월 13일 업데이트

jakubkrehel의 스킬 모두 보기

이 스킬의 문제 신고