Commit graph

40 commits

Author SHA1 Message Date
a302d81f14
docs layout: wrap sidebar+article+toc in <section data-layout="docs">
Docs and vault layouts need a wider grid container for the 3-column
layout (sidebar nav + article + TOC). Wrapped in <section> — a body
child that gets container rules but overrides to --docs-max-width.

Updated CSS selectors: aside:first-of-type → nav[data-nav="sidebar"]
to match the semantic HTML (sidebar IS navigation, not an aside).
2026-04-10 21:05:31 +02:00
8ea2358412
layout tokens: all dimensions in 01-asw.css, 08-layout.css only uses var()
New tokens: --width-prose (65ch), --width-report (72ch), --container-padding,
--grid-gap, --grid-gap-tight. Layout layer no longer picks values —
edit 01-asw.css to change any layout dimension.
2026-04-10 20:57:57 +02:00
593b40fc15
fix: import open-props/media.min.css — custom media queries were not resolving 2026-04-10 20:45:01 +02:00
e6175b69e0
move container rules from 02-semantic to 08-layout — widths are layout, not semantics 2026-04-10 20:40:31 +02:00
82754338a9
fix: remap CSS container rules from <main> to <article>
body > nav/header/article/footer all get container alignment
(max-width, auto margins, responsive padding). Replaces all
body > main selectors to match the new landmark structure.
2026-04-10 20:39:13 +02:00
c2261bfc9f
drop <main>, use <article role="main"> — bold landmark structure
body direct children: <nav>, <header>, <article role="main">, <footer>
- <nav>: site navigation (own landmark)
- <header>: page identity — title, author, date, metadata
- <article role="main">: content (screen reader gets landmark via role)
- <footer>: site footer

No <main> wrapper. Fewer tags, clearer signal.
Header block defined per-layout (prose gets eyebrow/date, docs gets hgroup).
Content block defined per-layout (docs adds sidebar <nav> + <aside> TOC).
2026-04-10 20:33:25 +02:00
169374e2fd
landmark structure: header/main/footer as direct children of body
Per Pico CSS landmark pattern and HTML5 spec:
- Site <header> with <nav> moved to baseof.html
- Site <footer> moved to baseof.html
- All section layouts (single, list, docs, paper, vault, index)
  now only define <main> content — no duplicate nav/footer
- Article <header> stays inside <article> (different semantic role)
2026-04-10 20:17:50 +02:00
2df2c67018
complete oklch migration: zero named palette refs remain
- 01-asw.css: 20 new tokens (14 --syntax-*, 6 utility: print, absolute, high-contrast)
- Layers 02-09: all 30 TODO refs replaced with semantic/syntax tokens
- Zero --gray-N, --green-N, --blue-N, --red-N, --yellow-N in layers 02-09
- Palette-hue knob now controls entire site. Syntax highlighting uses fixed oklch hues.
2026-04-10 20:00:47 +02:00
d9641b0485
build: updated compiled CSS + palette-test.html demo page 2026-04-10 19:44:11 +02:00
ea51dbd7cf
M3: dead code purge + layer refs → semantic tokens
Dead code removed:
- 05-utilities: grid-2/card-grid/stats block (superseded by 08-layout)
- 02-semantic: dialog min-width:100% (conflicted with 03-components)
- 02-semantic: hgroup p dead font-family, redundant nested list margin
- All layers: [ai-disclosure] → [data-ai-disclosure] (bug fix)
- table.striped → [data-table="striped"] (classless alignment)

Ref cleanup: 12 --gray-N/--green-N/--blue-N replaced with semantic
tokens. 24 refs marked TODO (syntax highlighting needs --syntax-* aliases).
2026-04-10 19:44:05 +02:00
9b1dcdab6e
M3: migrate 01-asw.css to oklch --color-N palette system
Surfaces and text now use Open Props --color-1 through --color-16.
Change --palette-hue to retheme entire site from one value.
Links stay fixed blue (oklch hue 250). State colors (ok/warn/error/info)
use harmonized oklch at fixed hues — same lightness/chroma, independent
of palette. Light mode flips the --color-N mapping.

