Skip to content

Commit 05f2cec

Browse files
committed
font - use platform specific fonts in more places
1 parent 2872e27 commit 05f2cec

File tree

9 files changed

+22
-9
lines changed

9 files changed

+22
-9
lines changed

src/vs/workbench/browser/style.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import 'vs/css!./media/style';
88
import { registerThemingParticipant, IColorTheme, ICssStyleCollector, HIGH_CONTRAST } from 'vs/platform/theme/common/themeService';
99
import { iconForeground, foreground, selectionBackground, focusBorder, scrollbarShadow, scrollbarSliderActiveBackground, scrollbarSliderBackground, scrollbarSliderHoverBackground, listHighlightForeground, inputPlaceholderForeground } from 'vs/platform/theme/common/colorRegistry';
1010
import { WORKBENCH_BACKGROUND, TITLE_BAR_ACTIVE_BACKGROUND } from 'vs/workbench/common/theme';
11-
import { isWeb, isIOS } from 'vs/base/common/platform';
11+
import { isWeb, isIOS, isMacintosh, isWindows } from 'vs/base/common/platform';
1212
import { createMetaElement } from 'vs/base/browser/dom';
1313
import { isSafari, isStandalone } from 'vs/base/browser/browser';
1414

@@ -183,3 +183,13 @@ registerThemingParticipant((theme: IColorTheme, collector: ICssStyleCollector) =
183183
collector.addRule(`body { background-color: ${workbenchBackground}; }`);
184184
}
185185
});
186+
187+
/**
188+
* The best font-family to be used in CSS based on the platform:
189+
* - Windows: Segoe preferred, fallback to sans-serif
190+
* - macOS: standard system font, fallback to sans-serif
191+
* - Linux: standard system font preferred, fallback to Ubuntu fonts
192+
*
193+
* Note: this currently does not adjust for different locales.
194+
*/
195+
export const DEFAULT_FONT_FAMILY = isWindows ? '"Segoe WPC", "Segoe UI", sans-serif' : isMacintosh ? '-apple-system, BlinkMacSystemFont, sans-serif' : 'system-ui, "Ubuntu", "Droid Sans", sans-serif';

src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import { getSimpleEditorOptions } from 'vs/workbench/contrib/codeEditor/browser/
3434
import { SelectionClipboardContributionID } from 'vs/workbench/contrib/codeEditor/browser/selectionClipboard';
3535
import { EditorExtensionsRegistry } from 'vs/editor/browser/editorExtensions';
3636
import { IThemable } from 'vs/base/common/styler';
37+
import { DEFAULT_FONT_FAMILY } from 'vs/workbench/browser/style';
3738

