Skip to content
Prompt Words
History

Design

How a website looks and moves.

0 of 83 learned

Layout 0 / 12

The big named parts of a page.

Bento grid

Also called: bento box layout, bento, mosaic grid.

Boxes of different sizes fit together in one grid, like a Japanese bento lunch box.

Bento

A grid of boxes in different sizes that fit together neatly, like a bento lunch box. Big boxes for the main features, small ones for the rest.

Say it in a prompt

Lay the features out as a bento grid: a 4-column grid with 12px gaps where the main feature spans 2×2, two others span 2 columns, and the rest are single cells, each with rounded corners and its own soft color.

Seen on

  • Stripe: Six product cards of different sizes sit together in one grid, each with a small live demo inside.

You might describe it as

  • stripe's boxes of different sizes all in one grid
  • grid with big and small boxes
  • apple style feature boxes

Not to be confused with

  • Card

    A bento grid is the layout; each box inside it is usually a card.

Hero

Also called: hero section, hero banner, above the fold.

Plain

The large first section at the top of a page. It usually has a headline, a short subheading, a main button (the call to action, or CTA) and a picture or animation.

Say it in a prompt

A full-width hero section with a large headline, a one-line subheading, a primary CTA button and a secondary button, and a product image on the right. Stack everything vertically on mobile.

Seen on

  • Apple AirPods Pro 3: One big headline about noise cancellation, a short line, a Buy button and a large product photo fill the first screen.
  • Stripe: A large headline, one line of text and two buttons, with a small live counter above the headline.

You might describe it as

  • the big part at the very top of the page
  • huge headline with a button under it when the page opens
  • first screen you see before scrolling

Not to be confused with

  • Full-bleed

    A hero is the first big section at the top; full-bleed only means something runs edge to edge, and it can be anywhere on the page.

Tabs

Also called: tab bar, tabbed panel, segmented tabs.

Real tabs: click one, or use the ← → arrow keys when a tab has focus.

All-day battery and a lighter case.

Tab 1

A row of labels where picking one shows its own panel below, and hides the others. Only one tab is open at a time.

Say it in a prompt

Put the details in tabs: a row of three tabs (Overview, Specs, Reviews) with a 2px accent underline on the selected tab; each tab shows its own panel. Support the arrow keys between tabs.

Seen on

  • Apple AirPods Pro 3: The experience section has four tabs, and each shows a different panel.
  • Airbnb: Above the search bar sit tabs: All, Homes, Experiences, Services.

You might describe it as

  • buttons on top that switch the content below
  • click a label to show a different section
  • switch between panels without leaving the page

Not to be confused with

  • Segmented control

    Tabs each show their own panel below; a segmented control is the pill-shaped picker, often used for a setting rather than for panels.

Badge

Also called: pill, tag, label, count badge.

A badge is a tiny label on top of something bigger: a word like “New”, or a number like 3.

Badges

A tiny label stuck on top of something bigger, like "New" on a product or a red number on a bell icon. It adds one short fact without taking space.

Say it in a prompt

Put a badge on the top-left corner of each listing photo: a white pill with 12px semibold text, 4px by 10px padding and a soft shadow. On the bell icon, show the unread count in a red circle that overlaps the top-right corner.

Card

Also called: tile, feature card, content card.

Plain

A box that groups one thing: usually a picture, a title, a short text and an action. Many cards together make a grid or a list.

Say it in a prompt

Show each feature as a card: 18px rounded corners, a 1px light border, an image on top, a bold title, one line of gray text, and a round + button in the bottom right.

Full-bleed

Also called: edge to edge, full-width image, bleed, full-screen section.

Full-bleed means the picture runs to the very edges of the screen, with no margin around it.

Contained

A picture, video or section that runs to the very edges of the screen, with no margin around it, while the text stays in a narrow column. The word comes from printing, where an image "bleeds" off the page.

Say it in a prompt

Keep the article text in a 680px column, but make the photos full-bleed: 100vw wide, no border radius and no side margin, 60vh tall with object-fit: cover.

Logo strip

Also called: logo wall, logo cloud, social proof bar, trusted by row.

Well-known customer logos in one quiet row say: other people trust us. They are usually gray so they don't fight the page.

Gray

A row of well-known customer logos, usually under the hero, that says "people you know already use us". The logos are often all one gray so they don't fight the page.

Say it in a prompt

Under the hero, add a logo strip: a small uppercase label "Trusted by teams at", then 6 customer logos in one centered row (wrapping on phones), all in gray at 60% opacity, between two 1px light-gray lines.

Segmented control

Also called: segmented button, button group, pill switcher, toggle group.

One bar, a few options, exactly one picked. The white thumb slides to your choice.

Option 1

One pill-shaped bar split into a few options, where exactly one is picked. It looks like the switch in iPhone settings, but with two to five choices.

Say it in a prompt

Add a segmented control with three options (Siri, Translate, Controls): a pill-shaped gray bar with 4px padding, and a white thumb with a soft shadow that slides under the picked option over 260ms ease-out. The picked label is dark, the others gray.

Stat block

Also called: big numbers, stats section, key figures, KPI row.

The same four facts: as a stat block, then hidden inside a sentence.

Stats

A few important numbers shown very large, each with a short caption under it. It impresses at a glance, where the same numbers in a sentence would be missed.

Say it in a prompt

Add a stat block under the hero: four stats in a 2 by 2 grid (4 across on desktop), each a 28px semibold number with tabular digits and a 13px gray caption below, with a 2px accent line on the left.

Zigzag layout

Also called: alternating layout, alternating rows, Z-pattern, left-right sections.

Text left, picture right; then picture left, text right. The eye moves in a Z down the page.

Zigzag

Feature sections where the picture swaps sides on every row: text left and picture right, then picture left and text right. Your eye moves down the page in a Z.

Say it in a prompt

Show the three features in a zigzag layout: each row is a picture (42% width, 4:3, rounded 10px) next to a title and two lines of text; odd rows put the picture on the right, even rows on the left. On phones, stack every row with the picture on top.

