5 Commits

Author SHA1 Message Date
Alex Dunmow
d7d7e1a7a3 refactor: replace hand-rolled utility CSS with Tailwind classes (host build now scans theme templates)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 17:54:28 +08:00
Alex Dunmow
ca4e132f41 fix(theme): drive responsive layout from theme-owned CSS
Host Tailwind JIT does not scan theme templates, so responsive grid/hero
utilities (sm:/md:/lg:grid-cols-*, min-h-screen, arbitrary values) are
dropped and multi-column layouts collapse to one column. Ship the
load-bearing responsive layout as compiled theme CSS and point the
override templates at it. Layout only — colours stay on semantic tokens.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 17:40:22 +08:00
Alex Dunmow
85d95d0545 fix(kindergarten): repair hero, grids, empty media + mobile whitespace
Remediate broken layout on the demo home page (persona intact):

- Hero rendered with no height: it relied on min-h-screen /
  responsive Tailwind that the host JIT drops on a cold provision.
  Drive hero sizing + type through compiled .kg-hero* CSS classes
  (input_css_append is compiled every build). Mascot repositioned to
  bottom-center behind readable content; confetti/ABC/reduced-motion
  fallback preserved. All builtin field reads unchanged.
- Landing header was position:absolute and overlapped the feature
  grid when the hero collapsed -> switch to the default's in-flow
  sticky header (collision gone).
- feature-grid columns never formed (lg:grid-cols-3 not compiled) ->
  route through compiled .kg-cols/.kg-cols-3 media-query grid.
- Empty art-wall polaroids ballooned into large blank squares ->
  graceful 4:3 capped placeholder with a playful crayon wash.
- Define .kg-section (was only in the dead assets/style.css, so
  persona sections had no padding) and add a consistent .kg-sect
  rhythm; trim oversized section padding.
- Alphabet strip now a single scrollable row (was flex-wrap) so the
  sticky header stays compact on mobile.
- Mobile: all layout-critical grids are compiled media-query CSS
  (mobile-first, 1 col), no fixed widths > viewport, tap targets ok.

No .reveal/scroll-hide pattern in this theme; whitespace was real
layout void. Colors stay semantic tokens; check-safety 32 checks OK.
No version bump.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 17:26:20 +08:00
Alex Dunmow
df6ed78281 feat(kindergarten): Wave A theme lane (WO-TF-019) — 49 overrides, 7 templates, GO-BIG mascot hero
Preschool / daycare identity: crayon borders, sticker badges, confetti, and a
dependency-free bouncing-mascot + confetti-canvas hero showpiece (hero/landing
only, lazy-init, prefers-reduced-motion honored, static no-JS fallback).

- All 49 mandatory builtin overrides (OVERRIDE-CONTRACT §1), field-correct
  against the frozen cms builtins, re-skinned to the crayon design system.
  Legacy button (label/link/style) and card (text/media) field reads reconciled.
- 7 page templates: default, full-width, landing, article, blog-index, contact,
  auth — standard header/main/footer slots, dotted-paper chrome, dual-mode.
- Blocks reworked: mascot_hero/big_cta/gallery_of_art/numbers_counter/
  storybook_quote/footer converted to builtin overrides; 4 persona blocks kept/
  added — alphabet_strip (array-shaped, gotcha-safe), schedule, art_wall,
  story_time.
- 5 presets, all mode "both", bright-classroom light + quiet-time navy dark.
- Bundled OFL woff2 (Baloo 2 700, Quicksand 400/700) in assets/fonts + LICENSES;
  all font-family via var(--font-*); RECOMMENDED_FONTS/ICONS updated;
  required_icon_packs declared.
- Themed email-safe wrapper; master pages (site + auth); seed demo site
  (home/about/blog+3 posts/contact form+row_inserted email workflow/login),
  preschool voice.

Known platform limit (OVERRIDE-CONTRACT §11): auth-form/auth-status/
password-reset-form/page-suggestions overrides are authored correct-to-model but
do not dispatch (compiled BlockFuncs). page-suggestions also omits the dynamic
suggestion list (no FTS in codeless).

Verified: `make` (ninja plugin build) exit 0; check-safety exit 0. Visual quality
UNVERIFIED until Wave B.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 11:25:52 +08:00
Alex Dunmow
dccd269ab2 feat: convert to codeless .bnp — templates + manifest, Go/templ deleted (WO-WZ-021)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 15:17:12 +08:00