v0.4.0: Theme engine — semantic colors, presets, dark/light variants

- Theme class with role→hex hash table, mode (dark/light)
- theme-color reader/writer (gethash based)
- define-preset macro with dark and light variants
- load-preset function with keyword lookup
- 2 built-in presets: default (gold) and nord
- 30+ semantic roles per preset (primary, accent, error, syntax-*, etc.)
- 9 theme tests: create, set/get, unknown, dark/light presets,
  nord, unknown-warn, switch-mode
- 57 total component tests, 100% GREEN
This commit is contained in:
Hermes
2026-05-11 15:25:09 +00:00
parent 6ba69f4610
commit 0851311c3d
5 changed files with 183 additions and 3 deletions

View File

@@ -21,7 +21,8 @@
(:file "dirty")
(:file "box" :depends-on ("package"))
(:file "text" :depends-on ("package" "box"))
(:file "render" :depends-on ("package" "box" "text")))))
(:file "render" :depends-on ("package" "box" "text"))
(:file "theme" :depends-on ("package")))))
:in-order-to ((test-op (test-op :cl-tui-tests))))
(asdf:defsystem :cl-tui-tests
@@ -38,6 +39,7 @@
:components
((:file "box-tests")
(:file "dirty-tests")
(:file "render-tests"))))
(:file "render-tests")
(:file "theme-tests"))))
:perform (test-op (o c)
(uiop:symbol-call :cl-tui-backend-test '#:run-tests)))