apple-design

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

Updated Jul 15, 2026
One-click install
npx skills add https://github.com/Alex918-stack/papertrader --skill apple-design-alex918-stack
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: apple-design
Source: https://github.com/Alex918-stack/papertrader/tree/main/agent/skills/apple-design
Command: npx skills add https://github.com/Alex918-stack/papertrader --skill apple-design-alex918-stack

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Web interfaces often feel stiff because they rely on fixed-duration CSS transitions that ignore gesture velocity, cannot be interrupted mid-animation, and lack the physical feedback that makes interfaces feel responsive. This Skill translates Apple's WWDC design guidance (Designing Fluid Interfaces, UI Typography, Audio-Haptic design) into concrete web techniques using Pointer Events, requestAnimationFrame, spring libraries, and CSS. ## Core Features & Use Cases - Gesture-Driven Motion: Implement 1:1 drag tracking with Pointer Events and setPointerCapture, velocity handoff from gesture to spring, and momentum projection using Apple's exponential decay formula to predict flick landing points. - Spring Animation Guidance: Apply Apple's damping ratio and response parameters (e.g., damping 1.0 for default UI, 0.8 for momentum interactions) mapped to Motion/Framer Motion bounce and duration values, with interruptible animations that start from the live presentation value. - Materials, Typography, and Accessibility: Build translucent layers with backdrop-filter, apply size-specific tracking and leading for typography, and honor prefers-reduced-motion, prefers-reduced-transparency, and prefers-contrast media queries. - Use Case: When building a bottom sheet or draggable card in a Next.js app, use this Skill to implement rubber-banding at boundaries, velocity-aware dismissal, and a critically damped spring settle so the sheet feels physical rather than scripted. ## Quick Start Use the apple-design skill to review my draggable bottom sheet component and make its animations interruptible with proper velocity handoff.

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 start the new animation from there, carrying velocity through the re-target to avoid a visible jump.

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

Track the pointer with Pointer Events and setPointerCapture, record recent move events for velocity, then project the resting position with the formula current + (v/1000)·d/(1−d) where d ≈ 0.998. Snap to the nearest target and hand the release velocity to a spring with damping around 0.8.

What spring parameters should I use in Framer Motion for Apple-style UI?▼

Apple's damping ratio and response map to Framer Motion's bounce and duration. Use bounce 0 with duration 0.3–0.4 for default UI (critically damped), and bounce around 0.2 only for momentum-driven interactions like flicks and throws.

Why does my animation jump when the user grabs it mid-flight?▼

The jump happens when the new animation starts from the logical target value instead of the live presentation value. Read the element's current on-screen transform at the moment of interruption and begin the new spring from that position with the current velocity.

How do I handle reduced motion for gesture-driven animations?▼

Respond to 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 making translucent surfaces solid and prefers-contrast by adding defined borders.

When should I avoid CSS transitions for UI animation?▼

Avoid CSS transitions and keyframes for anything gesture-driven, because they cannot be grabbed and reversed mid-flight without a velocity discontinuity. They remain acceptable for simple state changes like hover effects that users cannot interrupt.