Skip to main content

Foundry template preview

Phase 1 — design system

The Foundry design system, rendered from shared packages

Everything on this page comes from @nextfoundry/tokens and @nextfoundry/ui — the same packages the storefront consumes. It is the honest current state of the template's design system, not the full product.

Color tokens

Swatches are painted with the CSS custom properties Tailwind exposes for each semantic token; labels show the canonical value from the typed token mirror. Every documented text/background pair is enforced at WCAG AA by a unit test.

Typography

Editorial display — serif, for headlines

Interface sans — the system stack for body and interface text, kept fast by shipping no font files at all.

Muted small text — metadata and captions.

Shape, elevation, and motion

Radius

  • control · 0.5rem
  • surface · 0.75rem
  • pill · 9999px

Elevation

shadow-raised — cards and grouped content
shadow-overlay — dialogs and floating layers

Motion

quick 150ms · gentle 250ms · ease-standard cubic-bezier(0.2, 0, 0, 1). Animations respect prefers-reduced-motion.

Form controls

Specimens rendered for review — nothing on this page submits data.

aria-invalid drives the danger border.

Feedback

Info alerts use the brand wash for neutral information.
Success alerts use the green state tokens.
neutralbrandsuccesswarningdanger

Data

The table lists this repository's actual quality gates; wide tables scroll inside their own region.

CommandPurpose
npm run lintESLint flat config, zero warnings
npm testVitest unit tests (tokens, UI, boundary)
npm run buildProduction builds of both apps
npm run validate:productCustomer product tree boundary scan
npm run scan:secretsSecretlint working-tree scan

Pagination

Static specimen — the links return to this section rather than paging real data.

Loading

Skeletons are aria-hidden and stop pulsing under prefers-reduced-motion.

Dialog

The only client-rendered specimen — a modal is genuine interaction.

Dialog specimen

Built on the native dialog element: focus containment, Escape to dismiss, and page inerting come from the platform. Click the backdrop or the button below to close.

Buttons

Link button — back to top