Titandocs

Spacing & radii

A 4px scale, fixed structural dimensions, and a radius scale with no intermediates.

Spacing scale

--s-1: 4px;   --s-2: 8px;   --s-3: 12px;  --s-4: 16px;
--s-5: 20px;  --s-6: 24px;  --s-7: 32px;  --s-8: 40px;

Maps onto the default Tailwind 4px scale — --s-1gap-1, --s-3gap-3.

The mockup mixes the scale (gap-3, p-4) with bespoke pixel values (px-[22px], py-[18px], gap-[11px]) for optical precision. Prefer the scale; reserve bespoke pixels for fine adjustments you can justify.

Radii

Strict Apple scale — do not invent intermediate values.

5px
--r-xsbadges, kbd, QR
8px
--r-smlist rows, small buttons
11px
--rPearl Button — the default
18px
--r-lgstandard card / panel
22px
--r-xllarge card
9999px
--r-pillpills, segmented, toggles
--r-xs:  5px;     /* small badges, kbd, QR */
--r-sm:  8px;     /* list rows, small buttons */
--r:     11px;    /* "Pearl Button" — the default */
--r-md:  11px;    /* alias of --r */
--r-lg:  18px;    /* standard card / panel */
--r-xl:  22px;    /* large card */
--r-pill: 9999px; /* pills, segmented controls, toggles */
ElementRadius
Card / panel18px (--r-lg)
Large card22px (--r-xl)
Standard button11px (--r)
Topbar button12px
Pill / segmented / toggle9999px
kbd / badge / QR5px (--r-xs)
Context menu11px

A radius that is not on this list is a bug. Apple's scale works because the steps are far enough apart to read as categories — 11 vs 18 vs 22 says "control / card / large card". Adding a 14 collapses that distinction into a gradient nobody can decode.

Container widths

PageMax-widthPaddingGap
Tradefull, h-[calc(100vh-64px)], overflow-hiddenp-3gap-3
Portfolio1280pxpx-6 pt-[30px] pb-24
TLP1180pxp-6gap-5

Structural fixed dimensions

ElementValue
Topbarh-[52px], sticky, translucent + backdrop-blur(28px)
Topbar control height34px
Pair strip (trade)h-[60px]
Trade workspace gridgrid-cols-[1fr_300px_300px]
Portfolio overview gridgrid-cols-[minmax(0,1fr)_372px]1fr below 1020px
Wallet popoverw-[340px]
Settings popoverw-[320px]
Deposit modalw-[520px]
Shortcuts modalw-[720px] max-w-[90vw]
Pair selector modalw-[440px] max-w-[92vw]

--header-h is read by both the topbar and the toast viewport offset. Changing it in one place moves both — which is the point. A hardcoded 52 in the toast code is how toasts end up overlapping the nav after a header redesign.

Breakpoints

max-[1100px], max-[1020px], max-[720px] — almost entirely for collapsing multi-column grids to a single column. This is a mobile-collapse approach rather than mobile-first, which suits a terminal whose primary target is a wide desktop viewport.

On this page