3839
interface SuggestResultsProvider {
3940
/**
@@ -311,7 +312,7 @@ function getSuggestEnabledInputOptions(ariaLabel?: string): IEditorOptions {
311312
roundedSelection: false,
312313
renderIndentGuides: false,
313314
cursorWidth: 1,
314-
fontFamily: ' system-ui, -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "Ubuntu", "Droid Sans", sans-serif',
315+
fontFamily: DEFAULT_FONT_FAMILY,
315316
ariaLabel: ariaLabel || '',
316317

317318
snippetSuggestions: 'none',

src/vs/workbench/contrib/scm/browser/repositoryPane.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ import { IListAccessibilityProvider } from 'vs/base/browser/ui/list/listWidget';
7575
import { IModeService } from 'vs/editor/common/services/modeService';
7676
import { ILabelService } from 'vs/platform/label/common/label';
7777
import { KeyCode } from 'vs/base/common/keyCodes';
78+
import { DEFAULT_FONT_FAMILY } from 'vs/workbench/browser/style';
7879

7980
type TreeElement = ISCMResourceGroup | IResourceNode<ISCMResource, ISCMResourceGroup> | ISCMResource;
8081

@@ -683,7 +684,7 @@ export class ToggleViewModeAction extends Action {
683684
}
684685

685686
export class RepositoryPane extends ViewPane {
686-
private readonly defaultInputFontFamily = 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "Ubuntu", "Droid Sans", sans-serif';
687+
private readonly defaultInputFontFamily = DEFAULT_FONT_FAMILY;
687688

688689
private cachedHeight: number | undefined = undefined;
689690
private cachedWidth: number | undefined = undefined;

src/vs/workbench/contrib/webview/browser/baseWebviewElement.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { ExtensionIdentifier } from 'vs/platform/extensions/common/extensions';
1313
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
1414
import { WebviewContentOptions, WebviewExtensionDescription, WebviewOptions } from 'vs/workbench/contrib/webview/browser/webview';
1515
import { areWebviewInputOptionsEqual } from 'vs/workbench/contrib/webview/browser/webviewWorkbenchService';
16-
import { WebviewThemeDataProvider } from 'vs/workbench/contrib/webview/common/themeing';
16+
import { WebviewThemeDataProvider } from 'vs/workbench/contrib/webview/browser/themeing';
1717
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
1818

1919
export const enum WebviewMessageChannels {

src/vs/workbench/contrib/webview/common/themeing.ts renamed to src/vs/workbench/contrib/webview/browser/themeing.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur
1010
import * as colorRegistry from 'vs/platform/theme/common/colorRegistry';
1111
import { DARK, IColorTheme, IThemeService, LIGHT } from 'vs/platform/theme/common/themeService';
1212
import { Emitter } from 'vs/base/common/event';
13+
import { DEFAULT_FONT_FAMILY } from 'vs/workbench/browser/style';
1314

1415
interface WebviewThemeData {
1516
readonly activeTheme: string;
@@ -64,7 +65,7 @@ export class WebviewThemeDataProvider extends Disposable {
6465
}, {} as { [key: string]: string; });
6566

6667
const styles = {
67-
'vscode-font-family': 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "Ubuntu", "Droid Sans", sans-serif',
68+
'vscode-font-family': DEFAULT_FONT_FAMILY,
6869
'vscode-font-weight': 'normal',
6970
'vscode-font-size': '13px',
7071
'vscode-editor-font-family': editorFontFamily,

src/vs/workbench/contrib/webview/browser/webviewElement.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { loadLocalResource, WebviewResourceResponse } from 'vs/platform/webview/
1515
import { BaseWebview, WebviewMessageChannels } from 'vs/workbench/contrib/webview/browser/baseWebviewElement';
1616
import { Webview, WebviewContentOptions, WebviewExtensionDescription, WebviewOptions } from 'vs/workbench/contrib/webview/browser/webview';
1717
import { WebviewPortMappingManager } from 'vs/workbench/contrib/webview/common/portMapping';
18-
import { WebviewThemeDataProvider } from 'vs/workbench/contrib/webview/common/themeing';
18+
import { WebviewThemeDataProvider } from 'vs/workbench/contrib/webview/browser/themeing';
1919
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
2020
import { isWeb } from 'vs/base/common/platform';
2121

src/vs/workbench/contrib/webview/browser/webviewService.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
77
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
88
import { IWebviewService, WebviewContentOptions, WebviewOverlay, WebviewElement, WebviewIcons, WebviewOptions, WebviewExtensionDescription } from 'vs/workbench/contrib/webview/browser/webview';
99
import { IFrameWebview } from 'vs/workbench/contrib/webview/browser/webviewElement';
10-
import { WebviewThemeDataProvider } from 'vs/workbench/contrib/webview/common/themeing';
10+
import { WebviewThemeDataProvider } from 'vs/workbench/contrib/webview/browser/themeing';
1111
import { DynamicWebviewEditorOverlay } from './dynamicWebviewEditorOverlay';
1212
import { WebviewIconManager } from './webviewIconManager';
1313

src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import { IWebviewManagerService } from 'vs/platform/webview/common/webviewManage
2727
import { BaseWebview, WebviewMessageChannels } from 'vs/workbench/contrib/webview/browser/baseWebviewElement';
2828
import { Webview, WebviewContentOptions, WebviewExtensionDescription, WebviewOptions } from 'vs/workbench/contrib/webview/browser/webview';
2929
import { WebviewPortMappingManager } from 'vs/workbench/contrib/webview/common/portMapping';
30-
import { WebviewThemeDataProvider } from 'vs/workbench/contrib/webview/common/themeing';
30+
import { WebviewThemeDataProvider } from 'vs/workbench/contrib/webview/browser/themeing';
3131
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
3232
import { WebviewFindDelegate, WebviewFindWidget } from '../browser/webviewFindWidget';
3333

src/vs/workbench/contrib/webview/electron-browser/webviewService.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { DynamicWebviewEditorOverlay } from 'vs/workbench/contrib/webview/browse
99
import { IWebviewService, WebviewContentOptions, WebviewElement, WebviewExtensionDescription, WebviewIcons, WebviewOptions, WebviewOverlay } from 'vs/workbench/contrib/webview/browser/webview';
1010
import { IFrameWebview } from 'vs/workbench/contrib/webview/browser/webviewElement';
1111
import { WebviewIconManager } from 'vs/workbench/contrib/webview/browser/webviewIconManager';
12-
import { WebviewThemeDataProvider } from 'vs/workbench/contrib/webview/common/themeing';
12+
import { WebviewThemeDataProvider } from 'vs/workbench/contrib/webview/browser/themeing';
1313
import { ElectronWebviewBasedWebview } from 'vs/workbench/contrib/webview/electron-browser/webviewElement';
1414

1515
export class ElectronWebviewService implements IWebviewService {

0 commit comments

Comments
 (0)