Skip to content

Block reference ​

Every entry in a screen's blocks: list is { type: <name>, ...props }. Blocks marked children also take a children: list of blocks. A text value is a string, a number, or a translation object such as { en: "Hello", de: "Hallo" } (needs languages: in the spec).

Props every block accepts ​

PropTypeDescription
toneblue | green | yellow | red | purple | pink | orange | teal | grayColour this block and everything inside it: outlines, text and drawn shapes.
fillbooleanGive the block a tinted background (uses tone, or a neutral tint).

Actions ​

Blocks that list go, toast, open or close in their props are clickable (button, card, avatar, link, nextbar, nav and tab-bar items) and accept:

PropTypeDescription
gostringId of the screen to open when clicked.
toasttextMessage shown in a toast when clicked.
openstringId of a modal block to open when clicked.
closebooleanClose the modal this block is inside when clicked.

Icons ​

Used by icon, button.icon, nav items and tabbar:

home · search · heart · comment · share · bookmark · plus · bell · user · users · mail · settings · camera · image · video · star · menu · more · close · check · arrow-right · arrow-left · chevron-down · chevron-right · play · pin · trash · edit · upload · download · lock · cart · chart · calendar · filter · info · send

Layout ​

stack · children ​

Vertical stack of blocks.

PropTypeDescription
centerbooleanCenter the children horizontally.

* required

row · children ​

Horizontal row that wraps on small screens. Images, videos, maps and charts in a row are 4:3 thumbnails of their height.

PropTypeDescription
betweenbooleanPush the first and last child to opposite ends.
centerbooleanCenter the children.

* required

grid · children ​

Equal-width columns. Collapses to one column on phones.

PropTypeDescription
colsnumberNumber of columns (default 2).

* required

card · children ​

Hand-drawn box around related blocks. Clickable when go is set.

PropTypeDescription
titletextSmall heading at the top of the card.
dashbooleanNo fill (a lighter, secondary card).
centerbooleanCenter the content horizontally.
elevationnumberShadow layers, 1 to 5 (default 1).
gostringId of the screen to open when clicked.
toasttextMessage shown in a toast when clicked.
openstringId of a modal block to open when clicked.
closebooleanClose the modal this block is inside when clicked.

* required

accordion ​

Collapsible sections (FAQ, filters, settings groups).

PropTypeDescription
items *list of { label, children }List of { label, children }.
opennumberIndex of the section open at first (default: all closed).

* required

device · children ​

Wrap screens in a phone, tablet or browser frame. Ideal for mobile-app and responsive sketches.

PropTypeDescription
kindphone | tablet | browserFrame type (default phone).
titletextAddress shown in the browser bar.

* required

divider ​

Hand-drawn horizontal line.

spacer ​

Empty vertical space.

PropTypeDescription
hnumberHeight in px (default 16).

* required

Text ​

h1 ​

Level 1 heading.

PropTypeDescription
text *textHeading text.

* required

h2 ​

Level 2 heading.

PropTypeDescription
text *textHeading text.

* required

h3 ​

Level 3 heading.

PropTypeDescription
text *textHeading text.

* required

text ​

Paragraph. A bare string in a children list is shorthand for this block.

PropTypeDescription
text *textParagraph text.
mutedbooleanGrey, smaller text.
boldbooleanBold text.

* required

list ​

Bulleted list.

PropTypeDescription
items *list of textList items.

* required

note ​

Yellow sticky-note annotation. Use it for behaviour a sketch cannot show.

PropTypeDescription
text *textNote text.

* required

badge ​

Small status pill.

PropTypeDescription
text *textBadge text.
statuson | wait | offColour: on green, wait orange, off grey.

* required

Content ​

icon ​

Hand-drawn icon.

PropTypeDescription
name *home | search | heart | comment | share | bookmark | plus | bell | user | users | mail | settings | camera | image | video | star | menu | more | close | check | arrow-right | arrow-left | chevron-down | chevron-right | play | pin | trash | edit | upload | download | lock | cart | chart | calendar | filter | info | sendIcon name.
sizenumberSize in px (default 22).
filledbooleanSolid instead of outline (heart, star, bookmark…).

* required

avatar ​

Round profile picture with an optional name and sub-line. Clickable.

PropTypeDescription
nametextBold name next to the picture.
subtextSmaller line under the name.
sizenumberPicture size in px (default 44).
gostringId of the screen to open when clicked.
toasttextMessage shown in a toast when clicked.
openstringId of a modal block to open when clicked.
closebooleanClose the modal this block is inside when clicked.

* required

hero · children ​

Big headline block for landing pages. Put call-to-action buttons (or an image) in children.

PropTypeDescription
title *textHeadline.
texttextSupporting sentence.
alignleft | centerText alignment (default center).

* required

stat ​

Number card for dashboards: label, big value and a change indicator.

PropTypeDescription
label *textWhat is measured.
value *textThe number.
deltatextChange, e.g. +8%.
trendup | down | flatColours the change: up green, down orange, flat grey (default up).

* required

rating ​

Star rating.

PropTypeDescription
valuenumberFilled stars (default 4).
maxnumberTotal stars (default 5).
texttextText after the stars, e.g. (128 reviews).

* required

Underlined text link.

PropTypeDescription
text *textLink text.
gostringId of the screen to open when clicked.
toasttextMessage shown in a toast when clicked.
openstringId of a modal block to open when clicked.
closebooleanClose the modal this block is inside when clicked.

* required

Media ​

image ​

Image placeholder: hand-drawn box with a cross. Use round for avatars.

PropTypeDescription
hnumberHeight in px.
labeltextCaption centered in the box.
roundbooleanDraw a circle instead of a box.

