ui-animation
$
npx mdskill add joelhooks/joelclaw/ui-animationProvides guidelines and examples for implementing UI motion and animation in design and development tasks.
- Helps with designing, implementing, or reviewing motion, easing, timing, and reduced-motion behavior.
- Integrates with CSS transitions, keyframes, framer-motion, and spring animations.
- Decides based on core rules like speed, interruptibility, and honoring user preferences.
- Presents results through structured documentation with specific examples and best practices.
SKILL.md
.github/skills/ui-animationView on GitHub ↗
--- name: ui-animation description: Guidelines and examples for UI motion and animation. Use when designing, implementing, or reviewing motion, easing, timing, reduced-motion behaviour, CSS transitions, keyframes, framer-motion, or spring animations. disable-model-invocation: true --- # UI Animation ## Core rules - Animate to clarify cause/effect or add deliberate delight. - Keep interactions fast (200-300ms; up to 1s only for illustrative motion). - Never animate keyboard interactions (arrow-key navigation, shortcut responses, tab/focus). - Prefer CSS; use WAAPI or JS only when needed. - Make animations interruptible and input-driven. - Honor `prefers-reduced-motion` (reduce or disable). ## What to animate - For movement and spatial change, animate only `transform` and `opacity`. - For simple state feedback, `color`, `background-color`, and `opacity` transitions are acceptable. - Never animate layout properties; never use `transition: all`. - Avoid `filter` animation for core interactions; if unavoidable, keep blur <= 20px. - SVG: apply transforms on a `<g>` wrapper with `transform-box: fill-box; transform-origin: center`. - Disable transitions during theme switches. ## Spatial and sequencing - Set `transform-origin` at the trigger point. - For dialogs/menus, start around `scale(0.85-0.9)`; avoid `scale(0)`. - Stagger reveals <= 50ms. ## Easing defaults - Enter and transform-based hover: `cubic-bezier(0.22, 1, 0.36, 1)`. - Move: `cubic-bezier(0.25, 1, 0.5, 1)`. - Simple hover colour/background/opacity: `200ms ease`. - Avoid `ease-in` for UI (feels slow). ## Accessibility - If `transform` is used, disable it in `prefers-reduced-motion`. - Disable hover transitions on touch devices via `@media (hover: hover) and (pointer: fine)`. ## Performance - Pause looping animations off-screen. - Toggle `will-change` only during heavy motion and only for `transform`/`opacity`. - Prefer `transform` over positional props in animation libraries. - Do not animate drag gestures using CSS variables. ## Reference - Snippets and practical tips: [examples.md](examples.md) ## Workflow 1. Start with the core rules, then pick a reference snippet from [examples.md](examples.md). 2. Keep motion functional; honor `prefers-reduced-motion`. 3. When reviewing, cite file paths and line numbers and propose concrete fixes.
More from joelhooks/joelclaw
- add-skillCreate new joelclaw skills with the idiomatic process — repo-canonical, symlinked, git-tracked, slogged. Triggers on 'add a skill', 'create skill', 'new skill', 'canonical skill', 'make a skill for', or any request to formalize a process or domain into a reusable skill.
- adr-skillCreate and maintain Architecture Decision Records (ADRs) optimized for agentic coding workflows. Use when you need to propose, write, update, accept/reject, deprecate, or supersede an ADR; bootstrap an adr folder and index; consult existing ADRs before implementing changes; or enforce ADR conventions. This skill uses Socratic questioning to capture intent before drafting, and validates output against an agent-readiness checklist.
- agent-discovery"Optimize websites, docs, and product surfaces for agent discoverability and operator UX. Use when working on agent SEO/AEO/GEO, crawl policy, markdown or JSON projections, llms.txt, sitemap.md, AGENTS.md guidance, content negotiation, accessibility for browser agents, or any request to make a site easier for pi, OpenCode, Claude Code, ChatGPT, Perplexity, or other agent harnesses to find and use."
- agent-loopStart, monitor, and cancel durable multi-agent coding loops via Inngest. Use when the user wants to run autonomous coding workloads, execute a PRD with multiple stories, kick off an AFK coding session, have agents implement features from a plan, or manage running loops. Triggers on "start a coding loop", "run this PRD", "implement these stories", "go AFK and code this", "check loop status", "cancel the loop", "joelclaw loop", or any request for autonomous multi-story code execution.
- agent-mail>-
- agent-workloads"Compatibility alias for the canonical `workflow-rig` front door. Use when older prompts mention `agent-workloads` or when you need the legacy workload-planning guidance; for new work, load `workflow-rig` first."
- clawmail>-
- cli-design"Design and build agent-first CLIs with HATEOAS JSON responses, context-protecting output, and self-documenting command trees. Use when creating new CLI tools, adding commands to existing CLIs (joelclaw, slog), or reviewing CLI design for agent-friendliness. Triggers on 'build a CLI', 'add a command', 'CLI design', 'agent-friendly output', or any task involving command-line tool creation."
- codex-prompting"Use this skill for any request to trigger, coordinate, or craft prompts for Codex. Use when user says 'send to codex', 'use codex', 'prompt codex', 'ask codex', 'delegate to codex', 'run in codex', or asks for a Codex-first execution handoff."
- content-publish"Publish content to joelclaw.com via the Convex-first pipeline. Covers the full lifecycle: draft → review → publish → revalidate → verify. Handles secret leasing, tag conventions, content types (article, tutorial, note, essay), and verification gates. Use when: 'write article about X', 'publish article <slug>', 'draft a tutorial', 'publish this', 'push to convex', or any content publishing task."