テック技報最新号へ →
CSS

グラデーションを重ねて画像なしの背景パターン(方眼紙・ジグザグ・水玉など)を作る

linear-gradient / radial-gradient の「色の境目をぴったり重ねて」くっきりした線や図形を作り、background-size で敷き詰めると、画像なしで方眼紙・ジグザグ・アイソメトリック・水玉などの背景柄が作れる。

@125naroom · 2026-10-18
#背景#グラデーション#パターン#画像不要#デザイン

どんな時に使う?

  • 見出しの背景やセクション区切り、ノート風・方眼紙風の背景を、画像ファイルを用意せずに作りたい時
  • 色や線の太さ・間隔を 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 を下げる)。

出典

X の元の投稿を開く