Component Variant Finder

Identify missing variants, states, and edge cases for an existing component by analyzing common UI patterns.

When to Use

  • Before marking a component as “complete” in your design system
  • During a component audit to find coverage gaps
  • When product teams request variants you haven’t considered
  • Planning the next iteration of a component

The Prompt

Analyze this component and identify missing variants, states, and edge cases.

Component: [COMPONENT NAME]
Current variants: [list what exists today]
Current states: [list what exists today]

Check for:
1. **Missing visual variants** — Based on common design system patterns, what variants are typically expected? (e.g., size options, color options, filled vs. outlined)
2. **Missing states** — Which interactive states are missing? Check: default, hover, active/pressed, focus, disabled, loading, error, success, selected, empty.
3. **Missing content combinations** — What about: with icon, without icon, icon only, with badge, with avatar, with description text, truncated text, multi-line?
4. **Missing compositional variants** — Can the component be used inside other components? (e.g., Button in a ButtonGroup, Tag in a TagList)
5. **Missing responsive behavior** — Does it adapt to mobile, handle touch, stack properly?
6. **Missing accessibility variants** — High contrast mode, reduced motion, right-to-left layout?

For each gap:
- Describe the missing variant
- Rate priority: Must have / Should have / Nice to have
- Give a one-line use case justification

Present as a table sorted by priority.

Example Output

## Variant Gap Analysis: Input Component

Current: text, email, password, number variants. Default, focus, error states.

| Missing Variant              | Priority    | Use Case                                    |
|------------------------------|-------------|---------------------------------------------|
| Disabled state               | Must have   | Forms with conditionally locked fields       |
| Loading state (with spinner) | Must have   | Async validation (email check)               |
| Success state                | Should have | Show valid input after async check           |
| Read-only state              | Should have | Display-only contexts like receipts          |
| With leading icon            | Should have | Search inputs, URL fields                    |
| With trailing icon           | Should have | Password visibility toggle, clear button     |
| With prefix text             | Should have | Currency inputs ($), URL inputs (https://)   |
| With suffix text             | Nice to have| Unit inputs (kg, px, %)                      |
| Textarea variant             | Must have   | Multi-line text entry                        |
| With character count         | Should have | Bio fields, tweet-length limits              |
| Autofill style               | Nice to have| Browser autofill changes background color    |
| RTL support                  | Should have | Placeholder and text alignment for Arabic/Hebrew |

### Summary
- 4 must-have gaps (ship blockers)
- 5 should-have gaps (next sprint)
- 3 nice-to-have gaps (backlog)