Use `tab.inactiveForeground` from VS Code for muted text color (#3593)

Marshall Bowers created

This PR updates the `theme_importer` to pull in the
`tab.inactiveForeground` color from VS Code to use as the muted text
color.

Release Notes:

- N/A

Change summary

crates/theme2/src/themes/andromeda.rs         |  2 ++
crates/theme2/src/themes/ayu.rs               |  3 +++
crates/theme2/src/themes/dracula.rs           |  1 +
crates/theme2/src/themes/gruvbox.rs           |  6 ++++++
crates/theme2/src/themes/night_owl.rs         |  2 ++
crates/theme2/src/themes/noctis.rs            | 11 +++++++++++
crates/theme2/src/themes/nord.rs              |  1 +
crates/theme2/src/themes/palenight.rs         |  3 +++
crates/theme2/src/themes/rose_pine.rs         |  3 +++
crates/theme2/src/themes/solarized.rs         |  2 ++
crates/theme_importer/src/vscode/converter.rs |  4 ++++
11 files changed, 38 insertions(+)

Detailed changes

crates/theme2/src/themes/andromeda.rs 🔗

@@ -35,6 +35,7 @@ pub fn andromeda() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x23262eff).into()),
                         ghost_element_selected: Some(rgba(0x23262eff).into()),
                         text: Some(rgba(0xd5ced9ff).into()),
+                        text_muted: Some(rgba(0x746f77ff).into()),
                         status_bar_background: Some(rgba(0x23262eff).into()),
                         title_bar_background: Some(rgba(0x23262eff).into()),
                         toolbar_background: Some(rgba(0x23262eff).into()),
@@ -248,6 +249,7 @@ pub fn andromeda() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x23262eff).into()),
                         ghost_element_selected: Some(rgba(0x23262eff).into()),
                         text: Some(rgba(0xd5ced9ff).into()),
+                        text_muted: Some(rgba(0x746f77ff).into()),
                         status_bar_background: Some(rgba(0x23262eff).into()),
                         title_bar_background: Some(rgba(0x23262eff).into()),
                         toolbar_background: Some(rgba(0x262a33ff).into()),

crates/theme2/src/themes/ayu.rs 🔗

@@ -34,6 +34,7 @@ pub fn ayu() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x56728f1f).into()),
                         ghost_element_selected: Some(rgba(0x56728f1f).into()),
                         text: Some(rgba(0x8a9199ff).into()),
+                        text_muted: Some(rgba(0x8a9199ff).into()),
                         status_bar_background: Some(rgba(0xf8f9faff).into()),
                         title_bar_background: Some(rgba(0xf8f9faff).into()),
                         toolbar_background: Some(rgba(0xf8f9faff).into()),
@@ -339,6 +340,7 @@ pub fn ayu() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x63759926).into()),
                         ghost_element_selected: Some(rgba(0x63759926).into()),
                         text: Some(rgba(0x707a8cff).into()),
+                        text_muted: Some(rgba(0x707a8cff).into()),
                         status_bar_background: Some(rgba(0x1f2430ff).into()),
                         title_bar_background: Some(rgba(0x1f2430ff).into()),
                         toolbar_background: Some(rgba(0x1f2430ff).into()),
@@ -644,6 +646,7 @@ pub fn ayu() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x47526640).into()),
                         ghost_element_selected: Some(rgba(0x47526640).into()),
                         text: Some(rgba(0x565b66ff).into()),
+                        text_muted: Some(rgba(0x565b66ff).into()),
                         status_bar_background: Some(rgba(0x0b0e14ff).into()),
                         title_bar_background: Some(rgba(0x0b0e14ff).into()),
                         toolbar_background: Some(rgba(0x0b0e14ff).into()),

crates/theme2/src/themes/dracula.rs 🔗

