feat(web): OLED Black theme + per-appearance custom colors (#937)

* test: reproduce issue #866

* feat(web): OLED Black theme + per-appearance custom colors (closes #866)

Add an explicit OLED Black appearance (true #000 canvas, border-based
elevation) alongside system/dark/light, and a curated "key color"
customizer. Each key color (background, surface, text, hint, accent,
border, user bubble) cascades to its --app-* tokens and is stored per
appearance so a color tuned for light never leaks onto pure black.

via [HAPI](https://hapi.run)

Co-Authored-By: HAPI <noreply@hapi.run>

---------

Co-authored-by: HAPI <noreply@hapi.run>
This commit is contained in:
SSU-WEI HUANG
2026-06-18 10:15:34 +08:00
committed by GitHub
co-authored by HAPI
parent ce67823fc3
commit dfb1805fd6
11 changed files with 696 additions and 13 deletions
+12
View File
@@ -513,7 +513,19 @@ export default {
'settings.display.appearance': 'Appearance',
'settings.display.appearance.system': 'Follow System',
'settings.display.appearance.dark': 'Dark',
'settings.display.appearance.oled': 'OLED Black',
'settings.display.appearance.light': 'Light',
'settings.display.themeColors.title': 'Custom colors',
'settings.display.themeColors.description': 'Applies to the current appearance. Switch appearance to customize each one separately.',
'settings.display.themeColors.reset': 'Reset',
'settings.display.themeColors.resetAll': 'Reset all',
'settings.display.themeColors.key.background': 'Background',
'settings.display.themeColors.key.surface': 'Cards & surfaces',
'settings.display.themeColors.key.text': 'Text',
'settings.display.themeColors.key.hint': 'Muted text',
'settings.display.themeColors.key.accent': 'Accent & links',
'settings.display.themeColors.key.border': 'Borders',
'settings.display.themeColors.key.userBubble': 'Your message bubble',
'settings.display.fontSize': 'Font Size',
'settings.display.terminalFontSize': 'Terminal Font Size',
'settings.display.sessionPreviewLimit': 'Sessions Before Folding',