apple-design

Applies Apple's fluid interface design principles to web animations, gestures, and typography.

Updated Mar 12, 2026
One-click install
npx skills add https://github.com/RavitejaKarra24/dotfiles --skill apple-design-ravitejakarra24
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: apple-design
Source: https://github.com/RavitejaKarra24/dotfiles/tree/main/agents/.agents/skills/apple-design
Command: npx skills add https://github.com/RavitejaKarra24/dotfiles --skill apple-design-ravitejakarra24

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Web interfaces often feel stiff because animations are pre-scripted, gestures lack momentum, and motion cannot be interrupted mid-flight. 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 into springs, momentum projection for flicks, and rubber-banding at boundaries. - Spring Animation Guidance: Use damping ratio and response parameters (with concrete Apple-shipped values) instead of fixed-duration CSS transitions, keeping every animation interruptible. - Materials, Typography & Accessibility: Build translucent layers with backdrop-filter, apply size-specific tracking and leading, and honor prefers-reduced-motion, reduced-transparency, and contrast media queries. - Use Case: When building a bottom sheet or swipeable card, use this Skill to make the sheet track the finger 1:1, project its resting position from release velocity, and settle with a critically damped spring that can be grabbed and reversed at any moment. ## Quick Start Ask the agent to review or build a gesture-driven UI component, such as a draggable bottom sheet with spring physics, following Apple fluid interface 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 its 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 1:1 using Pointer Events with setPointerCapture, record recent move events to compute release velocity, then project the resting position with the exponential decay formula (v/1000)*d/(1-d) and snap to the nearest target. Hand the release velocity to a spring so the drag-to-animation transition has no visible seam.

What spring parameters should I use for UI animations?

Apple uses damping ratio and response instead of mass/stiffness/damping. Default to damping 1.0 (critically damped, no overshoot) with response 0.3-0.4 seconds; use damping around 0.8 only for momentum-driven interactions like flicks. In Framer Motion, bounce and duration map closely to these values.

Should I use CSS transitions or spring libraries for gesture-driven UI?

Use spring libraries for anything gesture-driven, because CSS transitions and keyframes cannot be smoothly grabbed and reversed mid-flight. Springs animate from the current value by default and blend velocity on re-targeting, which is exactly what interruption requires.

How do I handle reduced motion accessibility for animations?

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

How do I recreate iOS-style translucent blur materials in CSS?

Use backdrop-filter with blur and saturate plus a semi-transparent background color, letting content scroll underneath the layer. Match material weight to hierarchy, avoid stacking light translucent surfaces, and animate blur radius with scale on enter and exit so the surface reads as a real material.