migration.md 7.39 KB
Newer Older
1
---
Mark Otto's avatar
Mark Otto committed
2
layout: docs
3
4
title: Migrating to v5
description: Track and review changes to the Bootstrap source files, documentation, and components to help you migrate from v4 to v5.
5
group: migration
XhmikosR's avatar
XhmikosR committed
6
aliases: "/migration/"
7
toc: true
8
9
---

10
## Browser support
11

12
See the browser and devices page for details on what is currently supported in Bootstrap 5. Since v4, here's what's changed to our browser support:
13

14
15
16
17
18
19
- Dropped support for Internet Explorer NN
- Dropped support for Firefox NN - MM
- Dropped support for Safari NN
- Dropped support for iOS Safari NN
- Dropped support for Chrome NN
- Dropped support for Android NN
20

21
## Sass
22

23
Changes to our source Sass files and compiled CSS.
24

Mark Otto's avatar
Mark Otto committed
25
- Removed `hover`, `hover-focus`, `plain-hover-focus`, and `hover-focus-active` mixins. Use regular CSS syntax for these moving forward. [See #28267](https://github.com/twbs/bootstrap/pull/28267).
Martijn Cuppens's avatar
Martijn Cuppens committed
26
- Remove previously deprecated mixins
27
28
  - `float()`
  - `form-control-mixin()`
Martijn Cuppens's avatar
Martijn Cuppens committed
29
  - `nav-divider()`
30
31
32
  - `retina-img()`
  - `text-hide()` (also dropped the associated utility class, `.text-hide`)
  - `visibility()`
33
  - `form-control-focus()`
34
35
36
- **Todo:** New variables?
- **Todo:** Rearrange forms source files (under `scss/forms/`)
- **Todo:** Rearrange grid source files (under `scss/grid/`)
37
- Removed print styles and `$enable-print-styles` variable. Print display classes, however, have remained intact. [See #28339](https://github.com/twbs/bootstrap/pull/28339).
38
39
- Dropped `color()`, `theme-color()` & `gray()` functions in favor of variables. [See #29083](https://github.com/twbs/bootstrap/pull/29083)
- The `theme-color-level()` function is renamed to `color-level()` and now accepts any color you want instead of only `$theme-color` colors. [See #29083](https://github.com/twbs/bootstrap/pull/29083)
40
- Line heights are dropped from several components to simplify our codebase. The `button-size()` and `pagination-size()` do not accept line height parameters anymore. [See #29271](https://github.com/twbs/bootstrap/pull/29271)
41
42
- The `button-variant()` mixin now accepts 3 optional color parameters, for each button state, to override the color provided by `color-yiq()`. By default, these parameters will find which color provides more contrast against the button state's background color with `color-yiq()`.
- The `button-outline-variant()` mixin now accepts an additional argument, `$active-color`, for setting the button's active state text color. By default, this parameter will find which color provides more contrast against the button's active background color with `color-yiq()`.
43

44
## JavaScript
45

46
Changes to our source and compiled JavaScript files.
Mark Otto's avatar
Mark Otto committed
47

48
- Dropped jQuery dependency and rewrote plugins to be in regular JavaScript.
XhmikosR's avatar
XhmikosR committed
49
- Removed underscore from public static methods like `_getInstance()``getInstance()`.
Mark Otto's avatar
Mark Otto committed
50

51
## Grid and layout
Mark Otto's avatar
Mark Otto committed
52

53
Changes to any layout tools and our grid system.
Mark Otto's avatar
Mark Otto committed
54

Mark Otto's avatar
Mark Otto committed
55
- Dropped `.media` component as it can be built with utility classes. [See #28265](https://github.com/twbs/bootstrap/pull/28265).
56
57
- **Todo:** Remove `position: relative` from grid columns
- **Todo:** Integrate CSS grid into our grid system
Mark Otto's avatar
Mark Otto committed
58

59
## Content, Reboot, etc
Mark Otto's avatar
Mark Otto committed
60

61
Changes to Reboot, typography, tables, and more.
Mark Otto's avatar
Mark Otto committed
62

Martijn Cuppens's avatar
Martijn Cuppens committed
63
- [RFS]({{< docsref "/getting-started/rfs" >}}) enabled for automated font size rescaling. [See #29152](https://github.com/twbs/bootstrap/pull/29152)
64
- Reset default horizontal `padding-left` on `<ul>` and `<ol>` elements from browser default `40px` to `2rem`.
Mark Otto's avatar
Mark Otto committed
65
- Simplified table styles (no more 2px border on `thead > th` elements) and tightened cell padding.
66
- Dropped `.pre-scrollable` class. [See #29135](https://github.com/twbs/bootstrap/pull/29135)
67
- `.text-*` utilities do not add hover and focus states to links anymore. `.link-*` helper classes can be used instead. [See #29267](https://github.com/twbs/bootstrap/pull/29267)
68

69
## Forms
70

Mark Otto's avatar
Mark Otto committed
71
72
73
74
75
76
- Rearranged form documentation under its own top-level section.
  - Split out old Forms page into several subpages
  - Moved input groups docs under new Forms section
- Rearranged source Sass files under `scss/forms/`, including moving over input group styles.
- Combined native and custom checkboxes and radios into single `.form-check` class.
  - New checks support sizing via `em`/`font-size` or explicit modifier classes now.
77
  - New checks now appear larger by default for improved usability.
Mark Otto's avatar
Mark Otto committed
78
  - Dropped `.custom-control` and associated classes.
79
  - Renamed most `$custom-control` variables to `$form-control` ones.
Mark Otto's avatar
Mark Otto committed
80
81
- Combined native and custom selects into `.form-select`.
  - Dropped `.custom-select` and associated classes.
82
83
84
85
86
87
  - Renamed most `$custom-select` variables to `$form-select` ones.
- Updated file input component with same overall design, but improved HTML.
  - Refactored `.form-file` markup to resolve some visual bugs while allowing translation and button text changes via HTML instead of CSS.
  - Dropped native `.form-control-file` and `.form-control-range` components entirely.
  - Renamed `.custom-file` to `.form-file` (including variables).
  - Added support for `:focus` and `:disabled` styles.
Mark Otto's avatar
Mark Otto committed
88
89
90
- Renamed `.custom-range` to `.form-range` (including variables).
- Dropped `.form-group` for margin utilities (we've replaced our docs examples with `.mb-3`).
- Dropped support for `.form-control-plaintext` inside `.input-group`s.
91

92
## Components
93

94
### Alerts
95

96
- **Todo:** Remove auto-darkening of `<hr>` elements in `.alert-*` class variants. `<hr>`s use `rgba()` for their color, so these should naturally blend anyway.
97

98
### Badges
99

100
Badges were overhauled to better differentiate themselves from buttons and to better utilize utility classes.
101

102
103
104
- **Todo:** Removed and replaced `.badge` modifier classes with background utility classes (e.g., use `.bg-primary` instead of `.badge-primary`)
- **Todo:** Removed `.badge-pill` for the `.rounded-pill` utility class
- **Todo:** Removed badge's hover and focus styles for `a.badge` and `button.badge`.
Mark Otto's avatar
Mark Otto committed
105

106
107
108
109
### Cards

- Removed the card columns in favor of a Masonry grid [See #28922](https://github.com/twbs/bootstrap/pull/28922).

110
111
112
113
### Jumbotron

- The jumbotron component is removed in favor of utility classes like `.bg-light` for the background color and `.p-*` classes to control padding.

114
115
116
117
### Navbars

- All navbars now require a container within. This drastically simplifies spacing requirements and removes the need for extensive CSS overrides we added for responsive containers in v4.

118
119
120
121
### Pagination

- Pagination links now have customizable `margin-left` that are dynamically rounded on all corners when separated from one another.

122
123
124
125
126
127
128
129
### Popovers

- Renamed `.arrow` to `.popover-arrow`

### Tooltips

- Renamed `.arrow` to `.tooltip-arrow`

130
131
132
133
## Accessibility

- `.sr-only-focusable` does not require `.sr-only` anymore. [See #28720](https://github.com/twbs/bootstrap/pull/28720).

134
## Utilities
135

136
- Renamed `.text-monospace` to `.font-monospace`
137
- Decreased the number of responsive order utilities per breakpoint. The highest order utility with a number now is `.order-5` instead of `.order-12`. [See #28874](https://github.com/twbs/bootstrap/pull/28874).
138
- New `line-height` utilities: `.lh-1`, `.lh-sm`, `.lh-base` and `.lh-lg`. See [here]({{< docsref "/utilities/text#line-height" >}}).
139
- Added `.bg-body` for quickly setting the `<body>`'s background to additional elements.
140
141
- **Todo:** Drop `.text-hide` as it's an antiquated method for hiding text that shouldn't be used anymore
- **Todo:** Split utilities into property-value utility classes and helpers
Mark Otto's avatar
Mark Otto committed
142

143
144
145
146
## Docs

-  Removed "Wall of browser bugs" page because it has become obsolete

147
## Build tools