Releases: twbs/bootstrap
Releases · twbs/bootstrap
v5.0.0-alpha3
Changes
🚀 Features
- #30449: v5: Floating labels
- #30571: v5: Add
.fs-*utilities for font-size and rename font-weight/-style utilities - #31343: Adding overflow visible and scroll as utilities
- #31995: Replace
.btn-blockwith utilities - #32013: Add dedicated accordion component
- #32066: Add
.d-gridto our display utilities - #32074: Add
.gaputilities
🎨 CSS
- #30449: v5: Floating labels
- #30571: v5: Add
.fs-*utilities for font-size and rename font-weight/-style utilities - #30622: Colors rewrite
- #31343: Adding overflow visible and scroll as utilities
- #31651: Fix disabled checkbox toggle buttons
- #31657: Handle the Ubuntu sans-serif case
- #31684: Add Sass variable for CSS variable prefix
- #31687: Updated
.roundedutilities - #31700: Suppress flexbox side effects in breadcrumb
- #31826: Alert: Add
z-indexfor close button - #31839: docs: fix contrast color against
.bg-info - #31877: Apply smooth-scroll when
prefers-reduced-motion: no-preference - #31882: Slow down spinners when
prefers-reduced-motion: reduce - #31953: Fix input group border radii
- #31955: Drop custom file upload plugin in favor of CSS solution
- #31964: Remove background-clip from .btn-close
- #31993: Remove explicit heights on form elements
- #31995: Replace
.btn-blockwith utilities - #32013: Add dedicated accordion component
- #32020: Add
cursor:pointerto color inputs - #32023: Fix color input heights
- #32031: Fix
.fwutilities - #32064: Remove firefox workaround for
::file-selector-buttonmargin - #32066: Add
.d-gridto our display utilities - #32074: Add
.gaputilities - #32085: Add checks to fix color contrast issues
- #32121: Use correct value order
☕️ JavaScript
- #30740: karma: stop excluding polyfill.js from istanbul
- #31818: Check for data-interval on the first slide of carousel
- #31842: Remove
Manipulator.toggleClass - #31951: Update anchor-js to v4.3.0.
- #32011: polyfill.js minor tweaks
- #32016: Streamline jQuery comment.
- #32021: Lint: stop ignoring package.js
- #32024: Fix TypeError when Bootstrap is included in
head - #32026: toast.spec.js: fix typo
- #32036: ESLint: enable new-cap rule but ignore properties
- #32043: tests: switch to using
toContain()to check for substring presence - #32045: tests: fix sanitizer test.
- #32046: tests: tweak Jasmine usage
- #32055: dropdown.js: simplify code
- #32093: karma.conf.js: break lines
- #32100: search.js: check for
search-inputelement early - #32101: modal.html: use
textContent
📖 Docs
- #30044: Contrast colors added to theme-colors
- #30838: Explain the "dispose" method appropriately
- #31111: Update docs example on how to optimize JavaScript bundle
- #31583: docs(Modal): Add xxl fullscreen example
- #31679: Don't wrap the code snippets in our docs
- #31686: v5: Add disabled examples for .form-control, .form-select, and .form-range
- #31702: Add keyboard shortcut to focus search field
- #31775: Update social.html: use
articleog:typewhen it's a page - #31791: docs: remove pixels from SVGs
- #31794: webpack.md: Replace "both of them" with "it"
- #31795: validation.md: fix _validation.scss file reference
- #31796: Update
.btn-close-whitedocs tofilter(notbackdrop-filter) - #31802: Improve callout shortcode.
- #31803: Update bs-table shortcode
- #31806: docs: switch to fenced codeblocks
- #31809: carousel: add missing
todescription and fixnextwhenvisibledescription - #31828: docs: Add Russian translation
- #31835: Move
hrefattribute first - #31839: docs: fix contrast color against
.bg-info - #31861: Split up dropdown sizing docs to improve rendering
- #31871: Revert "Improve callout shortcode."
- #31892: Remove redundant visually hidden "(current)" from pagination controls
- #31893: Update manifest.json
- #31894: docs: switch to suggesting jsDelivr as a CDN
- #31904: Drop useless text faking a label in horizontal forms example
- #31929: Mention spinners slow down in migration guide
- #31932: Small typo - remove the unnecessary "the"
- #31951: Update anchor-js to v4.3.0.
- #31960: Docs: Explicitly mention emoji fonts, tweak sentence in typography
- #31965: Rename Navs to Navs and Tabs
- #31981: Update list-group.md
- #31982: Fix git conflicts after #30571
- #31984: Add example with input group between two inputs
- #32009: Minor Markdown fixes
- #32015: Fix redirects
- #32031: Fix .fw utilities
- #32040: Add callouts about using light colors ideally on a dark background
- #32049: Update utilities API docs
- #32050: Make docs anchorjs links darker on keyboard focus
- #32058: Form file docs and overrides
- #32076: Partially revert "Move this to a partial to work around the stray
p… - #32084: reboot.md: mention "Liberation Sans"
- #32086: config.yml: remove the unused "expo" parameter
- #32087: download.md: link to JS files comparison too
- #32090: [Docs] Changes to navbar documentation/explanation
- #32099: search.js: use the current v5.getbootstrap.com URL
- #32100: search.js: check for
search-inputelement early - #32102: docs.html: replace backslashes with forward slashes
- #32105: Clarify JS bundle docs one more time
- #32116: browsers-devices: add
chomp - #32126: Minor improvements to the Alpha 3 changelog
- #32129: masthead: add newlines in the snippets and reindent
🌎 Accessibility
- #30550: Bump
$darkto$gray-900 - #31839: docs: fix contrast color against
.bg-info - #31877: Apply smooth-scroll when
prefers-reduced-motion: no-preference - #31882: Slow down spinners when
prefers-reduced-motion: reduce - #31892: Remove redundant visually hidden "(current)" from pagination controls
- #31904: Drop useless text faking a label in horizontal forms example
- #32058: Form file docs and overrides
- #32090: [Docs] Changes to navbar documentation/explanation
🧰 Misc
- #30740: karma: stop excluding polyfill.js from istanbul
- #31728: Switch to dart-sass
- #31783: Update .gitignore
- #31878: CI: Allow skipping BrowserStack
- #31930: Update CodeQL action
- #32003: CI: switch to Node.js 14.
- #32005: Remove bugreport.apple.com url
- #32006: CI: Skip dependabot PR branches.
- #32008: Update Edge's Rendering Engine on CONTRIBUTING.md
- #32027: Clarify PRs section
- #32033: CODE_OF_CONDUCT.md: fix redirect
- #32036: ESLint: enable new-cap rule but ignore properties
- #32056: deps: move sirv-cli to npx
- #32063: stylelint: pass the
--rdflag - #32097: package.json: fix clean-css level switch
📦 Dependencies
- Updated numerous devDependencies https://github.com/twbs/bootstrap/pulls?q=is%3Apr+is%3Aclosed+label%3Adependencies+project%3Atwbs%2Fbootstrap%2F22
v4.5.3
CSS
- #31653: Add a comment to our
escape-svgfunction to note that data URIs must be quoted. - #31693: Use the
custom-controlshadow variable instead of the genericinput-focus-box-shadow. - #31793: Backport some v5 changes (improved
thstyling in Reboot, custom form field styling when printing, and improvements to.text-break).- #29714: Keep custom check, radio, and switch theme when printing.
- #30781: Reboot's
thupdates: Inheritfont-weight: boldthat comes from user agent stylesheets. - #30932:
.text-breakchanges to dropoverflow-wrapand useword-wraponce again - #31754: Improve versions page rendering (also reversed the order while I was here)
- #31846: Backports the z-index change to
.closebuttons in dismissible.alerts.
JS
- #31000: Avoid multiple change event trigger in buttons plugin. Not applicable to v5 since our button JS plugin has been mostly replaced with pure CSS.
- #31673: Fix dropdown variable always evaluating to true.
- #31696: Ensure
hidePrevented.bs.modalcan be prevented. - #31718: Backports new
$dropdown-padding-xvariable from v5.
Docs
- #30811: Mention GPU acceleration fix in docs callout for popovers. Doesn't apply to v5 since we're updating to Popper v2.
- #30838: Explain the
disposemethod more appropriately. - #31706: Backports updated margins for code snippets for improved readability.
- #31769: Backports JS bundle guidance from v5.
- #31851: Backports mention of missing
toandnextwhenvisiblemethods.
Misc
- #31297: Switch to xo ESLint config
- Updated devDependencies versions
v5.0.0-alpha2
Changes
🚀 Features
- #30171: Add .dropdown-menu-dark
- #31280: Extra position utilities
- #31484: Add border width utility
- #31650: Carousel enhancements, including .carousel-dark
🎨 CSS
- #30171: Add .dropdown-menu-dark
- #30394:
box-shadow()mixin: allow 'null' and drop support 'none' with multiple args - #30572: Add new toasts examples
- #30639: Easier disabled state customization for button variants
- #30781: reboot: table th
- #31035: Add null variables for nav-link
- #31120: Add missing comma in utils
- #31131: Darken dropdown divider
- #31132: Add padding to badges
- #31139: Rename
sr-only/sr-only-focusabletovisually-hidden/visually-hidden-focusable - #31151: Fix scrollable modal
- #31162: Fix table separator typo
- #31276: v5: Tweak some colors
- #31280: Extra position utilities
- #31338: Removed a broken reference
- #31346: Turn off scroll anchoring for accordions
- #31359: Cleanup/fix after the sr-only to visually-hidden renaming
- #31381: Remove overflow: hidden from toasts
- #31382: Update copy around breakpoint sizing
- #31383: Adjust sizing of checks and radios
- #31396: Add transition to Pagination buttons just like other Bootstrap buttons
- #31424: Mention that Edge Legacy also supports 'filling' their track
- #31439: Remove
flex: 1 0 100%from rows - #31473: Give more priority to
.d-none - #31484: Add border width utility
- #31500: Use next breakpoint when targetting xs only
- #31571: Add default parameters to each border radius mixin
- #31641: Revamp close button component
- #31649: Match container gutters with row gutters
- #31650: Carousel enhancements, including .carousel-dark
- #31653: Add a comment for escape-svg function
- #31659: Update Stylelint rules
- #31717: Updates responsive embeds with new class names and CSS variables
- #31718: Add new variable for $dropdown-padding-x
- #31729: Input group addon sass customization options
- #31746: Restore
remunit - #31772: _variables: change $btn-close-bg's attribute order
☕️ JavaScript
- #30326: Prevent overflowing static backdrop modal animation
- #30928: Fix tooltip when hovering a child element (
delegateTarget) - #31066: Change "whitelist" to "allowlist"
- #31067: data: reword storage key in DOM
- #31073: Minor JS tweaks
- #31109: toasts: make default duration 5s
- #31115: fix tooltip hide method when already hidden
- #31125: BrowserStack: stop testing on latest Edge.
- #31155: Clear timeout before showing the toast
- #31212: Minor JS consistency changes
- #31358: Docs: Add accessibility note about dismissible alerts and focus
📖 Docs
- #30572: Add new toasts examples
- #30897: Prevent skip links from overlapping header
- #31036: Docs: Add top/bottom margin to highlighted code samples
- #31058: Update links to bug and feature request issue templates
- #31062: Fix Stack Overflow tag
- #31070: Docs: fix old/broken example capture and typo
- #31071: Docs: clarify rationale for button group on links
- #31075: Updated the command to install using yarn
- #31076: Typo fix: ocassions to occasions
- #31077: Several typo fixes
- #31078: Typo fix: individiual to individual
- #31079: Typo fix: depedending to depending
- #31081: Docs: add Gaël Poupard to the core team page
- #31082: Docs: tweak accessibility section
- #31090: Docs: rename form checks page to "Checks / radios"
- #31093: Docs: improve/expand button documentation
- #31102: Docs: Fix typo
- #31106: Docs: fix typo
- #31107: Correctly document how to add to Sass maps
- #31114: Docs: forms accessibility cleanup
- #31116: Fix links to gutters page
- #31119: v5: Adjust docs sidebar and navbar
- #31122: Update migration.md
- #31130: Add code to method/property tables
- #31133: Docs: screen reader helper/visibility utility tweaks
- #31134: Docs: clarify that pointer events classes don't affect keyboard interaction
- #31135: Docs: move color utility callouts to start of page
- #31137: Docs: (subjectively) nicer looking accordion example
- #31165: Remove backdrop-filter from docs subnav and toasts
- #31190: Fix spelling mistake
- #31192: Docs: Fix vertical align link
- #31194: Minor doc tweaks
- #31196: Fixed typo in docs v5 (Utilities/API) page
- #31201: Docs: separate button group out of checks/radios, expand button groups page
- #31211: homepage: Fix wrong indentation
- #31213: Fix generated example code for RFS
- #31232: Fix sidebar jump
- #31240: Single line example for inline forms
- #31248: v5: Updated About and Brand pages
- #31254: Fix some hexa in colors docs.
- #31268: Fix docs sass importing example.
- #31277: v5: Versions cleanup
- #31278: Migration update
- #31300: docs: mention our bundle file clearly.
- #31339: Add view on GitHub links for easier content editing from the docs
- #31344: Add toasts to the components requiring JavaScript
- #31358: Docs: Add accessibility note about dismissible alerts and focus
- #31382: Update copy around breakpoint sizing
- #31387: Update migration guide
- #31424: Mention that Edge Legacy also supports 'filling' their track
- #31434: make breakpoints specifications consistent with layout/grid.md
- #31441: docs: Fix issue number typo in migration
- #31455: Update current_ruby_version to 5.0.0.alpha1
- #31471: Remove 'both' as its no longer just 2 breakpoints
- #31505: docs(typography): missing punctuation
- #31516: Update icons.yml
- #31556: docs: Fix typo on Customize -> Color page
- #31572: Fix docs incorrect green and cyan hex codes
- #31575: SVG placeholders accessibility
- #31576: Drop h4 color customization in callouts
- #31578: Scrollspy keyboard access in docs
- #31579: Ensure examples content sits in landmarks
- #31580: Wrap home content in & use
- #31590: Build tools: mention how to get the sources
- #31610: Docs layout: ensure content sits in main
- #31636: Add getInstance method in the docs for tooltip
- #31648: Typo in About / Overview
- #31668: Webpack page: add
postcssOptionskey - #31689: docs: fix a few redirects
- #31738: docs: link to the Asynchronous functions section
- #31750: brand: minor consistency changes
- #31752: v5 alpha 2 migration guide updates
- #31754: Tweak versions page columns
- #31767: Convert SVGs in navbar and subnav to pixels
- #31773: Add new Bootstrap Icons homepage images
- #31785: v5: Vertical pills fix on mobile
🌎 Accessibility
- #30897: Prevent skip links from overlapping header
- #30989: Ensure to increase contrasts on buttons & colored links hover/active states
- #31114: Docs: forms accessibility cleanup
- #31131: Darken dropdown divider
- #31276: v5: Tweak some colors
- #31575: SVG placeholders accessibility
- #31576: Drop h4 color customization in callouts
- #31578: Scrollspy keyboard access in docs
- #31579: Ensure examples content sits in landmarks
- #31580: Wrap home content in & use
- #31610: Docs layout: ensure content sits in main
🧰 Misc
- #31011: Update Babel config
- #31047: README: remove
.svgfrom shields.io badges - #31062: Fix Stack Overflow tag
- #31063: Update bundlewatch.yml
- #31124: Update .browserslistrc
- #31259: README.md: show brotli size too
- #31588: Download link in README
- #31742: Fix bundlewatch size
📦 Dependencies
- Updated numerous devDependencies https://github.com/twbs/bootstrap/pulls?q=is%3Apr+is%3Aclosed+label%3Adependencies+project%3Atwbs%2Fbootstrap%2F21
v4.5.2
This release addresses the following two issues:
- #31438 restores the
make-container-max-widthsmixin. We won't be using the mixin ourselves, but it will remain in the codebase for the rest of v4 with today's release. We've added a deprecation notice as well. - #31439 removes
flex: 1 0 100%from.rows. This was added to address shrinking rows inside the navbar component after our responsive containers were added in v4.4.0. Removing this rolls us back to the expected grid and flex behavior—your row will shrink unfortunately without further changes. We could add extra custom CSS to address this, but it seems shortsighted to rush into that. Instead, apply.flex-fillto the.rowand your row will behave as usual.
v4.5.1
CSS
- #30808: Simplify
list-groupborders in cards - #30810: Add
z-indexto.custom-checkto fix their rendering in CSS columns - #30817: Add
border-radiusto.card-img-overlay - #30830: Prevent conflicts with components with classes
- #30922: Fix color on disabled checked state for custom controls
- #30932: Restore
word-break: break-word;on.text-breakutility. - #30940: Prevent
.rowfrom shrinking in flex containers - #30957: Nullify custom form states'
box-shadow - #30959: Toasts in IE11
- #30960: Fix IE11 validation tooltip alignment in input groups
- #30965: Improve floating labels example in IE
- #30966: Improve floating labels with Edge and a general refactor
- #30969: Remove duplicated container breakpoints in compiled CSS
- #30999: Revert
min-width: 0on.coldue to unforeseen side effects - #31148: Remove duplicate properties on custom controls
- #31165: Remove
backdrop-filterfrom docs subnav and toasts - #31339: Add link to view docs pages on GitHub
- #31347: Turn off scroll anchoring for accordions
- #31381: Remove
overflow: hiddenfrom toasts
JavaScript
- #30326: Prevent overflowing static backdrop modal animation
- #30936: Add
role="dialog"in modals via JavaScript - #30992: Avoid preventing input event onclick
- #31155: Clear timeout before showing the toast
Build
- #30797: Fix release script docs
- #31011: Updated Babel config
- #31296: Update to Ruby 2.7 and Bundler 2.x
Docs
- #30809: Update docs callout for responsive SVG images
- #30813: Mention Bootstrap Icons in
extend/icons.mdpage - #30896: Improve wording on Downloads page
- #30897: Prevent skip links from overlapping header in docs
- #30973: Update some nav examples by removing
.nav-itemfrom.nav-linkto be more consistent - #31070: Fix some broken examples and typos
- #31135: Move color utility callouts to start of page
- #31234: Clean up docs forms for accessibility
- #31344: Mention toasts in the components requiring JavaScript page
v5.0.0-alpha1
🎉 The first Bootstrap 5 alpha has landed!
- For highlights and a look ahead, please read our v5 alpha 1 announcement blog post.
- Browse the v5 alpha 1 project to see what's new and what's changed.
v4.5.0
Highlights
- New interaction utilities. Quickly set
user-selectwith the new utilities and Sass map. - New Reboot style for pointer cursors. We now include a
role="button"selector in Reboot to setcursor: pointeron non-<button>element buttons. - Examples are now downloadable. We've added a script to zip up and offer all our Examples as their own download from the docs.
- Saved ~5% from the compressed minified JS builds.
- Added guidance to our docs for how to work around our longstanding input group rounded corner bug.
- Redesigned docs homepage and navbar to increment us towards v5's new docs design.
- Deprecated
bg-gradient-variantmixin as it's being removed in v5. - Updated to jQuery v3.5.1, Jekyll v4, and dropped Node.js < 10 for development.
CSS
- #29413: Prevent vertical offset on progress bar in IE11
- #29745: Add
display: flexon.breadcrumb-item - #29819: Allow percentages in container widths
- #29857: Escape brackets
- #29946: Added new variable for padding on dropdown header
- #30004: Fixes disabled
.btncursor - #30036: Added focus state to
.btn-link - #30043: Fix IE auto-size input-group to column
- #30049: Prevent grid with default cols from breaking when large
preis present by settingmin-width: 0 - #30074: Use
word-wrapin.text-breakfor IE and Edge compatibility - #30166: Avoid
border-radiusfunctions returning negative values - #30183: Remove unnecessary reduce motion when
$enable-transition: false - #30244: Fix centered modal scrolling issue
- #30262: Prevent link underline change from affecting some components
- #30361: Remove appearance from date inputs
- #30391: Prevent redundant
transition: none intransition()` mixin - #30497: Fix card list group borders & radii
- #30504: Fix
spinner-growanimation in Safari - #30515: Add
.card-footercolor - #30555, #30512, #30480: Use
box-shadowmixin for.form-select,.btn, and other form controls - #30562: Added new interaction utilities for
user-selectand a new -role="button"in Reboot to setcursor: pointer. - #30582: Delete unnecessary
appearance: nonefrombutton.close - #30594: Deprecate
bg-gradient-variantmixin - #30605, #30606: Grid now checks for for
$grid-columns > 0 - #30609: Checks for an empty
$grid-breakpointsmap list to remove all breakpoints - #30660: Prevent list group style leaks
- #30685: Disable auto-hiding scrollbar in IE and legacy Edge
JavaScript
- #29986: Close modal with
keyboard=true&backdrop=static - #29968: sanitizer.js: Add
srcsetin the allowed attributes - #30381: Updated tab.js to address accessibility issue when using ul/li semantic
- #30383: ensure
totypealways return stringified null when null passed - #30388: enable button toggle on label when checkbox is inside
- #30490: Switch to string constants to save ~5% on compressed file size
- #30510, #30511: Fix event propagation from inactive and disabled dropdowns
- #30744: ensure build plugins can exit in error
- #30772: Prevent scrollbar replacement on non-integer width
- 22f75c: scrollspy: only accept valid Elements as input for target
Docs
- Redesigned docs homepage
- Improved tap target sizing in our navigation
- Added examples for our input group border-radius workaround
- Added warning to browser bugs page that it's no longer maintained
- Added
loading="lazy"for images - #29782: Improve wrapping and hit area of accordion example titles
- #29820: move width after
make-container()mixin - #29937: Add missing Noto Sans font to font stack
- #29956: Add Microsoft Edge for macOS to supported browsers
- #30130: Added ability to zip and download our Examples
- #30175: Add version number in page titles
- #30180: Changed input group validation examples to reflect issues with input group
- #30207: Headings hierarchy in theming.md
- #30325: Updated modal docs to simplify
data-targetusage and more - #30416: Clarify card group behavior
- #30469: Remove holder.js leftovers
- #30505: Use existing position utility in navbar example
- #30695: make the check for URL stricter in our docs search
- #30755: Removed
role="document"from the modal dialog
Examples
Dependencies
- Updated jQuery to v3.5.1
- Replaced bundlesize with bundlewatch
- Updated to Jekyll v4
- Drop Node.js < 10
- Misc devDependencies updates
v4.4.1
v4.4.0
Highlights
Here's what you need to know about v4.4.0. Remember that with every minor and major release of Bootstrap, we ship a new URL for our hosted docs to ensure URLs continue to work.- New responsive containers! Over a year in the making, fluid up to a particular breakpoint, available for all responsive tiers.
- New responsive
.row-colsclasses for quickly specifying the number of columns across breakpoints. This one is huge for those of you who have asked for responsive card decks. - New
escape-svg()function for simplifying our embeddedbackground-imageSVGs for forms and more. - New
add()andsubtract()functions for avoiding errors and zero values from CSS's built incalcfeature. - New
make-col-auto()mixin to make our.col-autoclass available with custom HTML. - Fixed an issue with Microsoft Edge not picking up
:disabledstyles by moving selectors to[disabled]. - Deprecated:
bg-variant(),nav-divider(), andform-control-focus()mixins are now deprecated as they're going away in v5. - Updated our spacing and alignment for modal footer elements like buttons to automatically wrap when space is constrained.
- More flexible form control validation styles thanks to fewer chained selectors. Also updated the
:invalidvalidation icon to be an alert instead of an×to avoid confusion with browser functionality for clearing the form field value. - Fixed a couple dozen CSS and JS bugs.
- Moved to GitHub Actions for CI/CD! Expect more updates to our CI setup over time here while Actions evolves.
- Updated documentation to fix links and typos, improved landmarks for secondary navigation, and a new security doc for guidelines on reporting potential vulnerabilities.
Links
v4.3.1
- Security: Fixed an XSS vulnerability (CVE-2019-8331) in our tooltip and popover plugins by implementing a new HTML sanitizer
- Fixed a small issue with our RFS (responsive font sizes) mixins