Fix glass theme: repair broken Default impl that blocked all builds

Commit a01f258 removed Theme::System but missed Settings::default(),
so the crate failed to compile and every desktop launch kept spawning
a stale backend binary that rejected 'glass'. Also untangles the
glass palette CSS that was duplicated as nested blocks inside the
neon rule, and re-applies the theme reactively when settings change.
This commit is contained in:
Avi 2026-08-24 19:39:32 -05:00
commit bfe14f0d97
4 changed files with 9 additions and 627 deletions

View file

@ -239,7 +239,11 @@ export function AppProvider({ children }: { children: ReactNode }) {
const copyText = useCallback((text: string) => api.copyText(text), []); const copyText = useCallback((text: string) => api.copyText(text), []);
useThemeSync(state?.settings.theme); useEffect(() => {
if (state?.settings.theme) {
applyTheme(state.settings.theme);
}
}, [state?.settings.theme]);
const value = useMemo<AppContextValue>( const value = useMemo<AppContextValue>(
() => ({ () => ({

View file

@ -62,655 +62,33 @@
Obsidian theme (MIT): black panels, deep-pink primary (#ff1493), purple Obsidian theme (MIT): black panels, deep-pink primary (#ff1493), purple
secondary (#8b00ff family), yellow highlights (#ffd700). */ secondary (#8b00ff family), yellow highlights (#ffd700). */
:root[data-theme='neon'] { :root[data-theme='neon'] {
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--bg: #000000; --bg: #000000;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--surface: #0b0b0e; --surface: #0b0b0e;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--surface-2: #131318; --surface-2: #131318;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--surface-hover: #191921; --surface-hover: #191921;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--border: #2b1224; --border: #2b1224;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--border-strong: #4d1c3d; --border-strong: #4d1c3d;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--text: #f5f2f7; --text: #f5f2f7;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--text-muted: #a89bb0; --text-muted: #a89bb0;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--primary: #ff1493; --primary: #ff1493;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--primary-hover: #ff4fb0; --primary-hover: #ff4fb0;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--primary-soft: #2b0a1e; --primary-soft: #2b0a1e;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--on-primary: #ffffff; --on-primary: #ffffff;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--danger: #ff3355; --danger: #ff3355;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--danger-soft: #330810; --danger-soft: #330810;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--warning: #ffd700; --warning: #ffd700;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--warning-soft: #332b03; --warning-soft: #332b03;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--success: #00e68a; --success: #00e68a;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--success-soft: #04301f; --success-soft: #04301f;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--info: #b388ff; --info: #b388ff;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--info-soft: #1c1035; --info-soft: #1c1035;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--focus: #ff1493; --focus: #ff1493;
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--shadow: 0 1px 2px rgba(0, 0, 0, 0.6), 0 8px 24px rgba(255, 20, 147, 0.07); --shadow: 0 1px 2px rgba(0, 0, 0, 0.6), 0 8px 24px rgba(255, 20, 147, 0.07);
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.85), 0 0 32px rgba(255, 20, 147, 0.12); --shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.85), 0 0 32px rgba(255, 20, 147, 0.12);
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] {
--bg: #0d0d0d;
--surface: #1a1a1f;
--surface-2: #24242a;
--border: #3a3a44;
--border-strong: #4a4a5a;
--text: #e0e0e7;
--text-muted: #888899;
--primary: #7fdbff;
--primary-hover: #5bc0de;
--primary-soft: #1e2a3a;
--on-primary: #050512;
--danger: #ff6b6b;
--danger-soft: #332a2a;
--warning: #f0ad4f;
--warning-soft: #332a2a;
--success: #5cb85c;
--success-soft: #2ecc71;
--info: #5bc0de;
--info-soft: #1e2c3c;
--focus: #7fdbff;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.4);
--shadow-modal: 0 12px 40px rgba(0, 0, 0, 0.5);
}
} }
/* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme (MIT): dark panels, cyan accents, and glass-like transparency simulation. */ /* "Glass" — muted frosted aesthetic inspired by the Meridian Obsidian theme
(MIT): dark panels, cyan accents, and glass-like transparency simulation. */
:root[data-theme='glass'] { :root[data-theme='glass'] {
--bg: #0d0d0d; --bg: #0d0d0d;
--surface: #1a1a1f; --surface: #1a1a1f;

View file

@ -442,7 +442,7 @@ fn cli_settings(args: &[String]) -> Result<String, AppError> {
match key.as_str() { match key.as_str() {
"theme" => { "theme" => {
let theme = Theme::parse(value).ok_or_else(|| { let theme = Theme::parse(value).ok_or_else(|| {
AppError::config("Theme must be one of: light, dark, system, neon") AppError::config("Theme must be one of: light, dark, glass, neon")
})?; })?;
app.settings.theme = theme; app.settings.theme = theme;
} }

View file

@ -60,7 +60,7 @@ fn default_true() -> bool {
impl Default for Settings { impl Default for Settings {
fn default() -> Self { fn default() -> Self {
Self { Self {
theme: Theme::System, theme: Theme::Light,
confirm_before_publish: true, confirm_before_publish: true,
shorten_npub: true, shorten_npub: true,
relays: crate::relays::default_relays(), relays: crate::relays::default_relays(),