Chord Diagram component
Datatype: "chord"A chord diagram — entities arranged on a circle with ribbons whose thickness shows the strength of each relationship. Built for flows and many-to-many connections.
Design JSON
{
"title": "Chord sample",
"description": "Migration flows between regions",
"dimensions": {
"width": 620,
"height": 480
},
"background": {
"color": "#ffffff"
},
"components": [
{
"id": "sample-chord",
"key": "chord",
"type": "chord",
"position": {
"x": 150,
"y": 40
},
"rotation": 0,
"size": {
"width": 400,
"height": 400
},
"dynamic": true,
"properties": {
"links": [
{
"source": "North",
"target": "South",
"value": 40
},
{
"source": "North",
"target": "East",
"value": 25
},
{
"source": "North",
"target": "West",
"value": 15
},
{
"source": "South",
"target": "East",
"value": 30
},
{
"source": "South",
"target": "West",
"value": 20
},
{
"source": "East",
"target": "West",
"value": 22
}
],
"padAngle": 2,
"ribbonOpacity": 0.6,
"showValues": true,
"opacity": 1
}
}
]
}Like what you built? The full editor — canvas, templates and the render API — is free to start.
Open the editorChord Diagram examples
Real renders of the chord diagram — each one is the same component with different property values, and the API payload below each preview reproduces it exactly.
Region migration flows
Movement between four regions, ribbons sized by volume.
API overrides for this example
{
"chord.links": [
{
"source": "North",
"target": "South",
"value": 40
},
{
"source": "North",
"target": "East",
"value": 25
},
{
"source": "North",
"target": "West",
"value": 15
},
{
"source": "South",
"target": "East",
"value": 30
},
{
"source": "South",
"target": "West",
"value": 20
},
{
"source": "East",
"target": "West",
"value": 22
}
],
"chord.showValues": true
}Team interactions
How often five teams collaborate, as a connection map.
API overrides for this example
{
"chord.links": [
{
"source": "Eng",
"target": "Design",
"value": 34
},
{
"source": "Eng",
"target": "Product",
"value": 40
},
{
"source": "Design",
"target": "Product",
"value": 28
},
{
"source": "Product",
"target": "Sales",
"value": 22
},
{
"source": "Sales",
"target": "Support",
"value": 18
},
{
"source": "Support",
"target": "Eng",
"value": 14
}
],
"chord.colors": [
"#6366f1",
"#22c55e",
"#f59e0b",
"#ec4899",
"#0ea5e9"
]
}All chord diagram 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 chord diagram component.
- Migration / trade flows between regions or countries
- Cross-team or cross-product interaction maps
- Referral / co-occurrence relationships
- Any many-to-many connection summary
Use it dynamically via the API
Push fresh relationships per render with '<key>.links' (or just '<key>') as [{ source, target, value }]; group colors via '<key>.groups'.
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 '{
"chord.links": [
{
"source": "North",
"target": "South",
"value": 40
},
{
"source": "North",
"target": "East",
"value": 25
},
{
"source": "North",
"target": "West",
"value": 15
},
{
"source": "South",
"target": "East",
"value": 30
},
{
"source": "South",
"target": "West",
"value": 20
},
{
"source": "East",
"target": "West",
"value": 22
}
],
"chord.padAngle": 2,
"chord.ribbonOpacity": 0.6,
"chord.showValues": true,
"chord.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 chord diagram component accepts — in the editor, in design JSON, and as API overrides.
| Property | Type | Edits as | Default | Description |
|---|---|---|---|---|
| links | object[] | text | [] | Relationships: array of { source, target, value } — names reference groups. |
| groups | object[] | text | [] | Optional group colors/order: [{ name, color }]; derived from links otherwise. |
| colors | color[] | text | [] | Group palette (cycled) when a group has no explicit color. |
| padAngle | number | 2 | 2 | Gap between group arcs (degrees). |
| arcThickness | number | 14 | 14 | Thickness of the group ring band (px). |
| ribbonOpacity | number | 0.6 | 0.6 | Opacity of the relationship ribbons. |
| labelColor | color | #334155 | "#334155" | Group label text color. |
| showValues | boolean | false | false | Append each group's total to its label. |
| valueFormat | 'number' | 'compact' | 'percent' | 'currency' | numbercompactpercentcurrency | "compact" | How printed values are formatted (1,200 / 1.2K / $1,200). |
| currencySymbol | string | text | "$" | Symbol used with the 'currency' format. |
| 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)". |