Skip to content
Reference

Blocks

Every block on this site, with its settings and the style groups it supports, generated from the running CMS.

On this page

Every block you can add to a page, template or component is listed below, with its settings. Core blocks come with Lettern; plugins, such as Forms, add their own.

A few primitives compose anything: Box (any HTML tag: a stack, a grid, a link, a button), Text and Heading, Link, Button, Image, Icon (1,500+ Phosphor icons), Input, Repeat and Page Content. The rest, like sections, columns, cards, quotes, code, tables and accordions, are in the same block catalog, in every collection.

A block in Block Markdown and the API is {type, props, style, attrs, bind, logic, motion, children, label}: settings in props, CSS in style (Styles), extra attributes in attrs (a style attribute only sets CSS variables, such as --color-primary for one section), data connections in bind (Showing content), scripts in logic (Interactions) and animations in motion (Animations). Every block accepts every style section unless it says otherwise.

A Table can head its rows with its first column and mark one column with Highlight Column. Look switches between plain lines and a soft look without rules: the marked column fills with your primary color, and on a phone a table of up to four columns stacks each row's heading above its values.

An Accordion has a Look too: lines, or cards with each question on a soft panel of its own.

Interactive

accordionAccordion

Questions with answers that expand.

PropFieldNotes
itemsrepeaterItems
faqtoggleMark Up as FAQ — Lets search engines and assistants quote the answers.
lookselectLook Options: lines, cards.
buttonButton

A link styled as a button.

PropFieldNotes
labelrichtextLabel
urlurlLink
variantselectStyle
sizeselectSize Options: sm, md, lg.
icontextIcon
icon_positionselectIcon Position Options: start, end.
new_tabtoggleOpen in New Tab
typeselectButton Type Options: button, submit.
buttonsButtons
contains button

A row of buttons.

PropFieldNotes
justifyselectAlign Options: start, center, end.
filter-choiceFilter Choice
inside list-filter

Choices to filter by.

PropFieldNotes
facettextField — One of the Repeat’s Filter By fields, e.g. category.
labeltextLabel
all_labeltextLabel for All
lookselectLook Options: chips, list.
filter-emptyNo Results
contains blocksinside list-filter

Shown when nothing matches.

filter-sortFilter Sort
inside list-filter

Sort orders for the list.

PropFieldNotes
labeltextLabel
optionsrepeaterOptions
inputInput

A field for interactive pages.

PropFieldNotes
typeselectType Options: text, search, email, password, number, range, checkbox, select, textarea.
labeltextAccessible Label
nametextName — Sent with a form.
placeholdertextPlaceholder
valuetextInitial Value
optionstagsOptions
minnumberMinimum
maxnumberMaximum
stepnumberStep
list-filterList Filter
contains blocks

Search and filter a list.

PropFieldNotes
statustextResult Count for Screen Readers
motion-toggleMotion Toggle

Lets visitors pause animations.

PropFieldNotes
pause_labeltextPause Label
play_labeltextPlay Label
tab-panelTab
contains blocksinside tabs

One panel of the tabs.

PropFieldNotes
labeltextLabel
tabsTabs
contains tab-panel

Content behind tabs.

PropFieldNotes
labeltextName for Screen Readers
defaultnumberOpen First
lookselectLook Options: lines, segmented, vertical.

Layout

boxBox
contains blocks

A container for anything.

PropFieldNotes
tagselectHTML Tag Options: div, section, header, footer, main, nav, aside, article, ul, ol, li, figure, figcaption, span, label, button, form, details, summary, dialog, address, blockquote, dl, dt, dd, h1, h2, h3, h4, h5, h6, p.
linkurlLink
new_tabtoggleOpen in New Tab
typeselectButton Type Options: button, submit.
cardCard
contains blocks

A padded box, optionally linked.

PropFieldNotes
linkurlLink
variantselectLook Options: plain, outline, filled, raised.
columnColumn
contains blocksinside columns

One column.

columnsColumns
contains column

Side-by-side columns.

PropFieldNotes
layoutselectLayout Options: 1-1, 1-2, 2-1, 1-1-1, 1-1-1-1, 3-2, 2-3.
gapselectGap Options: token:space.0, token:space.2, token:space.4, token:space.6, token:space.8, token:space.12, token:space.16.
alignselectVertical Align Options: stretch, start, center, end.
stackselectStack On Options: md, lg, never.
reversetoggleReverse Order When Stacked
dividerDivider

