Bar chart
Positive/Negative Bar Chart
Bar chart component with negative values and conditional coloring. Built for React applications requiring positive/negative data visualization with Next.js and TypeScript.
Powered by
Installation
npx shadcn@latest add https://www.shadcn.io/registry/bar-chart-10.json
npx shadcn@latest add https://www.shadcn.io/registry/bar-chart-10.json
pnpm dlx shadcn@latest add https://www.shadcn.io/registry/bar-chart-10.json
bunx shadcn@latest add https://www.shadcn.io/registry/bar-chart-10.json
Features
- Negative value support with automatic baseline adjustment for proper visualization
- Conditional coloring using Cell components to differentiate positive and negative values
- Top labels displaying month names for easy data identification
- Dynamic color assignment based on data value (positive/negative)
- TypeScript support with complete type definitions for negative value charts
- shadcn/ui integration using Chart components with conditional styling
Use Cases
This free open source React component works well for:
- Financial data - Applications showing profit/loss or gains/losses built with Next.js
- Performance metrics - Charts displaying improvements and declines using TypeScript and Tailwind CSS
- Variance analysis - Visualizing positive and negative deviations from targets
- Change tracking - Showing increases and decreases over time periods
API Reference
ChartBarNegative
Prop | Type | Default | Description |
---|---|---|---|
className | string | - | Additional CSS classes for the container |
Conditional Cell Coloring
Dynamic color assignment based on value:
<Bar dataKey="visitors">
<LabelList position="top" dataKey="month" fillOpacity={1} />
{chartData.map((item) => (
<Cell
key={item.month}
fill={item.visitors > 0 ? "var(--chart-1)" : "var(--chart-2)"}
/>
))}
</Bar>
Data Structure with Negative Values
Mixed positive and negative data:
const chartData = [
{ month: "January", visitors: 186 },
{ month: "February", visitors: 205 },
{ month: "March", visitors: -207 },
{ month: "April", visitors: 173 },
{ month: "May", visitors: -209 },
{ month: "June", visitors: 214 },
]
Tooltip Configuration
Enhanced tooltip hiding labels and indicators for clean display:
<ChartTooltip
cursor={false}
content={<ChartTooltipContent hideLabel hideIndicator />}
/>
Color Logic
- Positive values: Use
var(--chart-1)
(typically primary color) - Negative values: Use
var(--chart-2)
(typically secondary/warning color) - Labels: Display month names with full opacity for clarity
Implementation Notes
- Cell components enable individual bar coloring based on data conditions
- LabelList adds month identification without cluttering the visualization
- Automatic baseline adjustment handles negative values properly
- No X-axis labels to reduce visual noise and focus on data
- Conditional logic in map function determines color assignment
- Perfect for applications requiring clear visual distinction between positive and negative data values
Interactive Highlight Chart
Bar chart component with active bar highlighting and custom styling. Built for React applications requiring interactive bar emphasis with Next.js and TypeScript.
Interactive Line Chart
Visualize data trends with interactive line chart and metric switching. Built for React applications with Next.js integration and TypeScript support.