asw/openspec/changes/asw-v01-release/proposal.md
B.A. Baracus a433b935fa
asw-v01: drop OpenProps, native CSS tokens system
- Replace OpenProps (~25KB) with native src/tokens.css (~40 tokens)
- Remove open-props, postcss-import from package.json + postcss.config
- Update main.css: remove @import open-props/*, import ./tokens.css
- Rewrite 01-tokens.css header to reference tokens.css
- All raw OpenProps values (font stacks, sizes, weights, colors,
  easings, durations, shadows, radii, animations, media queries)
  now defined natively in tokens.css
- Build uses cat concat + cssnano (no postcss-import needed)
- Build output: 78KB minified (saved ~24KB from OpenProps removal)
2026-06-07 10:43:34 +02:00

45 lines
3.2 KiB
Markdown

## Why
ASW has been in experimental development — a working CSS framework buried inside a Hugo documentation site, with 7 engine packs, lab experiments, a PostCSS build pipeline, and SSI-based examples that don't work standalone. The framework itself is solid (semantic HTML + data-attributes), but it's not publishable as `v0.1` because:
1. **Bloat**: It ships OpenProps (~25KB) while only using ~40 of 500+ tokens
2. **No working templates**: The examples directory uses SSI (`<!--#include virtual=...-->`) — they don't open in a browser
3. **Obscured core**: The framework lives in 13 CSS layers, buried under Hugo templates, packs, and experiments
4. **No clear dev path**: A new developer lands and sees Hugo + PostCSS + packs and doesn't know what ASW *is*
0.1 is the "minimum viable framework" — just the CSS, a handful of working templates, and a clear README. Everything else stays in the repo for 0.2 (documentation site) and 0.3 (engine packs).
## What Changes
- **Drop OpenProps dependency** — replace with hand-authored native CSS token system using `oklch()` and relative color syntax. Removes `open-props` from `package.json`, removes `postcss-import` of OpenProps. Framework goes from ~25KB baseline to ~4KB.
- **Prune repo surface** — move `packs/`, `src/lab/`, and `site/` into `archive/` directory. No deletion. Everything stays in git.
- **Simplify build** — PostCSS stays for minification (`cssnano`), but no OpenProps import. `postcss-import` may become optional.
- **5-6 working standalone HTML templates** — semantic HTML, flexbox via `data-layout` attributes. No SSI. No Hugo. Open in a browser and they work.
- **New README + CHANGELOG** — "link this one CSS file" documentation. Roadmap forward.
- **Vendor the used OpenProps values** — copy the ~40 tokens we actually use into our token file (MIT license, legally clean).
## Capabilities
### New Capabilities
- `native-tokens`: The design token system — oklch-based colors, size scales, spacing, typography. Zero external dependencies. Powers all ASW styling.
- `flexbox-layouts`: Layout system via `data-layout` attributes. Pure flexbox. `data-layout="row"`, `data-layout="col"`, `data-layout="spread"`, `data-layout="center"`, `data-layout="stack"`, etc.
- `reference-templates`: Standalone HTML files that demonstrate the framework — landing page, docs page, prose/article, stats/dashboard, vault/tasks page.
### Modified Capabilities
*(No existing spec-level requirements are changing — we're replacing the token foundation and adding new layout/template capabilities)*
## Impact
| File / Directory | Action |
|---|---|
| `package.json` | Remove `open-props` dependency |
| `postcss.config.js` | Remove `postcss-import` (no longer needed) |
| `src/main.css` | Remove OpenProps `@import` lines, update layer imports |
| `src/layers/01-tokens.css` | Replace OpenProps primitives with native oklch values |
| `dist/asw.css` | Rebuild — drops from ~28KB to ~6KB |
| `packs/` | Move to `archive/packs/` |
| `src/lab/` | Move to `archive/lab/` |
| `site/` | Move to `archive/site/` |
| `examples/` | Replace SSI-based examples with standalone templates |
| `README.md` | Rewrite for 0.1 — "link this one file" |
| `CHANGELOG.md` | New file |