feat(theme): expose primary/secondary container slugs to WP presets #105

Merged
peterswimm merged 1 commit from feat/converter-lists-and-products-adapter into main 2026-09-09 21:28:11 +00:00
Owner

The toilville.com section bands (What we make, Who we are) use
brand.primary-container as their tint. The toilville-fse palette had no slug
for it, so a block wanting that colour had to hardcode the value.

Adds primary-container (#f7ebe7) and secondary-container (#fcf7e6),
both read from dist/toilville/tokens.dtcg.json — same provenance as the six
slugs added in #104.

Consumed by toilville_rituals#366, which migrates products-grid to the design.

just check green.

https://claude.ai/code/session_01Kbzfscp4w5enUrZxMnDt78

The toilville.com section bands (`What we make`, `Who we are`) use `brand.primary-container` as their tint. The `toilville-fse` palette had no slug for it, so a block wanting that colour had to hardcode the value. Adds `primary-container` (`#f7ebe7`) and `secondary-container` (`#fcf7e6`), both read from `dist/toilville/tokens.dtcg.json` — same provenance as the six slugs added in #104. Consumed by toilville_rituals#366, which migrates `products-grid` to the design. `just check` green. https://claude.ai/code/session_01Kbzfscp4w5enUrZxMnDt78
feat(converter): lists and images survive; products-grid adapter
Some checks failed
PR policy check / policy-gate (pull_request) Failing after 1s
Security Scans / Trivy filesystem scan (pull_request) Successful in 1m14s
Security Scans / Gitleaks secret scan (pull_request) Successful in 1m28s
Test Generator / lint-prose (pull_request) Successful in 46s
Test Generator / lint-workflows (pull_request) Successful in 52s
UDG dist drift gate / dist/ matches dtcg + udg sources (pull_request) Successful in 45s
Test Generator / test (pull_request) Successful in 4m0s
696f8e4c0c
Three fixes that together let the "What we make" band round-trip into
toilville/products-grid + toilville/product-card.

1. <ul>/<ol> now map to fact_set. They previously fell through to the generic
   recurse, which walks CHILDREN only — so an <li>'s own text was dropped and a
   decorative <span>-</span> bullet was all that survived. That is the "(--)"
   rows in the review renders. Leading bullet glyphs are stripped so each fact
   reads as its own text.

2. <img> now emits an image block instead of being dropped. The vocabulary
   already had one (see _build_labeled's media/image branch); nothing routed to
   it from the heuristic path, so the product logos were lost.

3. _products_grid adapter: context("[ NN ]") + header, then repeating
   [image? section(tag) header(name) section(body) fact_set] card runs, emitted
   as a products-grid wrapping one product-card per card. The logo URL picks the
   card's tint — that is how the design distinguishes Rituals from Spelwork, and
   the copy alone does not say it.

Landing now emits hero-home, products-grid + 2 product-cards, and joinband-cta.

Not yet carried: the per-card "See Rituals ->" links. The design writes them as
plain anchors, which the converter does not treat as actions.

Claude-Session: https://claude.ai/code/session_01Kbzfscp4w5enUrZxMnDt78
peterswimm deleted branch feat/converter-lists-and-products-adapter 2026-09-09 21:28:12 +00:00
Sign in to join this conversation.
No description provided.