Overlays 0 / 10

Things that appear on top of the page.

Command palette

Also called: command menu, command bar, Cmd+K menu, quick actions, launcher.

A real one: open it, type to filter, use ↑ ↓ and Enter to run a command, and Esc to close. Ctrl+K (⌘K on a Mac) also opens it while the demo has focus.

Closed

A search box that opens over the page, usually with Cmd+K or Ctrl+K, and lists actions you can run. You type a few letters, pick an action with the arrow keys and press Enter.

Say it in a prompt

Add a command palette that opens with Cmd+K (Ctrl+K on Windows): a 560px wide box 20% from the top over a dim backdrop, with a search input and a list of actions that filters as you type. Up and down arrows move the highlight, Enter runs the action, Esc closes it, and focus stays in the box while it is open.

Seen on

  • Linear: Cmd/Ctrl K opens a command bar where you search for an action and run it on the selected issues.
  • Vercel Geist design system: Geist's Command Menu launches a set of actions as an overlay, and the docs suggest binding it to ⌘K or Ctrl+K.

You might describe it as

  • search box that pops up when I press cmd k
  • type to find any action in the app
  • spotlight style search for commands

Not to be confused with

  • Dropdown menu

    A command palette is a search box for every action in the app; a dropdown menu is a short fixed list under one button.

  • Modal

    A command palette looks like a modal, but it is only a search box for actions and closes as soon as you pick one.

Drawer

Also called: side panel, slide-over, off-canvas panel, side sheet.

A panel slides in from the side, over the page, and slides back out when you close it.

Closed

A panel that slides in from the edge of the screen, over the page, and slides back out when closed. Good for menus, filters, carts or chat.

Say it in a prompt

Open a drawer from the right: a 400px panel that slides in with transform over 320ms ease-out, over a dim backdrop. Close it with Esc, the backdrop, or a close button, and keep focus inside while open.

Seen on

  • Vercel: An "Ask AI" chat panel slides in from the right side of the page.

You might describe it as

  • panel that slides in from the side
  • menu that comes out from the right
  • side window that covers part of the page

Not to be confused with

  • Modal

    A drawer slides in from an edge; a modal appears in the middle.

Mega menu

Also called: mega dropdown, large dropdown panel, fat menu.

A mega menu is a dropdown that grew up: one top-menu item opens a wide panel with many links in labeled columns.

Closed

A top-menu dropdown that opens a wide panel with many links, grouped in labeled columns. Big sites use it when they have too many pages for a short list.

Say it in a prompt

Make "Products" in the top nav open a mega menu: a full-width white panel under the header with three labeled columns (Payments, Billing, Tools) of 3 links each, and a highlighted "New" link at the bottom. It fades in and moves down 6px over 200ms, and closes on Esc or when the mouse leaves.

Seen on

  • Stripe: The top menu items (Products, Solutions, Developers, Resources) open large dropdown panels full of links.

You might describe it as

  • the big menu that drops down with lots of links in columns
  • huge dropdown panel under the top navigation
  • menu with several columns of links

Not to be confused with

  • Dropdown menu

    A mega menu opens a wide panel with columns of grouped links; a dropdown menu is a short single list.

Toast

Also called: snackbar, notification, flash message.

Tap a few times: toasts stack, then leave on their own after 3 seconds.

None

A small message that pops up for a few seconds to confirm something happened, then disappears on its own. It doesn't block anything.

Say it in a prompt

Show a toast at the bottom center that slides up and fades in, stays for 3 seconds, then fades out. Several toasts stack upward.

Seen on

  • Gmail: After you send an email, a small "Message sent" note appears in the bottom corner and then goes away.
  • Vercel Geist design system: Short toasts like "Domain added" disappear on their own; an Undo toast stays on screen for 5 to 10 seconds.

You might describe it as

  • small message in the corner saying it worked, with an undo button
  • little message in the corner that says saved
  • notification that disappears after a few seconds
  • small black strip at the bottom after sending

Not to be confused with

  • Modal

    A toast informs and leaves on its own; a modal stops you until you answer or close it.

  • Success state

    A toast is a small note in a corner that goes away by itself; a success state takes over the place where the form was.

Backdrop

Also called: scrim, overlay, dimmer.

The backdrop is the dark, see-through layer behind a pop-up. It dims and blurs the page so the pop-up stands out.

Off

The dark, see-through layer behind a pop-up. It dims (and often blurs) the page, so the pop-up stands out and the page can't be clicked.

Say it in a prompt

Behind the pop-up, add a backdrop: black at 55% opacity with a 3px blur of the page behind it. Clicking the backdrop closes the pop-up.

Context menu

Also called: right-click menu, contextual menu, shortcut menu.

With a mouse, right-click anywhere in the picture. The menu opens right where you clicked, with actions for that one thing.

Closed

A small menu of actions for one thing, opened with a right-click (or a long press on a phone). It appears right where you clicked.

Say it in a prompt

Add a custom context menu on the logo: on right-click (and long press on touch), open a 190px menu at the pointer with "Copy logo as SVG", "Copy wordmark", a divider and "Download brand kit". Keep it inside the window, and close it on Esc, on a click elsewhere or after choosing an item.

Tooltip

Also called: hint, info bubble, title popup.

Point at the icon with a mouse, or use the switch on a phone.

Hidden

A small label that appears when you point at or focus something, to explain what it does. It disappears when you move away.

Say it in a prompt

Show a tooltip above the icon button on hover and on keyboard focus: dark background, white 13px text, a small arrow, fading in and growing from 90% to 100% over 150ms.

Motion 0 / 9

Words for how things move.

Cursor-follow effect

Also called: cursor follower, mouse follow, spotlight cursor, cursor reveal.

Move your mouse over the picture, or tap it. A circle follows the pointer and uncovers a hidden layer: the helmet.

0ms
700ms
1400ms
2100ms
Idle

