Skip to content

add grid class documentation #559

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Jan 18, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 104 additions & 0 deletions docs/layout/grid.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
---
toc: false
theme: dashboard
---

# Layout: grid

The CLI provides a set of grid CSS classes to help layout page content. These grids pair well with the [dashboard](./themes#dashboard) theme and the [card](./card) class. This page uses both.

To see these examples change dynamically, adjust the page width or collapse the sidebar on the left.

## Classes

The following CSS classes are provided for grid layouts:

Class | Description
---------------- | ------------
`grid` | specify a grid layout for an element
`grid-cols-2` | restrict grid to two columns
`grid-cols-3` | restrict grid to three columns
`grid-cols-4` | restrict grid to four columns
`grid-colspan-2` | specify that a grid cell spans two columns
`grid-colspan-3` | specify that a grid cell spans three columns
`grid-colspan-4` | specify that a grid cell spans four columns
`grid-rowspan-2` | specify that a grid cell spans two rows
`grid-rowspan-3` | specify that a grid cell spans three rows
`grid-rowspan-4` | specify that a grid cell spans four rows


## Two column grid

<div class="grid grid-cols-2">
<div class="card"><h1>A</h1>1 × 1</div>
<div class="card grid-rowspan-2"><h1>B</h1> 1 × 2</div>
<div class="card"><h1>C</h1>1 × 1</div>
<div class="card grid-colspan-2"><h1>D</h1>1 × 2</div>
<div class="card grid-colspan-2 grid-rowspan-2"><h1>E</h1>2 × 2</div>
</div>

```html run=false
<div class="grid grid-cols-2">
<div class="card"><h1>A</h1>1 × 1</div>
<div class="card grid-rowspan-2"><h1>B</h1> 1 × 2</div>
<div class="card"><h1>C</h1>1 × 1</div>
<div class="card grid-colspan-2"><h1>D</h1>1 × 2</div>
<div class="card grid-colspan-2 grid-rowspan-2"><h1>E</h1>2 × 2</div>
</div>
```

## Four column grid

<div class="grid grid-cols-4">
<div class="card"><h1>A</h1>1 × 1</div>
<div class="card"><h1>B</h1>1 × 1</div>
<div class="card"><h1>C</h1>1 × 1</div>
<div class="card"><h1>D</h1>1 × 1</div>
<div class="card grid-colspan-3 grid-rowspan-2"><h1>E</h1>3 × 2</div>
<div class="card grid-rowspan-2"><h1>F</h1>1 × 2</div>
<div class="card grid-colspan-2"><h1>G</h1>2 × 1</div>
<div class="card grid-colspan-2"><h1>H</h1>2 × 1</div>
</div>

```html run=false
<div class="grid grid-cols-4">
<div class="card"><h1>A</h1>1 × 1</div>
<div class="card"><h1>B</h1>1 × 1</div>
<div class="card"><h1>C</h1>1 × 1</div>
<div class="card"><h1>D</h1>1 × 1</div>
<div class="card grid-colspan-3 grid-rowspan-2"><h1>E</h1>3 × 2</div>
<div class="card grid-rowspan-2"><h1>F</h1>1 × 2</div>
<div class="card grid-colspan-2"><h1>G</h1>2 × 1</div>
<div class="card grid-colspan-2"><h1>H</h1>2 × 1</div>
</div>
```

## Three column grid with customizations

Note that the minimum row height is set to 150px, and cell **D** does not use the `card` class.

<div
class="grid grid-cols-3"
style="grid-auto-rows: minmax(150px, auto); color: red;"
>
<div class="card"><h1>A</h1>1 × 1</div>
<div class="card"><h1>B</h1>1 × 1</div>
<div class="card"><h1>C</h1>1 × 1</div>
<div class="grid-rowspan-2"><h1>D</h1>1 × 2</div>
<div class="card grid-colspan-2"><h1>E</h1>2 × 1</div>
<div class="card grid-colspan-2"><h1>F</h1>2 × 1</div>
</div>

```html run=false
<div
class="grid grid-cols-3"
style="grid-auto-rows: minmax(150px, auto); color: red;"
>
<div class="card"><h1>A</h1>1 × 1</div>
<div class="card"><h1>B</h1>1 × 1</div>
<div class="card"><h1>C</h1>1 × 1</div>
<div class="grid-rowspan-2"><h1>D</h1>1 × 2</div>
<div class="card grid-colspan-2"><h1>E</h1>2 × 1</div>
<div class="card grid-colspan-2"><h1>F</h1>2 × 1</div>
</div>
```