Standard
Introduction & QuickStart
Standard applies 500 years of typographic refinement to your HTML, automatically. Baseline grids. Golden-ratio proportions. Optimal measures. An OKLCH color engine. Dark mode. Print styles. One Astro integration; no configuration.
This page is set entirely by the framework. Every specification printed below — every size, every color value, every ratio — is measured from the live stylesheet as you read it. The manual cannot drift from the system, because the manual is the system, rendering itself.
Zero decisions by default. Knowledge as you need it.
Modern development drowns writers and creators in endless micro-decisions: font pairings, margin scales, color palettes, dark mode edge cases, and layout CSS. Standard takes all of them off your shoulders before you start. You do not need to configure or understand the underlying math to publish dignified work immediately.
Just Write
Run one command. Drop Markdown files into a folder. Every paragraph, heading, and table is mathematically balanced by default.
Pick a Mood
Want a different atmosphere? Switch one word in your config to activate one of the 6 classical European temperaments.
Choose a Blueprint
Need a specialized project? Follow a production recipe from the Cookbook for personal blogs, digital gardens, or landing pages.
Master the Engine
Need custom features? Explore vertical slices, hook zones, and accessible UI primitives only when you actually need them.
Instant Scaffolding via CLI (@stnd/cli)
Bootstrap a complete, production-ready project in seconds with the official scaffolding tool. Pre-configured with the typographic scale, vertical rhythm, and Astro 5 SSR:
npx @stnd/cli new my-projectSelect an architectural template directly with the -t flag:
template: garden (default)
Digital Garden
Exploratory thinking space with markdown notes, backlink network, and sovereign graph navigation.
-t gardentemplate: blog
Personal Blog
Editorial long-form platform with reading time estimation, tags taxonomy, and book-grade reading measures.
-t blogtemplate: landing
Landing Page
Swiss 12-column grid showcase layout with hero section, feature cards, and live typography specimen.
-t landingVertical Slice Generator
Scaffold a hermetic, zero-coupling vertical slice inside any existing project:
stnd module my-featureThe Architectural Cookbook
Rather than isolated code snippets, the Standard Cookbook documents full production topologies, routing manifests, and layout rules for real-world projects:
Recipe 01
Personal Blog Blueprint →
Complete file tree for editorial publishing. Post manifests, automated reading duration calculation, tag filtering, and book-grade reading rhythm.
Recipe 02
Landing Page Blueprint →
Single-page product showcase layout adhering to the 12-column Swiss grid. Hero composition, feature columns, and live computed typographic specimens.
Browse all architecture blueprints in the Cookbook →
The four invariants
Beauty is default
No one should configure margins to deserve good typography. Your mother's recipe should look like it belongs in a prestige cookbook — without her doing anything.
Friction is the enemy
Ten seconds from thought to URL. Speed is a form of respect — for the writer, and for the reader.
The file is yours
Everything is plain text files. Applications are interchangeable readers. If the servers go dark tomorrow, your writing remains intact, legible, and yours.
Sustainable by architecture
Static first, edge logic, minimal JavaScript, boring technology. Efficient code is an ecological position, not a benchmark.
The module system
Every feature is a vertical slice: routes, styles, components, and middleware in one folder, declared by one manifest. Modules register themselves; the core compiles everything in memory.
// modules/my-feature/index.module.js
export default {
id: "my-feature",
routes: [{ path: "/feature", entrypoint: "./routes/index.astro" }],
styles: ["./styles/feature.scss"],
hooks: { "header:top": "./components/Banner.astro" },
};Delete the folder and the feature disappears. The app keeps running. That is the litmus test of modularity — and the whole specification.
The hook system
Modules don't import each other. They publish to named hook zones, and whatever's listening mounts there — neither side has to know the other exists.
hooks: {
"header:top": "./components/Banner.astro", // UI zone — mounts into a page slot
"content:validate": "./hooks/validate.js", // logic hook — reachable via virtual:stnd/hooks
}A hook name resolves to exactly one kind — UI/action zone or logic hook — never both. The loader checks it at build time and fails loudly the moment a module tries to mix them.
Typography
One base size, one ratio. The whole scale follows. Standard uses the silver ratio (1.414) for type and the golden ratio (1.618) for layout blocks. Measured now, on your screen:
Color
You choose an ink, a paper, and one accent. The OKLCH engine derives the rest: surfaces and borders from your paper, semantic states by rotating your ink's hue at equal perceived lightness — so the palette agrees with itself no matter what you seed it with. This page seeds the warm red of a federal standards manual, and every value below is measured from the running stylesheet:
accent — the seed
—
surface
—
border
—
success
—
warning
—
error
—
6 Classical Temperaments & 34 Themes
Rooted in European typographic history, Standard defines six classical temperaments (Garamond, Baskerville, Didot, Caslon, Bodoni, Elzévir) and two modern companions (Modernist, Brutalist).
A single multi-target Sass compiler generates the entire 34-theme suite across five development environments: Astro, Obsidian, Zed, Yazi, and Fish Shell. The chromatic DNA of your published writing matches your local authoring tools without manual synchronization.
Explore the 34 themes and multi-target compiler →
Spacing
One baseline, plain multiples and divisions — no arbitrary magic numbers. Every gap on this page is --space scaled, measured now, on your screen:
Table
A bare <table> — no class, no wrapper:
| Token | Value | Used for |
|---|---|---|
--space | 1× baseline | Default gap between blocks |
--scale | 1× base size | Body text |
--color-accent | seed hue | Links, focus states, emphasis |
Prose
Every other section on this page breaks out to the full sheet. This one doesn't — it sits at --prose-width, the framework's own optimal reading measure (60–75 characters):
Line length isn't a style choice. Past 75 characters the eye loses its place on the way back to the left margin.
A paragraph at reading width, with an inline link, some inline code, and a short list:
- One idea per line
- No decoration without a job
- The measure serves the reader, not the layout
Interface Primitives (@stnd/ui)
Standard provides an unstyled, fully accessible component collection built directly on native browser primitives and framework design tokens. Zero client-side framework runtime, complete keyboard focus trapping, and native backdrop filtration:
Dialog & Alert
Accessible modal dialogs and alert confirmations with native backdrop blur, focus trapping, and Esc dismissal.
Panel & Popover
Flyout panels and floating menus positioned via CSS anchor tokens, auto-dismiss, and canonical borders.
Toast & ContextMenu
Non-intrusive notifications and contextual action overlays respecting --radius-lg and stack indices.
Inspect the complete UI component library →
Manual Adoption
While @stnd/cli is the fastest way to start, Standard can also be integrated into an existing Astro project manually:
npm create astro@latest my-site -- --template minimal
cd my-site
npm install @stnd/core @astrojs/svelte sass-embedded// astro.config.mjs
import { defineConfig } from "astro/config";
import standard from "@stnd/core";
export default defineConfig({
integrations: [standard()],
});That is the entire procedure. The manual documents every package, token, and fatal error. The source is open.
Applications in the field
Standard Garden — a quiet place to think in public. Paste your prose; get a beautiful URL in ten seconds.
Reveal — a sovereign photo workflow and physical darkroom engine for photographers (in active development, discover at reveal.photos).
L'art d'enseigner — an educational platform for homeschooling families in Quebec.
Three applications with radically different domains, one technical foundation. That is the proof the specification asks for.