From designpowers
Designs accessible UI interactions including states (default, hover, focus, error), transitions, animations, loading patterns, feedback, and error handling for screen readers, keyboard, touch.
npx claudepluginhub owl-listener/designpowers --plugin designpowersThis skill uses the workspace's default tool permissions.
Interactions are promises. Every button says "click me and something will happen." Every loading spinner says "wait, it is coming." This skill ensures those promises are kept for everyone, regardless of how they interact with the interface.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Interactions are promises. Every button says "click me and something will happen." Every loading spinner says "wait, it is coming." This skill ensures those promises are kept for everyone, regardless of how they interact with the interface.
For every interactive element, define:
| State | Visual | Screen Reader | Keyboard | Touch |
|---|---|---|---|---|
| Default | [appearance] | [announcement] | [behaviour] | [behaviour] |
| Hover | [appearance] | n/a | n/a | n/a |
| Focus | [appearance + focus ring] | [announcement] | [how to reach] | n/a |
| Active/Pressed | [appearance] | [announcement] | [trigger key] | [gesture] |
| Disabled | [appearance, not just greyed] | [announcement + reason] | [skip in tab order?] | [behaviour] |
| Error | [appearance + message] | [announcement + guidance] | [focus moved?] | [behaviour] |
| Loading | [appearance] | [live region update] | [interaction blocked?] | [behaviour] |
| Success | [appearance] | [announcement] | [next focus target] | [behaviour] |
Every user action deserves a response. Map the feedback:
Immediate feedback (< 100ms):
Short wait feedback (100ms - 1s):
Long wait feedback (> 1s):
Completion feedback:
Errors are not edge cases — they are guaranteed states. Design for them:
Error message format: [What happened] + [What to do about it]
Animations serve a purpose or they serve nobody:
When to animate:
When NOT to animate:
Inclusive motion:
prefers-reduced-motion — always provide a reduced or no-motion alternativeIf the design includes gesture interactions:
For each interaction, document:
writing-design-plans (as part of plan execution)ui-composition (visual states), cognitive-accessibility (interaction complexity), accessible-content (error messages)designpowers-critique| Flag | Response |
|---|---|
| Component with only default and hover states | Map ALL states including focus, error, loading, disabled |
| Animation without prefers-reduced-motion support | Add motion reduction. This is not optional |
| Error state that only changes colour | Add text, icon, and screen reader announcement |
| Gesture without alternative input method | Add keyboard and/or button alternative |