migration.md 8.02 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
- `$enable-grid-classes` doesn't disable the generation of container classes anymore [See #29146](https://github.com/twbs/bootstrap/pull/29146)
41
- 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)
42
43
- 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()`.
44

45
## JavaScript
46

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

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

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

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

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

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

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

Martijn Cuppens's avatar
Martijn Cuppens committed
64
- [RFS]({{< docsref "/getting-started/rfs" >}}) enabled for automated font size rescaling. [See #29152](https://github.com/twbs/bootstrap/pull/29152)
65
- Reset default horizontal `padding-left` on `<ul>` and `<ol>` elements from browser default `40px` to `2rem`.
Mark Otto's avatar
Mark Otto committed
66
- Simplified table styles (no more 2px border on `thead > th` elements) and tightened cell padding.
67
- Dropped `.pre-scrollable` class. [See #29135](https://github.com/twbs/bootstrap/pull/29135)
68
- `.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)
69
- Drop `.text-justify` class. [See #229793](https://github.com/twbs/bootstrap/pull/29793)
70

71
## Forms
72

Mark Otto's avatar
Mark Otto committed
73
74
75
76
77
78
- 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.
79
  - New checks now appear larger by default for improved usability.
Mark Otto's avatar
Mark Otto committed
80
  - Dropped `.custom-control` and associated classes.
81
  - Renamed most `$custom-control` variables to `$form-control` ones.
Mark Otto's avatar
Mark Otto committed
82
83
- Combined native and custom selects into `.form-select`.
  - Dropped `.custom-select` and associated classes.
84
85
86
87
88
89
  - 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
90
91
92
- 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.
93
- Dropped `.form-text` as existing utilities cover this use class's former use case (e.g., `.mt-2`, `.text-small`, and/or `.text-muted`).
94

95
## Components
96

97
98
99
100
### Disabled states

- Disabled states of the buttons, close button, pagination link & form range now have `pointer-events: none` added. This simplifies our codebase and makes it easier to override active states in CSS. [#29296](https://github.com/twbs/bootstrap/pull/29296).

101
### Alerts
102

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

105
### Badges
106

107
Badges were overhauled to better differentiate themselves from buttons and to better utilize utility classes.
108

109
110
111
- **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
112

113
114
115
116
### Cards

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

117
118
119
120
### Jumbotron

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

121
122
123
124
### 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.

125
126
127
128
### Pagination

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

129
130
131
132
133
134
135
136
### Popovers

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

### Tooltips

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

137
138
139
140
## Accessibility

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

141
## Utilities
142

143
- Renamed `.text-monospace` to `.font-monospace`
144
- 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).
145
- New `line-height` utilities: `.lh-1`, `.lh-sm`, `.lh-base` and `.lh-lg`. See [here]({{< docsref "/utilities/text#line-height" >}}).
146
- Added `.bg-body` for quickly setting the `<body>`'s background to additional elements.
147
148
- **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
149

150
151
152
153
## Docs

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

154
## Build tools