@@ -34,6 +34,7 @@ pub fn dracula() -> UserThemeFamily {
                     ghost_element_hover: Some(rgba(0x44475a75).into()),
                     ghost_element_selected: Some(rgba(0x44475aff).into()),
                     text: Some(rgba(0xf8f8f2ff).into()),
+                    text_muted: Some(rgba(0x6272a4ff).into()),
                     status_bar_background: Some(rgba(0x191a21ff).into()),
                     title_bar_background: Some(rgba(0x21222cff).into()),
                     toolbar_background: Some(rgba(0x282a36ff).into()),

crates/theme2/src/themes/gruvbox.rs 🔗

@@ -34,6 +34,7 @@ pub fn gruvbox() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x3c383680).into()),
                         ghost_element_selected: Some(rgba(0x3c383680).into()),
                         text: Some(rgba(0xebdbb2ff).into()),
+                        text_muted: Some(rgba(0xa89984ff).into()),
                         status_bar_background: Some(rgba(0x1d2021ff).into()),
                         title_bar_background: Some(rgba(0x1d2021ff).into()),
                         toolbar_background: Some(rgba(0x1d2021ff).into()),
@@ -325,6 +326,7 @@ pub fn gruvbox() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x3c383680).into()),
                         ghost_element_selected: Some(rgba(0x3c383680).into()),
                         text: Some(rgba(0xebdbb2ff).into()),
+                        text_muted: Some(rgba(0xa89984ff).into()),
                         status_bar_background: Some(rgba(0x282828ff).into()),
                         title_bar_background: Some(rgba(0x282828ff).into()),
                         toolbar_background: Some(rgba(0x282828ff).into()),
@@ -616,6 +618,7 @@ pub fn gruvbox() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x3c383680).into()),
                         ghost_element_selected: Some(rgba(0x3c383680).into()),
                         text: Some(rgba(0xebdbb2ff).into()),
+                        text_muted: Some(rgba(0xa89984ff).into()),
                         status_bar_background: Some(rgba(0x32302fff).into()),
                         title_bar_background: Some(rgba(0x32302fff).into()),
                         toolbar_background: Some(rgba(0x32302fff).into()),
@@ -907,6 +910,7 @@ pub fn gruvbox() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0xebdbb280).into()),
                         ghost_element_selected: Some(rgba(0xebdbb280).into()),
                         text: Some(rgba(0x3c3836ff).into()),
+                        text_muted: Some(rgba(0x7c6f64ff).into()),
                         status_bar_background: Some(rgba(0xf9f5d7ff).into()),
                         title_bar_background: Some(rgba(0xf9f5d7ff).into()),
                         toolbar_background: Some(rgba(0xf9f5d7ff).into()),
@@ -1198,6 +1202,7 @@ pub fn gruvbox() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0xebdbb280).into()),
                         ghost_element_selected: Some(rgba(0xebdbb280).into()),
                         text: Some(rgba(0x3c3836ff).into()),
+                        text_muted: Some(rgba(0x7c6f64ff).into()),
                         status_bar_background: Some(rgba(0xfbf1c7ff).into()),
                         title_bar_background: Some(rgba(0xfbf1c7ff).into()),
                         toolbar_background: Some(rgba(0xfbf1c7ff).into()),
@@ -1489,6 +1494,7 @@ pub fn gruvbox() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0xebdbb280).into()),
                         ghost_element_selected: Some(rgba(0xebdbb280).into()),
                         text: Some(rgba(0x3c3836ff).into()),
+                        text_muted: Some(rgba(0x7c6f64ff).into()),
                         status_bar_background: Some(rgba(0xf2e5bcff).into()),
                         title_bar_background: Some(rgba(0xf2e5bcff).into()),
                         toolbar_background: Some(rgba(0xf2e5bcff).into()),

crates/theme2/src/themes/night_owl.rs 🔗

@@ -35,6 +35,7 @@ pub fn night_owl() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x011627ff).into()),
                         ghost_element_selected: Some(rgba(0x234d708c).into()),
                         text: Some(rgba(0xd6deebff).into()),
