EtherBrandGuidelinesFoundationsComponentsOverviewColorLayoutTypographyElevationMotionIconography
Foundations

Elevation

A short ladder. Most of the dashboard lives at 0–1. If everything is raised, nothing is.

On paper, elevation is hairline plus shadow. On ink, elevation is a lighter surface. Dark-on-dark shadow reads as dirt. Do not mix the two recipes on one surface.

Ladder

LevelJobPaperInk
0 CanvasThe pagePaper #F6F3EE, no shadow#0E141B, no shadow
1 PanelBounded region, one jobHairline + 0 1px 2px rgb(14 20 27 / 6%) on surface #FFFCF7Surface #161E27, hairline, no shadow
2 RaisedSticky, dropdown0 4px 12px rgb(14 20 27 / 8%) + hairline#1C2630, hairline
3 OverlayDialog, command palette0 16px 40px rgb(14 20 27 / 18%) + hairline#222C38, hairline
4 ToastMust win over overlayAs 3; z-index wins#2A3542, hairline

Level 4 uses the same shadow recipe as 3. It wins with --z-toast, not a heavier blur.

Why no shadow in ink

A drop shadow on #0E141B is a smear, not a lift. Lighter surface is the elevation. If two ink layers share a fill, they are the same level — add a hairline or step the surface token.

Z-index

Named layers. Never 9999. Never a magic number because a dropdown “lost.”

TokenValueLayer
--z-base0Canvas, panels
--z-sticky100Sticky raised (level 2)
--z-rail200Rails, outside the canvas
--z-dropdown300Menus, typeahead
--z-overlay400Dialog, command
--z-toast500Toast, must win
--z-skip600Skip link

A rail is not an overlay. A toast is not a dropdown. If a component needs a new band, it is probably the wrong level.

CSS custom properties

TokenPaperInk
--shadow-0nonenone
--shadow-10 1px 2px rgb(14 20 27 / 6%)none
--shadow-20 4px 12px rgb(14 20 27 / 8%)none
--shadow-30 16px 40px rgb(14 20 27 / 18%)none
--shadow-4var(--shadow-3)none
--elev-0-bgvar(--bg-canvas)var(--bg-canvas)
--elev-1-bgvar(--bg-surface)var(--bg-surface)
--elev-2-bgvar(--bg-raised)var(--bg-raised)
--elev-3-bgvar(--bg-overlay) / raised#222C38
--elev-4-bgvar(--bg-toast) / raised#2A3542

Z-index tokens are in the table above. On paper, overlay and toast sit on --bg-raised and lift with shadow. On ink they are lighter fills.

Live values are in site/css/tokens.css.

Live ladder

Live surfaces. Ink drops the shadow and steps the fill. Toggle Paper / Ink to see both recipes.

Level 0

Canvas

Page. No shadow.

Level 1

Panel

Hairline. Most of the dashboard.

Level 2

Raised

Sticky, dropdown.

Level 3

Overlay

Dialog, command.

Level 4

Toast

Must win. Same shadow as 3; z-index is the difference.

Related