Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v4 #17021

Closed
wants to merge 6,124 commits into from
Closed

v4 #17021

wants to merge 6,124 commits into from

Conversation

mdo
Copy link
Member

@mdo mdo commented Aug 19, 2015

Bootstrap 4

This is the primary pull request for developing and shipping Bootstrap 4. You should know a few things coming into this:

  • Everything here should be considered a work-in-progress (we're in the alpha release stage).
  • The list of todos will change as we get closer to shipping.
  • There is no specific ship date for the final v4 release at this time.
  • Nothing is guaranteed to be part of v4 until our first beta release.
  • Should you wish to contribute, please open small pull requests for specific open tasks to the v4-dev branch.
  • Have a feature request? Check here first, then open a new issue if it hasn't been addressed below.

Heads up! This thread has been locked to contributors. Please use issues for questions, comments, and feedback about particular changes. We'll cross reference them here as they come up.

Read the v4 alpha announcement blog post for more details on these changes and some of the open questions we still have to answer.

Big picture

We've got a number of big changes coming in v4. To name a few:

  • Move from Less to SCSS.
  • Refactor grid system to utilize five tiers (xs, sm, md, lg, and xl), adding a ~480px tier.
  • Remove all previously deprecated features, classes, and variables.
  • Drop IE8 support.
  • Replace wells, thumbnails, and panels with a new component, cards.
  • Drop Glyphicons.
  • Add flexbox variation for grid and components, flipping between them via variables.
  • Add some custom form controls (from http://wtfforms.com).
  • Replace media queries with media query mixins per Media query mixins #13014.
    • Replace standard width uses
    • Replace all @grid-float-breakpoint uses
  • Modularize all our global resets into a single SCSS file called Reboot.
  • Update build tools to create custom compiled builds of Bootstrap's CSS and JS instead of using a web-based Customizer.
    • Everything (default)
    • Everything with flexbox enabled
    • Just the grid
    • Just the Reboot
  • Find an easy-to-use, performant spinner to include with Bootstrap.

We also have some super ambitious nice to haves:

  • Add a script to publish individual components to individual repos?
  • Move to Gulp from Grunt?
  • Form validation polyfill?

What about v3?

We will continue to support Bootstrap 3, but only for critical bug fixes and documentation updates. No new features will be added, and nothing will be removed. If you need IE8 support, Bootstrap 3 has your back (or you can go out of your way to re-implement it in v4).

Be aware that we will set a reasonable date in the future to completely discontinue v3 support.


Feature breakdown

Here's the breakdown by feature/component of the updates we've made to v4, as well as some that are still todo.

CSS

Global

Variables and mixins

Grid system

Type

Code

Utilities

Tables

Forms

Labels

Inputs

Validation and states

Layout

Misc

  • Remove most of the <legend> styling
  • Sync icons between custom forms and form validation states.

Buttons

Button groups

Glyphicons

  • Remove Glyhpicons
    • Add instructions for implementing Font Awesome
    • Add instructions for implementing Octicons
    • Add instructions for implementing a third option, if there is one?

Alerts

Breadcrumb

Carousel

Dropdown

  • Make carets from pseudo selectors (generated content). (Nullifies Make better use of dropdown caret size variables #11142)
  • If dropdowns aren't getting autopositioning, add new dropdown alignment classes—left and right, and perhaps for top and bottom too?
  • Drop the deprecated .dropdown-menu.pull-right styles. We have .dropdown-menu-right/-left now.

Input groups

Jumbotron

  • Abstract some jumbotron styles-e.g. type sizes—to new utility classes (like .display-1).
  • Turn remaining Jumbotron styles—large gray background and large padding—into more utilities?

Labels

Modal

Nav

Navbar

Panels

  • Drop for cards.

Popover/tooltip

  • Fix inconsistency?: .tooltip-arrow vs. Popover's .arrow
  • Don't call content function twice: Popover's content function is executed twice #12563
  • Document Tether dependency clearly in the docs.
  • Convert tooltip's arrows to generated CSS content via :before/:after.

Progress

List group

  • Rename a.list-group-item to .list-group-item-link

JS

Global

Affix

  • Drop affix.
  • Replace with a position: sticky polyfill?

Alert

Buttons

  • Re-think button plugin
    1. Separate the checkbox and radio functionality from the rest and make esp. checkboxes not require .btn-groups to support my second point.
    2. Drop the single toggle functionality. Checkbox is exactly that but more advanced?
    3. Replace stateful functionality with only the loading state.
  • Have Button plugin listen for and react to change event of associated <input>s? have Button plugin listen for & react to change event of associated <input>s? #13261

Carousel

Collapse

Dropdowns

Scrollspy

Tab

Tooltips

Popovers

Docs

  • Host previous version—perhaps we put v4 at getbootstrap.com/v4/ so URLs don't break?
    • Look into possible Jekyll plugins for redirect some old links
  • Revisit CSS and Components docs page split.
  • Combine JS and CSS versions of components (dropdowns, tabs, buttons, alerts)
  • Find a way to remove some of our callouts—way too many gotchas and notes and shit.
  • Further repo organization cleanup with consolidated tests directory? Reorganize test files #12291
  • Add docs to educate folks about autoprefixer and mixins: Autoprefixer (fixes #12452) #12670.
  • Improve and simplify getting started docs a la Pure
  • Improve docs for installing via npm, Bower, Git clone, CDN, and download
  • Nuke or revamp the variables and mixins docs to avoid duplication and staleness
  • Remove compatibility= 'ie8' from clean-css
  • Remove html5shiv and respond.js from docs?
  • Update minium Firefox version in autoprefixer to >= 31 (latest ESR). See Update the Firefox ESR version #14981.
  • Write Best Practices docs.
  • Write a Learn & Extend or Approach section.
  • Replace basic Jekyll search with something more comprehensive.

Customizer

  • Drop it entirely since folks are building better community-led ones.

Examples

@twbs twbs locked and limited conversation to collaborators Aug 19, 2015
@mdo mdo added the v4 label Aug 19, 2015
gburton referenced this pull request in gburton/CE-Phoenix Sep 1, 2015
Remove Glyphicon in favour of FontAwesome
mdo and others added 26 commits December 30, 2017 18:01
The download link for Entypo (on its website) is invalid. It's a Dropbox link which now results in a 403 error. The website was last updated in 2015 (as seen in the footer).
* Base the outline button :active color on the background, fixing a contrast issue

* Only apply focus outline to active when it's focused
This commit allows nested structures for accordions. Also a part of
the documentation about data-children is removed because this
functionality didn't work and it's not applicable anymore.

Tests with the collapse accordion are also a bit adjusted to the new
situation.
The append and prepend classes vertically aligned items in the center
For textareas this meant the addon would aling vertically instead of stretch and have it's contents vertically aligned
these changes fix that so everything is aligned how it should be
Johann-S and others added 29 commits March 21, 2018 12:15
This reduces duplication and the chances to forget to update something.
While the old one will keep working, better switch to the new one.
Removes the .justify-content-between from a navbar form example given it's the default style. Instead, mention how to adjust this and link to flex utils.
1. It's == "it is"

2. The subject of the sentence is "Only one" (not "these") so the verb must agree with it.

Feel free to do nothing with this change, use it, etc - I just saw this while reading through the code.
@mdo mdo closed this Apr 1, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.