← MaV / Spacing & Layout

Spacing Scale

Source: tokens/spacing.js — Figma fyscalToken namespace.

--Spacing/0
0px
None — reset
--Spacing/4
4px
Micro gap — kicker label padding
--spacing/header/xs
--Spacing/8
8px
Small gap — OTP slot gap
--otp-slot/gap
--Spacing/10
10px
Button padding vertical
--Spacing/12
12px
Input vertical padding
--Spacing/14
14px
OTP slot padding vertical
--otp-slot/padding-v
--Spacing/16
16px
Medium — OTP slot padding horizontal, card padding
--otp-slot/padding-h · --layout/otp-field-gap
--Spacing/18
18px
Component inner padding
--Spacing/20
20px
Container horizontal padding
--layout/container-padding
--Spacing/24
24px
Large — section gap
--spacing/header/lg
--Spacing/28
28px
Component group gap
--Spacing/32
32px
OTP root gap between sections
--layout/otp-root-gap
--Spacing/38
38px
Extra large component padding
--Spacing/44
44px
Minimum touch target height (iOS HIG)
--Spacing/48
48px
OTP slot size — fixed, never scale
--otp-slot/width · --otp-slot/height
--Spacing/54
54px
Navigation bar height, large headers

Border Radius

--border/border-radius/xs
2px
Tag edges
--border/border-radius/sm
4px
Input, button, OTP slot
--border/border-radius/md
8px
Cards, panels
--border/border-radius/lg
16px
Modal, sheet
--border/border-radius/full
9999px
Badges, chips, pills

Layout Constraints

OTP Component Layout
--otp-slot/widthvar(--Spacing\/48) → 48px
--otp-slot/heightvar(--Spacing\/48) → 48px (fixed)
--otp-slot/padding-hvar(--Spacing\/16) → 16px
--otp-slot/padding-vvar(--Spacing\/14) → 14px
--otp-slot/gapvar(--Spacing\/8) → 8px
--layout/container-paddingvar(--Spacing\/20) → 20px
--layout/max-content-width343px
--layout/otp-root-gapvar(--Spacing\/32) → 32px
--layout/otp-field-gapvar(--Spacing\/16) → 16px
Border Widths
--border-width/xs1px — default borders, input outline
--border-width/sm2px — emphasised borders
--border-width/md4px — heavy / feature borders
Divider Heights
--border-width/xs1px — standard divider
--border-width/sm2px — section divider