Removes all color-mix() accent variants — direct oklch values instead.
2026-04-10 19:43:55 +02:00
376bfb2364
cleanup: replace 37 hardcoded values with token references
Across 6 layer files: 1px→var(--border-width), 1rem→var(--space-4),
2rem→var(--space-6), etc. Intentionally left: 3px accent borders,
graduated chart spacing, em-based sub/sup ratios.
2026-04-10 19:27:46 +02:00
bffb86338d
restructure: main.css is the manifest, 01-asw.css is the framework
- asw.css → main.css (just imports, no theming :root)
- 01-tokens.css → 01-asw.css (this IS the ASW design system)
- Removed empty :root {} theming block
- Updated deploy.sh PostCSS path
2026-04-10 19:27:39 +02:00
5deaa22e38
Port head partials: SEO, OG, JSON-LD, AI disclosure, tag-nav
- layouts/partials/head.html: full <head> partial with meta partials + CSS pipeline
- layouts/partials/meta/seo.html: canonical URL + robots directives
- layouts/partials/meta/og.html: Open Graph + Twitter Card meta tags
- layouts/partials/meta/ai-disclosure.html: AI content disclosure (EU AI Act)
- layouts/partials/meta/json-ld.html: Schema.org JSON-LD structured data
- layouts/partials/tag-nav.html: site-wide tag cloud partial
- layouts/_default/baseof.html: simplified to use partial head.html
- layouts/_default/single.html: removed inline head block (now in head.html)

Verified: canonical, robots, OG tags, ai-content-disclosure on live pages.
96 pages build clean.

Closes: asw#15
2026-04-10 18:42:21 +02:00
da1d02ccd1
Port vault section (5 pages) and docs section (11 pages)
- content/vault/: _index.md, diff.md, session.md, status.md, tasks.md, wikilinks.md
- content/docs/: _index.md, introduction, tokens, reset, semantic-html,
  components, data-attributes, navigation, layouts, charts, chroma, accordion-dialog

96 pages build clean (was 36). Docs use sidebar nav + TOC layout.
Vault uses sidebar with section fallback (no vault menu configured yet).
URLs fixed: playground refs → asw.trentuna.com.

Closes: asw#12, asw#9
2026-04-10 18:40:50 +02:00
cbe44d845c
Port section layouts (docs, paper, vault) and papers content
- layouts/docs/single.html: docs section layout with sidebar nav + TOC
- layouts/paper/single.html: essay layout with byline, abstract, tags
- layouts/vault/single.html: vault layout with sidebar nav + front-matter prev/next
- content/papers/on-semantic-html.md: 'On Semantic HTML as Agent Interface'
- content/papers/on-sessional-continuity.md: 'On Sessional Continuity'

All layouts use partial nav.html for dynamic menus. Paper layout
uses data-paper, data-abstract, data-byline, data-role=tag-cloud.
36 pages build clean, paper pages live at /papers/.

Closes: asw#14, asw#10
2026-04-10 18:40:12 +02:00
267a7b1bc8
Port homepage, posts section, shortcodes; update hugo.toml menus
- content/_index.md: homepage with site description and callout examples
- content/posts/asw-vocabulary.md: ASW data-* attribute vocabulary reference
- content/posts/getting-started.md: ASW-Hugo setup guide (updated URLs)
- hugo.toml: add params, taxonomies, menus (main + docs sidebar), ToC settings
- layouts/partials/nav.html: dynamic Hugo menu rendering (was hardcoded)
- layouts/shortcodes/callout.html, wikilink.html: ported from asw-hugo theme

Closes: asw#17, asw#13, asw#11, asw#16
28 pages build clean, deploy confirmed at port 8000.
2026-04-10 18:38:31 +02:00
4f2b0a67e1
frontmatter spec + dorveille tags + dynamic AI disclosure in templates
- docs/frontmatter.md: canonical frontmatter reference for all content types
- dorveille.md: add tags, ai-disclosure fields
- single.html: AI meta tags now read from frontmatter instead of hardcoded
2026-04-10 18:28:03 +02:00
5a8c39c3a0
fix: remap gray-13/14/15 to Open Props range (0-12)
ASW tokens referenced --gray-13, --gray-14, --gray-15 which don't
exist in Open Props (stops at --gray-12). All text and surface
colors resolved to nothing — invisible text in light mode.

