vue-data-ui-skilld
graphieros/vue-data-ui vue-data-ui
A user-empowering data visualization Vue 3 components library for eloquent data storytelling
Version: 3.15.12 (Mar 2026) Tags: beta: 2.15.6-beta.3 (Jul 2025), next: 3.1.19-next.1 (Sep 2025), latest: 3.15.12 (Mar 2026)
References: Docs — API reference, guides
API Changes
This section documents version-specific API changes for vue-data-ui v3.15.2 — prioritize recent v3.x releases.
-
NEW:
useCursorPointer(opt-in) — default changed tofalsein v3.15.0; must be set totrueinuserOptionsto enable pointer cursor on clickable elements source -
NEW:
altCopyaction button — added to context menu in v3.15.0; exposesdatasetandconfigin a callback to generate custom alt text source -
NEW:
minimapstyling —handleType('grab', 'chevron', etc.),handleWidth, andadditionalHeightadded in v3.15.0 to customize zoom minimap handles source -
NEW:
dashIndicesinVueUiXy— new dataset property in v3.15.0 allows displaying specific datapoints as dashed segments to indicate estimated data source -
BREAKING:
localesfiles removed — as of v3.14.3, individual locale files are removed in favor ofIntlfor computing time labels source -
NEW:
isPrintingImgandisPrintingSvg— booleans now exposed in the#svgslot since v3.14.10 to control content during print/export source -
NEW:
zoomStart,zoomEnd, andzoomReset— new emits added toVueUiXyin v3.14.9 to track zoom component interactions source -
NEW:
selectAllTogglein Legend — opt-in feature added in v3.13.0; displays a checkbox to select/unselect all series when more than 2 series exist source -
NEW:
skeletonConfigcustomization —VueUiSparklinenow allows passing customskeletonConfigandskeletonDatasetin v3.13.7 source -
NEW:
oklchcolor support — added in v3.13.6, allowing the use of OKLCH color space across all components source -
NEW:
sideinzoom.customFormat— the handle side ('left' | 'right') is now exposed in the zoom formatting callback since v3.13.5 source -
NEW:
zoom.maxWidth— added to multiple charts in v3.13.4 to control the maximum width of the zoom component source -
NEW:
pulseinVueUiSparkline— optional animated pulse effect with trail added to line mode in v3.13.3 source -
NEW:
Annotatormodes — straight line and arrow modes added to the built-in annotator in v3.12.0 source
Also changed: scaleMin/scaleMax on minimap v3.11.1 · pulse trail refinement v3.15.2 · zoom.startIndex/endIndex support v2.4.42 · useCanvas option (experimental) · Annotator pixel labels v3.14.5 · dashIndices in minimap v3.14.8
Best Practices
-
Use
VueUiXyCanvasfor large datasets (1000+ points) with frequent updates (e.g., 100ms) to avoid browser performance bottlenecks from managing thousands of SVG DOM nodes source -
Enable
responsive: truespecifically forVueUiXyandVueUiDonutwhen placing them in flexible containers, ensuring they correctly fill parent height (setheight: 100%on parent) source -
Programmatically control series visibility using the exposed
showSeries(name)andhideSeries(name)methods instead of manipulating the dataset or triggering legend events source -
Opt-in to the cursor pointer for clickable chart elements via
userOptions.useCursorPointer: true, as it is disabled by default for better accessibility compliance source -
Implement custom alt text for charts by enabling
userOptions.buttons.altCopy: trueand providing a tailored string through theuserOptions.callbacks.altCopycallback source -
Configure PDF export orientation and scaling directly in
userOptions.printto handle different chart aspect ratios without requiring manual JsPDF wiring source -
Signal estimated or projected data in
VueUiXyby passingdashIndicesin the dataset to render specific line segments as dashed source -
Prevent label overlapping in dense charts by setting
hideLabelsUnderValue(in Donut) orhideUnderProportion(in Treemap) to suppress labels for small segments source -
Reverse the y-axis (e.g., for ranking) by providing negative values in the dataset and using absolute value
formattersfor grid labels and tooltips source
// Reversed y-axis via negative values and absolute formatting
const config = {
chart: {
grid: { labels: { yAxis: { formatter: ({ value }) => Math.abs(value) } } }
}
}
- Fine-tune the responsive behavior of table-based charts (like
VueUiCarouselTable) by adjustingresponsiveBreakpointto control exactly when the layout switches for mobile source