SWELL風の波境界線を追加する方法

Cocoonカスタマイズ集
この記事は約10分で読めます。
記事内に広告が含まれています。

はじめに

フルワイドブロックを使う際、SWELL風の「波」デザインのような上下の境界線を追加したい場面はよくあります。

以下の記事では、「カバー」ブロックを使って上下の境界線を「波」デザインにする方法を紹介しています。

そこで今回は、「カバー」ブロックではなく「カラム」ブロックを使用し、同様の境界線デザインを実現します。

この記事では、この方法について説明します。

ダウンロード

以下のデータをコピーし、そのまま「段落」ブロックに貼り付けます。

ページ設定→ページタイプ「1カラム(広い)」に設定します。

<!-- wp:columns {"className":"wide","textColor":"key-color"} -->
<div class="wp-block-columns wide has-key-color-color has-text-color"><!-- wp:column -->
<div class="wp-block-column"><!-- wp:html -->
<div class="up-wave">
<svg viewBox="0 0 2000 100" preserveAspectRatio="none">
  <path d="M500.625 0C247.562 1.59193e-09 142.869 32.1725 0 48.2587V100H2000V3.48259C1869.47 18.0763 1755.94 49.2537 1500.38 49.2537C1234.81 49.2537 753.688 1.59275e-09 500.625 0Z" />
</svg>
</div>
<!-- /wp:html --></div>
<!-- /wp:column --></div>
<!-- /wp:columns -->

<!-- wp:columns {"className":"wide","backgroundColor":"key-color"} -->
<div class="wp-block-columns wide has-key-color-background-color has-background"><!-- wp:column -->
<div class="wp-block-column"><!-- wp:paragraph {"style":{"elements":{"link":{"color":{"text":"var:preset|color|cocoon-white"}}}},"textColor":"cocoon-white"} -->
<p class="has-cocoon-white-color has-text-color has-link-color">コンテンツ</p>
<!-- /wp:paragraph --></div>
<!-- /wp:column --></div>
<!-- /wp:columns -->

<!-- wp:columns {"className":"wide","textColor":"key-color"} -->
<div class="wp-block-columns wide has-key-color-color has-text-color"><!-- wp:column -->
<div class="wp-block-column"><!-- wp:html -->
<div class="low-wave">
<svg viewBox="0 0 2000 100" preserveAspectRatio="none">
  <path d="M1499.37 100C1752.44 100 1857.13 67.8275 2000 51.7413V0H-0.00012207V96.5174C130.533 81.9237 244.061 50.7463 499.625 50.7463C765.191 50.7463 1246.31 100 1499.37 100Z" />
</svg>
</svg>
</div>
<!-- /wp:html --></div>
<!-- /wp:column --></div>
<!-- /wp:columns -->

<!-- wp:html -->
<style data-wp-block-html="css">
.body {
  .wide {
    margin: 0 calc(50% - 50vw);
    padding: 0 calc(50vw - 50%);

    /* 境界線は余白なし */
    &:has(.up-wave, .low-wave) {
      padding: 0;
    }

    /* 境界線上の余白を除去 */
    &:has(.up-wave) + .wide {
      margin-top: -1px;
    }
  }
}

/* 境界線 */
[class*="wave"] {
  svg {
    display: block;
    fill: currentColor;
    height: 5vmin;
    width: 100%;
  }
}
</style>
<!-- /wp:html -->

完成イメージ

実装手順

以下の手順で実装します。

  • ラベル
    Gutenbergエディターでの設定(ワイドカラム)
    Gutenbergエディター

    以下の手順で作成します。

    1. 「カラム」ブロックを配置します。
    2. カラムを1カラムに設定します。
    3. 高度な設定→追加CSSクラスにwideと入力します。
  • ラベル
    Gutenbergエディターでの設定(波追加)
    Gutenbergエディター
    1. スタイル→テキストを選択し、「波」の色を設定します。
      境界線下の「カラム」ブロックも同様に、「波」の色を設定します。
    2. 「カスタムHTML」ブロックを配置し、以下のコードを入力します。

    • 境界線上
    <div class="up-wave">
      <svg viewbox="0 0 2000 100" preserveaspectratio="none">
        <path d="M0 100V48.2587C142.87 32.1725 247.56 0 500.63 0C753.69 0 1234.81 49.2537 1500.38 49.2537C1755.94 49.2537 1869.47 18.0763 2000 3.48255V100H0Z" />
      </svg>
    </div>
    • 境界線下
    <div class="low-wave">
      <svg viewbox="0 0 2000 100" preserveaspectratio="none">
        <path d="M2000 0V51.7413C1857.13 67.8275 1752.44 100 1499.37 100C1246.31 100 765.191 50.7463 499.625 50.7463C244.061 50.7463 130.533 81.9237 0 96.5174V0H2000Z" />
      </svg>
    </div>
  • ラベル
    Gutenbergエディターでの設定(コンテンツを設定)
    Gutenbergエディター
    1. 「カラム」ブロックを配置します。
    2. スタイル→背景を選択し色を設定します。
    3. 作成したカラムの中にさまざまなブロックを配置して作成します。
  • ラベル
    CSSを追加

    以下のコードをstyle.cssに追加します。

    .body {
      .wide {
        margin: 0 calc(50% - 50vw);
        padding: 0 calc(50vw - 50%);
    
        /* 境界線は余白なし */
        &:has(.up-wave, .low-wave) {
          padding: 0;
        }
    
        /* 境界線上の余白を除去 */
        &:has(.up-wave) + .wide {
          margin-top: -1px;
        }
      }
    }
    
    /* 境界線 */
    [class*="wave"] {
      svg {
        display: block;
        fill: currentColor;
        height: 5vmin;
        width: 100%;
      }
    }
    • currentColorを使うことで、親要素の色を自動的に「波」の色に反映させます。
    • vminは、ビューポートの最小辺の1%を基準とした長さの単位です。レスポンシブ対応に役立ちます。
タイトルとURLをコピーしました