Gruvbox dark theme -- token swap only #2
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/gruvbox-dark-theme"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Swap all
:rootdesign tokens from light mode to gruvbox dark palette. Zero CSS rule changes -- followsror-css-guideprinciple: "Projects override tokens, not rules."Changes
application.css:rootblock with gruvbox dark values--color-dangerand--color-successtokensdefaulttodarkthemeGruvbox mapping
--color-bg#fafafa#282828--color-surface#ffffff#3c3836--color-text#1a1a1a#ebdbb2--color-muted#57606a#a89984--color-link#0366d6#8ec07c--color-link-hover#024ea4#b8bb26--color-border#d0d7de#504945--color-accent#0366d6#d79921--color-code-bg#f6f8fa#1d2021Test Plan
mdviewa markdown file with headings, code, tables, blockquotesReview Checklist
var(--token)-- zero hardcoded hex outside:rootRelated Notes
Closes #1
PR #2 Review
DOMAIN REVIEW
Tech stack: Rails 8 + Hotwire, CSS custom properties (design tokens), Stimulus controller, mermaid.js.
CSS token swap (application.css): All 10 existing
:roottokens replaced with gruvbox dark palette values. Two new tokens added (--color-danger: #fb4934,--color-success: #b8bb26). This follows theror-css-guideconvention of "override tokens, not rules" -- zero CSS rule changes, only:rootvalues swapped. Correct approach.Mermaid theme (mermaid_controller.js): Single-line change from
theme: "default"totheme: "dark". Consistent with the dark palette shift. Clean.Contrast check (WCAG):
--color-text(#ebdbb2) on--color-bg(#282828): ~10.5:1 -- passes AAA--color-muted(#a89984) on--color-bg(#282828): ~5.2:1 -- passes AA--color-link(#8ec07c) on--color-bg(#282828): ~7.4:1 -- passes AAA--color-link(#8ec07c) vs--color-text(#ebdbb2): visually distinguishableAll color pairings pass WCAG AA minimum. Good accessibility.
BLOCKERS
None. This is a pure design token swap with no new functionality, no user input handling, no auth changes, and no secrets. The BLOCKER criteria (missing tests for new functionality, unvalidated input, credentials in code, duplicated auth logic) do not apply.
NITS
--color-accent-lightduplicates--color-surface: Both are now#3c3836. Theaccent-lighttoken semantically implies "a lighter variant of the accent color" -- in gruvbox dark context, consider using#504945(dark2) or#665c54(dark3) to maintain semantic distinction. If no rule currently consumes--color-accent-light, this is cosmetic, but it could cause confusion when the token is eventually used. Non-blocking.New tokens
--color-danger/--color-successare additive: These are not consumed anywhere in the current diff. Presumably they will be used by future features. This is fine -- pre-seeding tokens is reasonable -- but note they are currently dead declarations. Non-blocking.SOP COMPLIANCE
feat/gruvbox-dark-theme-- convention requires{issue-number}-{kebab-case-purpose}(expected:1-gruvbox-dark-themeor similar). Non-blocking for this repo/PR, but noted.Closes #1present: Yes, in the Related Notes section.PROCESS OBSERVATIONS
feat/prefix convention diverges from the{issue-number}-slugstandard. For a small repo this is minor, but worth aligning if the project adopts the full SOP set.VERDICT: APPROVED