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',
+12
View File
@@ -517,7 +517,19 @@ export default {
'settings.display.appearance': '外观',
'settings.display.appearance.system': '跟随系统',
'settings.display.appearance.dark': '深色',
'settings.display.appearance.oled': 'OLED 纯黑',
'settings.display.appearance.light': '浅色',
'settings.display.themeColors.title': '自定义配色',
'settings.display.themeColors.description': '应用于当前外观。切换外观可分别自定义每种配色。',
'settings.display.themeColors.reset': '重置',
'settings.display.themeColors.resetAll': '全部重置',
'settings.display.themeColors.key.background': '背景',
'settings.display.themeColors.key.surface': '卡片与表面',
'settings.display.themeColors.key.text': '文字',
'settings.display.themeColors.key.hint': '次要文字',
'settings.display.themeColors.key.accent': '强调与链接',
'settings.display.themeColors.key.border': '边框',
'settings.display.themeColors.key.userBubble': '你的消息气泡',
'settings.display.fontSize': '字体大小',
'settings.display.terminalFontSize': '终端字体大小',
'settings.display.sessionPreviewLimit': '会话折叠阈值',