Skip to main content
Data components take structured values: numbers, states and people. Reintersect formats the numbers, picks colours and glyphs from the tone or state, and lays each list out on one shared grid.

Badge

A short label, such as an issue label or a priority. Use it inline, in Text, Header or an Item. A badge is one of three shapes: plain, toned, or with a colour swatch.
The types enforce the three shapes, so a toned badge with an icon is a type error. Long labels wrap to two lines and show the full label in a tooltip.

Status

A state, optionally with your own label. Use it to show where something stands, such as a build or a ticket. It’s inline, like Badge.
Each state has its own glyph and tone. Screen readers always hear the state’s word, after your label when it says something different, such as “Deploying, Running”. Agent text reads Status: Deploying (Running).

Person

A person’s name with their avatar. Use it inline wherever a block names someone, such as an assignee.

MetaList and MetaItem

A single line of small details, separated by dots. Use it for secondary facts such as a branch, a person and a start time.
Reintersect draws the · between items. Agent text joins the items the same way.

Facts and Fact

Label and value pairs. Use them to list the fields of a record, such as a ticket.
Every label in a list shares one column. When the list is narrower than 320px, each label moves above its value. Agent text has one Label: value line per fact.

Metrics and Metric

Headline numbers, each with an optional change and trend line. Use them for measurements such as latency, an error rate or revenue. You pass the number and how to format it, and Reintersect writes it out in the viewer’s locale.
How each format reads: A delta takes the metric’s format, so a latency delta of -12 reads “−12ms”. With percent: true it reads as a percent change instead, and its value is a fraction too: 0.08 is +8%. goodWhen says which direction is good. Reintersect derives the sign, the arrow, the colour and the spoken text from that: a fall in latency with goodWhen: "down" is green and read as “Down 12ms, better”. Without goodWhen, a delta is neutral. Values of a million or more are compacted, such as 1.2M, with the exact value in the tooltip and the accessible text. The value never truncates: the sparkline drops below it first, then the number gets a step smaller, then it wraps. Reintersect picks the number of columns from the number of metrics, in balanced rows: four go two by two and five go three and two. Agent text has one Label: value (delta) line per metric, such as Error rate: 0.4% (−0.1%).

Progress

A progress bar with its text worked out for you. Use it to show how far along something is, such as a rollout across regions.
Progress takes a value out of max, not a fraction. Without max, the value is out of 100 and the text is the percentage, such as “40%”. With max, the text reads “3 of 8 regions”, and screen readers hear the percentage too: “3 of 8 regions, 38%”. Agent text reads Rollout: 3 of 8 regions (38%).

AvatarStack

A row of overlapping avatars. Use it to show a group of people, such as reviewers or attendees.
Reintersect shows up to five avatars. The rest sit behind a +N button that opens the full list, with each person’s name, avatar and link.

ItemList and Item

A list of rows, each with a title, an optional description and content before and after it. Use it for a list of objects, such as the pull requests in a release.
Every row in a list shares one grid, so titles start at the same edge. When the list is narrower than 320px, trailing content moves under the title. A linked row shows a small arrow. Agent text has one - line per item, with its parts joined by ·.

Steps and Step

An ordered list of stages, each with a state. Use it to show progress through a sequence, such as a deployment pipeline.
Agent text has one entry per step, such as Build (Succeeded).

Table

Rows of typed cells. Use it for data with several columns, such as failing checks with their status and owner. Reintersect handles the header, sorting, paging, number formatting and alignment, and the layout on narrow screens.
Cell values follow the column kind, and the types check them: Number columns are aligned to the end; everything else starts at the beginning. Only number columns take format, unit or currency. A table narrower than 400px becomes a list of cards, so nothing scrolls sideways. The first column is each card’s title, the other columns become label and value pairs in column order, and empty cells are left out. The row link wraps the title and the row menu sits at the card’s top right. A table with sortable columns gets a Sort menu, and sorting and paging carry over to the cards. A row menu takes up to 12 items with the same shape as MenuItem props, so each row can run actions. Agent text has the table as Markdown rows.

Chart

A small bar, line, area or donut chart. Use it to show values over time or a breakdown, such as deploys per day.
With format: "percent", chart values are fractions too:
A donut has one series of at most five slices, with no negative values and a total above zero. When two or more slices are under 2% of the total, they merge into one “Other” slice. A chart whose values are all zero shows a quiet “No values yet.” line instead of an empty plot. Reintersect picks the colours and draws each series with its own dash and marker, so series never differ by shade alone. Axis ticks are rounded and compacted, long point labels are cut to fit with the full label in the tooltip, and Show data opens the exact values as a table for keyboard and screen reader users. Agent text has the chart’s data as a table.

Image

An image from an https:// URL. Use it to show a screenshot or another picture inside the block.
With aspect: "auto", the image keeps its own shape between 1:2 (tall) and 3:1 (wide), and is never shorter than 48px. A thumb is always square. The frame fits the image, with no letterbox. When a block is stored, Reintersect downloads each image once and serves its own copy, so viewers never load your host. Images must be JPEG, PNG, WebP or GIF, at most 5 MB and at most 8,192 pixels on each side, and must download within 4 seconds. A block holds at most 10 images. If an image can’t be copied, Reintersect shows its alt text as muted text instead, or nothing for a decorative image; the rest of the block still renders.

File

A link to a file, with its name, size and type. Use it for a download, such as a report.
The type tag comes from mimeType, then from a known file extension in name. Files of other types show no tag.

Reference

A link that Reintersect renders the way it renders any pasted link: as a chip, a card or a plain link. Use it to point to an object, such as a pull request, a video or one of your app’s own records. Links your app claims render with your reference’s fields, and links to providers Reintersect supports, such as GitHub or YouTube, render with theirs.
Reintersect treats display as a preference. A "block" shows as a card only when the provider has a card for the link and its data is ready. Otherwise it shows as a chip. See References.