From b42a3138256f100be98682437f0f90d9af9c191e Mon Sep 17 00:00:00 2001 From: simoleo89 Date: Fri, 17 Jul 2026 18:10:52 +0200 Subject: [PATCH] Fix transparent admin Select/Popover overlays and semantic surface tokens. Co-authored-by: Cursor --- src/app/globals.css | 62 +++++++++++++++++++++++++++++++++++- src/components/ui/dialog.tsx | 2 +- src/components/ui/select.tsx | 4 +-- 3 files changed, 64 insertions(+), 4 deletions(-) diff --git a/src/app/globals.css b/src/app/globals.css index fe19cd9c..8e12066a 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -22,7 +22,22 @@ :root { --color-primary: #eeb425; --color-primary-hover: #d4a01f; + --color-primary-foreground: #1a1a2e; --color-background: #f4f6f9; + --color-foreground: #0f172a; + --color-card: #ffffff; + --color-card-foreground: #0f172a; + --color-popover: #ffffff; + --color-popover-foreground: #0f172a; + --color-secondary: #f1f5f9; + --color-secondary-foreground: #0f172a; + --color-muted: #f1f5f9; + --color-muted-foreground: #6b7280; + --color-destructive: #ef4444; + --color-destructive-foreground: #ffffff; + --color-border: #e2e8f0; + --color-input: #e2e8f0; + --color-ring: #eeb425; --color-surface: #ffffff; --color-dropdown: #ffffff; --color-navbar: #ffffff; @@ -37,6 +52,7 @@ --color-accent-foreground-readable: #000000; --color-navbar-text-readable: #1e293b; --color-accent: #10b981; + --color-accent-foreground: #000000; --color-success: #16a34a; --color-warning: #eab308; --color-error: #ef4444; @@ -1197,7 +1213,7 @@ body:has([data-admin]) { --color-foreground: var(--admin-text); --color-card: var(--admin-surface); --color-card-foreground: var(--admin-text); - --color-popover: var(--admin-surface); + --color-popover: var(--admin-surface-elevated); --color-popover-foreground: var(--admin-text); --color-primary: var(--admin-accent); --color-primary-hover: color-mix(in srgb, var(--admin-accent) 84%, #000000); @@ -1287,6 +1303,50 @@ html.dark body:has([data-admin]) textarea { color: var(--admin-text); } +/* Opaque floating surfaces for Radix portals (Select / Dropdown / Popover / Dialog). + Without this, bg-popover can resolve transparent and lists paint over forms. */ +body:has([data-admin]) [data-slot="select-content"], +body:has([data-admin]) [data-slot="dropdown-menu-content"], +body:has([data-admin]) [data-slot="dropdown-menu-sub-content"], +body:has([data-admin]) [data-slot="popover-content"], +body:has([data-admin]) [data-slot="context-menu-content"], +body:has([data-admin]) [data-slot="dialog-content"], +body:has([data-admin]) [data-slot="sheet-content"] { + background-color: var(--admin-surface-elevated); + color: var(--admin-text); + border-color: var(--admin-border); + box-shadow: + 0 18px 48px rgba(0, 0, 0, 0.45), + 0 4px 12px rgba(0, 0, 0, 0.25); +} + +body:has([data-admin]) [data-slot="select-trigger"], +body:has([data-admin]) [data-slot="dropdown-menu-trigger"] { + background-color: var(--admin-surface-elevated); + color: var(--admin-text); + border-color: var(--admin-border); +} + +body:has([data-admin]) [data-slot="select-item"][data-highlighted], +body:has([data-admin]) [data-slot="select-item"]:focus, +body:has([data-admin]) [data-slot="dropdown-menu-item"][data-highlighted], +body:has([data-admin]) [data-slot="dropdown-menu-item"]:focus, +body:has([data-admin]) [data-slot="context-menu-item"][data-highlighted], +body:has([data-admin]) [data-slot="context-menu-item"]:focus { + background-color: color-mix( + in srgb, + var(--admin-accent) 18%, + var(--admin-surface-elevated) + ); + color: var(--admin-text); +} + +body:has([data-admin]) [data-slot="card"] { + background-color: var(--admin-surface); + color: var(--admin-text); + border-color: var(--admin-border); +} + /* ── Details/summary open states for nav ──────────────────── */ details[open] > summary .details-open\:hidden { display: none; diff --git a/src/components/ui/dialog.tsx b/src/components/ui/dialog.tsx index cd6bcd24..dfa6690e 100644 --- a/src/components/ui/dialog.tsx +++ b/src/components/ui/dialog.tsx @@ -60,7 +60,7 @@ function DialogContent({ ) {