apple-design

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

Updated Sep 7, 2026
One-click install
npx skills add https://github.com/raphaelmans/spectralpointengineering --skill apple-design-raphaelmans
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: apple-design
Source: https://github.com/raphaelmans/spectralpointengineering/tree/main/.skillshare/skills/apple-design
Command: npx skills add https://github.com/raphaelmans/spectralpointengineering --skill apple-design-raphaelmans

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 WWDC design principles into concrete web techniques so interfaces respond instantly, track gestures 1:1, and move with physical realism. ## Core Features & Use Cases - Spring-based motion: Replace fixed-duration CSS transitions with interruptible springs using damping ratio and response parameters, mapped to Motion/Framer Motion APIs. - Gesture engineering: Implement pointer tracking with velocity handoff, momentum projection, rubber-banding at boundaries, and grab-offset-aware dragging via Pointer Events. - Materials, typography, and accessibility: Build translucent layers with backdrop-filter, apply size-specific tracking and leading, and honor prefers-reduced-motion and reduced-transparency settings. - Use Case: When building a bottom sheet that users can drag, flick, and re-grab mid-animation, use this Skill to project the flick's landing point, hand off release velocity to a spring, and keep the sheet grabbable at any moment. ## Quick Start Use the apple-design skill to review my drag-to-dismiss modal and make its motion 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 to implement momentum-based flick gestures in JavaScript?

Track pointer position and timestamp history during the drag, then project the resting position with the formula (velocity/1000) * d/(1-d) where d is about 0.998. Snap to the target nearest the projected point and pass the release velocity to the spring as its initial velocity.

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.

Does Framer Motion support Apple's spring model?

Yes, Framer Motion and Motion map closely to Apple's damping and response parameters through their bounce and duration spring API. They also accept absolute velocity in pixels per second, so you can hand off gesture release velocity directly.

Why does my drag 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 current presentation value. Always read the element's live on-screen transform at the moment of interruption and begin the new spring from that position.

How do I handle reduced motion for spring animations?

Respond to the prefers-reduced-motion media query by replacing slides, springs, and parallax with short opacity cross-fades or static transitions. Drop elastic overshoot entirely while keeping opacity and color changes that aid comprehension.