Wylie Dog
04 · Patterns·@wyliedog/ui v1.4

Complete UI solutions, not just components.

Patterns are higher-order compositions — assembled from primitives, wired to the same token system, and tested against the same accessibility checklist. When the tokens move, every pattern moves with them.

inputs

Components

42 typed primitives

ButtonInputCard

Tokens

340 OKLCH values

composed into

Patterns

15 reference compositions across 9 categories.

shipped as

Pages

Real product surfaces, end-to-end.

Patterns
15reference compositions
Categories
9auth, data, layout, a11y…
Composable
100%built from primitives
Accessible
WCAG 2.2AA targeted
Category 01·2 patterns

Authentication

Sign-in, sign-up, and account recovery. The hard parts — validation states, async submission, error recovery, social SSO — are wired up so product teams don't re-invent the flow on every new surface.

Wylie Dog

Welcome back

Sign in to continue to your workspace.

elena@wyliedog.dev
Forgot?
••••••••
or continue with

No account? Create one

Login & Registration

View ↗

Sign-in form, registration flow, social auth options. Same schema, three layouts — page, modal, and drawer.

FormInputButtonSeparatorLink
step 1

Reset password

We'll send a link.

elena@…
step 2 · sent

Check your inbox

Link valid for 15 min.

e****@wyliedog.dev

Password Recovery

View ↗

Forgot-password entry, throttled resend, magic-link return state. Handles all five edge cases auth audits flag: expired token, used token, mismatched email, rate-limit, and SSO-only accounts.

FormInputAlertButton
Category 02·2 patterns

Data display

Browseable grids and showcase grids. Both share the same card primitive but differ in density and what they ask the user to do next.

Showing 3 of 248grid · 3 cols

Helios Workspace

12 members

active$42/mo

Atlas Studio

5 members

active$24/mo

Northwind Co.

28 members

trial14d left
123 … 83

Card Grid

View ↗

Responsive grid of data cards with pagination, filtering, and empty states. Reflows 4 → 3 → 2 → 1 columns across our breakpoints.

CardBadgePaginationAvatar

Lightning fast

Edge-rendered. 38ms p95.

SOC 2 Type II

Audited yearly.

24/7 monitoring

Status & alerts built in.

Human support

Median reply 4 min.

Feature Grid

View ↗

Marketing-grade feature showcase: 2×2, 3×2, or 4×1 layouts with iconography, titles, and one-line benefit copy. Designed to be skimmed.

CardIconHeadingText
Category 03·1 pattern

Feedback

When something fails, the pattern catches it. Error states aren't an afterthought — they're designed as carefully as the happy path.

Something broke on our end

The team has been pinged. Your work was auto-saved 12s ago.

error.id  err_8f3a2b1c

component-scoped

Chart failed to render

RangeError: data points exceed buffer.

rest of the page still works

Error Boundary Patterns

View ↗

Page-level and component-scoped error states with recovery UI. Captures the error, auto-saves the user's in-flight work, and offers a non-destructive path back to a working state — without unmounting the whole tree.

AlertButtonCardIconCode
Category 04·2 patterns

Forms

Form composition and validation are the largest source of bespoke UI in any product. These patterns close the gap so teams stop reinventing field groupings, error display, and async submit states.

Workspace settings

Step 2 of 3

General

Helios Workspace
wyliedog.dev/helios

Billing

Annual billing

Save 20%

Form Compositions

View ↗

Multi-field forms, field groupings, and step indicators. Standard layout primitives so a 30-field settings page reads like a 5-field one.

FormInputSwitchStepperFieldset
elena@wyl

Invalid email format. Expected name@domain.com.

acme-cochecking…
••••••••••••
Strong

Form Validation Patterns

View ↗

Error, async, and success states with consistent messaging. Validation fires on blur, runs async checks against the server, and recovers when the user corrects.

InputFormIconProgressText
Category 05·1 pattern

Layout

The page shell — what holds every product surface together. One layout primitive wired for sidebar, content, and overlay regions, with responsive collapse built in.

helios.wyliedog.dev/projects⌘K

Projects

NameOwnerDueStatus
Migration v1.4EMJun 12on track
Token bridgeJRJun 18at risk

Layout Patterns

View ↗

Page shell, sidebar, content area, and responsive breakpoints. The sidebar collapses to a sheet below lg; the content area never exceeds a 1280px reading measure.

