Add nullable colors to Settings UI #12626

Closed
opened 2026-01-31 03:20:35 +00:00 by claunia · 5 comments
Owner

Originally created by @carlos-zamora on GitHub (Feb 16, 2021).

Originally assigned to: @carlos-zamora on GitHub.

Description of the new feature/enhancement

The following settings are missing from the Profile > Appearance page in the Settings UI:

  • tabColor
  • foreground
  • background
  • selectionBackground
  • cursorColor

This is because the color picker has no way to select "I don't have a color".

Proposed technical implementation details (optional)

  • Introduce a new control called "nullable color picker" containing...
    • a color picker
    • a checkbox (or toggle button) to inherit from the color scheme
    • (maybe) a dependency property to bind the color from the settings model to the control
  • use that new control in the Profile > Appearance page under a new "Colors" grouping

A minor design is needed for this. Particularly, we need to think about how this should be represented along with inheritance (SettingContainer). We want to make sure we don't confuse users with "inherit value from color scheme" and "inherit value from base layer", for example.

Originally created by @carlos-zamora on GitHub (Feb 16, 2021). Originally assigned to: @carlos-zamora on GitHub. # Description of the new feature/enhancement The following settings are missing from the Profile > Appearance page in the Settings UI: - `tabColor` - `foreground` - `background` - `selectionBackground` - `cursorColor` This is because the color picker has no way to select "I don't have a color". # Proposed technical implementation details (optional) - [ ] Introduce a new control called "nullable color picker" containing... - a color picker - a checkbox (or toggle button) to inherit from the color scheme - (maybe) a dependency property to bind the color from the settings model to the control - [ ] use that new control in the Profile > Appearance page under a new "Colors" grouping A minor design is needed for this. Particularly, we need to think about how this should be represented along with inheritance (`SettingContainer`). We want to make sure we don't confuse users with "inherit value from color scheme" and "inherit value from base layer", for example.
claunia added the Issue-FeatureNeeds-Tag-FixProduct-TerminalArea-SettingsUI labels 2026-01-31 03:20:35 +00:00
Author
Owner

@mdtauk commented on GitHub (Feb 17, 2021):

Can this control also allow for a "Use my system Accent colour"

@mdtauk commented on GitHub (Feb 17, 2021): Can this control also allow for a "Use my system Accent colour"
Author
Owner

@zadjii-msft commented on GitHub (Feb 17, 2021):

@mdtauk Perhaps, though, then we'd need a spec for how we use the system accent color as one of these terminal colors 😉 It'd be fairly trivial to just lookup the current value of the accent color and throw that in the settings. It'd require a pretty big design change to allow the user to say "I want the background to be {accentColor}", and have that color automatically reflect changes to the accent color in the OS.

It's maybe something that could be done in the post-#3327 world easier, but it's definitely something out of scope for now

@zadjii-msft commented on GitHub (Feb 17, 2021): @mdtauk Perhaps, though, then we'd need a spec for how we use the system accent color as one of these terminal colors 😉 It'd be fairly trivial to just lookup the current value of the accent color and throw that in the settings. It'd require a pretty big design change to allow the user to say "I want the background to be `{accentColor}`", and have that color automatically reflect changes to the accent color in the OS. It's maybe something that could be done in the post-#3327 world _easier_, but it's definitely something out of scope for now
Author
Owner

@mdtauk commented on GitHub (Feb 17, 2021):

For anything Xaml, it's just using a theme resource and it updates automatically.

For the terminal, it is more complicated as it requires listening for the event and redrawing the screen

@mdtauk commented on GitHub (Feb 17, 2021): For anything Xaml, it's just using a theme resource and it updates automatically. For the terminal, it is more complicated as it requires listening for the event and redrawing the screen
Author
Owner

@DHowett commented on GitHub (Feb 17, 2021):

Right. I'd rather not complicate this with that just yet. Incremental progress.

@DHowett commented on GitHub (Feb 17, 2021): Right. I'd rather not complicate _this_ with _that_ just yet. Incremental progress.
Author
Owner

@DHowett commented on GitHub (Jun 10, 2025):

Fixed in #17870

@DHowett commented on GitHub (Jun 10, 2025): Fixed in #17870
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#12626