Something on the page reacts to where your mouse is: a circle, a glow or a picture follows the pointer. On phones there is no mouse, so it follows your finger or plays by itself.

Say it in a prompt

Add a cursor-follow reveal on the hero photo: a 110px circle follows the pointer with a 140ms ease-out delay and shows a second, colorful version of the photo inside it. Move it only with transform, hide it when the pointer leaves, and on touch move it to where the user taps.

Seen on

  • Lando Norris: On the hero portrait, moving the mouse makes pieces of his racing helmet appear over his face where the cursor goes.

You might describe it as

  • the helmet shows up wherever I move my mouse
  • circle that chases my mouse around
  • effect that follows the pointer and shows another picture

Easing

Also called: easing curve, timing function, ease-in, ease-out, ease-in-out.

Every ball takes the same 1.2 seconds. Only the easing is different.

ease-out 0s
ease-out 0.3s
ease-out 0.6s
ease-out 1.2s
Start

How an animation speeds up and slows down over its duration. Ease-out, a fast start with a gentle stop, is the safe default for things appearing on screen.

Say it in a prompt

Use ease-out, cubic-bezier(0.16, 1, 0.3, 1), at 300ms for elements entering the screen, and ease-in at 200ms for elements leaving.

Seen on

  • Stripe: Content in the product dialog rises and fades in over 0.75s on a curve that starts fast and settles slowly.
  • Linear: The site's CSS names its motion curves (ease-out-quad, ease-in-out-cubic, ease-out-expo) and reuses them everywhere.

You might describe it as

  • animation that starts fast and slows down at the end
  • movement feels robotic and not smooth
  • speed curve of the motion

Not to be confused with

  • Spring

    Easing is the whole family of speed curves; spring is the one that overshoots and settles.

  • Stagger

    Easing shapes one item's speed; stagger sets the delay between several items.

Marquee

Also called: ticker, infinite scroll row, logo carousel, auto-scrolling row.

A row that slides sideways forever. The list is doubled so the loop has no gap.

0s
5s
10s
15s
Running

A row of items that slides sideways on its own, forever. Often used for customer logos. It should stop for people who ask for reduced motion.

Say it in a prompt

Add a marquee of customer logos that slides left forever (20s per loop, 40px gaps), with faded edges. Pause it on hover and don't move it when the user prefers reduced motion.

Seen on

  • Stripe: A row of customer logos between two thin lines scrolls on its own.
  • Vercel: A row of customer logos slides left forever, and stops if you ask for reduced motion.

You might describe it as

  • customer logos sliding by on their own forever
  • text moving sideways like a news ticker
  • endless row of logos

Not to be confused with

  • Logo strip

    A marquee is the sideways motion that never stops; a logo strip is a row of customer logos, which may or may not move.

Number roll

Also called: odometer, rolling counter, digit roll.

Old digits slide up and out while new ones slide in, like a car's mileage counter.

4
5
0ms
4
5
140ms
4
5
280ms
4
5
400ms
48,120

When a number changes, each digit slides up like a wheel to the new value, like a car's mileage counter.

Say it in a prompt

Animate the counter as a number roll: each digit is a vertical strip of 0-9 that slides to its new digit in 600ms (transform only), using tabular numbers so nothing shifts.

Seen on

  • Stripe: A live number above the hero headline changes by sliding old digits out and new digits in from below.

You might describe it as

  • the number at the top that keeps ticking up with digits rolling
  • digits spin like a slot machine
  • counter that rolls to the new number

Not to be confused with

  • Tabular numbers

    A number roll animates each digit; tabular numbers just keep every digit the same width.

Spring

Also called: spring animation, springy, overshoot, bounce.

The menu grows a little too far, then settles back, like it's on a spring.

0ms · 0.7×
120ms · 1.08×
220ms · 0.97×
400ms · 1×
Closed

Motion that goes a little past its target and settles back, like something on a spring. It feels alive and physical.

Say it in a prompt

Open the menu with a spring: scale from 0.7 to 1 with a slight overshoot (about 1.15) that settles in 500ms. Fade the opacity in over the first 150ms.

Seen on

  • Apple AirPods Pro 3: The color dots use a curve that goes past the end and comes back, so they bounce a little.

You might describe it as

  • dots that bounce a bit when they show up
  • grows too big then settles back
  • bouncy wobbly animation

Not to be confused with

  • Easing

    Spring is one kind of easing, the kind that overshoots and settles.

Stagger

Also called: cascade, staggered entrance, staggered animation.

0ms
80ms
160ms
400ms
Shown

Several items animate one after another with a small delay between each, instead of all at once. It makes a group feel like it flows in.

Say it in a prompt

Stagger the cards' entrance so each card fades in and slides up 16px, starting 80ms after the previous one.

Seen on

  • Apple AirPods Pro 3: In the product viewer, the color dots pop in one after another, each a little later than the last.
  • Airbnb: Loading placeholders shimmer in a wave, each one starting 100ms after the one before.

You might describe it as

  • the little color circles come in one by one
  • cards appear one after another not all together
  • items come in with a small delay each
  • list that flows in one by one like dominoes

Not to be confused with

  • Easing

    Stagger is the delay between items; easing is how each single item speeds up and slows down.

Fade-up entrance

Also called: fade in up, reveal, slide up and fade in.

The content rises 30px while it fades in. It's the most common entrance on the web.

0ms
200ms
400ms
750ms
Shown

Content rises a short distance while it fades in. It's the most common way for sections to appear as you scroll.

Say it in a prompt

When the panel appears, fade it in and move it up 30px over 750ms with cubic-bezier(0.2, 0, 0, 1).

Hover lift

Also called: lift on hover, raise on hover, card lift, elevate on hover.

Point at a card: it rises 6px and its shadow grows, as if it lifts off the page. On a phone, use the switch.

Hover off

A card rises a few pixels and its shadow grows when you point at it, as if it lifts off the page. It says "you can click this whole card".

Say it in a prompt

On hover and on keyboard focus, lift each card: move it up 6px with transform over 200ms ease-out and fade in a larger, softer shadow underneath (a shadow layer that changes only its opacity).

