sdxc

[ @sdxc/u/layout ]

grid-auto-flow

Applies grid-auto-flow, the axis auto-placed items fill along; defaults to "row".

import { gridAutoFlow } from "@sdxc/u/layout";

Quick reference

Every documented call, beside the CSS it emits.

CallCSS
u.gridAutoFlow()css({ gridAutoFlow: "row" })
u.gridAutoFlow("column")css({ gridAutoFlow: "column" })
u.gridAutoFlow("row dense")css({ gridAutoFlow: "row dense" })

Examples

Basic example

Use gridAutoFlow("column") to fill a grid column by column, creating new columns as items need them:

01
02
03
04
05
06
07
<div mix={[grid(), gridTemplate({ rows: repeat(3, 1) }), gridAutoFlow("column"), gap(4)]}>
	<div mix={[...]}>01</div>
	<div mix={[...]}>02</div>
	<div mix={[...]}>03</div>
	<div mix={[...]}>04</div>
	<div mix={[...]}>05</div>
	<div mix={[...]}>06</div>
	<div mix={[...]}>07</div>
</div>

Filling rows

Use gridAutoFlow() to fill a grid row by row, the default, creating new rows as items need them:

01
02
03
04
05
06
07
<div mix={[grid(), gridTemplate({ columns: repeat(3, 1) }), gridAutoFlow(), gap(4), is(96)]}>
	<div mix={[...]}>01</div>
	<div mix={[...]}>02</div>
	<div mix={[...]}>03</div>
	<div mix={[...]}>04</div>
	<div mix={[...]}>05</div>
	<div mix={[...]}>06</div>
	<div mix={[...]}>07</div>
</div>

Filling holes

Add dense, as in gridAutoFlow("row dense"), to let later items fill holes earlier items left. Item 03 moves up beside 01:

01
02
03
04
05
<div
	mix={[
		grid(),
		gridTemplate({ columns: repeat(3, 1) }),
		gridAutoFlow("row dense"),
		gap(4),
		is(96),
	]}
>
	<div mix={[gridColumn("span 2"), ...]}>01</div>
	<div mix={[gridColumn("span 2"), ...]}>02</div>
	<div mix={[...]}>03</div>
	<div mix={[...]}>04</div>
	<div mix={[...]}>05</div>
</div>

Applying on a state

Wrap the call in a state utility to scope it to one selector.

u.hover(u.gridAutoFlow())

Responsive design

Wrap the call in a container query to scope it to one width.

u.at("md", u.gridAutoFlow())

Signature

u.gridAutoFlow(value?: GridAutoFlowValue)

Written by Sergio Xalambrí. Follow @sergiodxa for new packages, or sponsor the work.