CSS で作るぼかした円のアクセント
はじめに
2021 年によく見かける Web デザインがあります。それは、ぼかした円をアクセントとして用いるデザインです。

この円をぼかす CSS を紹介します。
デモ
実際のデモをご覧ください。
デモの HTML です。<div>
が 1 つの単純なものです。
<div class="sample"></div>
デモの CSS です。ポイントは 2 つあります。1 つは、ぼかしを指定する filter: blur()
。もう 1 つが、色を指定する background: radial-gradient()
です。
.sample { --sample-color: 96 2 238; aspect-ratio: 1 / 1; background: radial-gradient( circle, rgb(var(--sample-color)), rgb(var(--sample-color) / 0%) ); border-radius: 50%; filter: blur(50px); width: min(100%, 400px); }
blur(50px)
の数値を大きくすれば、ぼかしは強くなります。blur(100px)
を試してみます。
円は radial-gradient()
で色を付けており、外側が透明のグラデーションです。外側が透明なため、円の輪郭がサイト全体の背景色に溶け込みます。ただ、radial-gradient()
で透明を指定する際は、現状では transparent
や #0000
は使えません。もし使えば、Safari で透明の部分が黒くなります。
参考:Appleデバイスでtransparentのグラデーションが黒くなる現象
また、radial-gradient()
の値に <position>
や <size>
を指定し、円を調整できます。
参考:radial-gradient() - CSS: カスケーディングスタイルシート | MDN
試しに、グラデーションの中心を右にずらしてみます。
background: radial-gradient( circle at 80%, rgb(var(--sample-color)), rgb(var(--sample-color) / 0%) );
2 つの異なる色の円を重ねれば、グラデーションのように見えます。
linear-gradient() を使う場合は?
先程の例では、 radial-gradient()
を使い円の背景色を指定しました。では、linear-gradient()
を使い、円の背景色を指定する場合はどうすればいいでしょうか?
単純に、linear-gradient()
を指定した円に filter: blur()
を指定してみます。
.sample { aspect-ratio: 1 / 1; background: linear-gradient(45deg, red, blue); border-radius: 50%; filter: blur(50px); width: min(100%, 400px); }
結果は、円の輪郭がにじみます。
円の輪郭をサイト全体の背景色に溶け込ませるには、円にマスクをかけます。例として、::after
疑似要素でマスクを作ってみます。
/* ダークモードに対応しているとする */ @media (prefers-color-scheme: light) { html { --bg-color: 255 255 255; } } @media (prefers-color-scheme: dark) { html { --bg-color: 18 18 18; } } body { background: rgb(var(--bg-color)); } .sample { aspect-ratio: 1 / 1; background: linear-gradient(45deg, red, blue); border-radius: 50%; filter: blur(35px); position: relative; width: min(100%, 400px); } .sample::after { background: radial-gradient(rgb(var(--bg-color) / 0%), rgb(var(--bg-color))); content: ''; inset: 0; position: absolute; }
radial-gradient()
を指定した ::after
疑似要素は、中央が透明、外側は背景色と同じ色のグラデーションです。結果は、円の輪郭がサイト全体の背景色に溶け込みます。
参考デザイン
Dribbble から、ぼかした円を用いた参考デザインをいくつか集めました。
円にノイズが入っているデザインもあります。ノイズの入れ方は、最近見かける、粒子の粗いグラデーション!ほんの少しのCSSとSVGで実装できるの知ってた? をご参考ください。
また、複数の radial-gradient()
を重ねるメッシュグラデーションでの表現が適しているデザインもあります。メッシュグラデーションは、Mesher Tool で簡単に作れます。使い方は Mesher Tool の使い方 - Benrito をご参考ください。









