≪ Today I learned. RSS購読
公開日
タグ
CSS
著者
ダーシノ(@bc_rikko)

conic-gradientを使った円グラフパターン

グラデーション関連のCSS関数に、conic-gradient()がある。この関数は放射状のグラデーションを作ることができ、応用することで円グラフがCSSだけで簡単に作れる。

conic-gradient()の基礎

/* 自動的にグラデーションする */
.rainbow {
  background: conic-gradient(
    red, orange, yellow, green, blue, indigo, violet
  );
}

/* 色の範囲を角度で指定する */
.deg {
  background: conic-gradient(
    red 45deg,
    orange 45deg 90deg,
    yellow 90deg 135deg,
    green 135deg 180deg,
    blue 180deg 225deg,
    indigo 225deg 270deg,
    violet 270deg 315deg,
    purple 315deg 360deg
  );
}
.gradient
.deg

conic-gradient()を使った円グラフ

.pie {
  --percent: 83%;
  border-radius: 50%;
  background: conic-gradient(
    from 0deg,
    yellowgreen 0 var(--percent),
    ghostwhite var(--percent) 100%
  );
}
83%

background-clipを使ったドーナツグラフ

background-clip: border-areaを使うことで、ドーナツグラフ(中抜き円グラフ)を作れる。

.donut {
  --percent: 83%;
  border-radius: 50%;
  background: conic-gradient(
    from 0deg,
    yellowgreen 0 var(--percent),
    ghostwhite var(--percent) 100%
  );

  /* border-areaで切り抜く */
  background-clip: border-area;
  background-origin: border-box;
  border: 10px solid transparent;
}
83%

ドーナツグラフ

ドーナツグラフ

複数の色を使ったドーナツグラフ

.donut-multi {
  border-radius: 50%;
  background-image: conic-gradient(
    yellowgreen 0 20%,
    yellow 20% 40%,
    orange 40% 60%,
    red 60% 80%,
    purple 80% 100%
  );

  /* border-areaで切り抜く */
  background-clip: border-area;
  background-origin: border-box;
  border: 10px solid transparent;
}
Hello

複数色を使ったドーナツグラフ

複数色を使ったドーナツグラフ