From 2d333f73843a4b00d57dd24f351fa42a41bd0e49 Mon Sep 17 00:00:00 2001 From: Burcu Noyan Date: Thu, 2 Jul 2026 17:40:31 -0400 Subject: [PATCH] Ship a semantic token layer with dark mode in boxel-ui Own the semantic design tokens in the addon instead of leaving them to consumers: - theme.css (new): defines the full semantic contract (--primary, --foreground, --muted, --card, --border, --destructive, --sidebar-*, shadows, etc.) mapped onto the --boxel-* palette as a default light theme, plus a dark theme via .dark / [data-theme="dark"] and an opt-in [data-theme="system"] scope. Also emits an inherited --boxel-color-scheme signal for cards to key off. - variables.css: mark the raw --boxel-* palette as an internal implementation detail; component/card styles should consume the semantic tokens. - button, multi-select: migrate bare palette border refs onto var(--border, ...). --- .../addon/src/components/button/index.gts | 2 +- .../src/components/multi-select/index.gts | 4 +- .../addon/src/components/tooltip/index.gts | 86 ++--- .../addon/src/components/tooltip/usage.gts | 20 +- packages/boxel-ui/addon/src/styles/theme.css | 139 ++++++++ .../boxel-ui/addon/src/styles/variables.css | 22 +- packages/boxel-ui/test-app/app/app.js | 1 + .../boxel-ui/test-app/app/templates/index.gts | 309 +++++++++++++++--- packages/host/app/app.ts | 1 + 9 files changed, 471 insertions(+), 113 deletions(-) create mode 100644 packages/boxel-ui/addon/src/styles/theme.css diff --git a/packages/boxel-ui/addon/src/components/button/index.gts b/packages/boxel-ui/addon/src/components/button/index.gts index aa84415a956..03b3060f6ce 100644 --- a/packages/boxel-ui/addon/src/components/button/index.gts +++ b/packages/boxel-ui/addon/src/components/button/index.gts @@ -188,7 +188,7 @@ const ButtonComponent: TemplateOnlyComponent =