Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
8.0 KiB
phase, plan, type, wave, depends_on, files_modified, autonomous, requirements, must_haves
| phase | plan | type | wave | depends_on | files_modified | autonomous | requirements | must_haves | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 12-dark-mode-visibility-fixes | 01 | execute | 1 |
|
true |
|
|
Purpose: All four wizard step headings are currently invisible in dark mode (browser default black text on dark background). DeploymentStep's native form controls (labels, legends, checkboxes, radios) are also unstyled and invisible. These are regressions from the v1.2 UI overhaul where structural elements were migrated but their text styling was omitted.
Output: All step components render readable text and properly styled controls in both light and dark mode.
<execution_context> @C:/Users/SebastienQUEROL/.claude/get-shit-done/workflows/execute-plan.md @C:/Users/SebastienQUEROL/.claude/get-shit-done/templates/summary.md </execution_context>
@.planning/PROJECT.md @.planning/ROADMAP.md @.planning/STATE.md @.planning/phases/12-dark-mode-visibility-fixes/12-RESEARCH.md ```tsx
```
- text-on-surface: primary text, headings
- text-on-surface-container: labels, secondary text
- bg-surface-container: input/select backgrounds
- border-outline: form control borders
- accent-primary: native checkbox/radio accent color (maps to --color-primary)
- text-on-surface-variant: already used for step descriptions
- Do NOT use dark: prefix — project uses .dark class cascade
- Do NOT use hardcoded colors (text-gray-900, text-black, bg-white)
- Do NOT style elements — browser-native, cannot be reliably styled
- Do NOT modify TextFieldMD3 input background — bg-transparent is intentional
Task 1: Add semantic token classes to all step h2 headings
src/components/wizard/BackendSelectionStep.tsx, src/components/wizard/RemoteConfigStep.tsx, src/components/wizard/DeploymentStep.tsx, src/components/wizard/ReviewStep.tsx
In each of the 4 step components, replace the bare `` tag with a styled version matching the established pattern from App.tsx:
-
BackendSelectionStep.tsx line 65: Change <h2>Step 1: Select Backend</h2> to <h2 className="text-2xl font-bold text-on-surface mb-2">Step 1: Select Backend</h2>. Note: use mb-2 (not mb-4) because the <p> description paragraph immediately follows with its own mt-1.
-
RemoteConfigStep.tsx line 65: Change <h2>Step 2: Configure {backendLabel[backendType]}</h2> to <h2 className="text-2xl font-bold text-on-surface mb-2">Step 2: Configure {backendLabel[backendType]}</h2>.
-
DeploymentStep.tsx line 24: Change <h2>Step 3: Deployment Options</h2> to <h2 className="text-2xl font-bold text-on-surface mb-2">Step 3: Deployment Options</h2>.
-
ReviewStep.tsx line 75: Change <h2>Step 4: Review & Download</h2> to <h2 className="text-2xl font-bold text-on-surface mb-2">Step 4: Review & Download</h2>.
-
BackendSelectionStep.tsx line 65: Change
<h2>Step 1: Select Backend</h2>to<h2 className="text-2xl font-bold text-on-surface mb-2">Step 1: Select Backend</h2>. Note: use mb-2 (not mb-4) because the<p>description paragraph immediately follows with its own mt-1. -
RemoteConfigStep.tsx line 65: Change
<h2>Step 2: Configure {backendLabel[backendType]}</h2>to<h2 className="text-2xl font-bold text-on-surface mb-2">Step 2: Configure {backendLabel[backendType]}</h2>. -
DeploymentStep.tsx line 24: Change
<h2>Step 3: Deployment Options</h2>to<h2 className="text-2xl font-bold text-on-surface mb-2">Step 3: Deployment Options</h2>. -
ReviewStep.tsx line 75: Change
<h2>Step 4: Review & Download</h2>to<h2 className="text-2xl font-bold text-on-surface mb-2">Step 4: Review & Download</h2>.
These are className-only additions. Do not change element structure, content, or any other attributes. Tests use getByRole('heading') which is unaffected by className changes. npm test -- --reporter=verbose 2>&1 | tail -20 All 4 step h2 elements have className="text-2xl font-bold text-on-surface mb-2". Full test suite passes with no regressions.
Task 2: Style DeploymentStep form controls and ReviewStep checkbox src/components/wizard/DeploymentStep.tsx, src/components/wizard/ReviewStep.tsx **DeploymentStep.tsx** — Apply semantic token classes to all native form controls:-
Include-install section (lines 31-42): Replace the bare wrapper
<div>with<div className="flex flex-col gap-2 mb-4">. Replace the bare<label>with<label className="flex items-center gap-2 text-sm text-on-surface cursor-pointer">. AddclassName="accent-primary"to the checkbox input. Remove the{' '}space before label text (gap-2 provides spacing). -
Config deployment path fieldset (lines 45-71): Add
className="mb-4"to the<fieldset>. Replace<legend>Config deployment path</legend>with<legend className="text-sm font-medium text-on-surface-container mb-2">Config deployment path</legend>. Replace both<label>wrappers with<label className="flex items-center gap-2 text-sm text-on-surface cursor-pointer">. AddclassName="accent-primary"to both radio inputs. Remove{' '}spaces. -
Script targets fieldset (lines 74-91): Add
className="mb-4"to the<fieldset>. Replace<legend>Script targets</legend>with<legend className="text-sm font-medium text-on-surface-container mb-2">Script targets</legend>. Replace both<label>wrappers with<label className="flex items-center gap-2 text-sm text-on-surface cursor-pointer">. AddclassName="accent-primary"to both checkbox inputs. Remove{' '}spaces.
ReviewStep.tsx — Style security checkbox:
- Line 92-93: The checkbox inside the warning box. Add
className="accent-warning"to the<input type="checkbox">to match the warning color scheme of its container. Use accent-warning (not accent-primary) since this checkbox lives in a warning-themed section and should match.
If accent-warning does not resolve (Tailwind may not generate it), fall back to accent-[var(--r2b-warning)] using arbitrary value syntax.
Do not change any onChange handlers, state logic, or dispatch calls. Only add className attributes. npm test -- --reporter=verbose 2>&1 | tail -20 DeploymentStep labels use text-on-surface, legends use text-on-surface-container with font-medium, all checkboxes/radios have accent-primary (or accent-warning for security checkbox). Full test suite passes.
1. `npm test` — full suite green, no regressions 2. Visual browser check: toggle dark mode, verify all 4 step headings are readable white text 3. Visual browser check: DeploymentStep controls are visible and properly styled in dark mode 4. Visual browser check: ReviewStep security checkbox accent matches warning color<success_criteria>
- All 4 wizard step h2 headings have
text-on-surfaceclass and are visible in dark mode - DeploymentStep labels, legends, checkboxes, and radios are styled with semantic tokens
- ReviewStep security checkbox has themed accent color
- Full test suite passes with zero regressions </success_criteria>