Files
blueprints/README.md

41 lines
1.6 KiB
Markdown

# blueprints
Deployed at https://blueprints.apoena.dev
Interactive illustrations of UI-pattern **blueprints** — the formal, framework-agnostic
contracts from [`blueprint-ontology`](https://git.apoena.dev) (signature, state machine,
behaviors, invariants, critical performance, failure modes), rendered in a cyanotype
"blueprint" style: monospace, blueprint-blue paper, faint grid, amber annotations.
The first screen illustrates the **List** blueprint and its seven functions —
Display · Scroll · Load · Filter · Sort · Select · Act — as a specimen-under-glass with a
full contract readout, an anatomy/composition map, and the `LoadState` machine.
## Develop
```bash
pnpm dev # frontend on :5173
pnpm build # type-check (vue-tsc) + production build → dist/
pnpm lint # oxlint (pnpm lint:fix to autofix)
pnpm fmt # oxfmt (pnpm fmt:check to verify only)
```
## Stack
- **Vite + Vue 3 + TypeScript** SPA (no backend)
- **Tailwind v4 + DaisyUI** with a custom `blueprint` dark theme (`src/style.css`)
- **oxlint + oxfmt** for lint/format (no semicolons, double quotes)
- Served in production by **nginx** (see `Dockerfile` + `nginx.conf`)
Blueprint content lives as typed data in `src/data/`; the viewer components render it.
Source of truth: the `list` blueprint in `blueprint-ontology`
(`blueprints/list/README.md`, `list.als`, `list.test.als`).
The original single-file static illustration is archived at
[`archive/list-illustration.html`](archive/list-illustration.html).
## Deploy
Pushes to `main` are picked up by Coolify at https://platform.apoena.dev and deployed to
https://blueprints.apoena.dev.