mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-10 22:21:22 -07:00
Add Solarized Dark and Solarized Light themes (#19064)
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
ddd28f6431
commit
b38e0984b9
@@ -16,12 +16,14 @@ using the `/theme` command within Gemini CLI:
|
|||||||
- `Default`
|
- `Default`
|
||||||
- `Dracula`
|
- `Dracula`
|
||||||
- `GitHub`
|
- `GitHub`
|
||||||
|
- `Solarized Dark`
|
||||||
- **Light themes:**
|
- **Light themes:**
|
||||||
- `ANSI Light`
|
- `ANSI Light`
|
||||||
- `Ayu Light`
|
- `Ayu Light`
|
||||||
- `Default Light`
|
- `Default Light`
|
||||||
- `GitHub Light`
|
- `GitHub Light`
|
||||||
- `Google Code`
|
- `Google Code`
|
||||||
|
- `Solarized Light`
|
||||||
- `Xcode`
|
- `Xcode`
|
||||||
|
|
||||||
### Changing themes
|
### Changing themes
|
||||||
@@ -232,6 +234,10 @@ identify their source, for example: `shades-of-green (green-extension)`.
|
|||||||
|
|
||||||
<img src="/assets/theme-github.png" alt="GitHub theme" width="600">
|
<img src="/assets/theme-github.png" alt="GitHub theme" width="600">
|
||||||
|
|
||||||
|
### Solarized Dark
|
||||||
|
|
||||||
|
<img src="/assets/theme-solarized-dark.png" alt="Solarized Dark theme" width="600">
|
||||||
|
|
||||||
## Light themes
|
## Light themes
|
||||||
|
|
||||||
### ANSI Light
|
### ANSI Light
|
||||||
@@ -254,6 +260,10 @@ identify their source, for example: `shades-of-green (green-extension)`.
|
|||||||
|
|
||||||
<img src="/assets/theme-google-light.png" alt="Google Code theme" width="600">
|
<img src="/assets/theme-google-light.png" alt="Google Code theme" width="600">
|
||||||
|
|
||||||
|
### Solarized Light
|
||||||
|
|
||||||
|
<img src="/assets/theme-solarized-light.png" alt="Solarized Light theme" width="600">
|
||||||
|
|
||||||
### Xcode
|
### Xcode
|
||||||
|
|
||||||
<img src="/assets/theme-xcode-light.png" alt="Xcode Light theme" width="600">
|
<img src="/assets/theme-xcode-light.png" alt="Xcode Light theme" width="600">
|
||||||
|
|||||||
@@ -114,10 +114,14 @@ export function ThemeDialog({
|
|||||||
.getAvailableThemes()
|
.getAvailableThemes()
|
||||||
.map((theme) => {
|
.map((theme) => {
|
||||||
const fullTheme = themeManager.getTheme(theme.name);
|
const fullTheme = themeManager.getTheme(theme.name);
|
||||||
|
const capitalizedType = capitalize(theme.type);
|
||||||
|
const typeDisplay = theme.name.endsWith(capitalizedType)
|
||||||
|
? ''
|
||||||
|
: capitalizedType;
|
||||||
|
|
||||||
return generateThemeItem(
|
return generateThemeItem(
|
||||||
theme.name,
|
theme.name,
|
||||||
capitalize(theme.type),
|
typeDisplay,
|
||||||
fullTheme,
|
fullTheme,
|
||||||
terminalBackgroundColor,
|
terminalBackgroundColor,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -77,39 +77,6 @@ exports[`InputPrompt > mouse interaction > should toggle paste expansion on doub
|
|||||||
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄"
|
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄"
|
||||||
`;
|
`;
|
||||||
|
|
||||||
exports[`InputPrompt > mouse interaction > should toggle paste expansion on double-click 4`] = `
|
|
||||||
"▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
|
|
||||||
> [Pasted Text: 10 lines]
|
|
||||||
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄"
|
|
||||||
`;
|
|
||||||
|
|
||||||
exports[`InputPrompt > mouse interaction > should toggle paste expansion on double-click 5`] = `
|
|
||||||
"[40m[30m▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀[39m[49m
|
|
||||||
[40m [97m> [7m[[27mPasted Text: 10 lines][39m [49m
|
|
||||||
[40m[30m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[39m[49m"
|
|
||||||
`;
|
|
||||||
|
|
||||||
exports[`InputPrompt > mouse interaction > should toggle paste expansion on double-click 6`] = `
|
|
||||||
"[40m[30m▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀[39m[49m
|
|
||||||
[40m [97m> [39m[7ml[27mine1 [49m
|
|
||||||
[40m line2 [49m
|
|
||||||
[40m line3 [49m
|
|
||||||
[40m line4 [49m
|
|
||||||
[40m line5 [49m
|
|
||||||
[40m line6 [49m
|
|
||||||
[40m line7 [49m
|
|
||||||
[40m line8 [49m
|
|
||||||
[40m line9 [49m
|
|
||||||
[40m line10 [49m
|
|
||||||
[40m[30m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[39m[49m"
|
|
||||||
`;
|
|
||||||
|
|
||||||
exports[`InputPrompt > mouse interaction > should toggle paste expansion on double-click 7`] = `
|
|
||||||
"[40m[30m▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀[39m[49m
|
|
||||||
[40m [97m> [7m[[27mPasted Text: 10 lines][39m [49m
|
|
||||||
[40m[30m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[39m[49m"
|
|
||||||
`;
|
|
||||||
|
|
||||||
exports[`InputPrompt > snapshots > should not show inverted cursor when shell is focused 1`] = `
|
exports[`InputPrompt > snapshots > should not show inverted cursor when shell is focused 1`] = `
|
||||||
"▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
|
"▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
|
||||||
> Type your message or @path/to/file
|
> Type your message or @path/to/file
|
||||||
|
|||||||
@@ -13,10 +13,10 @@ exports[`Initial Theme Selection > should default to a dark theme when terminal
|
|||||||
│ 6. GitHub Dark │ 5 a, b = b, a + b │ │
|
│ 6. GitHub Dark │ 5 a, b = b, a + b │ │
|
||||||
│ 7. Holiday Dark │ 6 return a │ │
|
│ 7. Holiday Dark │ 6 return a │ │
|
||||||
│ 8. Shades Of Purple Dark │ │ │
|
│ 8. Shades Of Purple Dark │ │ │
|
||||||
│ 9. ANSI Light Light (Incompatible) │ 1 - print("Hello, " + name) │ │
|
│ 9. Solarized Dark │ 1 - print("Hello, " + name) │ │
|
||||||
│ 10. Ayu Light Light (Incompatible) │ 1 + print(f"Hello, {name}!") │ │
|
│ 10. ANSI Light │ 1 + print(f"Hello, {name}!") │ │
|
||||||
│ 11. Default Light Light (Incompatible) │ │ │
|
│ 11. Ayu Light │ │ │
|
||||||
│ 12. GitHub Light Light (Incompatible) └────────────────────────────────────────────────────────────┘ │
|
│ 12. Default Light └────────────────────────────────────────────────────────────┘ │
|
||||||
│ ▼ │
|
│ ▼ │
|
||||||
│ │
|
│ │
|
||||||
│ (Use Enter to select, Tab to configure scope, Esc to close) │
|
│ (Use Enter to select, Tab to configure scope, Esc to close) │
|
||||||
@@ -29,18 +29,18 @@ exports[`Initial Theme Selection > should default to a light theme when terminal
|
|||||||
│ │
|
│ │
|
||||||
│ > Select Theme Preview │
|
│ > Select Theme Preview │
|
||||||
│ ▲ ┌────────────────────────────────────────────────────────────┐ │
|
│ ▲ ┌────────────────────────────────────────────────────────────┐ │
|
||||||
│ 1. ANSI Light Light │ │ │
|
│ 1. ANSI Light │ │ │
|
||||||
│ 2. Ayu Light Light │ 1 # function │ │
|
│ 2. Ayu Light │ 1 # function │ │
|
||||||
│ ● 3. Default Light Light │ 2 def fibonacci(n): │ │
|
│ ● 3. Default Light │ 2 def fibonacci(n): │ │
|
||||||
│ 4. GitHub Light Light │ 3 a, b = 0, 1 │ │
|
│ 4. GitHub Light │ 3 a, b = 0, 1 │ │
|
||||||
│ 5. Google Code Light │ 4 for _ in range(n): │ │
|
│ 5. Google Code Light │ 4 for _ in range(n): │ │
|
||||||
│ 6. Xcode Light │ 5 a, b = b, a + b │ │
|
│ 6. Solarized Light │ 5 a, b = b, a + b │ │
|
||||||
│ 7. ANSI Dark (Incompatible) │ 6 return a │ │
|
│ 7. Xcode Light │ 6 return a │ │
|
||||||
│ 8. Atom One Dark (Incompatible) │ │ │
|
│ 8. ANSI Dark (Incompatible) │ │ │
|
||||||
│ 9. Ayu Dark (Incompatible) │ 1 - print("Hello, " + name) │ │
|
│ 9. Atom One Dark (Incompatible) │ 1 - print("Hello, " + name) │ │
|
||||||
│ 10. Default Dark (Incompatible) │ 1 + print(f"Hello, {name}!") │ │
|
│ 10. Ayu Dark (Incompatible) │ 1 + print(f"Hello, {name}!") │ │
|
||||||
│ 11. Dracula Dark (Incompatible) │ │ │
|
│ 11. Default Dark (Incompatible) │ │ │
|
||||||
│ 12. GitHub Dark (Incompatible) └────────────────────────────────────────────────────────────┘ │
|
│ 12. Dracula Dark (Incompatible) └────────────────────────────────────────────────────────────┘ │
|
||||||
│ ▼ │
|
│ ▼ │
|
||||||
│ │
|
│ │
|
||||||
│ (Use Enter to select, Tab to configure scope, Esc to close) │
|
│ (Use Enter to select, Tab to configure scope, Esc to close) │
|
||||||
@@ -61,10 +61,10 @@ exports[`Initial Theme Selection > should use the theme from settings even if te
|
|||||||
│ 6. GitHub Dark │ 5 a, b = b, a + b │ │
|
│ 6. GitHub Dark │ 5 a, b = b, a + b │ │
|
||||||
│ 7. Holiday Dark │ 6 return a │ │
|
│ 7. Holiday Dark │ 6 return a │ │
|
||||||
│ 8. Shades Of Purple Dark │ │ │
|
│ 8. Shades Of Purple Dark │ │ │
|
||||||
│ 9. ANSI Light Light (Incompatible) │ 1 - print("Hello, " + name) │ │
|
│ 9. Solarized Dark │ 1 - print("Hello, " + name) │ │
|
||||||
│ 10. Ayu Light Light (Incompatible) │ 1 + print(f"Hello, {name}!") │ │
|
│ 10. ANSI Light │ 1 + print(f"Hello, {name}!") │ │
|
||||||
│ 11. Default Light Light (Incompatible) │ │ │
|
│ 11. Ayu Light │ │ │
|
||||||
│ 12. GitHub Light Light (Incompatible) └────────────────────────────────────────────────────────────┘ │
|
│ 12. Default Light └────────────────────────────────────────────────────────────┘ │
|
||||||
│ ▼ │
|
│ ▼ │
|
||||||
│ │
|
│ │
|
||||||
│ (Use Enter to select, Tab to configure scope, Esc to close) │
|
│ (Use Enter to select, Tab to configure scope, Esc to close) │
|
||||||
@@ -98,10 +98,10 @@ exports[`ThemeDialog Snapshots > should render correctly in theme selection mode
|
|||||||
│ 6. GitHub Dark │ 5 a, b = b, a + b │ │
|
│ 6. GitHub Dark │ 5 a, b = b, a + b │ │
|
||||||
│ 7. Holiday Dark │ 6 return a │ │
|
│ 7. Holiday Dark │ 6 return a │ │
|
||||||
│ 8. Shades Of Purple Dark │ │ │
|
│ 8. Shades Of Purple Dark │ │ │
|
||||||
│ 9. ANSI Light Light (Incompatible) │ 1 - print("Hello, " + name) │ │
|
│ 9. Solarized Dark │ 1 - print("Hello, " + name) │ │
|
||||||
│ 10. Ayu Light Light (Incompatible) │ 1 + print(f"Hello, {name}!") │ │
|
│ 10. ANSI Light │ 1 + print(f"Hello, {name}!") │ │
|
||||||
│ 11. Default Light Light (Incompatible) │ │ │
|
│ 11. Ayu Light │ │ │
|
||||||
│ 12. GitHub Light Light (Incompatible) └────────────────────────────────────────────────────────────┘ │
|
│ 12. Default Light └────────────────────────────────────────────────────────────┘ │
|
||||||
│ ▼ │
|
│ ▼ │
|
||||||
│ │
|
│ │
|
||||||
│ (Use Enter to select, Tab to configure scope, Esc to close) │
|
│ (Use Enter to select, Tab to configure scope, Esc to close) │
|
||||||
|
|||||||
202
packages/cli/src/ui/themes/solarized-dark.ts
Normal file
202
packages/cli/src/ui/themes/solarized-dark.ts
Normal file
@@ -0,0 +1,202 @@
|
|||||||
|
/**
|
||||||
|
* @license
|
||||||
|
* Copyright 2025 Google LLC
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { type ColorsTheme, Theme } from './theme.js';
|
||||||
|
import { type SemanticColors } from './semantic-tokens.js';
|
||||||
|
|
||||||
|
const solarizedDarkColors: ColorsTheme = {
|
||||||
|
type: 'dark',
|
||||||
|
Background: '#002b36',
|
||||||
|
Foreground: '#839496',
|
||||||
|
LightBlue: '#268bd2',
|
||||||
|
AccentBlue: '#268bd2',
|
||||||
|
AccentPurple: '#6c71c4',
|
||||||
|
AccentCyan: '#2aa198',
|
||||||
|
AccentGreen: '#859900',
|
||||||
|
AccentYellow: '#d0b000',
|
||||||
|
AccentRed: '#dc322f',
|
||||||
|
DiffAdded: '#859900',
|
||||||
|
DiffRemoved: '#dc322f',
|
||||||
|
Comment: '#586e75',
|
||||||
|
Gray: '#586e75',
|
||||||
|
DarkGray: '#073642',
|
||||||
|
GradientColors: ['#268bd2', '#2aa198'],
|
||||||
|
};
|
||||||
|
|
||||||
|
const semanticColors: SemanticColors = {
|
||||||
|
text: {
|
||||||
|
primary: '#839496',
|
||||||
|
secondary: '#586e75',
|
||||||
|
link: '#268bd2',
|
||||||
|
accent: '#268bd2',
|
||||||
|
response: '#839496',
|
||||||
|
},
|
||||||
|
background: {
|
||||||
|
primary: '#002b36',
|
||||||
|
diff: {
|
||||||
|
added: '#00382f',
|
||||||
|
removed: '#3d0115',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
border: {
|
||||||
|
default: '#073642',
|
||||||
|
focused: '#586e75',
|
||||||
|
},
|
||||||
|
ui: {
|
||||||
|
comment: '#586e75',
|
||||||
|
symbol: '#93a1a1',
|
||||||
|
dark: '#073642',
|
||||||
|
gradient: ['#268bd2', '#2aa198'],
|
||||||
|
},
|
||||||
|
status: {
|
||||||
|
success: '#859900',
|
||||||
|
warning: '#d0b000',
|
||||||
|
error: '#dc322f',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export const SolarizedDark: Theme = new Theme(
|
||||||
|
'Solarized Dark',
|
||||||
|
'dark',
|
||||||
|
{
|
||||||
|
hljs: {
|
||||||
|
display: 'block',
|
||||||
|
overflowX: 'auto',
|
||||||
|
padding: '0.5em',
|
||||||
|
background: solarizedDarkColors.Background,
|
||||||
|
color: solarizedDarkColors.Foreground,
|
||||||
|
},
|
||||||
|
'hljs-keyword': {
|
||||||
|
color: solarizedDarkColors.AccentBlue,
|
||||||
|
},
|
||||||
|
'hljs-literal': {
|
||||||
|
color: solarizedDarkColors.AccentBlue,
|
||||||
|
},
|
||||||
|
'hljs-symbol': {
|
||||||
|
color: solarizedDarkColors.AccentBlue,
|
||||||
|
},
|
||||||
|
'hljs-name': {
|
||||||
|
color: solarizedDarkColors.AccentBlue,
|
||||||
|
},
|
||||||
|
'hljs-link': {
|
||||||
|
color: solarizedDarkColors.AccentBlue,
|
||||||
|
textDecoration: 'underline',
|
||||||
|
},
|
||||||
|
'hljs-built_in': {
|
||||||
|
color: solarizedDarkColors.AccentCyan,
|
||||||
|
},
|
||||||
|
'hljs-type': {
|
||||||
|
color: solarizedDarkColors.AccentCyan,
|
||||||
|
},
|
||||||
|
'hljs-number': {
|
||||||
|
color: solarizedDarkColors.AccentGreen,
|
||||||
|
},
|
||||||
|
'hljs-class': {
|
||||||
|
color: solarizedDarkColors.AccentGreen,
|
||||||
|
},
|
||||||
|
'hljs-string': {
|
||||||
|
color: solarizedDarkColors.AccentYellow,
|
||||||
|
},
|
||||||
|
'hljs-meta-string': {
|
||||||
|
color: solarizedDarkColors.AccentYellow,
|
||||||
|
},
|
||||||
|
'hljs-regexp': {
|
||||||
|
color: solarizedDarkColors.AccentRed,
|
||||||
|
},
|
||||||
|
'hljs-template-tag': {
|
||||||
|
color: solarizedDarkColors.AccentRed,
|
||||||
|
},
|
||||||
|
'hljs-subst': {
|
||||||
|
color: solarizedDarkColors.Foreground,
|
||||||
|
},
|
||||||
|
'hljs-function': {
|
||||||
|
color: solarizedDarkColors.Foreground,
|
||||||
|
},
|
||||||
|
'hljs-title': {
|
||||||
|
color: solarizedDarkColors.Foreground,
|
||||||
|
},
|
||||||
|
'hljs-params': {
|
||||||
|
color: solarizedDarkColors.Foreground,
|
||||||
|
},
|
||||||
|
'hljs-formula': {
|
||||||
|
color: solarizedDarkColors.Foreground,
|
||||||
|
},
|
||||||
|
'hljs-comment': {
|
||||||
|
color: solarizedDarkColors.Comment,
|
||||||
|
fontStyle: 'italic',
|
||||||
|
},
|
||||||
|
'hljs-quote': {
|
||||||
|
color: solarizedDarkColors.Comment,
|
||||||
|
fontStyle: 'italic',
|
||||||
|
},
|
||||||
|
'hljs-doctag': {
|
||||||
|
color: solarizedDarkColors.Comment,
|
||||||
|
},
|
||||||
|
'hljs-meta': {
|
||||||
|
color: solarizedDarkColors.Gray,
|
||||||
|
},
|
||||||
|
'hljs-meta-keyword': {
|
||||||
|
color: solarizedDarkColors.Gray,
|
||||||
|
},
|
||||||
|
'hljs-tag': {
|
||||||
|
color: solarizedDarkColors.Gray,
|
||||||
|
},
|
||||||
|
'hljs-variable': {
|
||||||
|
color: solarizedDarkColors.AccentPurple,
|
||||||
|
},
|
||||||
|
'hljs-template-variable': {
|
||||||
|
color: solarizedDarkColors.AccentPurple,
|
||||||
|
},
|
||||||
|
'hljs-attr': {
|
||||||
|
color: solarizedDarkColors.LightBlue,
|
||||||
|
},
|
||||||
|
'hljs-attribute': {
|
||||||
|
color: solarizedDarkColors.LightBlue,
|
||||||
|
},
|
||||||
|
'hljs-builtin-name': {
|
||||||
|
color: solarizedDarkColors.LightBlue,
|
||||||
|
},
|
||||||
|
'hljs-section': {
|
||||||
|
color: solarizedDarkColors.AccentYellow,
|
||||||
|
},
|
||||||
|
'hljs-emphasis': {
|
||||||
|
fontStyle: 'italic',
|
||||||
|
},
|
||||||
|
'hljs-strong': {
|
||||||
|
fontWeight: 'bold',
|
||||||
|
},
|
||||||
|
'hljs-bullet': {
|
||||||
|
color: solarizedDarkColors.AccentYellow,
|
||||||
|
},
|
||||||
|
'hljs-selector-tag': {
|
||||||
|
color: solarizedDarkColors.AccentYellow,
|
||||||
|
},
|
||||||
|
'hljs-selector-id': {
|
||||||
|
color: solarizedDarkColors.AccentYellow,
|
||||||
|
},
|
||||||
|
'hljs-selector-class': {
|
||||||
|
color: solarizedDarkColors.AccentYellow,
|
||||||
|
},
|
||||||
|
'hljs-selector-attr': {
|
||||||
|
color: solarizedDarkColors.AccentYellow,
|
||||||
|
},
|
||||||
|
'hljs-selector-pseudo': {
|
||||||
|
color: solarizedDarkColors.AccentYellow,
|
||||||
|
},
|
||||||
|
'hljs-addition': {
|
||||||
|
backgroundColor: '#00382f',
|
||||||
|
display: 'inline-block',
|
||||||
|
width: '100%',
|
||||||
|
},
|
||||||
|
'hljs-deletion': {
|
||||||
|
backgroundColor: '#3d0115',
|
||||||
|
display: 'inline-block',
|
||||||
|
width: '100%',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
solarizedDarkColors,
|
||||||
|
semanticColors,
|
||||||
|
);
|
||||||
202
packages/cli/src/ui/themes/solarized-light.ts
Normal file
202
packages/cli/src/ui/themes/solarized-light.ts
Normal file
@@ -0,0 +1,202 @@
|
|||||||
|
/**
|
||||||
|
* @license
|
||||||
|
* Copyright 2025 Google LLC
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { type ColorsTheme, Theme } from './theme.js';
|
||||||
|
import { type SemanticColors } from './semantic-tokens.js';
|
||||||
|
|
||||||
|
const solarizedLightColors: ColorsTheme = {
|
||||||
|
type: 'light',
|
||||||
|
Background: '#fdf6e3',
|
||||||
|
Foreground: '#657b83',
|
||||||
|
LightBlue: '#268bd2',
|
||||||
|
AccentBlue: '#268bd2',
|
||||||
|
AccentPurple: '#6c71c4',
|
||||||
|
AccentCyan: '#2aa198',
|
||||||
|
AccentGreen: '#859900',
|
||||||
|
AccentYellow: '#d0b000',
|
||||||
|
AccentRed: '#dc322f',
|
||||||
|
DiffAdded: '#859900',
|
||||||
|
DiffRemoved: '#dc322f',
|
||||||
|
Comment: '#93a1a1',
|
||||||
|
Gray: '#93a1a1',
|
||||||
|
DarkGray: '#eee8d5',
|
||||||
|
GradientColors: ['#268bd2', '#2aa198'],
|
||||||
|
};
|
||||||
|
|
||||||
|
const semanticColors: SemanticColors = {
|
||||||
|
text: {
|
||||||
|
primary: '#657b83',
|
||||||
|
secondary: '#93a1a1',
|
||||||
|
link: '#268bd2',
|
||||||
|
accent: '#268bd2',
|
||||||
|
response: '#657b83',
|
||||||
|
},
|
||||||
|
background: {
|
||||||
|
primary: '#fdf6e3',
|
||||||
|
diff: {
|
||||||
|
added: '#d7f2d7',
|
||||||
|
removed: '#f2d7d7',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
border: {
|
||||||
|
default: '#eee8d5',
|
||||||
|
focused: '#93a1a1',
|
||||||
|
},
|
||||||
|
ui: {
|
||||||
|
comment: '#93a1a1',
|
||||||
|
symbol: '#586e75',
|
||||||
|
dark: '#eee8d5',
|
||||||
|
gradient: ['#268bd2', '#2aa198'],
|
||||||
|
},
|
||||||
|
status: {
|
||||||
|
success: '#859900',
|
||||||
|
warning: '#d0b000',
|
||||||
|
error: '#dc322f',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export const SolarizedLight: Theme = new Theme(
|
||||||
|
'Solarized Light',
|
||||||
|
'light',
|
||||||
|
{
|
||||||
|
hljs: {
|
||||||
|
display: 'block',
|
||||||
|
overflowX: 'auto',
|
||||||
|
padding: '0.5em',
|
||||||
|
background: solarizedLightColors.Background,
|
||||||
|
color: solarizedLightColors.Foreground,
|
||||||
|
},
|
||||||
|
'hljs-keyword': {
|
||||||
|
color: solarizedLightColors.AccentBlue,
|
||||||
|
},
|
||||||
|
'hljs-literal': {
|
||||||
|
color: solarizedLightColors.AccentBlue,
|
||||||
|
},
|
||||||
|
'hljs-symbol': {
|
||||||
|
color: solarizedLightColors.AccentBlue,
|
||||||
|
},
|
||||||
|
'hljs-name': {
|
||||||
|
color: solarizedLightColors.AccentBlue,
|
||||||
|
},
|
||||||
|
'hljs-link': {
|
||||||
|
color: solarizedLightColors.AccentBlue,
|
||||||
|
textDecoration: 'underline',
|
||||||
|
},
|
||||||
|
'hljs-built_in': {
|
||||||
|
color: solarizedLightColors.AccentCyan,
|
||||||
|
},
|
||||||
|
'hljs-type': {
|
||||||
|
color: solarizedLightColors.AccentCyan,
|
||||||
|
},
|
||||||
|
'hljs-number': {
|
||||||
|
color: solarizedLightColors.AccentGreen,
|
||||||
|
},
|
||||||
|
'hljs-class': {
|
||||||
|
color: solarizedLightColors.AccentGreen,
|
||||||
|
},
|
||||||
|
'hljs-string': {
|
||||||
|
color: solarizedLightColors.AccentYellow,
|
||||||
|
},
|
||||||
|
'hljs-meta-string': {
|
||||||
|
color: solarizedLightColors.AccentYellow,
|
||||||
|
},
|
||||||
|
'hljs-regexp': {
|
||||||
|
color: solarizedLightColors.AccentRed,
|
||||||
|
},
|
||||||
|
'hljs-template-tag': {
|
||||||
|
color: solarizedLightColors.AccentRed,
|
||||||
|
},
|
||||||
|
'hljs-subst': {
|
||||||
|
color: solarizedLightColors.Foreground,
|
||||||
|
},
|
||||||
|
'hljs-function': {
|
||||||
|
color: solarizedLightColors.Foreground,
|
||||||
|
},
|
||||||
|
'hljs-title': {
|
||||||
|
color: solarizedLightColors.Foreground,
|
||||||
|
},
|
||||||
|
'hljs-params': {
|
||||||
|
color: solarizedLightColors.Foreground,
|
||||||
|
},
|
||||||
|
'hljs-formula': {
|
||||||
|
color: solarizedLightColors.Foreground,
|
||||||
|
},
|
||||||
|
'hljs-comment': {
|
||||||
|
color: solarizedLightColors.Comment,
|
||||||
|
fontStyle: 'italic',
|
||||||
|
},
|
||||||
|
'hljs-quote': {
|
||||||
|
color: solarizedLightColors.Comment,
|
||||||
|
fontStyle: 'italic',
|
||||||
|
},
|
||||||
|
'hljs-doctag': {
|
||||||
|
color: solarizedLightColors.Comment,
|
||||||
|
},
|
||||||
|
'hljs-meta': {
|
||||||
|
color: solarizedLightColors.Gray,
|
||||||
|
},
|
||||||
|
'hljs-meta-keyword': {
|
||||||
|
color: solarizedLightColors.Gray,
|
||||||
|
},
|
||||||
|
'hljs-tag': {
|
||||||
|
color: solarizedLightColors.Gray,
|
||||||
|
},
|
||||||
|
'hljs-variable': {
|
||||||
|
color: solarizedLightColors.AccentPurple,
|
||||||
|
},
|
||||||
|
'hljs-template-variable': {
|
||||||
|
color: solarizedLightColors.AccentPurple,
|
||||||
|
},
|
||||||
|
'hljs-attr': {
|
||||||
|
color: solarizedLightColors.LightBlue,
|
||||||
|
},
|
||||||
|
'hljs-attribute': {
|
||||||
|
color: solarizedLightColors.LightBlue,
|
||||||
|
},
|
||||||
|
'hljs-builtin-name': {
|
||||||
|
color: solarizedLightColors.LightBlue,
|
||||||
|
},
|
||||||
|
'hljs-section': {
|
||||||
|
color: solarizedLightColors.AccentYellow,
|
||||||
|
},
|
||||||
|
'hljs-emphasis': {
|
||||||
|
fontStyle: 'italic',
|
||||||
|
},
|
||||||
|
'hljs-strong': {
|
||||||
|
fontWeight: 'bold',
|
||||||
|
},
|
||||||
|
'hljs-bullet': {
|
||||||
|
color: solarizedLightColors.AccentYellow,
|
||||||
|
},
|
||||||
|
'hljs-selector-tag': {
|
||||||
|
color: solarizedLightColors.AccentYellow,
|
||||||
|
},
|
||||||
|
'hljs-selector-id': {
|
||||||
|
color: solarizedLightColors.AccentYellow,
|
||||||
|
},
|
||||||
|
'hljs-selector-class': {
|
||||||
|
color: solarizedLightColors.AccentYellow,
|
||||||
|
},
|
||||||
|
'hljs-selector-attr': {
|
||||||
|
color: solarizedLightColors.AccentYellow,
|
||||||
|
},
|
||||||
|
'hljs-selector-pseudo': {
|
||||||
|
color: solarizedLightColors.AccentYellow,
|
||||||
|
},
|
||||||
|
'hljs-addition': {
|
||||||
|
backgroundColor: '#d7f2d7',
|
||||||
|
display: 'inline-block',
|
||||||
|
width: '100%',
|
||||||
|
},
|
||||||
|
'hljs-deletion': {
|
||||||
|
backgroundColor: '#f2d7d7',
|
||||||
|
display: 'inline-block',
|
||||||
|
width: '100%',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
solarizedLightColors,
|
||||||
|
semanticColors,
|
||||||
|
);
|
||||||
@@ -15,6 +15,8 @@ import { Holiday } from './holiday.js';
|
|||||||
import { DefaultLight } from './default-light.js';
|
import { DefaultLight } from './default-light.js';
|
||||||
import { DefaultDark } from './default.js';
|
import { DefaultDark } from './default.js';
|
||||||
import { ShadesOfPurple } from './shades-of-purple.js';
|
import { ShadesOfPurple } from './shades-of-purple.js';
|
||||||
|
import { SolarizedDark } from './solarized-dark.js';
|
||||||
|
import { SolarizedLight } from './solarized-light.js';
|
||||||
import { XCode } from './xcode.js';
|
import { XCode } from './xcode.js';
|
||||||
import * as fs from 'node:fs';
|
import * as fs from 'node:fs';
|
||||||
import * as path from 'node:path';
|
import * as path from 'node:path';
|
||||||
@@ -68,6 +70,8 @@ class ThemeManager {
|
|||||||
GoogleCode,
|
GoogleCode,
|
||||||
Holiday,
|
Holiday,
|
||||||
ShadesOfPurple,
|
ShadesOfPurple,
|
||||||
|
SolarizedDark,
|
||||||
|
SolarizedLight,
|
||||||
XCode,
|
XCode,
|
||||||
ANSI,
|
ANSI,
|
||||||
ANSILight,
|
ANSILight,
|
||||||
|
|||||||
Reference in New Issue
Block a user