Block reference

Every lens block — text, data views, layout, media, interactive, and navigation — and when to reach for each.

#Text

Block What it does
Heading H1–H6 titles. Supports expressions: Latest: {{$binding.posts.title}}.
Text Plain, Markdown, or HTML content (HTML is sanitised). Expressions resolve in all modes.
HTML Author-written HTML with expressions. Sanitised by default; a Raw switch renders unsanitised — only a super admin can save a raw HTML block.
Badge / Callout / Code Pills, highlighted notes, code samples.

#Data views

All data views read a binding's rows and format values through the field-renderer chain — chips, currency, ratings and dates look the same in every block.

Block What it does
Table Columns with per-column renderer overrides; auto-columns when unconfigured.
Cards Responsive card grid — image, title, subtitle, meta fields. A link pattern like /data/collection/movies?record={{$record.id}} makes each card clickable.
Kanban Records grouped into lanes by a field value. Turn on Drag cards between lanes to let users move records — a drop writes the lane field through the records API, so permissions still apply.
Timeline A vertical chronology by a date field, optionally grouped by year.
Calendar A month grid plotting records by a date field. Set the month to {{$url.month}} and the page URL drives it (?month=2026-07).
Chart Chart.js charts fed by a binding.
Map An interactive MapLibre map over a geo field, with popups and clustering.
Stat / Progress Single-number cards and progress bars; stats can read a record field or an expression.
Record / Field A record's fields as a definition list, or one field's value — the building blocks of record pages.
Repeater Renders its child blocks once per row — for fully custom per-record layouts. {{$record.field}} is row-scoped inside.

#Layout, media, interactive, navigation

Block What it does
Row / Column / Divider / Spacer Structure.
Conditional Shows its children only when a rule on bound data passes.
Image / Gallery / Iframe Media and embeds.
Button Links and actions; label and target support expressions.
Form Create/edit records or trigger flows — see Forms.
Menu / Tabs / Tiles Navigation — tiles are the icon-card grid the System dashboard uses.

#Tips

  • Prefer field Display defaults over per-column renderer overrides: set the renderer once on the field (Schema → Display) and every table, card, and record view agrees.
  • Blocks that take a binding show sample data in the designer immediately — bind first, then configure.
  • The render budget guards page weight (block count, depth, binding count); very large pages should paginate their bindings with limit.