41 lines
1.6 KiB
Markdown
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.
|