A horizontal line.

gate-breakTeaser Ends Here

Members-only content starts here.

gridGrid
contains blocks

Cards or logos in a grid.

PropFieldNotes
columnsnumberColumns
minselectMinimum Item Width Options: 10rem, 12rem, 16rem, 20rem, 24rem.
gapselectGap Options: token:space.0, token:space.2, token:space.4, token:space.6, token:space.8, token:space.12, token:space.16.
sectionSection
contains blocks

A full-width band.

PropFieldNotes
widthselectContent Width Options: prose, content, wide, full.
tagselectHTML Tag Options: section, header, footer, aside, main, nav, article, div.
background_imagemediaBackground Image
overlayselectOverlay Options: none, light, dark.
spacerSpacer

Empty vertical space.

PropFieldNotes
sizeselectSize Options: token:space.0, token:space.2, token:space.4, token:space.6, token:space.8, token:space.12, token:space.16.
stackStack
contains blocks

Blocks in a row or column.

PropFieldNotes
directionselectDirection Options: vertical, horizontal.
gapselectGap Options: token:space.0, token:space.2, token:space.4, token:space.6, token:space.8, token:space.12, token:space.16.
alignselectAlign Options: stretch, start, center, end.
justifyselectJustify Options: start, center, end, between.
wraptoggleWrap
linkurlLink
new_tabtoggleOpen in New Tab

Text

calloutCallout

A highlighted note or tip.

PropFieldNotes
textrichtextText
toneselectTone Options: note, tip, warning, danger.
codeCode

Code with syntax highlighting.

PropFieldNotes
codecodeCode
languageselectLanguage Options: bash, php, javascript, typescript, json, yaml, html, css, markdown, python, sql, plain.
titletextTitle
highlighttoggleHighlight Syntax
copytoggleCopy Button
headingHeading

A title or subtitle.

PropFieldNotes
textrichtextText
levelselectLevel Options: 1, 2, 3, 4, 5, 6.
anchorslugAnchor
permalinktoggleShow # Link on Hover
listList

A bulleted or numbered list.

PropFieldNotes
itemsjsonItems
orderedtoggleNumbered
paragraphText

A paragraph or short label.

PropFieldNotes
textrichtextText
tagselectHTML Tag Options: p, span, div, small, strong, em, label, li, figcaption, blockquote, cite, time, address, dt, dd, legend, kbd, code.
quoteQuote

A quotation or testimonial.

PropFieldNotes
textrichtextQuote
citerichtextAttribution
tableTable

Rows and columns.

PropFieldNotes
rowsjsonRows
headertoggleFirst Row Is a Header
row_headerstoggleFirst Column Is a Header
highlightnumberHighlight Column
lookselectLook Options: lines, soft.
captiontextCaption

Media

embedEmbed

Maps, playlists and other embeds.

PropFieldNotes
urlurlURL
titletextTitle — Describes the embed for screen readers.
aspectselectAspect Ratio Options: 16/9, 4/3, 1/1, 21/9.
iconIcon

A symbol, like an arrow.

PropFieldNotes
icontextIcon
labeltextAccessible Label
svgcodeCustom SVG — Used instead of a named icon.
imageImage

A photo or illustration.

PropFieldNotes
imagemediaImage
alttextAlt Text — Describes the image for screen readers and search engines.
captionrichtextCaption
linkurlLink
aspectselectAspect Ratio Options: auto, 1/1, 4/3, 3/2, 16/9, 21/9, 3/4, 4/5.
prioritytoggleLoad First
sizestextShown Width
videoVideo

YouTube, Vimeo or a video file.

PropFieldNotes
urlurlVideo URL
captionrichtextCaption
postermediaPoster Image
autoplaytoggleAutoplay Muted
controlstoggleShow Controls
looptoggleLoop

Forms

form/checkboxCheckbox

A single yes or no

PropFieldNotes
labeltextLabel
nametextField Name — Key in submissions and emails, like company_name.
requiredtoggleRequired
helptextHelp Text
show_ifgroupOnly Show When
form/checkboxesCheckboxes

Any number of options

PropFieldNotes
labeltextLabel
nametextField Name — Key in submissions and emails, like company_name.
requiredtoggleRequired
helptextHelp Text
optionstextareaOptions — One per line. Use value|Label to store a different value.
show_ifgroupOnly Show When
form/dateDate

