From b6e855ce3ea3663bec64dc918ebc94564167bbf0 Mon Sep 17 00:00:00 2001 From: blake Date: Thu, 18 Jun 2026 13:27:03 +0200 Subject: [PATCH] Accent colors now change automatically when a user selects a theme. Also added a One Dark theme. (#130) WIP Reviewed-on: https://codeberg.org/ArkHost/HelixNotes/pulls/130 --- src/app.css | 25 +++++++++++++++++++++++++ src/lib/components/SettingsPanel.svelte | 12 ++++++++++-- src/routes/+layout.svelte | 4 ++-- 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/src/app.css b/src/app.css index a903686..c072077 100644 --- a/src/app.css +++ b/src/app.css @@ -961,6 +961,31 @@ --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.8); } +:root[data-theme="one-dark"] { + --bg-primary: #282c34; + --bg-secondary: #21252b; + --bg-tertiary: #2c313a; + --bg-hover: #3e4451; + --bg-active: #4b5263; + --bg-editor: #282c34; + --text-primary: #abb2bf; + --text-secondary: #828997; + --text-tertiary: #5c6370; + --text-accent: #61afef; + --border-color: #3e4451; + --border-light: #2c313a; + --accent: #61afef; + --accent-hover: #4d9fdf; + --accent-light: color-mix(in srgb, #61afef 12%, transparent); + --danger: #e06c75; + --danger-hover: #cc5560; + --success: #98c379; + --warning: #e5c07b; + --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3); + --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.4); + --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.5); +} + *, *::before, *::after { diff --git a/src/lib/components/SettingsPanel.svelte b/src/lib/components/SettingsPanel.svelte index 773f03f..8e20ccd 100644 --- a/src/lib/components/SettingsPanel.svelte +++ b/src/lib/components/SettingsPanel.svelte @@ -384,7 +384,7 @@ } } - const darkThemes = ['dark', 'solarized-dark', 'catppuccin', 'nord', 'tokyo-night', 'github-dark', 'dracula', 'blueberry', 'forest-green', 'gruvbox', 'midnight-tide', 'cherry-blossom', 'synthwave', 'ember', 'moonlit', 'dark-coffee', 'crimson', 'material-dark', 'monokai', 'rose-pine', 'everforest', 'horizon', 'cyberpunk', 'black']; + const darkThemes = ['dark', 'solarized-dark', 'catppuccin', 'nord', 'tokyo-night', 'github-dark', 'dracula', 'blueberry', 'forest-green', 'gruvbox', 'midnight-tide', 'cherry-blossom', 'synthwave', 'ember', 'moonlit', 'dark-coffee', 'crimson', 'material-dark', 'monokai', 'rose-pine', 'everforest', 'horizon', 'cyberpunk', 'black', 'one-dark']; let isThemeDark = $derived( darkThemes.includes($theme) || ($theme === 'system' && window.matchMedia('(prefers-color-scheme: dark)').matches) ); @@ -422,6 +422,7 @@ { id: 'horizon', label: 'Horizon', bg: '#1c1e26', sidebar: '#16181f', accent: '#e9547f' }, { id: 'cyberpunk', label: 'Cyberpunk', bg: '#0a0e17', sidebar: '#060911', accent: '#ff0080' }, { id: 'black', label: 'Black', bg: '#000000', sidebar: '#0a0a0a', accent: '#ffffff' }, + { id: 'one-dark', label: 'One Dark', bg: '#282c34', sidebar: '#21252b', accent: '#61afef' }, ]; const accentPresets = [ @@ -573,6 +574,13 @@ .catch((e) => console.error('Failed to save general settings:', e)); } + function selectTheme(preset: typeof themePresets[0]) { + $theme = preset.id; + setTheme(preset.id); + themeDropdownOpen = false; + selectCustomAccent(preset.accent); + } + function selectAccent(preset: typeof accentPresets[0]) { activeAccent = preset.name; applyAccent(preset); @@ -1061,7 +1069,7 @@