app

Local-first trade for farms and co-ops
git clone https://radroots.dev/git/app.git
Log | Files | Refs | README | LICENSE

commit 7ab05e584d454cd174802239e0a19b6198c511b8
parent d09bbf957567a49a33a36d468a4c05d2c65b30b4
Author: triesap <triesap@radroots.dev>
Date:   Thu, 22 Jan 2026 22:49:24 +0000

ui: align tokens with data-theme

- add explicit os_dark and os_light token blocks
- gate system dark tokens when light theme is forced
- mirror light palette into explicit data-theme override
- keep token overrides scoped to root

Diffstat:
Mcrates/ui-tokens/assets/tokens.css | 48+++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 47 insertions(+), 1 deletion(-)

diff --git a/crates/ui-tokens/assets/tokens.css b/crates/ui-tokens/assets/tokens.css @@ -73,7 +73,7 @@ } @media (prefers-color-scheme: dark) { - :root { + :root:not([data-theme="os_light"]) { --bg-app: #000000; --bg-grouped: #1c1c1e; --bg-elevated: #2c2c2e; @@ -95,6 +95,52 @@ } } +:root[data-theme="os_dark"] { + --bg-app: #000000; + --bg-grouped: #1c1c1e; + --bg-elevated: #2c2c2e; + + --text-primary: #f5f5f7; + --text-secondary: #a1a1a6; + --text-tertiary: #6e6e73; + + --separator: rgba(84, 84, 88, 0.65); + --stroke: rgba(84, 84, 88, 0.35); + + --accent: #0a84ff; + --accent-contrast: #ffffff; + + --material-thin: rgba(44, 44, 46, 0.5); + --material-regular: rgba(44, 44, 46, 0.72); + --material-thick: rgba(44, 44, 46, 0.85); + --material-chrome: rgba(28, 28, 30, 0.9); +} + +:root[data-theme="os_light"] { + --bg-app: #f2f2f7; + --bg-grouped: #f2f2f7; + --bg-elevated: #ffffff; + + --text-primary: #111111; + --text-secondary: #3c3c43; + --text-tertiary: #6e6e73; + + --separator: rgba(60, 60, 67, 0.29); + --stroke: rgba(60, 60, 67, 0.18); + + --accent: #007aff; + --accent-contrast: #ffffff; + + --destructive: #ff3b30; + --warning: #ff9500; + --success: #34c759; + + --material-thin: rgba(255, 255, 255, 0.55); + --material-regular: rgba(255, 255, 255, 0.72); + --material-thick: rgba(255, 255, 255, 0.85); + --material-chrome: rgba(242, 242, 247, 0.9); +} + @media (prefers-reduced-motion: reduce) { :root { --dur-1: 1ms;