A date

PropFieldNotes
labeltextLabel
nametextField Name — Key in submissions and emails, like company_name.
requiredtoggleRequired
helptextHelp Text
show_ifgroupOnly Show When
form/emailEmail

An email address

PropFieldNotes
labeltextLabel
nametextField Name — Key in submissions and emails, like company_name.
requiredtoggleRequired
helptextHelp Text
placeholdertextPlaceholder
show_ifgroupOnly Show When
form/fileFile Upload

A file the visitor sends

PropFieldNotes
labeltextLabel
nametextField Name — Key in submissions and emails, like company_name.
requiredtoggleRequired
helptextHelp Text
acceptselectAllowed Files Options: documents, images, any.
max_mbnumberMax Size (MB)
show_ifgroupOnly Show When
form/hiddenHidden Value

A value sent unseen

PropFieldNotes
nametextField Name
valuetextValue
form/numberNumber

A number

PropFieldNotes
labeltextLabel
nametextField Name — Key in submissions and emails, like company_name.
requiredtoggleRequired
helptextHelp Text
placeholdertextPlaceholder
minnumberMinimum
maxnumberMaximum
show_ifgroupOnly Show When
form/radioChoice

One option, all in view

PropFieldNotes
labeltextLabel
nametextField Name — Key in submissions and emails, like company_name.
requiredtoggleRequired
helptextHelp Text
optionstextareaOptions — One per line. Use value|Label to store a different value.
show_ifgroupOnly Show When
form/selectDropdown

One option from a list

PropFieldNotes
labeltextLabel
nametextField Name — Key in submissions and emails, like company_name.
requiredtoggleRequired
helptextHelp Text
optionstextareaOptions — One per line. Use value|Label to store a different value.
placeholdertextEmpty Option
show_ifgroupOnly Show When
form/telPhone

A phone number

PropFieldNotes
labeltextLabel
nametextField Name — Key in submissions and emails, like company_name.
requiredtoggleRequired
helptextHelp Text
placeholdertextPlaceholder
show_ifgroupOnly Show When
form/textShort Text

One line of text

PropFieldNotes
labeltextLabel
nametextField Name — Key in submissions and emails, like company_name.
requiredtoggleRequired
helptextHelp Text
placeholdertextPlaceholder
maxnumberMax Length
autocompleteselectAutofill Options: off, name, given-name, family-name, organization, street-address, postal-code, address-level2, country-name.
show_ifgroupOnly Show When
form/textareaLong Text

Several lines of text

PropFieldNotes
labeltextLabel
nametextField Name — Key in submissions and emails, like company_name.
requiredtoggleRequired
helptextHelp Text
placeholdertextPlaceholder
rowsnumberRows
maxnumberMax Length
show_ifgroupOnly Show When
form/urlWebsite

A web address

PropFieldNotes
labeltextLabel
nametextField Name — Key in submissions and emails, like company_name.
requiredtoggleRequired
helptextHelp Text
placeholdertextPlaceholder
show_ifgroupOnly Show When
forms/formForm

Shows one of your forms

PropFieldNotes
formselectForm

Embeds

htmlCustom HTML

Your own HTML code.

PropFieldNotes
htmlcodeHTML

Data

outletPage Content

Where each page’s content goes.

PropFieldNotes
wraptoggleWrap in a Container — Style the content area as one element.
permalinkstoggleAdd # Links to Headings
patternComponent

A reusable component.

PropFieldNotes
refselectComponent
valuesjsonProperties
repeatRepeat
contains blocks

Repeats blocks for each item.

PropFieldNotes
sourceselectList
tagselectHTML Tag Options: div, section, header, footer, main, nav, aside, article, ul, ol, li, figure, figcaption, span, label, button, form, details, summary, dialog, address, blockquote, dl, dt, dd, h1, h2, h3, h4, h5, h6, p.
astextItem Name — Name the item for nested lists (e.g. post, link).
group_bytextGroup By — A field of the items. Repeats once per group, with item.label and item.items.
filter_bytextFilter By — In a List Filter: the fields its choices filter on.
search_intextSearch In — In a List Filter: the fields its search looks through.
sort_bytextSort By — In a List Filter: the fields its Filter Sort can order by.
emptytextWhen Empty