Postie

Preview 02 · the collated wave UI kits ∥ Applications ∥ Templates

Brand
brand-001-postie · Postie
Frozen input
2026-09-20T20:46:29Z
Canvas
https://claude.ai/artifact/EKGSzXk9ecDxyt9LBXcLjp (Design canvas · superseded fallback: V5yQ7GiDzE1CouW4B2cJ7q)
Boards on canvas
13
Wave rows
21 locked

pack/ui_kits/

UI kits

12 ledger rows · 11 frames
marketing-site · desktopui_kits/marketing-site/index.html · 1440×1720
marketing-site · desktop · lightui_kits/marketing-site/index.html · 1440×1720
marketing-site · mobileui_kits/marketing-site/mobile.html · 390×3040
landing-pageui_kits/landing-page/index.html · 1440×1024
app · desktopui_kits/app/index.html · 1440×1024
app · desktop · lightui_kits/app/index.html · 1440×1024
app · mobileui_kits/app/mobile.html · 390×844
dashboardui_kits/dashboard/index.html · 1440×1024
auth-screens · sign inui_kits/auth-screens/index.html · 1440×1024
auth-screens · get back inui_kits/auth-screens/index.html · 1440×1024
auth-screens · locked outui_kits/auth-screens/index.html · 1440×1024
Ledger rows for this zone

pack/applications/

Applications

5 ledger rows · 3 frames
transactional-email · welcomeapplications/email/transactional-welcome.html · 648×986
transactional-email · receiptapplications/email/transactional-receipt.html · 648×1168
marketing-email · announcementapplications/email/marketing-announcement.html · 648×1064
Ledger rows for this zone

pack/templates/

Templates

4 ledger rows · 1 frames
template-emailtemplates/email/index.html · 600×585
Ledger rows for this zone

Raised by the zones

Every gap a zone found in the frozen input, what it used instead, and where it stands. Nothing was patched in-zone; the component and variant gaps were fixed once at the source and the input re-frozen.

  1. component-gapui_kits

    Working-context re-entry must beat brand-scoped descendant rules. `.postie-brand .postie-pebble`, `.postie-brand .postie-state--live`, `.postie-brand .postie-badge--accent`, `.postie-brand .postie-seg__item` and `.postie-brand .postie-panel--raised` still match inside a nested `.postie-working` block, so pebbles and Live chips in the marketing-site cards, the landing ProductPreview and the Power pricing tier render in brand-context colours (charcoal discs, #282627 chip) instead of the working tonal steps the owner approved on the C4L light boards (#DAD8D8 / #C7C4C5 pebbles). Fix at source: add `.postie-working` counterparts (or `:where()`-lower the brand selectors) in AccountPebble.css, StateChip.css, Badge.css, SegmentedControl.css, Panel.css.

    Used instead Left as rendered — no kit-level override (a colour override on a frozen component is a fork). Visible on light: marketing-site/index.html + mobile.html cards, landing-page/index.html preview, the Power tier.

    Resolution fixed at source 2026-09-20T20:46:29Z re-freeze

  2. component-gapui_kits

    ProductPreview on light leaks a ~3px paper crescent at its two top corners: `.postie-preview` paints `--postie-surface` behind a square-cornered charcoal `__chrome`. Fix at source: give `.postie-preview__chrome` the panel radius on its top corners, or paint the card background as `--postie-ground` and the list as surface.

    Used instead Left as rendered on landing-page/index.html (light).

    Resolution fixed at source 2026-09-20T20:46:29Z re-freeze

  3. component-gapui_kits

    A chart component (hourly bar / sparkline) for the dashboard — the brief asks for numbers, a chart and a table that agree, and the frozen set has none.

    Used instead Kit-level stand-in in dashboard/index.html (`.kit-chart`): 24 bars in `--postie-pebble-2` with the agent hour in `--postie-accent`, inside a raised Panel, styled from tokens only. Swap for the component when it exists.

    Resolution Track-2 add-on; token-only stand-in ships

  4. variant-gapui_kits

    MailList `mobile` density: the CSS comment and the approved C4 mobile board describe the first row as raised, but no class implements it.

    Used instead Rows left flat in app/mobile.html; unread dot + weight carry the signal.

    Resolution fixed at source 2026-09-20T20:46:29Z re-freeze

  5. variant-gapui_kits

    Panel needs a theme-resolved tone for the landing feature cards — raised-on-brand on dark, paper tile on light (BRIEF §4a) — from one markup; the specimen switches markup per theme.

    Used instead `[data-theme="light"] .kit-feature` in landing-page/index.html re-enters the working context with tokens only (no component CSS touched).

    Resolution fixed at source 2026-09-20T20:46:29Z re-freeze

  6. token-gapui_kits

    No warning/amber token: the dashboard's Gmail account in a catching-up state and the auth lock-out have no status hue (recorded gap).

    Used instead StateChip `catching-up` (hollow muted dot) and word-plus-figure copy; lock-out uses a disabled tonal Button and a StatTile, no colour.

    Resolution P2 token decision pending owner; stand-in ships

  7. token-gapui_kits

    No error token: the expired sign-in code on auth-screens (get back in state).

    Used instead Field `--error` as frozen: accent-as-text message with a dot, border to ink.

    Resolution P2 token decision pending owner; stand-in ships

  8. assembler-gaptemplates

    delivery-pack-spec.md §2 gives every template folder `index.html · ds-base.js · support.js (optional)` and phase-3-system.md § Ledger says one row per template folder's index.html, but scripts/assemble-pack.py scan_pack() lists every file under templates/ and check_coverage() only lets components/ trio siblings ride on their .html row — so ds-base.js and README.md would be ORPHAN at the gate.

    Used instead explicit rows for ds-base.js (kind template-support) and README.md (kind doc) in this fragment; the collator may fold them into the index.html row if the assembler learns template siblings the way it knows TRIO_SIBLINGS.

    Resolution open — assembler must accept ds-base.js/README.md riding on the template index row or accept their explicit rows; see PA step

Open — named, not built

Listed in the pack's "not delivered by design" block, never silently dropped.

Preview pages are viewing surfaces for the build, not part of the system. This page frames the pack's own files (ui_kits/, applications/, templates/) at their real sizes; the deliverable is the pack, and the canvas is the review surface. It ships with the pack so the owner can open it, and is listed as "not a card" in the coverage table.

Review pair for the green-light: preview-01-components (which lived only on its canvas, CiyL9UCMhtdJf7ktAjG4Rk) together with this page and its canvas above.

The canvas above is now a real Claude Design canvas — the Design runtime copied verbatim from the writer-shared colourways canvas, all thirteen boards in three titled groups (UI kits · Applications · Templates), pan, zoom and per-board expand. Superseded fallback (one standard HTML artifact, boards iframed): V5yQ7GiDzE1CouW4B2cJ7q — left in place.