+                        text_muted: Some(rgba(0x5f7e97ff).into()),
                         status_bar_background: Some(rgba(0x011627ff).into()),
                         title_bar_background: Some(rgba(0x011627ff).into()),
                         toolbar_background: Some(rgba(0x011627ff).into()),
@@ -297,6 +298,7 @@ pub fn night_owl() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0xd3e8f8ff).into()),
                         ghost_element_selected: Some(rgba(0xd3e8f8ff).into()),
                         text: Some(rgba(0x403f53ff).into()),
+                        text_muted: Some(rgba(0x403f53ff).into()),
                         status_bar_background: Some(rgba(0xf0f0f0ff).into()),
                         title_bar_background: Some(rgba(0xf0f0f0ff).into()),
                         toolbar_background: Some(rgba(0xfbfbfbff).into()),

crates/theme2/src/themes/noctis.rs 🔗

@@ -35,6 +35,7 @@ pub fn noctis() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x00558a65).into()),
                         ghost_element_selected: Some(rgba(0x0c3f5fff).into()),
                         text: Some(rgba(0xbecfdaff).into()),
+                        text_muted: Some(rgba(0x9fb6c6ff).into()),
                         status_bar_background: Some(rgba(0x07273bff).into()),
                         title_bar_background: Some(rgba(0x07273bff).into()),
                         toolbar_background: Some(rgba(0x07273bff).into()),
@@ -311,6 +312,7 @@ pub fn noctis() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x533641ff).into()),
                         ghost_element_selected: Some(rgba(0x5c2e3e99).into()),
                         text: Some(rgba(0xcbbec2ff).into()),
+                        text_muted: Some(rgba(0xbbaab0ff).into()),
                         status_bar_background: Some(rgba(0x322a2dff).into()),
                         title_bar_background: Some(rgba(0x322a2dff).into()),
                         toolbar_background: Some(rgba(0x322a2dff).into()),
@@ -587,6 +589,7 @@ pub fn noctis() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0xd1eafaff).into()),
                         ghost_element_selected: Some(rgba(0xb6e1e7ff).into()),
                         text: Some(rgba(0x005661ff).into()),
+                        text_muted: Some(rgba(0x71838eff).into()),
                         status_bar_background: Some(rgba(0xcaedf2ff).into()),
                         title_bar_background: Some(rgba(0xe7f2f3ff).into()),
                         toolbar_background: Some(rgba(0xf4f6f6ff).into()),
@@ -863,6 +866,7 @@ pub fn noctis() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0xd2ccffff).into()),
                         ghost_element_selected: Some(rgba(0xbcb6e7ff).into()),
                         text: Some(rgba(0x0c006bff).into()),
+                        text_muted: Some(rgba(0x75718eff).into()),
                         status_bar_background: Some(rgba(0xe2dff6ff).into()),
                         title_bar_background: Some(rgba(0xedecf8ff).into()),
                         toolbar_background: Some(rgba(0xf2f1f8ff).into()),
@@ -1139,6 +1143,7 @@ pub fn noctis() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0xd2f3f9ff).into()),
                         ghost_element_selected: Some(rgba(0xb6e1e7ff).into()),
                         text: Some(rgba(0x005661ff).into()),
+                        text_muted: Some(rgba(0x888477ff).into()),
                         status_bar_background: Some(rgba(0xf0e9d6ff).into()),
                         title_bar_background: Some(rgba(0xf9f1e1ff).into()),
                         toolbar_background: Some(rgba(0xfef8ecff).into()),
@@ -1415,6 +1420,7 @@ pub fn noctis() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x00558aff).into()),
                         ghost_element_selected: Some(rgba(0x2c414eff).into()),
                         text: Some(rgba(0xc5cdd3ff).into()),
+                        text_muted: Some(rgba(0x96a8b6ff).into()),
                         status_bar_background: Some(rgba(0x1b2932ff).into()),
                         title_bar_background: Some(rgba(0x1b2932ff).into()),
                         toolbar_background: Some(rgba(0x1b2932ff).into()),
