CSSツール

無料 CSS shape()関数ジェネレーター

clip-pathおよびshape-outside用の非矩形形状を作成するCSS shape()関数を生成します。

ツールを読み込み中...

CSS shape()関数ジェネレーターとは

CSS shape()関数(Baseline 2026、Chrome 139+)は、clip-pathおよびshape-outsideプロパティ用の非矩形シェイプを作成します。従来のpolygon()、circle()などのレガシーシェイププリミティブとは異なり、shape()は要素自身の寸法に対するパーセンテージ座標、margin-boxやpadding-boxなどの参照ボックス、および異なるシェイプタイプ間のスムーズなアニメーション遷移をサポートします。polygon、circle、ellipse、path、rectの5つのジオメトリタイプのshape() CSSを生成します。

クイックアンサー

CSS shape()は、要素サイズに対するパーセンテージ座標、参照ボックスサポート、polygon、circle、ellipse、path、rectタイプ間のアニメーション可能な遷移を備えたclip-pathおよびshape-outside用の非矩形シェイプを作成します。Chrome 139+、Safari 18.2+(Baseline 2026)。サポートされていないブラウザ向けに常にフォールバックシェイプ関数を含めてください。

Last updated: 2026-06-02

制限事項

  • ブラウザサポートは2026年半ば現在、Chrome 139+、Edge 139+、Safari 18.2+に限定されています。Firefoxはまだshape()をサポートしておらず、古いブラウザは宣言全体を無視します。広い互換性にはフォールバックシェイプ関数が必要です。
  • shape() polygonは、ベア数値を受け入れる従来のpolygon()関数とは異なり、各座標値に明示的な単位(pxまたは%)が必要です。これにより、既存のpolygon()宣言から移行する際に構文がより冗長でエラーが発生しやすくなります。
  • すべてのシェイプタイプが相互にクリーンに補間されるわけではありません。shape()はクロスタイプのアニメーションをサポートしていますが、大きく異なるジオメトリ間の遷移(たとえば、rectから複雑なパス)は予期しない中間シェイプを生成する可能性があります。デプロイする前にアニメーションを視覚的にテストしてください。

Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub

使い方

  1. シェイプタイプを選択します。polygon(座標ペアのリスト)、circle(中心と半径)、ellipse(中心とx半径およびy半径)、path(SVGパスデータ)、またはrect(上、右、下、左とオプションの丸み)。
  2. 参照ボックスを選択します。margin-box、padding-box、content-box、またはborder-box。参照ボックスはパーセンテージベースの座標の座標系を決定します。
  3. シェイプ座標を設定します。ポリゴンの場合は座標点ペアを追加します。円と楕円の場合は中心位置と半径値を設定します。アニメーションフレンドリーモードを有効にして、シェイプ値がCSS遷移に互換性のある構文を使用することを確認します。
  4. 生成されたshape() CSSをコピーし、clip-pathまたはshape-outsideプロパティに適用します。shape()をまだサポートしていないブラウザ向けに、従来のシェイプ関数を使用したフォールバックを追加します。

主な用途

  • clip-pathとshape()ポリゴンおよびパーセンテージ座標を使用して、ヒーローセクションや注目コンテンツカード用の非矩形画像マスクを作成します。
  • shape-outsideとshape() circleおよびpadding-box参照を使用して、円形または楕円形の画像の周りにテキストを回り込ませ、一貫したスペーシングを実現します。
  • CSS遷移を使用して、ホバー時またはスクロール時にポリゴンと円のシェイプ間でアニメーションします。shape()は異なるシェイプタイプ間の補間をサポートしています。

用途

使用例

アニメーションするヒーロー画像マスク

ランディングページが読み込み時にポリゴンとしてクリップされたヒーロー画像を表示し、スクロール時に完全な矩形に遷移します。パーセンテージ座標を持つshape() polygonを使用すると、clip-pathが六角形から完全な矩形にスムーズにアニメーションします。shape()をサポートしていないブラウザ向けのフォールバックとしてclip-path: noneを提供します。

