apple-design

Implements Apple-style fluid interface design principles for web animations and interactions.

3|1|Updated Aug 23, 2025
One-click install
npx skills add https://github.com/samuelpatro/.claude --skill apple-design-samuelpatro
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: apple-design
Source: https://github.com/samuelpatro/.claude/tree/main/skills/apple-design
Command: npx skills add https://github.com/samuelpatro/.claude --skill apple-design-samuelpatro

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Web interfaces often feel stiff and disconnected because animations are pre-scripted, non-interruptible, and ignore gesture velocity. This Skill translates Apple's WWDC design guidance (fluid interfaces, springs, materials, typography) into concrete web techniques using CSS, Pointer Events, and spring libraries like Motion and Framer Motion. ## Core Features & Use Cases - Gesture-Driven Motion: Implement 1:1 drag tracking with Pointer Events, velocity handoff to springs, momentum projection, and rubber-banding at boundaries. - Spring Animation Guidance: Apply Apple's damping ratio and response parameters instead of fixed-duration animations, with concrete values for drawers, sheets, and repositioning. - Materials, Typography & Accessibility: Build translucent layers with backdrop-filter, size-specific type tracking and leading, 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 wire pointer tracking, project the flick's landing point, and hand off release velocity to a spring so the motion feels continuous. ## Quick Start Review my drag-to-dismiss sheet component and rewrite its animations to use interruptible springs with velocity handoff following Apple design 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, and always start new animations from the element's live on-screen (presentation) value rather than the target value. Springs re-target from current velocity, so users can grab and reverse motion mid-flight without jumps.

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

Track the pointer 1:1 using Pointer Events with setPointerCapture, record recent move events for velocity, then on release project the resting position with Apple's momentum formula and animate to the nearest snap point with a spring seeded by the release velocity.

What spring parameters does Apple use for UI animations?▼

Apple defines springs with damping ratio and response instead of duration. Defaults are damping 1.0 (no overshoot) with response 0.3-0.4 seconds; drawers and sheets use damping 0.8 for slight bounce, reserved for momentum-driven gestures.

Can I use Framer Motion to replicate iOS-style physics?▼

Yes. Framer Motion's bounce and duration spring options map closely to Apple's damping and response parameters, and it accepts absolute velocity values for gesture handoff. Use bounce 0 for critically damped default UI motion.

How do I handle reduced motion for gesture animations?▼

Respect the prefers-reduced-motion media query by replacing slides, springs, and parallax with short opacity cross-fades, and drop elastic overshoot. Also handle prefers-reduced-transparency by solidifying blurred surfaces and prefers-contrast by adding defined borders.

Why does my drag animation jump when the user reverses direction?▼

The jump happens when a new animation starts from the logical target value or replaces velocity abruptly. Read the element's current rendered transform as the start point and use a spring library that carries velocity through re-targeting to avoid the discontinuity.