@@ -1691,6 +1697,7 @@ pub fn noctis() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x0b515bff).into()),
                         ghost_element_selected: Some(rgba(0x0e6671ff).into()),
                         text: Some(rgba(0xb2cacdff).into()),
+                        text_muted: Some(rgba(0x87a7abff).into()),
                         status_bar_background: Some(rgba(0x041d20ff).into()),
                         title_bar_background: Some(rgba(0x041d20ff).into()),
                         toolbar_background: Some(rgba(0x052529ff).into()),
@@ -1967,6 +1974,7 @@ pub fn noctis() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x0b515bff).into()),
                         ghost_element_selected: Some(rgba(0x0e6671ff).into()),
                         text: Some(rgba(0xb2cacdff).into()),
+                        text_muted: Some(rgba(0x87a7abff).into()),
                         status_bar_background: Some(rgba(0x031417ff).into()),
                         title_bar_background: Some(rgba(0x031417ff).into()),
                         toolbar_background: Some(rgba(0x031417ff).into()),
@@ -2243,6 +2251,7 @@ pub fn noctis() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x0b515bff).into()),
                         ghost_element_selected: Some(rgba(0x0e6671ff).into()),
                         text: Some(rgba(0xb2cacdff).into()),
+                        text_muted: Some(rgba(0x87a7abff).into()),
                         status_bar_background: Some(rgba(0x031417ff).into()),
                         title_bar_background: Some(rgba(0x031417ff).into()),
                         toolbar_background: Some(rgba(0x031417ff).into()),
@@ -2519,6 +2528,7 @@ pub fn noctis() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x383866ff).into()),
                         ghost_element_selected: Some(rgba(0x332e5cff).into()),
                         text: Some(rgba(0xc5c2d6ff).into()),
+                        text_muted: Some(rgba(0xa9a5c0ff).into()),
                         status_bar_background: Some(rgba(0x292640ff).into()),
                         title_bar_background: Some(rgba(0x292640ff).into()),
                         toolbar_background: Some(rgba(0x292640ff).into()),
@@ -2795,6 +2805,7 @@ pub fn noctis() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x6a448dff).into()),
                         ghost_element_selected: Some(rgba(0x472e60ff).into()),
                         text: Some(rgba(0xccbfd9ff).into()),
+                        text_muted: Some(rgba(0xb3a5c0ff).into()),
                         status_bar_background: Some(rgba(0x30243dff).into()),
                         title_bar_background: Some(rgba(0x30243dff).into()),
                         toolbar_background: Some(rgba(0x30243dff).into()),

crates/theme2/src/themes/nord.rs 🔗

@@ -34,6 +34,7 @@ pub fn nord() -> UserThemeFamily {
                     ghost_element_hover: Some(rgba(0x3b4252ff).into()),
                     ghost_element_selected: Some(rgba(0x88c0d0ff).into()),
                     text: Some(rgba(0xd8dee9ff).into()),
+                    text_muted: Some(rgba(0xd8dee966).into()),
                     status_bar_background: Some(rgba(0x3b4252ff).into()),
                     title_bar_background: Some(rgba(0x2e3440ff).into()),
                     toolbar_background: Some(rgba(0x2e3440ff).into()),

crates/theme2/src/themes/palenight.rs 🔗

@@ -35,6 +35,7 @@ pub fn palenight() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x0000001a).into()),
                         ghost_element_selected: Some(rgba(0x7e57c2ff).into()),
                         text: Some(rgba(0xffffffff).into()),
+                        text_muted: Some(rgba(0x929ac9ff).into()),
                         status_bar_background: Some(rgba(0x282c3dff).into()),
                         title_bar_background: Some(rgba(0x292d3eff).into()),
                         toolbar_background: Some(rgba(0x292d3eff).into()),
@@ -320,6 +321,7 @@ pub fn palenight() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x0000001a).into()),
                         ghost_element_selected: Some(rgba(0x7e57c2ff).into()),
                         text: Some(rgba(0xffffffff).into()),
