Skip to content

Radial gauge ​

A progress-toward-a-goal dial over a value and a target.

Open in demo
Open in demo

Usage ​

value and max are any pair, and caption is the line under the percentage. It takes a formatted string rather than a currency setting, so the same component works for money, seats, tickets or anything else.

The arc is open at the bottom rather than a full circle, which leaves room for the caption and makes it read as progress along a track.

The percentage and the caption are rendered as DOM, not as an ECharts label, so they inherit the app's font tokens and stay crisp on a high-density screen.

Like the other charts, it fills a wrapper of a definite height. See Donut chart.

Examples ​

Driven by a control ​

The dial animates to whatever value becomes.

Over target ​

The arc is clamped to 100%, so a value past the target fills it without drawing past the end. The caption still tells the truth.

Loading ​

API ​

Source: src/shared/components/common/charts/RadialGauge.vue

Props ​

PropTypeDefaultDescription
valuenumberrequiredThe current figure.
maxnumberrequiredThe target. 0 renders 0%.
loadingbooleanfalseRenders a skeleton of the same height.
heightnumber280The wrapper height in pixels.
captionstring—The line under the percentage, already formatted.

Emits ​

None.

Slots ​

None.

Accessibility ​

  • The percentage is real text in the page, not a label painted into the canvas, so a screen reader reads it and a browser's zoom and font settings apply to it.
  • The caption carries the underlying figures, so the reader is not left with a percentage and no idea what it is a percentage of.
  • The track and the progress arc are the theme's border and primary colors, which keeps the contrast between them in both color modes.