DataSmile

components/data/Smile.vue

Articulating SVG smile gauge — a curve that bends from frown (low) through flat (mid) to smile (high), with a range-driven gradient fill and matching numeric readout.

100
Scenarios
20
50
100
0
80
Slots
92/100
components/data/Smile.vue

Usage

<DataSmile :value = "50" :size = "180" :curve = "78" :showValue = "true" :ranges = "red/orange/green" > Content here </DataSmile>

Props

PropTypeDefaultDescription
valueNumber500–100 (clamped). 0 = deepest frown, 50 = flat, 100 = full smile. Drives curvature, fill length, and color.
sizeNumber180SVG width in px; height scales to the viewBox ratio
curveNumber78Max bend amount in viewBox units (0 = flat line; ~110 before the belly clips)
showValueBooleantrueRender the numeric readout beside the smile
rangesArrayred/orange/greenColor bands: [{ max, track, from, to }] — first range whose max ≥ value wins; track tints the rail, from→to is the fill gradient

Slots

SlotDescription
defaultOverrides the numeric readout; receives the rounded `value` as a slot prop

Related

Qpoint Brand Style Guide