Categories: softare development

Create Pie Charts in CSS

Pie charts are circular charts divided into slices to illustrate numerical proportions. Each slice represents a part of a whole — commonly used to visualize data distribution (e.g., market share, budget percentage, survey results).

Start learning CSS

Even though CSS is not designed primarily for data visualization, you can create pie-chart-like shapes using just CSS — mainly by leveraging bordersclip-path, and conic-gradient.

What a Pie Chart Is

A pie chart:

  • Represents 100% total divided into parts
  • Each slice = percentage
  • Circular shape split into visual sections
  • Often labeled or colored for clarity

Example:

CategoryPercentage
A40%
B30%
C20%
D10%

Creating Pie Charts in CSS

Method 1: Using conic-gradient() (Modern & Simple)

This is the easiest and most modern way to create a pie chart.

<div class="pie"></div>

<style>
.pie {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background: conic-gradient(
    #4caf50 0 40%,   /* 40% */    #2196f3 40% 70%,/* next 30% */    #ff9800 70% 90%,/* next 20% */    #f44336 90% 100% /* last 10% */  );
}
</style>

✔️ Best method
✔️ Pure CSS
✔️ Easy to adjust slices
❌ Not supported in very old browsers

Result:

Method 2: CSS clip-path

You can manually build slices and rotate them.

<div class="chart">
  <div class="slice slice1"></div>
  <div class="slice slice2"></div>
</div>

<style>
.chart {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  position: relative;
  overflow: hidden;
}
.slice {
  position: absolute;
  width: 100%;
  height: 100%;
  clip-path: polygon(50% 50%, 100% 0, 100% 100%);
}
.slice1 {
  background: orange;
  transform: rotate(0deg);
}
.slice2 {
  background: blue;
  transform: rotate(120deg);
}
</style>

✔️ Works without gradients
❌ Hard to calculate angles manually

Result:

Method 3: Border Trick (Old School)

Uses thick borders to simulate pie slices. Rarely used now but good to know:

<div class="pie"></div>

<style>
.pie {
  width: 0;
  height: 0;
  border: 100px solid;
  border-color: #4caf50 #2196f3 transparent transparent;
  border-radius: 50%;
}
</style>

✔️ Legacy technique
❌ Limited slices
❌ Hard to customize

Result:

When to Use Which Method

MethodBest Use Case
conic-gradient()Real pie charts, dashboards, modern apps
clip-pathControlled custom slices, animations
Border trickLearning / old browsers / simple shapes

Summary

ApproachEaseNotes
conic-gradient⭐⭐⭐⭐⭐Best & easiest
clip-path⭐⭐⭐⭐More control
Border hack⭐⭐⭐Old method

Recent Posts

JavaScript Memoization

In JavaScript, it’s commonly used for: Recursive functions (like Fibonacci) Heavy calculations Repeated API/data processing…

1 week ago

CSS Container Queries: Responsive Design That Actually Makes Sense

For years, responsive design has depended almost entirely on media queries. We ask questions like: “If…

1 week ago

Cron Jobs & Task Scheduling

1. What is Task Scheduling? Task scheduling is the process of automatically running commands, scripts,…

1 week ago

Differences Between a Website and a Web App

Here’s a comprehensive, clear differentiation between a Website and a Web App, from purpose all the…

3 weeks ago

Essential VS Code Extensions Every Developer Should Use

Visual Studio Code (VS Code) is powerful out of the box, but its real strength…

1 month ago

JavaScript Variables

1. What Is a Variable in JavaScript? A variable is a named container used to store data…

1 month ago