Skip to content
nexubDesign System
v2.4.0

Foundations

Elevation & shape

Elevation

Content that sits in the page uses tone: it steps up through the surface-container roles. Shadows are only for things that float. Each level is a 1px alpha ring plus two soft layers, defined with light-dark() so dark mode gets deeper, quieter shadows. On React Native the same levels ship as per-scheme boxShadow values.

elevation-0

In-flow content. Use tone, not shadow.

elevation-1

Menus, interactive cards on hover, the Switch thumb.

elevation-2

Popovers, toasts, floating toolbars.

elevation-3

Dialogs, sheets, the command palette.

Shape

Components use semantic shapes, not raw radii, so one decision changes every control. Tailwind: rounded-shape-control and so on. The primitive radius scale is unchanged.

--shape-control (9999px)

Capsule: Button, IconButton, Chip, SegmentedControl, Switch, Badge

--shape-field (12px)

Input, Select, Textarea

--shape-container (16px)

Card, Popover, Menu, Toast

--shape-overlay (24px)

Dialog, Sheet, CommandPalette

--shape-tooltip (8px)

Tooltip, Kbd

Concentric radii

A shape inside a shape keeps the same centre of curvature: inner radius = outer radius − padding, floored at --shape-min (4px). Menus (16px with 6px padding) use 10px items; the command palette (24px with 8px padding) uses 16px items.