Changelog

Changelog.

Dated release notes for the Dash.fi design system. Every entry has a date and a one-sentence summary — versioning is a trust signal.

  • Roadmap
    v1.0 — planned

    Production deploy to brand.dash.fi on Vercel. Requires publishing @dashfi/svelte to an internal npm registry (see DEPLOY.md §4 Option A) and pointing the CNAME at cname.vercel-dns.com. Plus the Figma library ships alongside — variables, text styles, and the canonical-10 component variants per FIGMA_HANDOFF.md, then Code Connect templates wired up for the lib's Svelte sources.

  • 2026-07-16
    v1.3.0Latest

    UI/UX facelift. Reveal-on-scroll and count-up motion actions (src/lib/utils/motion.ts) plus .db-reveal / .db-press utilities; route view transitions (90ms out / 150ms in); a sticky scroll-condensed header with an animated active-nav underline; per-character hero slide-up; command-palette entrance + selection-highlight; copy-confirm cross-fade; theme-toggle icon swap; animated tab/sidebar indicators; :focus-visible rings across the chrome. Everything is gated behind prefers-reduced-motion and falls back safely when IntersectionObserver is unavailable. The homepage pill, "Recent" band, and footer badge now read from a single releases.ts source.

  • 2026-07-16
    v1.2.0

    Claude Code integration refresh (plugin v0.4.0, MCP server v0.5.0). MCP resources (dashbook://components, .../{slug}, dashbook://foundations/{slug}) and Zod outputSchemas that carry the implementation handoff routing — the same object the tools and JSON API return (§8.3 five-surface parity). ARD discovery manifest at /.well-known/ai-catalog.json whose application/mcp-server-card+json entry resolves to a real server-card document rather than the execution endpoint. Origin validation on /mcp — the request's actual same origin plus a configurable trusted-client allowlist. Dropped the unused prompts capability.

  • 2026-07-16
    v1.1.0

    Spec↔lib drift audit + Design → Code handoff routing (MCP server v0.4.0, plugin v0.3.0). pnpm spec-audit compares each component spec's recorded light/dark token values against the pinned @dashfi/svelte theme (--write reconciles Dashbook only, never upstream; --strict gates advisory coverage/trace gaps) — 0 stale resolved values. Every component response now carries a machine-readable implementation object routing Svelte receivers to the exact shared import and non-Svelte receivers to product_port_to. Reconciled token drift (e.g. Button dark --color-brand-foreground = #000000).

  • 2026-05-18
    v1.0.0

    First declared-stable release. 60 components and 17 patterns across 7 categories now ship with full anatomy (dimensions, tokens, variants, composition rules, non-features, props, porting checklist). All 9 foundation pages carry both light and dark hex values inline. Patterns now cover Shells, Data, Forms, Confirmation, States, Layout, and Architecture — including page-level scaffolds via the new Chrome category.

    MCP server bumped to v0.3.0. 17 tools across product_* and marketing_* namespaces, plus shared version + changelog. New product_get_logo (thin proxy so agents introspecting the product namespace still see the wordmark) and product_get_page_template (composed scaffolds for auth-signin / auth-signup / auth-2fa / auth-magic-link / auth-reset). Every product_* tool description now carries a cross-namespace boundary signal — agents see "wordmarks live in marketing_*" at tool-discovery time, not just in skill prose. marketing_get_card_art and marketing_get_logo accept format: 'svg' | 'png' (PNG is base64-encoded for transport).

    Distribution. Claude Code plugin live at trlmkb/dashbook — install via /plugin marketplace add trlmkb/dashbook + /plugin install dashbook@dashfi. Cowork plugin distribution for org-wide auto-install. claude.ai Connector for web users (https://dashbook.vercel.app/mcp). New /use runbooks — /use/dev, /use/designer, /use/marketer, /use/maintainer — workflow-oriented per-audience how-to.

    Static JSON + asset API. /api/components.json, /api/components/<slug>.json, /api/foundations/{color,typography,spacing}.json (tokens incl. light + dark hex pairs and font webDelivery URLs), /api/logo/<variant>/<preset>?format=svg|png, and /api/card/<variant>/<slot>?format=svg|png. All CORS-open, 24h cached, no auth.

    Card art configurator at /brand/card — live configurator for the canonical Jade card variant, spec-verified against Mastercard's MDES layout (A=82, B=57, C=1372, D=283, E=459 — captured directly from MC's developer docs via Playwright). One-click MDES bundle download packs all 4 upload slots (SVG + PNG) + composite preview + README in a single zip, replacing an 8-click process for brand-ops. ?safeZone=true overlays MC's overlay regions for design validation.

    IA invariants locked in. Jade (#2B605C) is the product brand; cobalt (#354CEF) is marketing-only (with one exception: Button secondary). The skill prose ships an explicit "Wordmark is single-source" invariant after a consumer agent shipped an invented wordmark on a 2FA page. Boundary signals are baked into MCP tool descriptions so the cross-namespace rule reaches agents at tool-discovery time.

  • 2026-05-11
    v0.9.0

    Press extras + Phase 8. The Press & Partners page got a Partner kit — three Powered-by-Dash badge variants (jade on cream · white on ink · mono transparent), two customer logo lockup examples, and a do/don't grid of eight co-branding rules. The Powered-by badge was redesigned with caption hierarchy (60% opacity), jade .fi dot accent, an optional href turning the whole badge into a real link with hover inversion + ↗ arrow nudge, and three sizes (sm / md / lg). All /press badge previews now link to dash.fi.

    Real legal disclosures sourced from dash.fi/legal — replaced invented PCI-DSS / SOC 2 claims with accurate ones: Dash.fi Technologies Inc. + SF mailing address, issuing banks TransPecos Banks SSB + Patriot Bank N.A. (Mastercard), correct FDIC language, Visa Global Services Inc. (NMLS 181032) + Currency Cloud (UK FCA FRN 900199 / CFSB US) payment services, FinCEN + FINTRAC MSB registrations, real (888) 733-0041 support hotline. The Leadership section was prototyped and removed per direction — not appropriate for the Press page.

    ⌘K full-content search. The palette now indexes every nav route + 60 components + 6 patterns + brand / foundations / dev subpages. Substring-positional scoring (title hit dominates), results grouped by section with per-group counts, full keyboard nav (↑↓ ↵ esc), mark highlight on the matched substring, hover sync, scroll-into-view on active row, footer with keybinding hints + total count.

    Changelog polish. Filter chips (All / Major + minor / Roadmap), a "Latest" badge on the current stable, anchor IDs on every entry, version chip wrapped in a self-link with hover inversion. scroll-margin-top so deep links land below the header.

    PreviewCanvas Auto mode. Every preview canvas now defaults to "Auto" — syncs with the global page theme. Toggling Light or Dark detaches that canvas into manual override; clicking Auto again re-syncs. 200ms color/background transition so the auto-flip feels designed.

    Deploy prep. vercel.json at the repo root (build command, output dir, immutable caches for fonts + assets + _app/immutable, security headers, cleanUrls). DEPLOY.md ~140 lines documenting Vercel setup, DNS for brand.dash.fi, the lib-distribution choice (publish vs vendor), local pnpm preview smoke test, rollback, pre-deploy checklist (incl. compliance review for the legal copy), post-deploy verification.

  • 2026-05-11
    v0.8.0

    Foundations completed. Four missing subpages built — /foundations/elevation (2-shadow philosophy, hairlines carry depth), /foundations/accessibility (WCAG 2.2 AA targets, focus ring spec, contrast tokens with prefers-reduced-motion live demo, screen-reader patterns), /foundations/data-viz (tabular numerics, semantic colors, 5-series chart palette, Intl.NumberFormat patterns, EnhancedTable for ledger data with 8-row live preview), /foundations/currency (USD/EUR/GBP/JPY locale-aware rendering, formatCurrency helper, compact rendering, edge cases). All 9 Foundations subpages live.

    Developers section rewritten for the actual internal-only Nx-monorepo consumption pattern. Lock-icon "Internal only" banner. Four numbered config steps — workspace:* declaration → pnpm install + Nx serve → Tailwind preset import → Vite ssr.noExternalapp.css entry. 60-row stability matrix driven from components.ts. "Add a new component" recipe pointing at the lib. Contributing rules. Four link cards. New subpage /developers/figma surfacing Figma library status with token tables and links to the handoff docs.

    Press layout fix. Switched from a hard-coded <div class="page"> + <Sidebar /> to <InnerPage section="/press" wide> + <PageHeader> — the old layout left a 222px sidebar ghost column when no nav children existed.

    Lib-wide orange shift — destructive / warning color moved from #FF5F00 (HSL 22 100% 50%) to #FF4000 (HSL 15 100% 50%). Updated in app.css, PreviewCanvas.svelte, custom Shiki theme, lib's global.css (3 HSL declarations), and the /foundations/data-viz semantic-colors row. Lib rebuilt; cascade reaches every preview canvas + the destructive button variant lib-wide.

    Accent color feature. Per ACCENT_FEATURE.md. The AssetConfigurator gets a Customize accent color checkbox with three options — Match parent, Dash.fi yellow (#EBFF00), or Custom hex. Live preview updates the .fi dot in the wordmark or the inner d glyph in the app icon. Filename + bundle ZIP entries get an -accent-{yellow|hex} suffix. LogoMark.svelte accepts an accent prop (backward-compatible). Two new tiles on /brand/logoWordmark · Yellow accent and App icon · Yellow glyph — both render #EBFF00.

    Figma library prep for Phase 7. Two complementary docs at the repo root: FIGMA_HANDOFF.md (721 lines, executable step-by-step by a designer authoring the Figma file — 8-page IA, three variable collections, 8 text styles, canonical-10 component variant trees, 50 stub specs, Code Connect templates, designer checklist, 4 open questions); and FIGMA_INTEGRATION_RULES.md (complementary rules doc for engineers using figma-desktop MCP to generate dashbook-compatible code from Figma designs — Figma-element-to-component cheat sheet, token mappings, "what NOT to do" guardrails). Actual Figma authoring happens in a separate Claude Code instance with dashfi-team auth.

    Type-check is now 0 errors (was 20 mid-cycle). Production build passes clean. PLAN.md kept in sync after every task — §5 IA flips Foundations to , Developers to ; §9 records every cross-cutting fix; §17 adds the plan-maintenance rule.

  • 2026-05-11
    v0.7.0

    Patterns library live — six starter recipes for the screens we build over and over. Transaction list with search + facet filters + status pills. Metric card grid for dashboards. Destructive confirmation flow with AlertDialog. Empty-zero state with primary CTA. Settings section with rhythm-locked rows. Card detail with two-column layout, status pill, limit progress, reversible/destructive action ordering. Each pattern includes Preview · Code · Rationale · Variations. New PatternLayout chrome and a categorized index at /patterns. Patterns sidebar shows up everywhere inside /patterns/*.

    Also a wave of pre-existing prop bugs cleaned up: Pill page switched from invented positive/negative/neutral types to the real base/info/success/warning/danger; AlertError preview now passes title/description/onRetry instead of children; MultiSelect uses bind:selected; PhoneInput now passes the required allowedCountryCodes; TelInput preview has its required composite value shape. Lib-side fixes: Sheet's body-style cleanup now guards on typeof document so static prerender succeeds; DrawerTitle/Description switched from bind:ref to bind:el to match vaul-svelte's typed API. Type-check is now 0 errors (was 20).

  • 2026-05-11
    v0.6.0

    Asset downloader live on /brand/logo and /press. New <AssetConfigurator> component — pick color from preset palette (jade, ink, cream, white, on-jade, on-cobalt, etc.) or a custom hex; size at 32 / 64 / 128 / 256 / 512 / 1024px or custom; format SVG / PNG / JPG; quality 1x / 2x / 3x for raster. Live preview re-renders as you configure. Filename resolves to dashfi-logo-jade-256px-2x.png. Raster output generated client-side via canvas. "Download bundle" ships every preset variant as SVG + 256 / 512 / 1024 PNG in a single .zip — packed inline (no deps) with a tiny store-mode ZIP encoder. Press page also got real content — media contacts, legal disclosures.

  • 2026-05-11
    v0.5.2

    Component pages got a Docs tab with a structured PropsTable — Prop / Type / Default / Description, with required and bindable badges. Filled tables for all 60 components by reading the lib source. Also: custom Shiki theme — keywords in jade, strings in cobalt, numerics in orange, Svelte directives picked out in orange italic. Light + dark themes both built from the canonical brand palette.

  • 2026-05-10
    v0.5.1

    Fixed Code tab on every component page. The page-level const code variable was being shadowed by the {#snippet code()} declaration — inside the snippet, code resolved to the snippet itself, so <CodeSnippet code={code}> received a function instead of the source string. Bulk-renamed the page variable to example across all 60 component pages.

  • 2026-05-10
    v0.5.0

    Phase 5 — full component coverage. Added 24 more pages: Multi Select, Phone Input, Tel Input, Date Range Selector, Range Calendar, Form, Alert Error, Indicator, Item, Logo, Merchant Logo, Flow Lines, Magnetic Hover, Drawer, Fullscreen Dialog, Hover Card, Toast (Sonner), Support Modal, Command (⌘K), Sub Navigation, Table, Enhanced Table, Data Table, Table Filters. 60 components live — full lib coverage.

  • 2026-05-10
    v0.4.1

    Components section now has a persistent left sidebar — sticky list of all 36 components grouped by category, active item indicated by a brand-color left border. "All components" link at top. Visible on the index and every component page.

  • 2026-05-10
    v0.4.0

    Phase 4 — 28 new component pages. Added Accordion, Alert Dialog, Breadcrumb, Calendar, Checkbox, Code Block, Collapsible, Dialog, Dropdown Menu, Empty, Label, Linear Loader, Loader, Pagination, Pill, Popover, Progress, Radio Group, Scroll Area, Select, Separator, Sheet, Skeleton, Spinner, Textarea, Toggle, Toggle Group, Tooltip. Index now groups by category with stability badges. 36 components live (up from 8). Beta-status flag used for components without upstream Storybook coverage.

  • 2026-05-10
    v0.3.3

    Button variants refreshed across the lib (production app picks this up too). default is now ink #25261D (was pure black); destructive is now bright orange #FF5F00 (was monochrome black); secondary is now cobalt #354CEF (was duplicate of outline). brand stays jade. Cascade: Alert destructive + Badge destructive now read as orange too. Lib link switched from file: (snapshot) to link: (live symlink) so future lib changes hot-reload without reinstall.

  • 2026-05-10
    v0.3.2

    Two more Phase 3 fixes. (1) Bai Jamjuree font — replaced the broken @import URL with explicit @font-face per weight (400/500/600/700) pointing at @fontsource woff2 on jsDelivr. (2) Lib component variants now render — @theme color tokens are now direct hex values (instead of hsl(var(--*)) wrappers that resolved invalid outside .preview-canvas). Dark mode flips via cascade.

  • 2026-05-10
    v0.3.1

    Fixed two Phase 3 issues. (1) Pages without sub-nav (Components, Patterns, Developers, Press, Changelog) now render full-width — InnerPage detects missing sidebar and skips the grid. (2) Lib components (Button, Badge, etc.) now render with correct foreground colors — added the full lib-expected color taxonomy (--color-primary-foreground, --color-brand-foreground, --color-secondary, --color-input, etc.) to Tailwind @theme.

  • 2026-05-10
    v0.3.0

    Components live. Real @dashfi/svelte components rendered in scoped preview canvases (light + dark) with multi-tab pages — Preview · Code · Anatomy · Accessibility · Changelog. First 8 stable: Button, Badge, Card, Input, Alert, Avatar, Tabs, Switch. Components index grouped by category with stability badges.

  • 2026-05-10
    v0.2.2

    Full base-palette restructure. Promoted all marketing colors to --dash-* primitives (13 named tokens). Marketing --m-* tokens are now aliases that reference the base. Added --dash-cobalt-deep. Resolved --m-warm-fg hex collision with --dash-graphite. Gradients now reference base tokens.

  • 2026-05-10
    v0.2.1

    Restored named brand tokens — --dash-ink, --dash-graphite, --dash-graphite-soft, --dash-yellow-glow. Surfaced on Foundations / Color as a primitive layer between Product and Marketing.

  • 2026-05-10
    v0.2.0

    Brand section live — Logo (with downloads + clearspace), Color story, Typography (specimens + scale + license), Voice (principles + tone matrix + before/after examples), Motion (live signature animations), Photography, Iconography. Foundations expanded with Typography, Spacing, Radius, and Motion technical references.

  • 2026-05-10
    v0.1.0

    Dashbook bootstrapped — public chrome (header, sidebar, footer, theme toggle, ⌘K), tokens wired from the canonical handoff, Foundations / Color page live.