CSSで市松模様や七宝模様の和柄背景を作成する方法

CSSのrepeating-linear-gradient、radial-gradient(七宝模様)、conic-gradient(市松模様)を利用し、背景模様を作成しています。

模様を簡単に作成できるツールを作成しましたので、ご活用下さい。Favorite Pattern CSS Generator

グラデーションといっても、色の開始点と停止点を指定することにより、隣接する色は明確な境界を持ち、それを繰り返すことで模様ができます。

また、background-imageは複数の値を設定することが可能であり、その特徴を利用しています。
デフォルトでは、 background-blend-mode: normal で、先に描かれた色が優先されます。
MDN > CSS: カスケーディングスタイルシート > <blend-mode>
この場合は、後から記述するものを表示させたい箇所は透明にするか、透明度を調整します。

diagonal _gradient

市松模様を少しアレンジした模様も、CSSのみで簡単に作成できます。

和柄模様

襷(たすき)

CODEPEN

「Run Pen」をクリックしてください。

See the Pen japanese pattern_1 by blue moon (@blue-moon) on CodePen.

CSS

.tasuki {
  /* 30度斜め方向に、12pxまでは透明、その後14pxまでは黒 */
  background: repeating-linear-gradient(30deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0)12px, #000 14px),
              repeating-linear-gradient(-30deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0) 12px, #000 14px);
}

算盤絞り(そろばんしぼり)

CODEPEN

「Run Pen」をクリックしてください。

See the Pen ja_sorobanshibori by blue moon (@blue-moon) on CodePen.

CSS

