Files
2026-07-13 12:49:11 +08:00

1.9 KiB

Tailwind v4 Rules

No Arbitrary Values

The project uses Tailwind v4 with a continuous numeric scale. Never use bracket arbitrary values.

Wrong

<div className="h-[380px] w-[280px] max-w-[85%] min-w-[80px]">
<div className="gap-[14px] p-[18px] text-[10px] text-[11px]">
<div className="[@media(min-width:640px)]:grid-cols-2">

Correct

<div className="h-96 w-72 max-w-sm">          // h-96=384px, w-72=288px
<div className="gap-3.5 p-4 text-xs">          // gap-3.5=14px, p-4=16px
<div className="sm:grid-cols-2">

Numeric Scale Reference

Height / Width

h-4  = 16px    h-5  = 20px    h-6  = 24px    h-7  = 28px
h-8  = 32px    h-9  = 36px    h-10 = 40px    h-11 = 44px
h-12 = 48px    h-14 = 56px    h-16 = 64px    h-20 = 80px
h-24 = 96px    h-32 = 128px   h-40 = 160px   h-48 = 192px
h-56 = 224px   h-64 = 256px   h-72 = 288px   h-80 = 320px
h-96 = 384px

Spacing (gap / padding / margin)

0.5=2px  1=4px  1.5=6px  2=8px  2.5=10px  3=12px  3.5=14px
4=16px   5=20px  6=24px   7=28px  8=32px   9=36px  10=40px
12=48px  14=56px  16=64px

Max Width Semantic Utilities

max-w-xs  = 320px     max-w-sm  = 384px
max-w-md  = 448px     max-w-lg  = 512px
max-w-xl  = 576px     max-w-2xl = 672px
max-w-3xl = 768px     max-w-4xl = 896px
max-w-5xl = 1024px    max-w-6xl = 1152px
max-w-7xl = 1280px

Typography Scale

text-xs   = 12px   (avatar initials, badge pills, mono timestamps, tiny buttons)
text-sm   = 14px   (body text, table cells, descriptions — DEFAULT)
text-base = 16px   (larger body, card titles)
text-lg   = 18px   (section headings)
text-xl   = 20px   (page headings)
text-2xl  = 24px   (stat values, hero text)

Rule: text-sm is the minimum for readable content. Use text-xs only for tiny decorative elements.

Responsive Breakpoints

Use only standard Tailwind breakpoints:

sm: 640px    md: 768px    lg: 1024px    xl: 1280px    2xl: 1536px

Never use custom media query syntax.