mirror of
https://github.com/shankar0123/certctl.git
synced 2026-06-07 22:51:30 +00:00
700c399367
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
85 lines
3.3 KiB
JavaScript
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: [],
|
|
}
|