Staff Engineer · WriterAntJanus
Pattern library

UI Patterns

A UI pattern library built for coding agents. 40 patterns, each shipping a copy-paste prompt that rebuilds it inside your own codebase — plus a live preview and the source behind it.

A blueprint drawing of interface parts: dialled gauges, dimensioned panels, and a grid of repeated tiles

Every pattern, three ways

01

Preview

The pattern running live in an isolated frame, in whichever theme you are reading in.

02

Source

Its markup, styles and behaviour, plus a single runnable file carrying its own palette.

03

Prompt

A written spec that rebuilds the pattern from scratch — including why each decision is the way it is. Paste it into Claude Code, Cursor, or any coding agent.

The prompts are the point. Each one is written to survive being handed to an agent with no other context: it names the surfaces the pattern belongs on, spells out the constraint that makes it work, and calls out the failure it exists to prevent. Nothing here is a dependency you install.

40 patterns

No patterns match that search.

Try a shorter term, or clear the filters to see all 40.

Data display · Added

Windowed schedule grid

Rows of resources against a fixed time window, where each block is sized by its overlap with the window rather than by its own duration.

Good for schedule, timeline, grid

  • schedule
  • timeline
  • grid
  • flexbox
  • time

Data display · Added

Benchmark progress bar

Places a raw figure on a scale of external benchmarks instead of printing it plain.

Good for progress, benchmarks, css-only

  • progress
  • benchmarks
  • css-only
  • data-viz
  • empty-state

Data display · Added

Cross-highlight matrix

A two-axis lookup table with both headers sticky, hover lighting the full row and column at once, and a durable click-to-pin selection for touch.

Good for table, matrix, sticky

  • table
  • matrix
  • sticky
  • accessibility
  • hover

Data display · Added

Left-truncating paths

Shortens a long path by dropping whole segments from the left, because the tail is what tells two paths apart.

Good for truncation, paths, text-overflow

  • truncation
  • paths
  • text-overflow
  • breadcrumbs
  • file-systems

Data display Updated · Updated

Shape-mark sequence

A sequence compressed into a row of small marks whose shape carries the state.

Good for stepper, sparkline, series

  • stepper
  • sparkline
  • series
  • truncation
  • css-only

Data display · Added

Linked month bars

A month-by-month volume timeline built from plain divs where every aggregate row links to the filtered view that produced it.

Good for timeline, drill-down, css-only

  • timeline
  • drill-down
  • css-only
  • data-viz
  • no-assets

Data display · Added

Glass vial meter

A vertical potion-vial meter whose liquid fills a wide bulb first and then rises into a narrow neck — all CSS, no images.

Good for meter, skeuomorphic, css-only

  • meter
  • skeuomorphic
  • css-only
  • reduced-motion
  • no-assets

Data display · Added

Partitioned stage bar

Progress for work with several possible endings, drawn as a census rather than a fraction.

Good for progress, stacked-bar, batch

  • progress
  • stacked-bar
  • batch
  • legend
  • status

Data display · Added

Term-by-term derivation

A computed figure shown with the audit trail behind it — the number is the product and the derivation is the receipt.

Good for explainability, calculator, disclosure

  • explainability
  • calculator
  • disclosure
  • formula
  • tabular-nums

Data display Updated · Updated

Plan preview tree

A dry run shown as a before-and-after tree with counts now, after, and the difference.

Good for dry-run, diff, tree

  • dry-run
  • diff
  • tree
  • preview
  • bulk-operation

Data display · Added

Uniform slot shell

One card shell many independent sources render through, where the shell does the capping.

Good for dashboard, widgets, cards

  • dashboard
  • widgets
  • cards
  • empty-state
  • error-state

Layout Updated · Updated

Object-shaped cards

Where a record stands for a physical thing, the card is drawn as that thing — nine variations in pure gradients.

Good for cards, css-only, gradients

  • cards
  • css-only
  • gradients
  • variations
  • no-assets

Layout · Added

Adaptive tile mosaic

A container with no artwork draws one from up to four member tiles, grid tracks following tile count.

Good for css-grid, css-only, no-assets

  • css-grid
  • css-only
  • no-assets
  • cards
  • layout

Layout Updated · Updated

Ground-scrimmed artwork

Text printed over unreviewed artwork, scrimmed to an alpha that can be written down rather than guessed.

Good for layout, css-only, gradients

  • layout
  • css-only
  • gradients
  • contrast
  • no-assets

Layout Updated · Updated

Hairline stat strip

Stat tiles joined by hairlines that are grid gap, not borders.

Good for stats, css-grid, css-only

  • stats
  • css-grid
  • css-only
  • hairline
  • no-assets

Layout · Added

Annotated transcript

Conversation bubbles with a speaker-colored spine and a fixed metadata gutter.

Good for conversation, gutter, status-roles

  • conversation
  • gutter
  • status-roles
  • contrast
  • css-only

Layout · Added

Cork notice board

Pinned paper notes on a cork board where every texture is layered CSS gradients.

Good for skeuomorphic, gradients, no-assets

  • skeuomorphic
  • gradients
  • no-assets
  • cards
  • css-only

Layout Updated · Updated

Hotspot marker layer

Markers at percentage coordinates over a fixed-aspect picture, turning into a list when too narrow.

