emilkowalski-motion
nexu-io/open-design
Add tasteful micro-interactions and state transitions to existing interfaces with product-grade motion restraint.
What is emilkowalski-motion?
Motion-design follow-up skill that enhances existing interfaces with carefully considered micro-interactions, state transitions, and page motion. Use this after a design artifact exists to make the interface feel alive without becoming a motion demo.
- Add entry reveals and hover feedback for controls using transform and opacity
- Implement state transitions between UI states with consistent motion language
- Apply scroll reveals that clarify hierarchy without blocking content
- Include prefers-reduced-motion fallbacks for accessibility
- Stagger animations only in small groups to maintain perceived performance
How to install emilkowalski-motion
npx skills add https://github.com/nexu-io/open-design --skill emilkowalski-motion- An existing HTML artifact, component, or page element to enhance
- Basic understanding of CSS transforms and opacity
- Familiarity with prefers-reduced-motion media query for accessibility
How to use emilkowalski-motion
- 1.Inspect the current HTML structure and identify key interaction moments
- 2.Select the smallest set of motion opportunities: entry, hover, state change, or scroll reveal
- 3.Implement animations using transform and opacity only (avoid layout properties)
- 4.Establish one consistent motion language: matching easings, durations (140-220ms for controls), and physics
- 5.Add prefers-reduced-motion fallbacks for automatic or scroll-linked animations
- 6.Test that motion clarifies state without competing with content or blocking readability
Use cases
- Polish a completed button or form component with hover and active states
- Add entrance animations to a page layout that reveal content progressively
- Enhance a modal or dropdown with smooth state transitions
- Implement scroll-triggered reveals for long-form content without motion sickness
- Add loading or progress indicators with subtle looping motion
- Product designers refining interaction feel
- Frontend developers implementing motion specifications
- Design systems teams establishing motion guidelines
- Teams building web interfaces with accessibility requirements
emilkowalski-motion FAQ
Use this skill after a design artifact already exists and you want to enhance it. If you're building a new interface from motion-first principles, consider a different approach.
Default UI transitions should be 140-220ms for controls. Larger page reveals can be slower but must not block reading. Keep motion quick and useful.
Add prefers-reduced-motion media queries and CSS fallbacks that remove or simplify animations for users with that preference enabled.
Yes. If GSAP is available in the repo, pair this skill with gsap-core, gsap-timeline, or gsap-scrolltrigger for sequencing. Always clean up instances afterward.
No. Stagger only small groups. Long staggered lists make interfaces feel slow and reduce perceived performance.
Full instructions (SKILL.md)
Source of truth, from nexu-io/open-design.
name: emilkowalski-motion description: | Motion-design follow-up skill inspired by Emil Kowalski's animation guidance. Use after an interface exists to add tasteful micro-interactions, state transitions, and page motion with product-grade restraint. triggers:
- "emil kowalski"
- "motion polish"
- "micro interaction"
- "interaction animation"
- "tasteful animation"
- "动效润色"
od:
mode: prototype
surface: web
platform: desktop
category: animation-motion
upstream: "https://emilkowal.ski/skill"
preview:
type: html
design_system:
requires: true
craft:
requires:
- animation-discipline
- accessibility-baseline example_prompt: | Use emilkowalski-motion on the current HTML artifact: add restrained micro-interactions, state transitions, and reduced-motion fallbacks without changing the core layout.
Emil Kowalski Motion Follow-Up
Use this skill after a design artifact already exists. The goal is to make the interface feel alive without turning it into a motion demo.
Workflow
- Inspect the current HTML, component, or selected page element before adding animation.
- Pick the smallest set of motion moments that clarify state or hierarchy:
- entry reveal for the primary content
- hover / active feedback for important controls
- transition between UI states
- scroll reveal only when it helps the story
- Prefer
transformandopacity. Avoid animating layout properties such astop,left,width, orheight. - Use one motion language across the artifact. Do not mix unrelated easings, durations, or physics.
- Add
prefers-reduced-motionfallbacks for any automatic or scroll-linked motion. - Keep copy, data, and layout intent intact unless the user explicitly asks for a redesign.
Motion Rules
- Default UI transitions should feel quick and useful: 140-220ms for most controls.
- Larger page reveals can be slower, but must not block reading.
- Avoid endless decorative loops unless they communicate status or progress.
- Do not add custom cursors, noisy particle effects, or motion that competes with content.
- Stagger only small groups. Long staggered lists make interfaces feel slow.
Implementation Notes
- For plain HTML, CSS keyframes and small JavaScript observers are enough.
- For React or framework code, use the local stack already present in the repo.
- If GSAP is available and the motion needs sequencing, pair this with
gsap-core,gsap-timeline, orgsap-scrolltrigger. - Always clean up observers, timers, and animation instances.
Related skills
More from nexu-io/open-design and the wider catalog.

enhance-prompt
Improve prompts with design specs and UI/UX vocabulary for design-to-code workflows.

export-download-debugging
Diagnose and fix browser, preview, or Electron export/download failures, especially image export issues.

fal-3d
Generate 3D models from text or images via fal.ai for games, AR, and product design.

fal-generate
Generate images and videos with Flux, SDXL, Ideogram, and other fal.ai models.

fal-image-edit
AI-powered image editing with style transfer, background removal, object removal, and inpainting.

fal-kling-o3
Generate images and videos with Kling O3, Kling's most powerful model family, via fal.ai.