Pop in

Also called: scale in, grow in, zoom in.

Each color dot grows from small to full size as it fades in.

0ms
80ms
160ms
300ms
Shown

Something appears by growing from small to full size while it fades in. It draws the eye to new things.

Say it in a prompt

Pop in each color dot: scale from 0.2 to 1 and fade from 0 to 1 over 380ms with a slight overshoot, each dot 60ms after the previous one.

Scroll 0 / 6

Effects driven by scrolling.

Page transition

Also called: view transition, route transition, screen transition.

A tiny site with two pages. With a page transition, the old page fades and slides away while the new one slides in, instead of a hard cut.

0ms
100ms
200ms
320ms
Page 1

An animation between two pages, so the old page fades or slides away while the new one comes in, instead of a hard cut. Modern browsers can do it with the View Transitions API.

Say it in a prompt

Add a page transition between the list and the detail page: use document.startViewTransition when the browser has it, fade the old page out while moving it 16px left and fade the new page in from 16px right over 320ms ease-out, and turn off the default size animation. Without View Transitions support, just swap the page; with reduced motion, swap instantly.

Where it shows up

  • Tapping a photo in a list app, where the list slides away and the detail page slides in instead of the screen flashing white.

You might describe it as

  • smooth change from one page to the next
  • page slides away when I click a link
  • no white flash between pages

Not to be confused with

  • Fade-up entrance

    A page transition moves from one whole page to another; a fade-up entrance is one part of a page appearing.

Parallax

Also called: parallax scrolling, depth layers.

Scroll inside the box. Far layers move slowly and near layers move fast, so the flat picture feels deep.

Parallax top

Layers move at different speeds as you scroll: far things slowly, near things faster. That speed difference makes a flat page feel deep.

Say it in a prompt

Make a parallax section with layers (sky, far hills, headline, near hills) that move at different speeds on scroll. Keep it subtle, and turn it off when the user prefers reduced motion.

Where it shows up

  • Travel and storytelling pages where a mountain or city photo is split into layers that slide at different speeds as you scroll.

You might describe it as

  • background moves slower than the page
  • layers moving at different speeds when scrolling
  • 3D depth effect on scroll

Not to be confused with

  • Scroll-linked animation

    Parallax moves layers at different speeds; scroll-linked animation ties any motion to how far you've scrolled.

Pinning

Also called: pinned section, sticky scroll, scroll pin.

Scroll inside the box. The panel holds still while you keep scrolling, then scrolls away at the end.

Step 1

A section holds still on the screen while you keep scrolling, then lets go at the end. Other things can change while it's pinned.

Say it in a prompt

Pin this section for 200vh of scrolling (position: sticky with a tall wrapper). While it's pinned, highlight each caption as its step becomes active, then let it scroll away.

Seen on

  • Apple AirPods Pro 3: In the audio section, a panel is held in place at full screen height while you keep scrolling.
  • Lando Norris: A dark section stays in place while you scroll through it.

You might describe it as

  • the section freezes while I keep scrolling
  • part of the page stops and the text changes
  • stuck panel while scrolling

Not to be confused with

  • Sticky header

    Pinning holds a whole section for a while; a sticky header stays at the top for the whole page.

  • Stacked cards

    Pinning holds one section still while things inside it change; stacked cards stick one after another and pile up.

Scroll-linked animation

Also called: scrubbing, scroll-driven animation, scrub.

Scroll inside the box, then scroll back. The wheel turns only as far as you scroll, and rewinds when you go back.

Linked 0

An animation that follows your scroll exactly: scroll down and it moves forward, scroll up and it rewinds. A scroll-triggered animation, by contrast, just plays once.

Say it in a prompt

Scrub the wheel's rotation to scroll progress (scroll-linked, not a one-time trigger): 0° at the top of the section, 360° at the bottom, and it rewinds when scrolling back up.

Seen on

  • Lando Norris: While a section is pinned, huge lines of quote text slide sideways as you scroll.

You might describe it as

  • the part stays still and the text moves when I scroll
  • animation follows my scrolling and rewinds
  • the phone turns as I scroll

Not to be confused with

  • Parallax

    Scroll-linked animation can move anything with your scroll; parallax is one use of it, with layers at different speeds.

Stacked cards

Also called: sticky card stack, card stack on scroll, stacking cards, deck scroll.

Scroll inside the box. Each card sticks 14px lower than the one before, so they pile up like a deck.

Card 1

Cards that stick at the top one after another as you scroll, each a little lower than the last, so they pile up like a deck. It is built with position: sticky, so it only moves when you scroll.

Say it in a prompt

Show the customer stories as stacked cards: each card is position: sticky with top: calc(24px + index * 32px), 320px tall with 120px between cards, so as you scroll each new card slides over the last one and they pile up.

Seen on

  • Stripe: On phones, customer story cards stick one on top of another as you scroll, each 32px lower than the last.

You might describe it as

  • cards pile on top of each other as I scroll
  • deck of cards that stacks up when scrolling
  • each card slides over the one before

Not to be confused with

  • Pinning

    Stacked cards pile up many cards, each stuck a bit lower; pinning holds one whole section still while things inside it change.

Scroll snap

Also called: snap scrolling, scroll snapping, paging.

Scroll inside the box. With snapping on, it always stops neatly on a panel; with it off, it stops anywhere.

Snap panel 1

Scrolling that always stops neatly on an item or section, instead of anywhere in between.

Say it in a prompt

Add scroll snap to the gallery: scroll-snap-type x mandatory on the row and scroll-snap-align start on each card, so it always stops on a card edge.

States 0 / 15

What a screen shows while loading, empty or broken.

Drop zone

Also called: dropzone, file drop area, drag and drop upload, upload area.

On a desktop, drag any file onto the box (nothing is uploaded). The box changes while something is over it, then accepts the drop.

Idle

An area where you can drag a file and let go to upload it. It changes while a file is over it (a solid border and a tint), so you know it will accept the drop.

