Skip to content

Components ​

SayShape ships 64 components. Each one is a single ComponentDef in src/components: its description, props, allowed values, children and example live there, and this reference, the parser's validation and the model guide are all generated from it. A spec can't add components; they're reviewed TypeScript code.

CategoryComponents
Layoutcolumn, row, overlap, grid, card, list, list-item, accordion, divider, spacer, each, timeline, step, carousel, scroll
Contenttext, image, code, badge, avatar, callout, icon, tile
Datastat, rating, chart, chart-line, chart-rule, chart-note, meter, table, table-column, compare, compare-row, details, detail, schedule, board, tree, flow, map, pin
Inputbutton, link, check, switch, radio, select, date-picker, stepper, slider, input, segmented, menu, menu-item
Navigationscreen, tabs, tab, breadcrumb, pagination
Feedbackprogress, skeleton, empty, dialog

Conventions ​

  • "text" is the quoted text after the element name: button "Save".
  • A prop marked required must be given, or the parser reports it.
  • state props take a state name or a path like t.done; action props take on= strings; condition props take an expression.
  • Enum values are listed in the type column. Any other value is a warning and the prop falls back to its default.
  • Specs never set colors, fonts or pixel sizes. Roles such as tone=, variant= and style= pick from the theme.

SayShape v0.1 is an early prototype under the MIT License. Status · GitHub