syncfusion-react-linear-gauge — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited syncfusion-react-linear-gauge (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Use the Linear Gauge component when you need to:
The Linear Gauge is ideal for applications requiring visual representation of values on a horizontal/linear scale with customizable axes, pointers, ranges, and interactive features.
Syncfusion React Linear Gauge (@syncfusion/ej2-react-lineargauge) is a data visualization component that displays values on a linear scale. It consists of:
Choose the reference based on what you need to implement:
📄 Read: references/getting-started.md
@syncfusion/ej2-react-lineargauge package📄 Read: references/axis-ticks-labels.md
📄 Read: references/pointers.md
📄 Read: references/ranges-annotations.md
📄 Read: references/appearance-customization.md
📄 Read: references/advanced-features.md
Here's a minimal working example to get started:
import React from 'react';
import { LinearGaugeComponent, AxesDirective, AxisDirective,
PointersDirective, PointerDirective, RangesDirective, RangeDirective }
from '@syncfusion/ej2-react-lineargauge';
import '@syncfusion/ej2-lineargauge/styles/material.css';
export function App() {
return (
<div style={{ height: '400px', width: '100%' }}>
<LinearGaugeComponent
title="Temperature Monitor"
orientation="Horizontal"
>
<AxesDirective>
<AxisDirective
minimum={0}
maximum={100}
labelStyle={{ format: '{value}°C' }}
>
<RangesDirective>
<RangeDirective start={0} end={30} color='#1E90FF' />
<RangeDirective start={30} end={70} color='#FFA500' />
<RangeDirective start={70} end={100} color='#FF4500' />
</RangesDirective>
<PointersDirective>
<PointerDirective value={55} />
</PointersDirective>
</AxisDirective>
</AxesDirective>
</LinearGaugeComponent>
</div>
);
}Install the package first:
npm install @syncfusion/ej2-react-lineargauge --save<LinearGaugeComponent title="Temperature">
<AxesDirective>
<AxisDirective minimum={-40} maximum={50} labelStyle={{ format: '{value}°C' }}>
<RangesDirective>
<RangeDirective start={-40} end={0} color='#4CAF50' />
<RangeDirective start={0} end={25} color='#8BC34A' />
<RangeDirective start={25} end={50} color='#FF5722' />
</RangesDirective>
<PointersDirective>
<PointerDirective value={20} />
</PointersDirective>
</AxisDirective>
</AxesDirective>
</LinearGaugeComponent><PointersDirective>
<PointerDirective
value={75}
type='Marker'
markerType='Rectangle'
width={20}
color='#007AFF'
/>
</PointersDirective>const [value, setValue] = useState(50);
useEffect(() => {
const timer = setInterval(() => {
setValue(prev => (prev + (Math.random() - 0.5) * 10) % 100);
}, 1000);
return () => clearInterval(timer);
}, []);
<PointerDirective value={value} />| Prop | Type | Purpose | Example | |
|---|---|---|---|---|
title | string | Gauge title text | title="Temperature" | |
orientation | "Horizontal" \ | "Vertical" | Layout orientation (default: Vertical) | orientation="Horizontal" |
width | string | Gauge width | width="100%" or width="400px" | |
height | string | Gauge height | height="300px" |
| Prop | Type | Purpose | Example |
|---|---|---|---|
minimum | number | Start value of the axis range | minimum={0} |
maximum | number | End value of the axis range | maximum={200} |
labelStyle | object | Label customization (use format property) | labelStyle={{ format: '{value}°C' }} |
{ format: '{value}' } - Shows value as-is{ format: '{value}°C' } - Adds °C suffix{ format: '${value}K' } - Adds $ prefix and K suffix{ format: '{value}%' } - Adds % suffix⚠️ NOT SUPPORTED:
majorTicksInterval - Not a valid propertyminorTicksInterval - Not a valid propertyaxisLineStyle - Not a valid property (use axis-level styling instead)| Prop | Type | Purpose | Example | |||||
|---|---|---|---|---|---|---|---|---|
value | number | The value to display | value={140} | |||||
color | string | Pointer color (hex or named) | color='green' or color='#1976D2' | |||||
type | "Bar" \ | "Marker" | Pointer shape type (default: Bar) | type="Marker" | ||||
markerType | "Circle" \ | "Rectangle" \ | "Triangle" \ | "Diamond" \ | "Image" \ | "Text" | Shape for marker pointers | markerType="Rectangle" |
width | number | Pointer width in pixels | width={8} |
Bar Pointer (Default)
<PointerDirective value={140} color='blue' width={8} />Marker Pointer
<PointerDirective
value={75}
type='Marker'
markerType='Rectangle'
width={15}
color='#1976D2'
/>| Prop | Type | Purpose | Example |
|---|---|---|---|
start | number | Start value of the range | start={0} |
end | number | End value of the range | end={80} |
color | string | Range background color | color='#4CAF50' |
startWidth | number | Width of start edge | startWidth={15} |
endWidth | number | Width of end edge | endWidth={15} |
<RangeDirective start={0} end={80} color='#4CAF50' startWidth={15} endWidth={15} />import React from 'react';
import { LinearGaugeComponent, AxesDirective, AxisDirective,
PointersDirective, PointerDirective, RangesDirective, RangeDirective }
from '@syncfusion/ej2-react-lineargauge';
export function App() {
return (
<LinearGaugeComponent>
<AxesDirective>
<AxisDirective minimum={0} maximum={200} labelStyle={{ format: '{value}°C' }}>
<PointersDirective>
<PointerDirective value={140} color='green'></PointerDirective>
</PointersDirective>
<RangesDirective>
<RangeDirective start={0} end={80} startWidth={15} endWidth={15}></RangeDirective>
<RangeDirective start={80} end={120} startWidth={15} endWidth={15}></RangeDirective>
<RangeDirective start={120} end={140} startWidth={15} endWidth={15}></RangeDirective>
<RangeDirective start={140} end={200} startWidth={15} endWidth={15}></RangeDirective>
</RangesDirective>
</AxisDirective>
</AxesDirective>
</LinearGaugeComponent>
);
}<LinearGaugeComponent title="Project Status">
<AxesDirective>
<AxisDirective minimum={0} maximum={100} labelStyle={{ format: '{value}%' }}>
<RangesDirective>
<RangeDirective start={0} end={30} color='#EF5350' startWidth={15} endWidth={15}></RangeDirective>
<RangeDirective start={30} end={70} color='#FFCA28' startWidth={15} endWidth={15}></RangeDirective>
<RangeDirective start={70} end={100} color='#66BB6A' startWidth={15} endWidth={15}></RangeDirective>
</RangesDirective>
<PointersDirective>
<PointerDirective value={75} color='#1976D2' width={8}></PointerDirective>
</PointersDirective>
</AxisDirective>
</AxesDirective>
</LinearGaugeComponent><LinearGaugeComponent>
<AxesDirective>
<AxisDirective minimum={0} maximum={1000} labelStyle={{ format: '${value}K' }}>
<RangesDirective>
<RangeDirective start={0} end={400} color='#E53935' startWidth={15} endWidth={15}></RangeDirective>
<RangeDirective start={400} end={700} color='#FB8C00' startWidth={15} endWidth={15}></RangeDirective>
<RangeDirective start={700} end={1000} color='#43A047' startWidth={15} endWidth={15}></RangeDirective>
</RangesDirective>
<PointersDirective>
<PointerDirective value={650} color='#1976D2' width={6}></PointerDirective>
<PointerDirective value={850} type='Marker' markerType='Circle' width={10} color='#FF6F00'></PointerDirective>
</PointersDirective>
</AxisDirective>
</AxesDirective>
</LinearGaugeComponent>Use the following methods/events when you need interactivity like animation lifecycle, tooltips, drag, export, and print:
Methods
destroy()export(type, fileName, orientation?, allowDownload?)print(id?)setAnnotationValue(annotationIndex, content, axisValue?)setPointerValue(axisIndex, pointerIndex, value)Events
load, loaded, resizedvalueChange (pointer value changes)dragStart, dragMove, dragEndbeforePrinttooltipRenderanimationCompleteannotationRender, axisLabelRendergaugeMouseDown, gaugeMouseMove, gaugeMouseUp, gaugeMouseLeaveFor more details or advanced scenarios, consult the specific reference files linked above.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.