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.