Skip to content

Commit a1f9c67

Browse files
authored
Refactor preferencesWidget to use CSS variables (microsoft#165736)
* Refactor preferencesWidget, ref microsoft#165169
1 parent e009417 commit a1f9c67

File tree

2 files changed

+24
-72
lines changed

2 files changed

+24
-72
lines changed

src/vs/workbench/contrib/preferences/browser/media/preferences.css

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,28 @@
101101
display: none;
102102
}
103103

104+
.settings-tabs-widget > .monaco-action-bar .action-item .action-label {
105+
color: var(--vscode-panelTitle-inactiveForeground);
106+
}
107+
108+
.settings-tabs-widget > .monaco-action-bar .action-item .action-label.checked,
109+
.settings-tabs-widget > .monaco-action-bar .action-item .action-label:hover {
110+
color: var(--vscode-panelTitle-activeForeground);
111+
border-bottom: 1px solid var(--vscode-panelTitle-activeBorder);
112+
outline: 1px solid var(--vscode-contrastActiveBorder, transparent);
113+
outline-offset: -1px;
114+
}
115+
116+
.settings-tabs-widget > .monaco-action-bar .action-item .action-label:focus {
117+
border-bottom: 1px solid var(--vscode-focusBorder);
118+
outline: 1px solid transparent;
119+
outline-offset: -1px;
120+
}
121+
122+
.settings-tabs-widget > .monaco-action-bar .action-item .action-label:not(.checked):hover {
123+
outline-style: dashed;
124+
}
125+
104126
.preferences-header > .settings-header-widget {
105127
flex: 1;
106128
display: flex;

src/vs/workbench/contrib/preferences/browser/preferencesWidgets.ts

Lines changed: 2 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,10 @@ import { IContextMenuService, IContextViewService } from 'vs/platform/contextvie
2828
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
2929
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
3030
import { ILabelService } from 'vs/platform/label/common/label';
31-
import { activeContrastBorder, badgeBackground, badgeForeground, contrastBorder, focusBorder } from 'vs/platform/theme/common/colorRegistry';
31+
import { badgeBackground, badgeForeground, contrastBorder } from 'vs/platform/theme/common/colorRegistry';
3232
import { attachInputBoxStyler, attachStylerCallback } from 'vs/platform/theme/common/styler';
33-
import { IColorTheme, ICssStyleCollector, IThemeService, registerThemingParticipant, ThemeIcon } from 'vs/platform/theme/common/themeService';
33+
import { IThemeService, ThemeIcon } from 'vs/platform/theme/common/themeService';
3434
import { isWorkspaceFolder, IWorkspaceContextService, IWorkspaceFolder, WorkbenchState } from 'vs/platform/workspace/common/workspace';
35-
import { PANEL_ACTIVE_TITLE_BORDER, PANEL_ACTIVE_TITLE_FOREGROUND, PANEL_INACTIVE_TITLE_FOREGROUND } from 'vs/workbench/common/theme';
3635
import { settingsEditIcon, settingsScopeDropDownIcon } from 'vs/workbench/contrib/preferences/browser/preferencesIcons';
3736
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
3837
import { IPreferencesService } from 'vs/workbench/services/preferences/common/preferences';
@@ -575,72 +574,3 @@ export class EditPreferenceWidget<T> extends Disposable {
575574
super.dispose();
576575
}
577576
}
578-
579-
registerThemingParticipant((theme: IColorTheme, collector: ICssStyleCollector) => {
580-
581-
collector.addRule(`
582-
.settings-tabs-widget > .monaco-action-bar .action-item .action-label:focus,
583-
.settings-tabs-widget > .monaco-action-bar .action-item .action-label.checked {
584-
border-bottom: 1px solid;
585-
}
586-
`);
587-
// Title Active
588-
const titleActive = theme.getColor(PANEL_ACTIVE_TITLE_FOREGROUND);
589-
const titleActiveBorder = theme.getColor(PANEL_ACTIVE_TITLE_BORDER);
590-
if (titleActive || titleActiveBorder) {
591-
collector.addRule(`
592-
.settings-tabs-widget > .monaco-action-bar .action-item .action-label:hover,
593-
.settings-tabs-widget > .monaco-action-bar .action-item .action-label.checked {
594-
color: ${titleActive};
595-
border-bottom-color: ${titleActiveBorder};
596-
}
597-
`);
598-
}
599-
600-
// Title Inactive
601-
const titleInactive = theme.getColor(PANEL_INACTIVE_TITLE_FOREGROUND);
602-
if (titleInactive) {
603-
collector.addRule(`
604-
.settings-tabs-widget > .monaco-action-bar .action-item .action-label {
605-
color: ${titleInactive};
606-
}
607-
`);
608-
}
609-
610-
// Title focus
611-
const focusBorderColor = theme.getColor(focusBorder);
612-
if (focusBorderColor) {
613-
collector.addRule(`
614-
.settings-tabs-widget > .monaco-action-bar .action-item .action-label:focus {
615-
border-bottom-color: ${focusBorderColor} !important;
616-
}
617-
`);
618-
collector.addRule(`
619-
.settings-tabs-widget > .monaco-action-bar .action-item .action-label:focus {
620-
outline: none;
621-
}
622-
`);
623-
}
624-
625-
// Styling with Outline color (e.g. high contrast theme)
626-
const outline = theme.getColor(activeContrastBorder);
627-
if (outline) {
628-
const outline = theme.getColor(activeContrastBorder);
629-
630-
collector.addRule(`
631-
.settings-tabs-widget > .monaco-action-bar .action-item .action-label.checked,
632-
.settings-tabs-widget > .monaco-action-bar .action-item .action-label:hover {
633-
outline-color: ${outline};
634-
outline-width: 1px;
635-
outline-style: solid;
636-
border-bottom: none;
637-
padding-bottom: 0;
638-
outline-offset: -1px;
639-
}
640-
641-
.settings-tabs-widget > .monaco-action-bar .action-item .action-label:not(.checked):hover {
642-
outline-style: dashed;
643-
}
644-
`);
645-
}
646-
});

0 commit comments

Comments
 (0)