View on GitHub
Bootstrap5 への移行
Bootstrap のソース、ドキュメント、およびコンポーネントの変更を要約し、具体的な変更内容を記すことで、v4 から v5 への移行をサポートします。
On this page
v5.0.0-beta1
RTL
RTL は、まだ実験段階でユーザのフィードバックを受けて改善します。 改善点があれば イシュー をオープンしてください。
Sass
ユーティリティやミックスインで使っている水平方向の変数は、より一貫性のある名前に変更します。left と right を start と end に変更します。
Components
.dropleftと.droprightを.dropstartとdropendに変更.dropdown-menu-*-leftと.dropdown-menu-*-rightを.dropdown-menu-*-startと.dropdown-menu-*-endに変更.bs-popover-leftと.bs-popover-rightを.bs-popover-startと.bs-popover-endに変更.bs-tooltip-leftと.bs-tooltip-rightを.bs-tooltip-startと.bs-tooltip-endに変更.carousel-item-leftと.carousel-item-rightを.carousel-item-startと.carousel-item-endに変更
Utilities
.left-*と.right-*を.start-*と.end-*に変更.float-leftと.float-rightを.float-startと.float-endに変更.border-leftと.border-rightを.border-startと.border-endに変更.rounded-leftと.rounded-rightを.rounded-startと.rounded-endに変更.ml-*と.mr-*を.ms-*と.me-*に変更.pl-*と.pr-*を.ps-*と.pe-*に変更.text-leftと.text-rightを.text-startと.text-endに変更
ブレイクポイント用クラスも同様 (例. .text-md-left の代わりに .text-md-start)
Mixins
border-left-radius()とborder-right-radius()をborder-start-radius()とborder-end-radius()- だけでなく相対的なクラスも同様 (例..border-bottom-left-radiusの代わりに.border-bottom-start-radius)caret-left()とcaret-right()をcaret-start()とcaret-end()—caret()ミックスインの引数もleftとrightからstartとendに変更
Variables
- パンくずの RTL 対応で新しい
$breadcrumb-divider-flippedを追加 $navbar-brand-margin-rightを$navbar-brand-margin-endに変更$pagination-margin-leftを$pagination-margin-startに変更$form-check-padding-leftを$form-check-padding-startに変更$form-switch-padding-leftを$form-switch-padding-startに変更$form-check-inline-margin-rightを$form-check-inline-margin-endに変更$form-select-feedback-icon-padding-rightを$form-select-feedback-icon-padding-endに変更
JavaScript
- JavaScript プラグインのデータ属性には全て名前空間が付与され Bootstrap 機能を区別できるように変更。例えば、
data-toggleはdata-bs-toggle - Popper.js を v2.x に更新:
- Tooltip/Popover や Dropdown プラグインから
offsetオプションを削除。popperConfigパラメータで実現可能 fallbackPlacementオプションはfallbackPlacementsに変更
- Tooltip/Popover や Dropdown プラグインから
Sass
- Sass スケールカラーとの衝突を防ぐため
scale-color()関数はshift-color()に変更
Utilities
- 垂直/水平方向のポジショニングに
.translate-middle-xと.translate-middle-yを追加
Components
Breadcrumbs
- デフォルトのアピアランスから
padding、background-color、border-radiusを削除 - コンパイルなしでカスタマイズできるように CSS 変数
--bs-breadcrumb-dividerを追加
Toasts
- Toasts は
.toast-containerの中で positioning utilities を使って ポジショニング 可能に
v5.0.0-alpha3
Browser support
- Microsoft Edge レガシー版のサポートを終了。詳細は Browser Support を参照
Sass
color-level()と$theme-color-intervalで機能していたカラーシステムを削除し、新しいカラーシステムを採用。lighten()とdarken()関数はtint-color()とshade-color()に置換。これらの関数は、明度を一定変更する代わりに、色を白または黒のいずれかと混合。scale-color()(beta-1ではshift-color()に変更)は、パラメータが正か負かに応じて、色を濃くするか陰影を追加 #30622- スピナーは、アニメーションの速度を落とし、「prefers-reduced-motion:reduce」を尊重 #31882
Reboot
- スクロール動作を適用する
$enable-smooth-scrollを導入。スムーズスクロールをグローバルに適用し、prefers-reduced-motionメディアクエリを使って動きの縮小を求めるユーザーを除く #31877
Buttons
- CSSグリッドクラスを優先して
.btn-blockを削除 ボタンに.btn-blockを適用する代わりに、ボタンのグループが親の.d-gridにラップ、間隔に.gap-*を使用可能に。 個々の「Block buttons」には.w-100を追加
Forms
- Missing border radius on input group with validation feedback bug は、バリデーション機能を持つ入力グループに
.has-validationを追加して修正 - Floating label をフォームコンポーネントに追加 Floating label のページを参照
- ファイル入力は
.form-controlの使用で、JavaScript や追加の HTML、クラスが不要に - カラーインプット
.form-control-colorにcursor:pointerを追加
Utilities
- Text utilities:
- フォントサイズ用に
.fs-*ユーティリティを追加 (RFS を有効にした場合)。これらは HTML のデフォルト見出しと同じレベル(1-6、大から小)を使用、Sassマップで変更可能 - 簡潔さと一貫性のために
.fw-*のように.font-weight-*ユーティリティを使用 - 簡潔さと一貫性を保つために、
.font-style-*ユーティリティを.fst-*に変更
- フォントサイズ用に
- ユーティリティを表示するために
.d-gridを追加 - CSS グリッドレイアウト用の
gapユーティリティ (.gap) を追加
v5.0.0-alpha2
Sass
border-radiusmixin にデフォルトのパラメータを追加。#31571xsブレークポイントのみ次のブレークポイントを更新。#31500box-shadowmixin がnullを許容し、引数からnoneを削除。#30394
Docs
- “Nas” を “Navs & Tabs” に変更
- “Screen readers” ページを “Visually hidden” に、ファイル名を
visually-hiddenに変更 - “Checks” ページを “Checks & radios” に、ファイル名を
checks-radiosに変更 - check/radio で構成されたボタングループのページを改善
- ドキュメントのスキップリンクを改善
- ドキュメントのナビゲーションを再設計、モバイルでのタップ領域を拡大、サブナビゲーションを合理化
- #31114: アクセシビリティに関するフォームのドキュメントを改善
Layout
- Container 水平パディングが
.rowのガターサイズに合わせて更新 - #31439 のガターサイズに合わせて更新。グリッドのプロパティに重複があったため、
flex: 1 0 100%を削除
Reboot
font-weightのデフォルト値nullを使用し、text-alignを継承するようにthスタイリングを更新
Colors
- カラーコントラスト比を 3:1 から 4.5:1 に変更
- コントラストカラーを
$gray-900から$blackに変更 $green(およびテーマの別名$success) のコントラストが最小値になるように改善 (#28a745から#198754に変更)$cyan(およびテーマの別名$info) をより鮮やかな色に改善 (#17a2b8から#0dcaf0に移行)
Forms
- #31383: Checkbox と radio のサイズを
1.25emから1emに変更。$font-size-baseカスタム値でスケーリングを改善
Components
Badges
- #31132: Badges のパディングを
.25em/.5emから.35em/.65emに変更
Buttons
- #30639:
button-variant()mixin の引数で Button の disalbed 状態を変更可能に - #30989: Button の hover/active 状態の視認性向上のためコントラストを改善
Carousel
- Carousel の chevron アイコンを Bootstrap Icons の SVG に置換
.carousel-darkvariant を新規追加
Close button
- 名称は
.closeからより一般的な.btn-closeに変更 - Close buttons は HTML で
×の代わりにbackground-image(埋込み型 SVG) を使用, マークアップに触れることなく簡単にカスタマイズ可能に - カスタマイズのための新しい変数を追加
.btn-close-whiteを追加し、ダークな背景でfilter: invert(1)を使ってアイコンのコントラストを確保
Collapse
- #31346: Aaccordions のスクロールアンカーを削除
Dropdowns
.dropdown-menu-darkを追加、関連してダークテーマの Dropdowns 変数も追加$dropdown-padding-x変数を追加- ダークテーマの Divider コントラストを改善
Navs
- #31035:
.nav-linkのfont-size,font-weight,color,:hovercolorにnullを追加
Pagination
- Pagination リンクに
transitionを追加 #31396
Popovers
allowListへのwhiteListオプション
Toasts
- #31109: 標準の Toasts duration を 5 秒に変更
- #31155: Toasts が表示される前に
timeoutをクリア - #31381: Toasts から
overflow: hiddenを削除、calc()関数を使って適切なborder-radiusに置換 - Toasts のカスタマイズ例をドキュメントに追加
Tooltips
allowListへのwhiteListオプション
Helpers
- Responsive embed は ratio helpers に。CSS 変数を使って新しいクラス名でビヘイベアも改善
- アスペクト比用のクラス名は
byからxに変更。例えば.ratio-16by9なら.ratio-16x9 .embed-responsive-itemを削除、 より単純な.ratio > *セレクターを使用。これ以上のクラスは不要、ratio helper は任意の HTML 要素で機能$embed-responsive-aspect-ratiosの Sass マップは$aspect-ratiosに変更、key: valueペアの形に簡略化- CSS 変数が生成され、Sass マップ値に含まれるようになった。
--aspect-ratioを使って任意の custom aspect ratio を作成
- アスペクト比用のクラス名は
- “Screen reader” クラスは “visually hidden” classes に変更
- Sass ファイルは
scss/helpers/_screenreaders.scssからscss/helpers/_visually-hidden.scssに変更 .sr-onlyと.sr-only-focusableは.visually-hiddenと.visually-hidden-focusableに変更sr-only()とsr-only-focusable()mixins はvisually-hidden()とvisually-hidden-focusable()に変更
- Sass ファイルは
Utilities
- #31280:
0、50%、100%の値を含んだtop、right、bottom、leftのために position utilities を追加- 要素のセンタリングのために
translateutilities を追加 - これらを示すための例を追加
- 要素のセンタリングのために
- #31484:
border-widthutility を追加 - #31473:
.d-noneの記述箇所を変更し優先度を向上 .text-monospaceを.font-monospaceに変更- 非推奨の
.text-hideを削除 - 新しい
line-heightutilities:.lh-1、.lh-sm、.lh-base、.lh-lg。 詳細はこちら
v5.0.0-alpha1
ブラウザサポート
Bootstrap5 のサポートブラウザ詳細は、ブラウザとOS を参照してください。v4 以降、ブラウザのサポートに変更があったものは以下の通りです。
- Internet Explorer 10 と 11 のサポート終了
- Firefox ? のサポートを終了
- Safari ? のサポートを終了
- iOS Safari ? のサポートを終了
- Chrome ? のサポートを終了
- Android ? のサポートを終了
Sass
Sass とコンパイル済みの CSS を変更しました。
hover、hover-focus、plain-hover-focusそしてhover-focus-activemixins を削除。 今後は通常の CSS を使用 #28267- 非推奨だった mixins の削除
float()form-control-mixin()nav-divider()retina-img()text-hide()(関連するクラス.text-hideも削除)visibility()form-control-focus()
- Todo: New variables?
- Todo: Rearrange forms source files (under
scss/forms/) - Todo: Rearrange grid source files (under
scss/grid/) - 印刷スタイルと
$enable-print-styles変数を削除。印刷用クラスはそのまま #28339 color()、theme-color()、gray()関数を削除 #29083theme-color-level()関数をcolor-level()に変更し$theme-colorだけでなく任意色の指定が可能に #29083$enable-grid-classesは container クラスの生成に影響しない #29146- 簡潔さのために
$enable-prefers-reduced-motion-media-queryを$enable-reduced-motionに、$enable-pointer-cursor-for-buttonsを$enable-button-pointersに変更 - いつかのコンポーネントから
line-heightを削除、button-size()とpagination-size()はline-height#29271 button-variant()mixin は 3 つのボタンのステータスに対して背景色の指定可能、color-contrast()によってコントラストが確保されたテキスト色を提供button-outline-variant()mixin で$active-colorが指定可能、標準ではcolor-contrast()によってコントラストが確保されたテキスト色を提供- 簡潔さのため Sass マップのマージを省略、
$theme-colorsのようにすべての値を定義する必要あり。詳細は Sass maps 参照 - YIQ色空間と関係なくなったので
color-yiq()関数と関連する変数をcolor-contrast()に変更 #30168$yiq-contrasted-thresholdは$min-contrast-ratioに変更$yiq-text-dark、$yiq-text-lightはそれぞれ$color-contrast-dark、$color-contrast-lightに変更
- 簡潔さのため
gradient-bg()は$colorのみ受付可 .bg-gradientクラスが代用できるためbg-gradient-variant()mixin を削除media-breakpoint-down()は次のブレイクポイントの代わりにブレイクポイント自体を使う。例えばブレイクポイントlgよりも小さいビューポートの場合はmedia-breakpoint-down(md)ではなくmedia-breakpoint-down(md)を使うmedia-breakpoint-between()mixin の2番目のパラメータも同様にブレイクポイント自体を使う。smとlgのブレイクポイント間のビューポートであればmedia-breakpoint-between(sm, md)ではなくmedia-between(sm, lg)を使う
JavaScript
JavaScript とコンパイル済みの JS を変更しました。
- jQuery の依存関係を削除し、プラグインを通常の JavaScript に書き換え
_getInstance()→getInstance()のような静的メソッドのアンダースコアを削除
カラーシステム
色のコントラストを改善し、より広範囲な色のセットを提供するためにカラーシステムを更新しました。
- AAレベルのコントラストを確保するために、青とピンクのベースカラー (
-500) を更新 - それぞれの色に明色・暗色を追加し、Sass 変数として新しい9色を提供
- カラーシステムを提供するために
tint-color()とshade-color()関数を追加
グリッドシステムとレイアウト
レイアウトツールとグリッドシステムを変更しました。
- ユーティリティクラスで代用できる
.mediaコンポーネントを削除 #28265 - グリッドカラムから
position: relativeを削除 - 水平方向のパディングは烈ではなく、行直下にあるこ要素に適用
- コードの簡潔化
- カラムクラスは単独で使用可能、
.rowの外で使用しても水平方向のパディングは追加なし
- レスポンシブな gutter クラスを使って水平・垂直、2つの方向で gutter 幅を制御可能
- gutter 幅は
rem単位になり、30pxから1.5rem(24px) に減少 bootstrap-grid.cssはグローバルなボックスサイズをリセットせず、box-sizing: border-boxをカラムにのみ適用。これにより、各要素にbox-sizing: border-boxが適用されていなくても、グリッドシステムを利用可能
コンテンツ、リブート、その他
リブート、タイポグラフィ、テーブルなどを変更しました。
- フォントサイズを自動化する RFS が標準で有効 #29152
<ul>と<ol>の水平方向パディングをブラウザ標準の40pxから2remに変更- テーブルのスタイルを簡素化し、セルのパディングを小さく
- 入れ子になったテーブルのスタイルを非継承
.thead-lightと.thead-darkを削除、すべての表要素 (thead,tbody,tfoot,tr,thandtd) に使用可能な .table-* クラスで代用可能table-row-variant()はtable-variant()に変更し$color(カラー名) と$value(カラー名) のパラメータが指定可能、ボーダーカラーとアクセントカラーは、テーブルの変数に基づいて自動的に計算- テーブルセルのパディング変数を
-yと-xに分離 .pre-scrollableクラスを削除 #29135.text-*ユーティリティは、リンクで自動追加されたホバーとフォーカスを削除、.link-*ヘルパークラスで代用可能 #29267.text-justifyクラスを削除 #229793
タイポグラフィ
- 新しい
$display-font-sizesSass マップのために$display-*変数を削除 - ひとつの
$display-font-weightのための複数の$display-*-weight変数を削除 - 2つの
.display-*ヘディングスタイルを追加、.display-5と.display-6 - 既存の見出しのサイズを変更し、一貫性のある
font-sizeに
フォーム
- フォームのドキュメントを独立したトップレベルのセクションに配置
- 古いフォームページをいくつかのサブページに分割
- input group のドキュメントを新しいフォームセクションに移動
- input group スタイルを含めて
scss/forms/にある Sass を再編成 - ネイティブとカスタムのチェックボックスとラジオボタンを単一の
.form-checkクラスに統合- 新しいチェックボックスは
em/font-sizeまたは指定サイズをサポート - 新しいチェックボックスが標準で大きく表示され、使い勝手が向上
.custom-controlと関連するクラスの削除- ほとんどの
$custom-control変数の名前を$form-controlに変更
- 新しいチェックボックスは
- ネイティブセレクトとカスタムセレクトを
.form-selectクラスに統合.custom-selectと関連するクラスを削除- ほとんどの
$custom-select変数の名前を$form-selectに変更
- ファイル入力コンポーネントを更新、全体的なデザインを統一し HTML を改良
- 視覚的なバグを解決するため
.form-fileのマークアップをリファクタリング、CSS の代わりに HTML を使ってボタンのテキストを変更可能 - ネイティブの
.form-control-fileと.form-control-rangeコンポーネントを削除 .custom-fileを.form-fileに変更 (変数含む)focusおよび:disabledスタイルのサポートを追加
- 視覚的なバグを解決するため
.custom-rangeを.form-rangeに変更 (変数含む)- マージン用の
.form-groupを削除 (ドキュメント例を.mb-3に置換) - 柔軟なグリッド gutter のために
.form-rowを削除 - 柔軟なグリッドのために
.form-inlineを削除 .input-groupの.form-control-plaintextサポートを削除.input-group-appendと.input-group-prependを削除、ボタンと.input-group-textを input group の子要素として追加するだけでOK- フォームラベルは
.form-labelクラスが必要、Sass 変数でフォームラベルのスタイルを設定可能 #30476
コンポーネント
- アラート、パンくず、カード、ドロップダウン、リストグループ、モーダル、ポップオーバー、ツールチップの
paddingを$spacer変数に基づいて統一 #30564
Disable な状態
- ボタン、閉じるボタン、ページネーション、フォームの無効状態に
pointer-events: noneが追加、これによりコードベースが簡素化され、CSS でアクティブな状態をオーバーライド可能 #29296
Alerts(アラート)
- Todo: Remove auto-darkening of
<hr>elements in.alert-*class variants.<hr>s usergba()for their color, so these should naturally blend anyway.
Badges(バッジ)
バッジは、ボタンとの差別化を図り、ユーティリティクラスをより活用できるように改善されました。
- Todo: Removed and replaced
.badgemodifier classes with background utility classes (e.g., use.bg-primaryinstead of.badge-primary) - Todo: Removed
.badge-pillfor the.rounded-pillutility class - Todo: Removed badge’s hover and focus styles for
a.badgeandbutton.badge.
Buttons(ボタン)
- チェックボックス/ラジオボタンのトグルは JavaScript プラグインから削除され、CSS のみで実装。form checks 参照。input に
.btn-checkクラスを追加することができ、.btnとテーマクラスを利用可能 #30650.
Cards(カード)
- カード烈を削除し Mansonry gird を採用 #28922
- カードデッキを削除してグリッドを採用、レスポンシブな動作と柔軟性の向上
Jumbotron(ジャンボトロン)
- Jumbotron コンポーネントを削除、ユーティリティクラス
.bg-lightと.p-*で表現可能
Navbars(ナブバー)
- ナビバーは、container 内に設置が必要。これにより、スペーシング要件が大幅に簡素化され、v4 でレスポンシブコンテナ用に追加した大規模な CSS オーバーライドが不要に
Pagination(ページネーション)
- ページネーションのリンクにカスタマイズ可能な
margin-leftが追加され、分離したときに四隅が動的に丸められるように
Popovers(ポップオーバー)
.arrowクラスが.popover-arrowに変更
Tooltips(ツールチップ)
.arrowクラスが.tooltip-arrowに変更
Accessibility(アクセシビリティ)
.sr-only-focusableは.sr-onlyを必要としない #28720.
Utilities(ユーティリティ)
.text-monospaceクラスは.font-monospaceに変更- ブレイクポイントごとのレスポンシブユーティリティ order 数を減少、最大
.order-12から.order-5に #28874. line-heightに関するユーティリティ、.lh-1,.lh-sm,.lh-base,.lh-lg追加。 詳細は line-height 参照<body>背景を素早くセットできるように.bg-bodyを追加- Todo: Drop
.text-hideas it’s an antiquated method for hiding text that shouldn’t be used anymore - Todo: Split utilities into property-value utility classes and helpers
- ネガティブマージは標準で無効。
$enable-negative-margins: trueで有効化できるがファイルサイズがかなり大きくなる可能性あり
Docs(ドキュメント)
- “Wall of browser bugs” の内容が陳腐化したので削除
Build tools(ビルドツール)
devDependenciesをすべて更新- 現時点での Node.js 最新版 10 と 12 のみをサポート