educlopez/ui-craft-.gemini-delight
Delight pass — adds one or two memorable micro-interactions (copy specificity, hover choreography, state transitions, one signature detail) without decoration or confetti. Use when the UI works but feels generic, or when the user says "make it feel special" / "add some personality". Invoke when the user asks for delight on their UI, or mentions 'delight' alongside design / UI / frontend work.
This is a copy. The original lives at educlopez/delight.
npx skills add https://github.com/educlopez/ui-craft --skill delight
<!-- HARNESS MIRROR — do not edit here. Canonical source: skills/ or commands/. After editing source, copy into cli/assets/<harness>/ and repo-root harness mirrors. -->
Context: this sub-skill is one lens of the broader ui-craft skill. If the ui-craft skill is also installed, read its SKILL.md first for Discovery + Anti-Slop + Craft Test, then apply the specific lens below.
Add delight to the UI at $ARGUMENTS. Load the ui-craft skill.
Delight is specificity, not decoration. The goal is one or two moments a user would screenshot — not confetti, not bounce, not emoji.
Candidates, ordered by safety (start at the top):
Never add:
cubic-bezier(0.68, -0.55, 0.27, 1.55)) — flagged in anti-slop.Knob gating (MOTION_INTENSITY):
≤ 3 → copy-only delight. No animated delight. Candidate 1 only.4-7 → copy + hover + state transitions (candidates 1-3).8+ → all four, including the signature detail.References to read: references/motion.md (Decision Ladder + interaction rules), references/copy.md (microcopy voice), ../examples/animation-storyboard.md (if multi-stage).
Output: edit code directly. Print the Review Format table. Flag every candidate you chose not to add and why.
Next step: /finalize — delight is the last additive pass; gate it before shipping (rung 3).
Take educlopez/ui-craft-.gemini-delight from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.