CSS Border Radiusジェネレーター

丸い角を視覚的に作成して、CSSをコピーします。

あなたのデータはデバイスを離れません
20
20
20
20

プリセット

使い方

  1. スライダーをドラッグして、各角の半径を調整します。
  2. 「すべての角をリンク」を有効にして、すべてを一度に変更します。
  3. 単位(px、%、rem、em)を選択します。
  4. 「CSSをコピー」をクリックして、プロパティをクリップボードに入れます。

よくある質問

円を作るには?

すべての角を50%に設定します(「円/ピル」プリセットを使用します)。完全な円のためには、正方形の要素に適用します。

最大の半径は?

スライダーは100まで。pxでは100 pxです。%では、100%はその角で完全に丸くなることを意味します。デザインに応じて単位を変更できます。

border-radiusショートハンドを理解する

CSS border-radiusプロパティはW3C CSS Backgrounds and Borders Module Level 3で定義されている。そのショートハンドは円形コーナーに最大4つの値、楕円コーナーには(スラッシュで区切られた)最大8つの値を受け付ける。コーナーの順序は固定だ:左上、右上、右下、左下、左上から時計回り、時計盤を読むのとまったく同じ方法だ。仕様は明確だ:「左下が省略された場合は右上と同じ。右下が省略された場合は左上と同じ。右上が省略された場合は左上と同じ。」

意味
1つの値4つのコーナーすべてborder-radius: 12px
2つの値TL+BRが1番目、TR+BLが2番目border-radius: 12px 4px
3つの値TL=1番目、TR+BL=2番目、BR=3番目border-radius: 12px 8px 4px
4つの値TL TR BR BL 時計回りborder-radius: 12px 8px 4px 0
8つの値(/あり)水平半径 / 垂直半径(楕円コーナー)border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%

4つのコーナーごとのロングハンドで他のコーナーを書かずに1つのコーナーだけをターゲットにできる:border-top-left-radiusborder-top-right-radiusborder-bottom-right-radiusborder-bottom-left-radius。それぞれ1つの値(円形コーナー)または2つの値(楕円のx y)を受け付ける。

ピクセル、パーセンテージ、50%トリック

W3C仕様ではパーセンテージの解決方法を定義している:「水平半径のパーセンテージはボーダーボックスの幅を、垂直半径のパーセンテージはボーダーボックスの高さを参照する。」これは重要な結果をもたらす:border-radius: 50%は要素が正方形の場合にのみ完全な円を作る。200×100の長方形では、すべてのコーナーの50%は楕円を作る:水平半径100px(幅の半分)、垂直半径50px(高さの半分)だ。

どのユニットをいつ使うか:

ピルトリック

要素の最短辺の半分より大きいborder-radiusを設定すると、各コーナーが真の半円にクランプされ、幅に関わらずピル形状が生まれる。慣習はborder-radius: 9999pxだ。どんな現実的な要素も超えないほど大きい数であれば何でもよい。これがBootstrapの.rounded-pill50rem(〜800px)を使い、Tailwind v4のrounded-fullcalc(infinity * 1px)に解決される理由だ:どちらも同じアイデアをエンコードしている。ボックスより大きい数字はどんな要素でもピルを保証する。

楕円コーナーとオーガニックなブロブ形状

8値(スラッシュ)形式は、ヒーローイラストや装飾的な背景に人気の出てきたオーガニックで非対称な「ブロブ」形状を作るためにデザイナーが使うものだ。各コーナーはスラッシュ前に異なる水平半径、スラッシュ後に異なる垂直半径を取り、円弧に制約されない曲線を生み出す。