Say it in a prompt

Add a drop zone: a box with a 2px dashed gray border, an up arrow and "Drop a folder here to deploy". While a file is dragged over it, make the border solid accent color, tint the background and say "Let go to upload"; after the drop, show the file name and a progress bar, then "Deployed".

Seen on

  • Vercel: The hero says "Drop to deploy": you can drag a project folder onto it, and the text changes while you drag and while it loads.

You might describe it as

  • drag my folder onto the page and it says drop to deploy
  • dashed box where I drag files
  • area that lights up when I drag a file over it

Not to be confused with

  • Empty state

    A drop zone is waiting for you to drag a file onto it; an empty state tells you there is nothing here yet.

Empty state

Also called: zero state, blank slate, no data state.

Empty

What a screen shows when there is nothing in it yet, like an empty inbox or a new project. A good one explains why it's empty and gives one clear next step.

Say it in a prompt

When the list has no items, show an empty state centered in the panel with a simple illustration, one line saying why it's empty, and a primary button to create the first item.

Seen on

  • Vercel Geist design system: Geist's Empty State component fills a space that has no content yet, so the user is not confused.
  • A brand-new project, folder or inbox that has nothing in it yet and shows a friendly message with a button to add the first item.

You might describe it as

  • what the page shows when there is nothing yet
  • screen with no items and a button to add one
  • blank list message

Not to be confused with

  • Skeleton screen

    An empty state says there is nothing here; a skeleton screen says something is still loading.

  • Error state

    An empty state is normal and expected; an error state means something went wrong.

  • Drop zone

    An empty state says there is nothing here yet; a drop zone is an area waiting for you to drag a file onto it.

Error state

Also called: error page, error message, failure state, 404 page.

Ok

What a screen shows when something goes wrong, like a failed load or a missing page. A good one says what happened in plain words and how to fix it.

Say it in a prompt

If loading fails, replace the content area with an error state that has a short plain-language message, what the user can do next, and a "Try again" button. Keep the header and navigation usable.

Seen on

  • Stripe: The 404 page says it couldn't find the page and offers links to pricing, docs, the API reference, status and support.
  • Apple: The 404 page says the page can't be found and gives a search box and a link to the site map.

You might describe it as

  • page not found screen with links to go somewhere else
  • page that says something went wrong
  • message when the page fails to load with a retry button
  • not found page

Not to be confused with

  • Empty state

    An error state means something broke; an empty state is a normal screen with nothing in it yet.

Optimistic update

Also called: optimistic UI, instant update, update first, confirm later.

Tap the heart: it fills at once, and the server answers 1.2 s later. Turn on “Server fails” to see the like roll back.

Idle

The screen shows the result of your action right away, before the server has confirmed it. If the server then says no, the screen goes back to how it was and tells you it didn't work.

Say it in a prompt

When the user taps Like, fill the heart and add 1 to the count immediately, then send POST /posts/:id/like. If the request fails or takes longer than 5 s, put the heart and the count back to what they were and show "Couldn't save your like" under the post for 4 s.

Seen on

  • React: The useOptimistic hook shows a temporary value while a request is running; the docs use a like button as the example.
  • TanStack Query: Its optimistic updates guide saves the old data in onMutate and puts it back in onError when the request fails.

You might describe it as

  • like button that changes instantly without waiting for the server
  • the heart fills right away even on slow internet
  • show the change first and undo it if saving fails

Preloader

Also called: loading screen, splash loader, intro loader, page loader.

Before a heavy site can be used, a preloader covers the whole screen with a logo and a count. When loading is done, it lifts away.

0%
0ms
60%
500ms
100%
900ms
1200ms
Loaded

A full screen shown while a heavy site loads, before you can use it, often with only a logo and a percentage. When loading is done, it slides or fades away.

Say it in a prompt

Add a preloader: a full-screen #D2FF00 panel with the logo in the middle and a 0 to 100% counter under it in a monospace font. When the page has loaded, slide the panel up and out with transform over 600ms. Skip it for returning visitors, and with reduced motion just hide it.

Seen on

  • Lando Norris: While the site loads, the whole screen is bright lime with only the small "LN" logo.
  • Messenger by abeto: The screen stays blank white while the 3D world loads, then the planet appears.

You might describe it as

  • whole screen is one color with a logo before the site opens
  • loading screen with a percent counter
  • curtain that lifts when the site is ready

Not to be confused with

  • Spinner

    A preloader covers the whole screen until the site is ready; a spinner is a small sign of waiting inside a page.

  • Skeleton screen

    A preloader hides the whole site until it has loaded; a skeleton screen shows the page's shape at once and fills it in.

Progress bar

Also called: progress indicator, loading bar, determinate progress.

A progress bar shows how much is done, so you know how long to wait.

0%
30%
70%
100%
Idle

A bar that fills up from left to right to show how much of a task is done. Use it when you know how long something will take.

Say it in a prompt

Show a progress bar under the file name while it uploads: a 10px rounded track that fills with the accent color from left to right, with the percent on the right.

Where it shows up

  • Uploading or downloading a file, where a bar fills up and a percent shows how much is done.

You might describe it as

  • bar that fills up while uploading
  • loading bar with a percentage
  • shows how much is left

Not to be confused with

  • Spinner

    A progress bar shows how far along it is; a spinner only says "wait".

Rate-limit message (429)

Also called: 429 Too Many Requests, too many requests message, rate limit error, cooldown message.

The server allows 3 codes every 15 s. Tap “Resend code” 4 times: the 4th gets 429 Too Many Requests with Retry-After. The friendly message turns that into plain words and a countdown.

Ready

What the user sees when the server says "too many requests, slow down" (HTTP status 429). A good one says in plain words how long to wait, often with a countdown taken from the Retry-After header.

Say it in a prompt

When POST /login/code/resend returns 429, read the Retry-After header and show "Too many codes asked for. You can ask for a new one in 30 s." under the button. Disable "Resend code" with a live countdown, and enable it again when the countdown reaches 0.

