Pattern Library · Technical report

UI Patterns: A Catalogue of Forty Interface Patterns Built for Coding Agents

Antonin Januska*

Lifted from apps shipped in Boulder, Colorado

Revised 28 September 2026

Abstract

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. Section 1 defines the three forms every pattern takes; Section 2 is the searchable catalogue.

A blueprint drawing of interface parts: dialled gauges, dimensioned panels, and a grid of repeated tiles
Figure 1: Interface parts, dimensioned. Every pattern here was lifted out of a project that actually shipped.

1Every pattern, three ways

Definition 1 (Preview). The pattern running live in an isolated frame, in whichever theme you are reading in.

Definition 2 (Source). Its markup, styles and behaviour, plus a single runnable file carrying its own palette.

Definition 3 (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.

Remark. 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.

2The catalogue

40 patterns

No patterns match that search.

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

Table 1: The catalogue, in curated order. † new since the last revision; ‡ updated.
No.PatternCategoryAdded
1Windowed schedule grid · Data displayRows 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 · timeData display11 Aug. 2026
2Benchmark progress bar · Data displayPlaces a raw figure on a scale of external benchmarks instead of printing it plain.progress · benchmarks · css-only · data-viz · empty-stateData display11 Aug. 2026
3Cross-highlight matrix · Data displayA 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 · hoverData display11 Aug. 2026
4Left-truncating paths · Data displayShortens a long path by dropping whole segments from the left, because the tail is what tells two paths apart.truncation · paths · text-overflow · breadcrumbs · file-systemsData display11 Aug. 2026
5Shape-mark sequence (updated) · Data displayA sequence compressed into a row of small marks whose shape carries the state.stepper · sparkline · series · truncation · css-only · no-assetsData display21 Aug. 2026
6Linked month bars · Data displayA 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 · no-assetsData display21 Aug. 2026
7Glass vial meter · Data displayA 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 · no-assetsData display21 Aug. 2026
8Partitioned stage bar · Data displayProgress for work with several possible endings, drawn as a census rather than a fraction.progress · stacked-bar · batch · legend · status · aria-labelData display12 Sep. 2026
9Term-by-term derivation · Data displayA computed figure shown with the audit trail behind it — the number is the product and the derivation is the receipt.explainability · calculator · disclosure · formula · tabular-nums · detailsData display12 Sep. 2026
10Plan preview tree (updated) · Data displayA dry run shown as a before-and-after tree with counts now, after, and the difference.dry-run · diff · tree · preview · bulk-operation · confirmationData display12 Sep. 2026
11Uniform slot shell · Data displayOne card shell many independent sources render through, where the shell does the capping.dashboard · widgets · cards · empty-state · error-state · gridData display12 Sep. 2026
12Object-shaped cards (updated) · LayoutWhere a record stands for a physical thing, the card is drawn as that thing — nine variations in pure gradients.cards · css-only · gradients · variations · no-assets · skeuomorphicLayout11 Aug. 2026
13Adaptive tile mosaic · LayoutA container with no artwork draws one from up to four member tiles, grid tracks following tile count.css-grid · css-only · no-assets · cards · layoutLayout11 Aug. 2026
14Ground-scrimmed artwork (updated) · LayoutText printed over unreviewed artwork, scrimmed to an alpha that can be written down rather than guessed.layout · css-only · gradients · contrast · no-assets · hero · cardsLayout11 Aug. 2026
15Hairline stat strip (updated) · LayoutStat tiles joined by hairlines that are grid gap, not borders.stats · css-grid · css-only · hairline · no-assetsLayout21 Aug. 2026
16Annotated transcript · LayoutConversation bubbles with a speaker-colored spine and a fixed metadata gutter.conversation · gutter · status-roles · contrast · css-onlyLayout21 Aug. 2026
17Cork notice board · LayoutPinned paper notes on a cork board where every texture is layered CSS gradients.skeuomorphic · gradients · no-assets · cards · css-onlyLayout21 Aug. 2026
18Hotspot marker layer (updated) · LayoutMarkers at percentage coordinates over a fixed-aspect picture, turning into a list when too narrow.hotspots · pointer-events · aspect-ratio · container-query · overlay · responsiveLayout12 Sep. 2026
19Line-art empty states · LayoutInline drawings for empty surfaces stroked in the inherited text colour.empty-state · svg · currentcolor · illustration · aria-hidden · no-assetsLayout12 Sep. 2026
20Column-flow wall · LayoutCards flowing down columns instead of across rows, with the reading-order cost stated plainly.masonry · columns · break-inside · reading-order · cards · responsiveLayout12 Sep. 2026
21Scroll edge shadows · InteractionAn inset shadow shown only on the edge that has more content behind it.scrolling · affordance · lists · overflow · progressive-disclosureInteraction11 Aug. 2026
22Frozen-batch deck · InteractionA one-card-at-a-time review queue whose batch is snapshotted at mount.queue · review-flow · animation · keyboard · reduced-motionInteraction11 Aug. 2026
23Controls beside the anchor (updated) · InteractionPer-card controls over a fully-linked card without nesting interactive elements in the anchor.cards · accessibility · keyboard · focus-within · gridInteraction11 Aug. 2026
24Pluggable canvas visualizer (updated) · InteractionOne canvas, a registry of draw modes, each mode owning its entire frame.canvas · visualization · registry · animation · reduced-motionInteraction11 Aug. 2026
25Roving-grid board (updated) · InteractionA dense grid of state cells that is one tab stop with arrow-key navigation.keyboard · roving-tabindex · accessibility · states · dense-dataInteraction21 Aug. 2026
26Section rail · InteractionSticky vertical rail on wide screens, wrapping tab row on narrow ones, from the same markup.navigation · toc · responsive · aria-current · intersection-observer · container-queries · stickyInteraction21 Aug. 2026
27Ledge-press buttons · InteractionButtons on a solid ledge shadow that travel down onto it when pressed.buttons · skeuomorphic · press · tokens · css-onlyInteraction21 Aug. 2026
28Guarded control (updated) · InteractionA blocked control stays focusable, carries the reason as text, and refuses in its handler.aria-disabled · disabled · preconditions · keyboard · aria-describedby · formsInteraction12 Sep. 2026
29Polled job card (updated) · InteractionOne card for every state a background job passes through.progress · polling · background-job · indeterminate · aria-busy · reduced-motionInteraction12 Sep. 2026
30Entry-transform motion · InteractionFLIP-style motion between two rendered states when the old DOM is already gone.animation · transitions · reflow · reduced-motion · navigation · layout-effectInteraction12 Sep. 2026
31Slot-first picker (updated) · InteractionAssignment that starts at the destination slot, then narrows the catalogue.assignment · picker · aria-pressed · filtering · forms · data-drivenInteraction12 Sep. 2026
32Undo toast · FormsA destructive action with no confirm dialog, held behind a toast and committed when it expires.undo · toast · destructive · aria-live · reduced-motionForms28 Aug. 2026
33Blast-radius confirm (new) · FormsA confirm dialog that names everything a delete cascades and blocks dismissal while it runs.confirm-dialog · destructive · cascade · dialog-element · formsForms28 Sep. 2026
34Batch action bar (updated) · FormsA bar that exists only while something is selected, states the count in words, caps at five actions.selection · bulk-actions · toolbar · checkbox · indeterminate · bulk-edit · mixed-valuesForms28 Aug. 2026
35Filtered to zero · FormsThe three empty states a list actually has, written as three different screens.empty-state · filter · search · zero-results · aria-live · copywritingForms12 Sep. 2026
36Parsed query chips · FormsA search box that echoes back how it read the text as removable chips.search · query-syntax · chips · facets · parsing · aria-liveForms12 Sep. 2026
37Compound-value picker · FormsOne grouped select whose value carries both the kind and the id.select · optgroup · polymorphic · forms · dependent-fields · keyboardForms12 Sep. 2026
38Ground-referenced color (updated) · ColorColors solved against the page's own ground token so they invert correctly between themes.color · contrast · color-mix · accessibility · wcag · theming · year-mapColor11 Aug. 2026
39Single-property color variants (updated) · ColorOne custom property carries the hue; border, fill, spine and dot derive from it.color · color-mix · custom-properties · theming · data-attributes · badgesColor21 Aug. 2026
40Controls on an unknown fill (updated) · ColorOpaque 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 · wcag · themingColor12 Sep. 2026