Skip to main content
Batoi UIF Docs

Chart Compatibility

Review native UIF chart support, Flint-compatible mappings, unsupported chart families, and release QA expectations.

Version 3.0.0 Version 3 active maintenance Reviewed Aug 11, 2026 Next review Nov 11, 2026

Owner: Batoi Engineering Reviewed by: Batoi UIF Maintainers Source revision: b2f3478

Browse Batoi UIF Documentation Chart Compatibility

Chart Compatibility

Batoi UIF charts are dependency-free SVG renderers for server-rendered and RAD-friendly application screens. The chart package supports a practical business dashboard subset and accepts a Flint-compatible input shape at the specification boundary.

UIF is **Flint-compatible, not Flint-complete**. Flint chart specs that map to native UIF chart types render in the browser with UIF's SVG engine. Unsupported Flint chart types emit warnings and render a simple bar fallback only so pages remain resilient.

Native UIF Chart Types

UIF chart typeData contractInteraction/exportAccessibility notes
linelabel, value or values seriesfocus/select/drill-down/exportSVG title/desc, optional table fallback
arealabel, value or values seriesfocus/select/drill-down/exportSVG title/desc, optional table fallback
barlabel, valuefocus/select/drill-down/exportSVG title/desc, optional table fallback
horizontal-barlabel, valuefocus/select/drill-down/exportSVG title/desc, optional table fallback
grouped-barlabel, valuesfocus/select/drill-down/exportSVG title/desc, legend, optional table fallback
stacked-barlabel, valuesfocus/select/drill-down/exportSVG title/desc, legend, optional table fallback
pielabel, valuefocus/select/drill-down/exportSVG title/desc, legend, optional table fallback
donut / doughnutlabel, valuefocus/select/drill-down/exportSVG title/desc, legend, optional table fallback
radarlabel, value or values seriesexportSVG title/desc, optional table fallback
sparklinelabel, valueexportCompact SVG summary
metricfirst datum label, valueexportText-first KPI output
progressfirst datum label, value, maxexportSVG title/desc
ringfirst datum label, value, maxexportSVG title/desc
gaugefirst datum label, value, maxexportSVG title/desc
timelinelabel, valuefocus/select/exportRendered with bar geometry
heatmaplabel, valuefocus/select/exportSVG title/desc, optional table fallback
status-heatmaplabel, valuefocus/select/exportSVG title/desc, optional table fallback
bulletfirst datum label, value, target, maxexportSVG title/desc
histogramnumeric values or valuefocus/select/exportSVG title/desc, optional table fallback
box-plotnumeric values or valuefocus/select/exportSVG title/desc, optional table fallback
scatterlabel, x, yfocus/select/exportSVG title/desc, optional table fallback
regressionlabel, x, yfocus/select/exportSVG title/desc with trend summary
control-chartlabel, valuefocus/select/exportSVG title/desc with control references
distributionnumeric values or valueexportSVG title/desc
paretolabel, valueexportComposite bar and cumulative line output
funnellabel, valuefocus/select/drill-down/exportSVG title/desc, optional table fallback
waterfalllabel, value, optional rolefocus/select/drill-down/exportSVG title/desc, optional table fallback
bubblelabel, x, y, sizefocus/select/drill-down/exportSVG title/desc, optional table fallback
treemaplabel, value, optional groupfocus/select/drill-down/exportSVG title/desc, optional table fallback
calendar-heatmapdate, valuefocus/select/drill-down/exportSVG title/desc, optional table fallback
candlesticklabel, open, high, low, closefocus/select/drill-down/exportSVG title/desc
ohlclabel, open, high, low, closefocus/select/drill-down/exportSVG title/desc
roselabel, valuefocus/select/drill-down/exportSVG title/desc, optional table fallback
polar-arealabel, valuefocus/select/drill-down/exportSVG title/desc, optional table fallback

Flint Name Mapping

Flint chart name or aliasUIF chart typeStatus
Area, Area ChartareaSupported
Bar, Bar Chart, Column, Column ChartbarSupported
Donut, Donut ChartdonutSupported
Doughnut, Doughnut ChartdoughnutSupported
Gauge, Gauge ChartgaugeSupported
Grouped, Grouped Bar, Grouped Bar Chartgrouped-barSupported
Heatmap, Heat MapheatmapSupported
HistogramhistogramSupported
Line, Line ChartlineSupported
Pie, Pie ChartpieSupported
Radar, Radar ChartradarSupported
Scatter, Scatter Plot, Scatter ChartscatterSupported
Stacked, Stacked Bar, Stacked Bar Chartstacked-barSupported
Funnel ChartfunnelSupported
Waterfall ChartwaterfallSupported
Bubble ChartbubbleSupported
Treemap, Tree MaptreemapSupported
Calendar Heatmap, Calendar Heat Mapcalendar-heatmapSupported
Candlestick ChartcandlestickSupported
OHLC ChartohlcSupported
Rose ChartroseSupported
Polar Area Chartpolar-areaSupported
Sankey, AlluvialnoneDeferred: optional advanced/server-side track
SunburstnoneDeferred: optional hierarchy track
NetworknoneOut of chart core; separate graph capability
GanttnoneOut of chart core; future planning component

Unsupported Flint Types

Unsupported Flint chart names do not fail the page. The adapter:

  • returns a warning in FlintChartAdapterResult.warnings
  • sets data-uif-chart-warnings during declarative hydration
  • renders a bar fallback when possible

This keeps server-rendered dashboards resilient while still making capability gaps explicit for developers.

Advanced flow, hierarchy, network, and planning visuals are intentionally outside chart core for now:

  • Sankey and Alluvial need deterministic layout, node ordering, collision avoidance, and link routing. They may belong in an optional advanced chart package or server-rendered SVG flow.
  • Sunburst is deferred until hierarchy-chart demand exceeds what treemap covers.
  • Network belongs to a separate graph/layout capability, not the chart package.
  • Gantt belongs to a future planning/timeline component with scheduling, dependencies, scrolling, and editing behavior.

QA Checklist

Use this checklist before accepting a new chart type or chart-family change:

  • Verify the gallery card at desktop width.
  • Verify the gallery card at a mobile width.
  • Verify dark theme rendering if the host theme enables it.
  • Verify high-contrast readability for marks, labels, legends, and grid lines.
  • Verify keyboard focus when focusable or drill-down behavior is enabled.
  • Verify SVG export.
  • Verify PNG export.
  • Verify the table fallback when table output is enabled.
  • Verify Flint mapping status is documented as supported, deferred, or unsupported.

Release Checklist

Every chart addition should ship with:

  • native renderer coverage in packages/charts/src/index.test.ts
  • declarative gallery example in examples/chart-gallery/index.html
  • README chart-family mention
  • Flint compatibility matrix update
  • generated package and root dist output
  • focused package build and chart tests
  • root distribution build when browser-facing output changes

Example

<div
  data-uif="chart"
  data-uif-chart-format="flint"
  data-uif-data='[{"quarter":"Q1","revenue":120},{"quarter":"Q2","revenue":180}]'
  data-uif-chart-spec='{"chartType":"Line Chart","encodings":{"x":{"field":"quarter"},"y":{"field":"revenue"}}}'
></div>