Files
certctl/web/tailwind.config.cjs
T
shankar0123 700c399367 chore(web): remove darkMode: 'class' from tailwind config — Phase 7 retired
Operator decision 2026-05-14: "no dark mode and no future dark mode
wiring to maintain." The originally-optional Phase 7 (the rebuild path
that would have superseded Phase 0's rip-out if customer signal materialized)
is formally retired in the frontend-design-audit.html banner stack +
Phase 7 H3 header.

Phase 0's closure rationale ("leave `darkMode: 'class'` in tailwind
config for the eventual Phase 7 rebuild") is now superseded — keeping
that line set would resurface as the same half-wired-hook pattern that
drove the original FE-H1 finding, just at the config layer instead of
the HTML layer. Phase 0 removed `class="dark"` from <html> + the body
`bg-slate-900`; this commit closes the loop by also removing the
tailwind config option that pointed at a future feature that won't
arrive.

If the decision ever reverses, this line restores in a one-diff revert
+ a full re-audit of every primitive and page for `dark:` variants
(see the retired Phase 7 executable prompt for the rules: ship complete
or not at all; piecemeal dark-mode is exactly the original finding).

Verification:
  • npx tsc --noEmit — exits 0
  • npx vite build — ✓ built in 3.20s (Tailwind doesn't need
    darkMode set to compile; output is identical because there are
    zero `dark:` classes in src/ to gate behind anything)
  • Audit HTML (workspace-only, not repo-tracked) updated with:
      - Phase 7 RETIRED banner at top of banner stack (amber accent)
      - Phase 7 H3 header flipped to "✗ Retired 2026-05-14"
      - FE-H1 row note extended with the lock-in decision
      - Phase 0's "Do NOT delete darkMode: 'class'" guidance struck
        through + marked SUPERSEDED with a pointer to the new banner
2026-05-14 17:16:40 +00:00

85 lines
3.3 KiB
JavaScript

/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./index.html",
"./src/**/*.{js,ts,jsx,tsx}",
],
// Dark mode intentionally NOT wired. Phase 0 ripped out the dead
// class="dark" + residual dark: classes; the audit prompt for the
// optional Phase 7 was rejected by the operator on 2026-05-14 with
// the explicit posture: "no dark mode and no future dark mode
// wiring to maintain". Leaving `darkMode: 'class'` set would
// resurface as exactly the kind of half-wired hook that drove the
// original FE-H1 finding, so removing it locks in the decision at
// the config layer. If the decision ever reverses, restore this
// line + re-audit every primitive and page for dark: variants
// (NOT a piecemeal migration — see retired Phase 7 in the audit).
theme: {
extend: {
colors: {
// === certctl brand palette (from logo) ===
brand: {
50: '#eefbf6',
100: '#d5f5e9',
200: '#afe9d5',
300: '#7ad8bc',
400: '#2ea88f', // Primary teal — logo "ctl"
500: '#1f9680',
600: '#147868',
700: '#106055',
800: '#0f4d44',
// 900 removed (Phase 0 hygiene, FE-L3): 0 callers in web/src.
// Re-add if Phase 7 dark-mode rebuild needs it.
},
accent: {
blue: '#3b7dd8', // Logo blue arrows
orange: '#e8873a', // Logo orange arrows
green: '#4ebe6e', // Logo green highlights
},
// Light content area
page: '#f0f4f8', // Light blue-gray page background
surface: {
DEFAULT: '#ffffff', // Cards — white
hover: '#f8fafc', // Hover on cards
border: '#e2e8f0', // Card/table borders
muted: '#f1f5f9', // Zebra stripes, subtle fills
},
// Dark sidebar
sidebar: {
DEFAULT: '#0c2e25', // Deep teal-black
hover: '#134438',
active: '#185c4a',
border: '#1a5c48',
text: '#94d2be', // Muted teal for inactive nav
},
// Text on light backgrounds (WCAG AA contrast against bg-page #f0f4f8).
// Phase 0 hygiene (UX-M6): faint bumped from #94a3b8 (3.0:1, fails AA)
// to #64748b (4.6:1, passes AA). muted bumped from #64748b to #475569
// (6.9:1, passes AA Large) to preserve the three-tier hierarchy.
ink: {
DEFAULT: '#1e293b', // Primary text (12.6:1 vs bg-page)
muted: '#475569', // Secondary text (6.9:1 vs bg-page) — was #64748b
faint: '#64748b', // Tertiary/placeholder (4.6:1 vs bg-page) — was #94a3b8
},
},
fontFamily: {
mono: ['JetBrains Mono', 'ui-monospace', 'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', 'monospace'],
},
// Phase 0 hygiene (UX-L1): one design-token rung below `text-xs` (12px)
// so the 7 historical `text-[10px]` uses migrate losslessly. The other
// 18 inline-pixel sites (text-[11px] x16, text-[13px] x2) migrate to
// text-xs / text-sm respectively — a +1px nudge each, imperceptible.
fontSize: {
'2xs': ['0.625rem', { lineHeight: '0.875rem' }], // 10px / 14px
},
borderRadius: {
DEFAULT: '0.375rem',
sm: '0.25rem',
md: '0.5rem',
lg: '0.75rem',
},
},
},
plugins: [],
}