Skip to main content
The layout system is mobile-first. Every layout decision starts at the smallest screen and progressively enhances, because that is the order in which the constraints bind.

Breakpoints

Tailwind’s defaults, used unmodified:

Mobile-first means mobile-first

Write the mobile styles unprefixed, then add breakpoint modifiers:

Spacing

The design system publishes a named spacing scale — see design tokens. In Tailwind these are the values reached for most:

Rhythm

Keep vertical rhythm on multiples of 4px:

Containers

The standard content container:

Full-bleed sections

A section that spans the viewport but keeps its content centred:

Grids

Card grid

Stack

Right-to-left

Use logical properties rather than physical ones — ms-4 rather than ml-4, ps-4 rather than pl-4, text-start rather than text-left. A layout built with physical properties needs a second stylesheet to support Arabic; one built with logical properties does not.

Mobile considerations

  • Touch targets — 48px minimum on every interactive element.
  • Thumb zones — put primary actions in the lower half of the screen.
  • Bottom navigation — nyuchi-bottom-nav for app-level navigation on mobile.
  • Sheet rather than dialog — a bottom sheet is easier to reach and dismiss than a centred modal.
  • No horizontal scroll — stack instead. The exception is a wide data table, which scrolls inside its own container rather than pushing the page.
  • Loading states — show skeletons immediately; on a slow connection the alternative is a blank screen the user reads as broken.