feat(theme): replace color scheme system with light/dark + accent skins (PR #627 by @aronprins)
Independent review by @nesquena confirmed all blockers resolved. Theme×skin two-axis system replaces old monolithic color schemes. Closes #627. Co-Authored-By: aronprins <aronprins@users.noreply.github.com>
This commit is contained in:
@@ -40,7 +40,7 @@ class TestActiveSessionTitleThemeColor(unittest.TestCase):
|
||||
def test_active_session_title_uses_theme_variable(self):
|
||||
"""
|
||||
.session-item.active .session-title must use var(--gold) not a hardcoded hex.
|
||||
The light-theme override line (data-theme="light") is allowed to keep its own
|
||||
The light-mode override line (:not(.dark)) is allowed to keep its own
|
||||
hardcoded color; we only check the base/dark rule.
|
||||
"""
|
||||
# Find all lines that match the active session title selector
|
||||
@@ -48,7 +48,7 @@ class TestActiveSessionTitleThemeColor(unittest.TestCase):
|
||||
base_rule_lines = [
|
||||
line for line in lines
|
||||
if ".session-item.active .session-title" in line
|
||||
and 'data-theme="light"' not in line
|
||||
and ':not(.dark)' not in line
|
||||
]
|
||||
|
||||
self.assertTrue(
|
||||
@@ -57,10 +57,9 @@ class TestActiveSessionTitleThemeColor(unittest.TestCase):
|
||||
)
|
||||
|
||||
for line in base_rule_lines:
|
||||
self.assertIn(
|
||||
"var(--gold)",
|
||||
line,
|
||||
f"Expected var(--gold) in active session title rule, got: {line.strip()}"
|
||||
self.assertTrue(
|
||||
"var(--gold)" in line or "var(--accent-text)" in line,
|
||||
f"Expected var(--gold) or var(--accent-text) in active session title rule, got: {line.strip()}"
|
||||
)
|
||||
self.assertNotIn(
|
||||
"#e8a030",
|
||||
@@ -69,6 +68,21 @@ class TestActiveSessionTitleThemeColor(unittest.TestCase):
|
||||
)
|
||||
|
||||
|
||||
class TestDarkTopbarSelector(unittest.TestCase):
|
||||
|
||||
def test_topbar_dark_border_uses_root_dark_selector(self):
|
||||
self.assertIn(
|
||||
":root.dark .topbar{border-bottom:1px solid rgba(255,255,255,.07);}",
|
||||
STYLE_CSS,
|
||||
"Topbar dark border override must target :root.dark after the theme-class migration",
|
||||
)
|
||||
self.assertNotIn(
|
||||
'[data-theme="dark"] .topbar',
|
||||
STYLE_CSS,
|
||||
"Topbar dark border override must not keep the removed data-theme selector",
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user