Nooxit
Foundations

Elevation

Shadows, blur and the focus ring.

Shadows

The kit defines seven shadows. They match Tailwind's defaults by value, though not always by name — the v3-to-v4 rename applies here too.

FigmaTailwind v4Used by
shadow-smshadow-xsActive tab
shadowshadow-sm—
shadow-mdshadow-mdPopover, tooltip, menu, command, select menu, chart tooltip
shadow-lgshadow-lgDialog, sheet, drawer, sonner, switch thumb
shadow-xlshadow-xl—
shadow-2xlshadow-2xl—
shadow-innerinset-shadow-*—

Cards deliberately have no shadow; a 1px border defines them instead.

Blur

FigmaValue
blur-sm4px
blur8px
blur-md12px
blur-lg16px
blur-xl24px
blur-2xl40px
blur-3xl64px

Dialog and sheet overlays use a small backdrop blur over black at 10%.

Focus ring

Text-entry fields and every other control are treated differently.

Fields: the border changes color

Input, Textarea, Select, NativeSelect, InputGroup, InputOTP and the Combobox field have no ring. On focus their own 1px border turns primary, or destructive when the field is invalid, so nothing grows or shifts:

focus-visible:border-primary
aria-invalid:focus-visible:border-destructive

A 1px color change is a weaker focus cue than a ring. It falls short of the WCAG 2.2 AAA guideline for focus appearance, and that is accepted for now.

Everything else: one ring

Buttons, checkboxes, radios, switches, tabs, toggles, sliders and links use:

focus-visible:ring-2
focus-visible:ring-primary
focus-visible:ring-offset-2
focus-visible:ring-offset-background

Destructive and invalid controls swap ring-primary for ring-destructive. Inside the sidebar the ring becomes ring-sidebar-ring with a ring-offset-sidebar offset, so it stays visible on the sidebar surface.

In Figma this is the focus ring/2px effect style: a 4px spread in the ring color with a 2px spread in the background color on top, which is exactly what ring-2 plus ring-offset-2 produces.

On this page