SidebarNavigationMenuContainerSheetCard
Category 06·2 patterns

Navigation

Header and footer for marketing surfaces — the bookends of every public page. Used on this site too, so they're self-eating dog food.

Wylie Dog
⌘K
sticky · blurs on scroll

Site Header

View ↗

Sticky header with logo, primary nav, search trigger, and theme toggle. Blurs the content beneath on scroll. Used as the header on this very page.

NavigationMenuButtonCommandToggleGroup

Wylie Dog

The shared system for everything we ship.

Product

  • Tokens
  • Components
  • Patterns

Tools

  • Storybook
  • Figma plugin
  • CLI

Legal

  • Privacy
  • Terms
  • Security
© 2026 Wylie DogAll systems operational

Site Footer

View ↗

Multi-column footer with brand block, sitemap columns, legal links, and a live status indicator. Collapses to two columns on mobile, brand stacked above.

SeparatorLinkBadgeHeading
Category 07·3 patterns

Page compositions

Pre-assembled marketing surfaces — the big building blocks of a public page. Each section composes lower-order patterns; the page composition wires them together end-to-end.

v1.4 just shipped

Build faster.
Ship calmer.

The shared system that finally keeps brand and product in sync.

Start freeDocs

Section: Hero

View ↗

Headline, lead, CTAs, optional eyebrow badge. Three layout variants: centered, split, and asymmetric.

HeadingButtonBadge

Why teams choose us

Three pillars,
one promise.

Token-driven

Change one variable, every surface updates.

Accessible by default

WCAG 2.2 AA across every state.

Typed end-to-end

No prop guesswork in your IDE.

Section: Features

View ↗

Features / benefits with optional icons and supporting copy. Two-column, three-up row, or alternating screenshot+text variants.

HeadingIconCardText

Page Layout

View ↗

Full page assembly — header, hero, features, CTA, footer — wired together with consistent rhythm and section spacing.

HeaderHeroFeaturesCTAFooter
Category 08·1 pattern

Responsive

Breakpoint-aware layout decisions. Not just "shrink the desktop" — structural reflows that pick the right pattern for each surface size.

sm · 3751 col
md · 7682 col
lg · 1280sidebar + 3 col
Below md

Sidebar → drawer. Tabs → segmented control. Tables → cards.

md → lg

Sidebar compact. 2-up content. Sticky filters.

lg and up

Full sidebar. 3-up content. Inline filters.

Responsive Patterns

View ↗

Structural reflows for sidebar, table, and filter UIs across breakpoints — not pure shrink-to-fit. Each pattern declares which alternate component it morphs into at each step.

SidebarSheetTableCardTabs
Category 09·1 pattern

Accessibility

Every component ships WCAG 2.2 AA–verified. These patterns demonstrate the practices behind that claim — focus management, error announcement, keyboard navigation, and visible focus rings backed by the token system.

Focus management

Focused input

3px offset ring · OKLCH token

Error announcement

elena@wyl

role="alert" · aria-describedby

Keyboard navigation

Option one↑ ↓
Option two
Option three

roving tabIndex · Arrow keys

Accessibility Patterns

View ↗

Reference implementations for focus rings, live regions, error announcement, keyboard navigation, and skip links. Built with the token system — --color-interactive-primary drives every focus indicator so a single token change updates the entire a11y surface.

FormAlertInputButtonDialog
Philosophy

A component is a primitive. A pattern is a decision.

Components answer "what". Patterns answer "when, how, and in what order". Two teams shipping the same Input on the same Card with the same Button can still produce two different sign-in forms — that's the inconsistency patterns exist to eliminate.

01

Use a pattern when the answer is already known.

Sign-in flows, error boundaries, responsive sidebars — these have all been designed before. Reach for the pattern; spend your novelty budget on the product, not the plumbing.

02

Build from scratch when the problem is genuinely new.

If no pattern fits, compose from components instead of bending a near-miss pattern out of shape. Then nominate the result for inclusion — that's how the catalog grows.

03

Patterns stay in sync via the token layer.

When --color-interactive-primary moves, every button, badge, and focus ring across every pattern moves with it — no pattern-by-pattern refactor required.

tokenscomponentspatternsyour pages

Ready to build?

See every pattern live in Storybook.

Each pattern ships with full states, controls, and copy-paste source. The Storybook mirrors what you see on this page — minus the pixel gap.