interaction-design
Skill1 starsChanged 3 months agoMITView on GitHub
Structure before pixels — object model, task flows, ASCII wireframes, entity representations, and the state matrix every feature must declare. Use when designing a new screen or flow, restructuring a page, deciding what goes where, or when a feature only handles the happy path.
20 other projects use a version of this.
Adopted by
Most recently taken up by
- podo/design-agent-skillstheir own version, first seen Nov 8, 2026
- memi-design/design-skillstheir own version, first seen Nov 8, 2026
- Della-Mahmoudi/product-design-workflowtheir own version, first seen Nov 1, 2026
- KMaruthi2002/universal-llm-skillstheir own version, first seen Oct 25, 2026
- hsynozdamar-byte/claude-skills-editedtheir own version, first seen Oct 17, 2026
- jasonfesta/design-agentstheir own version, first seen Oct 15, 2026
Used with
Projects with it also use accessibility-compliance, design-system-patterns and 8 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
CodeWithBehnamSkillaccessibility-compliance
Implement WCAG 2.2 compliant interfaces with mobile accessibility, inclusive design patterns, and assistive technology support. Use when auditing accessibility, implementing ARIA patterns, building for screen readers, or ensuring inclusive user experiences.
Also in 3 projects that use this
wpankSkilldesign-system-patterns
Foundational design system architecture — token hierarchies, theming infrastructure, token pipelines, and governance. Use when creating design tokens, implementing theme switching, setting up Style Dictionary, or establishing multi-brand theming. Triggers on design tokens, theme provider, Style Dictionary, token pipeline, multi-brand theming, CSS custom properties architecture.
Also in 3 projects that use this
HamzaSheikh768Skillresponsive-design
Implements mobile-first responsive design using Tailwind's responsive utilities, proper breakpoints, flexible layouts, and accessibility considerations.
Also in 3 projects that use this
ozgureyilmazSkillapple-design
Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style interfaces.
Also in 3 projects that use this
VercelSkillemil-design-eng
This skill encodes Emil Kowalski's philosophy on UI polish, component design, animation decisions, and the invisible details that make software feel great.
Also in 3 projects that use this
nilssonrSkillseo
Full SEO workflow for auditing pages and creating SEO-optimized content. Provides checklists with educational explanations aligned with Google Search Central documentation.
Also in 3 projects that use this
Other versions20 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 20
- sunflowermm/XRK-AGT★ 140same name
- cuellarfr/design-skills★ 94same name
- podo/design-agent-skills★ 32same name
- MiladJoodi/skills★ 24same name
- rastian/interaction-design-skills★ 16same name
- memi-design/design-skills★ 7same name
- hsynozdamar-byte/claude-skills-edited★ 4same name
- ai4brands-design/claude-skills★ 2same name
- CodeWithBehnam/cc-docs★ 2same name
- Della-Mahmoudi/product-design-workflow★ 2same name
10 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository14 other files it gives its agents.
- accessibilitySkill
- colorSkill
- content-designSkill
- design-reviewSkill
- design-systemSkill
- implementation-reviewSkill
- layoutSkill
- measurementSkill
- motionSkill
- product-evidenceSkill
- product-framingSkill
- typographySkill
- validationSkill
- visual-directionSkill
The file
We split this skill into the rules it gives an agent
3 rules. 0 are common, 3 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 16 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 18
If the evidence points above the level you were asked to work at (the flow is wrong, not the screen), say so before continuing.
- Distinctive: line 33
Every screen has exactly one action the user came to perform.
- Distinctive: line 35
Every failure names its recovery.
“Common” is measured: kept by at least 6 in 10 of the 16 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Interaction Design
Structure decisions are cheap before code and expensive after. This skill is the pass between "we know what we're building" and "we're choosing colors": flows, screens, states, wireframes. A wireframe change after code exists costs ten times the same change before.
Know which level you're working at
| Level | Question | Concern |
| Strategy | Why, what | The user problem and product outcome |
| UX | How it works | Journey, information architecture, states, language |
| UI | How it looks | Hierarchy, layout, type, color, motion |
If the evidence points above the level you were asked to work at (the flow is wrong, not the screen), say so before continuing. Don't silently redesign the product while restyling a page.
Model the domain before drawing anything
A flow drawn before the object model encodes guesses. Four lists first:
- Objects: the nouns users think in (Invoice, Deployment, Member). When the UI's nouns differ from the users' nouns, the mental model breaks at the front door.
- Relations: which object belongs to, contains, or references which. This is the navigation skeleton.
- Actions × roles: per object, what each role can do to it. This matrix is the permission model; a screen showing an action the role can't perform is a designed error.
- Placement: where each object lives in the information architecture, and the one path a user takes to reach it.
A flow is a role performing an action on an object. Flows come from this model; wireframes come from the flows. Skipping to wireframes is how you get five screens for one object and none for another.
One primary action per screen
Every screen has exactly one action the user came to perform. If you can't name it, the screen isn't ready to wireframe. Everything else on the screen is either input to that action or navigation away from it.
Every failure names its recovery. A journey where an error state dead-ends is unfinished, whatever the visuals look like.
Entities are sets of representations
A domain entity (Invoice, Deployment, Patient, Order) is not one component. It's a set of representations, one per context:
| Representation | Context |
| Row | Scanning many: lists, tables |
| Card | Browsing few, media- or status-rich |
| Detail view | One record, full depth |
| Badge / chip | Referenced inside another entity's view |
| Picker item | Being selected in a form |
| Empty state | Zero of them exist: domain language + next action, never "No data" |
| Skeleton | Loading, matching the target shape |
For each entity, list which representations it needs and on which screens. Representations nobody scans, browses, or picks don't get built. The same entity as a card on one screen and a row on another is normal; the same card pasted everywhere is a smell.
Wireframes: ASCII, cheap to throw away
Low-fi, in markdown. No color, no fonts, no spacing values. Boxes are zones; numbers are hierarchy order (1 = where the eye lands first). A wireframe you hesitate to throw away is too expensive.
Screen: Deployments — list
Flow: Dashboard → Deployments → deploy detail
Entities: Deployment(row), Project(badge)
Primary action: New deployment
+--------------------------------------------------+
| [logo] Deployments (1) [New deploy] 2 |
+--------------------------------------------------+
| [filter: env] [filter: status] [search] |
+--------------------------------------------------+
| ● api-prod [proj] 2m ago Live ... | <- Deployment row 3
| ● web-staging [proj] 1h ago Failed ... |
| ● worker-prod [proj] 3h ago Deploying ... |
+--------------------------------------------------+
| (empty: "No deployments yet — connect a repo") |
+--------------------------------------------------+Wireframes carry real labels, real error copy, real domain data, never lorem: writing the actual words is how the structure gets tested, and the content-design skill works in parallel here, not after. An error message that needs three sentences won't fit the toast the flow assumed.
Every wireframe carries four annotations: screen name, the flow it belongs to, entity representations used, the primary action. Get the wireframe agreed before any token, component, or code work. For click-through fidelity, grayscale HTML with zero styling is the acceptable step up; a design tool is for iterating with a human, not for skipping the ASCII pass.
The state matrix — declared, not assumed
Generated UI ships the success state only. The fix is not a fixed checklist; it's a declaration. For every feature, walk the full vocabulary and mark each state designed or not applicable, because.... An unmarked state is an undesigned state the browser will design for you, badly.
Data states: initial, loading, populated, empty, partial (some items failed or are still coming), stale (shown data is old; say so).
Outcome states: success, error (inline, attached to the failing element, names the recovery; not a toast).
Availability states: disabled (with the reason when it isn't obvious), unavailable (feature off for this plan or context), permission-denied (what the role lacks and who to ask), offline.
Rules that hold across the matrix:
- Loading gets a skeleton matching the final layout shape, not a generic spinner, and reserves the space the content will take.
- Empty states speak domain language and offer the next action.
filtered to zero resultsis notempty: different message, different action.- "Not applicable" is an explicit decision someone can challenge, never a blank.
Interactive elements additionally always carry their interaction states, no declaration needed: hover (subtle, no scale(1.05)), active (translateY(1px) or scale(0.98)), focus (visible ring, 3:1 contrast), disabled.
Evidence discipline
Claims about users cite a source: analytics, support tickets, issue history, an actual test. A cognitive walkthrough is labeled as your assumption, never presented as a user test. No invented personas, no invented KPIs.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

