Progress component
Datatype: "progress"A progress indicator as a linear bar, circular ring or gauge, with an optional percent/value/fraction label. Great for goals, capacity and completion visuals.
Design JSON
{
"title": "Progress sample",
"description": "A dynamic progress bar",
"dimensions": {
"width": 800,
"height": 420
},
"background": {
"color": "#ffffff"
},
"components": [
{
"id": "sample-progress",
"key": "completion",
"type": "progress",
"position": {
"x": 200,
"y": 192
},
"rotation": 0,
"size": {
"width": 400,
"height": 36
},
"dynamic": true,
"properties": {
"value": 72,
"max": 100,
"variant": "linear",
"orientation": "horizontal",
"fillColor": "#4F46E5",
"trackColor": "#E5E7EB",
"rounded": true,
"showValue": true,
"valueFormat": "percent",
"valueColor": "#374151",
"opacity": 1
}
}
]
}Like what you built? The full editor — canvas, templates and the render API — is free to start.
Open the editorProgress examples
Real renders of the progress — each one is the same component with different property values, and the API payload below each preview reproduces it exactly.
Fundraising goal tracker
A donation drive at 84% of its $10,000 goal, ready for a campaign update email.
API overrides for this example
{
"completion.value": 8420,
"completion.max": 10000,
"completion.fillColor": "#10B981",
"completion.valueFormat": "percent"
}Storage quota warning
An account at 87% of its storage allowance, amber-filled for a heads-up email.
API overrides for this example
{
"completion.value": 87,
"completion.fillColor": "#F59E0B",
"completion.valueColor": "#B45309"
}All progress 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 progress component.
- Fundraising and goal-tracker images that update with every donation
- Course completion certificates and learner progress emails
- Capacity and quota usage visuals for status reports
- Challenge streak images for social sharing
Use it dynamically via the API
Drive the bar with '<key>.value' (or just '<key>'); max, fill/track colors and valueFormat are overridable per render.
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 '{
"completion.value": 72,
"completion.max": 100,
"completion.variant": "linear",
"completion.orientation": "horizontal",
"completion.fillColor": "#4F46E5",
"completion.trackColor": "#E5E7EB",
"completion.rounded": true,
"completion.showValue": true,
"completion.valueFormat": "percent",
"completion.valueColor": "#374151",
"completion.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 progress component accepts — in the editor, in design JSON, and as API overrides.
| Property | Type | Edits as | Default | Description |
|---|---|---|---|---|
| value | number | 60 | 60 | Current progress value. |
| max | number | 100 | 100 | Value that represents 100%. |
| variant | 'linear' | 'circular' | 'gauge' | linearcirculargauge | "linear" | Visual style: bar, ring or gauge. |
| orientation | 'horizontal' | 'vertical' | horizontalvertical | "horizontal" | Direction of the linear bar. |
| fillColor | color | #4F46E5 | "#4F46E5" | Color of the filled portion. |
| trackColor | color | #E5E7EB | "#E5E7EB" | Color of the unfilled track. |
| rounded | boolean | true | true | Round the ends of the bar/ring. |
| thickness | number | 0 | 0 | Bar/ring thickness in pixels (0 = auto). |
| showValue | boolean | true | true | Show the numeric label alongside the indicator. |
| valueFormat | 'percent' | 'value' | 'fraction' | percentvaluefraction | "percent" | Format of the numeric label (72%, 72, or 72/100). |
| valueColor | color | #374151 | "#374151" | Color of the numeric label. |
| 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)". |