Seen on

  • GitHub REST API: Over the limit it answers 403 or 429, with retry-after or x-ratelimit-reset saying when you may try again.
  • Stripe API: Rate-limited requests get 429 Too Many Requests and a Stripe-Rate-Limited-Reason header that says which limit was hit.

You might describe it as

  • too many attempts, try again in 30 seconds
  • error when I click resend too many times
  • countdown before I can ask for another code

Not to be confused with

  • Retry with backoff

    A rate-limit message tells the person how long to wait; retry with backoff is code that waits and tries again on its own.

Request timeout

Also called: timeout, request deadline, give up after N seconds.

This server hangs and never answers. With a 3 s timeout the page stops waiting and says so. Without one it just keeps loading. Turn off “Server hangs” to see a normal fast answer.

Idle

The longest time the page or the server will wait for an answer before giving up. Without one, a stuck server can leave a spinner turning for minutes.

Say it in a prompt

Give every call to GET /api/reports a 10 s timeout using AbortSignal.timeout(10000). When it times out, stop the spinner, show "This is taking longer than usual" with a Try again button, and log the endpoint and how long it waited.

Seen on

  • MDN Web Docs: AbortSignal.timeout() gives a signal that aborts a fetch after the time you set, failing with a TimeoutError.
  • Stripe Node.js library: Its timeout option sets the most time each request may take; the default is 80000 ms.

You might describe it as

  • loading forever and never finishing
  • give up if the server doesn't answer in a few seconds
  • stop waiting and show a try again message

Not to be confused with

  • Retry with backoff

    A timeout decides when to stop waiting; retry with backoff decides whether and when to try again.

Skeleton screen

Also called: skeleton loader, skeleton state, content placeholder, shimmer.

Press “Load again”: gray shapes hold each spot until the real content arrives. Nothing jumps.

0s
0.5s
1s
loaded
Loaded

While content loads, the page shows gray shapes where the text and pictures will go. It makes loading feel faster and stops the layout from jumping when the real content arrives.

Say it in a prompt

While the feed loads, show a skeleton screen of gray rounded blocks in the same size and place as the real cards, with a soft shimmer moving left to right. Swap in the real content without moving the layout.

Seen on

  • Airbnb: Before listings arrive, gray placeholder shapes stand in for them and shimmer.
  • Vercel Geist design system: Geist's Skeleton component shows a placeholder while another part of the page loads.

You might describe it as

  • grey boxes that flash while airbnb is loading
  • gray boxes while the page loads
  • placeholder shapes before the content shows up
  • loading blocks that shine

Not to be confused with

  • Spinner

    A skeleton screen shows the shape of what's coming; a spinner just says wait.

  • Empty state

    A skeleton screen means content is on its way; an empty state means there is nothing to show.

  • Preloader

    A skeleton screen shows the page's shape right away; a preloader hides the whole site behind one screen until it has loaded.

Spinner

Also called: loading spinner, loader, throbber, activity indicator.

A spinner says “please wait” when you can't tell how long it will take.

0ms
200ms
400ms
600ms
Idle

A small shape that spins or pulses to say "please wait" when you can't tell how long something will take.

Say it in a prompt

While the video loads, show a small spinner centered over it (8 bars that fade one after another, 0.8s per turn), with the text "Loading video…" under it.

Seen on

  • Apple AirPods Pro 3: The video player shows a loading spinner made of 8 small bars that fade one after another.

You might describe it as

  • spinning circle while waiting
  • loading wheel
  • the thing that spins when stuff loads

Not to be confused with

  • Progress bar

    A spinner only says "wait"; a progress bar shows how much is done.

  • Skeleton screen

    A spinner hides the page while waiting; a skeleton screen shows the shape of what's coming.

  • Preloader

    A spinner is a small sign of waiting inside a page; a preloader covers the whole screen until the site is ready.

Success state

Also called: confirmation screen, success message, thank-you screen, done state.

After you send the form, the same space shows a success state: a check mark, what happened, and what to do next.

Form

What the screen shows after something worked, like a sent form or a finished payment. It says clearly what happened and what you can do next.

Say it in a prompt

After the form is sent, replace it in the same card with a success state: a 52px accent circle with a white check that pops in (scale from 50% with a small overshoot), the headline "You're subscribed!", one line saying where the email went, and a "Back to the site" link.

Where it shows up

  • After you pay for an order or sign up for a newsletter, the form is replaced by a big check mark and "Thank you" with the next step.

You might describe it as

  • big green check after I send the form
  • thank you screen after paying
  • message that says it worked with a check mark

Not to be confused with

  • Toast

    A success state takes over the place where the form was; a toast is a small note in the corner that goes away by itself.

Disabled state

Also called: disabled, inactive, greyed out.

Normal

How a control looks when you can't use it yet: grayed out, not clickable. Good ones also say why.

Say it in a prompt

Show the button in a disabled state until the terms are accepted: gray background, gray text, a not-allowed cursor, and a short line under it saying why.

Hover state

Also called: hover effect, hover.

Normal

How something changes when the mouse is over it, like a button getting brighter. It tells you "you can click this". Phones have no hover.

Say it in a prompt

On hover, make the button slightly brighter and show a pointer cursor. Change color instantly (no fade) and keep the same size.

Pressed state

Also called: active state, pressed, :active.

Normal

How a button looks while you are pushing it down. A good one feels like a real key being pressed.

Say it in a prompt

In the pressed state, move the button down 4px and remove its bottom shadow, so it looks pushed in like a physical key.

Theme toggle

Also called: dark mode switch, theme switcher, light/dark toggle, appearance switch.

One switch changes every color on the page between a light and a dark theme. Sites often remember your choice.

Light

A switch that changes every color on the page between a light and a dark theme, and often a "System" option that follows the device. A good one remembers your choice.

Say it in a prompt

