Back to Dictionary
Data & Content Visualization
●●○Customize
Advanced

Pie Chart Reveal

Use Pie Chart Reveal for distribution; use Chart Bar Growth when category comparison must be more precise.

Use

Revealing a simple distribution where the relative slice sizes matter at a glance.

Avoid

Avoid it when a bar chart would make comparison more accurate.

Safer Alternative

Progress Ring

Risk Level

High attention

Timing

500-900ms total; each segment should appear quickly enough that the chart does not feel gated.

Easing

Use ease-out for each segment and stagger by 80-160ms.

Risk

misleading progressaccessibility sensitive

Live Demo

Core
Growth
Ops

What It Is

A pie or donut chart whose segments draw in sequence so users can understand distribution before reading the legend.

Decision Guidance

Use Pie Chart Reveal for distribution; use Chart Bar Growth when category comparison must be more precise.

Best For

Revealing a simple distribution where the relative slice sizes matter at a glance.

Avoid When

Avoid it when a bar chart would make comparison more accurate.

Timing

500-900ms total; each segment should appear quickly enough that the chart does not feel gated.

Easing

Use ease-out for each segment and stagger by 80-160ms.

Risk Tags

misleading progressaccessibility sensitive

When to Use

  • Small distribution summaries
  • Dashboard cards with three to five categories
  • Reports where segment proportion is the main takeaway

When NOT to Use

  • Charts with many tiny slices
  • Financial or scientific contexts where exact comparison matters
  • Repeated refreshes where animation hides changed values

Configuration Tips

  • 01Limit segment count and label the values outside the animation
  • 02Animate the largest segment first when hierarchy matters
  • 03Use reduced motion to show final segments immediately

You've Seen It In

Google AnalyticsFigma AdminHubSpot

AI Implementation Prompts

Move from a fast scaffold to production details, then tune timing and edge states.

Create a donut chart card where three segments reveal one after another, with a static legend beside the chart.

Code Example (Tailwind CSS)

A focused implementation sketch you can adapt to your product state.

export function PieChartReveal({ active = true }: { active?: boolean }) {
  const segments = [
    { label: 'Team', color: 'stroke-amber-500', value: 42, offset: 0 },
    { label: 'Self serve', color: 'stroke-stone-900', value: 34, offset: -42 },
    { label: 'Partner', color: 'stroke-stone-300', value: 24, offset: -76 },
  ];

  return (
    <div className="flex items-center gap-5 rounded-2xl border border-stone-200 bg-white p-5">
      <svg viewBox="0 0 120 120" className="h-28 w-28 -rotate-90" aria-label="Customer mix donut chart">
        {segments.map((segment, index) => (
          <circle key={segment.label} cx="60" cy="60" r="42" fill="none" strokeWidth="18" strokeDasharray={`${segment.value} 100`} strokeDashoffset={segment.offset} className={`${segment.color} transition-opacity duration-500 ${active ? 'opacity-100' : 'opacity-20'}`} style={{ transitionDelay: `${index * 120}ms` }} />
        ))}
      </svg>
      <div className="space-y-2 text-sm text-stone-600">
        {segments.map((segment) => <div key={segment.label}>{segment.label}: {segment.value}%</div>)}
      </div>
    </div>
  );
}