やわらかな印象のメッシュグラデーションをCSSで実装する方法

gradation_mesh_main.png

こんにちは。デザイナーの森田です。

今回は、メッシュグラデーションをCSSで実装する方法をご紹介いたします。
メッシュグラデーションとは、複数のポイントからグラデーションをさまざまな方向に流し込んだものです。
あえて統一感をなくし、遊び心のあるふわふわとした印象を与えることができます。

きっかけ

自社webサイトコンテンツ作成の中で、背景にメッシュグラデーションのイメージを引きたいと、最初は画像素材でデザインカンプを作成していました。
コーディングの際に、画像を使用する以外の方法はないか調査したところ、CSSで実現できそうなことがわかり、記事にまとめてみました。

CSSグラデーションの基本

グラデーションには、線形グラデーションのlinear-gradient、円形グラデーションのradial-gradient、扇型グラデーションのconic-gradientなどがありますが、今回は円形グラデーション(radial-gradient)を使用します。

円形グラデーション

radial-gradientは、円形グラデーションを指定できるbackgroundの値です。

background-image: radial-gradient(at 水平位置 垂直位置, 開始色 位置, 終了色 位置);

中心から外側へと向かって色が変化していきます。

.box{
  width:300px;
  height:300px;
  background: radial-gradient(at 50% 50%, #000 0, #ccc 100%);
}

gradation_mesh_img01.jpg

円の中心位置の指定

円形グラデーションの中心位置は、atの後ろに続く形で指定します。
半角スペース区切りで1つ目に水平位置・2つ目に垂直位置を指定します。位置はpxや%などの数値か、left・center・topなどのキーワードで指定することもできます。

.box{
  width:300px;
  height:300px;
  background: radial-gradient(at 0 0, #000 0, #ccc 100%);
}

gradation_mesh_img02.jpg

色が切り替わる位置を指定

色の切り替え位置は、色の後ろに半角スペース区切りで%指定します。

.box{
  width:300px;
  height:300px;
  background: radial-gradient(at 0 0, #000 50%, #ccc 100%);
}

gradation_mesh_img03.jpg

複数のグラデーションを指定

radial-gradient() をカンマで区切って指定すると、複数のグラデーションを指定できます。

background-image: radial-gradient(at 水平位置 垂直位置, 開始色 位置, 終了色 位置),
    radial-gradient(at 水平位置 垂直位置, 開始色 位置, 終了色 位置);

この時、上に指定するほど重なり合いの優先度が高くなり、前面に表示されます。
また、終了色をtransparentとすることで、透明色が指定でき、複数の色を重ねることができます。

.box{
  width:300px;
  height:300px;
  background: radial-gradient(at 0 0, #0079FF 0, transparent 50%),
    radial-gradient(at 70% 30%, #00DFA2 0, transparent 40%),
    radial-gradient(at 50% 100%, #F6FA70 0, transparent 80%);
}

gradation_mesh_img04.jpg

transparentの位置の%を指定すると、開始色の色の広がるサイズも調整できます。

ジェネレーターで簡単に実装も

便利なグラデーションのCSS生成ツール「Mesher Tool 」をご紹介。
Mesher Toolを使えば、色や色の数、色の順番、色の位置を任意に指定でき、直感的に作りたいメッシュグラデーションを生成できます。右下のExportをクリックすると、CSSのコードが生成されます。

さいごに

実際に作成したページはこちら
Xamarin・MAUI技術支援サポートのご案内
Xamarin・MAUI技術支援サポート

CSSで実装すれば、画像を使用するより軽量で、後から自由に変更もできるため便利だと思います。
また、レスポンシブにも対応できるため、PCとスマホ表示での切り替えも可能です。
色の組み合わせ、位置、大きさで表現の可能性は無限大!ぜひお試しください。


当社は、Webサイト制作をはじめ、.NET6+・MAUI(旧Xamarin)を利用したモバイルアプリ開発から、Power Platformでのローコード開発など、幅広い開発ニーズにお応えします。コンサルティングや常駐開発など、関わり方も柔軟に対応できますので、まずはお気軽にご相談ください。

お気軽にご依頼・ご相談ください

前へ

[Azure AD]Microsoft Teams のゲスト招待は Microsoft アカウントがなくてもできますよ!

次へ

csprojファイル内で使用されるMSBuildプロパティのデフォルト値を調べる