Badge
A short label, such as an issue label or a priority. Use it inline, inText, 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, likeBadge.
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:
Image
An image from anhttps:// 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.