グラデーションを重ねて画像なしの背景パターン(方眼紙・ジグザグ・水玉など)を作る
linear-gradient / radial-gradient の「色の境目をぴったり重ねて」くっきりした線や図形を作り、background-size で敷き詰めると、画像なしで方眼紙・ジグザグ・アイソメトリック・水玉などの背景柄が作れる。
どんな時に使う?
- 見出しの背景やセクション区切り、ノート風・方眼紙風の背景を、画像ファイルを用意せずに作りたい時
- 色や線の太さ・間隔を CSS 変数で調整できるようにしたい時(画像だとデザイン変更のたびに書き出し直しになる)
しくみ
- グラデーションの色の停止位置を同じ値にする(例:
#c9a 2px, transparent 2px)と、ぼかしのない「くっきりした境目」になる。これで線・三角形・円を描く。 - 1マス分の柄を
background-sizeで決め、既定のbackground-repeat: repeatで敷き詰める。 - 複数のグラデーションをカンマ区切りで重ね、
background-sizeとbackground-positionもそれぞれに対応させて並べる。
コード
css
.pattern {
--line: #e2d36b; /* 線の色 */
--bg: #f6f2e9; /* 下地の色 */
background-color: var(--bg);
}
/* 方眼紙: 太線(100pxごと)と細線(20pxごと)を縦横に重ねる */
.pattern--graph {
background-image:
linear-gradient(var(--line) 3px, transparent 3px),
linear-gradient(90deg, var(--line) 3px, transparent 3px),
linear-gradient(var(--line) 1px, transparent 1px),
linear-gradient(90deg, var(--line) 1px, transparent 1px);
background-size: 100px 100px, 100px 100px, 20px 20px, 20px 20px;
}
/* ジグザグ: 4方向の直角三角形(25%で区切る)を組み合わせ、半マスずらす */
.pattern--zigzag {
background-image:
linear-gradient(135deg, var(--line) 25%, transparent 25%),
linear-gradient(225deg, var(--line) 25%, transparent 25%),
linear-gradient(45deg, var(--line) 25%, transparent 25%),
linear-gradient(315deg, var(--line) 25%, transparent 25%);
background-size: 40px 40px;
background-position: 20px 0, 20px 0, 0 0, 0 0;
}
/* 水玉(互い違い): 同じ円を2枚、半マスずらして重ねる */
.pattern--polka {
background-image:
radial-gradient(var(--line) 3px, transparent 3px),
radial-gradient(var(--line) 3px, transparent 3px);
background-size: 30px 30px;
background-position: 0 0, 15px 15px;
}
/* 斜線ストライプ: repeating-linear-gradient なら background-size 不要 */
.pattern--diagonal {
background-image: repeating-linear-gradient(
45deg, var(--line) 0 8px, transparent 8px 32px
);
}- アイソメトリック(立方体が並ぶ柄)は、30°・150°・60° の線形グラデーションを 6 枚重ね、
background-size: 40px 70pxのように縦長のマスで半マスずつずらして作る。三角形を2つ重ねて「王冠」柄にするなど、組み合わせ次第でバリエーションが増やせる。 - 元記事では、ページ全体の背景にする時に
position: fixed; inset: 0; z-index: -1;の要素に柄を付け、opacityで薄くしている。
注意点・対応状況
- グラデーション自体は全ブラウザ対応。
linear-gradient(色 0 8px, ...)のような「1つの色に2つの位置」記法も現行ブラウザで使える。 - 線を細くしすぎる(1px 未満、または拡大縮小時)とブラウザによってにじんだり消えたりする。高解像度でも崩れないか実機で確認を。
radial-gradientをrepeating-で使う柄は、iOS Safari で見た目が少し変わることがあると元記事に注記あり。- 柄が強いと文字が読みにくくなるので、本文の背景にする時はコントラストを落とす(下地に近い色を使う、
opacityを下げる)。
出典
- @125naroom · 2026-10-17 (25種類すべてのコード: 125naroom.com/web/3737 )