Skip to content

[FEATURE] Add light theme#347

Merged
erikdarlingdata merged 15 commits intoerikdarlingdata:devfrom
ClaudioESSilva:feature/AddLightTheme
Feb 27, 2026
Merged

[FEATURE] Add light theme#347
erikdarlingdata merged 15 commits intoerikdarlingdata:devfrom
ClaudioESSilva:feature/AddLightTheme

Conversation

@ClaudioESSilva
Copy link
Contributor

What does this PR do?

Implements #60

This helps when I'm sharing screen/presenting (on not-so-good projectors).
Also, it will help other users who don't play well with dark mode.
Adds (2) "Light" themes - "Light" and "Cool Breeze" - alongside the "Dark" (the default).

Which component(s) does this affect?

  • Full Dashboard
  • Lite Dashboard
  • Lite Tests
  • SQL collection scripts
  • CLI Installer
  • GUI Installer
  • Documentation

How was this tested?

Dashboard

Added a new "Color Theme" section where we can select the theme from the drop-down.
image

Here is a light:
image

And the "Cool Breeze" (~matching SSMS v22 default theme - and less white but still light)
image

Lite

image

Here is a light:
image

And the "Cool Breeze" (~matching SSMS v22 default theme - and less white but still light)
image

Checklist

  • I have read the contributing guide

  • My code builds with zero warnings (dotnet build -c Debug)
    It has warnings related to PlanAnalyzer.cs (I haven't touched that)

  • I have tested my changes against at least one SQL Server version

  • I have not introduced any hardcoded credentials or server names

Copy link
Owner

@erikdarlingdata erikdarlingdata left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the thorough work on this — the resource dictionary swap approach is the right pattern, and the theme files are well-structured with consistent resource keys across all three themes. Nice touch with the Cool Breeze / SSMS v22 variant.

One issue to address before merging:

Dashboard SettingsWindow does not revert theme on Cancel/close. The ColorThemeComboBox_Changed handler calls ThemeManager.Apply() immediately (live preview), but CancelButton_Click just closes the window without reverting to the original theme. If a user opens Settings, previews the Light theme, then cancels — the app stays in Light theme but the preference isn't saved, so the next restart snaps back to Dark. The Lite SettingsWindow already handles this correctly with the _originalTheme / _saved pattern — the Dashboard side needs the same treatment.

A couple of minor nits (not blocking):

  • Lite/Windows/CollectionLogWindow.xaml has two StaticResource BackgroundLightBrush that should be DynamicResource
  • The Lite history windows (ProcedureHistoryWindow, QueryStatsHistoryWindow, QueryStoreHistoryWindow) only have Light vs Dark branches for chart theming — CoolBreeze falls through to Light via HasLightBackground, which works but misses the blue-tinted chart backgrounds

@ClaudioESSilva
Copy link
Contributor Author

@erikdarlingdata done!

@erikdarlingdata erikdarlingdata merged commit 213c529 into erikdarlingdata:dev Feb 27, 2026
3 checks passed
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