apple-design

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

Updated May 13, 2026
One-click install
npx skills add https://github.com/sapatamuku-creator/mastersapatamuku --skill apple-design-sapatamuku-creator
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: apple-design
Source: https://github.com/sapatamuku-creator/mastersapatamuku/tree/main/releases/v2.7/.agents/skills/apple-design
Command: npx skills add https://github.com/sapatamuku-creator/mastersapatamuku --skill apple-design-sapatamuku-creator

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Web interfaces often feel stiff and disconnected because animations are pre-scripted, gestures lack momentum, and transitions cannot be interrupted. This Skill translates Apple's fluid interface design principles from WWDC talks 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 for flicks, and rubber-banding at boundaries. - Interruptible Spring Animations: Configure damping ratio and response parameters so animations start from the current on-screen value and can be grabbed or reversed mid-flight. - Materials, Typography & Accessibility: Build translucent layers with backdrop-filter, apply size-specific tracking and leading, and honor prefers-reduced-motion and prefers-reduced-transparency. - Use Case: When building a bottom sheet that users can drag, flick, and re-grab mid-animation, use this Skill to wire pointer capture, project the flick's resting position, and hand off release velocity to a spring so the motion feels continuous. ## Quick Start Use the apple-design skill to build a draggable bottom sheet with spring physics, momentum projection, and rubber-banding at the edges.

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 animate from the element's current on-screen presentation value rather than the target value. Spring libraries like Motion or Framer Motion carry velocity through re-targeting, so users can grab and reverse motion mid-flight.

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

Track the pointer with Pointer Events and setPointerCapture, record a short velocity history, then on release project the resting position with the formula (v/1000)*d/(1-d) using decelerationRate around 0.998. Snap to the nearest target and hand the release velocity to a spring.

What spring parameters should I use for UI animations?▼

Apple uses damping ratio and response instead of mass, stiffness, and damping. Start most UI at damping 1.0 (critically damped, no overshoot) with response 0.3-0.4 seconds, and only add bounce around damping 0.8 when the gesture itself carried momentum like a flick.

Can I use CSS transitions for gesture-driven animations?▼

CSS transitions and keyframes should be avoided for anything gesture-driven because they cannot be smoothly grabbed and reversed mid-flight. They work for simple state changes, but springs are required when users can interrupt or redirect the motion.

How do I handle prefers-reduced-motion for animated interfaces?▼

Replace slides, springs, and parallax with short opacity cross-fades or static transitions when prefers-reduced-motion is set, and drop elastic overshoot. Also respond to prefers-reduced-transparency by making surfaces more solid and prefers-contrast by adding defined borders.

Why does my drag animation jump when the user interrupts it?▼

The jump happens when the new animation starts from the logical target value instead of the live presentation value on screen. Read the element's current rendered transform at the moment of interruption and start the new spring from there, blending velocity rather than hard-cutting it.