> recharts
Build responsive charts in React with Recharts. Use when a user asks to create line charts, bar charts, area charts, pie charts, or composed dashboard visualizations using the Recharts component library.
curl "https://skillshub.wtf/TerminalSkills/skills/recharts?format=md"Recharts — React Charting Library
Overview
You are an expert in Recharts, the composable React charting library built on D3. You help developers create line charts, bar charts, area charts, pie charts, scatter plots, and custom visualizations using React's declarative component model with responsive containers and smooth animations.
Instructions
Common Chart Types
// Line chart with multiple series
import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer } from "recharts";
const data = [
{ month: "Jan", revenue: 4000, costs: 2400, profit: 1600 },
{ month: "Feb", revenue: 3000, costs: 1398, profit: 1602 },
{ month: "Mar", revenue: 5000, costs: 3200, profit: 1800 },
{ month: "Apr", revenue: 4780, costs: 2908, profit: 1872 },
{ month: "May", revenue: 5890, costs: 3800, profit: 2090 },
{ month: "Jun", revenue: 6390, costs: 3900, profit: 2490 },
];
function RevenueChart() {
return (
<ResponsiveContainer width="100%" height={400}>
<LineChart data={data} margin={{ top: 5, right: 30, left: 20, bottom: 5 }}>
<CartesianGrid strokeDasharray="3 3" stroke="#f0f0f0" />
<XAxis dataKey="month" />
<YAxis tickFormatter={(v) => `$${v / 1000}k`} />
<Tooltip
formatter={(value: number) => [`$${value.toLocaleString()}`, undefined]}
contentStyle={{ borderRadius: 8, border: "1px solid #e0e0e0" }}
/>
<Legend />
<Line type="monotone" dataKey="revenue" stroke="#4f46e5" strokeWidth={2} dot={{ r: 4 }} />
<Line type="monotone" dataKey="costs" stroke="#ef4444" strokeWidth={2} dot={{ r: 4 }} />
<Line type="monotone" dataKey="profit" stroke="#22c55e" strokeWidth={2} strokeDasharray="5 5" />
</LineChart>
</ResponsiveContainer>
);
}
// Bar chart
import { BarChart, Bar } from "recharts";
function MRRChart({ data }) {
return (
<ResponsiveContainer width="100%" height={300}>
<BarChart data={data}>
<CartesianGrid strokeDasharray="3 3" />
<XAxis dataKey="month" />
<YAxis />
<Tooltip />
<Bar dataKey="newMRR" stackId="a" fill="#4f46e5" name="New MRR" />
<Bar dataKey="expansionMRR" stackId="a" fill="#22c55e" name="Expansion" />
<Bar dataKey="churnMRR" stackId="a" fill="#ef4444" name="Churn" />
</BarChart>
</ResponsiveContainer>
);
}
// Area chart
import { AreaChart, Area } from "recharts";
function TrafficChart({ data }) {
return (
<ResponsiveContainer width="100%" height={300}>
<AreaChart data={data}>
<defs>
<linearGradient id="colorVisits" x1="0" y1="0" x2="0" y2="1">
<stop offset="5%" stopColor="#4f46e5" stopOpacity={0.3} />
<stop offset="95%" stopColor="#4f46e5" stopOpacity={0} />
</linearGradient>
</defs>
<XAxis dataKey="date" />
<YAxis />
<Tooltip />
<Area type="monotone" dataKey="visits" stroke="#4f46e5" fill="url(#colorVisits)" />
</AreaChart>
</ResponsiveContainer>
);
}
// Pie / Donut chart
import { PieChart, Pie, Cell } from "recharts";
const COLORS = ["#4f46e5", "#22c55e", "#f59e0b", "#ef4444"];
function PlanDistribution({ data }) {
return (
<ResponsiveContainer width="100%" height={300}>
<PieChart>
<Pie data={data} dataKey="value" nameKey="plan" cx="50%" cy="50%"
innerRadius={60} outerRadius={100} paddingAngle={2}>
{data.map((_, i) => <Cell key={i} fill={COLORS[i % COLORS.length]} />)}
</Pie>
<Tooltip />
<Legend />
</PieChart>
</ResponsiveContainer>
);
}
Custom Tooltips and Labels
// Custom tooltip component
const CustomTooltip = ({ active, payload, label }) => {
if (!active || !payload) return null;
return (
<div style={{ background: "white", padding: 12, borderRadius: 8, boxShadow: "0 2px 8px rgba(0,0,0,0.1)" }}>
<p style={{ fontWeight: 600 }}>{label}</p>
{payload.map((entry, i) => (
<p key={i} style={{ color: entry.color }}>
{entry.name}: ${entry.value.toLocaleString()}
</p>
))}
</div>
);
};
// Usage: <Tooltip content={<CustomTooltip />} />
Installation
npm install recharts
Examples
Example 1: User asks to set up recharts
User: "Help me set up recharts for my project"
The agent should:
- Check system requirements and prerequisites
- Install or configure recharts
- Set up initial project structure
- Verify the setup works correctly
Example 2: User asks to build a feature with recharts
User: "Create a dashboard using recharts"
The agent should:
- Scaffold the component or configuration
- Connect to the appropriate data source
- Implement the requested feature
- Test and validate the output
Guidelines
- ResponsiveContainer always — Wrap every chart in
<ResponsiveContainer width="100%" height={...}>for responsive sizing - Composable architecture — Mix and match components (Line + Bar + Area in one chart); Recharts is fully composable
- Custom tooltips — Replace default tooltips with styled components for polished dashboards
- Color consistency — Define a color palette once and reuse; match your brand colors
- Data transformation outside — Transform data before passing to Recharts; keep chart components focused on rendering
- Gradients for area charts — Use SVG
<linearGradient>in<defs>for polished area fills - Animation control — Set
isAnimationActive={false}for real-time data; animations on initial render only for static dashboards - Reference lines — Use
<ReferenceLine>for targets, thresholds, and benchmarks overlaid on charts
> related_skills --same-repo
> zustand
You are an expert in Zustand, the small, fast, and scalable state management library for React. You help developers manage global state without boilerplate using Zustand's hook-based stores, selectors for performance, middleware (persist, devtools, immer), computed values, and async actions — replacing Redux complexity with a simple, un-opinionated API in under 1KB.
> zoho
Integrate and automate Zoho products. Use when a user asks to work with Zoho CRM, Zoho Books, Zoho Desk, Zoho Projects, Zoho Mail, or Zoho Creator, build custom integrations via Zoho APIs, automate workflows with Deluge scripting, sync data between Zoho apps and external systems, manage leads and deals, automate invoicing, build custom Zoho Creator apps, set up webhooks, or manage Zoho organization settings. Covers Zoho CRM, Books, Desk, Projects, Creator, and cross-product integrations.
> zod
You are an expert in Zod, the TypeScript-first schema declaration and validation library. You help developers define schemas that validate data at runtime AND infer TypeScript types at compile time — eliminating the need to write types and validators separately. Used for API input validation, form validation, environment variables, config files, and any data boundary.
> zipkin
Deploy and configure Zipkin for distributed tracing and request flow visualization. Use when a user needs to set up trace collection, instrument Java/Spring or other services with Zipkin, analyze service dependencies, or configure storage backends for trace data.