waffle / patterns

UI patterns collected from lab.aisu.studio, fontane.studio (live), AisuStudio/FullerHome, and AisuStudio/spiritsprint (real repos) — sorted by component, translated into waffle tokens. This was the shortlist for a proper components.css — that now exists, see components.html for the real, shippable classes. This page stays as the source record of where each pattern came from.

Superseded

The examples below are re-styled copies (.ex-* classes), kept for provenance. The real, shippable version of these patterns is components.html's components.css — use that in a project, not this page's markup.

Findings: token layer matters more than any single pattern

Added after reviewing the real repos (AisuStudio/FullerHome, AisuStudio/spiritsprint, not just the local design file). The most valuable find isn't a new component — it's three problems those repos already solved that waffle doesn't have yet.

1. aisukurimu-tokens.css is already your components.css

lab.aisu.studio and spiritsprint both use the same utility-class layer from github.com/AisuStudio/aisukurimu: .nav-item, .tag, .eyebrow, .link-big, .caption, .h1-vanilla, .container, .hr — exactly the type/nav building blocks rebuilt from the DOM below.

→ Instead of reinventing patterns: pull aisukurimu-tokens.css into waffle (or build waffle on top of it).

2. --color-muted isn't WCAG-compliant in waffle

FullerHome's globals.css has the same token set as waffle, but with a comment: --color-muted: #66655f instead of hazelnut #9e9c95 — "#93928e on vanilla is only 2.6:1 contrast, darkened to ≥4.5:1". That's a real accessibility fix, not a taste difference.

✓ Done — --color-muted: #66655f is already in waffle's tokens.css.

3. Missing pair: --color-on-accent

FullerHome and spiritsprint both consistently use accent-bg + on-accent-text as the signal for "active/selected/highlighted" (tabs, toggles, badges, chips, totals). Waffle has --color-accent, but no defined counterpart.

✓ Done — --color-on-accent: var(--color-blueberry) is already in waffle's tokens.css.

4. spiritsprint already has dark mode

A full set — --bg/--surface/--surface-2/--ink/--muted/--accent/--highlight/--border — defined twice: via prefers-color-scheme and a [data-theme] override. In dark mode, --accent becomes a lighter violet (#b298ff), not grape 1:1 — otherwise too dark on a dark background.

✓ Done — waffle's tokens.css now ships this exact pattern (see index.html's Dark mode section).