Purpose: Guidelines for defining and managing component states.
Referenced by: Component-type instructions (Button, Input, etc.)
Required:
default - Normal, ready for interactionhover - Mouse over componentactive - Being clicked/presseddisabled - Cannot interactOptional:
loading - Processing actionfocus - Keyboard focusRequired:
default - Empty, ready for inputfocus - Active inputfilled - Has contentdisabled - Cannot editOptional:
error - Validation failedsuccess - Validation passedloading - Fetching dataRequired:
default - Neutral informationsuccess - Positive feedbackerror - Error feedbackwarning - Caution feedbackUse standard names:
hover not mouseoverdisabled not inactiveloading not processingBe consistent across components.
Define how states change:
Button States: default → hover (mouse enters)
hover → active (mouse down)
active → hover (mouse up)
hover → default (mouse leaves)
any → disabled (programmatically)
any → loading (action triggered)
Each state should be visually distinct:
Button:
default: blue background
hover: darker blue + scale 1.02
active: darkest blue + scale 0.98
disabled: gray + opacity 0.6
loading: disabled + spinner
Reference this when specifying component states.