Skip to content

Commit bc8a127

Browse files
ASRagabclaude
andauthored
feat: add Zenburnesque theme (#35)
* feat: add Zenburnesque theme — warm sage and muted earth tones Zenburn-inspired theme with sage green accent (#9ece9e), warm off-white foreground (#dcdccc), and earthy gray-brown backgrounds. Includes CSS variables, Monaco editor colors, terminal background, and AgentSelector contrast fix for dark accent-text on dark selection. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]> * feat(zenburnesque): switch accent from sage green to dusty rose Use Zenburn's iconic dusty rose (#cc9393) as the accent for a warmer glow. Shift error to coral red (#e37170) to avoid accent/error clash. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]> --------- Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
1 parent 39aff3c commit bc8a127

5 files changed

Lines changed: 51 additions & 2 deletions

File tree

src/components/AgentSelector.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,9 @@ export function AgentSelector(props: AgentSelectorProps) {
6868
border: isSelected() ? `1px solid ${theme.accent}` : `1px solid ${theme.border}`,
6969
'border-radius': '8px',
7070
color: isSelected()
71-
? store.themePreset === 'graphite' || store.themePreset === 'minimal'
71+
? store.themePreset === 'graphite' ||
72+
store.themePreset === 'minimal' ||
73+
store.themePreset === 'zenburnesque'
7274
? '#ffffff'
7375
: theme.accentText
7476
: theme.fg,

src/lib/look.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1-
export type LookPreset = 'classic' | 'graphite' | 'indigo' | 'ember' | 'glacier' | 'minimal';
1+
export type LookPreset =
2+
| 'classic'
3+
| 'graphite'
4+
| 'indigo'
5+
| 'ember'
6+
| 'glacier'
7+
| 'minimal'
8+
| 'zenburnesque';
29

310
export interface LookPresetOption {
411
id: LookPreset;
@@ -37,6 +44,11 @@ export const LOOK_PRESETS: LookPresetOption[] = [
3744
label: 'Glacier',
3845
description: 'Clean teal accents with softer depth',
3946
},
47+
{
48+
id: 'zenburnesque',
49+
label: 'Zenburnesque',
50+
description: 'Warm sage and muted earth tones',
51+
},
4052
];
4153

4254
const LOOK_PRESET_IDS = new Set<string>(LOOK_PRESETS.map((p) => p.id));

src/lib/monaco-theme.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,14 @@ const presetColors: Record<LookPreset, PresetColors> = {
6161
border: '#2a2a2a',
6262
accent: '#c8bfa0',
6363
},
64+
zenburnesque: {
65+
bgElevated: '#2e2d2a',
66+
fg: '#dcdccc',
67+
fgMuted: '#a0a090',
68+
fgSubtle: '#7f8f7f',
69+
border: '#484640',
70+
accent: '#cc9393',
71+
},
6472
};
6573

6674
function buildThemeData(c: PresetColors): monaco.editor.IStandaloneThemeData {

src/lib/theme.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ const terminalBackground: Record<LookPreset, string> = {
4747
ember: '#211918',
4848
glacier: '#232e3a',
4949
minimal: '#262626',
50+
zenburnesque: '#2e2d2a',
5051
};
5152

5253
/** Returns an xterm-compatible theme object for the given preset */

src/styles.css

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,32 @@ html[data-look='minimal'] {
280280
--shadow-pop: 0 2px 8px rgba(0, 0, 0, 0.6);
281281
}
282282

283+
html[data-look='zenburnesque'] {
284+
--bg: radial-gradient(120% 120% at 40% 10%, #353430 0%, #232220 55%, #181716 100%);
285+
--bg-elevated: #2e2d2a;
286+
--bg-input: #2a2927;
287+
--bg-hover: #3a3936;
288+
--bg-selected: #3f2e30;
289+
--bg-selected-subtle: #3f2e3040;
290+
--border: #484640;
291+
--border-subtle: #383634;
292+
--border-focus: #cc9393;
293+
--fg: #dcdccc;
294+
--fg-muted: #a0a090;
295+
--fg-subtle: #7f8f7f;
296+
--accent: #cc9393;
297+
--accent-hover: #d8a8a8;
298+
--accent-text: #1a0e0e;
299+
--link: #d8a8a8;
300+
--success: #7f9f7f;
301+
--error: #e37170;
302+
--warning: #f0dfaf;
303+
--island-bg: #262523;
304+
--island-border: #484640;
305+
--task-container-bg: #212120;
306+
--task-panel-bg: #2e2d2a;
307+
}
308+
283309
.app-shell[data-look='minimal']::before {
284310
opacity: 0 !important;
285311
background: none !important;

0 commit comments

Comments
 (0)