Add a theme toggle in the header: a 46px switch that moves its knob with transform over 260ms and switches the site between light and dark by setting data-theme on <html>. Start from the system setting, save the choice in localStorage, and change the colors instantly (no color fade).

Looks 0 / 16

Adjectives and style names for how a site feels.

Airy

Also called: spacious, generous whitespace, breathing room.

The same card, airy and dense. Flip between them.

Airy

Lots of empty space around and between things, so each part has room to breathe. It feels calm and expensive.

Say it in a prompt

Make it airy: generous whitespace, about 32px padding inside cards, 20px gaps between items, and wide margins around sections.

Bold

Also called: high contrast, loud, punchy.

The same card, bold and calm. Flip between them.

Bold

Strong contrast: big heavy headings, saturated colors and clear dark lines. It grabs attention fast.

Say it in a prompt

Make it bold: high contrast, a saturated accent color, 800-weight headings at a large size, and dark borders.

Calm

Also called: muted, quiet, low contrast.

The same card, calm and bold. Flip between them.

Calm

Gentle contrast: muted colors, medium-weight headings and nothing shouting for attention.

Say it in a prompt

Keep it calm: muted accent color, medium-weight headings, soft gray secondary text and no bright highlights.

Chunky 3D button

Also called: 3D button, raised button, tactile button, keycap button.

A solid, darker strip under each button (a shadow with no blur) makes it look like a key. Press one with the mouse: it sinks in.

Chunky

A button with a solid, darker strip under it (a shadow with no blur), so it looks like a real key you can push. When pressed, it moves down and the strip disappears.

Say it in a prompt

Make the main buttons chunky 3D buttons: green #58CC02 with a 0 4px 0 #46A302 shadow (no blur), 14px corners, bold uppercase 15px labels with 0.06em letter-spacing. On press, move the button down 4px and remove the shadow.

Cool

Also called: cool palette, cold, blue-gray.

The same card, cool and warm. Flip between them.

Cool

Colors lean toward blue and gray. It feels clean, calm and professional.

Say it in a prompt

Use a cool palette: blue-gray neutrals, a blue accent and slate-colored secondary text.

Dark premium

Also called: dark mode SaaS, sleek dark, dark techy.

Dark premium

Near-black backgrounds, hairline borders, soft glows and fading gradient text. Common on developer tools.

Say it in a prompt

Dark premium style: near-black background, 1px subtle borders, a faint colored glow behind cards, headline text with a white-to-gray gradient, pill buttons.

Dense

Also called: compact, tight, information-dense.

The same card, dense and airy. Flip between them.

Dense

Things sit close together with little space between them, so more fits on one screen. Good for tools and data; tiring for reading.

Say it in a prompt

Make it dense and compact: about 12px padding, 8px gaps, smaller headings, and more items visible at once.

Edge fade

Also called: fade mask, gradient mask, fade-out edges, soft edges.

The row and the list melt into the background at their edges, instead of being cut off with a hard line.

On

A row, list or picture that fades to transparent at its edges, so it melts into the background instead of being cut off with a hard line. It is made with a gradient mask.

Say it in a prompt

