ARIA · table fallbackAccessibility
Canvas ARIA metadata is paired with a text summary and table fallback.
Graflume · Alpha
Show change and accumulated magnitude with a filled continuous surface. These tabs come from Graflume's public catalog. Every mode owns runnable data, options, a Quick API, and source-backed feature claims.
Chart family · Default families
Show change and accumulated magnitude with a filled continuous surface.
area()graflumeareaChart-specific features
These tabs come from Graflume's public catalog. Every mode owns runnable data, options, a Quick API, and source-backed feature claims.
Area chart uses runnable data and options to demonstrate zero-baseline area; named and branched transform DAG reuse.
StatusLoading
areazero-baseline areanamed and branched transform DAG reuseLoading
Row data and zero-copy TypedArray columns share one data contract.
categoryordinal | valuequantitative |
|---|---|
| Jan | 48 |
| Feb | 53 |
| Mar | 51 |
| Apr | 59 |
| May | 66 |
| Jun | 70 |
| Jul | 76 |
| Aug | 82 |
| Sep | 80 |
| Oct | 89 |
| Nov | 96 |
| Dec | 104 |
Browser API
const data = [
{
"base": 37.44,
"category": "Jan",
"close": 48,
"conversion": 18,
"date": "2026-01-01",
"direction": 28,
"down": 78,
"high": 54,
"low": 44,
"lower": 43,
"magnitude": 7,
"minus": 39,
"open": 44,
"plus": 24,
"previous": 44,
"price": 72,
"radius": 20.560000000000002,
"resistance": 57,
"secondary": 36,
"series": "Before launch",
"signal": 48.2,
"speed": 18,
"support": 40,
"target": 50,
"title": "",
"up": 54,
"upper": 55,
"value": 48,
"volume": 1250,
"width": 2.8,
"z": 8
},
{
"base": 41.34,
"category": "Feb",
"close": 53,
"conversion": 20.28,
"date": "2026-02-01",
"direction": 59,
"down": 76.3,
"high": 60,
"low": 48,
"lower": 47,
"magnitude": 9.4,
"minus": 37.9,
"open": 48,
"plus": 25.6,
"previous": 48,
"price": 75.41,
"radius": 21.66,
"resistance": 62,
"secondary": 41.97,
"series": "Before launch",
"signal": 53.16,
"speed": 20.7,
"support": 45,
"target": 54.6,
"title": "",
"up": 56.4,
"upper": 61,
"value": 53,
"volume": 1478,
"width": 3.6999999999999997,
"z": 9.4
},
{
"base": 39.78,
"category": "Mar",
"close": 51,
"conversion": 22.16,
"date": "2026-03-01",
"direction": 90,
"down": 74.6,
"high": 59,
"low": 45,
"lower": 44,
"magnitude": 11.8,
"minus": 36.8,
"open": 53,
"plus": 27.2,
"previous": 53,
"price": 77.85,
"radius": 21.22,
"resistance": 60,
"secondary": 46.2,
"series": "Before launch",
"signal": 51.82,
"speed": 23.4,
"support": 43,
"target": 59.2,
"title": "Spring release",
"up": 58.8,
"upper": 60,
"value": 51,
"volume": 1706,
"width": 4.6,
"z": 10.8
},
{
"base": 46.02,
"category": "Apr",
"close": 59,
"conversion": 23.4,
"date": "2026-04-01",
"direction": 121,
"down": 72.9,
"high": 65,
"low": 55,
"lower": 54,
"magnitude": 14.2,
"minus": 35.7,
"open": 51,
"plus": 28.8,
"previous": 51,
"price": 78.81,
"radius": 22.98,
"resistance": 68,
"secondary": 48,
"series": "Before launch",
"signal": 59.48,
"speed": 26.1,
"support": 51,
"target": 63.8,
"title": "",
"up": 61.2,
"upper": 66,
"value": 59,
"volume": 1724,
"width": 5.5,
"z": 12.2
},
{
"base": 51.48,
"category": "May",
"close": 66,
"conversion": 23.95,
"date": "2026-05-01",
"direction": 152,
"down": 71.2,
"high": 73,
"low": 61,
"lower": 60,
"magnitude": 16.6,
"minus": 34.6,
"open": 59,
"plus": 30.4,
"previous": 59,
"price": 78.47,
"radius": 24.52,
"resistance": 75,
"secondary": 48.17,
"series": "Before launch",
"signal": 66.24,
"speed": 28.8,
"support": 58,
"target": 68.4,
"title": "",
"up": 63.6,
"upper": 74,
"value": 66,
"volume": 1952,
"width": 2.8,
"z": 13.6
},
{
"base": 54.6,
"category": "Jun",
"close": 70,
"conversion": 24.03,
"date": "2026-06-01",
"direction": 183,
"down": 69.5,
"high": 78,
"low": 64,
"lower": 63,
"magnitude": 7,
"minus": 33.5,
"open": 66,
"plus": 32,
"previous": 66,
"price": 77.63,
"radius": 25.4,
"resistance": 79,
"secondary": 48.47,
"series": "Before launch",
"signal": 70.3,
"speed": 31.5,
"support": 62,
"target": 73,
"title": "",
"up": 66,
"upper": 79,
"value": 70,
"volume": 2180,
"width": 3.6999999999999997,
"z": 15
},
{
"base": 59.28,
"category": "Jul",
"close": 76,
"conversion": 24.01,
"date": "2026-07-01",
"direction": 214,
"down": 67.8,
"high": 82,
"low": 72,
"lower": 71,
"magnitude": 9.4,
"minus": 32.4,
"open": 70,
"plus": 33.6,
"previous": 70,
"price": 77.31,
"radius": 26.72,
"resistance": 85,
"secondary": 50.62,
"series": "After launch",
"signal": 76.16,
"speed": 34.2,
"support": 68,
"target": 77.6,
"title": "",
"up": 68.4,
"upper": 83,
"value": 76,
"volume": 2198,
"width": 4.6,
"z": 16.4
},
{
"base": 63.96,
"category": "Aug",
"close": 82,
"conversion": 24.31,
"date": "2026-08-01",
"direction": 245,
"down": 66.1,
"high": 89,
"low": 77,
"lower": 76,
"magnitude": 11.8,
"minus": 31.299999999999997,
"open": 76,
"plus": 35.2,
"previous": 76,
"price": 78.31,
"radius": 28.04,
"resistance": 91,
"secondary": 55.17,
"series": "After launch",
"signal": 82.02,
"speed": 36.900000000000006,
"support": 74,
"target": 82.2,
"title": "",
"up": 70.8,
"upper": 90,
"value": 82,
"volume": 2426,
"width": 5.5,
"z": 17.799999999999997
},
{
"base": 62.4,
"category": "Sep",
"close": 80,
"conversion": 25.21,
"date": "2026-09-01",
"direction": 276,
"down": 64.4,
"high": 88,
"low": 74,
"lower": 73,
"magnitude": 14.2,
"minus": 30.2,
"open": 82,
"plus": 36.8,
"previous": 82,
"price": 80.78,
"radius": 27.6,
"resistance": 89,
"secondary": 61.27,
"series": "After launch",
"signal": 80.68,
"speed": 39.6,
"support": 72,
"target": 86.8,
"title": "Team plan launch",
"up": 73.2,
"upper": 89,
"value": 80,
"volume": 2444,
"width": 2.8,
"z": 19.2
},
{
"base": 69.42,
"category": "Oct",
"close": 89,
"conversion": 26.8,
"date": "2026-10-01",
"direction": 307,
"down": 62.7,
"high": 95,
"low": 85,
"lower": 84,
"magnitude": 16.6,
"minus": 29.1,
"open": 80,
"plus": 38.4,
"previous": 80,
"price": 84.2,
"radius": 29.580000000000002,
"resistance": 98,
"secondary": 67.07,
"series": "After launch",
"signal": 89.24,
"speed": 42.3,
"support": 81,
"target": 91.4,
"title": "",
"up": 75.6,
"upper": 96,
"value": 89,
"volume": 2672,
"width": 3.6999999999999997,
"z": 20.6
},
{
"base": 74.88,
"category": "Nov",
"close": 96,
"conversion": 28.94,
"date": "2026-11-01",
"direction": 338,
"down": 61,
"high": 103,
"low": 91,
"lower": 90,
"magnitude": 7,
"minus": 28,
"open": 89,
"plus": 40,
"previous": 89,
"price": 87.6,
"radius": 31.12,
"resistance": 105,
"secondary": 70.96,
"series": "After launch",
"signal": 96,
"speed": 45,
"support": 88,
"target": 96,
"title": "",
"up": 78,
"upper": 104,
"value": 96,
"volume": 2900,
"width": 4.6,
"z": 22
},
{
"base": 81.12,
"category": "Dec",
"close": 104,
"conversion": 31.27,
"date": "2026-12-01",
"direction": 9,
"down": 59.3,
"high": 112,
"low": 98,
"lower": 97,
"magnitude": 9.4,
"minus": 26.9,
"open": 96,
"plus": 41.6,
"previous": 96,
"price": 90.01,
"radius": 32.879999999999995,
"resistance": 113,
"secondary": 72.44,
"series": "After launch",
"signal": 103.66,
"speed": 47.7,
"support": 96,
"target": 100.6,
"title": "",
"up": 80.4,
"upper": 113,
"value": 104,
"volume": 2918,
"width": 5.5,
"z": 23.4
}
];
const options = {
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Area example"
},
"axes": {
"x": {
"labels": {
"orientation": "horizontal",
"padding": 9
},
"ticks": {
"spacing": 10
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "compact"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"axis": "x",
"fields": [
{
"field": "category",
"format": "auto",
"label": "Category"
},
{
"field": "value",
"format": "number",
"label": "Value"
}
],
"title": "Area",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"point": false
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Area chart uses runnable data and options to demonstrate zero-baseline area; named and branched transform DAG reuse.",
"text": "Area"
},
"width": "container",
"x": {
"field": "category",
"title": "Month",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "Active teams",
"type": "quantitative"
}
};
Graflume.area('#chart', data, options);Portable schema
{
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Area example"
},
"axes": {
"x": {
"labels": {
"orientation": "horizontal",
"padding": 9
},
"ticks": {
"spacing": 10
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "compact"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"axis": "x",
"fields": [
{
"field": "category",
"format": "auto",
"label": "Category"
},
{
"field": "value",
"format": "number",
"label": "Value"
}
],
"title": "Area",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"point": false
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Area chart uses runnable data and options to demonstrate zero-baseline area; named and branched transform DAG reuse.",
"text": "Area"
},
"width": "container",
"x": {
"field": "category",
"title": "Month",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "Active teams",
"type": "quantitative"
}
}Stepped area chart uses runnable data and options to demonstrate shared linear, step, monotone, natural, basis and cardinal curves with explicit missing-value policy; worker-bounded incremental stack updates.
StatusLoading
stepped-areashared linear, step, monotone, natural, basis and cardinal curves with explicit missing-value policyworker-bounded incremental stack updatesLoading
Row data and zero-copy TypedArray columns share one data contract.
categoryordinal | valuequantitative |
|---|---|
| Jan | 48 |
| Feb | 53 |
| Mar | 51 |
| Apr | 59 |
| May | 66 |
| Jun | 70 |
| Jul | 76 |
| Aug | 82 |
| Sep | 80 |
| Oct | 89 |
| Nov | 96 |
| Dec | 104 |
Browser API
const data = [
{
"base": 37.44,
"category": "Jan",
"close": 48,
"conversion": 18,
"date": "2026-01-01",
"direction": 28,
"down": 78,
"high": 54,
"low": 44,
"lower": 43,
"magnitude": 7,
"minus": 39,
"open": 44,
"plus": 24,
"previous": 44,
"price": 72,
"radius": 20.560000000000002,
"resistance": 57,
"secondary": 36,
"series": "Before launch",
"signal": 48.2,
"speed": 18,
"support": 40,
"target": 50,
"title": "",
"up": 54,
"upper": 55,
"value": 48,
"volume": 1250,
"width": 2.8,
"z": 8
},
{
"base": 41.34,
"category": "Feb",
"close": 53,
"conversion": 20.28,
"date": "2026-02-01",
"direction": 59,
"down": 76.3,
"high": 60,
"low": 48,
"lower": 47,
"magnitude": 9.4,
"minus": 37.9,
"open": 48,
"plus": 25.6,
"previous": 48,
"price": 75.41,
"radius": 21.66,
"resistance": 62,
"secondary": 41.97,
"series": "Before launch",
"signal": 53.16,
"speed": 20.7,
"support": 45,
"target": 54.6,
"title": "",
"up": 56.4,
"upper": 61,
"value": 53,
"volume": 1478,
"width": 3.6999999999999997,
"z": 9.4
},
{
"base": 39.78,
"category": "Mar",
"close": 51,
"conversion": 22.16,
"date": "2026-03-01",
"direction": 90,
"down": 74.6,
"high": 59,
"low": 45,
"lower": 44,
"magnitude": 11.8,
"minus": 36.8,
"open": 53,
"plus": 27.2,
"previous": 53,
"price": 77.85,
"radius": 21.22,
"resistance": 60,
"secondary": 46.2,
"series": "Before launch",
"signal": 51.82,
"speed": 23.4,
"support": 43,
"target": 59.2,
"title": "Spring release",
"up": 58.8,
"upper": 60,
"value": 51,
"volume": 1706,
"width": 4.6,
"z": 10.8
},
{
"base": 46.02,
"category": "Apr",
"close": 59,
"conversion": 23.4,
"date": "2026-04-01",
"direction": 121,
"down": 72.9,
"high": 65,
"low": 55,
"lower": 54,
"magnitude": 14.2,
"minus": 35.7,
"open": 51,
"plus": 28.8,
"previous": 51,
"price": 78.81,
"radius": 22.98,
"resistance": 68,
"secondary": 48,
"series": "Before launch",
"signal": 59.48,
"speed": 26.1,
"support": 51,
"target": 63.8,
"title": "",
"up": 61.2,
"upper": 66,
"value": 59,
"volume": 1724,
"width": 5.5,
"z": 12.2
},
{
"base": 51.48,
"category": "May",
"close": 66,
"conversion": 23.95,
"date": "2026-05-01",
"direction": 152,
"down": 71.2,
"high": 73,
"low": 61,
"lower": 60,
"magnitude": 16.6,
"minus": 34.6,
"open": 59,
"plus": 30.4,
"previous": 59,
"price": 78.47,
"radius": 24.52,
"resistance": 75,
"secondary": 48.17,
"series": "Before launch",
"signal": 66.24,
"speed": 28.8,
"support": 58,
"target": 68.4,
"title": "",
"up": 63.6,
"upper": 74,
"value": 66,
"volume": 1952,
"width": 2.8,
"z": 13.6
},
{
"base": 54.6,
"category": "Jun",
"close": 70,
"conversion": 24.03,
"date": "2026-06-01",
"direction": 183,
"down": 69.5,
"high": 78,
"low": 64,
"lower": 63,
"magnitude": 7,
"minus": 33.5,
"open": 66,
"plus": 32,
"previous": 66,
"price": 77.63,
"radius": 25.4,
"resistance": 79,
"secondary": 48.47,
"series": "Before launch",
"signal": 70.3,
"speed": 31.5,
"support": 62,
"target": 73,
"title": "",
"up": 66,
"upper": 79,
"value": 70,
"volume": 2180,
"width": 3.6999999999999997,
"z": 15
},
{
"base": 59.28,
"category": "Jul",
"close": 76,
"conversion": 24.01,
"date": "2026-07-01",
"direction": 214,
"down": 67.8,
"high": 82,
"low": 72,
"lower": 71,
"magnitude": 9.4,
"minus": 32.4,
"open": 70,
"plus": 33.6,
"previous": 70,
"price": 77.31,
"radius": 26.72,
"resistance": 85,
"secondary": 50.62,
"series": "After launch",
"signal": 76.16,
"speed": 34.2,
"support": 68,
"target": 77.6,
"title": "",
"up": 68.4,
"upper": 83,
"value": 76,
"volume": 2198,
"width": 4.6,
"z": 16.4
},
{
"base": 63.96,
"category": "Aug",
"close": 82,
"conversion": 24.31,
"date": "2026-08-01",
"direction": 245,
"down": 66.1,
"high": 89,
"low": 77,
"lower": 76,
"magnitude": 11.8,
"minus": 31.299999999999997,
"open": 76,
"plus": 35.2,
"previous": 76,
"price": 78.31,
"radius": 28.04,
"resistance": 91,
"secondary": 55.17,
"series": "After launch",
"signal": 82.02,
"speed": 36.900000000000006,
"support": 74,
"target": 82.2,
"title": "",
"up": 70.8,
"upper": 90,
"value": 82,
"volume": 2426,
"width": 5.5,
"z": 17.799999999999997
},
{
"base": 62.4,
"category": "Sep",
"close": 80,
"conversion": 25.21,
"date": "2026-09-01",
"direction": 276,
"down": 64.4,
"high": 88,
"low": 74,
"lower": 73,
"magnitude": 14.2,
"minus": 30.2,
"open": 82,
"plus": 36.8,
"previous": 82,
"price": 80.78,
"radius": 27.6,
"resistance": 89,
"secondary": 61.27,
"series": "After launch",
"signal": 80.68,
"speed": 39.6,
"support": 72,
"target": 86.8,
"title": "Team plan launch",
"up": 73.2,
"upper": 89,
"value": 80,
"volume": 2444,
"width": 2.8,
"z": 19.2
},
{
"base": 69.42,
"category": "Oct",
"close": 89,
"conversion": 26.8,
"date": "2026-10-01",
"direction": 307,
"down": 62.7,
"high": 95,
"low": 85,
"lower": 84,
"magnitude": 16.6,
"minus": 29.1,
"open": 80,
"plus": 38.4,
"previous": 80,
"price": 84.2,
"radius": 29.580000000000002,
"resistance": 98,
"secondary": 67.07,
"series": "After launch",
"signal": 89.24,
"speed": 42.3,
"support": 81,
"target": 91.4,
"title": "",
"up": 75.6,
"upper": 96,
"value": 89,
"volume": 2672,
"width": 3.6999999999999997,
"z": 20.6
},
{
"base": 74.88,
"category": "Nov",
"close": 96,
"conversion": 28.94,
"date": "2026-11-01",
"direction": 338,
"down": 61,
"high": 103,
"low": 91,
"lower": 90,
"magnitude": 7,
"minus": 28,
"open": 89,
"plus": 40,
"previous": 89,
"price": 87.6,
"radius": 31.12,
"resistance": 105,
"secondary": 70.96,
"series": "After launch",
"signal": 96,
"speed": 45,
"support": 88,
"target": 96,
"title": "",
"up": 78,
"upper": 104,
"value": 96,
"volume": 2900,
"width": 4.6,
"z": 22
},
{
"base": 81.12,
"category": "Dec",
"close": 104,
"conversion": 31.27,
"date": "2026-12-01",
"direction": 9,
"down": 59.3,
"high": 112,
"low": 98,
"lower": 97,
"magnitude": 9.4,
"minus": 26.9,
"open": 96,
"plus": 41.6,
"previous": 96,
"price": 90.01,
"radius": 32.879999999999995,
"resistance": 113,
"secondary": 72.44,
"series": "After launch",
"signal": 103.66,
"speed": 47.7,
"support": 96,
"target": 100.6,
"title": "",
"up": 80.4,
"upper": 113,
"value": 104,
"volume": 2918,
"width": 5.5,
"z": 23.4
}
];
const options = {
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Area · Stepped area chart example"
},
"axes": {
"x": {
"labels": {
"orientation": "horizontal",
"padding": 9
},
"ticks": {
"spacing": 10
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "compact"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"axis": "x",
"fields": [
{
"field": "category",
"format": "auto",
"label": "Category"
},
{
"field": "value",
"format": "number",
"label": "Value"
}
],
"title": "Area · Stepped area chart",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"point": false
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Stepped area chart uses runnable data and options to demonstrate shared linear, step, monotone, natural, basis and cardinal curves with explicit missing-value policy; worker-bounded incremental stack updates.",
"text": "Area · Stepped area chart"
},
"width": "container",
"x": {
"field": "category",
"title": "Month",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "Active teams",
"type": "quantitative"
}
};
Graflume.steppedArea('#chart', data, options);Portable schema
{
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Area · Stepped area chart example"
},
"axes": {
"x": {
"labels": {
"orientation": "horizontal",
"padding": 9
},
"ticks": {
"spacing": 10
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "compact"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"axis": "x",
"fields": [
{
"field": "category",
"format": "auto",
"label": "Category"
},
{
"field": "value",
"format": "number",
"label": "Value"
}
],
"title": "Area · Stepped area chart",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"point": false
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Stepped area chart uses runnable data and options to demonstrate shared linear, step, monotone, natural, basis and cardinal curves with explicit missing-value policy; worker-bounded incremental stack updates.",
"text": "Area · Stepped area chart"
},
"width": "container",
"x": {
"field": "category",
"title": "Month",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "Active teams",
"type": "quantitative"
}
}Theme river chart uses runnable data and options to demonstrate automatic series labels.
StatusLoading
theme-riverautomatic series labelsLoading
Row data and zero-copy TypedArray columns share one data contract.
datetemporal | valuequantitative | seriesordinal |
|---|---|---|
| 2026-01-01 | 8 | Dashboards |
| 2026-02-01 | 10.87 | Dashboards |
| 2026-03-01 | 12.88 | Dashboards |
| 2026-04-01 | 13.48 | Dashboards |
| 2026-05-01 | 12.66 | Dashboards |
| 2026-06-01 | 10.92 | Dashboards |
| 2026-07-01 | 9.11 | Dashboards |
| 2026-08-01 | 8.12 | Dashboards |
| 2026-09-01 | 8.52 | Dashboards |
| 2026-10-01 | 10.36 | Dashboards |
| 2026-11-01 | 13.17 | Dashboards |
| 2026-12-01 | 16.1 | Dashboards |
| 2026-01-01 | 15.06 | Reports |
| 2026-02-01 | 16.12 | Reports |
| 2026-03-01 | 15.69 | Reports |
| 2026-04-01 | 14.2 | Reports |
| 2026-05-01 | 12.44 | Reports |
| 2026-06-01 | 11.31 | Reports |
| 2026-07-01 | 11.48 | Reports |
| 2026-08-01 | 13.13 | Reports |
| 2026-09-01 | 15.89 | Reports |
| 2026-10-01 | 18.99 | Reports |
| 2026-11-01 | 21.5 | Reports |
| 2026-12-01 | 22.75 | Reports |
| 2026-01-01 | 18.23 | Models |
| 2026-02-01 | 17.03 | Models |
| 2026-03-01 | 15.36 | Models |
| 2026-04-01 | 14.13 | Models |
| 2026-05-01 | 14.08 | Models |
| 2026-06-01 | 15.52 | Models |
| 2026-07-01 | 18.2 | Models |
| 2026-08-01 | 21.41 | Models |
| 2026-09-01 | 24.23 | Models |
| 2026-10-01 | 25.92 | Models |
| 2026-11-01 | 26.12 | Models |
| 2026-12-01 | 25.05 | Models |
| 2026-01-01 | 17.87 | Exports |
| 2026-02-01 | 16.57 | Exports |
| 2026-03-01 | 16.32 | Exports |
| 2026-04-01 | 17.53 | Exports |
| 2026-05-01 | 20.09 | Exports |
| 2026-06-01 | 23.37 | Exports |
| 2026-07-01 | 26.47 | Exports |
| 2026-08-01 | 28.57 | Exports |
| 2026-09-01 | 29.21 | Exports |
| 2026-10-01 | 28.49 | Exports |
| 2026-11-01 | 27 | Exports |
| 2026-12-01 | 25.62 | Exports |
Browser API
const data = [
{
"date": "2026-01-01",
"series": "Dashboards",
"value": 8
},
{
"date": "2026-02-01",
"series": "Dashboards",
"value": 10.87
},
{
"date": "2026-03-01",
"series": "Dashboards",
"value": 12.88
},
{
"date": "2026-04-01",
"series": "Dashboards",
"value": 13.48
},
{
"date": "2026-05-01",
"series": "Dashboards",
"value": 12.66
},
{
"date": "2026-06-01",
"series": "Dashboards",
"value": 10.92
},
{
"date": "2026-07-01",
"series": "Dashboards",
"value": 9.11
},
{
"date": "2026-08-01",
"series": "Dashboards",
"value": 8.12
},
{
"date": "2026-09-01",
"series": "Dashboards",
"value": 8.52
},
{
"date": "2026-10-01",
"series": "Dashboards",
"value": 10.36
},
{
"date": "2026-11-01",
"series": "Dashboards",
"value": 13.17
},
{
"date": "2026-12-01",
"series": "Dashboards",
"value": 16.1
},
{
"date": "2026-01-01",
"series": "Reports",
"value": 15.06
},
{
"date": "2026-02-01",
"series": "Reports",
"value": 16.12
},
{
"date": "2026-03-01",
"series": "Reports",
"value": 15.69
},
{
"date": "2026-04-01",
"series": "Reports",
"value": 14.2
},
{
"date": "2026-05-01",
"series": "Reports",
"value": 12.44
},
{
"date": "2026-06-01",
"series": "Reports",
"value": 11.31
},
{
"date": "2026-07-01",
"series": "Reports",
"value": 11.48
},
{
"date": "2026-08-01",
"series": "Reports",
"value": 13.13
},
{
"date": "2026-09-01",
"series": "Reports",
"value": 15.89
},
{
"date": "2026-10-01",
"series": "Reports",
"value": 18.99
},
{
"date": "2026-11-01",
"series": "Reports",
"value": 21.5
},
{
"date": "2026-12-01",
"series": "Reports",
"value": 22.75
},
{
"date": "2026-01-01",
"series": "Models",
"value": 18.23
},
{
"date": "2026-02-01",
"series": "Models",
"value": 17.03
},
{
"date": "2026-03-01",
"series": "Models",
"value": 15.36
},
{
"date": "2026-04-01",
"series": "Models",
"value": 14.13
},
{
"date": "2026-05-01",
"series": "Models",
"value": 14.08
},
{
"date": "2026-06-01",
"series": "Models",
"value": 15.52
},
{
"date": "2026-07-01",
"series": "Models",
"value": 18.2
},
{
"date": "2026-08-01",
"series": "Models",
"value": 21.41
},
{
"date": "2026-09-01",
"series": "Models",
"value": 24.23
},
{
"date": "2026-10-01",
"series": "Models",
"value": 25.92
},
{
"date": "2026-11-01",
"series": "Models",
"value": 26.12
},
{
"date": "2026-12-01",
"series": "Models",
"value": 25.05
},
{
"date": "2026-01-01",
"series": "Exports",
"value": 17.87
},
{
"date": "2026-02-01",
"series": "Exports",
"value": 16.57
},
{
"date": "2026-03-01",
"series": "Exports",
"value": 16.32
},
{
"date": "2026-04-01",
"series": "Exports",
"value": 17.53
},
{
"date": "2026-05-01",
"series": "Exports",
"value": 20.09
},
{
"date": "2026-06-01",
"series": "Exports",
"value": 23.37
},
{
"date": "2026-07-01",
"series": "Exports",
"value": 26.47
},
{
"date": "2026-08-01",
"series": "Exports",
"value": 28.57
},
{
"date": "2026-09-01",
"series": "Exports",
"value": 29.21
},
{
"date": "2026-10-01",
"series": "Exports",
"value": 28.49
},
{
"date": "2026-11-01",
"series": "Exports",
"value": 27
},
{
"date": "2026-12-01",
"series": "Exports",
"value": 25.62
}
];
const options = {
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Area · Theme river chart example"
},
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
},
"labels": {
"orientation": "horizontal",
"padding": 9
},
"ticks": {
"spacing": 10
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "compact"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"axis": "x",
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "value",
"format": "number",
"label": "Value"
},
{
"field": "series",
"format": "auto",
"label": "Series"
}
],
"title": "Area · Theme river chart",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"fields": {
"category": "series"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Theme river chart uses runnable data and options to demonstrate automatic series labels.",
"text": "Area · Theme river chart"
},
"width": "container",
"x": {
"field": "date",
"title": "Month",
"type": "temporal"
},
"y": {
"field": "value",
"title": "Active teams",
"type": "quantitative"
}
};
Graflume.themeRiver('#chart', data, options);Portable schema
{
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Area · Theme river chart example"
},
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
},
"labels": {
"orientation": "horizontal",
"padding": 9
},
"ticks": {
"spacing": 10
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "compact"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"axis": "x",
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "value",
"format": "number",
"label": "Value"
},
{
"field": "series",
"format": "auto",
"label": "Series"
}
],
"title": "Area · Theme river chart",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"fields": {
"category": "series"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Theme river chart uses runnable data and options to demonstrate automatic series labels.",
"text": "Area · Theme river chart"
},
"width": "container",
"x": {
"field": "date",
"title": "Month",
"type": "temporal"
},
"y": {
"field": "value",
"title": "Active teams",
"type": "quantitative"
}
}Smooth area chart uses runnable data and options to demonstrate grouped, stacked, 100 percent and diverging long-form series; data-domain navigation.
StatusLoading
area-splinegrouped, stacked, 100 percent and diverging long-form seriesdata-domain navigationLoading
Row data and zero-copy TypedArray columns share one data contract.
categoryordinal | valuequantitative |
|---|---|
| Jan | 48 |
| Feb | 53 |
| Mar | 51 |
| Apr | 59 |
| May | 66 |
| Jun | 70 |
| Jul | 76 |
| Aug | 82 |
| Sep | 80 |
| Oct | 89 |
| Nov | 96 |
| Dec | 104 |
Browser API
const data = [
{
"base": 37.44,
"category": "Jan",
"close": 48,
"conversion": 18,
"date": "2026-01-01",
"direction": 28,
"down": 78,
"high": 54,
"low": 44,
"lower": 43,
"magnitude": 7,
"minus": 39,
"open": 44,
"plus": 24,
"previous": 44,
"price": 72,
"radius": 20.560000000000002,
"resistance": 57,
"secondary": 36,
"series": "Before launch",
"signal": 48.2,
"speed": 18,
"support": 40,
"target": 50,
"title": "",
"up": 54,
"upper": 55,
"value": 48,
"volume": 1250,
"width": 2.8,
"z": 8
},
{
"base": 41.34,
"category": "Feb",
"close": 53,
"conversion": 20.28,
"date": "2026-02-01",
"direction": 59,
"down": 76.3,
"high": 60,
"low": 48,
"lower": 47,
"magnitude": 9.4,
"minus": 37.9,
"open": 48,
"plus": 25.6,
"previous": 48,
"price": 75.41,
"radius": 21.66,
"resistance": 62,
"secondary": 41.97,
"series": "Before launch",
"signal": 53.16,
"speed": 20.7,
"support": 45,
"target": 54.6,
"title": "",
"up": 56.4,
"upper": 61,
"value": 53,
"volume": 1478,
"width": 3.6999999999999997,
"z": 9.4
},
{
"base": 39.78,
"category": "Mar",
"close": 51,
"conversion": 22.16,
"date": "2026-03-01",
"direction": 90,
"down": 74.6,
"high": 59,
"low": 45,
"lower": 44,
"magnitude": 11.8,
"minus": 36.8,
"open": 53,
"plus": 27.2,
"previous": 53,
"price": 77.85,
"radius": 21.22,
"resistance": 60,
"secondary": 46.2,
"series": "Before launch",
"signal": 51.82,
"speed": 23.4,
"support": 43,
"target": 59.2,
"title": "Spring release",
"up": 58.8,
"upper": 60,
"value": 51,
"volume": 1706,
"width": 4.6,
"z": 10.8
},
{
"base": 46.02,
"category": "Apr",
"close": 59,
"conversion": 23.4,
"date": "2026-04-01",
"direction": 121,
"down": 72.9,
"high": 65,
"low": 55,
"lower": 54,
"magnitude": 14.2,
"minus": 35.7,
"open": 51,
"plus": 28.8,
"previous": 51,
"price": 78.81,
"radius": 22.98,
"resistance": 68,
"secondary": 48,
"series": "Before launch",
"signal": 59.48,
"speed": 26.1,
"support": 51,
"target": 63.8,
"title": "",
"up": 61.2,
"upper": 66,
"value": 59,
"volume": 1724,
"width": 5.5,
"z": 12.2
},
{
"base": 51.48,
"category": "May",
"close": 66,
"conversion": 23.95,
"date": "2026-05-01",
"direction": 152,
"down": 71.2,
"high": 73,
"low": 61,
"lower": 60,
"magnitude": 16.6,
"minus": 34.6,
"open": 59,
"plus": 30.4,
"previous": 59,
"price": 78.47,
"radius": 24.52,
"resistance": 75,
"secondary": 48.17,
"series": "Before launch",
"signal": 66.24,
"speed": 28.8,
"support": 58,
"target": 68.4,
"title": "",
"up": 63.6,
"upper": 74,
"value": 66,
"volume": 1952,
"width": 2.8,
"z": 13.6
},
{
"base": 54.6,
"category": "Jun",
"close": 70,
"conversion": 24.03,
"date": "2026-06-01",
"direction": 183,
"down": 69.5,
"high": 78,
"low": 64,
"lower": 63,
"magnitude": 7,
"minus": 33.5,
"open": 66,
"plus": 32,
"previous": 66,
"price": 77.63,
"radius": 25.4,
"resistance": 79,
"secondary": 48.47,
"series": "Before launch",
"signal": 70.3,
"speed": 31.5,
"support": 62,
"target": 73,
"title": "",
"up": 66,
"upper": 79,
"value": 70,
"volume": 2180,
"width": 3.6999999999999997,
"z": 15
},
{
"base": 59.28,
"category": "Jul",
"close": 76,
"conversion": 24.01,
"date": "2026-07-01",
"direction": 214,
"down": 67.8,
"high": 82,
"low": 72,
"lower": 71,
"magnitude": 9.4,
"minus": 32.4,
"open": 70,
"plus": 33.6,
"previous": 70,
"price": 77.31,
"radius": 26.72,
"resistance": 85,
"secondary": 50.62,
"series": "After launch",
"signal": 76.16,
"speed": 34.2,
"support": 68,
"target": 77.6,
"title": "",
"up": 68.4,
"upper": 83,
"value": 76,
"volume": 2198,
"width": 4.6,
"z": 16.4
},
{
"base": 63.96,
"category": "Aug",
"close": 82,
"conversion": 24.31,
"date": "2026-08-01",
"direction": 245,
"down": 66.1,
"high": 89,
"low": 77,
"lower": 76,
"magnitude": 11.8,
"minus": 31.299999999999997,
"open": 76,
"plus": 35.2,
"previous": 76,
"price": 78.31,
"radius": 28.04,
"resistance": 91,
"secondary": 55.17,
"series": "After launch",
"signal": 82.02,
"speed": 36.900000000000006,
"support": 74,
"target": 82.2,
"title": "",
"up": 70.8,
"upper": 90,
"value": 82,
"volume": 2426,
"width": 5.5,
"z": 17.799999999999997
},
{
"base": 62.4,
"category": "Sep",
"close": 80,
"conversion": 25.21,
"date": "2026-09-01",
"direction": 276,
"down": 64.4,
"high": 88,
"low": 74,
"lower": 73,
"magnitude": 14.2,
"minus": 30.2,
"open": 82,
"plus": 36.8,
"previous": 82,
"price": 80.78,
"radius": 27.6,
"resistance": 89,
"secondary": 61.27,
"series": "After launch",
"signal": 80.68,
"speed": 39.6,
"support": 72,
"target": 86.8,
"title": "Team plan launch",
"up": 73.2,
"upper": 89,
"value": 80,
"volume": 2444,
"width": 2.8,
"z": 19.2
},
{
"base": 69.42,
"category": "Oct",
"close": 89,
"conversion": 26.8,
"date": "2026-10-01",
"direction": 307,
"down": 62.7,
"high": 95,
"low": 85,
"lower": 84,
"magnitude": 16.6,
"minus": 29.1,
"open": 80,
"plus": 38.4,
"previous": 80,
"price": 84.2,
"radius": 29.580000000000002,
"resistance": 98,
"secondary": 67.07,
"series": "After launch",
"signal": 89.24,
"speed": 42.3,
"support": 81,
"target": 91.4,
"title": "",
"up": 75.6,
"upper": 96,
"value": 89,
"volume": 2672,
"width": 3.6999999999999997,
"z": 20.6
},
{
"base": 74.88,
"category": "Nov",
"close": 96,
"conversion": 28.94,
"date": "2026-11-01",
"direction": 338,
"down": 61,
"high": 103,
"low": 91,
"lower": 90,
"magnitude": 7,
"minus": 28,
"open": 89,
"plus": 40,
"previous": 89,
"price": 87.6,
"radius": 31.12,
"resistance": 105,
"secondary": 70.96,
"series": "After launch",
"signal": 96,
"speed": 45,
"support": 88,
"target": 96,
"title": "",
"up": 78,
"upper": 104,
"value": 96,
"volume": 2900,
"width": 4.6,
"z": 22
},
{
"base": 81.12,
"category": "Dec",
"close": 104,
"conversion": 31.27,
"date": "2026-12-01",
"direction": 9,
"down": 59.3,
"high": 112,
"low": 98,
"lower": 97,
"magnitude": 9.4,
"minus": 26.9,
"open": 96,
"plus": 41.6,
"previous": 96,
"price": 90.01,
"radius": 32.879999999999995,
"resistance": 113,
"secondary": 72.44,
"series": "After launch",
"signal": 103.66,
"speed": 47.7,
"support": 96,
"target": 100.6,
"title": "",
"up": 80.4,
"upper": 113,
"value": 104,
"volume": 2918,
"width": 5.5,
"z": 23.4
}
];
const options = {
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Area · Smooth area chart example"
},
"axes": {
"x": {
"labels": {
"orientation": "horizontal",
"padding": 9
},
"ticks": {
"spacing": 10
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "compact"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"axis": "x",
"fields": [
{
"field": "category",
"format": "auto",
"label": "Category"
},
{
"field": "value",
"format": "number",
"label": "Value"
}
],
"title": "Area · Smooth area chart",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"options": {
"area": true
},
"point": true
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Smooth area chart uses runnable data and options to demonstrate grouped, stacked, 100 percent and diverging long-form series; data-domain navigation.",
"text": "Area · Smooth area chart"
},
"width": "container",
"x": {
"field": "category",
"title": "Month",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "Active teams",
"type": "quantitative"
}
};
Graflume.areaSpline('#chart', data, options);Portable schema
{
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Area · Smooth area chart example"
},
"axes": {
"x": {
"labels": {
"orientation": "horizontal",
"padding": 9
},
"ticks": {
"spacing": 10
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "compact"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"axis": "x",
"fields": [
{
"field": "category",
"format": "auto",
"label": "Category"
},
{
"field": "value",
"format": "number",
"label": "Value"
}
],
"title": "Area · Smooth area chart",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"options": {
"area": true
},
"point": true
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Smooth area chart uses runnable data and options to demonstrate grouped, stacked, 100 percent and diverging long-form series; data-domain navigation.",
"text": "Area · Smooth area chart"
},
"width": "container",
"x": {
"field": "category",
"title": "Month",
"type": "ordinal"
},
"y": {
"field": "value",
"title": "Active teams",
"type": "quantitative"
}
}Polygon chart uses runnable data and options to demonstrate zero, normalize, silhouette and wiggle offsets with explicit series order.
StatusLoading
polygonzero, normalize, silhouette and wiggle offsets with explicit series orderLoading
Row data and zero-copy TypedArray columns share one data contract.
xquantitative | yquantitative | seriesordinal |
|---|---|---|
| 1 | 2 | Current |
| 2.4 | 6.8 | Current |
| 5.2 | 7.5 | Current |
| 7.4 | 3.4 | Current |
| 4.1 | 1.1 | Current |
| 2.2 | 2.8 | Previous |
| 3.1 | 5.7 | Previous |
| 5.1 | 6.2 | Previous |
| 6.3 | 3.6 | Previous |
| 4.2 | 2.2 | Previous |
Browser API
const data = [
{
"series": "Current",
"x": 1,
"y": 2
},
{
"series": "Current",
"x": 2.4,
"y": 6.8
},
{
"series": "Current",
"x": 5.2,
"y": 7.5
},
{
"series": "Current",
"x": 7.4,
"y": 3.4
},
{
"series": "Current",
"x": 4.1,
"y": 1.1
},
{
"series": "Previous",
"x": 2.2,
"y": 2.8
},
{
"series": "Previous",
"x": 3.1,
"y": 5.7
},
{
"series": "Previous",
"x": 5.1,
"y": 6.2
},
{
"series": "Previous",
"x": 6.3,
"y": 3.6
},
{
"series": "Previous",
"x": 4.2,
"y": 2.2
}
];
const options = {
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Area · Polygon chart example"
},
"axes": {
"x": {
"labels": {
"orientation": "horizontal",
"padding": 9
},
"ticks": {
"spacing": 10
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "compact"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"axis": "x",
"fields": [
{
"field": "x",
"format": "number",
"label": "X"
},
{
"field": "y",
"format": "number",
"label": "Y"
},
{
"field": "series",
"format": "auto",
"label": "Series"
}
],
"title": "Area · Polygon chart",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"fields": {
"series": "series"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Polygon chart uses runnable data and options to demonstrate zero, normalize, silhouette and wiggle offsets with explicit series order.",
"text": "Area · Polygon chart"
},
"width": "container",
"x": {
"field": "x",
"title": "Month",
"type": "quantitative"
},
"y": {
"field": "y",
"title": "Active teams",
"type": "quantitative"
}
};
Graflume.polygon('#chart', data, options);Portable schema
{
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Area · Polygon chart example"
},
"axes": {
"x": {
"labels": {
"orientation": "horizontal",
"padding": 9
},
"ticks": {
"spacing": 10
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "compact"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"axis": "x",
"fields": [
{
"field": "x",
"format": "number",
"label": "X"
},
{
"field": "y",
"format": "number",
"label": "Y"
},
{
"field": "series",
"format": "auto",
"label": "Series"
}
],
"title": "Area · Polygon chart",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"fields": {
"series": "series"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Polygon chart uses runnable data and options to demonstrate zero, normalize, silhouette and wiggle offsets with explicit series order.",
"text": "Area · Polygon chart"
},
"width": "container",
"x": {
"field": "x",
"title": "Month",
"type": "quantitative"
},
"y": {
"field": "y",
"title": "Active teams",
"type": "quantitative"
}
}Streamgraph uses runnable data and options to demonstrate per-observation semantic and datum hit targets.
StatusLoading
streamgraphper-observation semantic and datum hit targetsLoading
Row data and zero-copy TypedArray columns share one data contract.
datetemporal | valuequantitative | seriesordinal |
|---|---|---|
| 2026-01-01 | 8 | Dashboards |
| 2026-02-01 | 10.87 | Dashboards |
| 2026-03-01 | 12.88 | Dashboards |
| 2026-04-01 | 13.48 | Dashboards |
| 2026-05-01 | 12.66 | Dashboards |
| 2026-06-01 | 10.92 | Dashboards |
| 2026-07-01 | 9.11 | Dashboards |
| 2026-08-01 | 8.12 | Dashboards |
| 2026-09-01 | 8.52 | Dashboards |
| 2026-10-01 | 10.36 | Dashboards |
| 2026-11-01 | 13.17 | Dashboards |
| 2026-12-01 | 16.1 | Dashboards |
| 2026-01-01 | 15.06 | Reports |
| 2026-02-01 | 16.12 | Reports |
| 2026-03-01 | 15.69 | Reports |
| 2026-04-01 | 14.2 | Reports |
| 2026-05-01 | 12.44 | Reports |
| 2026-06-01 | 11.31 | Reports |
| 2026-07-01 | 11.48 | Reports |
| 2026-08-01 | 13.13 | Reports |
| 2026-09-01 | 15.89 | Reports |
| 2026-10-01 | 18.99 | Reports |
| 2026-11-01 | 21.5 | Reports |
| 2026-12-01 | 22.75 | Reports |
| 2026-01-01 | 18.23 | Models |
| 2026-02-01 | 17.03 | Models |
| 2026-03-01 | 15.36 | Models |
| 2026-04-01 | 14.13 | Models |
| 2026-05-01 | 14.08 | Models |
| 2026-06-01 | 15.52 | Models |
| 2026-07-01 | 18.2 | Models |
| 2026-08-01 | 21.41 | Models |
| 2026-09-01 | 24.23 | Models |
| 2026-10-01 | 25.92 | Models |
| 2026-11-01 | 26.12 | Models |
| 2026-12-01 | 25.05 | Models |
| 2026-01-01 | 17.87 | Exports |
| 2026-02-01 | 16.57 | Exports |
| 2026-03-01 | 16.32 | Exports |
| 2026-04-01 | 17.53 | Exports |
| 2026-05-01 | 20.09 | Exports |
| 2026-06-01 | 23.37 | Exports |
| 2026-07-01 | 26.47 | Exports |
| 2026-08-01 | 28.57 | Exports |
| 2026-09-01 | 29.21 | Exports |
| 2026-10-01 | 28.49 | Exports |
| 2026-11-01 | 27 | Exports |
| 2026-12-01 | 25.62 | Exports |
Browser API
const data = [
{
"date": "2026-01-01",
"series": "Dashboards",
"value": 8
},
{
"date": "2026-02-01",
"series": "Dashboards",
"value": 10.87
},
{
"date": "2026-03-01",
"series": "Dashboards",
"value": 12.88
},
{
"date": "2026-04-01",
"series": "Dashboards",
"value": 13.48
},
{
"date": "2026-05-01",
"series": "Dashboards",
"value": 12.66
},
{
"date": "2026-06-01",
"series": "Dashboards",
"value": 10.92
},
{
"date": "2026-07-01",
"series": "Dashboards",
"value": 9.11
},
{
"date": "2026-08-01",
"series": "Dashboards",
"value": 8.12
},
{
"date": "2026-09-01",
"series": "Dashboards",
"value": 8.52
},
{
"date": "2026-10-01",
"series": "Dashboards",
"value": 10.36
},
{
"date": "2026-11-01",
"series": "Dashboards",
"value": 13.17
},
{
"date": "2026-12-01",
"series": "Dashboards",
"value": 16.1
},
{
"date": "2026-01-01",
"series": "Reports",
"value": 15.06
},
{
"date": "2026-02-01",
"series": "Reports",
"value": 16.12
},
{
"date": "2026-03-01",
"series": "Reports",
"value": 15.69
},
{
"date": "2026-04-01",
"series": "Reports",
"value": 14.2
},
{
"date": "2026-05-01",
"series": "Reports",
"value": 12.44
},
{
"date": "2026-06-01",
"series": "Reports",
"value": 11.31
},
{
"date": "2026-07-01",
"series": "Reports",
"value": 11.48
},
{
"date": "2026-08-01",
"series": "Reports",
"value": 13.13
},
{
"date": "2026-09-01",
"series": "Reports",
"value": 15.89
},
{
"date": "2026-10-01",
"series": "Reports",
"value": 18.99
},
{
"date": "2026-11-01",
"series": "Reports",
"value": 21.5
},
{
"date": "2026-12-01",
"series": "Reports",
"value": 22.75
},
{
"date": "2026-01-01",
"series": "Models",
"value": 18.23
},
{
"date": "2026-02-01",
"series": "Models",
"value": 17.03
},
{
"date": "2026-03-01",
"series": "Models",
"value": 15.36
},
{
"date": "2026-04-01",
"series": "Models",
"value": 14.13
},
{
"date": "2026-05-01",
"series": "Models",
"value": 14.08
},
{
"date": "2026-06-01",
"series": "Models",
"value": 15.52
},
{
"date": "2026-07-01",
"series": "Models",
"value": 18.2
},
{
"date": "2026-08-01",
"series": "Models",
"value": 21.41
},
{
"date": "2026-09-01",
"series": "Models",
"value": 24.23
},
{
"date": "2026-10-01",
"series": "Models",
"value": 25.92
},
{
"date": "2026-11-01",
"series": "Models",
"value": 26.12
},
{
"date": "2026-12-01",
"series": "Models",
"value": 25.05
},
{
"date": "2026-01-01",
"series": "Exports",
"value": 17.87
},
{
"date": "2026-02-01",
"series": "Exports",
"value": 16.57
},
{
"date": "2026-03-01",
"series": "Exports",
"value": 16.32
},
{
"date": "2026-04-01",
"series": "Exports",
"value": 17.53
},
{
"date": "2026-05-01",
"series": "Exports",
"value": 20.09
},
{
"date": "2026-06-01",
"series": "Exports",
"value": 23.37
},
{
"date": "2026-07-01",
"series": "Exports",
"value": 26.47
},
{
"date": "2026-08-01",
"series": "Exports",
"value": 28.57
},
{
"date": "2026-09-01",
"series": "Exports",
"value": 29.21
},
{
"date": "2026-10-01",
"series": "Exports",
"value": 28.49
},
{
"date": "2026-11-01",
"series": "Exports",
"value": 27
},
{
"date": "2026-12-01",
"series": "Exports",
"value": 25.62
}
];
const options = {
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Area · Streamgraph example"
},
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
},
"labels": {
"orientation": "horizontal",
"padding": 9
},
"ticks": {
"spacing": 10
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "compact"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"axis": "x",
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "value",
"format": "number",
"label": "Value"
},
{
"field": "series",
"format": "auto",
"label": "Series"
}
],
"title": "Area · Streamgraph",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"fields": {
"category": "series"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Streamgraph uses runnable data and options to demonstrate per-observation semantic and datum hit targets.",
"text": "Area · Streamgraph"
},
"width": "container",
"x": {
"field": "date",
"title": "Month",
"type": "temporal"
},
"y": {
"field": "value",
"title": "Active teams",
"type": "quantitative"
}
};
Graflume.streamgraph('#chart', data, options);Portable schema
{
"accessibility": {
"description": "Zoom and pan inspect the rendered surface without changing data axes or values. When playback controls are available, they move through real steps in the order each unique value first appears in the source data.",
"label": "Area · Streamgraph example"
},
"axes": {
"x": {
"format": {
"dateStyle": "long",
"timeZone": "UTC",
"type": "date"
},
"labels": {
"orientation": "horizontal",
"padding": 9
},
"ticks": {
"spacing": 10
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "compact"
}
}
},
"height": 620,
"interaction": {
"controls": {
"annotations": false,
"export": true,
"fullscreen": true,
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": false,
"reset": true,
"zoom": true
},
"hover": true,
"navigation": {
"drag": true,
"keyboard": true,
"maxZoom": 6,
"minZoom": 1,
"pinch": true,
"wheel": "modifier"
},
"tooltip": {
"axis": "x",
"fields": [
{
"dateStyle": "long",
"field": "date",
"format": "date",
"label": "Date",
"timeZone": "UTC"
},
{
"field": "value",
"format": "number",
"label": "Value"
},
{
"field": "series",
"format": "auto",
"label": "Series"
}
],
"title": "Area · Streamgraph",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"fields": {
"category": "series"
}
},
"padding": {
"top": 52
},
"theme": "graflume-light",
"title": {
"subtitle": "Streamgraph uses runnable data and options to demonstrate per-observation semantic and datum hit targets.",
"text": "Area · Streamgraph"
},
"width": "container",
"x": {
"field": "date",
"title": "Month",
"type": "temporal"
},
"y": {
"field": "value",
"title": "Active teams",
"type": "quantitative"
}
}Play frames from a time field and stable key, with smooth enter, update, and exit transitions.
StatusLoading
playbacksmooth-transitionsLoading
Row data and zero-copy TypedArray columns share one data contract.
periodordinal | valuequantitative |
|---|---|
| Jan | 24 |
| Feb | 31 |
| Mar | 28 |
| Apr | 43 |
| May | 48 |
| Jun | 45 |
Browser API
const data = [
{
"period": "Jan",
"value": 24
},
{
"period": "Feb",
"value": 31
},
{
"period": "Mar",
"value": 28
},
{
"period": "Apr",
"value": 43
},
{
"period": "May",
"value": 48
},
{
"period": "Jun",
"value": 45
}
];
const options = {
"axes": {
"x": {
"labels": {
"orientation": "horizontal",
"padding": 9
},
"ticks": {
"spacing": 10
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "compact"
}
}
},
"height": 620,
"interaction": {
"controls": {
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": true
},
"hover": true,
"playback": {
"autoplay": false,
"field": "period",
"filter": true,
"interval": 1000,
"key": "period",
"loop": false,
"mode": "cumulative",
"rate": 1,
"transition": {
"duration": 600,
"easing": "ease-in-out"
},
"windowSize": 1
},
"tooltip": {
"axis": "x",
"fields": [
{
"field": "period",
"format": "auto",
"label": "Period"
},
{
"field": "value",
"format": "number",
"label": "Value"
}
],
"title": "Area · Playback and transitions",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"opacity": 0.34,
"point": true
},
"width": "container",
"x": {
"field": "period",
"scale": {
"domain": [
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun"
]
},
"title": "period",
"type": "ordinal"
},
"y": {
"field": "value",
"scale": {
"domain": [
0,
52
]
},
"title": "value",
"type": "quantitative"
}
};
Graflume.area('#chart', data, options);Portable schema
{
"axes": {
"x": {
"labels": {
"orientation": "horizontal",
"padding": 9
},
"ticks": {
"spacing": 10
}
},
"y": {
"format": {
"fractionDigits": 1,
"type": "compact"
}
}
},
"height": 620,
"interaction": {
"controls": {
"labels": {
"controls": "Chart controls",
"enterFullscreen": "Enter fullscreen",
"exitFullscreen": "Exit fullscreen",
"exportPng": "Download PNG",
"hideAnnotations": "Hide callouts",
"loop": "Loop playback",
"nextFrame": "Next frame",
"pause": "Pause",
"play": "Play",
"previousFrame": "Previous frame",
"reset": "Reset view",
"seek": "Playback position",
"showAnnotations": "Show callouts",
"speed": "Playback speed",
"zoomIn": "Zoom in",
"zoomOut": "Zoom out"
},
"playback": true
},
"hover": true,
"playback": {
"autoplay": false,
"field": "period",
"filter": true,
"interval": 1000,
"key": "period",
"loop": false,
"mode": "cumulative",
"rate": 1,
"transition": {
"duration": 600,
"easing": "ease-in-out"
},
"windowSize": 1
},
"tooltip": {
"axis": "x",
"fields": [
{
"field": "period",
"format": "auto",
"label": "Period"
},
{
"field": "value",
"format": "number",
"label": "Value"
}
],
"title": "Area · Playback and transitions",
"trigger": "axis"
}
},
"locale": "en",
"mark": {
"opacity": 0.34,
"point": true
},
"width": "container",
"x": {
"field": "period",
"scale": {
"domain": [
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun"
]
},
"title": "period",
"type": "ordinal"
},
"y": {
"field": "value",
"scale": {
"domain": [
0,
52
]
},
"title": "value",
"type": "quantitative"
}
}Catalog
The source-controlled catalog maps callable modes in this family and compatibility identifiers to their canonical modes. This table contains executable entries only.
6 modes · 4 compatibility identifiers
| ID | Name | Quick API | mode | mark | renderer |
|---|---|---|---|---|---|
area | Area chart | area() | default | area | canvas |
stepped-area | Stepped area chart | steppedArea() | stepped | stepped-area | canvas |
theme-river | Theme river chart | themeRiver() | stream | theme-river | canvas |
area-spline | Smooth area chart | areaSpline() | area-spline | smooth | canvas |
polygon | Polygon chart | polygon() | polygon | polygon | canvas |
streamgraph | Streamgraph | streamgraph() | streamgraph | theme-river | canvas |
| Identifier | Canonical mode ID |
|---|---|
area | area |
areaspline | area-spline |
polygon | polygon |
streamgraph | streamgraph |
Manual
ARIA · table fallbackCanvas ARIA metadata is paired with a text summary and table fallback.
standard · large · ultraStandard, large, and ultra profiles bound rendering work.