← Contents
A ::: block named columns, row, grid, cards, tabs or compare
lays out what’s in it.
Any other ::: block styles it (see Styling text).
A ::: block named columns sets what’s in it side by side, each
block a column, all the same width:
::: columns
```number
15%
daily code change
```
```number
26%
weekly code change
```
:::
15%
daily code change
26%
weekly code change
+++ line between the
columns. Then only those lines start one.::: block: ::: columns slategray avenir-next.::: columns
### Before
* slow
* manual
+++
### After
* fast
* automatic
:::
A ::: block named row sets its first block beside the rest, at
that block’s own width, and stacks the others in the width that’s left,
top-aligned: a cover beside a book’s title, a portrait beside a bio.
::: row

**[Pride and Prejudice](https://www.gutenberg.org/ebooks/1342)** · Jane Austen
progress:[326/432] pages
:::
Pride and Prejudice · Jane Austen
326 of 432 pages
+++ line after it. Then what’s before the first +++ is the
first block, and everything after it is beside it.::: row reverse puts the first block on the right. The other names on
the line are styles, as on any ::: block.A ::: block named grid, with a number after it, sets what’s in it out
in that many columns, row by row. A list in it lays out its items;
otherwise each block is a cell:
::: grid 2
- ( ) **A** · Strength training
- ( ) **B** · Running
- ( ) **C** · Something else
- ( ) **D** · I did not exercise today
:::
::: grid fits as many columns as there’s room for.+++ line between the cells,
as in columns.::: grid 2 cards draws each cell as a card (see Cards).::: grid 2 gray. Grids nest in other ::: blocks, and they in it.A ::: block named cards draws each item of a list in it as a card:
a border round it, to tap anywhere to choose it.
::: cards
- ( ) **A** · Strength training
- (x) **B** · Running
- ( ) **C** · Something else
:::
+++ lines.::: grid 2 cards lays the cards out in a grid (see Grid).::: block.
Elsewhere, it’s a list.A ::: block named tabs holds more than one version of a passage, the
same code in Java and in Kotlin, say, and shows one at a time. These pages
use it for each sample’s Source and Rendered.
::: tabs
```java
http.oauth2Login(Customizer.withDefaults());
```
```kotlin
http { oauth2Login { } }
```
:::
http.oauth2Login(Customizer.withDefaults());
http { oauth2Login { } }
Java, Kotlin),
or numbered. To name tabs yourself, or give one more than a block, start
each with a +++ line naming it: +++ Maven, +++ Gradle.A ::: block named compare sets the versions side by side instead,
and marks the words they differ by, as a diff does:
::: compare
+++ Draft
The service retries a failed request three times before giving up
+++ Final
The service retries each failed request up to three times, then gives up
:::
The service retries a failed request three times before giving up
The service retries each failed request up to three times, then gives up
A blockquote that opens with [!NOTE], [!TIP], [!IMPORTANT],
[!WARNING] or [!CAUTION] becomes a box headed with 📝 💡 ❗ ⚠️ or 🛑, as
on GitHub.
> [!TIP]
> Go slow; it's sweeter.
> [!WARNING]
> my information
Tip
Go slow; it’s sweeter.
Warning
my information
A numbered list written 1) in place of 1. has its numbers drawn as
badges, as a code fence’s callouts are. It’s still a numbered list on
GitHub.
1) Clone the repo
2) Run `npm install`
npm installWith boxes, a 1) list is steps to follow; see Recipes.
Pipe tables, with :---: and ---: for alignment, as on GitHub.
| Day | Talks |
| --- | ---: |
| Saturday | 12 |
| Sunday | 9 |
| Day | Talks |
|---|---|
| Saturday | 12 |
| Sunday | 9 |