Same components, accent palette swapped from teal to the APP-derived blue (seed #1565C0). Mirrors the layout from app.flecbase.com/styleguide so direct visual comparison is one tab-switch away.
/css/flecbase.css first, then /css/flecbase-blue.css on top. The override file only redefines tokens — no component styles are duplicated. If the palette is approved, the swap is a single CSS file rename in production; if not, deleting flecbase-blue.css reverts everything.
Anything that was teal is now blue, derived from the APP's ColorScheme.fromSeed(#1565C0) (Material Blue 800). The surface / text / border / spacing / radius / shadow scales are unchanged from the base style guide.
ColorScheme.fromSeed uses Material 3's HCT (Hue / Chroma / Tone) algorithm to derive a full palette at runtime — the exact rendered colorScheme.primary sits within a few percent of the seed but isn't literally #1565C0. For web tokens we've used the Material Blue palette's natural cousins (50 / 100 / 800 / 900) which approximate what HCT emits. If pixel-exact match becomes important, we can extract the runtime palette via ColorScheme.fromSeed(...).primary etc. and bake those into CSS.
#2563eb (Tailwind Blue 600). With accent now sitting at Blue 800, the two blues read as "the same colour, different roles" and confuse the visual hierarchy. Indigo (#4F46E5) keeps info cool-tone but visibly distinct. If you'd rather keep info in the blue family, #1E88E5 (Blue 600) reads as "lighter accent" — works for non-critical contexts but blurs the boundary.
Font stack: Outfit sans, Source Serif 4 serif (already loaded but underused), JetBrains Mono code. Showing here so link colour (--accent) reads against the new palette.
Body paragraph — 16px regular Outfit. Inline link uses the new accent. Bold text, italic text, inline code tinted to --accent-dark, and highlighted text.
"Same components, different paint. The left-border quote uses --accent too." — Verification text
Adjacent SaaS in this space typically uses Inter with the Tailwind system stack and no serif. Outfit is in the same humanist-sans neighbourhood, so colour alone doesn't pull us far enough apart. The unused Source Serif 4 in our stack is the easy lever: keep Outfit for the workhorse UI, deploy Source Serif italic in the moments where brand voice matters — hero accents, eyebrows, callouts, big numbers.
Reads as another humanist-sans SaaS. Inter and Outfit are siblings; at a glance, no signature.
Same brand colour, sharply distinct voice. The serif italic carries the noun the brand cares about (contractors / labour hire / compliance) — Inter-default sites can't do this without loading a second font.
The same pattern as our hero, applied to any display headline. <em> inside an h1.display is the natural seam.
Replaces a bare <blockquote> when you want the voice of a real person to sit centred on a marketing page.
Serif italic numerals make a stat read like a magazine headline, not a dashboard tile.
Section openers. Serif italic above an Outfit heading is the move — sets up "this is a chapter" without a divider.
Body continues in Outfit. The serif eyebrow does the brand work.
--accent colour. The combination is the signature; either alone reads as just a font / just a colour.Hover Primary to confirm the box-shadow halo is blue, not green. The original CSS had teal RGB hardcoded in the shadow; flecbase-blue.css patches it.
--info-bg (Indigo 50), text uses --info (Indigo 600).Hover for the accent border — now blue.
Header background tint pulls from --surface-alt, no change.
Focus an input to see the new accent ring (was teal halo, now blue).
Accent step in the middle visualises emphasis.
.btn-primary:hover — patched in the override file. No other hardcoded teal in the base CSS.ColorScheme.fromSeed(#1565C0) produces at runtime via Material 3's HCT algorithm. For visual parity at this level the picks are fine; if pixel-exact APP/CRM match becomes important, we can extract the runtime palette and bake the exact values.--info swap to Indigo is a judgement call — if there's already established info-blue branding in marketing collateral, we'd want to revisit.public/img/ for any baked-in colour assets that need re-rendering.->primaryColor() on AdminPanelProvider / CrmPanelProvider / MePanelProvider). The styleguide Blade can read the same source of truth.flecbase.css's accent block to use the new values (no override file needed in prod). One commit, no JS, no build step.