with one click
extract
// Identify repeated patterns and consolidate them into $elements and shared tokens for systematic reuse
// Identify repeated patterns and consolidate them into $elements and shared tokens for systematic reuse
Add purposeful motion to a UXSpec — $animations, onEnter choreography, and timing tokens
Improve every piece of text in a UXSpec — descriptions, labels, error messages, empty states, and loading copy
Collect design context, audience, intent, and requirements before writing any UXSpec JSON
Strengthen a UXSpec against real-world conditions — overflow, missing data, network failures, and accessibility
Run a systematic quality audit on a completed UXSpec — design intent, consistency, accessibility, and state coverage
Walk through building a UXSpec (.uxspec.json) file — gathering requirements, making design decisions about layout/typography/color/motion/accessibility, designing the state machine, defining visuals, then compiling and verifying the output.
| name | extract |
| description | Identify repeated patterns and consolidate them into $elements and shared tokens for systematic reuse |
Identify repeated patterns in a spec and consolidate them into $elements and shared tokens. Systematic reuse, not premature abstraction.
After visuals are defined and you notice repetition across states. When multiple states share similar elements (form fields, action buttons, status banners). When the spec has grown and consistency is drifting.
$elements)Look for patterns that appear in 2+ states with the same structure but different content:
Before:
"idle": {
"$visual": {
"slots": {
"body": [
{ "type": "group", "layout": "stack-v", "gap": "{spacing.xs}", "children": [
{ "type": "text", "content": "Email" },
{ "type": "input", "name": "email", "binding": { "inputType": "email" } }
]},
{ "type": "group", "layout": "stack-v", "gap": "{spacing.xs}", "children": [
{ "type": "text", "content": "Password" },
{ "type": "input", "name": "password", "binding": { "inputType": "password" } }
]}
]
}
}
}
After:
"$elements": {
"form-field": {
"type": "group", "layout": "stack-v", "gap": "{spacing.xs}",
"params": ["label", "name", "inputType"],
"children": [
{ "type": "text", "content": { "$bind": "label" } },
{ "type": "input", "name": { "$bind": "name" }, "binding": { "inputType": { "$bind": "inputType" } } }
]
}
}
Referenced as: { "$ref": "form-field", "label": "Email", "name": "email", "inputType": "email" }
Look for hard-coded values that should be tokens:
$tokens.color$tokens.font.sizestatus-banner element with variant and message params.variant, label, action params.After extraction:
UNKNOWN_ELEMENT_REFERENCE means a $ref name is wrong.$ref passes the right params.Extract for consistency, not for abstraction. Three similar lines of spec are better than a premature $element that only one state uses. But three states with identical form-field patterns? That's a missing element.