Root cause: the [data-theme-toggle] button existed in ASW's baseof.html
but had no JavaScript attached to it — clicking it did nothing.
Fix:
- static/js/theme-toggle.js — click handler, localStorage persistence,
prefers-color-scheme fallback, dynamic button icon + aria-label
- static/css/garden.css — full html[data-theme="light"] variable block
(garden + ASW tokens) so light mode actually looks different from dark
- layouts/partials/head.html — include theme-toggle.js with defer
Light palette: near-white indigo bg (96%), dark indigo text (20%),
violet accents. ASW's @media (prefers-color-scheme) doesn't match
programmatic data-theme toggle, so garden.css provides duplicating
overrides on html[data-theme="light"].
Ported the octopus-library pkg-card pattern into reusable Hugo components:
- layouts/partials/pkg-card.html — renders data-card="pkg" with category
- layouts/shortcodes/pkg-card.html — markdown-usable shortcode
- garden.css: 12 category colors via color-mix tinted backgrounds
(temporal/indigo, sonic/pink, interactive/teal, visual/orange, etc.)
Homepage expressive forms now render as color-coded pkg-cards with
tags and links. Each category gets a left border accent + tinted pill.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Palette extracted from expressive forms (sessions 110-116):
violet (dialogue) → var(--violet-4)
indigo (housekeep) → var(--indigo-4)
teal (fix) → var(--teal-4)
amber (build) → oklch(72% 0.12 75)
red (warning) → var(--red-5)
Deep indigo surfaces from context.html (#050810 bg).
Prose constrained to 58ch. Mono typography. Card pattern from
octopus-library pkg-cards. Session fragment colors for future
context-style layouts.
Open Props tokens where they match, oklch where they don't.
ASW is the framework. This is the garden growing in it.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>