Clarity V2.0.1By Nivoda
Foundations

Elevation

Four shadow tokens plus the radius scale.

Elevation is carried by shadow tokens on light surfaces and by surface-tint deltas on dark ones. Four steps cover every case: from chip-level hairlines up to modal-over-page lifts. Pair each shadow with an appropriate radius — they're read together.

Source: packages/tokens/src/shadow.tokens.json and packages/tokens/src/radius.tokens.json.

Shadow scale

shadow.sm
0 1px 2px rgba(0,0,0,0.05)
shadow.md
0 4px 6px -1px rgba(0,0,0,0.1)
shadow.lg
0 10px 15px -3px rgba(0,0,0,0.1)
shadow.xl
0 20px 25px -5px rgba(0,0,0,0.1)

When to use which

  • sm — inline chips, tag pills, subtle definition on hover of a flat element. Barely-there.
  • md — cards at rest. The default "this thing is a surface" shadow.
  • lg — floating surfaces that overlay content: dropdowns, popovers, select menus.
  • xl — dialogs, drawers, modal overlays. The heaviest lift in the system; reserved for page-level interruptions.

On dark surfaces shadows read less — a black-on-black shadow does no work. Dark-mode elevation relies on tinting the surface a step lighter (stone.900 over stone.950) and using a subtle stone.800 border instead. Shadow tokens are still emitted; components apply them unconditionally and let the renderer decide how visible they read.

Radius scale

Seven steps. Every rounded corner in the system picks from this list.

TokenValueTypical use
radius.none0pxFull-bleed edges, table cells.
radius.sm4pxTight chips, small badges.
radius.md6pxInputs, buttons. The default.
radius.lg8pxCards, tiles.
radius.xl12pxFeatured cards, media tiles.
radius.2xl16pxHero blocks, marketing surfaces.
radius.full9999pxPills, avatars, circular icon buttons.
none
sm 4px
md 6px
lg 8px
xl 12px
2xl 16px
full

Pairing

Shadow and radius are chosen together. A larger surface reads right with a larger radius and a stronger shadow; an inline chip uses sm for both. Don't mix xl shadow with sm radius — the lift and the softness must match.

On this page