/* Asymmetric blob */
.blob {
  width: 280px;
  height: 280px;
  background: linear-gradient(135deg, #6366f1, #ec4899);
  border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%;
}

RTLレイアウト向けの論理プロパティバリアント

CSS Logical Properties Module Level 1は書字方向に適応する4つの論理ロングハンドを導入している:

同じコンポーネントが両方の書字方向で対称に見える必要があるときに便利だ:チャットバブルの「口元」コーナーは常に発言者の側にあるべきで、常に左側にあるべきではない。論理プロパティのショートハンドはまだないため、RTL対応のコーナーに切り替えるには4つのロングハンドをすべて個別に書く必要がある。

ボーダーが太い場合の外側エッジと内側エッジ

半径はボーダーの外側エッジに適用される。ブラウザはコーナーでボーダーが不連続に見えないよう、内側エッジの小さな同心半径を自動的に計算する。実用的な結果:2pxボーダーの16px外側半径は内側半径が約14pxになり、ボーダーがすべての方向で一定の厚さのフレームのように見える。背景色がボーダーの下に滲まずに内側エッジで止まるようにするにはbackground-clip: padding-boxを設定する。

実用的なサイズ規則

UIエレメント典型的な半径メモ
カード8-12 pxMaterial 3ミディアム = 12px;多くのデザインシステムは8〜16の間。
ボタン(コーポレート)4-8 pxわずかに角丸で遊び心なくプロフェッショナルに見える。
ボタン(コンシューマー/ピル)9999pxフレンドリーに見える;ピルトリックで固定する。
入力 / フォームフィールド4-8 pxビジュアルの一貫性のためボタン半径に合わせる。
モーダル / ダイアログ12-16 px大きいサーフェスは幼稚に見えずに大きい半径を許容する。
タグ / バッジ4px またはピル明確なスタイルの選択:シャープまたは完全丸角、中間はほぼない。
アバター50%正方形の要素に適用して完全な円を作る。
モバイルのボトムシート16〜24px(上のコーナーのみ)下のコーナーが画面の端にフラッシュしたままになるよう個別のロングハンドを使う。
ヒーローのブロブ背景8値形式例:30% 70% 70% 30% / 30% 30% 70% 70%

よくある間違い

  1. 正方形でない要素に50%を使って円を期待する。長方形の50%は楕円になる。要素を正方形に保つか、真のピルにはborder-radius: 9999pxを使う。
  2. コーナーの順序を忘れる。ショートハンドは左上から時計回りだ(TL TR BR BL)。2値形式は対角線上の反対のペアを設定するため、覚え間違いしやすい。
  3. 負の値。仕様では無効と定義されており、ブラウザは暗黙的にゼロにクランプする。コーナーが期待通りに角丸にならない場合、誤って引き算していないか確認する。
  4. 角丸の親要素から子要素がはみ出る。border-radiusを持つ要素はデフォルトではその子孫をクリップしない。子要素を角丸のエッジで止めたい場合は親要素にoverflow: hiddenを追加する。
  5. ショートハンドの前にコーナーごとのプロパティ。CSSのカスケードは順序に敏感なため、border-top-left-radiusの後にborder-radiusを書くとコーナーごとの値が上書きされる。ショートハンドを先に書き、その後にコーナーごとのオーバーライドを書く。
  6. %pxの不適切な混在。あるコーナーに50%の半径、別のコーナーに12pxを設定してもデザイナーが期待するものにはほとんどならない。1つの要素では1つの単位で統一する。
  7. テーブルとborder-collapse: collapseMDNのリファレンスは明確だ:ボーダーが折りたたまれている場合、border-radiusはテーブルまたはインラインテーブル要素には適用されない。border-collapse: separateに切り替えるか、ラッピング要素に半径を適用する。

よくある質問

画像の角が丸くならないのはなぜか?

画像がborder-radius付きのコンテナの中にあるのにコーナーが四角く見える場合、親がクリップしていない。親にoverflow: hiddenを追加する。代わりに、border-radiusを直接<img>要素に適用する方法もある。画像はこのプロパティにネイティブに対応している。

border-radiusはパフォーマンスに影響するか?

ほとんど影響しない。最新ブラウザはGPUで角丸コーナーをレンダリングし、コストは正方形のエッジとほぼ同じだ。例外は大きな要素のborder-radiusをフレームごとにアニメーションする場合(レイヤーの再コンポジットを引き起こすことがある)だが、静的な角丸コーナーは事実上無料だ。

古いブラウザでも動作するか?

はい。IE9以降のすべてのブラウザはプレフィックスなしでborder-radiusをサポートしている。論理プロパティバリアント(border-start-start-radiusなど)は新しい:Chrome 89+、Firefox 66+、Safari 15+。論理プロパティの動作が必要な古いブラウザには、フォールバックとして小さな@supportsブロックを書く。

チャットバブルはどう作るか?

4つのコーナーごとのロングハンドで3つのコーナーを角丸にして4つ目を小さくまたはシャープにする。発言者を指す「口元」だ。例えば、送信メッセージのバブル:border-radius: 16px 16px 4px 16px;。RTL対応のバブルには、書字方向に合わせて口元が反転するよう論理ロングハンドに切り替える。

ピルボタンが異なる要素幅で不均一に見えるのはなぜか?

ピルは各コーナーを最短辺の半分にクランプする。典型的なボタンでは高さになる。そのため低いボタンは小さい半径に、高いボタンは大きい半径になる。これは意図した動作だ。サイズに関わらずすべてのボタンで一定の半径を望む場合は、ピルトリックの代わりに固定のピクセル値(例:border-radius: 24px)を使う。

生成されたCSSをTailwind / Bootstrapプロジェクトにそのまま貼り付けられるか?

はい。生成されたCSSはプリプロセッサやフレームワーク依存のないプレーンな標準構文だ。Tailwind v4では、ユーティリティクラス形式を保ちたい場合、任意の値をユーティリティとして書くこともできる(rounded-[12px]rounded-[30%/70%])。

関連ツール

CSS Box Shadowジェネレーター CSSグラデーションジェネレーター CSSミニファイア