The host does not consume LoadedPlugin.BundledFonts, so fonts.json families
render as fallback sans. Declare @font-face against the served
/templates/corporate-modernist/fonts/*.woff2 paths and set
typography.fontHeading/body/mono to template:corporate-modernist:<Family> in
all 5 presets so --font-heading/--font-body/--font-mono resolve to the bundled
Inter / JetBrains Mono faces. Families + weights match fonts.json exactly.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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>
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>
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>
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>
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>
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>
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>
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>