From b3d96d04472635dc846d7f9a9a8653c97233e356 Mon Sep 17 00:00:00 2001 From: Sawyer Cutler Date: Fri, 21 Aug 2026 06:52:51 -0700 Subject: [PATCH 1/3] Register react-ui's semantic color tokens in apps/web's Tailwind theme apps/web imported react-ui's prebuilt styles.css but never its theme.css, so --success/--destructive/--ok/--warn existed only as plain :root custom properties inherited from that stylesheet, never as @theme colors in the app's own Tailwind build. Tailwind had no theme color to generate bg-success/bg-destructive utilities from, so data-[state=connected]:bg-success in plugins-ui's installed-strip compiled to nothing, and the plugin directory's connected-state dot was invisible. react-ui's README documents importing theme.css alongside tailwindcss for exactly this case. --- apps/web/src/tailwind.css | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/apps/web/src/tailwind.css b/apps/web/src/tailwind.css index 9f0f02424..c514e54c8 100644 --- a/apps/web/src/tailwind.css +++ b/apps/web/src/tailwind.css @@ -16,6 +16,17 @@ @import "tailwindcss"; +/* react-ui's README documents this exact pairing for a consumer that already + runs its own Tailwind v4 build: import the theme source (not just the + prebuilt stylesheet) so this build's own @theme registers --success, + --destructive, and the rest of react-ui's semantic tokens as real Tailwind + theme colors. Without it those tokens only exist as plain :root custom + properties inherited from the prebuilt sheet, so Tailwind has no theme + color to generate bg-success / bg-destructive utilities from — a data + attribute variant like data-[state=connected]:bg-success compiles to + nothing, silently. */ +@import "@corbits/react-ui/theme.css"; + /* The import above re-emits Tailwind's default font tokens after react-ui's prebuilt sheet declared the brand stacks — same layer, later order, so the defaults were winning and the whole app fell back to system fonts. Declare @@ -32,6 +43,7 @@ @source "../../../packages/artifact-ui/src"; @source "../../../packages/bench-ui/src"; @source "../../../packages/chat-ui/src"; +@source "../../../packages/context-menu/src"; @source "../../../packages/plugins-ui/src"; @source "../../../packages/settings-ui/src"; @source "../../../packages/tasks-ui/src"; From 89f5272be28d16e71db72d1d14be188fb3227c5b Mon Sep 17 00:00:00 2001 From: Sawyer Cutler Date: Fri, 21 Aug 2026 06:52:59 -0700 Subject: [PATCH 2/3] Fix needs_attention dot: escape underscore in Tailwind arbitrary value The sibling data-[state=needs_attention]:bg-destructive variant on the same status dot had the identical invisible-dot symptom for an unrelated reason: Tailwind v4 converts an unescaped underscore in an arbitrary value to a space, so the generated selector matched [data-state="needs attention"] and never matched the real needs_attention DOM attribute. Escaping it (needs\_attention) keeps the literal underscore. --- packages/plugins-ui/src/installed-strip.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/plugins-ui/src/installed-strip.tsx b/packages/plugins-ui/src/installed-strip.tsx index 3ad71af3a..088ae1176 100644 --- a/packages/plugins-ui/src/installed-strip.tsx +++ b/packages/plugins-ui/src/installed-strip.tsx @@ -59,7 +59,7 @@ export function InstalledStrip({