+                        text_muted: Some(rgba(0x929ac9ff).into()),
                         status_bar_background: Some(rgba(0x282c3dff).into()),
                         title_bar_background: Some(rgba(0x292d3eff).into()),
                         toolbar_background: Some(rgba(0x292d3eff).into()),
@@ -605,6 +607,7 @@ pub fn palenight() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x0000001a).into()),
                         ghost_element_selected: Some(rgba(0x7e57c2ff).into()),
                         text: Some(rgba(0xffffffff).into()),
+                        text_muted: Some(rgba(0x929ac9ff).into()),
                         status_bar_background: Some(rgba(0x25293aff).into()),
                         title_bar_background: Some(rgba(0x25293aff).into()),
                         toolbar_background: Some(rgba(0x292d3eff).into()),

crates/theme2/src/themes/rose_pine.rs 🔗

@@ -35,6 +35,7 @@ pub fn rose_pine() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x6e6a861a).into()),
                         ghost_element_selected: Some(rgba(0x6e6a8633).into()),
                         text: Some(rgba(0xe0def4ff).into()),
+                        text_muted: Some(rgba(0x908caaff).into()),
                         status_bar_background: Some(rgba(0x191724ff).into()),
                         title_bar_background: Some(rgba(0x191724ff).into()),
                         toolbar_background: Some(rgba(0x191724ff).into()),
@@ -293,6 +294,7 @@ pub fn rose_pine() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x817c9c14).into()),
                         ghost_element_selected: Some(rgba(0x817c9c26).into()),
                         text: Some(rgba(0xe0def4ff).into()),
+                        text_muted: Some(rgba(0x908caaff).into()),
                         status_bar_background: Some(rgba(0x232136ff).into()),
                         title_bar_background: Some(rgba(0x232136ff).into()),
                         toolbar_background: Some(rgba(0x232136ff).into()),
@@ -551,6 +553,7 @@ pub fn rose_pine() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x6e6a860d).into()),
                         ghost_element_selected: Some(rgba(0x6e6a8614).into()),
                         text: Some(rgba(0x575279ff).into()),
+                        text_muted: Some(rgba(0x797593ff).into()),
                         status_bar_background: Some(rgba(0xfaf4edff).into()),
                         title_bar_background: Some(rgba(0xfaf4edff).into()),
                         toolbar_background: Some(rgba(0xfaf4edff).into()),

crates/theme2/src/themes/solarized.rs 🔗

@@ -34,6 +34,7 @@ pub fn solarized() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0x004454aa).into()),
                         ghost_element_selected: Some(rgba(0x005a6fff).into()),
                         text: Some(rgba(0xbbbbbbff).into()),
+                        text_muted: Some(rgba(0x93a1a1ff).into()),
                         status_bar_background: Some(rgba(0x00212bff).into()),
                         title_bar_background: Some(rgba(0x002c39ff).into()),
                         toolbar_background: Some(rgba(0x002b36ff).into()),
@@ -297,6 +298,7 @@ pub fn solarized() -> UserThemeFamily {
                         ghost_element_hover: Some(rgba(0xdfca8844).into()),
                         ghost_element_selected: Some(rgba(0xdfca88ff).into()),
                         text: Some(rgba(0x333333ff).into()),
+                        text_muted: Some(rgba(0x586e75ff).into()),
                         status_bar_background: Some(rgba(0xeee8d5ff).into()),
                         title_bar_background: Some(rgba(0xeee8d5ff).into()),
                         toolbar_background: Some(rgba(0xfdf6e3ff).into()),

crates/theme_importer/src/vscode/converter.rs 🔗

@@ -217,6 +217,10 @@ impl VsCodeThemeConverter {
                         .ok()
                         .flatten()
                 }),
+            text_muted: vscode_colors
+                .tab_inactive_foreground
+                .as_ref()
+                .traverse(|color| try_parse_color(&color))?,
             tab_bar_background: vscode_colors
                 .editor_group_header_tabs_background
                 .as_ref()