Multi-Color Bar Chart
Mixed bar chart component with horizontal multi-color bars. Built for React applications requiring categorical data visualization with Next.js and TypeScript.
Powered by
Installation
npx shadcn@latest add https://www.shadcn.io/registry/bar-chart-08.json
npx shadcn@latest add https://www.shadcn.io/registry/bar-chart-08.json
pnpm dlx shadcn@latest add https://www.shadcn.io/registry/bar-chart-08.json
bunx shadcn@latest add https://www.shadcn.io/registry/bar-chart-08.json
Features
- Multi-color bars with each category using a distinct color scheme
- Horizontal layout optimized for browser/category name display
- Individual fill colors defined directly in data with fallback to chart config
- Custom tick formatting displaying full category labels from chart configuration
- TypeScript support with complete type definitions for mixed color charts
- shadcn/ui integration using Chart components with multi-color styling
Use Cases
This free open source React component works well for:
- Browser analytics - Applications showing browser usage statistics built with Next.js
- Category comparisons - Data visualization requiring distinct category identification using TypeScript and Tailwind CSS
- Market share analysis - Charts where each segment needs unique visual identity
- Performance tracking - Multi-category metrics with clear visual separation
API Reference
ChartBarMixed
Prop | Type | Default | Description |
---|---|---|---|
className | string | - | Additional CSS classes for the container |
Data Structure with Fill Colors
Each data item includes its own fill color:
const chartData = [
{ browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
{ browser: "safari", visitors: 200, fill: "var(--color-safari)" },
{ browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
{ browser: "edge", visitors: 173, fill: "var(--color-edge)" },
{ browser: "other", visitors: 90, fill: "var(--color-other)" },
]
Chart Configuration
Multi-category configuration with individual colors:
const chartConfig = {
visitors: { label: "Visitors" },
chrome: { label: "Chrome", color: "var(--chart-1)" },
safari: { label: "Safari", color: "var(--chart-2)" },
firefox: { label: "Firefox", color: "var(--chart-3)" },
edge: { label: "Edge", color: "var(--chart-4)" },
other: { label: "Other", color: "var(--chart-5)" },
} satisfies ChartConfig
Tick Formatting
Custom Y-axis formatting for category labels:
<YAxis
dataKey="browser"
type="category"
tickFormatter={(value) =>
chartConfig[value as keyof typeof chartConfig]?.label
}
/>
Implementation Notes
- Each bar automatically uses its individual fill color from the data
- Y-axis displays full category names via chart config lookup
- X-axis is hidden to focus on relative comparisons
- Horizontal layout accommodates longer category names
- Zero left margin maximizes chart display area
- Perfect for applications requiring distinct visual identity for each data category
Dual-Labeled Horizontal Chart
Horizontal bar chart component with custom inside and outside labels. Built for React applications requiring detailed horizontal data visualization with Next.js and TypeScript.
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.