円形のプロフィール写真の周りのテキスト回り込み

ブログのプロフィールページにテキストが回り込む円形の写真があります。shape-outside: shape() circle at 50% 50% with 50% radius and padding-box参照を使用すると、テキストが画像の周りにぴったりと回り込みます。パーセンテージベースの半径は画像サイズに合わせてレスポンシブレイアウトで拡大縮小します。

よくあるミス

  • よりレスポンシブになるパーセンテージ座標がある場合にshape()でピクセル座標を使用する。shape()のパーセンテージ座標は要素サイズに適応しますが、ピクセル座標はリサイズ時に壊れます。正確なピクセル配置が必要でない限り、パーセンテージ値を使用してください。
  • shape() polygonがpolygon()と同じカンマ区切りのベア数値構文を使用すると思い込む。shape()では各座標値に明示的な単位(pxまたは%)が必要であり、レガシー関数よりも構文が冗長になります。
  • 古いブラウザ向けのフォールバックなしでshape()を適用する。shape()はChrome 139+、Edge 139+、Safari 18.2+でサポートされていますが、Firefoxではサポートされていません。サポートされていないブラウザは宣言全体を無視します。常にshape()ルールの前にフォールバックシェイプ宣言を提供してください。

検証

  1. Chrome 139+で、生成されたshape() CSSをclip-pathを持つ要素に適用し、計算されたスタイルを検査します。ビューポートをリサイズし、パーセンテージ座標が要素サイズに相対して正しくスケールすることを確認します。
  2. clip-pathにCSS遷移を追加し、ホバー時に2つのshape()値(ポリゴンと円)を切り替えます。遷移が視覚的な不具合やジャンプなしで2つのシェイプ間をスムーズにアニメーションすることを確認します。

FAQ

CSS shape()関数ジェネレーターのFAQ

shape()はpolygon()、circle()、その他の従来のシェイプ関数とどう違いますか?

shape()はpolygon()、circle()、ellipse()、path()、inset()、rect()の統一された代替手段です。主な利点は次のとおりです。参照ボックスサイズではなく要素自身の寸法に対するパーセンテージ座標、明示的な参照ボックスキーワード(margin-box、padding-box、content-box、border-box)、および異なるシェイプタイプ間のアニメーション機能。従来の関数はシェイプタイプ間で補間できません。古い関数ではpolygon()からcircle()に遷移できませんが、shape()はこれをサポートしています。

shape()を使用してポリゴンと円の間でアニメーションできますか?

はい。従来のpolygon()関数では、同じ頂点数の2つのポリゴン間でのみアニメーションできました。shape()では、座標値が補間に対して互換性がある限り、サポートされている任意の2つのシェイプタイプ間でアニメーションできます。このジェネレータでアニメーションフレンドリーモードを有効にすると、生成された値がシェイプ間のスムーズなCSS遷移に互換性のある構文を使用することを確認できます。

shape-outsideとclip-pathではどの参照ボックスを使用すべきですか?

shape-outsideの場合、デフォルトの参照ボックスはmargin-boxですが、テキストはマージンやボーダーに拡張されるのではなくパディング領域に回り込むべきであるため、通常padding-boxの方が適切です。clip-pathの場合、デフォルトはborder-boxで、ボーダーを含む要素をクリップします。content-boxはパディングとボーダーを除外してコンテンツ領域のみをクリップしたい場合に便利です。選択は、シェイプに要素のスペーシングを含めるかどうかに依存します。

CSS shape()関数をサポートしているブラウザは?

shape()関数はBaseline 2026で、Chrome 139+、Edge 139+、Safari 18.2+でサポートされています。Firefoxはバージョン138の時点でshape()をサポートしていません。本番環境では、常にshape()宣言の前に従来のシェイプ関数(polygon()、circle()など)またはclip-path: noneを使用したフォールバック宣言を含めてください。フォールバックにより、すべてのブラウザでスタイリングが機能し、利用可能な場所でshape()の拡張が適用されます。

関連ツール

その他のcssツール

こちらもお試しください

こちらもお試しください