дзеркало
https://github.com/l0ng-ai/openidea.git
синхронізовано 2026-11-09 03:05:40 +02:00
Adds Solarized Light, Solarized Dark, One Light and One Dark as built-in themes across the workbench, editor, terminal and Mermaid, keeping the original palettes (MIT notices in THIRD_PARTY_LICENSES.md, mapping in docs/themes.md). - Native window colours are read from tokens.css at build time (`theme_frame.rs`) instead of a second colour table. - Startup restores the built-in palette before first paint. - Editor schemes, the terminal and Mermaid refresh on switches between themes of the same kind. - The plugin packages of the same themes are removed. - A test requires every built-in palette theme to define each token (only listed ones may inherit from the base theme), so new tokens can't silently miss them. Co-authored-by: Claude <[email protected]> Claude-Session: https://claude.ai/code/session_01VUYsdXA2nkF5v6zsC93dpn
20 рядки
1004 B
TypeScript
20 рядки
1004 B
TypeScript
/** Stable built-in ids shared by settings, quick switch and editor schemes. */
|
|
export const BUILTIN_THEMES = [
|
|
{ id: "light", label: "Islands Light", kind: "light" },
|
|
{ id: "dark", label: "Islands Dark", kind: "dark" },
|
|
{ id: "dark-hc", label: "High Contrast", kind: "dark" },
|
|
{ id: "solarized-light", label: "Solarized Light", kind: "light" },
|
|
{ id: "solarized-dark", label: "Solarized Dark", kind: "dark" },
|
|
{ id: "one-light", label: "One Light", kind: "light" },
|
|
{ id: "one-dark", label: "One Dark", kind: "dark" },
|
|
] as const;
|
|
|
|
export type BuiltinThemeId = (typeof BUILTIN_THEMES)[number]["id"];
|
|
export const BUILTIN_THEME_IDS: readonly BuiltinThemeId[] = BUILTIN_THEMES.map((t) => t.id);
|
|
export function isBuiltinTheme(value: unknown): value is BuiltinThemeId {
|
|
return typeof value === "string" && (BUILTIN_THEME_IDS as readonly string[]).includes(value);
|
|
}
|
|
export function themeKind(id: BuiltinThemeId): "light" | "dark" {
|
|
return BUILTIN_THEMES.find((t) => t.id === id)!.kind;
|
|
}
|