Refactoring UI Design
chaxus/ran
A skill your agent uses when designing, reviewing, or improving web UI visual quality, especially when a developer-built interface feels cluttered, flat, generic, poorly spaced, weakly hierarchical…
Design the small details -- triggers, rules, feedback, loops and modes -- that separate good products from great ones.
$ npx skills add wondelai/skills --skill microinteractions -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install wondelai/skills microinteractions --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/wondelai/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/microinteractions .claude/skills/microinteractions && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "microinteractions" agent skill from https://github.com/wondelai/skills/tree/main/microinteractions into .claude/skills/microinteractions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "microinteractions", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/wondelai/skills/tree/main/microinteractionsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add wondelai/skills --skill microinteractions -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install wondelai/skills microinteractions --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wondelai/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/microinteractions .agents/skills/microinteractions && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "microinteractions" agent skill from https://github.com/wondelai/skills/tree/main/microinteractions into .agents/skills/microinteractions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "microinteractions", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add wondelai/skills --skill microinteractions -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install wondelai/skills microinteractions --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wondelai/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/microinteractions .cursor/skills/microinteractions && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "microinteractions" agent skill from https://github.com/wondelai/skills/tree/main/microinteractions into .cursor/skills/microinteractions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "microinteractions", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/wondelai/skills.git --path microinteractions--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add wondelai/skills --skill microinteractions -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install wondelai/skills microinteractions --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wondelai/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/microinteractions .gemini/skills/microinteractions && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "microinteractions" agent skill from https://github.com/wondelai/skills/tree/main/microinteractions into .gemini/skills/microinteractions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "microinteractions", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install wondelai/skills microinteractionsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add wondelai/skills --skill microinteractions -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/wondelai/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/microinteractions .github/skills/microinteractions && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "microinteractions" agent skill from https://github.com/wondelai/skills/tree/main/microinteractions into .github/skills/microinteractions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "microinteractions", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add wondelai/skills --skill microinteractions -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install wondelai/skills microinteractions --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wondelai/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/microinteractions .opencode/skills/microinteractions && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "microinteractions" agent skill from https://github.com/wondelai/skills/tree/main/microinteractions into .opencode/skills/microinteractions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "microinteractions", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
microinteractionsDesign the small details -- triggers, rules, feedback, loops and modes -- that separate good products from great ones.
Microinteractions is an agent skill from wondelai/skills. Design the small details -- triggers, rules, feedback, loops and modes -- that separate good products from great ones. Use when the user mentions "microinteraction", "button feedback", "loading state", "toggle design", "animation detail", "state transitions", "input feedback", "the interface feels dead", "make the UI feel responsive", or "add polish to interactions". Also trigger when designing form-validation responses, progress indicators, confirmation dialogs, or any element where the user expects immediate…
Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `references/case-studies.md`, `references/feedback-patterns.md` and `references/loops-modes.md`).
It sits in Frontend & Design, covering UI design, Forms and validation and Refactoring. The repository describes itself as: Wondel.ai Agent Skills — Business, Marketing, UX & Coding Frameworks from Bestselling Books. 50 skills + 12 guided journeys for Claude Code, Codex, Cursor & other agentskills.io… The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit c172996. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
amazon.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Microinteractions loads about 3.8k tokens when it runs, and up to ~27k if it reads all its reference files. Until then it costs about 179 tokens; SKILL.md has 1,876 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from wondelai/skills at commit c172996, republished under its MIT licence (© wondelai). 1,876 words, ~3,806 tokens.
.claude/skills/microinteractions/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Design the tiny, contained product moments users touch every day -- toggles, password fields, loading indicators, pull-to-refresh, like buttons. Based on Dan Saffer's four-part structure (Trigger, Rules, Feedback, Loops & Modes), this framework turns invisible details into the polish that separates forgettable products from beloved ones.
The difference between a product you tolerate and a product you love is almost always in the microinteractions. A microinteraction is a contained moment built around a single use case -- changing a setting, syncing data, picking a password -- so small that users rarely think about it consciously, but they feel it. Every microinteraction follows the same four-part structure: a Trigger initiates it, Rules determine what happens, Feedback shows what is happening, and Loops & Modes define its long-term behavior.
Goal: 10/10. Score by how many of the 8 Quick Diagnostic rows the microinteraction passes — score = round(passed / 8 × 10), then read the band:
Always state the current score, which diagnostic rows failed, and the specific fix for each.
Six areas of focus for designing world-class microinteractions. See references/case-studies.md when you want a full four-part breakdown of a real pattern -- form submission, toggle/switch, pull-to-refresh, loading states, and notifications, each from first use through edge cases.
Core concept: The trigger initiates a microinteraction -- manual (tap, click, swipe, voice command) or system-initiated (time, location, incoming data, error state). It is the front door of every microinteraction.
Why it works: A trigger's prominence and labeling set the user's expectation before they act -- a button that reads "Delete" in red signals an irreversible, high-stakes outcome, so feedback that follows feels predictable rather than surprising.
Key insights:
Product applications:
| Context | Application | Example |
|---|---|---|
| Toggle controls | Manual trigger with binary state | iOS Wi-Fi switch: tap to toggle, position shows state |
| Pull-to-refresh | Hidden gesture with visible affordance | Pull past threshold triggers refresh animation |
| System alerts | System trigger on condition met | Low battery notification at 20% threshold |
Ethical boundary: Never hide critical triggers behind gestures or invisible interactions without a visible fallback.
See: references/trigger-design.md for trigger affordances, states, placement, and reducing trigger complexity.
Core concept: Rules define what happens once a microinteraction is triggered -- the sequence of events, constraints, processing, and ending. Users never see rules directly, but they feel when rules are wrong.
Why it works: Rules create the mental model users build about how the interaction works. Consistent rules that match expectations feel natural; violations -- a toggle that does not toggle, a slider that jumps in value -- destroy trust.
Key insights:
Product applications:
| Context | Application | Example |
|---|---|---|
| Password strength | Rules evaluate input in real-time | Meter updates as user types; color shifts red to green |
| Character counter | Rule constrains and shows remaining | Twitter/X: counter decreases, turns red at limit |
| Undo action | Rule sets time window for reversal | Gmail "Undo send" available for 30 seconds |
Ethical boundary: Keep rules transparent and predictable -- never hide rules that manipulate behavior, such as making unsubscribe harder than subscribe.
See: references/rules-and-state.md for state management, constraints, error states, and edge cases.
Core concept: Feedback communicates the rules to the user, answering "What is happening right now?" -- visually (color, animation, movement), aurally (clicks, chimes), or haptically (vibration). Show only what matters: minimal, meaningful, contextual.
Why it works: Without feedback, users cannot tell if their action registered or the system is working, so they retap, abandon, or distrust the result. Feedback is what converts an invisible system state into a perceived response.
Key insights:
Product applications:
| Context | Application | Example |
|---|---|---|
| Button press | Visual state change on click | Button depresses, color shifts, text becomes "Saving..." |
| Form validation | Inline feedback as user types | Green checkmark next to valid email field |
| Error state | Contextual error near the source | Red border on field + "Password must be 8+ characters" |
Ethical boundary: Keep feedback honest -- no fake progress bars, manipulative countdowns, or deceptive completion percentages.
See: references/feedback-patterns.md for feedback channels, timing, and preventing overload.
Core concept: Loops are the meta-rules over time -- does the interaction change after the 100th use, expire, adapt? Modes are forks in the rules where the same control temporarily behaves differently (edit mode vs. view mode).
Why it works: Thoughtful loops let microinteractions mature gracefully -- reducing friction for power users while staying discoverable for new ones. Modes, used sparingly, let one control serve multiple purposes without cluttering the interface.
Key insights:
Product applications:
| Context | Application | Example |
|---|---|---|
| Onboarding tooltips | Long loop removes hints after N uses | First 3 sessions show "Swipe to archive"; then stop |
| Alarm clock | Open loop repeats until disabled | Fires every weekday at 7am until toggled off |
| Text editing | Mode: view vs. edit | Banner reads "Editing" with a "Done" button to exit |
Ethical boundary: Loops should benefit the user, not the business -- never adapt loops to ramp up notifications or make opt-outs progressively harder.
See: references/loops-modes.md for long loops, mode errors, and progressive complexity.
Core concept: A signature moment is a microinteraction so distinctive it becomes part of the product's identity -- the Facebook Like, slide-to-unlock, Slack's loading messages. Every product should have one or two; not every interaction should be one.
Why it works: Signature moments create emotional memory and make products feel crafted rather than assembled. They are what users demonstrate first when describing your product to others.
Key insights:
Product applications:
| Context | Application | Example |
|---|---|---|
| Social reaction | Animated response to engagement | Facebook Like: thumbs-up animates with particles |
| Loading state | Branded waiting experience | Slack: rotating quotes during load |
| Completion | Celebratory confirmation | Stripe payment: animated checkmark with confetti |
Ethical boundary: Never block input or the next step behind a non-skippable celebration animation -- let the user tap through the confetti to proceed.
See: references/signature-moments.md for when to invest and making mundane interactions delightful.
Core concept: The best microinteraction is barely noticed because it is so simple and fast. Reduce (fewer options, steps, decisions), then simplify what remains until it feels effortless.
Why it works: Every option, field, and decision adds cognitive load -- users do not want to configure a toggle, they want it to work. The most elegant microinteractions have zero configuration, one action, and immediate results.
Key insights:
Product applications:
| Context | Application | Example |
|---|---|---|
| Smart defaults | Eliminate configuration | Camera app opens in photo mode, not settings |
| Single action | One tap replaces multi-step flow | Double-tap to like instead of menu + select reaction |
| Anticipatory design | Predict and pre-fill | Shipping form fills city and state from ZIP code |
Ethical boundary: A "smart default" must serve the user, not the business -- never pre-check marketing opt-ins, paid add-ons, or data-sharing as the default choice.
| Mistake | Why It Fails | Fix |
|---|---|---|
| No feedback on action | Users cannot tell if their tap registered | Add immediate visual state change to every interactive element |
| Overdesigning simple moments | Complex animations slow frequent actions | Reserve rich animation for infrequent, high-impact moments |
| Ignoring edge cases | Interaction breaks at zero, max, or double-tap | Map every state: empty, loading, partial, full, error, disabled |
| Invisible triggers | Users cannot discover functionality | Pair gesture triggers with a visible alternative |
| Mode errors | Same action gives different results based on hidden state | Make current mode visible; minimize modes |
| Ignoring long loops | Interaction feels identical on day 1 and day 100 | Use progressive reduction for returning users |
| Feedback overload | Every action triggers a toast, sound, or animation | Use the smallest feedback that communicates |
| Fake progress indicators | Users feel deceived when they discover the bar is fake | Use honest, deterministic progress; indeterminate spinner when unknown |
Audit any microinteraction:
| Question | If No | Action |
|---|---|---|
| Is there a clear, discoverable trigger? | Users cannot initiate the interaction | Add a visible control or affordance |
| Does the trigger show its current state? | Users cannot tell if it is on, off, or loading | Add distinct visual states for every trigger state |
| Are the rules simple and predictable? | Users are confused by what happened | Simplify rules; match platform conventions |
| Is there immediate feedback? | Users question whether their action worked | Add visual response within 100ms |
| Does feedback match the event's significance? | Small actions feel dramatic, or big results feel trivial | Scale feedback to event importance |
| Does the interaction evolve over time? | Power users still see beginner hints | Add progressive reduction through long loops |
| Is the interaction free of unnecessary modes? | Users perform the wrong action in the wrong mode | Remove modes or make the current mode highly visible |
| Could a first-time user figure it out without help? | Interaction needs explanation | Simplify or add a one-time hint via long loop |
This skill is based on Dan Saffer's definitive guide to designing with details:
Dan Saffer is a designer and design leader who has led teams at Twitter, Jawbone, and Smart Design. His book Microinteractions codified the framework design teams worldwide use to audit, design, and improve the small details that make products feel polished and alive. He also wrote Designing for Interaction and Designing Gestural Interfaces.
© wondelai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 6 other files (references) in microinteractions of wondelai/skills.
Open the folder on GitHubat commit c172996
Microinteractions next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Microinteractions this skillwondelai/skills | 2.4k | — | ~3.8k | Automated safety check: Pass | MIT | |
| Refactoring UI Designchaxus/ran | 271 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Tidyfactor StylerTidyFactor/Styler | 118 | — | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| Composer Pluginsdxos/dxos | 525 | — | ~13k | Automated safety check: Pass | Custom licence | |
| Frontend Developmentavibebuilder/claude-prime | 120 | — | ~1.3k | Automated safety check: Pass | MIT | |
| Chamilo Vue Base Componentschamilo/chamilo-lms | 1k | — | ~7.6k | Automated safety check: Notes | GPL-3.0 |
chaxus/ran
A skill your agent uses when designing, reviewing, or improving web UI visual quality, especially when a developer-built interface feels cluttered, flat, generic, poorly spaced, weakly hierarchical…
TidyFactor/Styler
Production framework styler and surgical RTL UI polish engine with Contextual Decision Layer (CDL).
dxos/dxos
A skill your agent uses when working on files in packages/plugins/, adding new plugins, refactoring plugin components/containers, writing storybooks for plugins, or wiring capabilities like…
avibebuilder/claude-prime
A skill your agent uses for ANY work involving React, Next.js, TypeScript, or Tailwind in the browser layer.
chamilo/chamilo-lms
Swaps native form elements in Chamilo Vue files for Base components and checks that every Base, SectionHeader and Fieldset tag has its import.
getsentry/sentry
Filter large Sentry Scraps design-system migration PRs for review by separating mechanical import-path changes, generated baseline updates, snapshot mocks, and pure renames from substantive…
wondelai/skills
Navigate the technology adoption lifecycle from early adopters to mainstream market.
wondelai/skills
Apply foundational design principles: affordances, signifiers, constraints, feedback, and conceptual models.
wondelai/skills
Run a structured 5-day process to prototype, test, and validate product ideas with real users.
wondelai/skills
Design habit-forming product loops using the Hook Model (Trigger, Action, Variable Reward, Investment).
wondelai/skills
Diagnose and fix retention problems using behavior design (B=MAP).
wondelai/skills
Design products and pricing around validated willingness to pay, from Ramanujam & Tacke's "Monetizing Innovation".
Categories
Design the small details -- triggers, rules, feedback, loops and modes -- that separate good products from great ones. Microinteractions is an agent skill from wondelai/skills. Design the small details -- triggers, rules, feedback, loops and modes -- that separate good products from great ones.
Microinteractions fits situations like: the user mentions microinteraction; button feedback; animation detail; state transitions.
Run `npx skills add wondelai/skills --skill microinteractions -a claude-code`. Or copy the skill folder (microinteractions in wondelai/skills) into .claude/skills/microinteractions in your project. Claude Code loads it when a task matches its description.
Run `npx skills add wondelai/skills --skill microinteractions -a codex`. Or copy the skill folder (microinteractions in wondelai/skills) into .agents/skills/microinteractions in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add wondelai/skills --skill microinteractions -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/microinteractions, .gemini/skills/microinteractions, .github/skills/microinteractions and .opencode/skills/microinteractions in your project.
SKILL.md names no scripts, command-line tools or credentials: Microinteractions is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: amazon.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Microinteractions is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 23k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Microinteractions: Refactoring UI Design (chaxus/ran, 271 stars), Tidyfactor Styler (TidyFactor/Styler, 118 stars), Composer Plugins (dxos/dxos, 525 stars) and Frontend Development (avibebuilder/claude-prime, 120 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
wondelai (a GitHub organization) maintains it in wondelai/skills, which has 2,356 GitHub stars. The repository holds 61 skills in this directory. The repository was last updated on September 10, 2026.
Source: wondelai/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.