chore: remove bundled IBM Plex fonts

This commit is contained in:
Bohdan Triapitsyn
2026-07-02 00:45:59 +03:00
parent c9c178c000
commit 37a9179656
72 changed files with 202 additions and 252 deletions
-17
View File
@@ -25,12 +25,9 @@
"@codemirror/search": "^6.6.0", "@codemirror/search": "^6.6.0",
"@codemirror/state": "^6.5.4", "@codemirror/state": "^6.5.4",
"@codemirror/view": "6.39.13", "@codemirror/view": "6.39.13",
"@fontsource/ibm-plex-mono": "^5.2.7",
"@fontsource/ibm-plex-sans": "^5.1.1",
"@heroui/scroll-shadow": "^2.3.18", "@heroui/scroll-shadow": "^2.3.18",
"@heroui/system": "^2.4.23", "@heroui/system": "^2.4.23",
"@heroui/theme": "^2.4.23", "@heroui/theme": "^2.4.23",
"@ibm/plex": "^6.4.1",
"@lezer/highlight": "^1.2.3", "@lezer/highlight": "^1.2.3",
"@octokit/rest": "^22.0.1", "@octokit/rest": "^22.0.1",
"@opencode-ai/sdk": "^1.17.12", "@opencode-ai/sdk": "^1.17.12",
@@ -169,9 +166,6 @@
"@dnd-kit/core": "^6.3.1", "@dnd-kit/core": "^6.3.1",
"@dnd-kit/sortable": "^10.0.0", "@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2", "@dnd-kit/utilities": "^3.2.2",
"@fontsource/ibm-plex-mono": "^5.2.7",
"@fontsource/ibm-plex-sans": "^5.1.1",
"@ibm/plex": "^6.4.1",
"@lezer/highlight": "^1.2.3", "@lezer/highlight": "^1.2.3",
"@opencode-ai/sdk": "^1.17.12", "@opencode-ai/sdk": "^1.17.12",
"@pierre/diffs": "1.3.0-beta.6", "@pierre/diffs": "1.3.0-beta.6",
@@ -298,9 +292,6 @@
"@codemirror/lang-cpp": "^6.0.3", "@codemirror/lang-cpp": "^6.0.3",
"@codemirror/lang-go": "^6.0.1", "@codemirror/lang-go": "^6.0.1",
"@eslint/js": "^9.33.0", "@eslint/js": "^9.33.0",
"@fontsource/ibm-plex-mono": "^5.2.7",
"@fontsource/ibm-plex-sans": "^5.1.1",
"@ibm/plex": "^6.4.1",
"@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-collapsible": "^1.1.12",
"@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dialog": "^1.1.15",
"@radix-ui/react-dropdown-menu": "^2.1.16", "@radix-ui/react-dropdown-menu": "^2.1.16",
@@ -773,10 +764,6 @@
"@floating-ui/utils": ["@floating-ui/utils@0.2.11", "", {}, "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg=="], "@floating-ui/utils": ["@floating-ui/utils@0.2.11", "", {}, "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg=="],
"@fontsource/ibm-plex-mono": ["@fontsource/ibm-plex-mono@5.2.7", "", {}, "sha512-MKAb8qV+CaiMQn2B0dIi1OV3565NYzp3WN5b4oT6LTkk+F0jR6j0ZN+5BKJiIhffDC3rtBULsYZE65+0018z9w=="],
"@fontsource/ibm-plex-sans": ["@fontsource/ibm-plex-sans@5.2.8", "", {}, "sha512-eztSXjDhPhcpxNIiGTgMebdLP9qS4rWkysuE1V7c+DjOR0qiezaiDaTwQE7bTnG5HxAY/8M43XKDvs3cYq6ZYQ=="],
"@formatjs/ecma402-abstract": ["@formatjs/ecma402-abstract@2.3.6", "", { "dependencies": { "@formatjs/fast-memoize": "2.2.7", "@formatjs/intl-localematcher": "0.6.2", "decimal.js": "^10.4.3", "tslib": "^2.8.0" } }, "sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw=="], "@formatjs/ecma402-abstract": ["@formatjs/ecma402-abstract@2.3.6", "", { "dependencies": { "@formatjs/fast-memoize": "2.2.7", "@formatjs/intl-localematcher": "0.6.2", "decimal.js": "^10.4.3", "tslib": "^2.8.0" } }, "sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw=="],
"@formatjs/fast-memoize": ["@formatjs/fast-memoize@2.2.7", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ=="], "@formatjs/fast-memoize": ["@formatjs/fast-memoize@2.2.7", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ=="],
@@ -817,10 +804,6 @@
"@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="], "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="],
"@ibm/plex": ["@ibm/plex@6.4.1", "", { "dependencies": { "@ibm/telemetry-js": "^1.5.1" } }, "sha512-fnsipQywHt3zWvsnlyYKMikcVI7E2fEwpiPnIHFqlbByXVfQfANAAeJk1IV4mNnxhppUIDlhU0TzwYwL++Rn2g=="],
"@ibm/telemetry-js": ["@ibm/telemetry-js@1.11.0", "", { "bin": { "ibmtelemetry": "dist/collect.js" } }, "sha512-RO/9j+URJnSfseWg9ZkEX9p+a3Ousd33DBU7rOafoZB08RqdzxFVYJ2/iM50dkBuD0o7WX7GYt1sLbNgCoE+pA=="],
"@img/colour": ["@img/colour@1.1.0", "", {}, "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ=="], "@img/colour": ["@img/colour@1.1.0", "", {}, "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ=="],
"@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.35.2", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.3.1" }, "os": "darwin", "cpu": "arm64" }, "sha512-eEieHsMksAW4IiO5NzauESRl2D2qz3J/kwUxUrSfV06A93eEaRfMpHXyUb1mAqrR7i8U9A0GRqE9pjn6u1Jjpg=="], "@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.35.2", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.3.1" }, "os": "darwin", "cpu": "arm64" }, "sha512-eEieHsMksAW4IiO5NzauESRl2D2qz3J/kwUxUrSfV06A93eEaRfMpHXyUb1mAqrR7i8U9A0GRqE9pjn6u1Jjpg=="],
-3
View File
@@ -102,12 +102,9 @@
"@codemirror/search": "^6.6.0", "@codemirror/search": "^6.6.0",
"@codemirror/state": "^6.5.4", "@codemirror/state": "^6.5.4",
"@codemirror/view": "6.39.13", "@codemirror/view": "6.39.13",
"@fontsource/ibm-plex-mono": "^5.2.7",
"@fontsource/ibm-plex-sans": "^5.1.1",
"@heroui/scroll-shadow": "^2.3.18", "@heroui/scroll-shadow": "^2.3.18",
"@heroui/system": "^2.4.23", "@heroui/system": "^2.4.23",
"@heroui/theme": "^2.4.23", "@heroui/theme": "^2.4.23",
"@ibm/plex": "^6.4.1",
"@lezer/highlight": "^1.2.3", "@lezer/highlight": "^1.2.3",
"@octokit/rest": "^22.0.1", "@octokit/rest": "^22.0.1",
"@opencode-ai/sdk": "^1.17.12", "@opencode-ai/sdk": "^1.17.12",
+1 -1
View File
@@ -1434,7 +1434,7 @@ const buildStartupSplashHtml = () => {
} }
body { body {
margin: 0; margin: 0;
font-family: "IBM Plex Sans", sans-serif; font-family: "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
display: grid; display: grid;
place-items: center; place-items: center;
height: 100vh; height: 100vh;
-3
View File
@@ -42,9 +42,6 @@
"@dnd-kit/core": "^6.3.1", "@dnd-kit/core": "^6.3.1",
"@dnd-kit/sortable": "^10.0.0", "@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2", "@dnd-kit/utilities": "^3.2.2",
"@fontsource/ibm-plex-mono": "^5.2.7",
"@fontsource/ibm-plex-sans": "^5.1.1",
"@ibm/plex": "^6.4.1",
"@lezer/highlight": "^1.2.3", "@lezer/highlight": "^1.2.3",
"@opencode-ai/sdk": "^1.17.12", "@opencode-ai/sdk": "^1.17.12",
"@pierre/diffs": "1.3.0-beta.6", "@pierre/diffs": "1.3.0-beta.6",
@@ -965,7 +965,7 @@ const mermaidColorsFromTheme = (theme: Theme) => ({
surface: theme.colors.surface.muted, surface: theme.colors.surface.muted,
border: theme.colors.interactive.border, border: theme.colors.interactive.border,
transparent: true, transparent: true,
font: 'IBM Plex Sans, sans-serif', font: 'system-ui, sans-serif',
}); });
const useDecorateContext = ( const useDecorateContext = (
+6 -6
View File
@@ -708,11 +708,11 @@ html:not(.dark) .chat-scroll {
/* Pierre diff viewer styling */ /* Pierre diff viewer styling */
.pierre-diff-wrapper { .pierre-diff-wrapper {
--diffs-font-family: var(--font-mono, 'IBM Plex Mono', monospace); --diffs-font-family: var(--font-mono, ui-monospace, monospace);
--diffs-font-size: var(--text-code); --diffs-font-size: var(--text-code);
--diffs-line-height: 24px; --diffs-line-height: 24px;
--diffs-tab-size: 2; --diffs-tab-size: 2;
--diffs-header-font-family: var(--font-sans, 'IBM Plex Sans', sans-serif); --diffs-header-font-family: var(--font-sans, system-ui, sans-serif);
--diffs-min-number-column-width: 4ch; --diffs-min-number-column-width: 4ch;
--diffs-gap-inline: 0; --diffs-gap-inline: 0;
--diffs-gap-block: 0; --diffs-gap-block: 0;
@@ -923,7 +923,7 @@ html:not(.dark) .chat-scroll {
} }
} }
/* Text font: IBM Plex Sans */ /* Text font */
.markdown-content { .markdown-content {
font-family: var(--font-sans); font-family: var(--font-sans);
font-size: var(--text-markdown); font-size: var(--text-markdown);
@@ -1057,7 +1057,7 @@ html:not(.dark) .chat-scroll {
margin-bottom: 0.25em; margin-bottom: 0.25em;
} }
/* Code font: IBM Plex Mono */ /* Code font */
.markdown-content code, .markdown-content code,
.markdown-content pre { .markdown-content pre {
font-family: var(--font-mono); font-family: var(--font-mono);
@@ -1331,7 +1331,7 @@ html:not(.dark) .chat-scroll {
white-space: pre; white-space: pre;
width: max-content; width: max-content;
min-width: 100%; min-width: 100%;
font-family: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
color: var(--surface-foreground); color: var(--surface-foreground);
background: transparent; background: transparent;
} }
@@ -1388,7 +1388,7 @@ html:not(.dark) .chat-scroll {
width: max-content; width: max-content;
min-width: 100%; min-width: 100%;
min-height: 100%; min-height: 100%;
font-family: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
color: var(--surface-foreground); color: var(--surface-foreground);
background: transparent; background: transparent;
} }
+4 -16
View File
@@ -1,6 +1,6 @@
export type UiFontOption = 'ibm-plex-sans' | 'inter' | 'geist-sans' | 'atkinson-hyperlegible' | 'source-sans-3' | 'roboto' | 'noto-sans' | 'dm-sans' | 'manrope' | 'system'; export type UiFontOption = 'inter' | 'geist-sans' | 'atkinson-hyperlegible' | 'source-sans-3' | 'roboto' | 'noto-sans' | 'dm-sans' | 'manrope' | 'system';
export type MonoFontOption = 'ibm-plex-mono' | 'jetbrains-mono' | 'fira-code' | 'geist-mono' | 'commit-mono' | 'source-code-pro' | 'cascadia-code' | 'roboto-mono' | 'iosevka' | 'system-mono'; export type MonoFontOption = 'jetbrains-mono' | 'fira-code' | 'geist-mono' | 'commit-mono' | 'source-code-pro' | 'cascadia-code' | 'roboto-mono' | 'iosevka' | 'system-mono';
export interface FontFaceSource { export interface FontFaceSource {
family: string; family: string;
@@ -19,12 +19,6 @@ export interface FontOptionDefinition<T extends string> {
} }
export const UI_FONT_OPTIONS: FontOptionDefinition<UiFontOption>[] = [ export const UI_FONT_OPTIONS: FontOptionDefinition<UiFontOption>[] = [
{
id: 'ibm-plex-sans',
label: 'IBM Plex Sans',
description: 'Humanist sans-serif for optimal readability in the interface.',
stack: '"IBM Plex Sans", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif'
},
{ {
id: 'inter', id: 'inter',
label: 'Inter', label: 'Inter',
@@ -90,12 +84,6 @@ export const UI_FONT_OPTIONS: FontOptionDefinition<UiFontOption>[] = [
]; ];
export const CODE_FONT_OPTIONS: FontOptionDefinition<MonoFontOption>[] = [ export const CODE_FONT_OPTIONS: FontOptionDefinition<MonoFontOption>[] = [
{
id: 'ibm-plex-mono',
label: 'IBM Plex Mono',
description: 'Balanced monospace for code blocks and technical content.',
stack: '"IBM Plex Mono", "SFMono-Regular", "Menlo", monospace'
},
{ {
id: 'jetbrains-mono', id: 'jetbrains-mono',
label: 'JetBrains Mono', label: 'JetBrains Mono',
@@ -166,8 +154,8 @@ const buildFontMap = <T extends string>(options: FontOptionDefinition<T>[]) =>
export const UI_FONT_OPTION_MAP = buildFontMap(UI_FONT_OPTIONS); export const UI_FONT_OPTION_MAP = buildFontMap(UI_FONT_OPTIONS);
export const CODE_FONT_OPTION_MAP = buildFontMap(CODE_FONT_OPTIONS); export const CODE_FONT_OPTION_MAP = buildFontMap(CODE_FONT_OPTIONS);
export const DEFAULT_UI_FONT: UiFontOption = 'ibm-plex-sans'; export const DEFAULT_UI_FONT: UiFontOption = 'system';
export const DEFAULT_MONO_FONT: MonoFontOption = 'ibm-plex-mono'; export const DEFAULT_MONO_FONT: MonoFontOption = 'system-mono';
export const isUiFontOption = (value: unknown): value is UiFontOption => export const isUiFontOption = (value: unknown): value is UiFontOption =>
typeof value === 'string' && value in UI_FONT_OPTION_MAP; typeof value === 'string' && value in UI_FONT_OPTION_MAP;
@@ -407,9 +407,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"spacing": { "spacing": {
"xs": "0.25rem", "xs": "0.25rem",
@@ -407,9 +407,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"spacing": { "spacing": {
"xs": "0.25rem", "xs": "0.25rem",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -407,9 +407,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"spacing": { "spacing": {
"xs": "0.25rem", "xs": "0.25rem",
@@ -407,9 +407,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"spacing": { "spacing": {
"xs": "0.25rem", "xs": "0.25rem",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -168,9 +168,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -168,9 +168,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -167,9 +167,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -167,9 +167,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -407,9 +407,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"spacing": { "spacing": {
"xs": "0.25rem", "xs": "0.25rem",
@@ -407,9 +407,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"spacing": { "spacing": {
"xs": "0.25rem", "xs": "0.25rem",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -169,9 +169,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"JetBrains Mono\", \"IBM Plex Mono\", monospace", "sans": "\"JetBrains Mono\", ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"JetBrains Mono\", \"IBM Plex Mono\", monospace", "mono": "\"JetBrains Mono\", ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"JetBrains Mono\", \"IBM Plex Mono\", monospace" "heading": "\"JetBrains Mono\", ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -169,9 +169,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"JetBrains Mono\", \"IBM Plex Mono\", monospace", "sans": "\"JetBrains Mono\", ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"JetBrains Mono\", \"IBM Plex Mono\", monospace", "mono": "\"JetBrains Mono\", ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"JetBrains Mono\", \"IBM Plex Mono\", monospace" "heading": "\"JetBrains Mono\", ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -167,9 +167,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -167,9 +167,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -407,9 +407,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"spacing": { "spacing": {
"xs": "0.25rem", "xs": "0.25rem",
@@ -407,9 +407,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"spacing": { "spacing": {
"xs": "0.25rem", "xs": "0.25rem",
@@ -167,9 +167,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -167,9 +167,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -145,9 +145,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -145,9 +145,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -407,9 +407,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"spacing": { "spacing": {
"xs": "0.25rem", "xs": "0.25rem",
@@ -407,9 +407,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"spacing": { "spacing": {
"xs": "0.25rem", "xs": "0.25rem",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -407,9 +407,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"spacing": { "spacing": {
"xs": "0.25rem", "xs": "0.25rem",
@@ -407,9 +407,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"spacing": { "spacing": {
"xs": "0.25rem", "xs": "0.25rem",
@@ -407,9 +407,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"spacing": { "spacing": {
"xs": "0.25rem", "xs": "0.25rem",
@@ -407,9 +407,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"spacing": { "spacing": {
"xs": "0.25rem", "xs": "0.25rem",
@@ -407,9 +407,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"spacing": { "spacing": {
"xs": "0.25rem", "xs": "0.25rem",
@@ -407,9 +407,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"spacing": { "spacing": {
"xs": "0.25rem", "xs": "0.25rem",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -407,9 +407,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"spacing": { "spacing": {
"xs": "0.25rem", "xs": "0.25rem",
@@ -407,9 +407,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"spacing": { "spacing": {
"xs": "0.25rem", "xs": "0.25rem",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -165,9 +165,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -145,9 +145,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -145,9 +145,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"transitions": { "transitions": {
"fast": "150ms ease", "fast": "150ms ease",
@@ -407,9 +407,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"spacing": { "spacing": {
"xs": "0.25rem", "xs": "0.25rem",
@@ -407,9 +407,9 @@
}, },
"config": { "config": {
"fonts": { "fonts": {
"sans": "\"IBM Plex Mono\", monospace", "sans": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"mono": "\"IBM Plex Mono\", monospace", "mono": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace",
"heading": "\"IBM Plex Mono\", monospace" "heading": "ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Cascadia Mono\", \"Segoe UI Mono\", monospace"
}, },
"spacing": { "spacing": {
"xs": "0.25rem", "xs": "0.25rem",
+2 -2
View File
@@ -343,9 +343,9 @@
--markdown-heading4-size: var(--text-markdown); --markdown-heading4-size: var(--text-markdown);
--markdown-heading5-size: var(--text-markdown); --markdown-heading5-size: var(--text-markdown);
--markdown-heading6-size: var(--text-markdown); --markdown-heading6-size: var(--text-markdown);
--font-sans: "IBM Plex Mono", "JetBrains Mono", "Fira Code", "SFMono-Regular", "Menlo", monospace; --font-sans: "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
--font-heading: var(--font-sans); --font-heading: var(--font-sans);
--font-mono: "IBM Plex Mono", "JetBrains Mono", "Fira Code", "SFMono-Regular", "Menlo", monospace; --font-mono: ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace;
--font-family-sans: var(--font-sans); --font-family-sans: var(--font-sans);
--font-family-mono: var(--font-mono); --font-family-mono: var(--font-mono);
} }
+1 -9
View File
@@ -1,9 +1 @@
// Default fonts use system stacks. Optional user-selected fonts are loaded on demand.
import '@fontsource/ibm-plex-sans/latin-400.css';
import '@fontsource/ibm-plex-sans/latin-500.css';
import '@fontsource/ibm-plex-sans/latin-600.css';
import '@fontsource/ibm-plex-mono/latin-400.css';
import '@fontsource/ibm-plex-mono/latin-500.css';
import '@fontsource/ibm-plex-mono/latin-600.css';
-3
View File
@@ -51,9 +51,6 @@
"@codemirror/lang-cpp": "^6.0.3", "@codemirror/lang-cpp": "^6.0.3",
"@codemirror/lang-go": "^6.0.1", "@codemirror/lang-go": "^6.0.1",
"@eslint/js": "^9.33.0", "@eslint/js": "^9.33.0",
"@fontsource/ibm-plex-mono": "^5.2.7",
"@fontsource/ibm-plex-sans": "^5.1.1",
"@ibm/plex": "^6.4.1",
"@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-collapsible": "^1.1.12",
"@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dialog": "^1.1.15",
"@radix-ui/react-dropdown-menu": "^2.1.16", "@radix-ui/react-dropdown-menu": "^2.1.16",
+4 -8
View File
@@ -18,8 +18,8 @@
// The sentence wraps automatically; the version + sentence block is // The sentence wraps automatically; the version + sentence block is
// bottom-anchored over a readability scrim so the glowing plate stays visible. // bottom-anchored over a readability scrim so the glowing plate stays visible.
// //
// Fonts (IBM Plex Sans, Instrument Serif) are fetched once from Fontsource // Accent fonts are fetched once from Fontsource into ./.fonts (gitignored)
// into ./.fonts (gitignored) and wired into fontconfig for Pango. // and wired into fontconfig for Pango. Main text uses the system sans stack.
import { mkdir, writeFile, readFile, access } from 'node:fs/promises'; import { mkdir, writeFile, readFile, access } from 'node:fs/promises';
import { fileURLToPath } from 'node:url'; import { fileURLToPath } from 'node:url';
@@ -30,10 +30,6 @@ const repoRoot = path.resolve(toolDir, '..', '..');
const fontsDir = path.join(toolDir, '.fonts'); const fontsDir = path.join(toolDir, '.fonts');
const FONTS = [ const FONTS = [
{
file: 'IBMPlexSans-SemiBold.ttf',
url: 'https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/latin-600-normal.ttf',
},
{ {
file: 'InstrumentSerif-Italic.ttf', file: 'InstrumentSerif-Italic.ttf',
url: 'https://cdn.jsdelivr.net/fontsource/fonts/instrument-serif@latest/latin-400-italic.ttf', url: 'https://cdn.jsdelivr.net/fontsource/fonts/instrument-serif@latest/latin-400-italic.ttf',
@@ -142,7 +138,7 @@ async function main() {
const sentenceBuf = await sharp({ const sentenceBuf = await sharp({
text: { text: {
text: toPangoMarkup(sentence), text: toPangoMarkup(sentence),
font: 'IBM Plex Sans 92', font: 'system-ui 92',
rgba: true, rgba: true,
width: wrapWidth, width: wrapWidth,
wrap: 'word', wrap: 'word',
@@ -160,7 +156,7 @@ async function main() {
text: `<span foreground="${AMBER}" letter_spacing="2048">${escapeMarkup( text: `<span foreground="${AMBER}" letter_spacing="2048">${escapeMarkup(
title title
)}</span>`, )}</span>`,
font: 'IBM Plex Sans 64', font: 'system-ui 64',
rgba: true, rgba: true,
align: 'left', align: 'left',
}, },
+3 -3
View File
@@ -120,9 +120,9 @@ const DEFAULT_OUT_DIR = path.join(REPO_ROOT, 'packages', 'ui', 'src', 'lib', 'th
const DEFAULT_CONFIG = { const DEFAULT_CONFIG = {
fonts: { fonts: {
sans: '"IBM Plex Mono", monospace', sans: '"SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif',
mono: '"IBM Plex Mono", monospace', mono: 'ui-monospace, "SFMono-Regular", "Menlo", "Cascadia Mono", "Segoe UI Mono", monospace',
heading: '"IBM Plex Mono", monospace', heading: '"SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif',
}, },
radius: { radius: {
none: '0', none: '0',