Metric component
Datatype: "metric"A stat tile: one big formatted number with an optional label and up/down delta badge — built for KPIs, revenue counters and scorecards.
Design JSON
{
"title": "Metric sample",
"description": "A dynamic KPI tile",
"dimensions": {
"width": 800,
"height": 420
},
"background": {
"color": "#ffffff"
},
"components": [
{
"id": "sample-metric",
"key": "revenue",
"type": "metric",
"position": {
"x": 250,
"y": 140
},
"rotation": 0,
"size": {
"width": 300,
"height": 140
},
"dynamic": true,
"properties": {
"value": 48250,
"label": "Revenue",
"format": "currency",
"labelPosition": "top",
"delta": 12.5,
"showDelta": true,
"deltaFormat": "percent",
"deltaDirection": "up-good",
"align": "center",
"opacity": 1
}
}
]
}Like what you built? The full editor — canvas, templates and the render API — is free to start.
Open the editorMetric examples
Real renders of the metric — each one is the same component with different property values, and the API payload below each preview reproduces it exactly.
Daily signups tile
New signups today with a green up-delta — ready for a morning Slack post.
API overrides for this example
{
"revenue.value": 1382,
"revenue.label": "Signups today",
"revenue.format": "number",
"revenue.delta": 4.6
}Conversion rate scorecard
Checkout conversion as a percentage, with the delta shown in raw points.
API overrides for this example
{
"revenue.value": 3.8,
"revenue.label": "Checkout conversion",
"revenue.format": "percent",
"revenue.delta": 0.4,
"revenue.deltaFormat": "value"
}All metric styles
Every style rendered live — each is just a different set of property values on the same component, and each has its own page with a dedicated preview, use cases and API example.
Use cases
What developers typically build with the metric component.
- Daily revenue or signup tiles posted to Slack
- OG images with live user or star counts
- Investor update graphics with growth deltas
- Follower milestone cards for social media
Use it dynamically via the API
Push the latest number with '<key>.value' (or just '<key>') and the change with '<key>.delta'; label and format are overridable too.
Full API request with the sample design's current values — the playground above sends only the properties you change
curl --location 'https://render.imejis.io/v1/{{YOUR_DESIGN_ID}}' \
--header 'dma-api-key: {{YOUR_API_KEY}}' \
--header 'Content-Type: application/json' \
--data '{
"revenue.value": 48250,
"revenue.label": "Revenue",
"revenue.format": "currency",
"revenue.labelPosition": "top",
"revenue.delta": 12.5,
"revenue.showDelta": true,
"revenue.deltaFormat": "percent",
"revenue.deltaDirection": "up-good",
"revenue.align": "center",
"revenue.opacity": 1
}'Only send the properties you want to change — everything else keeps its design value. See the API documentation for all languages.
Property reference
Every property the metric component accepts — in the editor, in design JSON, and as API overrides.
| Property | Type | Edits as | Default | Description |
|---|---|---|---|---|
| value | number | string | text | — | The headline value to display. |
| label | string | text | "" | Caption describing the metric. |
| labelPosition | 'top' | 'bottom' | topbottom | "top" | Whether the label sits above or below the value. |
| format | 'number' | 'compact' | 'percent' | 'currency' | 'none' | numbercompactpercentcurrencynone | "number" | How the value is formatted (48,250 / 48.3K / 48% / $48,250 / raw). |
| currencySymbol | string | text | "$" | Currency symbol used with the 'currency' format. |
| prefix | string | text | — | Text prepended to the value. |
| suffix | string | text | — | Text appended to the value. |
| delta | number | 0 | — | Change amount shown in the delta badge (no badge when unset). |
| showDelta | boolean | true / false | — | Show the delta badge. |
| deltaFormat | 'percent' | 'value' | percentvalue | "percent" | Whether the delta renders as a percentage or a raw value. |
| deltaDirection | 'up-good' | 'down-good' | up-gooddown-good | "up-good" | Which direction counts as positive (colors the badge). |
| align | 'left' | 'center' | 'right' | leftcenterright | "left" | Horizontal alignment of the tile content. |
| valueSize | number | 0 | 0 | Font size of the value in pixels. |
| valueColor | color | #0f172a | "#0f172a" | Color of the value. |
| labelColor | color | #64748b | "#64748b" | Color of the label. |
| deltaUpColor | color | #16a34a | "#16a34a" | Badge color for a positive delta. |
| deltaDownColor | color | #dc2626 | "#dc2626" | Badge color for a negative delta. |
| opacity | number | 1 | 1 | Overall component opacity from 0 (transparent) to 1 (opaque). |
| borderWidth | number | 0 | 0 | Border thickness in pixels around the component. |
| borderColor | color | transparent | "transparent" | Border color (any CSS color). |
| borderStyle | 'solid' | 'dashed' | 'dotted' | 'double' | 'none' | soliddasheddotteddoublenone | "solid" | Border line style. |
| borderRadius | number | 0 | 0 | Corner radius in pixels. |
| boxShadow | string | text | — | CSS box-shadow applied to the component, e.g. "0 4px 6px rgba(0,0,0,0.1)". |