.sorobanshibori {
  background: repeating-linear-gradient(30deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0)20px, #fff 20px, #fff 40px),
              repeating-linear-gradient(-30deg, #fff, #fff 20px, rgba(255, 255, 255, 0)20px, rgba(255, 255, 255, 0) 40px),
              repeating-linear-gradient(30deg, #000, #000 20px, rgba(255, 255, 255, 0) 20px, rgba(255, 255, 255, 0) 40px);
              /* 上に記述するものが優先されるため、最後は透明が残された箇所のみ黒が表示される */
}

七宝(しっぽう)

CODEPEN

「Run Pen」をクリックしてください。

See the Pen ja_cloisonne2 by blue moon (@blue-moon) on CodePen.

CSS

.cloisonne {
  background-size: 50px 50px; /* radial-gradientが適用されるサイズ */
  background-image: radial-gradient(farthest-corner, rgba(255, 255, 255, 0) 68%, #000 68% 70%, 
                    rgba(255, 255, 255, 0) 70% 100%),  /* グラデーションの範囲は外接円 */
                    radial-gradient(circle at top left, rgba(255, 255, 255, 0) 34%, #000 34% 35%, 
                    rgba(255, 255, 255, 0) 35% 100%),  /* 左上から34%まで透明、34%~35%まで黒の扇形 */
                    radial-gradient(circle at top right, rgba(255, 255, 255, 0) 34%, #000 34% 35%, 
                    rgba(255, 255, 255, 0) 35% 100%),  /* 右上から */
                    radial-gradient(circle at bottom left, rgba(255, 255, 255, 0) 34%, #000 34% 35%, 
                    rgba(255, 255, 255, 0) 35% 100%),
                    radial-gradient(circle at bottom right, rgba(255, 255, 255, 0) 34%, #000 34% 35%, 
                    rgba(255, 255, 255, 0) 35% 100%);
  background-repeat: repeat;
}
補足説明

円形グラデーションradial-gradientを利用し、四角形の中心と四隅から円を描いています。
最初のfarthest-cornerは、グラデーションされる範囲を指定しています。
ここにclosest-sideを指定すると、範囲は内接円となり狭くなります。

このbackground-imageにより、四角形の中に内接する円が1つと、四隅を中心とする扇形が4つできます。
この模様の大きさをbackground-sizeで指定し、画面いっぱいに繰り返しています。

MDN カスケーディングスタイルシート radial-gradient

七宝(色塗りあり)

CODEPEN

「Run Pen」をクリックしてください。

See the Pen ja_cloisonne1 by blue moon (@blue-moon) on CodePen.

CSS

.cloisonne {
  background-size: 50px 50px; /* radial-gradientが適用されるサイズ */
  /* 下記のグラデーションの色は透明度を調整、重なる部分が色が濃くなる */
  background-image: radial-gradient(closest-side, rgba(25,68,142,0.4) 98%, rgba(25,68,142,0.3) 100%),
                    radial-gradient(circle at top left, rgba(25,68,142,0.13) 35%, rgba(255, 255, 255, 0) 35% 100%),
                    radial-gradient(circle at top right, rgba(25,68,142,0.13) 35%, rgba(255, 255, 255, 0) 35% 100%),
                    radial-gradient(circle at bottom left, rgba(25,68,142,0.13) 35%, rgba(255, 255, 255, 0) 35% 100%),
                    radial-gradient(circle at bottom right, rgba(25,68,142,0.13) 35%, rgba(255, 255, 255, 0) 35% 100%);
  background-repeat: repeat;
}

市松模様(いちまつもよう)

CODEPEN

「Run Pen」をクリックしてください。

See the Pen ja_ichimatsu by blue moon (@blue-moon) on CodePen.

CSS

.ichimatsu {
  background-size: 40px 40px; /* repeating-conic-gradientが適用されるサイズ */
  background-image: repeating-conic-gradient(from 0deg, 
                    #fff 0deg 90deg, #000 90deg 180deg); /* 90度ずつ色変更を360度まで繰返し(2回) */
  background-repeat: repeat;
}
補足説明

まず、repeating-conic-gradientにより、四角形の中心を起点とし、時計の12時地点から90度まで黒、90度~180度まで白を2回繰り返し(扇形状グラデーションの繰り返し)、中心で4分割された黒2個と白2個の四角形を作成します。
そして、模様の大きさ(四角形4つ分)をbackground-sizeで指定します。
サイズ指定しなければ、画面いっぱいに4分割された背景となります。
background-repeatで背景を繰り返すことで、市松模様が簡単に作成できます。

MDN カスケーディングスタイルシート repeating-conic-gradient

斜め市松模様

CODEPEN

「Run Pen」をクリックしてください。

See the Pen diagonal by blue moon (@blue-moon) on CodePen.

CSS

.diagonal {
  background-size: 40px 40px; /* conic-gradientが適用されるサイズ */
  /* 45度まで白、その後90度ずつ色を入れ替え、最後の45度は白で終わる */
  background-image: conic-gradient(from 0deg, #fff 0deg 45deg, #000 45deg 135deg, 
                    #fff 135deg 225deg, #000 225deg 315deg, #fff 315deg 360deg);
  background-repeat: repeat;
}
補足説明

市松模様の書き方を少し変更したものです。
repeating-conic-gradientではなく、conic-gradientで360度までグラデーションの内容を記述しています(同じ角度ずつの繰り返しとならないため)。
三角形4つに区切られた四角形の背景を、サイズ指定し画面いっぱいに繰り返しています。

斜め市松模様とグラデーション組み合わせ

CODEPEN

「Run Pen」をクリックしてください。

See the Pen ja_diagonal _gradient by blue moon (@blue-moon) on CodePen.

CSS

.diagonal {
  background-size: 40px 40px; /* conic-gradientが適用されるサイズ */
  background-image: conic-gradient(from 0deg, rgba(255, 255, 255, 0) 0deg 45deg, 
                      #191970 45deg 135deg, rgba(255, 255, 255, 0) 135deg 225deg,
                      #191970 225deg 315deg, rgba(255, 255, 255, 0) 315deg 360deg), /*紺色と透明の三角形各2つ */
                    linear-gradient(45deg, #ffffcc, #ff99cc); /* 上記透明部分のみ見える */
  background-repeat: repeat;
}

三重襷(みえだすき)

CODEPEN

「Run Pen」をクリックしてください。

See the Pen japanese pattern_3 by blue moon (@blue-moon) on CodePen.

CSS

.miedasuki {
  /* 
  不透明度の調整なし、最初に記述されるものが優先される特徴を利用
  菱型の外側から方向を変更しながらグラデーションを記述
  徐々にと中心のtransparent(rgba(255, 255, 255, 0))の空間、つまり後から記述するものが見える範囲が小さくなる
  */
  background: repeating-linear-gradient(30deg, #000, #000 3px,
                rgba(255, 255, 255, 0) 3px 28px, #000 28px 31px),
              repeating-linear-gradient(-30deg, #000, #000 3px,
                rgba(255, 255, 255, 0) 3px 28px, #000 28px 31px),
              repeating-linear-gradient(30deg, #fff, #fff 6px,
                rgba(255, 255, 255, 0) 6px 25px, #fff 25px 31px),
              repeating-linear-gradient(-30deg, #fff, #fff 6px,
                rgba(255, 255, 255, 0) 6px 25px, #fff 25px 31px),
              repeating-linear-gradient(30deg, #000, #000 7.5px,
                rgba(255, 255, 255, 0) 7.5px 23.5px, #000 23.5px 31px),
              repeating-linear-gradient(-30deg, #000, #000 7.5px,
                rgba(255, 255, 255, 0) 7.5px 23.5px, #000 23.5px 31px),
              repeating-linear-gradient(30deg, #fff, #fff 9px,
                rgba(255, 255, 255, 0) 9px 15px, #fff 15px 16px, rgba(255, 255, 255, 0) 16px 22px,
                #fff 22px 31px),
              repeating-linear-gradient(-30deg, #fff, #fff 9px,
                rgba(255, 255, 255, 0) 9px 15px, #fff 15px 16px, rgba(255, 255, 255, 0) 16px 22px,
                #fff 22px 31px),
              repeating-linear-gradient(30deg, #000, #000 15px,
                rgba(255, 255, 255, 0) 15px 16px, #000 16px 31px),
              repeating-linear-gradient(-30deg, #000, #000 15px,
                rgba(255, 255, 255, 0) 15px 16px, #000 16px 31px);
}

【参考】洋風模様

洋風のストライプやタータンチェック模様の作成方法も参考までに。
基本的に作成方法は同じです。

タイトルとURLをコピーしました