Alex Dunmow 65457ca821 fix(noir): hero .text seed-safe + revert layout CSS to Tailwind utilities
Third remediation pass, superseding the hand-rolled-CSS approach of 0b3013c
now that the host Tailwind build scans theme .ninjatpl files.

Hero blank-on-bare-string fix:
- The four styled-text fields read field.text|default:field, which
  HARD-ERRORS when the seed passes a bare string (no .text attribute) and
  blanks the whole hero. Switch to field|get:"text"|default:field so the
  process-global get filter degrades gracefully on strings.

Layout back to Tailwind (Alex rule: don't reimplement standard utilities):
- Revert the .noir-cols*/.noir-cols-2up*/.noir-split/.noir-gap-*/.noir-hero-pad
  class swaps in 15 override templates back to plain grid/gap/padding
  utilities (grid-cols-*, gap-*, sm:/md:/lg: variants, py-*), and delete the
  matching hand-rolled media-query block from manifest css.input_css_append.
- Hero split now uses grid grid-cols-1 lg:grid-cols-2 with a Tailwind
  min-h-80 media frame (guarded so empty seed media does not balloon); the
  centered hero uses py-16 md:py-20 lg:py-24 instead of min-h-[75vh], keeping
  the dead-vertical-band trim.

Kept from the prior pass: robust .noir-reveal (instant reveal when already in
view + load/1600ms safety nets + no-JS/reduced-motion visible), tightened
section padding, and the genuinely bespoke safety CSS (empty-media img guards,
overflow-wrap, block max-width) — none of which are Tailwind-utility duplicates.

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

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 17:55:03 +08:00
2026-07-05 16:44:49 +08:00
2026-07-05 13:43:27 +08:00

Noir

A detective's dossier laid out on the desk. Case-file cards, typewriter type, and black redaction bars set the tone, with a faint film grain over the whole surface. By day it reads like a high-key gallery wall. At night it drops to darkroom black. The mood is investigative and a little tense, and the type stays legible throughout.

Good for

We built Noir for storytelling with an edge. Treat these as starting points, not limits. If the mood fits your brand, use it:

  • True-crime podcasts and newsletters
  • Investigative journalism and long-form reporting
  • Mystery authors and book launches
  • Escape rooms and immersive events

What you get

  • Five color presets, each with a tuned light mode and a tuned dark mode: Cold Case, Evidence Red, Safelight, Interrogation, and Redaction.
  • Source Serif 4 for reading and IBM Plex Mono for labels and stamps, both bundled. Fonts stay admin-controlled, so you can swap them from the typography settings.
  • Four persona blocks: a case dossier, a stamped case-file card, an evidence board with pinned notes, and a redacted quote with blacked-out lines.
  • A demo site that installs when you activate the theme: a home page, an about page, a short blog, and a contact page whose form emails your admins.
  • Every core block restyled to match, plus a themed login screen and a themed 404 page.

Install

Install from the BlockNinja registry, then pick a preset and assign your fonts in the admin. Activate the demo content if you want a fully built starting point.

Description
No description provided
Readme 7.8 MiB
Languages
Makefile 84.5%
AMPL 15.5%