Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion app/components/ui/Select.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,11 @@ export function Select({
<RadixSelect.Content
position="popper"
sideOffset={6}
className="z-50 max-h-[var(--radix-select-content-available-height)] min-w-[var(--radix-select-trigger-width)] overflow-hidden rounded-lg border border-bds-gray-10 bg-white shadow-lg dark:border-white/10 dark:bg-[#1a1a1a]"
// z-[130] — popper layer, above Modal's z-[120]. Radix portals this to
// <body>, so it competes with the modal in the root stacking context;
// anything lower renders behind the panel when a Select sits in a Modal.
// See the layer scale in globals.css.
className="z-[130] max-h-[var(--radix-select-content-available-height)] min-w-[var(--radix-select-trigger-width)] overflow-hidden rounded-lg border border-bds-gray-10 bg-white shadow-lg dark:border-white/10 dark:bg-[#1a1a1a]"
>
<RadixSelect.Viewport className="p-1">
{options.map((option) => (
Expand Down
12 changes: 12 additions & 0 deletions app/globals.css
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,18 @@
@tailwind components;
@tailwind utilities;

/* Overlay layer scale. These all portal or `fixed` into the root stacking
* context, so they compare directly against each other — keep them in order
* and bump the whole scale rather than one layer in isolation:
*
* 100 mobile drawer (.drawer, below)
* 110 mobile header (.mobile-header, below)
* 120 modals (components/ui/Modal.tsx)
* 130 poppers over modals (components/ui/Select.tsx)
*
* A popper below the modal layer still opens, but paints behind the panel —
* which reads as "the dropdown does nothing". */

/* BDS Spectrum CSS variables — full palette available as var(--bds-*).
* Semantic tokens live in theme.ts; these vars are here for future use
* in CSS modules, animations, or any non-TS context.
Expand Down
Loading