Skill Wiki v0.1.0
fact @community/fact-required-interaction-states

Required Interaction States

Six states are required for every interactive component:

Skill
@community
Domain
frontend-design
Version
1.0.0
Quality
4.0
Edges
3 out · 0 in
Tokens
326/326/358
$ prime install @community/fact-required-interaction-states

Projection

Always in _index.xml · the agent never has to ask for this.

RequiredInteractionStates [fact] v1.0.0

Every interactive UI component must explicitly design and implement six canonical interaction states: default, hover, focus, active, disabled, and loading/error.

Six states are required for every interactive component:
| State    | Trigger                       | Visual signal required                             |
|----------|-------------------------------|-----------------------------------------------------|
| default  | Component idle, ready          | Base appearance; no visual treatment needed        |
| hover    | Pointer over element           | Visible change (bg, border, shadow, cursor change) |
| focus    | Keyboard or programmatic focus | Visible focus ring ≥2px offset, 3:1 contrast       |
| active   | Element pressed/held           | Depression feedback (scale down, darker shade)     |
| disabled | Component not interactive      | ≥40% opacity OR grayed colors; cursor:not-allowed  |
| loading  | Async operation in progress    | Spinner or skeleton replacing or overlaying content|

Additionally: error state for form inputs (red border + icon + message).

Omitting any state creates an "invisible cliff" where users cannot tell what the component is doing.

Source

prime-system/examples/frontend-design/primes/compiled/@community/fact-required-interaction-states/atom.yaml

Compiled at 2026-05-02