Good for hotspots, pointer-events, aspect-ratio

  • hotspots
  • pointer-events
  • aspect-ratio
  • container-query
  • overlay

Layout · Added

Line-art empty states

Inline drawings for empty surfaces stroked in the inherited text colour.

Good for empty-state, svg, currentcolor

  • empty-state
  • svg
  • currentcolor
  • illustration
  • aria-hidden

Layout · Added

Column-flow wall

Cards flowing down columns instead of across rows, with the reading-order cost stated plainly.

Good for masonry, columns, break-inside

  • masonry
  • columns
  • break-inside
  • reading-order
  • cards

Interaction · Added

Scroll edge shadows

An inset shadow shown only on the edge that has more content behind it.

Good for scrolling, affordance, lists

  • scrolling
  • affordance
  • lists
  • overflow
  • progressive-disclosure

Interaction · Added

Frozen-batch deck

A one-card-at-a-time review queue whose batch is snapshotted at mount.

Good for queue, review-flow, animation

  • queue
  • review-flow
  • animation
  • keyboard
  • reduced-motion

Interaction Updated · Updated

Controls beside the anchor

Per-card controls over a fully-linked card without nesting interactive elements in the anchor.

Good for cards, accessibility, keyboard

  • cards
  • accessibility
  • keyboard
  • focus-within
  • grid

Interaction Updated · Updated

Pluggable canvas visualizer

One canvas, a registry of draw modes, each mode owning its entire frame.

Good for canvas, visualization, registry

  • canvas
  • visualization
  • registry
  • animation
  • reduced-motion

Interaction Updated · Updated

Roving-grid board

A dense grid of state cells that is one tab stop with arrow-key navigation.

Good for keyboard, roving-tabindex, accessibility

  • keyboard
  • roving-tabindex
  • accessibility
  • states
  • dense-data

Interaction · Added

Section rail

Sticky vertical rail on wide screens, wrapping tab row on narrow ones, from the same markup.

Good for navigation, toc, responsive

  • navigation
  • toc
  • responsive
  • aria-current
  • intersection-observer

Interaction · Added

Ledge-press buttons

Buttons on a solid ledge shadow that travel down onto it when pressed.

Good for buttons, skeuomorphic, press

  • buttons
  • skeuomorphic
  • press
  • tokens
  • css-only

Interaction Updated · Updated

Guarded control

A blocked control stays focusable, carries the reason as text, and refuses in its handler.

Good for aria-disabled, disabled, preconditions

  • aria-disabled
  • disabled
  • preconditions
  • keyboard
  • aria-describedby

Interaction Updated · Updated

Polled job card

One card for every state a background job passes through.

Good for progress, polling, background-job

  • progress
  • polling
  • background-job
  • indeterminate
  • aria-busy

Interaction · Added

Entry-transform motion

FLIP-style motion between two rendered states when the old DOM is already gone.

Good for animation, transitions, reflow

  • animation
  • transitions
  • reflow
  • reduced-motion
  • navigation

Interaction Updated · Updated

Slot-first picker

Assignment that starts at the destination slot, then narrows the catalogue.

Good for assignment, picker, aria-pressed

  • assignment
  • picker
  • aria-pressed
  • filtering
  • forms

Forms · Added

Undo toast

A destructive action with no confirm dialog, held behind a toast and committed when it expires.

Good for undo, toast, destructive

  • undo
  • toast
  • destructive
  • aria-live
  • reduced-motion

Forms New · Added

Blast-radius confirm

A confirm dialog that names everything a delete cascades and blocks dismissal while it runs.

Good for confirm-dialog, destructive, cascade

  • confirm-dialog
  • destructive
  • cascade
  • dialog-element
  • forms

Forms Updated · Updated

Batch action bar

A bar that exists only while something is selected, states the count in words, caps at five actions.

Good for selection, bulk-actions, toolbar

  • selection
  • bulk-actions
  • toolbar
  • checkbox
  • indeterminate

Forms · Added

Filtered to zero

The three empty states a list actually has, written as three different screens.

Good for empty-state, filter, search

  • empty-state
  • filter
  • search
  • zero-results
  • aria-live

Forms · Added

Parsed query chips

A search box that echoes back how it read the text as removable chips.

Good for search, query-syntax, chips

  • search
  • query-syntax
  • chips
  • facets
  • parsing

Forms · Added

Compound-value picker

One grouped select whose value carries both the kind and the id.

Good for select, optgroup, polymorphic

  • select
  • optgroup
  • polymorphic
  • forms
  • dependent-fields

Color Updated · Updated

Ground-referenced color

Colors solved against the page's own ground token so they invert correctly between themes.

Good for color, contrast, color-mix

  • color
  • contrast
  • color-mix
  • accessibility
  • wcag

Color Updated · Updated

Single-property color variants

One custom property carries the hue; border, fill, spine and dot derive from it.

Good for color, color-mix, custom-properties

  • color
  • color-mix
  • custom-properties
  • theming
  • data-attributes

Color Updated · Updated

Controls on an unknown fill

Opaque controls, a gradient-darkened fill, and a two-tone focus ring on a surface whose colour arrives from outside.

Good for contrast, brand-color, focus-ring

  • contrast
  • brand-color
  • focus-ring
  • opacity
  • wcag