apple-design

Implements Apple-style fluid interfaces with spring animations, gesture tracking, and translucent materials for the web.

1|Updated Aug 6, 2026
One-click install
npx skills add https://github.com/luce12/agent-dev-workflow --skill apple-design-luce12
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: apple-design
Source: https://github.com/luce12/agent-dev-workflow/tree/main/toolkits/apple-design
Command: npx skills add https://github.com/luce12/agent-dev-workflow --skill apple-design-luce12

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Web interfaces often feel stiff and disconnected because animations are pre-scripted, gestures lack continuous feedback, and motion cannot be interrupted mid-flight. This Skill translates Apple's WWDC design guidance (Designing Fluid Interfaces, UI Typography, Audio-Haptic Experiences) into concrete web techniques using CSS, Pointer Events, requestAnimationFrame, and spring libraries like Motion/Framer Motion. ## Core Features & Use Cases - Gesture-Driven Motion: Implement 1:1 drag tracking with Pointer Events and setPointerCapture, velocity handoff into springs, and momentum projection using Apple's exponential-decay formula. - Spring Animation Guidance: Apply damping ratio and response parameters (e.g., damping 1.0 / response 0.4 for repositioning, 0.8 / 0.3 for sheets) mapped to Motion/Framer Motion bounce and duration APIs. - Materials, Typography & Accessibility: Build translucent layers with backdrop-filter, size-specific tracking and leading for type, and reduced-motion/reduced-transparency fallbacks. - Use Case: When building a bottom sheet that users can drag, flick, and re-grab mid-animation, use this Skill to track pointer velocity, project the resting position, and hand off release velocity to a spring so the gesture transitions into animation without a visible seam. ## Quick Start Review my draggable bottom sheet implementation and rewrite the animation to use interruptible springs with velocity handoff following Apple fluid interface principles.

Frequently Asked Questions about apple-design

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I make web animations interruptible like iOS?▼

Use spring animations instead of CSS transitions or keyframes, since springs animate from the current on-screen value by default. On interrupt, read the element's live transform and re-target the spring from there, carrying velocity through the re-target to avoid a visible jump.

How to implement a draggable bottom sheet with momentum on the web?▼

Track the pointer with Pointer Events and setPointerCapture, recording a short velocity history. At release, project the resting position with (v/1000)·d/(1−d) where d ≈ 0.998, snap to the nearest target, and pass the release velocity into the spring's initial velocity.

What spring parameters should I use for UI animations?▼

Apple uses damping ratio and response instead of mass/stiffness/damping. Default to damping 1.0 (critically damped, no overshoot) with response 0.3–0.4 seconds; use damping around 0.8 only for momentum-driven interactions like flicks and drawers.

Can I use Framer Motion to replicate Apple fluid interfaces?▼

Yes. Framer Motion's bounce and duration spring API maps closely to Apple's damping and response parameters, and it accepts absolute px/s velocity directly. Use bounce 0 with duration 0.4 for critically damped defaults and small bounce values for flick-driven motion.

Why do CSS transitions feel wrong for gesture-driven UI?▼

CSS transitions and keyframes have fixed durations and cannot be grabbed or reversed mid-flight, causing velocity discontinuities when interrupted. Gesture-driven elements need springs that start from the live presentation value and blend velocity on reversal.

How do I handle reduced motion for spring animations?▼

Respect the prefers-reduced-motion media query by replacing slides, springs, and parallax with short opacity cross-fades or static transitions. Also handle prefers-reduced-transparency by raising background opacity and dropping backdrop blur on translucent surfaces.