дзеркало
https://github.com/l0ng-ai/openidea.git
синхронізовано 2026-11-09 03:05:40 +02:00
Add two contribution-only theme plugins, each with a light and a dark theme that sets every UI token plus an editor colour scheme with syntax, editor and terminal ANSI colours: - plugins/theme-solarized: Solarized Light, Solarized Dark - plugins/theme-one: One Light, One Dark (Atom One, original HSL values) They replace the partial theme-solarized-dark sample. Each package ships the MIT notice of its palette in LICENSE, which is now copied on install with the files the manifest references. scripts/theme checks every theme plugin in plugins/ against the token list of tokens.css. Theme handling that any theme benefits from: - Start-up: boot.js restores the selected plugin theme's stylesheet and the last resolved frame, text and accent colours before any CSS loads, so the splash and workbench no longer show the built-in theme until the plugin host answers. The UI keeps the boot theme until the first plugin list, and the list now waits for the initial plugin load. - Native windows: the UI reports the plugin theme's resolved frame colour, which the plugin host persists and new project windows open in. - hsl(), color-mix() and var() tokens are resolved to RGB for Tauri's window background, the native Settings window (hex) and Mermaid diagrams. - Mermaid, the terminal and the editor colour scheme follow switches between plugin themes of the same light / dark base; an explicit editor scheme now replaces a plugin theme's editor colours. Supersedes #85. Co-authored-by: bghtyu <[email protected]> Claude-Session: https://claude.ai/code/session_01VUYsdXA2nkF5v6zsC93dpn
143 рядки
4.8 KiB
JSON
143 рядки
4.8 KiB
JSON
// Solarized palette by Ethan Schoonover (https://github.com/altercation/solarized),
|
|
// MIT licence, see LICENSE. Adapted to OpenIDEA's tokens by bghtyu.
|
|
// UI theme; the editor colour scheme is in solarized-light.scheme.json.
|
|
{
|
|
"id": "solarized-light",
|
|
"name": "Solarized Light",
|
|
"kind": "light",
|
|
"tokens": {
|
|
// Surfaces
|
|
"--bg-app": "#fdf6e3",
|
|
"--bg-elev": "#eee8d5",
|
|
"--bg-popup": "#fdf6e3",
|
|
"--bg-hover": "#eee8d5",
|
|
"--bg-selected": "#eee8d5",
|
|
"--bg-selected-strong": "#eee8d5",
|
|
"--bg-current-line": "#eee8d5",
|
|
"--bg-debug-line": "color-mix(in srgb, #268bd2 12%, #fdf6e3)",
|
|
"--bg-backdrop": "#eee8d5",
|
|
"--bg-input": "#fdf6e3",
|
|
|
|
// Lines
|
|
"--border": "#eee8d5",
|
|
"--border-popup": "#eee8d5",
|
|
"--border-strong": "#657b83",
|
|
"--border-window": "#eee8d5",
|
|
"--control-off": "#657b83",
|
|
|
|
// Text
|
|
"--fg-strong": "#657b83",
|
|
"--fg-emphasis": "#657b83",
|
|
"--fg": "#657b83",
|
|
"--fg-secondary": "#657b83",
|
|
"--fg-muted": "#657b83",
|
|
"--fg-subtle": "#657b83",
|
|
"--fg-faint": "#657b83",
|
|
"--fg-gutter": "#657b83",
|
|
"--fg-icon": "#657b83",
|
|
|
|
// Accent
|
|
"--accent": "#268bd2",
|
|
"--link": "#268bd2",
|
|
"--link-hover": "#2aa198",
|
|
|
|
// Charts
|
|
"--chart-series": "#dc322f",
|
|
|
|
// Status
|
|
"--danger": "#dc322f",
|
|
"--warning": "#b58900",
|
|
"--success": "#859900",
|
|
"--db-connected": "#859900",
|
|
"--db-connected-ring": "#859900",
|
|
"--info": "#268bd2",
|
|
|
|
// Vcs
|
|
"--vcs-modified": "#268bd2",
|
|
"--vcs-added": "#859900",
|
|
"--vcs-deleted": "#657b83",
|
|
"--vcs-untracked": "#dc322f",
|
|
"--vcs-ignored": "#b58900",
|
|
"--vcs-conflict": "#dc322f",
|
|
"--gutter-modified": "#268bd2",
|
|
"--gutter-added": "#859900",
|
|
"--gutter-deleted": "#dc322f",
|
|
|
|
// Shadows and window controls
|
|
"--shadow-popup": "0 4px 16px #00000024",
|
|
"--shadow-dialog": "0 10px 36px #00000033",
|
|
"--traffic-close": "#ff5f57",
|
|
"--traffic-close-border": "#e0443e",
|
|
"--traffic-close-pressed": "#bf4942",
|
|
"--traffic-glyph": "#4d0000",
|
|
"--traffic-off": "#eee8d5",
|
|
"--traffic-off-border": "#eee8d5",
|
|
|
|
// Additive
|
|
"--bg-tooltip": "#fdf6e3",
|
|
"--fg-tooltip": "#657b83",
|
|
"--border-tooltip": "#eee8d5",
|
|
"--bg-control": "#fdf6e3",
|
|
"--bg-control-hover": "#eee8d5",
|
|
"--bg-active": "#eee8d5",
|
|
"--bg-scrim": "color-mix(in srgb, #fdf6e3 68%, transparent)",
|
|
"--fg-on-accent": "#002b36",
|
|
"--shadow-tooltip": "0 4px 16px #00000024",
|
|
"--shadow-balloon": "0 10px 36px #00000033",
|
|
|
|
// Islands contract
|
|
"--bg-frame": "#eee8d5",
|
|
"--bg-island": "#fdf6e3",
|
|
"--bg-stripe-hover": "#eee8d5",
|
|
"--bg-stripe-selected": "#eee8d5",
|
|
"--fg-stripe-selected-active": "#002b36",
|
|
"--fg-stripe-label": "#657b83",
|
|
"--bg-tab-selected": "#eee8d5",
|
|
"--border-tab-selected": "#268bd2",
|
|
"--bg-tab-selected-inactive": "#eee8d5",
|
|
"--border-tab-selected-inactive": "#eee8d5",
|
|
"--bg-tab-hover": "#eee8d5",
|
|
"--border-editor-tabs": "#eee8d5",
|
|
"--bg-tree-selected": "#eee8d5",
|
|
"--bg-tree-selected-inactive": "#eee8d5",
|
|
"--bg-tree-hover": "#eee8d5",
|
|
"--bg-toolbar-hover": "#eee8d5",
|
|
"--bg-toolbar-pressed": "#eee8d5",
|
|
"--bg-toolbar-selected": "#eee8d5",
|
|
"--bg-toolbar-selected-hover": "#eee8d5",
|
|
"--bg-button-primary-hover": "color-mix(in srgb, var(--accent) 86%, #657b83)",
|
|
"--fg-button-primary": "#002b36",
|
|
"--bg-button": "#fdf6e3",
|
|
"--border-button": "#eee8d5",
|
|
"--bg-field": "#fdf6e3",
|
|
"--bg-checkbox": "#fdf6e3",
|
|
"--border-checkbox": "#657b83",
|
|
"--bg-toggle-on": "#859900",
|
|
"--fg-toggle-on": "#002b36",
|
|
"--bg-toggle-off": "#eee8d5",
|
|
"--fg-toggle-off": "#657b83",
|
|
"--border-toggle": "#657b83",
|
|
"--bg-toggle-knob": "#657b83",
|
|
"--focus-ring-soft": "#268bd2",
|
|
"--scrollbar-thumb": "color-mix(in srgb, #657b83 24%, transparent)",
|
|
"--scrollbar-thumb-hover": "color-mix(in srgb, #657b83 42%, transparent)",
|
|
"--bg-search-match": "color-mix(in srgb, #b58900 22%, #fdf6e3)",
|
|
"--bg-search-match-current": "color-mix(in srgb, #b58900 36%, #fdf6e3)",
|
|
"--fg-search-match": "#657b83",
|
|
"--bg-dialog": "#fdf6e3",
|
|
"--bg-popup-inline": "#eee8d5",
|
|
"--bg-popup-advertiser": "#eee8d5",
|
|
"--bg-feedback-info": "color-mix(in srgb, #268bd2 12%, #fdf6e3)",
|
|
"--border-feedback-info": "color-mix(in srgb, #268bd2 55%, #fdf6e3)",
|
|
"--bg-feedback-error": "color-mix(in srgb, #dc322f 12%, #fdf6e3)",
|
|
"--border-feedback-error": "color-mix(in srgb, #dc322f 55%, #fdf6e3)",
|
|
"--bg-feedback-warning": "color-mix(in srgb, #b58900 12%, #fdf6e3)",
|
|
"--border-feedback-warning": "color-mix(in srgb, #b58900 55%, #fdf6e3)",
|
|
"--bg-feedback-success": "color-mix(in srgb, #859900 12%, #fdf6e3)",
|
|
"--border-feedback-success": "color-mix(in srgb, #859900 55%, #fdf6e3)",
|
|
"--bg-counter": "#268bd2",
|
|
"--fg-counter": "#002b36",
|
|
"--bg-progress-track": "#eee8d5"
|
|
}
|
|
}
|