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.
Every pattern, three ways
Preview
The pattern running live in an isolated frame, in whichever theme you are reading in.
Source
Its markup, styles and behaviour, plus a single runnable file carrying its own palette.
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 library
40 patterns lifted out of projects I actually shipped.
40 patterns
Data display / Added 2026-08-11
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.
- schedule
- timeline
- grid
- flexbox
Data display / Added 2026-08-11
Benchmark progress bar
Places a raw figure on a scale of external benchmarks instead of printing it plain.
- progress
- benchmarks
- css-only
- data-viz
Data display / Added 2026-08-11
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.
- table
- matrix
- sticky
- accessibility
Data display / Added 2026-08-11
Left-truncating paths
Shortens a long path by dropping whole segments from the left, because the tail is what tells two paths apart.
- truncation
- paths
- text-overflow
- breadcrumbs
Data display / Updated 2026-09-28
Shape-mark sequence
A sequence compressed into a row of small marks whose shape carries the state.
- stepper
- sparkline
- series
- truncation
Data display / Added 2026-08-21
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.
- timeline
- drill-down
- css-only
- data-viz
Data display / Added 2026-08-21
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.
- meter
- skeuomorphic
- css-only
- reduced-motion
Data display / Added 2026-09-12
Partitioned stage bar
Progress for work with several possible endings, drawn as a census rather than a fraction.
- progress
- stacked-bar
- batch
- legend
Data display / Added 2026-09-12
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.
- explainability
- calculator
- disclosure
- formula
Data display / Updated 2026-09-28
Plan preview tree
A dry run shown as a before-and-after tree with counts now, after, and the difference.
- dry-run
- diff
- tree
- preview
Data display / Added 2026-09-12
Uniform slot shell
One card shell many independent sources render through, where the shell does the capping.
- dashboard
- widgets
- cards
- empty-state
Layout / Updated 2026-09-28
Object-shaped cards
Where a record stands for a physical thing, the card is drawn as that thing — nine variations in pure gradients.
- cards
- css-only
- gradients
- variations
Layout / Added 2026-08-11
Adaptive tile mosaic
A container with no artwork draws one from up to four member tiles, grid tracks following tile count.
- css-grid
- css-only
- no-assets
- cards
Layout / Updated 2026-09-28
Ground-scrimmed artwork
Text printed over unreviewed artwork, scrimmed to an alpha that can be written down rather than guessed.
- layout
- css-only
- gradients
- contrast
Layout / Updated 2026-09-28
Hairline stat strip
Stat tiles joined by hairlines that are grid gap, not borders.
- stats
- css-grid
- css-only
- hairline
Layout / Added 2026-08-21
Annotated transcript
Conversation bubbles with a speaker-colored spine and a fixed metadata gutter.
- conversation
- gutter
- status-roles
- contrast
Layout / Added 2026-08-21
Cork notice board
Pinned paper notes on a cork board where every texture is layered CSS gradients.
- skeuomorphic
- gradients
- no-assets
- cards
Layout / Updated 2026-09-28
Hotspot marker layer
Markers at percentage coordinates over a fixed-aspect picture, turning into a list when too narrow.
- hotspots
- pointer-events
- aspect-ratio
- container-query
Layout / Added 2026-09-12
Line-art empty states
Inline drawings for empty surfaces stroked in the inherited text colour.
- empty-state
- svg
- currentcolor
- illustration
Layout / Added 2026-09-12
Column-flow wall
Cards flowing down columns instead of across rows, with the reading-order cost stated plainly.
- masonry
- columns
- break-inside
- reading-order
Interaction / Added 2026-08-11
Scroll edge shadows
An inset shadow shown only on the edge that has more content behind it.
- scrolling
- affordance
- lists
- overflow
Interaction / Added 2026-08-11
Frozen-batch deck
A one-card-at-a-time review queue whose batch is snapshotted at mount.
- queue
- review-flow
- animation
- keyboard
Interaction / Updated 2026-09-28
Controls beside the anchor
Per-card controls over a fully-linked card without nesting interactive elements in the anchor.
- cards
- accessibility
- keyboard
- focus-within
Interaction / Updated 2026-09-28
Pluggable canvas visualizer
One canvas, a registry of draw modes, each mode owning its entire frame.
- canvas
- visualization
- registry
- animation
Interaction / Updated 2026-09-28
Roving-grid board
A dense grid of state cells that is one tab stop with arrow-key navigation.
- keyboard
- roving-tabindex
- accessibility
- states
Interaction / Added 2026-08-21
Section rail
Sticky vertical rail on wide screens, wrapping tab row on narrow ones, from the same markup.
- navigation
- toc
- responsive
- aria-current
Interaction / Added 2026-08-21
Ledge-press buttons
Buttons on a solid ledge shadow that travel down onto it when pressed.
- buttons
- skeuomorphic
- press
- tokens
Interaction / Updated 2026-09-28
Guarded control
A blocked control stays focusable, carries the reason as text, and refuses in its handler.
- aria-disabled
- disabled
- preconditions
- keyboard
Interaction / Updated 2026-09-28
Polled job card
One card for every state a background job passes through.
- progress
- polling
- background-job
- indeterminate
Interaction / Added 2026-09-12
Entry-transform motion
FLIP-style motion between two rendered states when the old DOM is already gone.
- animation
- transitions
- reflow
- reduced-motion
Interaction / Updated 2026-09-28
Slot-first picker
Assignment that starts at the destination slot, then narrows the catalogue.
- assignment
- picker
- aria-pressed
- filtering
Forms / Added 2026-08-28
Undo toast
A destructive action with no confirm dialog, held behind a toast and committed when it expires.
- undo
- toast
- destructive
- aria-live
Forms / Added 2026-09-28
Blast-radius confirm
A confirm dialog that names everything a delete cascades and blocks dismissal while it runs.
- confirm-dialog
- destructive
- cascade
- dialog-element
Forms / Updated 2026-09-28
Batch action bar
A bar that exists only while something is selected, states the count in words, caps at five actions.
- selection
- bulk-actions
- toolbar
- checkbox
Forms / Added 2026-09-12
Filtered to zero
The three empty states a list actually has, written as three different screens.
- empty-state
- filter
- search
- zero-results
Forms / Added 2026-09-12
Parsed query chips
A search box that echoes back how it read the text as removable chips.
- search
- query-syntax
- chips
- facets
Forms / Added 2026-09-12
Compound-value picker
One grouped select whose value carries both the kind and the id.
- select
- optgroup
- polymorphic
- forms
Color / Updated 2026-09-28
Ground-referenced color
Colors solved against the page's own ground token so they invert correctly between themes.
- color
- contrast
- color-mix
- accessibility
Color / Updated 2026-09-28
Single-property color variants
One custom property carries the hue; border, fill, spine and dot derive from it.
- color
- color-mix
- custom-properties
- theming
Color / Updated 2026-09-28
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.
- contrast
- brand-color
- focus-ring
- opacity
No patterns match that search.
Try a shorter term, or clear the filters to see all 40.
p. 02