24 Commits

Author SHA1 Message Date
Alex Dunmow
df29fae033 feat(corporate-modernist): Wave B gallery reshoot — Meridian Advisory wordmark (home/about/article x light+dark)
Reshot after the wordmark/master-page fix: header now reads 'Meridian
Advisory' (was the leaked gallery instance name). 6 retina shots +
light-canonical preview (home-light).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 16:08:28 +08:00
Alex Dunmow
9380cfdcf4 fix(corporate-modernist): size icon-shortcode SVGs (shortcode balloon trap)
The CMS ::lucide:name:size:: inline shortcode expands to an UNSIZED
<svg class="inline-block h-N w-N"><use .../></svg> — the theme can't
attribute the shortcode output, so if the host Tailwind JIT drops the
h-N/w-N utility the icon balloons to the SVG default box (the coffee/
Wave-B root cause). Replace all 21 icon shortcodes across 14 templates
with explicit <svg width=.. height=..> markup (preserving the same
class + href, only adding pinned dimensions): sm=16, md=20, lg=24. The
navbar hamburger renders on every page, so this hardens every shot.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 16:08:02 +08:00
Alex Dunmow
517ca93b01 fix(corporate-modernist): unbreak contact-form template register (Wave B blocker)
The mobile inline <style> emitted '@media (min-width:640px){#contact-form-...'
— the '{#' before the ID selector is the ninjatpl comment-open token, so
the lexer read the rest of the line as a single-line comment and failed
on the trailing newline ('Newline not permitted in a single-line comment').
Strict full re-register (theme hot-swap / InstallFromRegistry) 500s on it,
blocking every theme upgrade; the /contact page is also broken. Insert a
space ('){ #contact-form') — valid CSS, breaks the token. Only occurrence
across all templates. make build/verify don't lex templates, so it slipped.

bump to 0.4.2

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 15:48:03 +08:00
Alex Dunmow
df486e06bd fix(corporate-modernist): SVG geometry guard on <use> icons (Wave B 4d)
Add explicit width/height to the 4 <use> icon SVGs (author-bio-hero
social x3 = 20x20, sidebar-nav = 16x16). The theme's cm-icon class has
no CSS sizing, so an unsized <use> SVG balloons to the SVG default box;
explicit presentation attributes pin the geometry regardless of the
host Tailwind JIT. Matches the art-deco pattern.

