BLOCKS / LAYOUT

Flex block

A flexible layout container built on CSS Flexbox. Arrange content in rows or columns with full control over direction, wrapping, alignment, and spacing.

Row vs column

flexDirection controls the main axis. “row” lays children side by side, “col” stacks them vertically. gapX / gapY add space between items along each axis.

flexDirection: “row” · gapX: “3”

A

B

C

flexDirection: “col” · gapY: “3”

A

B

C

Responsive stacking

flexDirection: “col” on mobile, flexDirectionMd: “row” on tablet+. The classic pattern for image + text sections that stack on small screens and sit side by side on larger ones.

Built to adapt

On mobile the image sits above the text. From the md breakpoint (≥768px) up, they sit side by side — no separate mobile layout needed, just two responsive attributes on the same block.

Justify content

Positions items along the main axis. All six values are supported: start, center, end, between, around, evenly.

start

center

end

between

around

evenly

Align items

Positions items along the cross axis. Boxes of different heights make the effect visible.

start

center

end

stretch

Wrap

Controls whether children wrap onto a new line when they run out of room in the row. Six fixed-width boxes in a narrow container.

No Wrap

Items shrink or overflow the container.

Wrap

Items flow onto the next line when they don’t fit.

Wrap Reverse

1

2

3

4

5

6

Same as wrap, but new lines stack upward.

Gap scale

gapX and gapY use the same Tailwind scale, from 0 to 16 (0– 4rem).

gapX: “2” (8px)

gapX: “6” (24px)

Real-world example

Icon, heading, description, and a button, laid out with two nested flex-blocks: a column for the icon+heading row, and a row inside that for the icon and title. Common pattern for feature cards.

Fast by default

No extra configuration needed to get a responsive, well-aligned layout — the sensible defaults cover most content patterns out of the box.