Skip to main content
twblazor
Home
  • Get started
  • Tailwind with Blazor
  • Why twblazor?
  • Theme
  • Class Merge
    • Configuring localization
    • RTL Provider
  • Breadcrumb
  • Card
  • Carousel
  • Collapse
  • Footer
  • MenuNew
  • Navbar
  • On This PageNew
  • Sidebar
  • Stepper
  • Tabs
  • Tree List
  • Button
  • Checkbox
  • Color Picker
    • Date
    • Date Range
    • Datetime
    • Datetime Range
    • Time
    • Time Range
  • File Upload
  • NumericNew
  • Radio Button
  • RatingNew
  • Select
  • Slider
  • Switch
  • Textfield
  • Alert
  • Avatar
  • Chip
  • Icon
  • Progress
  • Skeleton
  • Spinner
  • TooltipNew
  • Data Table
  • Pagination
  • Pick List
  • BarcodeNew
  • QR CodeNew
  • CalendarNew
  • Table
  • Overview
  • Area
  • Bar
  • Box Plot
  • Bullet
  • Bump
  • Candlestick
  • Column
  • Dot Plot
  • Dumbbell
  • Funnel
  • Gantt
  • Gauge
  • Heatmap
  • Histogram
  • Icon
  • Line
  • Lollipop
  • Matrix
  • Nightingale
  • Parallel Coordinates
  • Pie
  • Quadrant
  • Radar
  • Radial Bar
  • Range
  • Scatter
  • Slope
  • Small Multiples
  • Strip Plot
  • Treemap
  • Waffle
  • Waterfall
  • Arc Diagram
  • Barcode
  • Beeswarm
  • Bump Area
  • Categorical Scatter
  • Chord Diagram
  • Circular Treemap
  • Contour
  • Convex Treemap
  • Density Plot
  • Dendrogram
  • Euler Diagram
  • Flowchart
  • Hexagonal Binning
  • Horizon
  • Marimekko
  • Network Diagram
  • Radial Histogram
  • Ridgeline
  • Sankey
  • Stream Graph
  • Sunburst
  • Venn Diagram
  • Violin Plot
  • Word Cloud
  • Dialog Service
  • Toast Service
API DocumentationAI Agents & Skills
Home Get Started

Charts

TwBulletChart

TwBulletChart is a Blazor bullet chart that benchmarks an actual value against a target, with shaded bands for qualitative ranges.

Last updated 18 October 2026

Please be aware this component is new, may have bugs and/or be subject to change. Please report any bugs at https://github.com/twblazor/twblazor/issues.

Basic usage

TwBulletChart shows, for each measure, a bar for the actual value and a marker for the target. Pass a list of ChartBullet with a label, a value and a target. Each measure has its own scale, so revenue in thousands and a percentage can share one chart.
Quarterly targets
  • Actual
  • Target
RevenueProfitNew customers
RevenueProfitNew customers
RevenueActual 270Target 250
ProfitActual 22Target 26
New customersActual 1,650Target 1,500
RAZOR
<TwChart Title="Quarterly targets">
    <TwBulletChart Items="@_targets" Height="ChartHeight.Small" />
</TwChart>
CSHARP
@code {
    private readonly ChartBullet[] _targets =
    [
        new("Revenue", 270, 250),
        new("Profit", 22, 26),
        new("New customers", 1650, 1500)
    ];
}

Qualitative ranges

Give a bullet a list of Ranges to shade bands behind the bar, for example the limits of poor, fair and good. The darkest band is the lowest range.
Quarterly targets
  • Actual
  • Target
RevenueProfitNew customers
RevenueProfitNew customers
RevenueActual 270Target 250
ProfitActual 22Target 26
New customersActual 1,650Target 1,500
RAZOR
<TwChart Title="Quarterly targets">
    <TwBulletChart Items="@_bullets" Height="ChartHeight.Small" />
</TwChart>
CSHARP
@code {
    private readonly ChartBullet[] _bullets =
    [
        new("Revenue", 270, 250, [150, 225, 300]),
        new("Profit", 22, 26, [15, 22, 30]),
        new("New customers", 1650, 1500, [1000, 1400, 2000])
    ];
}

Labels

ValueLabel and TargetLabel rename the two values in the legend, tooltips and table view.
Quarterly targets
  • This quarter
  • Plan
RevenueProfitNew customers
RevenueProfitNew customers
RevenueThis quarter 270Plan 250
ProfitThis quarter 22Plan 26
New customersThis quarter 1,650Plan 1,500
RAZOR
<TwChart Title="Quarterly targets">
    <TwBulletChart Items="@_bullets" ValueLabel="This quarter" TargetLabel="Plan" Height="ChartHeight.Small" />
</TwChart>

Summary

Tooltips and the table view give the actual value and the target of each measure.

Shared features

The legend, tooltips, keyboard navigation, table view, value formatting, height and empty state work the same on every chart. See TwChart for those options.

Keyboard navigation

The plot is a single Tab stop. Each data point is announced with its series and value as focus reaches it, and the table view presents the same data without the plot.
Key What it does
Tab Moves focus into the plot, onto the data point last visited.
Arrow Right or Arrow Down Moves to the next data point.
Arrow Left or Arrow Up Moves to the previous data point.
Home or End Moves to the first or last data point.
Escape Hides the tooltip of the focused data point.
Enter or Space On a legend item: shows or hides that series. On the table button: switches between the chart and its data table.

On this page

  • Basic usage
  • Qualitative ranges
  • Labels
  • Summary
  • Shared features
  • Keyboard navigation
Discord (opens in a new tab) • GitHub (opens in a new tab) • Documentation (opens in a new tab) • MIT License (opens in a new tab) • llms.txt (opens in a new tab)

twblazor is and always will be free and open source.

An unhandled error has occurred. Reload