bump to 0.4.1

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 15:44:33 +08:00
Alex Dunmow
68c52394fd fix(corporate-modernist): brand wordmark + article depth (Wave B remediation)
Header wordmark leaked the gallery instance name ('Gallery
corporate-modernist') because the navbar master-page block set no
logoText, so it fell through to context.site.title (= the instance
name). Every correctly-rendering theme (art-deco, kindergarten,
terminal, gotham, noir) sets logoType/logoText on its navbar; this
theme was the only one that did not. Add logoText 'Meridian Advisory'
to both navbar master blocks (default + landing).

Seed: switch settings key to the fleet-standard companyName and add
settings.override.title so a consented customer install also sets the
real site title (SEO/meta/RSS/email); the gallery relies on the
master-page wordmark since demo-install override is grant-gated.

Expand the captured /blog/operations-reset article to 10 substantive
management-consulting paragraphs (was 2, stranding a dead band above
the footer); bring the other two articles to 5 paragraphs each.

bump to 0.4.0

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 10:44:41 +08:00
Alex Dunmow
ef4c8c3519 bump to 0.3.0 2026-07-06 09:19:11 +08:00
Alex Dunmow
1e60f4360f feat: Wave B gallery screenshots (home/about/article × light+dark) 2026-07-06 09:18:47 +08:00
Alex Dunmow
a054fc0377 chore: rename dev host localdev.blockninjacms.com -> blockninja.dev 2026-07-05 20:50:30 +08:00
Alex Dunmow
a7a90ba3c1 fix(corporate-modernist): repair empty hero + tighten rhythm + mobile
Root cause of the missing home hero: the hero built-in's styled-text
fields (eyebrow/headline/subheadline, schema type=object x-editor=
styled-text) were seeded as BARE STRINGS. The override reads
`headline.text|default:headline`; ninjatpl hard-errors on `.text` field
access against a string ("can't access a field by name on type string")
BEFORE the |default filter runs, aborting the whole hero render → the
section rendered nothing, leaving a large void at the top of the page.
Fixed by seeding the object form `{ "text": "..." }` (matches the
built-in schema + sample). Same latent bug affects any theme that seeds
bare strings into hero styled-text fields.

Whitespace / layout:
- cm-section padding 4rem -> 3rem (3.5rem >=768px); cm-section-tight
  2.5rem -> 2rem. Kills the stacked ~8rem inter-section dead bands so the
  Swiss grid reads precise, not empty.
- hero padding 5rem -> 3.5rem.

Empty-media hardening:
- hero split variant only renders its media frame when backgroundImage
  is present (was an unconditional 4/3 muted box -> balloon).

Mobile:
- cm-form-grid now single-column base, 2-col >=640px (was fixed 2-col ->
  cramped half-fields at 375px); mirrored in the contact-form scoped
  style which wins on specificity.
- mobile nav toggle min 44x44 tap target.

No version bump. make + check-safety both exit 0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 17:28:06 +08:00
Alex Dunmow
c0d9fd5420 bump to 0.2.1 2026-07-05 16:44:47 +08:00
Alex Dunmow
e23f65cb1a docs: publishing README 2026-07-05 13:42:54 +08:00
Alex Dunmow
99c1c4f652 feat(theme): Wave A corporate-modernist — 49 overrides, 7 templates, seed (WO-TF-014)
Full Wave A OVERRIDE-CONTRACT delivery for the B2B-consultancy theme
(Swiss grid, Bauhaus geometric marks, oversized tabular numerals, hairlines).

- 49/49 mandatory builtin overrides + manifest template_overrides entries,
  authored against the frozen builtin schemas. Fixed legacy button (variant/
  href/text -> style/link/label) and card (body/image -> text/media) reads.
- 7 page templates: default, full-width, landing, article, blog-index,
  contact, auth.
- Blocks rework: deleted 7 duplicate theme blocks (now builtin overrides);
  kept case_study_card; added capability_matrix, engagement_process,
  credential_bar. master_pages.json rewired to builtins.
- 5 dual-mode presets (all 19 tokens, tuned dark): navy-classic, forest-quiet,
  burgundy-tradition, graphite-mono, signal-red.
- Bundled fonts (OFL-1.1 latin subsets): Inter + JetBrains Mono, licenses
  recorded; all font-family via var(--font-*). RECOMMENDED_FONTS/ICONS updated;
  required_icon_packs = [lucide, simple-icons].
- Complete .cm-* CSS component vocabulary in manifest css.input_css_append;
  CSS-first motion with prefers-reduced-motion honored.
- Themed email-safe wrapper (tables + inline styles).
- Demo seed (demo:true): Meridian Advisory home/about/blog+3 posts/contact/
  login; contact-form -> contact_submissions data table -> row_inserted
  email-admins workflow.
- Functional auth-form / password-reset-form overrides (real hx-post endpoints).

Verified: `make` exit 0 (codeless .bnp packs), check-safety 32 checks OK exit 0.
Visual identity UNVERIFIED until Wave B. Known limitation: data providers do not
reach declarative overrides in frozen cms (a0f07e2ae) render path — provider-
backed overrides authored faithfully, populate once the host wires providers.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 11:05:55 +08:00
Alex Dunmow
3207394c38 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:26:48 +08:00
Alex Dunmow
69494940c1 chore: repo hygiene for the wasm era (WO-WZ-015 fix round)
Replace the retired .so Makefile with the wasm/.bnp convention (build /
verify / archive-check / publish via ninja plugin build), gitignore *.so
and *.bnp artifacts, and refresh the stale [compatibility] block_core
constraint to the v0.15 era.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 00:14:21 +08:00
Alex Dunmow
e86973a411 wasm port (WO-WZ-015): reactor-mode wasip1 guest, core v0.15.2
Add wasmguest.Serve(Registration) boilerplate and bump block/core to v0.15.2
for the .so->wasm migration. Built + published as .bnp to the dev registry.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 22:11:12 +08:00
Alex Dunmow
e1de3fab6a bump to 0.1.2 2026-07-03 22:09:28 +08:00
Alex Dunmow
80deffad47 chore: declare templates category (themes carry categories) v0.1.1 2026-06-26 21:47:01 +08:00
Alex Dunmow
a0fa8d908e bump to 0.1.1 2026-06-26 00:47:39 +08:00
Alex Dunmow
147a716c7f chore: showcase preview.png + align block/core to v0.14.1 2026-06-26 00:47:39 +08:00
Alex Dunmow
4bf39493e2 Add plugin.mod 2026-06-25 15:10:56 +08:00
Alex Dunmow
05b9f15d16 chore: bump core to v0.14.0
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-13 13:42:39 +08:00
Alex Dunmow
aa2dc64478 chore: bump core to v0.13.1
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 22:30:48 +08:00
Alex Dunmow
4a82578dd0 deps: bump block/core to v0.12.4
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-08 20:49:04 +08:00
Alex Dunmow
4713787bbd initial: theme plugin corporate-modernist
Bootstrapped during the 2026-06-06 BlockNinja consolidation. Was previously
an unversioned directory inside ~/src/blockninja-themes/corporate-modernist.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-06 14:11:24 +08:00