Fade out the edges of the logo row and the activity list: on the row use mask-image: linear-gradient(90deg, transparent, #000 18%, #000 82%, transparent), and on the list fade the bottom from 45% down to transparent.

Editorial

Also called: magazine style, newspaper style.

Editorial

Big serif headlines, thin lines between sections and layouts built for reading, like a magazine or newspaper.

Say it in a prompt

Editorial magazine style: large serif headlines, thin horizontal rules, bylines, a comfortable reading width, and text links instead of buttons.

Glassmorphism

Also called: frosted glass, glass effect, Liquid Glass.

Glassmorphism

See-through panels that blur whatever is behind them, with a thin light edge. It looks like frosted glass.

Say it in a prompt

Glassmorphism: translucent white panels (16% opacity) with a 14px backdrop blur and a 1px light border, over a colorful gradient background.

Minimal

Also called: minimalist, clean, simple.

Minimal

Lots of white space, few colors and quiet thin text. Only what is needed stays.

Say it in a prompt

Minimal style: white background, generous whitespace, one neutral sans-serif, gray secondary text, a single black button, no decoration.

Neo-brutalism

Also called: neubrutalism, brutalist.

Neo brutalism

Thick black outlines, hard shadows with no blur and loud flat colors. It looks raw on purpose.

Say it in a prompt

Neo-brutalist style: bright flat colors, 3px black borders, hard offset shadows (6px 6px 0 black, no blur), heavy bold type.

Playful

Also called: friendly, bubbly, gamified.

Playful

Bright saturated colors, very round corners, chunky buttons and bouncy motion. Think learning apps.

Say it in a prompt

Playful style: saturated purple and green, 24px rounded corners, a rounded heavy font, chunky buttons with a solid bottom shadow, springy hover animations.

Sharp

Also called: square corners, hard edges, crisp.

The same card, sharp and soft. Flip between them.

Sharp

Square corners with no rounding. It feels precise, serious and a little technical.

Say it in a prompt

Use sharp, square corners: 0 radius on cards, buttons, inputs and tags, with 1px borders.

Soft

Also called: rounded, friendly corners, pill-shaped.

The same card, soft and sharp. Flip between them.

Soft

Round corners on cards and buttons, often with pill-shaped buttons. It feels friendly and gentle.

Say it in a prompt

Use soft, rounded corners: 20px radius on cards and fully rounded pill-shaped buttons and tags.

Warm

Also called: warm palette, earthy, cozy.

The same card, warm and cool. Flip between them.

Warm

Colors lean toward red, orange and yellow: sand, cream and amber. It feels cozy and human.

Say it in a prompt

Use a warm palette: sand and cream neutrals, an amber-orange accent, and brown-tinted gray text.

Typography 0 / 9

Words for letters and text.

All caps

Also called: uppercase, capitals, caps.

All caps: every letter is a capital, usually with a little extra space between letters.

Caps

Text written only in capital letters. It feels loud and strong, so it is used for short labels, buttons and big headlines, usually with a little extra space between the letters.

Say it in a prompt

Set the button labels and section labels in all caps with CSS (text-transform: uppercase, so the text stays normal in the HTML), 14px bold with 0.06em letter-spacing. Keep body text in normal case.

Drop cap

Also called: initial, initial capital.

On

A very large first letter at the start of a story, sitting down into the first few lines. It marks where the story begins.

Say it in a prompt

Start the article with a drop cap: the first letter about 3 lines tall, floated left, in the serif headline font and the accent color.

Eyebrow

Also called: kicker, overline, pre-title, tagline label.

The eyebrow is the small line above the headline. It names the topic, so the big headline can be short and bold.

On

A small line of text above a headline that names the topic, often in capitals and in the accent color. It lets the headline itself stay short and bold.

Say it in a prompt

Add an eyebrow above each section headline: 12px semibold uppercase text with 0.08em letter-spacing in the accent color, 10px above a 32px serif headline.

Fluid type

Also called: fluid typography, responsive font size, clamp() font size, scaling text.

Make the little screen narrower. The fluid headline shrinks smoothly (never below 16px); the fixed one stays 28px and breaks into more lines. With a mouse you can also drag the screen's corner.

Wide

Text whose size grows and shrinks smoothly with the screen width, between a smallest and a biggest size. It replaces fixed sizes that jump at breakpoints.

Say it in a prompt

Make the headings fluid type: font-size: clamp(32px, 5vw + 1rem, 64px) for h1 and clamp(24px, 3vw + 1rem, 40px) for h2, so they scale smoothly between phone and desktop instead of jumping at breakpoints.

Letter-spacing

Also called: tracking, character spacing.

Normal

The space between every letter in a word. Big headlines often look better slightly tighter; small all-caps labels look better slightly wider.

Say it in a prompt

Tighten big headlines to -0.02em letter-spacing, and give small all-caps labels +0.08em.

Monospace

Also called: monospaced font, mono, fixed-width font, code font.

In a monospace font every letter is the same width, so an i takes as much room as an M.

Mono

A font where every letter takes the same width, so an i is as wide as an M, like on an old typewriter. It is used for code and for a technical, precise look.

Say it in a prompt

Use a monospace font (Geist Mono or JetBrains Mono, falling back to ui-monospace) for code, keyboard shortcuts and small uppercase labels, at 13px with 0.02em letter-spacing.

Sans-serif

Also called: sans, sans-serif font, grotesque, geometric sans.

Sans-serif letters have no little “feet” at the ends of their strokes. Compare with a serif font.

Sans

A font whose letters have no little "feet" at the ends of their strokes (sans means "without" in French). It feels clean, modern and easy to read on screens.

Say it in a prompt

Use a clean sans-serif font for the whole interface (Inter, with system-ui as the fallback): 16px body text at 1.5 line height, and semibold 600 for headings and buttons.

Serif

Also called: serif font, serif typeface.

Serif

A font whose letters have small "feet" at the ends of their strokes. It feels classic, bookish and trustworthy; sans-serif fonts have no feet and feel modern.

Say it in a prompt

Use a serif font for headlines (like Instrument Serif or Georgia) and a clean sans-serif for body text and buttons.

Tabular numbers

Also called: tabular figures, tabular-nums, monospaced numbers.

Stopped

Digits that all have the same width, so a changing number doesn't wiggle and columns of numbers line up.

Say it in a prompt

Use tabular numbers (font-variant-numeric: tabular-nums) for prices, counters, timers and table columns.

Color 0 / 6

Words for colors and how they work together.

Accent color

Also called: accent, highlight color, primary color.

Accent

The one strong color used sparingly, on the most important button or word, while everything else stays neutral. It shows your eye where to look.

Say it in a prompt

Keep the interface neutral (whites and grays) and use one accent color, a hot pink, only for the primary button, links and the active tab.

Brand color

Also called: brand colour, signature color, primary brand color, house color.

Three made-up brands, one app. The brand color is the one color the company owns: it is on the logo, the selected tab, the link and the main button.

Coral

The one color a company owns and uses everywhere, from the logo to the main button, so you know whose app it is at a glance. Many companies even give it a name.

Say it in a prompt

Use our brand color #E0484F everywhere it matters: the logo, the primary button, links, the selected tab underline and focus rings. Keep everything else neutral, and define it once as --brand in CSS.

Glow

Also called: soft glow, radial glow, light bloom, halo.

A glow is soft light behind something, made with a radial gradient that fades to nothing. On dark pages a faint glow adds depth.

On

A soft, blurry light behind or around something, usually a radial gradient that fades to nothing. On a dark background it adds depth and draws the eye.

Say it in a prompt

On the dark hero (#08090A), add a soft glow: a radial-gradient of white at 16% fading to transparent, above the headline, and a violet rgb(120 110 255 / .55) halo 150px wide behind the icon. Keep it subtle and put it behind the content.

Gradient

Also called: color gradient, linear gradient, radial gradient.

Linear

One color blending smoothly into another. A linear gradient blends along a line; a radial gradient spreads out from a point like light.

Say it in a prompt

Give the card a soft linear gradient background from peach (#ffb38a) through pink (#ff6fa8) to violet (#8f6bff) at 135 degrees, with white text.

Monochrome

Also called: black and white, grayscale, single color.

Color

Only black, white and grays (or shades of one color). It looks serious, calm and modern, and lets photos or content stand out.

Say it in a prompt

Make the interface monochrome: black, white and grays only, with black primary buttons and gray tags. No brand colors.

Neon color

Also called: neon, fluorescent color, electric color, acid color.

Neon colors are so bright they seem to glow, especially on a dark background. Compare with an ordinary green.

Neon

A very bright, very saturated color that almost seems to glow, like acid lime or hot pink. It is strongest on a dark background and is best used on a few things only.

Say it in a prompt

Use one neon color, acid lime #D2FF00, on the near-black #111112 background: only for the big headline word and the pill-shaped Store button (with near-black text on it). Everything else stays white and gray.