diff --git a/app/globals.css b/app/globals.css index e5ac6a0..f2892ce 100644 --- a/app/globals.css +++ b/app/globals.css @@ -980,6 +980,34 @@ html.theme-blueprint { html.theme-blueprint [data-slot="button"] { position: relative; } + +/* Paper surfaces (dialogs, popovers, dropdown menus) carry cobalt ink: + they set `text-popover-foreground`, but the generic button and editor + styles also read `--foreground` / `--background` expecting the usual + light-theme semantics (dark ink, light surface). In blueprint those + tokens are board-level (near-white ink, cobalt surface), so ghost + buttons wash to white-on-white, outline buttons go blue-on-blue, and + the markdown editor's text is invisible on the sheet. Restoring the + paper semantics locally makes every descendant render correctly. */ +html.theme-blueprint [data-slot="dialog-content"], +html.theme-blueprint [data-slot="popover-content"], +html.theme-blueprint [data-slot="dropdown-menu-content"] { + --foreground: var(--card-foreground); + --background: var(--card); +} + +/* The sidebar and scheduled rail are cobalt board chrome with near-white + ink. The ghost buttons there (theme trigger, log out, collapse, rail + actions) reference `--muted` / `--foreground` for hover + expanded + states, which in blueprint are both paper-bright: a white-on-white + wash-out. Re-target those states to the sidebar's own accent pair: + a slightly lighter cobalt with the same near-white ink. */ +html.theme-blueprint .bg-sidebar :is([data-slot="button"], [data-slot="dropdown-menu-trigger"]):hover, +html.theme-blueprint .bg-sidebar :is([data-slot="button"], [data-slot="dropdown-menu-trigger"]):focus-visible, +html.theme-blueprint .bg-sidebar :is([data-slot="button"], [data-slot="dropdown-menu-trigger"])[aria-expanded="true"] { + background-color: var(--sidebar-accent); + color: var(--sidebar-accent-foreground); +} html.theme-blueprint [data-slot="button"]::before, html.theme-blueprint [data-slot="button"]::after { content: "";