Content blocks
To-do
The to-do list item: a 16px checkbox; checked items are struck through and faded.
Write the outline
Share it for review
Usage
- Use To-do for actionable items that people check off (checklists, meeting actions).
- Pass
onCheckedChangeto make the checkbox interactive; omit it for a read-only checklist. - Don’t use To-do for options in a form; use
Checkboxinstead. - Don’t use To-do for tracked work with owners and dates; use a database instead.
Installation
Install the package (React 19):
terminal
terminal
terminal
Import the styles once, in your app entry or root layout:
/src/main.tsx
Use it anywhere inside your app's <Theme> (see Installation):
/src/TodoExample.tsx
Examples
Read-only
Without onCheckedChange the checkbox is read-only.
Done
Not done
With children
Prepare release
Changelog
Announcement
API Reference
ToDo
Based on <div> and supports its props. Adds:
| Prop | Type | Default |
|---|---|---|
text | RichText | |
renderLeaf | LeafRenderer | |
checked | boolean | false |
onCheckedChange | (checked: boolean) => void | |
depth | number | 0 |
spacing | { top?: boolean; bottom?: boolean; nested?: boolean } | |
color | BlockColor | "default" |
children | ReactNode |
Accessibility
- The box is the
Checkboxatom (role="checkbox",aria-checked, label “To-do”);Spacetoggles it when focused. - Pass a more specific
aria-labelthrough a custom marker if several to-dos need distinct names.
© 2026 Motion. Internal documentation.