Foundations
Named layers
Eight stacking layers, lowest first. A component asks for a layer by name, so a new overlay never has to guess a number.
The stack
Added through
extend: z-modal and z-tooltip exist, and the numeric z-10 family keeps working for local stacking inside a component.z-raised10
A card lifted over its siblingsz-sticky20
Sticky table heads, section barsz-header30
The app header and toolbarz-overlay40
The scrim behind a dialog or drawerz-modal50
Dialogs, sheets, drawersz-popover60
Menus, selects, popovers — open from inside a modalz-toast70
Notifications over everything interactivez-tooltip80
Tooltips, over toasts tooRules
Popover sits above modal
A select inside a dialog must open over the dialog. That is whypopover is 60 and modal 50, the reverse of what the names suggest.No z-[9999]
An arbitrary large number wins today and loses to the next one. If no layer fits, the stack is missing a layer — add it to the tokens package.