All flashcards
526 cards · 424 live examples. Each card has a link of its own; select an example to replay it, press and hold it to slow it down.
Design
Animation
- Entrances & Exits
Fade in / fade out
Element appears or disappears by changing opacity.
- Entrances & Exits
Slide in
Element enters by sliding in from off-screen (left, right, top, or bottom).
- Entrances & Exits
Scale in
Element grows from smaller to full size as it appears, often paired with a fade.
- Entrances & Exits
Pop in
Element appears with a slight overshoot, like it bounces into place.
- Entrances & Exits
Reveal
Content is uncovered gradually, often by animating a clip-path or mask.
- Entrances & Exits
Enter / Exit
The animation an element plays when it's added to or removed from the screen.
- Sequencing & Timing
Keyframes
Defined points in an animation (0%, 50%, 100%) that the browser fills the gaps between.
- Sequencing & Timing
Interpolation / tween
Generating all the in-between frames between a start and end value.
- Sequencing & Timing
Stagger
Animate several items one after another with a small delay between each.
- Sequencing & Timing
Orchestration
Deliberately timing multiple animations so they feel like one coordinated motion.
- Sequencing & Timing
Delay
Time before an animation starts.
- Sequencing & Timing
Duration
How long an animation takes.
- Sequencing & Timing
Fill mode
Whether an element keeps its first or last frame's styles before the animation starts or after it ends.
- Sequencing & Timing
Stepped animation
An animation divided into discrete steps, like a countdown timer.
- Movement & Transforms
Translate
Move an element along the X or Y axis.
- Movement & Transforms
Scale
Make an element bigger or smaller.
- Movement & Transforms
Rotate
Spin an element around a point.
- Movement & Transforms
Skew
Slant an element along the X or Y axis, shearing it out of rectangular shape.
- Movement & Transforms
3D tilt / flip
Rotate in 3D space (rotateX / rotateY) to add depth.
- Movement & Transforms
Perspective
How strong the 3D effect looks — lower values exaggerate depth.
- Movement & Transforms
Transform origin
The anchor point a scale or rotation grows or spins from.
- Movement & Transforms
Origin-aware animation
An element animates out of its trigger, like a popover growing from the button.
- Transitions Between States
Crossfade
One element fades out as another fades in, in the same spot.
- Transitions Between States
Continuity transition
A change that keeps users oriented by visually connecting before and after.
- Transitions Between States
Morph
One shape smoothly turns into another shape, e.g. Dynamic Island.
- Transitions Between States
Shared element transition
An element travels and transforms from one position into another.
- Transitions Between States
Layout animation
When an element's size or position changes, it animates to the new spot instead of snapping.
- Transitions Between States
Accordion / collapse
A section smoothly expands and collapses its height to show or hide content.
- Transitions Between States
Direction-aware transition
Content slides one way going forward and the opposite way going back.
- Scroll
Scroll reveal
Elements fade or slide into place as they enter the viewport.
- Scroll
Scroll-driven animation
An animation whose progress is tied directly to scroll position.
- Scroll
Parallax
Background and foreground move at different speeds while scrolling, creating depth.
- Scroll
Page transition
An animation that plays when navigating from one page or route to another.
- Scroll
View transition
The browser morphs between two states or pages, connecting shared elements.
- Feedback & Interaction
Hover effect
Visual change when the pointer moves over an element.
- Feedback & Interaction
Press / tap feedback
A subtle scale-down when an element is clicked, so it feels physical.
- Feedback & Interaction
Hold to confirm
A progress effect that fills up while the user holds a button.
- Feedback & Interaction
Drag
Moving an element by grabbing it, often with momentum when released.
- Feedback & Interaction
Drag to reorder
Dragging items in a list to rearrange them while others shift to make room.
- Feedback & Interaction
Swipe to dismiss
Dragging an element off-screen to close it, like a drawer or toast.
- Feedback & Interaction
Rubber-banding
Resistance and snap-back when you drag past a boundary.
- Feedback & Interaction
Shake / wiggle
A quick side-to-side jitter signaling an error or rejected input.
- Feedback & Interaction
Ripple
A circle expanding from the point of a tap, confirming the press.
- Easing
Easing
The rate at which an animation speeds up or slows down.
- Easing
Ease-out
Starts fast, ends slow. The default for most UI and anything responding to the user.
- Easing
Ease-in
Starts slow, ends fast. Usually avoided; can feel sluggish.
- Easing
Ease-in-out
Slow, fast, slow. Good for elements already on screen moving from A to B.
- Easing
Linear
Constant speed. Avoid for UI; reserve for spinners or marquees.
- Easing
Cubic-bezier
A custom easing curve you define for precise control.
- Easing
Asymmetric easing
A curve that accelerates and decelerates at different rates.
- Spring Animations
Spring
Motion driven by physics (tension, mass, damping) rather than a set duration.
- Spring Animations
Stiffness / tension
How strongly the spring pulls toward its target. Higher feels snappier.
- Spring Animations
Damping
How quickly a spring settles. Lower damping means more bounce.
- Spring Animations
Mass
How heavy the animated element feels. More mass makes it slower.
- Spring Animations
Bounce
A spring that overshoots and settles, adding playfulness.
- Spring Animations
Perceptual duration
How long a spring feels finished, even though it keeps micro-settling.
- Spring Animations
Momentum
Motion that carries velocity, especially after a drag or interruption.
- Spring Animations
Velocity
How fast and in which direction an element is moving.
- Spring Animations
Interruptible animation
An animation that can be smoothly redirected mid-flight.
- Looping & Ambient Motion
Marquee
Text or content that scrolls continuously in a loop.
- Looping & Ambient Motion
Loop
An animation that repeats, a set number of times or infinitely.
- Looping & Ambient Motion
Alternate (yoyo)
A loop that plays forward then reverses each iteration.
- Looping & Ambient Motion
Orbit
An element circling around another in a continuous path.
- Looping & Ambient Motion
Pulse
A gentle repeating scale or opacity change to draw attention.
- Looping & Ambient Motion
Float
A gentle, continuous up-and-down drift that makes a static element feel alive.
- Looping & Ambient Motion
Idle animation
Subtle motion that plays while an element is just sitting there.
- Polish & Effects
Blur
A blur filter used to soften an element or mask tiny imperfections.
- Polish & Effects
Clip-path
Clipping an element to a shape, used for reveals, masks, and sliders.
- Polish & Effects
Mask
Hiding or revealing parts of an element using a shape or gradient.
- Polish & Effects
Before / after slider
A draggable divider that wipes between two overlaid images.
- Polish & Effects
Line drawing
An SVG path that draws itself in, like an invisible pen tracing it.
- Polish & Effects
Text morph
Text that animates character by character when it changes.
- Polish & Effects
Skeleton screen
A placeholder shaped like the content, shown while it loads.
- Polish & Effects
Number ticker
Digits rolling or counting up to a value.
- Polish & Effects
Tabular numbers
Fixed-width digits so numbers don't shift around as they change.
- Polish & Effects
Typewriter
Text appearing one character at a time, as if being typed.
- Performance
Frame rate (FPS)
Frames drawn per second. 60fps is the baseline; 120fps on newer displays.
- Performance
Jank
Visible stutter when the browser drops frames because it can't keep up.
- Performance
Dropped frame
A frame the browser missed its deadline to draw.
- Performance
GPU compositing
Letting the GPU move or fade an element on its own layer.
- Performance
will-change
A CSS hint that an element is about to animate.
- Performance
Layout thrashing
Alternating DOM reads and writes so the browser must recalculate layout synchronously each time.
- Principles to Know
Purposeful animation
Motion should serve a function — orient, give feedback, show relationships.
- Principles to Know
Anticipation
A small wind-up in the opposite direction before a move.
- Principles to Know
Follow-through
Parts of an element keep moving and settle slightly after the main motion stops.
- Principles to Know
Squash & stretch
Deforming an element as it moves to convey weight, speed, and flexibility.
- Principles to Know
Perceived performance
The right animation makes an interface feel faster, even when it isn't.
- Principles to Know
Frequency of use
The more often a user sees an animation, the shorter and subtler it should be.
- Principles to Know
Spatial consistency
Animating so an element keeps its identity across states.
- Principles to Know
Hardware acceleration
Animating transform and opacity lets the GPU keep motion smooth.
- Principles to Know
Reduced motion
Respecting the user's prefers-reduced-motion setting by toning down motion.
- Performance
Transition property
Which CSS properties animate. Opacity and transform are the safe pair.
- Polish & Effects
Skeleton shimmer
A moving gradient that sweeps across a skeleton loader to suggest activity.
- Sequencing & Timing
Choreography
The coordination of multiple elements animating at the same time.
- Entrances & Exits
Enter vs exit asymmetry
Entering and exiting animations should not mirror — entrances decelerate into place; exits accelerate away.
- Transitions Between States
Shared axis transition
When navigating between two related views, the motion direction should reflect the spatial relationship between them.
- Feedback & Interaction
Motion as feedback
Using animation to confirm that something happened: a button that compresses on press, a form field that shakes on invalid input.
Design
- Typography
Kerning
The space between two specific characters, adjusted manually. Different from tracking, which affects all characters equally.
- Typography
Tracking
Letter-spacing applied uniformly across a word or block of text. Uppercase labels almost always need more of it.
- Typography
Leading
The vertical space between lines of text. Too tight and text suffocates. Too loose and it stops reading as a paragraph.
- Typography
Optical kerning
Space adjustments made by eye rather than font metrics to eliminate awkward gaps between letter pairs.
- Typography
Type scale
A predetermined set of font sizes that work together, usually based on a ratio.
- Typography
Weight
How thick or thin a typeface's strokes are. Bold is for UI emphasis and hierarchy.
- Typography
X-height
The height of a lowercase letter like x, relative to the cap height.
- Typography
Cap height
The height of a capital letter. Along with x-height, it determines how large a font feels on screen.
- Typography
Ligature
Two characters that merge into a single glyph to avoid awkward collisions. fi and fl are the most common.
- Typography
Font smoothing
How browsers render font edges; antialiased rendering appears thinner and crisper.
- Typography
Text overflow
What happens when text is longer than its container. Truncation with an ellipsis is the most common solution.
- Typography
Hyphenation
Breaking a word across lines with a hyphen. Helps with narrow columns and justified text.
- Typography
Clamp
A technique for fluid type sizing that sets a minimum, preferred, and maximum value.
- Typography
Widow
A single word left alone on the last line of a paragraph. text-wrap: pretty can fix it automatically.
- Typography
Orphan
A single line of a paragraph stranded at the top of a new column or page.
- Typography
Font stack
The ordered list of fonts the browser tries before giving up.
- Typography
Line length
How wide a column of text runs. Around 65 characters is comfortable.
- Typography
Variable font
A single font file containing a range of weights, widths, or other axes.
- Typography
Superscript
Raised characters for footnotes or exponents. The HTML sup element is too large by default.
- Typography
Subscript
Lowered characters for formulas or notation. The HTML sub element is also too large by default.
- Color
sRGB
The standard color space most screens have used for decades. All hex values live here.
- Color
P3
A wider color space supported by most modern screens. Allows more vivid colors, particularly greens and reds.
- Color
OKLCH
A color space that matches how humans perceive brightness. Unlike HSL, two colors at the same lightness value actually look the same brightness.
- Color
Alpha
The transparency component of a color, from fully opaque to fully invisible.
- Color
Semantic token
A color variable named for its purpose rather than its value.
- Color
Contrast ratio
The luminance difference between a foreground and background color. WCAG requires 4.5:1 for body text, 3:1 for large text and UI components.
- Color
Tinted neutral
A gray with a slight hue bias. Pure #808080 looks like a placeholder.
- Color
Saturation
How vivid or muted a color is.
- Color
Chroma
The OKLCH equivalent of saturation, but perceptually accurate.
- Color
Gradient
A transition between two or more colors.
- Color
Opacity vs visibility
Two ways to hide an element while keeping its layout space — opacity: 0 still receives pointer events; visibility: hidden does not.
- Color
Dark mode
An interface built on dark surfaces. The brightest surface should sit at the top of the layering hierarchy.
- Color
Blending
How a layer interacts with what's beneath it. Multiply darkens, Screen lightens, Overlay does both depending on the base color.
- Iconography
Stroke weight
How thick the lines of an icon are. Thin strokes disappear at small sizes.
- Iconography
Optical center
Where something looks centered versus where it mathematically is.
- Iconography
Filled vs outlined
Two icon styles for communicating state. Filled often signals active or selected.
- Iconography
Cap style
Whether stroke ends are square or round. Round caps feel finished in most UI contexts.
- Iconography
Pixel hinting
Adjusting icon paths to sit cleanly on a pixel grid at small sizes.
- Iconography
Icon library
A set of icons drawn at the same size, weight, and radius.
- Iconography
Icon size system
The defined sizes an icon is designed to appear at, typically 12, 16, 20, 24, and 48px.
- Iconography
Meaning collision
When the same icon is used for two different actions in the same product.
- Iconography
Contextual swap
Switching from an outlined icon to a filled one (or vice versa) to signal a state change.
- Iconography
Breathing room
The space between an icon and its label inside a button or list item.
- Iconography
Unified weight
When icons and surrounding text share the same visual weight.
- Iconography
Metaphor accuracy
Whether the icon actually represents what it's supposed to.
- Layout
Border radius
The rounding on a corner. An inner element inside a rounded container needs a smaller radius.
- Layout
Gap
Space between flex or grid children, set on the parent.
- Layout
Negative space
The empty area around and between elements. It defines shape, creates breathing room, and guides the eye.
- Layout
Flexbox
A CSS layout model for arranging elements in a row or column.
- Layout
Auto layout
Figma's implementation of flexbox: elements that space themselves, resize with their content, and respond to direction and alignment rules.
- Layout
Layout shift
When elements move unexpectedly as a page loads: images popping in, fonts swapping, content reordering.
- Layout
Overflow
What happens when content is larger than its container. Hidden clips silently. Scroll adds a scrollbar.
- Layout
Sticky positioning
An element that scrolls normally until it hits a threshold, then fixes in place.
- Layout
Aspect ratio
The proportional relationship between width and height.
- Layout
Viewport units
Units relative to browser dimensions; dvh accounts for mobile browser chrome that shows/hides on scroll.
- Layout
Safe area
The part of a screen not obscured by notches or home indicators.
- Layout
Max-width
A cap on how wide a container gets. Without one, text lines stretch to unreadable lengths on wide screens.
- Layout
Breakpoint
The point at which a layout changes to suit a different screen size.
- Layout
Responsive
A design that adapts to different screen sizes rather than being fixed.
- Layout
Grid
A system of columns that organizes layout. 12 columns is conventional.
- Layout
Asymmetry
A layout where columns or elements are intentionally unequal. Creates tension and visual interest.
- Layout
Baseline grid
A vertical rhythm built from the line-height of body text.
- Layout
Z-index
The stacking order of elements on the same plane.
- Interaction States
Affordance
The visual signal that tells you how something can be used.
- Interaction States
Hover state
The visual change when a cursor moves over an interactive element.
- Interaction States
Focus state
The visible indicator that an element is keyboard-focused.
- Interaction States
Active state
The visual change when an element is pressed.
- Interaction States
Disabled state
A non-interactive element. Using opacity alone is unreliable since it can pass or fail contrast checks unpredictably.
- Interaction States
Cursor
The pointer icon that signals what an element does. Pointer means clickable.
- Interaction States
Pointer events
Whether an element can receive mouse or touch input.
- Interaction States
Optimistic update
Updating the UI before the server confirms the action. Feels instant.
- Interaction States
Debounce
A delay before firing a function, reset each time it is triggered.
- Interaction States
Touch target
The tappable area of an interactive element. The minimum is 44x44px.
- Interaction States
Copy to clipboard
A button that copies text. Needs visible confirmation, typically a checkmark for a second or two.
- Interaction States
Skip link
A visually hidden link that jumps to the main content.
- Accessibility
WCAG
Web Content Accessibility Guidelines. The standard most teams use for color contrast. AA requires 4.5:1 for body text, 3:1 for large text and UI components.
- Accessibility
APCA
Advanced Perceptual Contrast Algorithm. A newer contrast model that accounts for font size and weight.
- Accessibility
Screen reader
Software that reads interface content aloud for blind or low-vision users.
- Accessibility
Tab order
The sequence keyboard focus moves through when pressing Tab.
- Accessibility
Prefers color scheme
A media query that detects the user's system theme preference.
- Accessibility
aria-label
An accessible name for an element with no visible text.
- Accessibility
Focus trap
Keeping keyboard focus inside an open modal or dialog.
- Accessibility
DOM order
The sequence of elements in the HTML. Screen readers follow this, not visual order.
- Accessibility
Semantic HTML
Using the right element for the job. A button handles keyboard events, focus, and role for free.
- Accessibility
Label association
Linking a label to its input via matching for and id attributes.
- Accessibility
Color-only state
Using color as the sole signal for a state change.
- Information Architecture
Progressive disclosure
Showing only what is needed at each step, revealing complexity as the user goes deeper.
- Information Architecture
Navigation
The system for moving between areas of a product.
- Information Architecture
Mental model
The user's internal picture of how something works.
- Information Architecture
Hierarchy
The ranking of elements by importance.
- Information Architecture
Empty state
The view when there is no content yet. Should explain why and offer a next step.
- Information Architecture
Error state
What the UI shows when something fails. Should say what went wrong and offer a specific way to recover.
- Information Architecture
Onboarding
Introducing a new user to a product.
- Information Architecture
Confirmation dialog
A prompt before a destructive or irreversible action.
- Information Architecture
Wayfinding
The system of signals that help users understand where they are, how they got there, and where they can go.
- Information Architecture
Signpost
A UI element whose only job is to orient the user.
- Information Architecture
Labeling
The words used for navigation items, section headers, and categories.
- Information Architecture
Depth
How many levels of navigation a user must traverse to reach content. Three levels is generally the limit.
- Information Architecture
Search as escape hatch
When users resort to search because navigation has failed them.
- Information Architecture
Content inventory
A complete list of everything in a product or site.
- Information Architecture
Card sorting
A research method where users group topics or features into categories that make sense to them.
- Copywriting
Microcopy
Short UI text: labels, error messages, placeholders, tooltips.
- Copywriting
CTA
Call to action. The label on the primary action. Save changes builds more trust than Submit.
- Copywriting
Error message
Text explaining what went wrong and how to fix it.
- Copywriting
Placeholder
Hint text inside an input that disappears when the user starts typing.
- Copywriting
Sentence case
Capitalizing only the first word and proper nouns.
- Copywriting
Front-loading
Putting the most important word first.
- Copywriting
Inline error
An error message next to the field that caused it.
- Copywriting
Voice
The consistent personality behind all the words in a product.
- Copywriting
Tone
How the voice adapts to the moment.
- Copywriting
Success message
Confirmation that an action completed.
- Copywriting
Destructive language
The copy on actions that cannot be undone. Delete, remove, disconnect, revoke.
- Copywriting
Scannability
Text written to be read quickly rather than thoroughly.
- Copywriting
Truncation strategy
Deciding where and how text gets cut when it overflows.
- Copywriting
Contextual help
Explanatory text placed close to the thing it explains, at the moment the user needs it.
- Copywriting
Numeric formatting
How numbers are written in the interface. 1,000 vs 1000.
- Tools
Design system
A shared set of components, tokens, patterns, and guidelines.
- Tools
Source of truth
The single place a team defers to for design decisions.
- Tools
Variables
Named containers for values like colors, spacing, or type sizes that can be reused and updated from one place.
- Tools
Tokens
Design decisions stored as named variables that both design tools and code can reference.
- Tools
Visual language
The cohesive set of decisions covering color, type, shape, motion, and tone that makes a product recognizable.
- Tools
Artboard / frame
A named canvas in a design file representing a screen, view, or component.
- Tools
Prototype
An interactive mockup used to test or communicate a flow before it's built.
- Tools
Handoff
The moment design moves to engineering.
- Tools
Redline / annotation
Measurements and notes added to designs to communicate intent to developers.
- Tools
Moodboard
A collection of visual references to explore or communicate a direction before committing.
- Tools
HiDPI / Retina
Screens with twice or more the pixel density of a standard display.
- Tools
Open Graph
The metadata controlling how a link previews when shared.
- Analysis
A/B test
Two design variants running simultaneously to measure which performs better.
- Analysis
Heatmap
A visualization of where users click, tap, or scroll on a page.
- Analysis
Session recording
Video of individual user sessions through a product.
- Analysis
Funnel
The path users take toward a conversion goal.
- Analysis
Conversion
The moment a visitor takes the desired action.
- Analysis
Bounce rate
The percentage of visitors who leave without taking any action.
- Analysis
Retention
How many users come back after their first visit.
- Analysis
Churn
Users who stop using the product. The inverse of retention.
- Analysis
NPS
Net Promoter Score. A measure of how likely users are to recommend a product, on a scale of 0 to 10.
- Analysis
Scroll depth
How far down a page users actually read.
- Components
Button
The primary action trigger. Needs distinct default, hover, active, focus, disabled, and loading states.
- Components
Input
A text entry field. Needs a persistent label above it, not just a placeholder.
- Components
Textarea
A multi-line input. Needs the same state treatment as a single-line input.
- Components
Select
A dropdown for choosing one option from a list.
- Components
Checkbox
A toggle for a binary choice. Clicking the label should toggle it.
- Components
Radio group
A set of options where exactly one can be selected.
- Components
Switch
A toggle for an on/off state. Implies an immediate effect.
- Components
Slider
A control for selecting a value within a range.
- Components
Modal / dialog
An overlay that interrupts the current flow to require attention.
- Components
Sheet
A panel that slides in from the screen edge.
- Components
Drawer
A bottom sheet that pulls up from the base of the screen.
- Components
Popover
A small overlay anchored to an element, triggered by click.
- Components
Tooltip
A small label on hover that explains an element. Cannot contain interactive content.
- Components
Toast
A temporary notification that auto-dismisses.
- Components
Badge
A small label attached to another element. Implies a count when numeric.
- Components
Tag
A label that categorizes content. Tags are standalone, selectable, or removable.
- Components
Tabs
Switches between related views in the same space.
- Components
Stepper
A multi-step flow that shows progress through a sequence.
- Components
Carousel
A horizontally scrollable row of items.
- Components
Navigation menu
A top-level or flyout structure for moving between major sections.
- Components
Sidebar
Persistent navigation anchored to an edge.
- Components
Breadcrumb
A trail showing location within a hierarchy.
- Components
Pagination
Controls for moving between pages of content.
- Components
Spinner
An indeterminate loading indicator.
- Components
Avatar
A small image representing a user or entity.
- Components
Card
A contained surface grouping related content.
- Components
Data table
A structured grid of rows and columns.
- Components
Combobox
An input that filters a dropdown as you type.
- Components
Command menu
A keyboard-triggered search interface for navigating or executing actions.
- Components
Progress
A bar showing completion through a determinate process.
- Components
Separator
A visual divider between items or sections.
JavaScript
JavaScript & Browsers
- Event Loop
Call stack
The single place JavaScript runs function calls. It's LIFO: the last function pushed on is the first to finish and pop off. While it has frames on it, nothing else can run.
- Event Loop
Web APIs
Browser-provided features (timers, fetch, DOM events) that run outside the JS engine. You hand them work and a callback; they run it on their own and hand the callback back when done — so the stack stays free.
- Event Loop
Task queue (macrotasks)
Where finished callbacks (setTimeout, DOM events) wait their turn. It's FIFO — first in, first out. One task runs to completion before the next is picked up.
- Event Loop
Microtask queue
A higher-priority queue for promise callbacks and queueMicrotask. It's drained completely — every microtask runs — before the next macrotask or a render.
- Event Loop
Event loop
The loop that ties it together: whenever the call stack is empty, it drains all microtasks, then takes one task from the queue and runs it. Repeat forever.
- Event Loop
Macrotask vs microtask
Both queues are first in, first out, but all microtasks drain before the next macrotask — always. A promise scheduled after a timer still runs first.
- Event Loop
setTimeout(fn, 0)
0 ms is a minimum delay, not 'run now'. The callback is still queued as a task, so it waits for the current code and all microtasks first — it never runs immediately.
- Event Loop
async / await
Syntactic sugar over promises. Code before await runs synchronously; everything after await is queued as a microtask that resumes once the awaited value settles.
- Event Loop
Render step & rAF
After microtasks drain, the browser may paint. requestAnimationFrame (rAF) callbacks run right before that paint — the right place for visual updates so they land in the next frame.
- Event Loop
Blocking the main thread
Long synchronous work keeps a frame on the stack, so the loop can't reach queued tasks or repaint. Clicks, script-driven animations, and rendering freeze until it finishes; compositor-only animations (transform, opacity) and scrolling can keep going.
- Event Loop
Microtask starvation
Because microtasks fully drain before anything else, a microtask that keeps scheduling more microtasks never lets the loop reach the task queue or a render — starving them.
- Browser Architecture
Browser vs rendering engine
The browser is the whole app; the rendering engine (also called the browser engine) is the part that turns HTML and CSS into pixels. Each major browser ships its own: Chrome and Edge use Blink, Safari uses WebKit, Firefox uses Gecko.
- Browser Architecture
Multi-process architecture
Modern browsers split work across separate OS processes — browser, renderer, GPU, network, and utility — so one crashed or busy tab can't take down the whole browser.
- Browser Architecture
Browser process
The privileged process that owns the UI you interact with — address bar, tabs, back and forward — and coordinates the network and renderer processes. It's the most privileged process; renderers are sandboxed.
- Browser Architecture
Renderer process
The process (often one per site) responsible for everything inside a tab: parsing, styling, layout, paint, and running the page's JavaScript on its main thread.
- Browser Architecture
Sandbox
Renderer processes run with restricted privileges — no direct file or network access — so a compromised page can't touch your system. They ask the browser process to act on their behalf.
- Browser Architecture
Site isolation
Each site is given its own renderer process, so a malicious page can't read another site's memory. A defense hardened after the Spectre CPU attacks.
- Navigation
URL to pixels
Typing a URL kicks off a chain: DNS lookup, then connect (TCP + TLS), then an HTTP request, then the response — and only then does the browser hand the HTML to a renderer to display.
- Navigation
DNS lookup
Translating a human domain name into the numeric IP address of a server. The browser checks its caches first, then asks a DNS resolver (a server that looks names up for you).
- Navigation
TCP & TLS handshake
Before any data flows, the browser opens a TCP connection (a three-step handshake) and, for HTTPS, negotiates TLS encryption — extra round trips before the first byte arrives.
- Navigation
HTTP request / response
The browser sends an HTTP request (method, URL, headers); the server replies with a status code, headers, and a body — the HTML document to render.
- Navigation
Commit navigation
Once the response's first bytes and content type confirm it's a page to display, the browser process tells a renderer to take over — the URL bar updates and the old page is gone.
- Rendering
Parsing HTML → DOM
The browser reads HTML top to bottom, tokenizes the tags, and builds the DOM (Document Object Model) — a tree of nodes representing the page's structure and content.
- Rendering
CSSOM
The CSS Object Model: a tree built from all CSS rules. Combined with the DOM, it gives every node its final style after the cascade and inheritance. The style half of what gets rendered.
- Rendering
Render tree
DOM and CSSOM combined into a tree of only the nodes that will actually be painted, each with its computed style. Invisible nodes (display:none, <head>) are left out.
- Rendering
Layout (reflow)
Walking the render tree to compute the exact geometry — position and size — of every box on the page. Also called reflow, and it runs again whenever geometry changes.
- Rendering
Paint
Recording what to draw for each box — text, colors, borders, shadows, images — often per layer. It produces draw commands, not pixels; rasterization turns those into pixels.
- Rendering
Render-blocking CSS
The browser won't paint until the CSSOM is ready, so CSS blocks the first render. It's fetched at high priority to unblock the page as fast as possible.
- Rendering
Parser-blocking JavaScript
A plain <script> tag pauses HTML parsing until it's fetched and run, because a script can change the DOM. The `async` and `defer` attributes let parsing continue.
- Rendering
Preload scanner
A secondary parser that runs ahead of the main one while it's blocked, spotting and prefetching resources — images, scripts, stylesheets — before they're formally reached.
- Styling & Layout
Selector matching (right to left)
Browsers match CSS selectors right to left, starting from the rightmost 'key' selector. Rejecting non-matching elements early is far faster than searching left to right.
- Styling & Layout
Reflow triggers
Changing geometry (resizing, editing text, adding elements, changing width or font size) invalidates layout. Reading a layout property like offsetHeight right after such a write forces the pending layout to run immediately. Reflows are expensive.
- Styling & Layout
Layout thrashing
Interleaving DOM reads that force layout with writes, in a loop, so the browser recomputes layout over and over. Batch all reads, then all writes, to avoid it.
- Styling & Layout
Repaint vs reflow
A repaint redraws pixels without moving anything (like a color change); a reflow recomputes geometry and is costlier because it can cascade to surrounding elements.
- Compositing & Frames
Layers & compositing
The page is split into layers painted separately, then the compositor stitches them together. Moving a layer with transform or opacity skips layout and paint entirely.
- Compositing & Frames
Compositor thread
A separate thread that moves and combines already-painted layers without the main thread. It can keep scrolling and running transform/opacity animations even while JS is busy (main-thread animations still stall).
- Compositing & Frames
Rasterization
Turning each layer's recorded draw commands into a bitmap of pixels — usually in tiles and on the GPU — so the compositor has something concrete to put on screen.
- Compositing & Frames
Frame budget (60fps)
To hit 60 frames per second, the browser has roughly 16 ms per frame for JS, style, layout, paint, and composite combined. Overrun it and frames drop.
- Compositing & Frames
Jank
Visible stutter when the browser misses frames — usually because a long main-thread task pushed style, layout, or paint past the frame deadline.
- Networking
RPC (Remote Procedure Call)
Calling a function that runs on another machine as if it were local: the arguments are serialized, sent over the network, executed on a server, and the return value is sent back.
Apple HIG
Foundations
- Design Principles
Purpose
Apple's first principle: make something meaningful and decide what NOT to build. Every feature spends the user's time, attention, and trust, so each one must earn its place.
- Design Principles
Agency
Let people do things their own way: offer choices instead of forcing one path, and back it with forgiveness (easy undo). Recovering from the unexpected shouldn't cost people their work.
- Design Principles
Responsibility
Act in people's best interest: collect only what's needed, be transparent about why, keep data safe, and anticipate misuse.
- Design Principles
Familiarity
Build on what people already know. Use consistent visuals and interactions and give clear feedback on state changes; break a familiar pattern only if you can prove the new one is better.
- Design Principles
Flexibility
Adapt to diverse contexts, devices, inputs, and abilities. Accessibility is designed in from the start, not bolted on; supporting more input methods lets more people use the product.
- Design Principles
Simplicity
Be clear and direct. Simplicity isn't minimalism — include just what's necessary and establish a hierarchy so the most important thing is the most obvious.
- Design Principles
Craft
Care about every detail — nothing is random. Every spacing, timing, and alignment value is a deliberate, defensible choice, and shipping isn't the finish line.
- Design Principles
Delight
Apple's eighth design principle — 'make it human'. People remember how a product makes them feel, so decide the emotion right for the experience and deliver it deliberately. Delight is an intended feeling, not decoration sprinkled on top.
- Color & Contrast
Semantic color
A named color that carries a meaning (label, separator, surface) rather than a raw value. It resolves to different values per appearance — light, dark, increased contrast — so one reference adapts everywhere.
- Color & Contrast
Label hierarchy
Four decreasing levels of text emphasis — primary, secondary, tertiary, quaternary — used to signal importance with color instead of size alone.
- Color & Contrast
Background hierarchy
Layered surface levels — primary, secondary, tertiary — whose relative lightness conveys nesting and grouping without borders.
- Color & Contrast
Accent color
A single, sparingly-used color that draws the eye to the most important action. Putting accent on many controls at once makes them compete and dilutes it.
- Color & Contrast
Contrast ratio
The minimum luminance ratio between text and its background: 4.5:1 for body text, 3:1 for large text (18pt, or 14pt bold). Dark mode aims higher — around 7:1 for small custom text.
- Color & Contrast
Increased contrast
A higher-contrast variant shipped for people who ask the system for it. You provide the stronger pairing rather than computing it from the default.
- Color & Contrast
Never color alone
Never let color be the only thing that carries meaning. Pair it with an icon, shape, position, or text so it survives color-blindness, glare, and grayscale.
- Color & Contrast
Wide gamut (P3)
Colors defined in a wider gamut (Display P3) that render more saturated on capable screens, with an sRGB fallback for the rest.
- Dark Mode
Dark Mode
A dark appearance driven by the system setting, not an in-app toggle as the source of truth. You honor prefers-color-scheme first; a manual override is secondary.
- Dark Mode
Dark ≠ inverted
Light and dark are independently designed pairs, not one computed from the other. Never produce dark mode by inverting the light palette.
- Dark Mode
Elevation by luminance
In dark mode, closer surfaces are lighter. Elevation is conveyed by luminance — modals and popovers sit brighter than the receded base — rather than by heavy shadow.
- Dark Mode
Soften white in dark
Soften pure-white embedded content in dark mode; a white image or block 'glows' against dark chrome. Tint or dim it slightly so it sits in the surface.
- Materials & Vibrancy
Material
A translucent, blurred layer that lets the content behind it show through, used for functional chrome (bars, sheets) so the interface feels layered rather than opaque.
- Materials & Vibrancy
Vibrancy
Foreground content on a material that adapts to what's behind it for legibility, instead of a hard-coded white or black. It picks up tone from the blurred backdrop.
- Materials & Vibrancy
Two-layer model
The mental model behind materials: a floating controls/chrome layer above a content layer that visibly scrolls underneath. Translucency shows the relationship between the two.
- Materials & Vibrancy
Material thickness
The trade-off in a material's opacity: a thicker (more opaque) material gives better contrast for text-heavy overlays; a thinner (more transparent) one keeps more context over rich media.
- Materials & Vibrancy
Scrim
A semi-transparent dark (or light) wash placed behind text over a busy or bright background so the text stays legible.
- Materials & Vibrancy
Reduce transparency
When the user requests reduced transparency, materials fall back to a solid, opaque background and the blur is dropped.
- Materials & Vibrancy
Scroll edge effect
Instead of a permanent 1px divider, a fixed header gains a subtle blur or shadow only once content scrolls behind it — the separation appears when it's needed.
- Type & Reading
Dynamic Type
Text that respects the reader's chosen text size, scaling up or down with the system/browser setting instead of a fixed pixel size. On the web this means sizing in rem, not px.
- Type & Reading
Text style
A named style from a semantic scale (Large Title, Title, Headline, Body, Caption…) that bundles size, weight, and line-height together — you apply the role, not raw font values.
- Type & Reading
Leading (line height)
Line height set relative to the font size — roughly 1.25–1.3× across the scale — so lines have room to breathe and large text doesn't collide.
- Type & Reading
Tracking is size-specific
Letter-spacing depends on size: tighten large display text (negative tracking) and keep body near zero. A single fixed letter-spacing is wrong somewhere on the scale.
- Type & Reading
Minimum text size
Keep body text at a legible minimum — never below about 11pt (about 15 CSS px) — and avoid ultralight/thin weights for body, especially at small sizes.
- Type & Reading
Minimize typefaces
Limit the interface to about one display face plus one body face. Prefer the system font, which ships optical sizing and legibility tuning, before reaching for a custom typeface.
- Type & Reading
Large text sizes
At large text sizes, let labels wrap and switch inline rows to stacked layouts rather than truncating with an ellipsis. Support 200% enlargement without losing content or function.
- Layout & Space
Safe area
The region guaranteed clear of notches, rounded corners, and the home indicator. Content extends edge-to-edge, but interactive and essential content stays within the safe area.
- Layout & Space
Layout margins
Consistent margins that hold content at a comfortable reading width and keep it aligned across views, rather than letting it run to the raw screen edges.
- Layout & Space
Grouping
Using space, shared backgrounds, and separators to show which elements belong together. Related items sit close; unrelated items are pushed apart.
- Layout & Space
Reading order = importance
The most important content goes to the top and leading (start) edge, because that's where reading begins — and this flips in right-to-left languages, so never hard-code 'important = left'.
- Layout & Space
Content-driven breakpoints
Design the full layout first and collapse to a compact arrangement only when the content no longer fits, rather than guessing a device by viewport width.
- Layout & Space
Progressive disclosure
Signal that more content exists — a peek, a 'show more', a scroll affordance — instead of silently truncating it. Reveal complexity gradually as people ask for it.
- Layout & Space
Preserve aspect ratio
Never stretch or squash media to fit a box; preserve its aspect ratio with contain or cover so nothing distorts.
- Layout & Space
Spacing scale
A consistent spacing rhythm built on a base unit (a base of 4 or 8, with steps such as 12 and 24 for control padding) so gaps feel intentional and aligned.
- Icons & Imagery
SF Symbols
Apple's system icon set, designed to sit alongside text like a font — the same glyph comes in multiple weights and scales, and aligns to the text baseline.
- Icons & Imagery
Match symbol to text
An icon's stroke weight should match the weight of the text beside it, and its size should scale with that text (sized in em), so glyph and label read as one unit.
- Icons & Imagery
Filled vs outline
Outline vs filled is a legitimate state axis: outline for the default/inactive state, filled for the selected/active one — used consistently across a set like a tab bar.
- Icons & Imagery
Optical alignment
Aligning glyphs by how they look, not by their bounding box. Asymmetric shapes (a play triangle, a download arrow) need nudging so they appear centered.
- Icons & Imagery
App icon
An app/home-screen icon expresses one core concept in minimal shapes — no screenshots or photos, and text only when essential — and keeps its identity consistent across every size and surface.
- Icons & Imagery
Icon animation matches meaning
When a status glyph animates, the motion should match its meaning: pulse for ongoing activity (like listening), rotation for loading, a bounce/scale for something just completed.
- Icons & Imagery
Density variants
Ship raster images at multiple pixel densities (1x/2x/3x) so they stay crisp on high-DPI screens, and pick the format by content (photos → AVIF/WebP, flat art → SVG).
- Motion & Feel
Interruptibility
The single most important motion principle: never lock out input during a transition. A moving element must be grabbable and reversible mid-flight — a closing sheet the user catches should follow the finger.
- Motion & Feel
Animate from current value
Always start an animation from the element's current on-screen value, not its target. On interruption you read the live transform and continue from there, so there's no jump.
- Motion & Feel
Spring
A physics model that settles toward a target and is inherently interruptible and velocity-aware. Apple describes springs by two designer-friendly params — damping ratio and response — not by a fixed duration.
- Motion & Feel
Damping ratio
How much a spring overshoots. 1.0 is critically damped — a smooth settle with no bounce; below 1.0 overshoots, and lower means bouncier.
- Motion & Feel
Response
How quickly a spring reaches its target, in seconds. Lower is snappier. It's a feel parameter, not a fixed duration the animation must last.
- Motion & Feel
Velocity handoff
Continuing an animation at the exact velocity the finger had at release, so there's no visible seam between the drag and the motion that follows.
- Motion & Feel
Momentum projection
Predicting where a flicked element would come to rest from its release velocity (like scroll deceleration), then snapping to the nearest target — this is what makes a flick feel like a throw.
- Motion & Feel
Rubber-banding
Progressive resistance at a boundary instead of a hard stop. The content moves less and less as you pull past the edge, then springs back — a hard stop reads as frozen.
- Motion & Feel
Spatial consistency
Enter and exit along the same path: a panel that slides in from the right dismisses back to the right. Reversible transitions mirror their easing.
- Motion & Feel
Anchor to source
A menu, popover, or sheet originates from the control that triggered it, not from the screen center — its transform-origin is the trigger.
- Motion & Feel
Respond on pointer-down
Show feedback the instant a control is pressed (pointer-down), not on release. Waiting for the click event to highlight feels dead.
- Motion & Feel
Direct manipulation
Dragged content stays glued to the finger 1:1 and respects the grab offset — it doesn't snap to center when grabbed — and it updates continuously throughout the gesture.
- Motion & Feel
Reduce Motion
When the user asks for reduced motion, replace positional slides/springs with fades, drop parallax and z-axis/blur animation, and keep opacity/color changes that aid comprehension.
- Accessibility & Inclusion
Tap target ≥ 44px
Interactive targets are at least 44×44 points (44px on the web), with spacing around them (roughly 12px near bezeled controls, more around icon-only ones) to prevent mis-taps. Grow the hit area, not necessarily the visual.
- Accessibility & Inclusion
Text alternatives
Every meaningful image, icon, and control has a text alternative screen readers can announce; purely decorative ones are hidden from assistive tech.
- Accessibility & Inclusion
Never one channel
Color is one case; the rule covers motion and sound too. Essential information never travels on a single channel — always pair it with a second cue (icon, shape, text).
- Accessibility & Inclusion
Don't auto-dismiss
Don't dismiss important messages on a timer — some people need more time to read. Prefer explicit dismissal, or timing that's generous and adjustable.
- Accessibility & Inclusion
Flashing and autoplay
Nothing flashes more than three times per second (a seizure risk), and audio/video never autoplays without a visible stop or pause control.
- Accessibility & Inclusion
Captions & descriptions
Provide equivalent alternatives for media — captions and subtitles, transcripts, and audio descriptions — not captions alone.
- UX Writing
Voice vs tone
One consistent voice across the product, with tone adjusted to the moment — calm and plain for a health alert, lighter for a celebration.
- UX Writing
Verb-first labels
Action labels start with a verb that names the outcome ('Send', 'Add to Cart'), not a vague or cute phrase ('Let's go!').
- UX Writing
Descriptive link text
Link and control text describes its destination or action, never 'Click here' — screen-reader users navigate by a list of links out of context.
- UX Writing
Error messages state the fix
An error states the actionable fix, not the rule that was broken — no blame, no 'oops'. Tell people what to do next.
- UX Writing
Placeholder shows example
A placeholder shows a concrete example of the expected input, not an instruction — and it's a hint, never the label (it vanishes on typing).
- UX Writing
Empty state has an action
An empty state offers a clear next action, not a bare 'Nothing here' — it tells people how to fill it.
- UX Writing
Inclusive language
Address people as 'you', define or avoid jargon, and skip idioms — inclusive, plain copy is also easier to translate.
- Branding & Privacy
Defer to content
Let the content lead — resist stamping your logo throughout the chrome. People already know which app they're in; branding shows through craft, not repetition.
- Branding & Privacy
No branding on launch screens
A launch screen is too brief to be a branding moment. If you want a welcome, build a real onboarding screen; don't hold up first use with a logo.
- Branding & Privacy
Request access in context
Request access to a sensitive resource only when the feature that needs it is invoked — at that moment, with the reason — not preemptively on launch.
- Branding & Privacy
Permission purpose string
The justification shown in a permission prompt is a specific, complete sentence saying exactly why access is needed — not a vague 'for a better experience'.
- Branding & Privacy
No permission dark patterns
A custom pre-permission screen must not use dark patterns — no fake 'Allow' button, no arrows pointing at the real dialog, no false incentives. One neutral 'Continue'.
- Branding & Privacy
Data minimization
Collect only the data a feature needs, and process it on-device where feasible.
Patterns
- Onboarding & Launch
Fast launch
Launch straight into a usable state instead of showing a startup or marketing screen, and get people to content as fast as possible.
- Onboarding & Launch
State restoration
Return people exactly where they left off — restoring navigation, scroll position, selection, and in-progress input — so the app feels continuous.
- Onboarding & Launch
Onboarding
A short, skippable introduction that teaches only what someone needs to start, using the app's real content rather than abstract tutorials.
- Onboarding & Launch
In-context guidance
Teach a feature at the moment it first becomes relevant instead of front-loading every instruction before people can begin.
- Onboarding & Launch
Exploration before commitment
Let people experience core value before requiring an account, permission, or purchase, so the ask is justified by something they've already seen.
- Onboarding & Launch
Contextual help
Make help discoverable and contextual — available on demand near the task — rather than interrupting people who don't need it.
- Onboarding & Launch
What's New
After an update, briefly highlight meaningful new features in a skippable screen; don't recap minor or bug-fix changes.
- Loading & Feedback
Placeholder (skeleton) content
Show the screen's layout with neutral placeholder shapes while data loads, so the interface feels immediate and its structure is predictable.
- Loading & Feedback
Determinate progress
Use a filling bar when the remaining time or amount of work is known, so people can gauge how long they'll wait.
- Loading & Feedback
Indeterminate progress
Use a spinner or activity indicator when duration is unknown; switch to a determinate bar as soon as you can estimate progress.
- Loading & Feedback
Immediate feedback
Acknowledge every action the instant it happens — a press state, highlight, or motion — even when the underlying result takes time.
- Loading & Feedback
Haptic feedback
Pair meaningful moments with a matching system haptic to reinforce feedback through touch; keep it purposeful, never decorative.
- Loading & Feedback
Toast (transient feedback)
A brief, self-dismissing confirmation that a background action succeeded, shown without blocking what the person is doing.
- Loading & Feedback
Alert restraint
Reserve alerts for essential, actionable information that people must see; frequent or non-critical alerts train people to dismiss them.
- Loading & Feedback
Perceived performance
Keep the interface responsive during work by showing partial results and letting people keep interacting instead of freezing the screen.
- Modality
Modality
A focused mode that temporarily takes over to complete a self-contained task or make a decision, then returns people to where they were.
- Modality
Sheet
A card that slides up over the current context for a focused, dismissible task; it can be resized or swiped down to dismiss.
- Modality
Alert
A small modal reserved for critical information or a decision that requires acknowledgment before continuing.
- Modality
Action sheet
A set of choices related to the current task, presented from the bottom edge on iPhone or as a popover on iPad and Mac.
- Modality
Full screen
An immersive mode that hides surrounding interface elements to focus on content; always keep an obvious, discoverable way to exit.
- Modality
Nonmodal (modeless)
Prefer letting people keep interacting with surrounding content instead of trapping them in a mode; use modality only when focus is essential.
- Modality
Swipe to dismiss
Sheets can be dismissed by swiping downward; when there are unsaved changes, confirm before discarding rather than losing work silently.
- Data Entry
Input minimization
Ask for the least information possible, and infer or pre-fill whatever you can, because every field is a chance to abandon the task.
- Data Entry
Appropriate keyboard
Match the on-screen keyboard to the expected value — email, number, phone, or URL — so the right keys are available immediately.
- Data Entry
AutoFill
Let the system fill saved names, addresses, passwords, and one-time codes so people rarely have to type known information.
- Data Entry
Inline validation
Check input as people type and explain how to fix a problem in place, rather than rejecting everything only on submit.
- Data Entry
Smart defaults
Offer a sensible default value so most people can accept it and move on without touching the field.
- Data Entry
Automatic formatting
Format values such as phone numbers and card numbers automatically as they're entered so people don't manage punctuation.
- Data Entry
Required vs optional
Clearly indicate which fields are required and which are optional so people aren't surprised by an error at the end.
- Accounts & Sign-in
Deferred account creation
Delay account creation until it's genuinely required for a feature, letting people build investment before committing.
- Accounts & Sign-in
In-app account deletion
If your app lets people create an account, it must also let them delete that account and its data from within the app.
- Accounts & Sign-in
Passkeys
Prefer passkeys over passwords for sign-in: they're phishing-resistant, need nothing to memorize, and sync securely across devices.
- Undo & Files
Share sheet
Use the system share sheet so people share content through familiar, extensible destinations and actions instead of a custom menu.
- Undo & Files
Collaboration
Show who's present and provide clear controls for who can view or edit shared content, with visible activity and permissions.
- Loading & Feedback
Ratings & reviews
Request ratings sparingly and only after a positive moment, using the system prompt so it never blocks the current task.
- Search & Settings
Search
Provide search wherever content is large, and show results progressively as people type rather than only after they submit.
- Search & Settings
Search scopes
Let people narrow results to a category or section when a single result list would be too broad to scan.
- Search & Settings
Recent & suggested searches
Offer recent and suggested searches so repeat queries take a tap instead of retyping.
- Search & Settings
Minimal settings
Choose good defaults so most people never need to open Settings; a large settings screen is a sign of unmade decisions.
- Search & Settings
Settings placement
Put options people change often within reach in context, and keep rarely changed configuration in Settings.
- Search & Settings
Instant apply
Apply a settings change immediately so people see its effect, rather than requiring a separate save or apply step.
- Notifications
Valuable notifications
Send only notifications that are timely, relevant, and actionable; noise erodes trust and leads people to turn them off entirely.
- Notifications
Notification permission timing
Ask for notification permission in context, after people have seen why alerts would help, not on first launch by reflex.
- Notifications
Provisional notifications
Deliver notifications quietly to Notification Center first, letting people opt into prominent alerts once they've seen the value.
- Notifications
Notification grouping
Group related notifications together so a burst of updates reads as one thread instead of flooding the Lock Screen.
- Notifications
Actionable notifications
Offer relevant actions directly on a notification so people can respond without opening the app.
- Notifications
Interruption levels
Reserve interruption levels like Time Sensitive and Critical for genuinely urgent items; most notifications should be passive.
- Notifications
Respect Focus
Honor the person's Focus, Do Not Disturb, and scheduled-summary settings instead of forcing notifications through.
- Undo & Files
Undo & redo
Let people reverse and reapply actions; prefer offering undo over interrupting with a confirmation dialog for reversible changes.
- Undo & Files
Shake to undo
Support the system shake-to-undo gesture on iPhone and iPad where a text or editing context makes it meaningful.
- Undo & Files
Confirm destructive actions
Ask before an action that can't be undone, and label the confirming button with the specific action — Delete, Discard — not just OK.
- Undo & Files
Autosave
Save people's work automatically and continuously so a manual Save step — and the risk of losing changes — disappears.
- Undo & Files
Document browser
The system screen where people open, create, and organize documents; use it so documents live in familiar, shared locations.
- Undo & Files
Files integration
Make your documents available in the Files app and iCloud Drive so people can reach them from outside your app.
- Undo & Files
Printing
Support AirPrint with the standard print flow whenever a paper copy is a reasonable output for your content.
- Drag & Drop
Drag and drop
Let people move or copy content by dragging it to a valid destination, within your app and between apps that accept the content.
- Drag & Drop
Drop-target highlight
Highlight valid destinations as an item is dragged over them so people can tell where a drop will be accepted.
- Drag & Drop
Drag preview
Show a lightweight representation of the dragged item that follows the finger or pointer throughout the drag.
- Drag & Drop
Spring-loading
Pausing a dragged item over a folder, tab, or button activates it after a moment, so people can navigate mid-drag.
- Drag & Drop
Copy vs move
Indicate whether a drop will copy or move the item, following platform conventions and modifier keys on Mac.
- Drag & Drop
Multi-item drag
Let people add several items to a single drag session, then drop them all at once on a valid target.
Components
- Status & Feedback
Charting data
Present data visually with clearly labeled, accessible charts; support VoiceOver descriptions and Audio Graphs for the same information.
- Buttons & Actions
Button
A control that performs an action when activated; its label and style communicate what happens and how important it is.
- Buttons & Actions
Button roles
A button's role shapes its appearance: the prominent (filled) style marks the primary action, and a destructive role uses red to warn.
- Buttons & Actions
Toolbar
A bar of controls for actions that apply to the current screen or selection, placed along the top or bottom edge.
- Buttons & Actions
Context menu
A menu of actions relevant to a specific item, revealed by touching and holding (or right-clicking) that item.
- Buttons & Actions
Edit menu
The Cut / Copy / Paste callout that appears above selected text or content when people tap it.
- Menus
Menu
A list of actions or options that appears on demand and dismisses as soon as someone makes a choice.
- Menus
Pull-down button
A button that reveals a menu of actions related to it; the button's label stays fixed regardless of what's chosen.
- Menus
Pop-up button
A button that shows the current selection and opens a menu to change it; the label updates to the chosen value.
- Menus
Menu bar
On Mac, the always-present bar of commands grouped by category (File, Edit, View) at the top of the screen.
- Menus
Submenu
A nested group of related choices within a menu, revealed by hovering or tapping a parent item.
- Presentation
Popover
Transient content anchored to the control that summoned it, with a pointer to its source; common on iPad and Mac.
- Presentation
Page control
A row of dots indicating how many pages exist and which one is current, as in a paged carousel.
- Presentation
Panel
On Mac, an auxiliary window such as an inspector or panel that floats alongside the main content.
- Presentation
Scroll view
A scrollable region that shows content larger than its frame, revealing scroll indicators as people move through it.
- Presentation
Window
A container for a distinct piece of app content, resizable and movable on Mac and iPad, with standard controls.
- Selection & Input
Text field
A single-line control for entering and editing short text, with a clear label and appropriate keyboard.
- Selection & Input
Toggle
A control for a binary on/off choice that takes effect immediately, styled as a sliding switch.
- Selection & Input
Slider
A control for choosing a value from a continuous range by dragging a thumb along a track.
- Selection & Input
Stepper
A two-part control that increments or decrements a discrete value in small, precise steps.
- Selection & Input
Segmented control
A horizontal set of two to five mutually exclusive options, showing the current choice as selected.
- Selection & Input
Picker
A scrollable wheel of values for choosing one option, such as a unit, category, or time.
- Selection & Input
Date picker
A specialized picker for choosing a date, a time, or both, using calendar and wheel interfaces.
- Selection & Input
Color well
A control showing the current color as a swatch that opens the system color picker when tapped.
- Selection & Input
Combo box
A text field combined with a list of suggestions, letting people type freely or pick a known value.
- Navigation & Structure
Navigation bar
The bar at the top of a screen holding the title, a back control, and actions for the current view.
- Navigation & Structure
Tab bar
A bar of top-level destinations along the bottom edge, letting people switch sections with one tap.
- Navigation & Structure
Sidebar
A persistent navigation column for larger screens, listing top-level destinations beside the content.
- Navigation & Structure
Back button
The control that returns to the previous screen; label it with the prior screen's name where possible.
- Navigation & Structure
List & table
Rows of content shown in a scrolling column, often grouped into sections with headers and disclosure.
- Navigation & Structure
Disclosure control
A control that expands or collapses a section of content, revealing detail only when it's wanted.
- Navigation & Structure
Split view
A layout for larger screens that shows a list and its selected detail side by side, keeping context visible.
- Navigation & Structure
Search field
A text field specialized for search, with a magnifier icon, clear button, and results shown as people type.
- Status & Feedback
Activity rings
Concentric closed rings that represent progress toward daily goals, as seen in Fitness and on Apple Watch.
- Status & Feedback
Gauge
A control that shows a value within a range along an arc or line, useful for readings like speed or capacity.
- Status & Feedback
Rating indicator
A row of symbols, usually stars, that displays a score and can let people set one.
- Status & Feedback
Badge
A small overlay on an icon showing a count or status, such as unread messages on an app icon.
- Presentation
Text label
Static, non-editable text that presents information or names a control; distinct from an interactive field.
- Status & Feedback
Live Activity
A glanceable, ongoing status shown on the Lock Screen and in the Dynamic Island, updated in real time.
Inputs
- Gestures
Tap
A single touch that activates a control or selects an item. The most common gesture — make tap targets large enough to hit reliably.
- Gestures
Touch and hold
A touch held in place that reveals contextual actions, such as a context menu or a preview, without leaving the current screen.
- Gestures
Swipe
A quick drag in one direction that scrolls content, reveals actions, or navigates between views.
- Gestures
Double tap
Two taps in quick succession that typically zoom content or select a word. Reserve it for zoom or a clear secondary action.
- Gestures
Zoom (pinch)
A two-finger gesture that moves fingers apart or together to zoom in or out on content.
- Gestures
Rotate
A two-finger gesture that turns content around a point, used for rotating photos, maps, or objects.
- Gestures
Drag
A one-finger drag that moves content within a view or repositions an object directly under the finger.
- Gestures
Edge swipe
A swipe inward from the edge of the screen. The system reserves edge swipes for navigation and Control Center — don't override them.
- Gestures
Standard gestures
The gestures people expect everywhere — tap, swipe, pinch, edge swipe. Use them consistently and never repurpose a system-reserved gesture for something else.
- Keyboard
Keyboard shortcuts
Key combinations that trigger commands without opening a menu. Offer them for common actions and match platform conventions like Command-S to save.
- Keyboard
Full Keyboard Access
An accessibility mode that lets people operate every control using only the keyboard. Ensure all interactive elements are reachable and actionable.
- Keyboard
Key equivalents
The shortcut shown beside a menu item, so people can learn it while using the menu. Assign one to every frequently used menu command.
- Keyboard
Return key label
The on-screen keyboard's primary key, labeled to match the action it performs so people know what happens next.
- Keyboard
Escape to dismiss
Pressing Escape cancels the current action or dismisses a transient view like a popover or sheet. Support it wherever people expect to back out.
- Keyboard
Arrow-key navigation
Arrow keys move selection or focus through lists, grids, and pickers. Support them so keyboard users can navigate without a pointer.
- Keyboard
Tab order
The order in which the Tab key moves focus between controls. Make it follow the visual reading order so traversal feels logical.
- Pointer & Hover
Pointer shapes
On iPad and Mac, the pointer changes shape to fit the content beneath it — an I-beam over text, a resize arrow at an edge — signaling what it can do.
- Pointer & Hover
Hover effects
A subtle highlight or lift that appears when the pointer rests over an interactive element, confirming it responds before a click.
- Pointer & Hover
Pointer magnetism
As the pointer nears a control, it gently snaps to and morphs into the target, making small elements easier to hit.
- Pointer & Hover
Secondary click
A right-click or Control-click that opens a context menu of actions for the item under the pointer.
- Pointer & Hover
Help tags
Brief explanatory text that appears when the pointer hovers over a control on Mac, clarifying its purpose without cluttering the interface.
- Focus & Selection
Focus ring
A clear visual indicator showing which control currently has keyboard focus, so people always know where their input will go.
- Focus & Selection
Initial focus
When a screen opens, place focus on the control people are most likely to use first, saving a step for keyboard and remote users.
- Focus & Selection
Focus movement
Focus should move predictably in the direction people expect. On tvOS the focus engine shifts focus toward the swipe direction on the remote.
- Focus & Selection
Text selection
Make text selectable and provide draggable handles so people can adjust the range precisely to copy, look up, or share it.
- Focus & Selection
Multiple selection
A selection mode that lets people choose several items at once to act on them together, with clear affordances for entering and leaving the mode.
Technologies
- Sign in with Apple
Sign in with Apple
A fast, private way to sign in using an existing Apple Account, with no new password to create and no personal data shared beyond what people approve.
- Sign in with Apple
Sign in with Apple button
The standard system button for Sign in with Apple. Use the provided styles, sizes, and localized titles — don't recreate or restyle it.
- Sign in with Apple
Hide My Email
An option that lets people share a unique, random relay address instead of their real email, protecting privacy while still receiving your messages.
- Sign in with Apple
Offering Sign in with Apple
When you offer several sign-in options, present Sign in with Apple prominently alongside the others so people can choose the private path easily.
- Apple Pay
Apple Pay
A fast, secure, private way to pay for goods and services using cards already stored in Wallet, authenticated with Face ID or Touch ID.
- Apple Pay
Apple Pay button
The standard system button that starts an Apple Pay transaction. Use the official styles and types (Buy, Pay, Subscribe) rather than a custom button.
- Apple Pay
Presenting Apple Pay
When you support Apple Pay, present it as a primary, prominent option for physical goods and services so people can check out with a glance and a touch.
- Apple Pay
Payment sheet
The system sheet that summarizes the order — amount, shipping, and contact details — and lets people confirm payment with authentication.
- Machine Learning & GenAI
Labeling generated content
Be clear when content is generated by AI. Label generated results so people can weigh them appropriately and aren't misled about their origin.
- Machine Learning & GenAI
Keeping people in control
Keep people in control of AI features. Let them review, edit, accept, or discard generated output rather than applying it automatically.
- Machine Learning & GenAI
Feedback on AI results
Give people an easy way to report inaccurate, offensive, or unexpected AI results, and use that feedback to improve the experience.
- Machine Learning & GenAI
Setting AI expectations
Set honest expectations that AI can make mistakes. Communicate limitations up front and handle wrong or empty results gracefully.
- Machine Learning & GenAI
On-device processing for AI
Prefer processing data on device to protect privacy and work offline, keeping personal information off remote servers whenever possible.