syncfusion-react-bullet-chart
Implements the Syncfusion React Bullet Chart component for KPI and performance indicator visualization. Use this when users need feature measure displays, comparative measures, target comparisons, or metric visualizations. Covers data binding, value bars, target bars, ranges, titles, tooltips, data
By syncfusion · 558 installs
npx skills add syncfusion/react-ui-components-skills --skill syncfusion-react-bullet-chart
Source repository · Upstream listing
Implementing Syncfusion React Bullet Charts
A skill for implementing and customizing Syncfusion's React Bullet Chart component. Bullet charts are compact data visualization components designed to compare a primary measure (actual value) against a target measure within qualitative ranges.
When to Use This Skill
Use this skill when users need to:
Display performance metrics or KPIs with target comparisons
Create compact data visualizations showing actual vs. target values
Visualize progress against goals with qualitative ranges (poor/good/excellent)
Build dashboards with space efficient performance indicators
Show feature measures (actual bars) compared to comparative measures (target bars)
Implement horizontal or vertical bullet charts
Display multiple metrics in a compact layout
Create accessible, keyboard navigable chart visualizations
Component Overview
The Bullet Chart consists of:
Value Bar (Feature Measure) : The primary data/actual value being measured
Comparative Bar (Target Marker) : The target or comparison value
Qualitative Ranges : Background bands indicating performance levels (e.g., poor, satisfactory, good)
Quantitative Scale : The axis showing numerical measurements
Title/Subtitle : Descriptive text for the chart
Documentation and Navigation Guide
Getting Started
📄 Read: [references/getting started.md](references/getting started.md)
API Reference
📄 Read: [references/api.md](references/api.md)
Summarizes BulletChartComponent props, methods, events and directives used across examples
Data Binding
📄 Read: [references/data binding.md](references/data binding.md)
Value Bar Configuration
📄 Read: [references/value bar.md](references/value bar.md)
Value bar (Feature Measure) overview and purpose
Mapping valueField from data source
Types of actual bar shapes (Rect, Dot)
Changing bar type with type property
Border customization using valueBorder (color, width)
Fill color customization using valueFill
Height customization using valueHeight
Binding colors dynamically from dataSource
Complete examples for each customization option
Comparative Bar Configuration
📄 Read: [references/comparative bar.md](references/comparative bar.md)
Comparative bar (Target Measure) overview
Mapping targetField from data source
Types of target bar shapes (Circle, Cross, Rect)
Changing target type with targetTypes property
Customizing target appearance with targetColor
Adjusting target width with targetWidth property
Binding target colors from dataSource
Complete examples for each target type
Ranges Configuration
📄 Read: [references/ranges.md](references/ranges.md)
Ranges representing qualitative bands (Good, Bad, Satisfactory)
Using BulletRangeCollectionDirective and BulletRangeDirective
Setting range boundaries with end property
Understanding minimum value as range starting point
Configuring multiple ranges for different quality levels
Color customization with color property
Opacity adjustment with opacity property
Complete examples with multiple colored ranges
Titles and Subtitles
📄 Read: [references/titles.md](references/titles.md)
Adding chart title with title property
Adding subtitle for additional information
Title positioning with titlePosition property (Left, Right, Top, Bottom)
Default position (Top) behavior
Title style customization with titleStyle (color, opacity, font properties)
Subtitle style customization with subtitleStyle (color, opacity, font properties)
Complete examples for each position
Font customization examples (size, family, weight, style)
Tooltips
📄 Read: [references/tooltips.md](references/tooltips.md)
Default tooltip behavior (hidden by default)
Enabling tooltips with tooltip.enable property
Injecting BulletTooltip module into services
Displaying actual and target values on hover
Creating custom templates with template property
Using ${target} and ${value} placeholders in templates
Tooltip appearance customization (fill, border, textStyle)
Font customization for tooltip text
Complete examples for default and custom tooltips
Data Labels
📄 Read: [references/data labels.md](references/data labels.md)
Data labels for identifying actual bar values
Enabling data labels with dataLabel.enable property
Label display behavior and positioning
Style customization with labelStyle property
Font properties (size, family, weight, style)
Color and opacity adjustments
Complete examples with styled data labels
Axis Customization
📄 Read: [references/axis customization.md](references/axis customization.md)
MajorTickLines customization (width, height, color, useRangeColor)
MinorTickLines customization (width, height, color, useRangeColor)
Tick placement with tickPosition (Inside, Outside)
Label formatting with labelFormat (globalize formats: n1, n2, p1, c1, etc.)
Format table showing common number, percentage, and currency formats
Group separator for thousands with enableGroupSeparator
Custom label format with ${value} placeholder
Label placement with labelPosition (Inside, Outside)
Opposed position with opposedPosition property
Category labels with categoryField for X axis
Category label styling with categoryLabelStyle and labelStyle
useRangeColor for labels matching range colors
Complete examples for each axis feature
Chart Dimensions
📄 Read: [references/dimensions.md](references/dimensions.md)
Container size configuration with inline styles and CSS
Setting chart dimensions with width and height properties
Pixel sizing for fixed dimensions
Percentage sizing for responsive behavior relative to container
Default size behavior (126px height, window width)
Complete examples for container and direct sizing
Customization Options
📄 Read: [references/customization.md](references/customization.md)
Orientation with orientation property (Horizontal, Vertical)
Default Horizontal orientation
Right to left (RTL) support with enableRtl property
Animation configuration with animation property (duration, delay)
Linear animation for actual and target bars
Theme support with theme property
Available Syncfusion themes
Complete examples for each customization
Accessibility
📄 Read: [references/accessibility.md](references/accessibility.md)
Accessibility compliance (ADA, Section 508, WCAG 2.2)
Accessibility features table with compatibility status
WAI ARIA attributes and patterns (img role, button role, aria label, aria pressed)
Keyboard interaction support (Tab, Shift+Tab, Ctrl+P)
Screen reader support
Right to left (RTL) support for internationalization
Color contrast compliance
Mobile device support
Testing with accessibility checker and axe core tools
Sample accessibility demo reference
Quick Start Example
Common Patterns
Performance Dashboard with Multiple Metrics
Display multiple bullet charts vertically to show various KPIs:
Dynamic Color from Data
Bind colors directly from your data source:
Custom Tooltip Template
Show formatted values with custom HTML:
Responsive Layout
Use percentage based sizing for responsive dashboards:
Key Props
Property Type Purpose
dataSource Array Data collection for the chart
valueField string Field name for actual/feature measure
targetField string Field name for target/comparative measure
minimum number Minimum value of quantitative scale
maximum number Maximum value of quantitative scale
interval number Interval between axis labels
title string Chart title text
subtitle string Chart subtitle text
type string Value bar shape: 'Rect' or 'Dot'
targetTypes string[] Target bar shapes: 'Circle', 'Cross', 'Rect'
orientation string Chart orientation: 'Horizontal' or 'Vertical'
width string Chart width (pixels or percentage)
height string Chart height (pixels or percentage)
enableRtl boolean Enable right to left rendering
theme string Apply Syncfusion theme
tooltip object Tooltip configuration with enable, template, fill, border, textStyle
dataLabel object Data label configuration with enable, labelStyle
Common Use Cases
KPI Dashboard
Use bullet charts to display multiple performance indicators:
Set different targets for each metric
Use red/yellow/green ranges for performance levels
Add category labels for metric names
Enable tooltips for detailed information
Sales Performance Tracker
Compare actual sales against targets:
Map revenue data to valueField
Set quarterly/monthly targets in targetField
Configure ranges for underperforming/meeting/exceeding targets
Use data labels to show exact values
Progress Indicators
Show progress toward goals with visual context:
Use percentage based ranges (0 50%, 50 75%, 75 100%)
Customize colors to match brand guidelines
Add animations for engaging transitions
Position titles on the left for compact layout
Comparative Analysis
Compare multiple items side by side:
Use vertical orientation for space efficiency
Set consistent scale across all charts
Apply category labels for clear identification
Customize target types (Circle, Cross) for distinction
Mobile Dashboards
Create responsive, touch friendly visualizations:
Use percentage based dimensions
Increase touch target sizes for bars
Enable mobile optimized tooltips
Test with accessibility tools for screen readers
Edge Cases and Troubleshooting
Data not displaying:
Verify valueField and targetField match data source property names
Check that dataSource is an array with valid objects
Ensure minimum/maximum encompass your data range
Ranges not visible:
Import BulletRangeCollectionDirective and BulletRangeDirective from @syncfusion/ej2 react charts
Set end values in ascending order
Verify end values are within minimum/maximum bounds
Tooltips not working:
Inject BulletTooltip module: <Inject services={[BulletTooltip]} /
Set tooltip.enable to true
Check that tooltip object is properly configured
Title/subtitle overlapping:
Adjust titlePosition to Left, Right, Top, or Bottom
Increase chart dimensions (width/height)
Customize titleStyle and subtitleStyle font sizes
Axis labels cut off:
Increase chart width or height
Adjust label format to shorter notation (e.g., 'n1' instead of full numbers)
Use enableGroupSeparator for better readability
Implementation Checklist
[ ] Install @syncfusion/ej2 react charts package
[ ] Import BulletChartComponent and directives
[ ] Prepare data with value and target fields
[ ] Configure dataSource, valueField, targetField
[ ] Set minimum, maximum, and interval for scale
[ ] Add ranges using BulletRangeCollectionDirective
[ ] Configure title and subtitle if needed
[ ] Enable and customize tooltip (inject BulletTooltip)
[ ] Test with different data ranges
[ ] Verify accessibility with keyboard navigation
[ ] Test responsive behavior with different screen sizes