From 1dc540582dc883a6a0aa4351000f327691b6a95b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Forment?= Date: Thu, 13 Nov 2025 18:01:46 +0100 Subject: [PATCH] Temp: import themes from tuna --- THEME.md | 189 ------------------ src/App.svelte | 74 +++++-- src/base.css | 36 ++++ .../components/editor/EditorSettings.svelte | 93 +++------ .../components/editor/EditorWithLogs.svelte | 4 +- src/lib/components/editor/LogPanel.svelte | 42 ++-- .../reference/CsoundReference.svelte | 58 +++--- src/lib/components/ui/ConfirmDialog.svelte | 14 +- src/lib/components/ui/FileBrowser.svelte | 50 ++--- src/lib/components/ui/InputDialog.svelte | 22 +- src/lib/components/ui/Modal.svelte | 8 +- src/lib/components/ui/Popup.svelte | 14 +- src/lib/components/ui/ResizablePopup.svelte | 14 +- src/lib/components/ui/SidePanel.svelte | 32 +-- src/lib/components/ui/TemplateDialog.svelte | 18 +- src/lib/components/ui/TopBar.svelte | 6 +- src/lib/editor/codemirror-theme.ts | 91 +++++---- src/lib/stores/editorSettings.ts | 7 +- src/lib/themes/definitions/ayumirage.ts | 47 +++++ src/lib/themes/definitions/blue.ts | 47 +++++ src/lib/themes/definitions/bluescreen.ts | 47 +++++ src/lib/themes/definitions/catppuccin.ts | 47 +++++ src/lib/themes/definitions/darcula.ts | 47 +++++ src/lib/themes/definitions/dracula.ts | 47 +++++ src/lib/themes/definitions/georges.ts | 47 +++++ src/lib/themes/definitions/gruvbox.ts | 47 +++++ src/lib/themes/definitions/hacker.ts | 47 +++++ src/lib/themes/definitions/light.ts | 47 +++++ src/lib/themes/definitions/materialdarker.ts | 47 +++++ src/lib/themes/definitions/monodark.ts | 47 +++++ src/lib/themes/definitions/monokai.ts | 47 +++++ src/lib/themes/definitions/monolight.ts | 47 +++++ src/lib/themes/definitions/nightowl.ts | 47 +++++ src/lib/themes/definitions/nord.ts | 47 +++++ src/lib/themes/definitions/onedarkpro.ts | 47 +++++ src/lib/themes/definitions/solarizeddark.ts | 47 +++++ src/lib/themes/definitions/solarizedlight.ts | 47 +++++ src/lib/themes/definitions/tokyonight.ts | 47 +++++ src/lib/themes/exportCss.ts | 49 +++++ src/lib/themes/index.ts | 50 +++++ src/lib/themes/types.ts | 45 +++++ src/lib/themes/utils.ts | 29 +++ src/main.ts | 49 ++++- src/theme.css | 169 ---------------- 44 files changed, 1473 insertions(+), 630 deletions(-) delete mode 100644 THEME.md create mode 100644 src/base.css create mode 100644 src/lib/themes/definitions/ayumirage.ts create mode 100644 src/lib/themes/definitions/blue.ts create mode 100644 src/lib/themes/definitions/bluescreen.ts create mode 100644 src/lib/themes/definitions/catppuccin.ts create mode 100644 src/lib/themes/definitions/darcula.ts create mode 100644 src/lib/themes/definitions/dracula.ts create mode 100644 src/lib/themes/definitions/georges.ts create mode 100644 src/lib/themes/definitions/gruvbox.ts create mode 100644 src/lib/themes/definitions/hacker.ts create mode 100644 src/lib/themes/definitions/light.ts create mode 100644 src/lib/themes/definitions/materialdarker.ts create mode 100644 src/lib/themes/definitions/monodark.ts create mode 100644 src/lib/themes/definitions/monokai.ts create mode 100644 src/lib/themes/definitions/monolight.ts create mode 100644 src/lib/themes/definitions/nightowl.ts create mode 100644 src/lib/themes/definitions/nord.ts create mode 100644 src/lib/themes/definitions/onedarkpro.ts create mode 100644 src/lib/themes/definitions/solarizeddark.ts create mode 100644 src/lib/themes/definitions/solarizedlight.ts create mode 100644 src/lib/themes/definitions/tokyonight.ts create mode 100644 src/lib/themes/exportCss.ts create mode 100644 src/lib/themes/index.ts create mode 100644 src/lib/themes/types.ts create mode 100644 src/lib/themes/utils.ts delete mode 100644 src/theme.css diff --git a/THEME.md b/THEME.md deleted file mode 100644 index b0884ef..0000000 --- a/THEME.md +++ /dev/null @@ -1,189 +0,0 @@ -# Theme System - -## Overview - -The application uses a centralized CSS custom properties (variables) system defined in `src/theme.css`. This provides a consistent design language across all components and makes theme switching possible in the future. - -## Architecture - -### Theme Variables - -All theme variables are defined at the `:root` level in `theme.css` and use the `--` prefix: - -```css -:root { - --color-accent-primary: #646cff; - --space-md: 0.75rem; - --font-base: 0.875rem; -} -``` - -### Usage in Components - -Components reference theme variables using `var()`: - -```css -.my-component { - color: var(--color-text-primary); - padding: var(--space-md); - font-size: var(--font-base); -} -``` - -## Variable Categories - -### Colors - -#### Base & Surface -- `--color-bg-base`: Main background -- `--color-surface-0` through `--color-surface-3`: Elevated surfaces - -#### Text Hierarchy -- `--color-text-primary`: Main text (87% opacity) -- `--color-text-secondary`: Secondary text (60% opacity) -- `--color-text-tertiary`: Labels and hints (40% opacity) -- `--color-text-disabled`: Disabled state (25% opacity) - -#### Accent -- `--color-accent-primary`: Primary brand color (#646cff) -- `--color-accent-primary-hover`: Hover state -- `--color-accent-primary-subtle`: Transparent accent for backgrounds - -#### Semantic -- `--color-success`: Success states (#10b981) -- `--color-warning`: Warning states (#fbbf24) -- `--color-error`: Error states (#ef4444) -- `--color-info`: Informational elements (#60a5fa) - -#### Borders -- `--color-border-subtle`: Very subtle borders (6% opacity) -- `--color-border-default`: Standard borders (10% opacity) -- `--color-border-strong`: Emphasized borders (20% opacity) - -#### Interactive States -- `--color-hover-overlay`: Hover effect -- `--color-active-overlay`: Active/pressed effect -- `--color-selected-overlay`: Selection background - -### Spacing - -Uses a consistent scale from `--space-xs` (0.25rem) to `--space-2xl` (2rem): - -``` -xs: 0.25rem -sm: 0.5rem -md: 0.75rem -lg: 1rem -xl: 1.5rem -2xl: 2rem -``` - -### Typography - -#### Font Sizes -- `--font-xs` through `--font-lg` for consistent sizing -- Base size is `--font-base: 0.875rem` - -#### Font Families -- `--font-mono`: Monospace font for code -- `--font-sans`: System UI font - -#### Line Heights -- `--leading-tight`: 1.4 -- `--leading-normal`: 1.5 -- `--leading-relaxed`: 1.6 - -### Visual Effects - -- `--radius-sm/md/lg`: Border radius values -- `--shadow-sm/md/lg`: Box shadow presets -- `--transition-fast/base/slow`: Animation durations - -### Component-Specific - -Specialized tokens for specific use cases: -- `--accordion-*`: Accordion styling -- `--input-*`: Form inputs -- `--tooltip-*`: Tooltip components -- `--code-*`: Code blocks - -## Design Principles - -### Color Usage - -1. **Use accent colors sparingly**: Primary accent (#646cff) for: - - Interactive elements - - Primary actions - - Highlighted content (e.g., opcode names) - -2. **Semantic colors for meaning**: - - Blue (`--color-info`) for informational data (e.g., rates) - - Green (`--color-success`) for success states - - Yellow (`--color-warning`) for warnings - - Red (`--color-error`) for errors - -3. **Text hierarchy through opacity**: - - Use `--color-text-*` variables instead of custom opacity values - - Maintains consistency and improves readability - -### Spacing - -- Use the spacing scale consistently -- Avoid magic numbers - use defined spacing tokens -- Vertical rhythm: prefer consistent spacing between elements - -### Borders - -- Most borders should use `--color-border-subtle` for minimal visual weight -- Use `--color-border-default` for more emphasis -- Reserve `--color-border-strong` for important separators - -## Adding a New Theme - -To add a new theme (e.g., light mode): - -1. Create a new CSS file (e.g., `theme-light.css`) -2. Override the root variables: - -```css -:root { - --color-bg-base: #ffffff; - --color-text-primary: rgba(0, 0, 0, 0.87); - /* ... other overrides */ -} -``` - -3. Conditionally import based on theme preference -4. All components automatically adapt to the new values - -## Migration Guide - -When updating existing components to use the theme system: - -### Before -```css -.component { - background-color: #1a1a1a; - color: rgba(255, 255, 255, 0.87); - padding: 0.75rem; - border: 1px solid #3a3a3a; -} -``` - -### After -```css -.component { - background-color: var(--color-bg-base); - color: var(--color-text-primary); - padding: var(--space-md); - border: 1px solid var(--color-border-default); -} -``` - -## Benefits - -1. **Consistency**: Single source of truth for design tokens -2. **Maintainability**: Change once, apply everywhere -3. **Theme switching**: Easy to add light/dark mode or custom themes -4. **Readability**: Semantic names instead of magic values -5. **Scalability**: Add new tokens without touching components diff --git a/src/App.svelte b/src/App.svelte index 25b80af..ad2fff1 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -25,6 +25,7 @@ import { loadLastProjectId } from "./lib/project-system/persistence"; import { createAppContext, setAppContext } from "./lib/contexts/app-context"; import type { ProjectMode } from "./lib/project-system/types"; + import { themes } from "./lib/themes"; import { Save, Share2, @@ -238,9 +239,52 @@ } $effect(() => { - const theme = $editorSettings.theme; if (typeof document !== 'undefined') { - document.documentElement.dataset.theme = theme; + const themeName = $editorSettings.theme; + const theme = themes[themeName]; + + if (theme) { + const root = document.documentElement.style; + + root.setProperty('--bg-color', theme.colors.background); + root.setProperty('--surface-color', theme.colors.surface); + root.setProperty('--border-color', theme.colors.border); + root.setProperty('--text-color', theme.colors.text); + root.setProperty('--text-secondary', theme.colors.textSecondary); + root.setProperty('--accent-color', theme.colors.accent); + root.setProperty('--accent-hover', theme.colors.accentHover); + root.setProperty('--input-bg', theme.colors.input); + root.setProperty('--input-border', theme.colors.inputBorder); + root.setProperty('--button-bg', theme.colors.button); + root.setProperty('--button-hover', theme.colors.buttonHover); + root.setProperty('--danger-color', theme.colors.danger); + root.setProperty('--danger-hover', theme.colors.dangerHover); + + root.setProperty('--editor-background', theme.editor.background); + root.setProperty('--editor-foreground', theme.editor.foreground); + root.setProperty('--editor-caret', theme.editor.caret); + root.setProperty('--editor-selection', theme.editor.selection); + root.setProperty('--editor-active-line', theme.editor.activeLine); + root.setProperty('--editor-gutter', theme.editor.gutter); + root.setProperty('--editor-gutter-text', theme.editor.gutterText); + root.setProperty('--editor-active-line-gutter', theme.editor.activeLineGutter); + root.setProperty('--editor-line-number', theme.editor.lineNumber); + + root.setProperty('--syntax-keyword', theme.syntax.keyword); + root.setProperty('--syntax-operator', theme.syntax.operator); + root.setProperty('--syntax-string', theme.syntax.string); + root.setProperty('--syntax-number', theme.syntax.number); + root.setProperty('--syntax-boolean', theme.syntax.boolean); + root.setProperty('--syntax-comment', theme.syntax.comment); + root.setProperty('--syntax-function', theme.syntax.function); + root.setProperty('--syntax-class', theme.syntax.class); + root.setProperty('--syntax-variable', theme.syntax.variable); + root.setProperty('--syntax-property', theme.syntax.property); + root.setProperty('--syntax-constant', theme.syntax.constant); + root.setProperty('--syntax-type', theme.syntax.type); + root.setProperty('--syntax-tag', theme.syntax.tag); + root.setProperty('--syntax-attribute', theme.syntax.attribute); + } } }); @@ -554,8 +598,8 @@ .icon-button { padding: var(--space-sm); - background-color: var(--color-border-default); - color: var(--color-text-primary); + background-color: var(--border-color); + color: var(--text-color); border: 1px solid #555; cursor: pointer; display: flex; @@ -566,7 +610,7 @@ .icon-button:hover:not(:disabled) { background-color: #444; - border-color: var(--color-accent-primary); + border-color: var(--accent-color); } .icon-button:disabled { @@ -575,7 +619,7 @@ } .icon-button.has-changes { - color: var(--color-accent-primary); + color: var(--accent-color); } .icon-button.stop-button:not(:disabled) { @@ -589,11 +633,11 @@ h3 { margin-top: 0; - color: var(--color-text-primary); + color: var(--text-color); } p { - color: var(--color-text-secondary); + color: var(--text-secondary); line-height: 1.6; } @@ -610,9 +654,9 @@ .share-url-input { width: 100%; padding: var(--space-md); - background-color: var(--color-surface-3); - border: 1px solid var(--color-border-default); - color: var(--color-text-primary); + background-color: var(--surface-color); + border: 1px solid var(--border-color); + color: var(--text-color); font-size: var(--font-base); font-family: monospace; outline: none; @@ -620,12 +664,12 @@ } .share-url-input:focus { - border-color: var(--color-accent-primary); + border-color: var(--accent-color); } .share-instructions { font-size: var(--font-base); - color: var(--color-text-tertiary); + color: var(--text-secondary); margin: 0; } @@ -651,7 +695,7 @@ .enable-audio-button { margin-top: var(--space-lg); padding: var(--space-md) var(--space-2xl); - background-color: var(--color-accent-primary); + background-color: var(--accent-color); color: white; border: none; font-size: var(--font-lg); @@ -665,6 +709,6 @@ } .enable-audio-button:active { - background-color: var(--color-accent-primary-active); + background-color: var(--accent-hover); } diff --git a/src/base.css b/src/base.css new file mode 100644 index 0000000..e78a718 --- /dev/null +++ b/src/base.css @@ -0,0 +1,36 @@ +/* Base Design Tokens */ +:root { + /* Spacing Scale */ + --space-xs: 0.25rem; + --space-sm: 0.5rem; + --space-md: 0.75rem; + --space-lg: 1rem; + --space-xl: 1.5rem; + --space-2xl: 2rem; + + /* Font Sizes */ + --font-xs: 0.6875rem; + --font-sm: 0.75rem; + --font-md: 0.8125rem; + --font-base: 0.875rem; + --font-lg: 1rem; + + /* Font Families */ + --font-mono: 'Courier New', Monaco, Consolas, monospace; + --font-sans: system-ui, -apple-system, sans-serif; + + /* Line Heights */ + --leading-tight: 1.4; + --leading-normal: 1.5; + --leading-relaxed: 1.6; + + /* Transitions */ + --transition-fast: 100ms ease; + --transition-base: 200ms ease; + --transition-slow: 300ms ease; + + /* Shadows (theme-aware, will be overridden if needed) */ + --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.2); + --shadow-md: 0 2px 4px rgba(0, 0, 0, 0.3); + --shadow-lg: 0 4px 12px rgba(0, 0, 0, 0.4); +} diff --git a/src/lib/components/editor/EditorSettings.svelte b/src/lib/components/editor/EditorSettings.svelte index d775223..9955631 100644 --- a/src/lib/components/editor/EditorSettings.svelte +++ b/src/lib/components/editor/EditorSettings.svelte @@ -1,5 +1,6 @@
- Theme -
-
@@ -122,7 +119,7 @@ diff --git a/src/lib/components/ui/ConfirmDialog.svelte b/src/lib/components/ui/ConfirmDialog.svelte index 3fdf3f9..dcf4cdc 100644 --- a/src/lib/components/ui/ConfirmDialog.svelte +++ b/src/lib/components/ui/ConfirmDialog.svelte @@ -49,7 +49,7 @@ diff --git a/src/lib/components/ui/FileBrowser.svelte b/src/lib/components/ui/FileBrowser.svelte index dcff52d..e98e56e 100644 --- a/src/lib/components/ui/FileBrowser.svelte +++ b/src/lib/components/ui/FileBrowser.svelte @@ -235,7 +235,7 @@ display: flex; flex-direction: column; height: 100%; - background-color: var(--color-bg-base); + background-color: var(--bg-color); } .browser-header { @@ -243,14 +243,14 @@ justify-content: space-between; align-items: center; padding: var(--space-md); - background-color: var(--color-surface-3); - border-bottom: 1px solid var(--color-border-default); + background-color: var(--surface-color); + border-bottom: 1px solid var(--border-color); } .browser-title { font-size: var(--font-sm); font-weight: 600; - color: var(--color-text-secondary); + color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.05em; } @@ -263,7 +263,7 @@ .action-button { padding: 0.375rem; background-color: transparent; - color: var(--color-text-secondary); + color: var(--text-secondary); border: none; cursor: pointer; display: flex; @@ -273,8 +273,8 @@ } .action-button:hover { - color: var(--color-text-primary); - background-color: var(--color-active-overlay); + color: var(--text-color); + background-color: var(--editor-active-line); } .browser-content { @@ -285,7 +285,7 @@ .empty-state { padding: var(--space-2xl) var(--space-lg); text-align: center; - color: var(--color-text-tertiary); + color: var(--text-secondary); } .project-list { @@ -298,22 +298,22 @@ align-items: center; gap: var(--space-md); padding: var(--space-md); - border-bottom: 1px solid var(--color-surface-3); + border-bottom: 1px solid var(--surface-color); cursor: pointer; transition: background-color var(--transition-base); } .project-item:hover { - background-color: var(--color-surface-2); + background-color: var(--surface-color); } .project-item.selected { background-color: rgba(100, 108, 255, 0.2); - border-left: 3px solid var(--color-accent-primary); + border-left: 3px solid var(--accent-color); } .project-icon { - color: var(--color-text-secondary); + color: var(--text-secondary); display: flex; align-items: center; } @@ -325,7 +325,7 @@ .project-title { font-size: var(--font-base); - color: var(--color-text-primary); + color: var(--text-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; @@ -334,7 +334,7 @@ .delete-button { padding: var(--space-xs); background-color: transparent; - color: var(--color-text-tertiary); + color: var(--text-secondary); border: none; cursor: pointer; display: flex; @@ -354,15 +354,15 @@ } .metadata-editor { - border-top: 1px solid var(--color-surface-3); - background-color: var(--color-bg-base); + border-top: 1px solid var(--surface-color); + background-color: var(--bg-color); padding: var(--space-lg); } .metadata-header { font-size: var(--font-sm); font-weight: 600; - color: var(--color-text-secondary); + color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: var(--space-lg); @@ -382,22 +382,22 @@ .field label { font-size: var(--font-sm); - color: var(--color-text-secondary); + color: var(--text-secondary); } .field input, .field select { padding: var(--space-sm); - background-color: var(--color-surface-3); - border: 1px solid var(--color-border-default); - color: var(--color-text-primary); + background-color: var(--surface-color); + border: 1px solid var(--border-color); + color: var(--text-color); font-size: var(--font-base); outline: none; } .field input:focus, .field select:focus { - border-color: var(--color-accent-primary); + border-color: var(--accent-color); } .field select { @@ -406,9 +406,9 @@ .field.readonly .readonly-value { padding: var(--space-sm); - background-color: var(--color-bg-base); - border: 1px solid var(--color-surface-3); - color: var(--color-text-secondary); + background-color: var(--bg-color); + border: 1px solid var(--surface-color); + color: var(--text-secondary); font-size: var(--font-base); font-family: monospace; } diff --git a/src/lib/components/ui/InputDialog.svelte b/src/lib/components/ui/InputDialog.svelte index 87eeb76..e39b60c 100644 --- a/src/lib/components/ui/InputDialog.svelte +++ b/src/lib/components/ui/InputDialog.svelte @@ -68,21 +68,21 @@ } label { - color: var(--color-text-primary); + color: var(--text-color); font-size: var(--font-base); } input { padding: var(--space-sm); - background-color: var(--color-bg-base); - border: 1px solid var(--color-border-default); - color: var(--color-text-primary); + background-color: var(--bg-color); + border: 1px solid var(--border-color); + color: var(--text-color); font-size: var(--font-base); outline: none; } input:focus { - border-color: var(--color-accent-primary); + border-color: var(--accent-color); } .button-group { @@ -100,22 +100,22 @@ } .button-primary { - background-color: var(--color-accent-primary); + background-color: var(--accent-color); color: white; } .button-primary:hover { - background-color: var(--color-accent-primary-active); + background-color: var(--accent-color-active); } .button-secondary { background-color: transparent; - color: var(--color-text-secondary); - border: 1px solid var(--color-border-default); + color: var(--text-secondary); + border: 1px solid var(--border-color); } .button-secondary:hover { - background-color: var(--color-hover-overlay); - color: var(--color-text-primary); + background-color: var(--editor-active-line); + color: var(--text-color); } diff --git a/src/lib/components/ui/Modal.svelte b/src/lib/components/ui/Modal.svelte index 91c6a3c..e12c72c 100644 --- a/src/lib/components/ui/Modal.svelte +++ b/src/lib/components/ui/Modal.svelte @@ -52,8 +52,8 @@ } .modal-content { - background-color: var(--color-surface-3); - border: 1px solid var(--color-border-default); + background-color: var(--surface-color); + border: 1px solid var(--border-color); min-width: 300px; max-width: 500px; max-height: 80vh; @@ -62,12 +62,12 @@ .modal-header { padding: var(--space-lg) var(--space-xl); - border-bottom: 1px solid var(--color-border-default); + border-bottom: 1px solid var(--border-color); } .modal-header h3 { margin: 0; - color: var(--color-text-primary); + color: var(--text-color); font-size: var(--font-lg); font-weight: 600; } diff --git a/src/lib/components/ui/Popup.svelte b/src/lib/components/ui/Popup.svelte index f178648..95e0239 100644 --- a/src/lib/components/ui/Popup.svelte +++ b/src/lib/components/ui/Popup.svelte @@ -83,8 +83,8 @@ .popup { position: fixed; z-index: 9999; - background-color: var(--color-bg-base); - border: 1px solid var(--color-border-default); + background-color: var(--bg-color); + border: 1px solid var(--border-color); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5); display: flex; flex-direction: column; @@ -95,8 +95,8 @@ justify-content: space-between; align-items: center; padding: var(--space-md) var(--space-lg); - background-color: var(--color-surface-2); - border-bottom: 1px solid var(--color-border-default); + background-color: var(--surface-color); + border-bottom: 1px solid var(--border-color); cursor: move; user-select: none; } @@ -104,13 +104,13 @@ .popup-title { font-weight: 600; font-size: var(--font-base); - color: var(--color-text-primary); + color: var(--text-color); } .close-button { background: none; border: none; - color: var(--color-text-secondary); + color: var(--text-secondary); font-size: 1.5rem; line-height: 1; padding: 0; @@ -124,7 +124,7 @@ } .close-button:hover { - color: var(--color-text-primary); + color: var(--text-color); } .popup-content { diff --git a/src/lib/components/ui/ResizablePopup.svelte b/src/lib/components/ui/ResizablePopup.svelte index 320ad56..6de4ff5 100644 --- a/src/lib/components/ui/ResizablePopup.svelte +++ b/src/lib/components/ui/ResizablePopup.svelte @@ -148,8 +148,8 @@ .resizable-popup { position: fixed; z-index: 9999; - background-color: var(--color-bg-base); - border: 1px solid var(--color-border-default); + background-color: var(--bg-color); + border: 1px solid var(--border-color); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5); display: flex; flex-direction: column; @@ -160,8 +160,8 @@ justify-content: space-between; align-items: center; padding: var(--space-md) var(--space-lg); - background-color: var(--color-surface-2); - border-bottom: 1px solid var(--color-border-default); + background-color: var(--surface-color); + border-bottom: 1px solid var(--border-color); cursor: move; user-select: none; } @@ -169,13 +169,13 @@ .popup-title { font-weight: 600; font-size: var(--font-base); - color: var(--color-text-primary); + color: var(--text-color); } .close-button { background: none; border: none; - color: var(--color-text-secondary); + color: var(--text-secondary); font-size: 1.5rem; line-height: 1; padding: 0; @@ -189,7 +189,7 @@ } .close-button:hover { - color: var(--color-text-primary); + color: var(--text-color); } .popup-content { diff --git a/src/lib/components/ui/SidePanel.svelte b/src/lib/components/ui/SidePanel.svelte index 47cad50..e0a5a17 100644 --- a/src/lib/components/ui/SidePanel.svelte +++ b/src/lib/components/ui/SidePanel.svelte @@ -166,7 +166,7 @@