* required

map ​

Map placeholder with a pin.

PropTypeDescription
hnumberHeight in px.
labeltextCaption centered in the box.

* required

box ​

Generic hand-drawn box, for ads, embeds, anything else.

PropTypeDescription
hnumberHeight in px.
labeltextCaption centered in the box.

* required

video ​

Video placeholder with a play button.

PropTypeDescription
hnumberHeight in px.
labeltextCaption centered in the box.

* required

Swipeable gallery: image placeholder with arrows and page dots.

PropTypeDescription
hnumberHeight in px.
labeltextCaption centered in the box.
countnumberNumber of slides shown as dots (default 4).

* required

dropzone ​

Dashed upload area with an arrow.

PropTypeDescription
hnumberHeight in px.
labeltextCaption centered in the box.

* required

chart ​

Hand-drawn chart with sample data. It shows where a chart goes and what kind it is.

PropTypeDescription
kindline | area | bar | pie | donutChart type (default line).
hnumberHeight in px.
valueslist of numbersYour own data points. Leave out for sample data.
labeltextCaption in the corner.

* required

Forms ​

input ​

Single-line text field.

PropTypeDescription
labeltextLabel shown above the control.
placeholdertextPlaceholder text.
valuetextPre-filled value.
inputTypestringHTML input type: text, email, password, number…
disabledbooleanGrey out the field.

* required

Search field with a magnifier.

PropTypeDescription
placeholdertextPlaceholder text.

* required

textarea ​

Multi-line text field.

PropTypeDescription
labeltextLabel shown above the control.
placeholdertextPlaceholder text.
rowsnumberVisible rows (default 3).

* required

select ​

Dropdown.

PropTypeDescription
labeltextLabel shown above the control.
options *list of textChoices.
selectednumberIndex of the pre-selected option (default 0).

* required

checkbox ​

Checkbox with a label.

PropTypeDescription
label *textLabel shown above the control.
checkedbooleanStart ticked.

* required

toggle ​

On/off switch with a label.

PropTypeDescription
label *textLabel shown above the control.
checkedbooleanStart switched on.

* required

radio ​

Radio group.

PropTypeDescription
labeltextLabel shown above the control.
options *list of textChoices.
selectednumberIndex of the pre-selected option (default 0).

* required

slider ​

Range slider.

PropTypeDescription
labeltextLabel shown above the control.
valuenumberStart position, 0 to 100 (default 30).

* required

Actions ​

button ​

Button, optionally with an icon. Navigates with go, opens a modal with open, shows a message with toast.

PropTypeDescription
labeltextButton text. Leave out for an icon-only button.
iconhome | search | heart | comment | share | bookmark | plus | bell | user | users | mail | settings | camera | image | video | star | menu | more | close | check | arrow-right | arrow-left | chevron-down | chevron-right | play | pin | trash | edit | upload | download | lock | cart | chart | calendar | filter | info | sendIcon shown before the label.
primarybooleanHeavier border: the main action on the screen.
disabledbooleanGrey out the button.
gostringId of the screen to open when clicked.
toasttextMessage shown in a toast when clicked.
openstringId of a modal block to open when clicked.
closebooleanClose the modal this block is inside when clicked.

* required

chips ​

Filter pills. Clicking one selects it and shows a “Results updated” toast.

PropTypeDescription
options *list of textPill labels.
activenumberIndex of the selected pill (default 0).

* required

tabs ​

Tab strip. Each tab has its own list of blocks.

PropTypeDescription
tabs *list of { label, children }List of { label, children }.

* required

nextbar ​

“Next →” strip at the bottom of a screen. Hidden in the PDF.

PropTypeDescription
labeltextBold lead-in (default “Next →”).
texttextWhat happens next.
buttontextButton text (default “Continue →”).
gostringId of the screen to open when clicked.
toasttextMessage shown in a toast when clicked.
openstringId of a modal block to open when clicked.
closebooleanClose the modal this block is inside when clicked.

* required

Path to the current page. The last item is the current one.

PropTypeDescription
items *list of textPath segments.

* required

pagination ​

Previous / page numbers / next.

PropTypeDescription
pagesnumberNumber of pages (default 5).
activenumberCurrent page, starting at 1 (default 1).

* required

steps ​

Numbered progress through a multi-step flow (checkout, onboarding).

PropTypeDescription
items *list of textStep names.
activenumberIndex of the current step, starting at 0 (default 0).

* required

tabbar ​

Bottom tab bar of a mobile app: icons with small labels.

PropTypeDescription
items *list of { icon, label, go, toast, open }List of { icon, label, go, toast, open }.
activenumberIndex of the highlighted item (default 0).

* required

Feedback ​

alert ​

Banner for information, success, warnings and errors.

PropTypeDescription
text *textMessage.
titletextBold first line.
kindinfo | success | warning | errorType and colour (default info).

* required

progress ​

Progress bar.

PropTypeDescription
value *numberPercent complete, 0 to 100.
labeltextCaption above the bar.

* required

Overlays ​

Dialog that opens over the screen when a button, card or link has open: <id>. Close with a close: true button, the X, or a click outside.

PropTypeDescription
id *stringUnique id; other blocks use it in open:.
titletextHeading of the dialog.
widthnarrow | medium | wideDialog width (default medium).

* required

Data ​

table ​

Table. A cell is text or a block (e.g. badge, button). A row can be { cells, go } to make it clickable.

PropTypeDescription
columns *list of textColumn headings.
rows *list of rowsList of rows: [cell, cell] or { cells: [...], go: screenId }.

* required

Released under the MIT License.