Remap: 13→10, 14→11, 15→12.
2026-04-10 17:57:09 +02:00
20f2974cfd
test: final verification of push-to-render 2026-04-10 17:53:53 +02:00
8a9cfc22bb
fix: CSS layers were silently dropped by postcss-import
postcss-import requires ALL @import statements before any rules.
The :root {} override block between Open Props import and layer
imports caused all 11 layer files to be silently dropped — only
Open Props variables made it through (29KB of definitions, zero
actual styles).

Fix: move :root overrides after all imports. Add explicit PostCSS
build step to deploy.sh (Hugo Pipes runs from a temp dir that
breaks relative paths anyway).

Result: 102KB compiled CSS = Open Props + all ASW layers.
2026-04-10 17:53:17 +02:00
f8821c226d
Switch to pre-built CSS pipeline: postcss before Hugo, no pipe subprocess 2026-04-10 17:52:03 +02:00
e8f5e78881
test: bash no login shell 2026-04-10 17:51:24 +02:00
18ddd0d7ea
test: webhook env fix for HOME 2026-04-10 17:50:13 +02:00
520a310219
fix: deploy lock, cleanup test commits 2026-04-10 17:49:26 +02:00
b2b5fefe1c
readable HTML: drop --minify from deploy (CSS still minified via PostCSS) 2026-04-10 17:48:39 +02:00
21d5e7fecb
test: final push-to-render verification 2026-04-10 17:47:07 +02:00
26aac3d27d
test: clean push to verify webhook 2026-04-10 17:45:24 +02:00
1bec998296
Remove test artifact from dorveille content 2026-04-10 17:44:30 +02:00
21e5823e98
test: webhook rebuild with env fix 2026-04-10 17:43:36 +02:00
9818749780
test: end-to-end webhook rebuild test 2026-04-10 17:41:26 +02:00
7e02901597
Wave 2: content fixes, deploy pipeline, layout refinements
- dorveille.md: add ai-model/ai-provider frontmatter, restore mark tags
- hugo.toml: goldmark.renderer.unsafe=true (mark/abbr support)
- layouts: extract nav partial, fix JSON-LD, simplify list/index
- deploy.sh: push-to-render build script (webhook-receiver triggers it)
- render-footnotes.html: class-free footnote hook (staged for Hugo upgrade)
2026-04-10 17:41:21 +02:00
d0c6075b0f
test: webhook with ALLOWED_HOST_LIST fix 2026-04-10 17:40:51 +02:00
288b617fc8
test: end-to-end push-to-render via webhook 2026-04-10 17:39:35 +02:00
433c216fb1
test: e2e webhook trigger 2026-04-10 17:37:53 +02:00
33d8b2c0ed
chore: wire push-to-render pipeline 2026-04-10 17:36:42 +02:00
f3795628ae
test: verify push-to-render hook 2026-04-10 17:27:17 +02:00
4a7700c74f
Fix duplicate title on index page, update hook 2026-04-10 17:25:18 +02:00
880a17f33a
Add dorveille article and full Hugo site scaffold
- content/dorveille.md: 'On the Craft of Invisible Systems'
- assets/css/: ASW layer system (00-reset through 09-landing + Open Props)
- layouts/: baseof, single, list, index — semantic HTML, no classes
- hugo.toml: baseURL asw.trentuna.com, PostCSS + minify pipeline
- package.json: postcss-import, postcss-custom-media, cssnano
- .gitignore: excludes public/, node_modules, build artifacts

Site builds to public/ via hugo --minify. nginx serves public/ statically.
2026-04-10 17:23:51 +02:00
a899f13ae6 Initial commit 2026-04-10 14:57:18 +00:00