Pho Design System

Scale

The numeric scales of the system — space, corner radius, and elevation. Color and type have their own foundation pages; this one is everything measured in rem. Click a token to copy its utility class.

Radius

Closed set in theme.css: sm / base /lg, plus Tailwind's full for pills.xs, md, xl, 2xl, and3xl are gone. Every corner in the system — controls, cards, overlays, nested surfaces — must use this set.

Squircle

The squircle utility (corner-shape: superellipse(1.1)) softens a rounded-* edge into a superellipse. Use it only forinteractive chrome — hover fills, press surfaces, focus rings, and other feedback layers — never for resting media or static cards.

Concentric correction

Whenever a ring, border, or nested surface sits inside a rounded outer edge, the inner curve must stay parallel. The universal rule — the gap is thetotal edge-to-edge distance (border / ring width + padding):

innerRadius = max(0px, outerRadius − gap)

Spacing

Pho does not ship a custom spacing scale — it uses Tailwind's default (--spacing = 0.25rem / 4px). Padding, margin, and gap utilities (p-4, gap-2, …) all multiply that unit. Prefer even steps on the 4px grid; the bars below are the sizes components reach for most often.

Elevation

Shadows are for floating layers only — menus, popovers, dialogs, drawers. Cards and buttons stay flat; separation is a hairline border (ring-pho-secondary / border-pho-secondary). The stops in use today are shadow-pho-lg andshadow-pho-xl.