Skip to content
heyrav design system
Foundations

Spacing

A 4px base. --s-N is N × 4px, so the name tells you the value. One vertical beat, --case-pad, separates every section.

Scale

--s-1 · 4
--s-2 · 8
--s-3 · 12
--s-4 · 16
--s-5 · 20
--s-6 · 24
--s-7 · 28
--s-8 · 32
--s-10 · 40
--s-11 · 44
--s-14 · 56
--s-16 · 64
--s-21 · 84
Show code
<div class="d-spec"><code>--s-1 · 4</code><span class="d-bar d-s1"></span></div>
<div class="d-spec"><code>--s-2 · 8</code><span class="d-bar d-s2"></span></div>
<div class="d-spec"><code>--s-3 · 12</code><span class="d-bar d-s3"></span></div>
<div class="d-spec"><code>--s-4 · 16</code><span class="d-bar d-s4"></span></div>
<div class="d-spec"><code>--s-5 · 20</code><span class="d-bar d-s5"></span></div>
<div class="d-spec"><code>--s-6 · 24</code><span class="d-bar d-s6"></span></div>
<div class="d-spec"><code>--s-7 · 28</code><span class="d-bar d-s7"></span></div>
<div class="d-spec"><code>--s-8 · 32</code><span class="d-bar d-s8"></span></div>
<div class="d-spec"><code>--s-10 · 40</code><span class="d-bar d-s10"></span></div>
<div class="d-spec"><code>--s-11 · 44</code><span class="d-bar d-s11"></span></div>
<div class="d-spec"><code>--s-14 · 56</code><span class="d-bar d-s14"></span></div>
<div class="d-spec"><code>--s-16 · 64</code><span class="d-bar d-s16"></span></div>
<div class="d-spec"><code>--s-21 · 84</code><span class="d-bar d-s21"></span></div>
TokenValueRoleStatus
--s-14pxHairline nudges, icon optical offsets.Spec
--s-28pxIcon-to-label (mono), tight stacks.Spec
--s-312pxIcon-to-label (body), chip gaps, nav padding.Spec
--s-416pxPopover padding, list gaps.Spec
--s-520pxCard padding, tile gutter.Spec
--s-624pxCard grid gaps, heading to content.Spec
--s-728pxStacked column gap, nav link gap.Spec
--s-832pxButton horizontal padding (large).Spec
--s-1040pxFigure padding.Spec
--s-1144pxPage gutter, minimum touch target.Spec
--s-1456pxTwo-column gap on case pages.Spec
--s-1664pxCase row gap; --case-pad at 900.Spec
--s-2184px--case-pad: the one beat between sections.Spec

Vertical rhythm

Every section pads var(--case-pad) 0 (84px, 64px at 900). Two halves stacked make every section break 168px - the same as the gap between two cases - so the page has one beat between blocks instead of 169, 244 and 40px. Heading to content is 108px in Work and About alike.

Inside components

GapValue
Icon to label, body text10px - the flex gap replaces the whitespace node inline-flex drops
Icon to label, mono6px
Card padding20px (--s-5)
Card grid gap14px - shipped; new grids use --s-4
Figure padding40px, 20px at 640