Skip to content

Separate Gruvbox Dark/Light from Hard, give Everforest an orange Warning - #136

Merged
matt-edmondson merged 2 commits into
mainfrom
claude/project-thread-4d94d3
Oct 10, 2026
Merged

matt-edmondson merged 2 commits into
mainfrom
claude/project-thread-4d94d3

Conversation

@matt-edmondson

@matt-edmondson matt-edmondson commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Requested by Matt in a Claude project thread.

Before: Gruvbox Dark and Gruvbox Light used the hard variants' backgrounds (#1d2021 / #f9f5d7), so each pair rendered identically in the gallery. Every Everforest variant mapped Warning to the palette's red, the same colour as Error. The gallery subtitle read "Nord / / dark" for a theme with no variant, and the README linked the gallery as text only. A wider check of every theme against its upstream palette also found hex values that had drifted or were made up: the Nightfox variants (Nordfox, Terafox, Dayfox, Dawnfox, Duskfox), Kanagawa Lotus, One Dark, Nightfly, PaperColor, VS Code and the Everforest Light backgrounds.

After: Gruvbox Dark uses the official dark0 (#282828) and Gruvbox Light uses light0 (#fbf1c7); the Hard variants keep #1d2021 / #f9f5d7. All six Everforest variants map Warning to the palette's orange (#e69875 dark, #f57d26 light), so it sits between Caution (yellow) and Error (red). The subtitle drops the empty segment ("Nord / dark"), and the README opens with the gallery overview image linking to the gallery.

Palette corrections (second commit), each checked against the upstream source:

  • Nightfox family (nightfox.nvim palettes):
    • Nordfox: orange #c9826b.
    • Terafox: fg1 #e6eaea, orange #ff8349, yellow #fda47f.
    • Dayfox: fg1/bg0 #3d2b5a/#e4dcd4, orange #955f61, yellow #ac5402, magenta #6e33ce.
    • Dawnfox: fg1/bg0 #575279/#ebe5df, blue #286983, green #618774, cyan #56949f, and yellow and orange were swapped.
    • Duskfox: bg #191726, blue #569fba, pink #eb98c3 (was a Catppuccin colour).
  • Kanagawa Lotus: background is lotusWhite3 #f2ecbc. Information, Warning and Error are the lotus diagnostic colours (#5a7785, #e98a00, #e82424) instead of values not in the palette.
  • One Dark / Nightfly: foreground is the scheme's text colour (#abb2bf / #c3ccdc) rather than #ffffff. Nightfly green is #a1cd5e; the old value was Night Owl's.
  • PaperColor: the Light background is color00 #eeeeee. Dark uses blue #5fafd7 and pink #ff5faf.
  • VS Code: Information, Warning and Error are editorInfo/editorWarning/editorError (Dark #59a4f9/#cca700/#f14c4c, Light #0063d3/#bf8803/#e51400).
  • Everforest Light (all three): bg_dim follows the current palette (#efebd4, #f2efdf, #e5dfc5).

Checked and left as they are: Catppuccin, Tokyo Night, Gruvbox accents, Dracula, Nord, Monokai, Kanagawa Wave/Dragon, Nightfox, Carbonfox, Everforest Dark.

How: palette edits in the theme files (Everforest names the shared orange once, as it already did red), ThemeSnapshot.approved.txt updated to match, a conditional subtitle in SampleWindow.cs. Rendered the gallery locally and checked the pictures: gruvbox-dark and gruvbox-dark-hard (and the light pair) now differ. The library-behaviour items marked "needs a decision" in the audit are untouched here. They are filed as #137 (accent text contrast on light themes), #138 (Primary VeryLow fills), #139 (VS Code Light TextDisabled) and #140 (Caution/Warning ordering). Two were already open: slider grabs in #116 and the 50–90% comment in #115. The popup alpha item is not a ThemeProvider bug: MapTheme returns PopupBg with alpha 1.0 for all 38 themes. PNGs are not committed; the gallery job regenerates them after merge.

🤖 Generated with Claude Code

https://claude.ai/code/session_01WWRBkw7bXdWGzuLpqnCvrB


Generated by Claude Code

claude added 2 commits October 9, 2026 23:59
Gruvbox Dark and Light used the hard variants' backgrounds, so each pair
rendered identically. They now use the palette's own dark0 (#282828) and
light0 (#fbf1c7); the hard variants keep #1d2021 and #f9f5d7.

Every Everforest variant mapped Warning to the palette's red, the same as
Error. Warning is now the palette's orange.

The gallery subtitle no longer prints an empty segment for a theme with
no variant, and the README shows the gallery overview.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WWRBkw7bXdWGzuLpqnCvrB
Checked every theme's hex values against the scheme it mirrors and
corrected the ones that had drifted or were invented:

- Nightfox family: Nordfox orange; Terafox fg1, orange and yellow;
  Dayfox fg1/bg0, orange, yellow and magenta; Dawnfox fg1/bg0, blue,
  green, cyan, and swapped yellow/orange; Duskfox bg, blue and pink.
- Kanagawa Lotus: background, info, warning and error now use the
  lotus palette's own diagnostic colors.
- One Dark and Nightfly: foreground is the scheme's text color rather
  than pure white; Nightfly green was Night Owl's.
- PaperColor: light background color00, dark blue and pink.
- VS Code: info, warning and error use editorInfo/Warning/Error.
- Everforest light: bg_dim values follow the current palette.

The snapshot is updated to match.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WWRBkw7bXdWGzuLpqnCvrB
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
30.4% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

Copy link
Copy Markdown
Contributor Author

SonarCloud's quality gate fails on 30.4% duplication on new code (the limit is 3%). Tests pass on all three platforms, and so do CodeQL and Analyze & Release.

The duplication is the palette corrections themselves. Every theme is the same SemanticPalette initializer, and Sonar's C# duplication check ignores literal values, so each corrected palette looks like a copy of every other one. Nothing in the code is actually repeated.

There are two ways to clear it, and both are the maintainer's call, so I haven't pushed either:

  • Exclude the theme declarations from duplication detection only, by adding <SonarQubeSetting Include="sonar.cpd.exclusions"><Value>Themes/**/*.cs</Value></SonarQubeSetting> to ThemeProvider.csproj. Issue analysis would still cover those files.
  • Accept the gate result on this PR as it stands.

Generated by Claude Code

@matt-edmondson
matt-edmondson merged commit 800b3d7 into main Oct 10, 2026
14 of 15 checks passed
@matt-edmondson
matt-edmondson deleted the claude/project-thread-4d94d3 branch October 10, 2026 09:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants