migration.md 3.47 KB
Newer Older
1
2
3
4
5
---
layout: page
title: Migrating to v4.x.x
---

Mark Otto's avatar
Mark Otto committed
6
## Summary
7

Mark Otto's avatar
Mark Otto committed
8
For a broader overview, see [what's new](http://blog.getbootstrap.com/DEAD-LINK-FIX-ME-PLEASE) in the v4.0.0 release announcement.
9
10

- Dropped IE8 support—v4 is now only IE9+. For sites needing IE8, use v3.
Mark Otto's avatar
Mark Otto committed
11
- Dropped iOS 6 support.
12
- Added official support for Android v5.0 Lollipop's Browser and WebView. Earlier versions of the Android Browser and WebView remain only unofficially supported.
13
14
15
16
17
18
19
- Switched from `px` to `rem` as our primary unit in CSS.
- Media queries are now in `em`s.
- Global font-size increased from `14px` to `16px`.
- Dropped panels, thumbnails, and wells for a new component, cards.
- Switched from LESS to SCSS for our source CSS files.
- Added a new grid tier for ~`480px` and below.
- Dropped Glyphicons icon font.
20
- Dropped the Affix jQuery plugin. We recommend using a `position: sticky` polyfill instead. [See the HTML5 Please entry](http://html5please.com/#sticky) for details and specific polyfill recommendations.
21
- Refactored nearly all components to use more unnested classes instead of children selectors.
22
- Non-responsive usage of Bootstrap is no longer supported.
23
- Dropped the online Customizer in favor of more extensive setup documentation.
24
- Replaced the separate optional theme with...
25

26
## Major class changes
27

28
29
This table shows the style changes between v3.x.x and v4.0.0.

30
31
| Bootstrap 3.x.x | Bootstrap 4.0.0 |
| --- | --- |
32
33
34
| Pager's `.previous` | `.pager-prev` |
| Pager's `.next` | `.pager-next` |
| Carousel's `.item` | `.carousel-item` |
35
36
| Tabs | |
| Pills | |
37
| Buttons | |
38
39
40
41

## What's new
We've added new components and changed some existing ones. Here are the new or updated styles.

42
43
44
45
| Component | Description |
| --- | --- |
| Cards | New, more flexible component to replace v3's panels, thumbnails, and wells. |
| New navbar | Replaces the previous navbar with a new, simpler component. |
46
| New progress bars | Replaces the old `.progress` `<div>` with a real `<progress>` element. |
47
| New table variants | |
48
| New utility classes | |
49

50
51
TODO: audit new classes that didn't exist in v3

52
53
54
## What's removed
The following components have been removed in v4.0.0.

55
56
| Component | Removed from 3.x.x | 4.0.0 Equivalent |
| --- | --- | --- |
57
58
59
| Panels |  | Cards |
| Thumbnails |  | Cards |
| Wells |  | Cards |
60
| Justified navs | | |
61

62
63
TODO: audit classes in v4 that aren't present in v4

64
65
66
67
68
69
The following deprecated Less/SCSS variables have been removed in v4.0.0:
* `@screen-phone`, `@screen-tablet`, `@screen-desktop`, `@screen-lg-desktop`. Use the more abstract `$screen-{xs,sm,md,lg,xl}-*` variables instead.
* `@screen-sm`, `@screen-md`, `@screen-lg`. Use the more clearly named `$screen-{xs,sm,md,lg,xl}-min` variables instead.
* `@screen-xs`, `@screen-xs-min`. The extra small breakpoint has no lower bound, so these variables were logically absurd. Reformulate your expression in terms of `$screen-xs-max` instead.
* `@grid-float-breakpoint`

Mark Otto's avatar
Mark Otto committed
70
71
72
73
74
75
## Misc notes to prioritize

- Removed the `min--moz-device-pixel-ratio` typo hack for retina media queries
- Dropped `.hidden` and `.show` because it interferes with jQuery's `$(...).hide()`.
- Change buttons' `[disabled]` to `:disabled` as IE9+ supports `:disabled`. However `fieldset[disabled]` is still necessary because [native disabled fieldsets are still buggy in IE11](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset#Browser_compatibility).

76
77
TODO: audit list of stuff in v3 that was marked as deprecated

78
## Additional notes
79
- Removed support for styled nested tables (for now)