beeware / beeware/toga

Dark mode support in WinForms backend

Open
#4,561 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
5.4k
Forks
827
Avg merge
15h 39m
Merged PRs (30d)
40

Description

### What is the problem or limitation you are having?

With #4331 landed, we can now use .NET Core 10, which has full support for dark mode.

### Describe the solution you'd like

Work out the necessary API(s) to enable Dark Mode on .NET Core 10 applications, and audit all widgets' use of color to make sure they support dark mode properly. (Tree widgets currently always paint expanasion arrows in black and thus cannot be seen easily in dark mode).

### Describe alternatives you've considered

Status quo; light mode on WinForms is actually pretty.

### Additional context

The call seems to be Application.SetColorMode(SystemColorMode.System) at application startup.

https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.application.setcolormode?view=windowsdesktop-10.0

Contributor guide

Open the contributing guide

Research direction

Start with the WinForms backend and the Application.SetColorMode(SystemColorMode.System) entry point documented in the issue. Audit each widget's color handling, paying particular attention to tree expansion arrows. Done means .NET Core 10 applications can enable dark mode and all widgets remain legible in dark mode.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.