GitHub repository: twbs/bootstrap
Description: The most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web.
Topics: bootstrap, css, css-framework, html, javascript, sass, scss

v5.3.2: tag_name: v5.3.2
body: ## Highlights

- Passing a percentage unit to the global `abs()` is deprecated since Dart Sass v1.65.0. It resulted in a deprecation warning when compiling Bootstrap with Dart Sass. This has been fixed internally by changing the values passed to the `divide()` function. The `divide()` function has not been fixed itself so that we can keep supporting node-sass cross-compatibility. In v6, this won't be an issue as we plan to drop support for node-sass.
- Using multiple `id`s in a collapse target wasn't working anymore and has been fixed.

## Color modes

- Increased color contrast of form range track background in light and dark modes.
- Fixed table state rendering for color modes with a focus on the striped table in dark mode to increase color contrast.
- Allow `<mark>` color customization for color modes.

## Docs

- Added alternative CDNs section in [Getting started -> Download](https://getbootstrap.com/docs/5.3/getting-started/download/#alternative-cdns).
- Added Discord and Bootstrap subreddit links in [README](https://github.com/twbs/bootstrap/blob/main/README.md) and [Getting started -> Introduction](https://getbootstrap.com/docs/5.3/getting-started/introduction/):
  - [Discord](https://discord.gg/bZUvakRU3M) maintained by the community
  - [Bootstrap subreddit](https://reddit.com/r/bootstrap)

---

## 🎨 CSS

- #38816: Use `box-shadow` CSS variables shadow utilities
- #38955: Fix radios looking like ellipse on responsive mode
- #38976: Use box-shadow CSS vars instead of Sass vars in assets and variables
- #39030: Fix dart-sass deprecation warning
- #39033: Color mode: fix table state rendering
- #39095: Make form range track background more contrasted
- #39119: New Sass var `$btn-link-focus-shadow-rgb` to allow customization
- #39141: New Sass variable to handle `<mark>` dark mode bg color

## ☕️ JavaScript

- #38989: Collapse: Fix multiple `id`s calls
- #39046: Dropdown: reuse variable

## 📖 Docs

- #38873: Discord reddit bootstrap
- #38970: docs: add BootstrapVueNext to docs
- #38977: Docs: Add missing form elements in focusable elements
- #38978: Docs: Fix popover template role error
- #38995: introduction: drop `details` element
- #39037: Further improve image compression with oxipng and the latest jpegoptim
- #39054: Docs: Remove incorrect mention of `.left-` and `.right-` utilities from migration guide
- #39060: Migration: add back v5.0.0 heading
- #39145: Docs: add warning callout to add a workaround when jsDelivr is not available
- #39177: Fix: make theme selector tick icon visible when active in examples layout
- #39179: download: Reword CDN paragraph

## 🛠 Examples

- #38994: examples: update 3rd-party packages
- #39086: Correct grammar error in examples/starter-template

## 🌎 Accessibility

- #38978: Docs: Fix popover template role error
- #39095: Make form range track background more contrasted

## 🧰 Misc

- #38983: Improve change-version script
- #38984: Convert build scripts to ESM
- #39021: CI: update permissions for calibreapp-image-actions.yml

## 📦 Dependencies

- Updated numerous [devDependencies](https://github.com/twbs/bootstrap/pulls?q=is%3Apr+label%3Adependencies+project%3Atwbs%2F30+is%3Aclosed)

v5.3.1: tag_name: v5.3.1
body: ## Highlights

- **Color modes:**
  - Increased color contrast for dark mode by replacing `$gray-500` with `$gray-300` for the body color
  - Added our color mode switcher JavaScript to our examples ZIP download
- **Components:**
  - Improved disabled styling for all `.nav-link`s, providing `.disabled` and `:disabled` for use with anchors and buttons
  - Add support for `Home` and `End` keys for navigating tabs by keyboard
  - Added some basic styling to toggle buttons when no modifier class is present
  - Fixed carousel colors in dark mode
- **Forms:**
  - Fixed floating label disabled text color
- **Utilities:**
  - `.text-bg-*` utilities now use CSS variables
- **Sass:**
  - Add new `$navbar-dark-icon-color` Sass variable
  - Removed duplicate `$alert` Sass variables
  - Added a new variable for `$vr-border-width` to customize the vertical rule helper width
- **Documentation:**
  - Added search to our homepage
  - Improved responsive behavior on Dashboard example
  - Improved dark mode rendering of Cheatsheet examples

---

## 🎨 CSS

- #38913: Floating labels: fix disabled with text inside
- #38772: `.text-bg-*` helpers now use theme CSS variables
- #38886: New Sass variable to change vertical rule width
- #38851: Fix Sass properties order for newer stylelint-config-recess-order
- #38815: Increase contrast in dark-mode (#38525)
- #38774: Generalize disabled nav links CSS rules
- #38673: Add `$navbar-dark-icon-color`
- #38674: Remove duplicate `$alert-*-scale` Sass vars

## ☕️ JavaScript

- #38498: Support `Home` and `End` keys in tabs

## 📖 Docs

- #38958: Examples: improve spinner buttons accessibility
- #38947: Fix postcss plugin options
- #38885: Docs: Update float responsive examples
- #38946: Docs: remove v4 reference on homepage
- #38948: Fix some typos in Customize > Sass doc
- #38840: Docs: fix carousel carousel colors of carousel examples in dark mode
- #38604: Add dropdown alignment options to button group example
- #38894: Docs: add blank target and `noopener` rel to footer external links
- #38902: Fix tooltip generated markup documentation
- #38883: Docs: Fix incorrect class name on migration guide
- #38708: add a base class style display for toggle buttons
- #38827: Docs: add missing `aria-disabled='true'` to disabled anchors
- #38844: Fix for text-reset example class name
- #38838: JS/SCSS shortcodes: Add new feature to remove nested calls inside.
- #38850: Add docs search to homepage
- #38872: Docs: Improve Text Alignment Example
- #38865: Fix custom-radio class name on migration guide
- #38786: Explicitly add missing opacity-0 helper class example for clarity.
- #38707: Update bottom border on dark navbar example
- #38726: Update flex utilities link in navs docs
- #38734: Minor fixes for Docs Versions page
- #38745: Fix stack examples
- #38751: Docs (tooltips): Fix "them" typo in markup section
- #38688: Fix missing word issue on nav-tabs page
- #38681: Docs: consistency between custom buttons, popovers and tooltips
- #38600: collate distribution interval
- #38632: docs(spinners): improve buttons examples accessibility
- #38583: Docs: add more details on accessibility tips
- #38554: Doc: fix 'Events' JS example
- #38592: docs(forms): switch to `aria-describedby`
- #38542: Use `.d-none` instead of inline styling
- #38616: Add 'Issues assignment' section to the Contributing Guidelines
- #38528: Adding a link to `clearfix`
- #38538: Update Sass docs to mention compiling and including
- #38623: Fix disabled element tooltip StackBlitz

## 🛠 Examples

- #38958: Examples: improve spinner buttons accessibility
- #38952: dashboard: fix offcanvas md display
- #38840: Docs: fix carousel carousel colors of carousel examples in dark mode
- #38905: Fix dark mode rendering of Cheatsheet examples
- #38711: Fix link colors in Sidebars example

## 🌎 Accessibility

- #38958: Examples: improve spinner buttons accessibility
- #38498: Support `Home` and `End` keys in tabs
- #38827: Docs: add missing `aria-disabled='true'` to disabled anchors
- #38850: Add docs search to homepage
- #38774: Generalize disabled nav links CSS rules
- #38632: docs(spinners): improve buttons examples accessibility
- #38583: Docs: add more details on accessibility tips
- #38592: docs(forms): switch to aria-describedby

## 🧰 Misc

- #38747: Add `color-modes.js` to `bootstrap-x.y.z-examples.zip`

## 📦 Dependencies

- Updated numerous [devDependencies](https://github.com/twbs/bootstrap/pulls?q=is%3Apr+label%3Adependencies+project%3Atwbs%2F26+is%3Aclosed) 

v5.3.0: tag_name: v5.3.0
v5.3.0-alpha3: tag_name: v5.3.0-alpha3
body: - Fixed wrong interpolated variables with node-sass/Hugo.
- Added a check for interpolated variables to catch compilation errors with Node Sass when using Sass variables in `calc()` functions.
- Started using `--bs-border-radius` variables across more components.
- Added `.d-inline-grid` utility class.
- Fixed `.tooltip-inner` placement when using variations in `fallbackPlacements`.
- Fix selectors for dark mode carousel overrides when compiling with `$color-mode-type: media-query`.
- Updated the styling of floating labels when "floated" to include a `background-color` to help with multiple lines of text in `textarea`s. This also fixes the colors when form elements are disabled in floating forms.
- Updated RFS to v10.0.0.

**Full Changelog**: https://github.com/twbs/bootstrap/compare/v5.3.0-alpha2...v5.3.0-alpha3

v5.3.0-alpha2: tag_name: v5.3.0-alpha2
body: ## 🚀 Features

- #33126: Add `.nav-underline` modifier class
- #37762: Add new link utilities, icon link helper, and update colored link helpers
- #38199: Docs: Better scroll

## 🎨 CSS

- #33125: Focus ring helper and utilities
- #33126: Add `.nav-underline` modifier class
- #35857: Add dark mode support
- #36029: Add SCSS testing of the utilities API
- #36143: Fix Android Chrome input date dimensions
- #36831: Rework progress bar markup and styles
- #37526: Fix var `--bs-body-font-family`. Keep quotes in the font stack.
- #37533: Visually-hidden: Remove `position: absolute` for captions
- #37617: CSS: `$prefix` to the whole assets
- #37621: Fix `--bs-form-check-bg` definition
- #37644: list-group-border-width variables
- #37687: Fix Sass compilation when `$color-mode-type` is set to `media-query`
- #37720: Improve consistency of navbar icon declaration
- #37731: Update color contrast formula with new constant from WCAG 2.2
- #37734: Add `color-scheme` to dark root selector
- #37759: Darken some text emphasis and syntax colors
- #37760: Fix selector for dark mode navbar toggler SVG change
- #37761: Docs: enhance callouts links on dark mode
- #37762: Add new link utilities, icon link helper, and update colored link helpers
- #37777: Fix cards color for contextual color mode
- #37781: Fix code color in callouts
- #37784: Change nav focus to focus-visible
- #37785: Update code syntax colors to use Bootstrap colors
- #37788: Change stylelint `property-blacklist` to `property-disallowed-list`
- #37800: Fix heading colors in dark mode
- #37804: CSS: rename some variables to be consistent
- #37809: Fix duplicate `--bs-emphasis-color` set value
- #37816: Remove unused comment in `scss/_maps.scss`
- #37817: Docs: remove some CSS from `.highlight-toolbar` def
- #37820: Remove duplicate definition of `--bs-highlight-bg` in `scss/_root.scss`
- #37822: Switch from none keyword value to a fake shadow for btn-link
- #37823: Docs: fix `.btn-clipboard` and `.btn-edit` link hover color
- #37824: Drop unused `.bg-body-emphasis`
- #37832: Keep shadows black regardless of color mode
- #37833: Update colored links, add new `.link-body-emphasis` helper
- #37835: Remove obsolete comment from `_variables.scss`
- #37843: Add theme maps specific to dark mode
- #37844: Reduce bootstrap-grid.css content
- #37857: Drop duplicate `--bs-body-bg-rgb` declaration + reorder props
- #37868: Remove outdated comment from `$input-border-color` variable
- #37888: List group: Better use of CSS var
- #37893: Fix `.form-control` in dark mode
- #37905: CSS: Proposal to add a border utility
- #37907: CSS: Proposal to rename the CSS and Sass variables for `.*-text-emphasis`
- #37936: Remove color picker borders on Chromium based browsers
- #37953: Theme color improvements
- #37955: Rewrite selector to help Parcel compiler
- #37956: Remove `list-style` reset on `.carousel-indicators`
- #37998: Use color mode adaptive color for disabled dropdown menu items
- #37999: Avoid inheritance issues on border-width utilities
- #38003: fix alert-color in v5.3.0-alpha2
- #38008: Fix list group colors by using `*-text-emphasis` CSS vars in Sass loop
- #38037: Fix `$grid-breakpoints` SCSS unit tests init
- #38038: Remove comments from `scss/_nav.scss`
- #38044: Update form validation styles to use new CSS variables for `color` and `border-color`
- #38059: Remove `-moz-padding-start` from `.form-select`
- #38060: Drop duplicate `$btn-close-focus-shadow` definition
- #38083: Drop duplicate `$nav-link-disabled-color` declaration
- #38086: Fix shadow of .btn-link
- #38088: Fix navbar-nav link styling
- #38095: Drop unused `--bs-focus-ring-box-shadow` and add documentation for `--bs-focus-ring-{x|y|blur}`
- #38104: Remove useless comment from `scss/_utilities.scss`
- #38115: Fix button visibility issue on dark theme
- #38123: Fix dropdown toggle visible focus in headers example
- #38144: Examples: color mode enhancement
- #38176: Fix missing modifications when `--bs-{color}-text` was changed to `--bs-{color}-text-emphasis`
- #38181: Remove comments from scss/_utilities.scss
- #38201: Sass: remove useless `import` inside `bootstrap-grid`
- #38209: fix  data-bs-theme="dark" on component carousel itself
- #38236: Docs: use core mixins in a couple of places

## ☕️ JavaScript

- #37590: fix live toast demo
- #37836: Remove autofocus on theme switch when page is loaded
- #38025: unify `offcanvas` `keydown` event logic with `modal`
- #38034: Minor fix to avoid creating void elements in tooltip test file
- #38071: Bump Chart.js from 2.9.4 to 4.2.1 in dashboard examples
- #38223: Fix wrong generation of `aria-labelledby` in tab navigation
- #38233: Remove empty script tag in js/tests/visual/input.html
- #38294: Remove version comment from JavaScript src files
- #38302: Remove version from index.{esm,umd}.js too

## 📖 Docs

- #33428: Use scrollspy on docs pages
- #34647: Improve readability in docs flex page
- #36831: Rework progress bar markup and styles
- #37275: Docs: add explanation of the base `.btn` class
- #37354: Docs: rewrite/reorganise carousel docs page
- #37400: Docs: change some title containing '&' to bypass Algolia issue
- #37535: Docs: Fix Thirteenth typo on Navbars example
- #37538: Docs: Add black text/background examples
- #37553: Docs: fix "Usage -> Enable dark mode" code example
- #37562: Docs: display examples based on the docs current color mode
- #37568: Remove title from `check2` SVG icon
- #37570: code-examples.js: switch to `firstElementChild`
- #37590: fix live toast demo
- #37608: Drop logo on homepage on mobile
- #37615: Add new team member to the Teams page
- #37616: Accessibility: Minor fixes
- #37617: CSS: `$prefix` to the whole assets
- #37625: Few miscellaneous docs fixes
- #37628: Rewrite some callouts to remove most headings and reduce their content
- #37658: docs: move color-mode script
- #37670: Docs: Fix typo in guide
- #37671: Docs: replace `twbs/bootstrap-npm-starter` by `twbs/examples/tree/main/icons-font`
- #37676: Docs: fix typo for Sass vars references in Customize > Color modes > Building with Sass
- #37694: Docs: fix overflow:auto horizontal scrollbars covering last line of code blocks
- #37698: Remove some unused SVGs in Dropdowns example
- #37717: docs: improve social image partial
- #37738: Docs: handle light/dark mode in Algolia search modal
- #37740: Update navbar color-schemes to v5.3
- #37741: Reduce size of guide dev server images
- #37742: Fix CSS variables mentioned in our docs
- #37757: Docs: remove `.btn-*-dark` from Button group docs to avoid issues in dark mode
- #37763: Include `twbs/examples` repo examples in the Examples page
- #37766: Docs: Remove unnecessary `id`/`aria-labelledby` from accordion examples
- #37772: Docs: enhance Focus ring example section desc
- #37779: Docs: remove remnants of Twitter / bump dates
- #37780: Docs: Make theme switcher accessible
- #37781: Fix code color in callouts
- #37782: Docs: add CSS variables section in close button section
- #37796: Add webpack build to webpack guide
- #37798: Docs: fix accordion flush description
- #37802: Docs: fix headings color in light/dark mode
- #37803: Docs: Small enhancements
- #37811: Docs: enhance colors description table
- #37817: Docs: remove some CSS from `.highlight-toolbar` def
- #37823: Docs: fix `.btn-clipboard` and `.btn-edit` link hover color
- #37829: Docs: missing deprecated callout for `list-group-item-variant()` mixin
- #37836: Remove autofocus on theme switch when page is loaded
- #37839: Docs: add `.fw-medium` utility class example
- #37848: Docs: fix typo in migration guide
- #37855: docs: updates `.text-*-left` changes
- #37859: Docs: fix broken links in Color modes page
- #37861: Mention deprecated classes for color mode on offcanvas
- #37862: Migration guide changes for v5.3.0-alpha2
- #37863: Docs: update progress markup in Color modes page
- #37869: Docs: changed `popover` to `tooltip`
- #37871: Docs: Move form-text paragraph to Form control page
- #37890: Docs: Deprecate the Sass var and remove any occurence of the `.text-muted`
- #37894: Add docs callout for utilities that don't respond to color modes
- #37895: Include variables-dark in the import stacks, plus a customize overview fix
- #37896: Small color mode docs CSS fixes
- #37897: Sass docs updates
- #37898: Docs: Doc Scrollspy correction
- #37899: Docs: Harmonize the flex doc
- #37900: Docs: Enhancement proposal
- #37918: fix typo in gutters doc
- #37921: Docs: add overflow and text color info to progress bar page
- #37923: Docs: tweak icon link and callouts
- #37926: Docs: add scroll-margin-top for keyboard navigation
- #37965: Attempt to fix focus ring being cut off in table of contents
- #37994: Docs: remove redundant space in forms/validation.md
- #38004: Remove unused partials and add some way to automatically detect it
- #38006: Docs: Use ESM Popper CDN reference in 'Using Bootstrap as a module'
- #38014: Docs: Progress fix + proposal
- #38032: Remove `debug` references from DocSearch v2
- #38040: Docs: uniformize disabled nav links for underline nav
- #38057: More updates to migration guide
- #38074: Fix console error in examples pages due to no theme switcher
- #38087: Docs: Drop unused `.focused` style
- #38095: Drop unused `--bs-focus-ring-box-shadow` and add documentation for `--bs-focus-ring-{x|y|blur}`
- #38103: Docs: drop unused icons
- #38112: Fix code indentation in homepage JavaScript plugins section
- #38123: Fix dropdown toggle visible focus in headers example
- #38130: Icon link: envariable + enhance the documentation
- #38131: Utilities: Add one value for link-underline-opacity
- #38151: Docs: replace 'popover' by 'tooltip' in tooltip's page's options section
- #38152: Docs: rollback some modification about `.text-muted` deprecation messages
- #38153: Docs: `.text-body-secondary` appears two times in Utilities > Colors
- #38161: Fixed some grammar issues
- #38164: Drop unused `bootstrap-social-logo.png`
- #38169: Update buttons.md
- #38175: Docs: consistent usage of CSS sections
- #38177: Docs: minor modifications in our migration guide for the v5.3.0-alpha2
- #38179: Docs: vertically align starters images in example page
- #38182: Improve docs on Modals, Alerts, Offcanvas and Toasts close triggers examples
- #38191: Docs: fix focus issue
- #38192: Remove nesting color modes docs section
- #38194: Fix typo in `utilities/colors.md`
- #38196: Docs: Remove unnecessary `href` and `tabindex="-1"`
- #38197: `scss-docs`: link enhancement
- #38198: Docs: fix punctuation on Color modes page (it's -> its)
- #38199: Docs: Better scroll
- #38220: Docs: Proposal to use `scroll-margin-top` instead `padding` and `margin`
- #38236: Docs: use core mixins in a couple of places
- #38246: icon-link.md: remove moot aliases
- #38247: Docs: consistent deprecation messages in Close Button dark variant
- #38262: Docs: make all headings use `var(--bs-emphasis-color)`
- #38263: Fix `placeholder` shortcode color and background params when 'img' markup
- #38270: Slightly improve examples PNG files
- #38301: docs: remove moot `v` from docs-versions.yml
- #38305: Update Vite, Parcel and Webpack guides
- #38308: Docs: `scss-docs` unindent automatically the code inside shortcode
- #38310: Fix reference to twbs/examples/icons-font + fine-tune index.html SB location target
- #38317: Docs: fix two class attributes on same button

## 🛠 Examples

- #36309: New snippet examples
- #37502: Fix grid and alignment in examples/features
- #37562: Docs: display examples based on the docs current color mode
- #37698: Remove some unused SVGs in Dropdowns example
- #37718: Examples: Remove unnecessary `id`/`aria-labelledby` from cheatsheet accordions
- #37763: Include `twbs/examples` repo examples in the Examples page
- #37834: Update snippet examples for dark mode
- #37889: Examples: Update grid example
- #38071: Bump Chart.js from 2.9.4 to 4.2.1 in dashboard examples
- #38074: Fix console error in examples pages due to no theme switcher
- #38103: Docs: drop unused icons
- #38123: Fix dropdown toggle visible focus in headers example
- #38144: Examples: color mode enhancement
- #38193: Fixes click area for header example snippet
- #38310: Fix reference to twbs/examples/icons-font + fine-tune index.html SB location target

## 🌎 Accessibility

- #36831: Rework progress bar markup and styles
- #37354: Docs: rewrite/reorganise carousel docs page
- #37533: Visually-hidden: Remove `position: absolute` for captions
- #37587: Use `aria-labelledby` to associate form-text (helper) with input field when it contains mandatory info (e.g. data format)
- #37616: Accessibility: Minor fixes
- #37731: Update color contrast formula with new constant from WCAG 2.2
- #37766: Docs: Remove unnecessary `id`/`aria-labelledby` from accordion examples
- #37780: Docs: Make theme switcher accessible
- #37836: Remove autofocus on theme switch when page is loaded
- #37926: Docs: add scroll-margin-top for keyboard navigation
- #38014: Docs: Progress fix + proposal
- #38040: Docs: uniformize disabled nav links for underline nav
- #38089: Tests: remove unnecessary `id`/`aria-labelledby` from collapse unit tests
- #38123: Fix dropdown toggle visible focus in headers example
- #38131: Utilities: Add one value for link-underline-opacity
- #38191: Docs: fix focus issue
- #38223: Fix wrong generation of `aria-labelledby` in tab navigation

## 🔧 Utility API

- #38037: Fix `$grid-breakpoints` SCSS unit tests init

## 🏭 Tests

- #36029: Add SCSS testing of the utilities API
- #37713: Make scss tests work on Windows too
- #38034: Minor fix to avoid creating void elements in tooltip test file
- #38037: Fix `$grid-breakpoints` SCSS unit tests init
- #38089: Tests: remove unnecessary `id`/`aria-labelledby` from collapse unit tests

## 🧰 Misc

- #36325: CI: Add GitHub token permissions for workflows
- #37565: package.json: include index.{esm,umd}.js files too
- #37664: README.md: add logos to badges
- #37690: Update docs and package information
- #37712: package.json: exclude scss test files
- #37714: CI: test CSS after build
- #38195: Update `docs` workflow
- #38225: Update codeql.yml
- #38226: Specify lockfile-version=2 for older npm compatibility
- #38227: Move --printUnusedTemplates in hugo scripts
- #38228: Tweak stylelint config
- #38314: vnu-jar.js: add more logging

## 📦 Dependencies

Updated numerous devDependencies: https://github.com/twbs/bootstrap/pulls?q=is%3Apr+label%3Adependencies+project%3Atwbs%2F13+is%3Aclosed

---

Full changelog: https://github.com/twbs/bootstrap/compare/v5.3.0-alpha1...v5.3.0-alpha2
v5.3.0-alpha1: tag_name: v5.3.0-alpha1
body: ## 🚀 Highlights

- #35566: Properly escape IDs in `getSelector()` to handle weird IDs (#35565)
- #35857: Add dark mode support
- #36854: Use explicit imports in our JavaScript source files

## 🚀 Features

- #36540: Add new `border-radius` utilities
- #36781: add `font-weight-medium` (500) / `fw-medium`
- #37317: Add `z-index` utilities, `.z-*`

## 🎨 CSS

- #36095: Added CSS variables for breakpoints
- #36456: Add color CSS variables for `.alert-link`
- #36457: Add color CSS variables for `.btn-close`
- #36511: Add parameters to caret-related mixins
- #36540: Add new `border-radius` utilities
- #36781: add `font-weight-medium` (500) / `fw-medium`
- #36815: Add new CSS variables for Offcanvas
- #36831: Rework progress bar markup and styles
- #36848: Add utilities for overflow and object fit
- #36979: Add support for customizing a card title color
- #37125: Floating labels: Add an artificial background to label
- #37252: Add `$enable-important-utilities` condition in colored links
- #37257: Remove duplicate CSS variable
- #37299: Fix disabled floating labels and add some examples of it in the docs
- #37317: Add `z-index` utilities, `.z-*`
- #37344: Use `--bs-border-width` for some components
- #37350: Prevent extraneous whitespace around date time inputs in WebKit
- #37356: fix negative `border-width` on inputgroup and buttongroup
- #37408: Fix disabled floating labels color
- #37413: Grid Gap Updates
- #37526: Fix var `--bs-body-font-family`; keep quotes in the font stack
- #37617: CSS: `$prefix` to the whole assets
- #37621: Fix `--bs-form-check-bg` definition
- #37644: `list-group-border-width` variables
- #37687: Fix Sass compilation when `$color-mode-type` is set to `media-query`

## ☕️ JavaScript

- #35566: Properly escape IDs in getSelector() to handle weird IDs
- #36027: Move `getElementFromSelector` & `getSelectorFromElement`
- #36652: Boost `execute` function, being able to handle arguments
- #36854: Use explicit imports in our JavaScript source files
- #37438: refactor `getSelector` not to be exported
- #37473: fix: change `replaceAll` usage introduced in #35566
- #37482: Use `Object.entries` in more places
- #37483: hydrateObj: use default param
- #37484: ESLint: enable `prefer-template` rule

## 📖 Docs

- #36523: Update navbars example to include a centered nav with utilities
- #36831: Rework progress bar markup and styles
- #37247: Docs: Minor grammatical fixes for Form validation page
- #37250: Fix typo in documentation for hiding elements
- #37255: Markdownlint fixes
- #37267: Rename examples CSS/JS files for consistency
- #37271: Docs: Slightly improve tooling setup description
- #37277: Doc: add Sass vars for switches
- #37279: Improve example of .flex-wrap and -reverse
- #37282: Docs: standardize usage of `<kbd>`
- #37299: Fix disabled floating labels and add some examples of it in the docs
- #37301: docs: fix text buttons to match behavior
- #37318: Home imports
- #37320: Organize callouts in partials
- #37341: Docs: use 'added' page information to display a tag on top of the pages
- #37354: Docs: rewrite/reorganize carousel docs page
- #37361: Font style utilities did not contain "-style-" in BS4
- #37397: Change title of color-background.md page
- #37399: Only show added in page badge if relevant
- #37406: Update input-group.md with form text example
- #37432: Docs: use `<button>` for dropdown/popover examples, explain preference over `<a>` for dropdowns, tweak collapse prose
- #37491: Make added-in badge page-level for z-index utilities
- #37492: Docs: add margin between buttons in tooltip examples
- #37493: Docs: fix margins between cards in examples
- #37498: Fix accessibility of examples buttons
- #37535: Docs: Fix Thirteenth typo on Navbars example
- #37538: Docs: Add black text/background examples
- #37553: Docs: fix "Usage -> Enable dark mode" code example
- #37568: Remove title from `check2` SVG icon
- #37570: code-examples.js: switch to `firstElementChild`
- #37615: Add new team member to the Teams page
- #37617: CSS: `$prefix` to the whole assets
- #37658: docs: move color-mode script
- #37670: Docs: Fix typo in guide
- #37676: Docs: fix typo for Sass vars references in Customize > Color modes > Building with Sass

## 🛠 Examples

- #36523: Update navbars example to include a centered nav with utilities
- #37123: Fix button hover color in the cover example
- #37267: Rename examples CSS/JS files for consistency
- #37502: Fix grid and alignment in examples/features

## 🌎 Accessibility

- #36831: Rework progress bar markup and styles
- #37354: Docs: rewrite/reorganize carousel docs page
- #37432: Docs: use `<button>` for dropdown/popover examples, explain preference over `<a>` for dropdowns, tweak collapse prose
- #37498: Fix accessibility of examples buttons

## 🏭 Tests

- #37248: Rename some variables in tab unit tests for consistency

## 🧰 Misc

- #36325: CI: Add GitHub token permissions for workflows
- #37348: Update authors and copyright to match npm, add repository reference
- #37459: CI: remove git credentials after checkout
- #37461: CI: switch to Node.js 18 LTS
- #37481: Update CodeQL workflow
- #37485: Update site/.eslintrc.json
- #37486: CodeQL: ignore dist folder

## 📦 Dependencies

- Updated numerous devDependencies: <https://github.com/twbs/bootstrap/pulls?q=is%3Apr+label%3Adependencies+project%3Atwbs%2F9+is%3Aclosed>

v5.2.3: tag_name: v5.2.3
body: ## Fixes

### 🎨 CSS

- #37377: Import root in bootstrap-utilities
- #37425: Fix deprecation warning with sass 1.56.0
- #37266: Carousel: Fix RTL `translate()` direction

### ☕️ JavaScript

- #37235: fix tooltip/popper disposal inconsistencies

v5.2.2: tag_name: v5.2.2
body: ## Highlights

- **Accordion**
  - Use Sass variable for the accordion color instead of an invalid CSS variable
- **Buttons**
  - Undo changes to `.btn:hover` from v5.2.1. We now explicitly target `.btn-check` styles instead.
- **Dropdowns**
  - Restore the ability for dropdowns to work without an explicit `data` attribute (will be removed again in v6)
- **Modals**
  - Improve modal event listeners
  - Use `<h1>` for all `.modal-title` instances in our docs
- **Tables**
  - Don't redefine `$border-color` in `table-variant()` mixin
- **Tabs**
  - Tabs no longer autofocus and cause pages to jump on `tab.show()`
  - Fix `.active` class toggling of tabs within dropdowns
- **Toasts**
  - Properly set toast `z-index` on `.toast-container` as opposed to individual `.toast`s that don't receive any other positioning
- **Tooltips**
  - Fix tooltip selectors with `title` attribute on dynamically created elements

## 🎨 CSS

- #37118: Set toast z-index variable in the correct spot
- #37165: Explicitly target `.btn-check` and undo `:hover`
- #37182: Use Sass variable for accordion color
- #37239: Don't redefine `$border-color` in `table-variant` mixin

## ☕️ JavaScript

- #36914: Fix tooltip selector usage
- #37128: Fix modal event listeners
- #37146: Drop tabs auto-focus
- #37151: Fix active class toggling of tabs within dropdown
- #37189: Enrich Tab Test for keyboard handler
- #37190: Dropdown: fix case with invalid markup
- #37200: Ensure Tab keyboard functionality after #37146

## 📖 Docs

- #36899: Slightly improve image compression
- #37142: Add informative note for Tooltip/Popover selector option
- #37145: Docs: minor fix for Navbar > Offcanvas examples
- #37153: Fix typo in docs - Configure Vite section
- #37199: Replace Webpack and Vite PNGs by SVGs
- #37210: Use `<h1>` for all `modal-title` examples/uses
- #37214: Docs: Change `view in GitHub` links inside `main`

## 🌎 Accessibility

- #37200: Ensure Tab keyboard functionality after #37146
- #37210: Use `<h1>` for all `modal-title` examples/uses

## 🏭 Tests

- #36915: Use ES6 on visual tests
- #37189: Enrich Tab Test for keyboard handler

## 🧰 Misc

- #35079: Add PR template
- #36421: NuGet: Use license expression
- #37186: Add eslint-plugin-html to lint JS in HTML files

## 📦 Dependencies

- Updated numerous devDependencies: <https://github.com/twbs/bootstrap/pulls?q=is%3Apr+label%3Adependencies+project%3Atwbs%2F10+is%3Aclosed>

v5.2.1: tag_name: v5.2.1
body: ## 🚀 Highlights

- **Accordion**
  - Update `color` value to use the `$accordion-button-color` Sass variable instead of our color contrast function
- **Buttons**
  - Added a `transparent` default hover border color CSS variable for buttons to fix a visual regression
  - `.btn-link` no longer has a gradient when `$enable-gradients` is set to `true`
- **Forms**
  - Input groups have updated `z-index` values to ensure proper rendering of validated form fields
  - Floating labels now reset their `text-align` to ensure consistent styling
- **List Groups**
  - Horizontal list groups with only one child now render the correct `border-radius`
  - Modified the `list-group-item` selectors to better support nested imports of Bootstrap's CSS
- **Modals**
  - Fixed modal event listeners during dismiss click, allowing you to once again click scrollbars without dismissing the modal
- **Pagination**
  - Fixed incorrect `border-radius` values inside pagination components
- **Scrollspy**
  - Scrollspy threshold option is now configurable
- **Tooltips**
  - Reverted some tooltip plugin updates to prevent issues with `selector`, dynamic content, and disposed tooltips using `title`

## 🚀 Features

- #36750: ScrollSpy: make the threshold option configurable

## 🎨 CSS

- #36507: v5/docs: reintroduce `outline` for docs code samples, buttons when `:not(:focus-visible)`
- #36593: flush variant of accordion border radius
- #36663: fix #36662 List-group-item margin-top is offset when importing sass in a nested class
- #36694: Docs: add grid-row-columns variable
- #36791: Remove a unused sass parameter from banner mixin
- #36828: Fix pagination page items border radius
- #36849: Define correctly `$popover-header-color`
- #36873: Fix floating labels under `.text-center`
- #36874: Floating labels in input group: Border fix
- #36921: Accordion color should use $accordion-color
- #36986: bugfix undefined border color variable for btn #36938
- #37017: List group: Fix horizontal when only one child
- #37021: Scss: Adding missing `z-index` CSS variables.
- #37026: Rework button focus/active styling, with extra changes for checks/radios
- #37027: Search modal: Set cursor on auto
- #37034: More consistency for CSS/Sass vars doc for components with dark variants
- #37059: Fix input group z-index focus + validation
- #37078: Remove gradient from `.btn-link`
- #37079: Add workarounds for postcss values parser error
- #37080: btn-group draws first input margin #36794
- #37093: Fix accordion button color

## ☕️ JavaScript

- #36750: ScrollSpy: make the threshold option configurable
- #36751: Re-set tooltip title on disposal
- #36863: Fix modal event-listeners during dismiss click
- #37011: Multiple dropdowns: Fix when inside same tag
- #37019: Docs: Fix js options to what is really inside js
- #37072: Docs: Put methods in table
- #37086: Fix tooltip manual toggling

## 📖 Docs

- #36493: Docs: Replace wrong mobile OS Windows with iOS
- #36587: Document how to extract CSS, SVG for strict CSP
- #36694: Docs: add grid-row-columns variable
- #36771: Fix typos after #36762
- #36804: Simplify social images and add ability to set per-page images
- #36812: Fix broken url
- #36819: Rename scrollspy to toast in toasts.md
- #36824: Move DocSearch out of offcanvas to always show it on mobile
- #36825: Remove Slack from site and repo docs
- #36827: Redirect users to different templates of issues rather than an empty one
- #36829: Docs: correct heading levels in features example
- #36836: Docs: use added-in shortcode in Offcanvas
- #36838: Docs: Missing added-in shortcode
- #36839: Docs: Fix markdown link error
- #36850: Add navbar image alt text
- #36867: Docs: expand popover custom container explanation
- #36871: Fix docs typo of `.form-checkbox` -> `.form-check`
- #36877: Add default select example in cheatsheet
- #37019: Docs: Fix js options to what is really inside js
- #37027: Search modal: Set cursor on auto
- #37034: More consistency for CSS/Sass vars doc for components with dark variants
- #37047: Docs: Minor fixes in tables.
- #37048: Docs: improve cards image overlays markup
- #37056: Docs: Manage the dark offcanvas slightly differently
- #37064: Fix padding on starter template
- #37067: Make docs clearer by dropping precompiled for compiled
- #37070: Improve language around vertical grid gutters
- #37072: Docs: Put methods in table

## 🛠 Examples

- #36660: Added new example in `examples/features` page.
- #36829: Docs: correct heading levels in features example
- #36877: Add default select example in cheatsheet
- #37064: Fix padding on starter template

## 🌎 Accessibility

- #36507: v5/docs: reintroduce `outline` for docs code samples, buttons when `:not(:focus-visible)`
- #36829: Docs: correct heading levels in features example
- #37026: Rework button focus/active styling, with extra changes for checks/radios

## 📦 Dependencies

* Updated numerous devDependencies: <https://github.com/twbs/bootstrap/pulls?q=is%3Apr+label%3Adependencies+project%3Atwbs%2F8+is%3Aclosed>

v5.2.0: tag_name: v5.2.0
body: ## 🚀 Highlights

- #36168: Manually set hover and active backgrounds and borders for dark and light buttons
- #36327: Truncate text to prevent multiline floating label
- #36382: Rewrite Webpack guide
- #36411: Rewrite Parcel guide
- #36412: Docs: Add a Vite Getting Started guide
- #36500: Generate local CSS variables on utilities when using state option
- #36528: Scrollspy: enable `smooth-scroll` behavior

## 🚀 Features

- #36352: Fix StackBlitz examples by embedding snippets.js when needed
- #36528: Scrollspy: enable `smooth-scroll` behavior
- #36759: Support input groups in floating forms

## 🎨 CSS

- #36156: Update `.form-control-color` sizing and styles
- #36168: Manually set hover and active backgrounds and borders for dark and light buttons
- #36178: Add a banner mixin, helping future releases and maintenance
- #36327: Truncate text to prevent multiline floating label
- #36353: Fix offcanvas not showing with `.showing`
- #36366: add back focus box shadow to `btn-link`
- #36406: CSS: few proposals
- #36423: Stylelint: Disable `custom-property-empty-line-before`
- #36446: Update Sass for computing `.table-group-divider` border
- #36447: Fix `.dropdown-item` `border-radius` when `$dropdown-padding-y` is `0`
- #36461: Fix alert border radius
- #36476: Docs: fix Reboot Horizontal rules using border utilities
- #36477: Docs: remove unused _algolia.scss
- #36499: Don't style `readonly` inputs as `disabled`
- #36500: Generate local CSS variables on utilities when using state option
- #36509: Remove `--bs-headings-color` CSS variable due to backward compatibility issues
- #36535: Fix 'Remove from map' Sass description
- #36608: dashboard example: minor fix
- #36627: Fix search modal z-index to be on top of all docs showcased components
- #36646: Fix tooltip/badge border radius when rounded disabled
- #36680: Revert db61cf3 for `$text-muted` default value
- #36689: Add missing CSS vars for `.navbar-nav`
- #36704: Fix missing `--bs-btn-disabled-border-color` in `button-outline-variant` mixin
- #36711: Add `$display-font-family` and `$display-font-style`
- #36740: Fixing pagination compile issue
- #36747: Fix active/focused button link text color
- #36759: Support input groups in floating forms

## ☕️ JavaScript

- #35679: Force tooltip and popover to recreate content every time it opens
- #36171: Assorted Event handler patches
- #36386: Fix interoperability issue regarding Event properties
- #36398: JS: tests fixes & standardization of spies usage
- #36401: Change Modal dismiss handler, listening to key down, instead of click
- #36440: Re-ordering js default objects
- #36449: Fix StackBlitz Popovers and Tooltips examples
- #36528: Scrollspy: enable `smooth-scroll` behavior
- #36561: Fix possible bug on event handler
- #36588: Handle non-empty whitespace textContent in Tooltip trigger
- #36622: Remove `.show` from panels dependent-less on the existence of `.fade` class
- #36668: Fix on #35679
- #36717: Offcanvas:  activate focustrap when backdrop is enabled
- #36758: Docs: Fix typos in snippets.js
- #36772: Fix event handler test

## 📖 Docs

- #36345: docs: add the version in npm/yarn commands
- #36346: Docs: improve image compression
- #36352: Fix StackBlitz examples by embedding snippets.js when needed
- #36362: Update search box styling and position
- #36363: Add some details on "javascript" page
- #36367: Docs: Correct rounded sizes number
- #36376: Fix missing Swag Store URL
- #36382: Rewrite Webpack guide
- #36395: Docs: quick fixes for HTML
- #36406: CSS: few proposals
- #36410: Update introduction.md
- #36411: Rewrite Parcel guide
- #36412: Docs: Add a Vite Getting Started guide
- #36414: Add docs info for using JS w/ ESM shim
- #36417: Docs: Remove `.is-invalid` from textarea validation example
- #36425: CSS: doc fixes
- #36444: Update import order for utilities API docs
- #36449: Fix StackBlitz Popovers and Tooltips examples
- #36450: Docs: Use example shortcode for all Button groups
- #36476: Docs: fix Reboot Horizontal rules using border utilities
- #36477: Docs: remove unused _algolia.scss
- #36487: Remove confusing unnecessary id/aria-labelledby for dropdown menus
- #36488: Docs: fix some ARIA Authoring Practices Guides broken links
- #36489: Docs: Update some WCAG links, expand sass.md contrast explanation
- #36495: Improve accessible name of version dropdown in docs navbar
- #36503: [docs] Document BootstrapVue being outdated
- #36510: Add example of dark navbar and offcanvas to docs
- #36516: Add .active navbar breaking change to 5.0 docs
- #36535: Fix 'Remove from map' Sass description
- #36545: Carousel: Remove redundant reference to `interval=false` from docs & tests
- #36553: Make table responsive on Grid page
- #36613: Fix popover live demo to use `data-bs-title` instead of `title`
- #36625: Add some details for non visible scrollspy elements
- #36627: Fix search modal z-index to be on top of all docs showcased components
- #36630: Docs: update clipboard.js to v2.0.11
- #36637: Fix StackBlitz examples needing docs CSS
- #36644: Added examples for Radios in List Group
- #36650: update Lighthouse URL
- #36658: Fix a typo in the documentation masthead
- #36669: Docs: alphabetical reorder of some events/methods in tables
- #36672: Docs: fix some ScrollSpy HTML copyable codes
- #36674: Docs: add indeterminate disabled checkbox example
- #36679: Remove dead link from translations
- #36696: add `type="button"` to Bootstrap versions dropdown
- #36706: Docs: Add 'Icons' link in footer
- #36712: Docs: fix description on how to alter display values
- #36717: Offcanvas:  activate focustrap when backdrop is enabled
- #36732: Add accNames to all progress bar examples
- #36734: Docs: Capitalize Unicode
- #36741: Docs: same text for disabled ranges and disabled form controls
- #36757: Fix indentation in code sample
- #36760: Add links to Webpack, Parcel, and Vite guides on homepage
- #36762: Fix various small typos in documentation
- #36763: Fix typos in code

## 🛠 Examples

- #36608: dashboard example: minor fix
- #36732: Add accNames to all progress bar examples

## 🌎 Accessibility

- #36487: Remove confusing unnecessary id/aria-labelledby for dropdown menus
- #36488: Docs: fix some ARIA Authoring Practices Guides broken links
- #36588: Handle non-empty whitespace textContent in Tooltip trigger
- #36696: add `type="button"` to Bootstrap versions dropdown
- #36717: Offcanvas:  activate focustrap when backdrop is enabled
- #36732: Add accNames to all progress bar examples

## 🏭 Tests

- #36530: Fix typo in dropdown unit test
- #36667: Minor fix to use self-closing input HTML tag
- #36742: Standardization of `spyOn` usage
- #36772: Fix event handler test

## 🧰 Misc

- #36548: Update Code of Conduct with Contributor Covenant 2.1
- #36624: Use 'needs-example' label to trigger live demo bot message
- #36700: Replace JS Bin refs by CodePen or StackBlitz references

## 📦 Dependencies

* Updated numerous devDependencies: <https://github.com/twbs/bootstrap/pulls?q=is%3Apr+is%3Aclosed+label%3Adependencies+project%3Atwbs%2Fbootstrap%2F45>

v4.6.2: tag_name: v4.6.2
body: ## Highlights

- Added an example to our Collapse plugin docs to show how to use horizontal collapsing. This has long been possible via our JS, but we never had an official class to utilize it.
- We've replaced the deprecated `color-adjust` with `print-color-adjust` in our Sass files as part of the Autoprefixer v10.4.6 issues. This should quiet the issues folks have seen from that dependency change. _If you're using our distribution CSS files, like `bootstrap.min.css`, you may still see the warning._
- Tweaked the size of `small` and `.small` to compute to a whole pixel value (was `12.8px` and now is `14px`).
- Improved accessibility around our dropdowns, color contrast, and `role` attributes.
- Fixed some broken links to supporting documentation.
- Updated dependencies across the board.

## What's Changed

* Removed blurred background reference from the Toast Docs. by @pricop in https://github.com/twbs/bootstrap/pull/35190
* Update links to CCA, MQ5 prefers-reduced-motion, evergreen WCAG urls, more resources by @patrickhlauke in https://github.com/twbs/bootstrap/pull/35427
* v4-dev backports and updates by @XhmikosR in https://github.com/twbs/bootstrap/pull/35482
* Backport #35556 by @julien-deramond in https://github.com/twbs/bootstrap/pull/35558
* Tweak toast docs by @patrickhlauke in https://github.com/twbs/bootstrap/pull/35633
* v4-dev backports and updates by @XhmikosR in https://github.com/twbs/bootstrap/pull/35642
* Doc: Reorder alphabetically lists of components by @julien-deramond in https://github.com/twbs/bootstrap/pull/36128
* Updated the small-font-size to use a round value by @pricop in https://github.com/twbs/bootstrap/pull/36172
* v4 dev backports and updates by @XhmikosR in https://github.com/twbs/bootstrap/pull/35767
* _custom-forms.scss: fix order of attributes by @twin-elements in https://github.com/twbs/bootstrap/pull/36231
* Replace the deprecated `color-adjust` with `print-color-adjust` by @AdrianCurtin in https://github.com/twbs/bootstrap/pull/36283
* [v4] Doc: remove `role="group"` from some split drop* buttons by @julien-deramond in https://github.com/twbs/bootstrap/pull/36254
* Dynamic tabs: use buttons rather than links (backport to v4) by @patrickhlauke in https://github.com/twbs/bootstrap/pull/33163
* v4 dev updates by @XhmikosR in https://github.com/twbs/bootstrap/pull/36430
* Fix closing HTML tag in navs docs by @julien-deramond in https://github.com/twbs/bootstrap/pull/36466
* v4: Horizontal collapse by @mdo in https://github.com/twbs/bootstrap/pull/36434
* Fixing tabs' tests v4 by @louismaximepiton in https://github.com/twbs/bootstrap/pull/36485
* Docs: fix some ARIA Authoring Practices Guides broken links by @julien-deramond in https://github.com/twbs/bootstrap/pull/36490
* v4 - Remove confusing unnecessary id/aria-labelledby for dropdown menus by @patrickhlauke in https://github.com/twbs/bootstrap/pull/36491
* v4 Docs: outdated ARIA/PF link, expand contrast explanation in `accessibility.md` by @patrickhlauke in https://github.com/twbs/bootstrap/pull/36492
* v4: Improve accessible name of version dropdown in docs navbar by @patrickhlauke in https://github.com/twbs/bootstrap/pull/36504
* Update devDependencies by @XhmikosR in https://github.com/twbs/bootstrap/pull/36522
* Docs: update clipboard.js to v2.0.11 by @julien-deramond in https://github.com/twbs/bootstrap/pull/36631
* Update devDependencies by @XhmikosR in https://github.com/twbs/bootstrap/pull/36724
* v4: Add Fathom by @mdo in https://github.com/twbs/bootstrap/pull/36727
* Docs: Capitalize Unicode by @julien-deramond in https://github.com/twbs/bootstrap/pull/36735
* Release v4.6.2 by @XhmikosR in https://github.com/twbs/bootstrap/pull/36725

## New Contributors

* @twin-elements made their first contribution in https://github.com/twbs/bootstrap/pull/36231
* @AdrianCurtin made their first contribution in https://github.com/twbs/bootstrap/pull/36283

**Full Changelog**: https://github.com/twbs/bootstrap/compare/v4.6.1...v4.6.2
v5.2.0-beta1: tag_name: v5.2.0-beta1
body: ## 🚀 Highlights

- #33079: Revamp tabs & follow ARIA 1.1 practices
- #33354: Column Striping Feature for Tables
- #33421: Revamp Scrollspy using Intersection observer
- #33606: Add `.form-check-reverse` modifier class
- #34334: `make-col-ready()`: remove the unused `$gutter` variable
- #34443: Convert navbar to CSS variables
- #34487: Docs offcanvas navbar
- #34547: Prefer Linux-specific fonts over Arial
- #34600: Convert buttons to CSS variables
- #34622: Convert tooltips and popovers to CSS vars
- #34644: Always set the CSS variables for gutters in containers
- #34942: Move reassigned Sass maps for colors to another stylesheet
- #35055: Add `color` and `border-color` CSS variables to tables
- #35077: Manipulator: Add JSON parse support
- #35153: Reset `z-index` on `.navbar-expand .offcanvas` and prevent `box-shadow` when collapsed
- #35399: Convert pagination component to CSS variables
- #35401: Convert alerts to CSS variables
- #35402: Convert badges to CSS variables
- #35409: Convert dropdowns to CSS variables
- #35514: Popover.js: Accept empty content through `data-bs-content`
- #35518: Add sticky bottom utility
- #35736: v5.2.0 design refresh, plus responsive offcanvas classes
- #35893: Add centered dropdown and dropup options
- #35908: Remove thicker border on table thead elements
- #35979: Adjust border-radius values and add some new utilities
- #36242: Add new `.text-bg-{color}` helpers

## 🚀 Features

- #33354: Column Striping Feature for Tables
- #33421: Revamp Scrollspy using Intersection observer
- #33606: Add `.form-check-reverse` modifier class
- #34519: Add a template factory helper to handle all template cases
- #35077: Manipulator: Add JSON parse support
- #35514: Popover.js: Accept empty content through `data-bs-content`
- #35518: Add sticky bottom utility
- #35893: Add centered dropdown and dropup options
- #36272: Toast: provide `isShown` method

## 🎨 CSS

- #32840: Support floating labels on `.form-control-plaintext`
- #33606: Add `.form-check-reverse` modifier class
- #34334: `make-col-ready()`: remove the unused `$gutter` variable
- #34443: Convert navbar to CSS variables
- #34547: Prefer Linux-specific fonts over Arial
- #34600: Convert buttons to CSS variables
- #34622: Convert tooltips and popovers to CSS vars
- #34627: Remove tooltip and popover styling as it is handled by Popper
- #34644: Always set the CSS variables for gutters in containers
- #34863: Color input validation icon
- #34942: Move reassigned Sass maps for colors to another stylesheet
- #35055: Add `color` and `border-color` CSS variables to tables
- #35082: Set `cursor: default` on disabled `.form-check-label`
- #35085: Fixes missing variable issue with `media-breakpoint-only`
- #35153: Reset `z-index` on `.navbar-expand .offcanvas` and prevent `box-shadow` when collapsed
- #35230: Don't override CSS `direction` in code elements
- #35231: Ensure sufficient contrast in `accordion-item`
- #35232: Drop prefixed version of `::file-selector-button`
- #35326: Correctly implement RFS in `:root` CSS variable for `$body-font-size`
- #35399: Convert pagination component to CSS variables
- #35401: Convert alerts to CSS variables
- #35402: Convert badges to CSS variables
- #35403: Convert breadcrumbs to CSS variables
- #35406: Bring back webkit calendar picker indicator for datalists
- #35409: Convert dropdowns to CSS variables
- #35428: Convert border utilities to CSS variables
- #35466: Fix typo in `$purples`
- #35467: Add missing `border-radius` for `btn-group`
- #35484: Reprocess inline SVGs with the latest SVGO
- #35491: Rely on `border-width` for `<hr>` size
- #35518: Add sticky bottom utility
- #35533: docs: Move `gap` utility API from "Flex" to "Spacing"
- #35554: Separate modal click functionality, utilizing backdrop callback
- #35571: Fix alerts color
- #35592: move theme-colors (vars+map) after color tints definitions
- #35676: Add black to colors map
- #35740: Add `!important` property to colored links
- #35759: Fix position of `.list-group-item-action`
- #35804: Allow to set active and disabled class also to .page-link
- #35822: Apply list group numbering to all items
- #35825: Correct the horizontal padding on grid containers
- #35829: New CSS variable for Navbars
- #35844: Fixed border radius var name and .show target in buttons
- #35850: Rename dropdown-shadow to dropdown-box-shadow for consistency
- #35858: Add null modal-footer-bg variable
- #35859: Add z-index for .toast-container
- #35862: Convert list group to CSS variables
- #35886: Replace non-existent `--bs-btn-padding` by `--bs-btn-padding-{x|y}`
- #35894: Base `.text-muted` on body color
- #35907: Use all dropdowns CSS variables
- #35908: Remove thicker border on table thead elements
- #35914: Fix dropdowns
- #35917: Define Pagination font size CSS var
- #35918: RTL arrows for popovers and tooltips
- #35921: Split CSS vars for padding values
- #35932: v5.2 border-width is disabled
- #35943: Add missing root border opacity CSS var
- #35960: Convert spinners to CSS variables
- #35961: Convert toasts to CSS variables
- #35962: Convert progress bars to CSS variables
- #35973: Fix dropdowns
- #35976: Fix space between popover's arrow and triggering element
- #35979: Adjust border-radius values and add some new utilities
- #35981: Add additional root variables, rename `$variable-prefix` to `$prefix`
- #35984: Update docs syntax colors head of dark mode
- #35994: Update `$border-color` to use `rgba()`
- #35995: Ignore warning for `.navbar-light` deprecation
- #35996: Add some `calc()` for manipulating new CSS variable version of border-width
- #36003: Set opacity on dropdown-divider for now
- #36018: Some CSS fixes
- #36038: v5.2.0 migration updates
- #36058: Fix proposal for `.dropstart`
- #36070: Popover : New CSS var
- #36071: Train PR: CSS variables for accordion, cards, navs, and modals
- #36082: Fix duplicate border radius CSS var definition
- #36083: Reuse all breadcrumb CSS vars available
- #36093: Adding `@include font-size` when not
- #36098: Use new CSS vars
- #36100: Adding CSS var to list-group-item-action
- #36105: Fix for missing CSS variables on `.navbar-nav`
- #36126: Use the `border-color` property instead of the CSS variable in border color utilities
- #36145: Improve use of CSS vars in Toasts
- #36148: Add CSS vars for accordions
- #36149: Modal : Changing the CSS var management
- #36157: Add `$input-disabled-color` Sass variable
- #36179: CSS : Minor fixes
- #36202: Update _breakpoints.scss
- #36220: Clean up last `$variable-prefix` usages
- #36238: Revert `border-color` change
- #36239: Iterate on border utilities
- #36242: Add new `.text-bg-{color}` helpers
- #36277: Fix proposal for Tooltips
- #36296: Remove leftover abbr styles in Reboot for tooltips

## ☕️ JavaScript

- #31607: Use Babel and ES6 in docs JS files
- #32692: Clean tooltip component unneeded functionality
- #32999: Extract Carousel's swipe functionality to a separate Class
- #33079: Revamp tabs & follow ARIA 1.1 practices
- #33421: Revamp Scrollspy using Intersection observer
- #33872: Extract Component config functionality to a separate class
- #34509: build: read & dynamically resolve `imports` on plugins build
- #34519: Add a template factory helper to handle all template cases
- #34945: Carousel cleanup & refactoring
- #35077: Manipulator: Add JSON parse support
- #35127: tooltip.js: use array.includes instead of for iteration
- #35141: Modal tweaks & cleanup
- #35156: Collapse: refactor active children handling
- #35157: Dropdown remove redundant code
- #35161: Swipe: add test to ensure that it ignores `pinch` events
- #35183: JS: minor refactoring
- #35388: Scrollbar: remove margin/padding properties properly
- #35400: Tooltip: Some more changes
- #35410: BaseComponent: add a couple more tests
- #35419: Alert: add a couple more tests
- #35440: Tooltip: remove leftover method
- #35441: Fix popover arrow & tooltip template after the `setContent` addition
- #35448: Dropdown tests: Use a function to improve readability
- #35456: Tooltip: remove title attribute before show & add tests
- #35492: ScrollBar.js. Minor refactoring and add test
- #35500: Dropdown: fix toggle focus after dropdown is hidden using the `ESC` button
- #35506: build/postcss.config.js: minor tweaks
- #35507: Toast: join multiple `classList` calls
- #35510: util/index.js: minor refactoring
- #35511: Tab: minor refactoring
- #35512: Scrollspy: minor refactoring
- #35514: Popover.js: Accept empty content through `data-bs-content`
- #35527: Popover/Tooltip: Fix vertical alignment on arrow of tip elements
- #35540: Tooltip: remove extraneous call to `_getConfig()`
- #35546: More tooltip refactoring
- #35554: Separate modal click functionality, utilizing backdrop callback
- #35559: Event handler: replace deprecated function & merge `new Event` with `new CustomEvent`
- #35589: Remove explicit use of aria-hidden for offcanvas when closed
- #35590: Assorted JS cleanup
- #35682: fix isVisible behavior with new chrome version
- #35684: Selector Engine: improve `parents` method to utilize newer JS native methods
- #35689: Optimize jQueryInterface in Collapse
- #35734: src/tooltip.js Optimization
- #35748: Dropdown.js optimizations
- #35752: Dropdown cleanup and fixes
- #35753: Carousel tweaks
- #35754: Event Handler cleanup
- #35766: Dropdown: use a combined selector to filter not shown instances
- #35832: Add static backdrop to offcanvas
- #35856: Make event name helper and use it on tooltip & popover to reduce dist sizes
- #35866: Dropdown: use a better selector to avoid triggering click if button is disabled
- #35870: Dropdown: Simplify dataKeyApiHandler
- #35871: Carousel tweaks
- #35893: Add centered dropdown and dropup options
- #35902: Modal: refactor listeners to reduce some code noise
- #35930: Carousel patches
- #35973: Fix dropdowns
- #35983: Carousel tweaks
- #35990: Carousel patches
- #35991: Patch dropdown.js
- #36028: Dropdown test
- #36169: Handle disabled focused tabs with tab JavaScript plugin
- #36186: EventHandler: change check method for custom events, avoiding regex
- #36217: Document incompatibilities between Bootstrap JS and React/.etc
- #36272: Toast: provide `isShown` method
- #36273: Separate docs js assets
- #36324: Revert backdrop utilization, handling clicks over modal

## 📖 Docs

- #31337: JS docs formatting tweaks
- #31607: Use Babel and ES6 in docs JS files
- #32953: Replace AnchorJS with a Hugo render hook
- #34487: Docs offcanvas navbar
- #35124: Update NuGet docs to specify only .NET Framework projects are supported
- #35154: Add top placement info to offcanvas docs
- #35160: Update typography.md to remove an unnecessary `<abbr>` tag
- #35223: Add missing `role="search"` and `type="search"` in navbar doc and examples
- #35234: images.md: remove zero-width space
- #35236: Fix typo in RTL Hello World! sentence
- #35264: fix(offcanvas): Add missing titles class
- #35320: Update import stacks required for modifying utilities
- #35327: floating-labels: remove `aria-label` in the `select` example
- #35328: Fix spacing utility classes mentioned in navbar supported content documentation
- #35348: Fix typo in vertical alignment of table cells
- #35373: Add missing scss/maps imports
- #35414: Fix variable name in Sass customizing section
- #35434: Breadcrumb docs: drop confusing currentColor and add new callout
- #35446: Update edge-to-edge design instructions
- #35468: Fix variable name in form overview docs
- #35486: Update api.md
- #35497: docs: add Tabler Icons to list of icon packs
- #35532: docs: Add responsive variations for `align-content-between`
- #35556: docs: Use `param` to set Bootstrap version in Contents page
- #35563: docs: A fix for CSS Variables and some proposal
- #35579: docs: add reference to `sticky-xxl` utils
- #35587: Add note to carousel crossfade docs about bg color
- #35588: Docs: Strengthen and expand note about dynamic tabs with dropdown menus
- #35644: docs: add a StackBlitz "Try It" button in code examples
- #35647: Update cspell config
- #35649: Docs: group together reusable CSS for examples in a single stylesheet
- #35696: Docs - Remove duplicate Octicons entry in icons list
- #35713: Remove incorrect statement about the disabled attribute on `<form>`
- #35730: Add Spanish translation
- #35735: Change X to Extra
- #35736: v5.2.0 design refresh, plus responsive offcanvas classes
- #35741: docs: remove moot `autocomplete` attributes
- #35775: Fix dropdown docs about autoclose and esc key.
- #35778: Fixed typo in documentation form validation section
- #35814: Remove remaining `.navbar-light` classes
- #35818: code indentation in readme
- #35827: Fixes #32082
- #35828: Fix typo in Badges CSS variables description
- #35837: Update reboot.md
- #35878: Improve modal component doc
- #35895: Mention form height change in migration guide
- #35903: Separate override for hr's in component examples
- #35905: Site assets: `.bd-bg-purple-bright` → `.bd-bg-violet` and drop unused `.bd-text-purple-bright`
- #35909: update ionicons link
- #35931: Remove unneeded classes from toasts docs
- #35942: update google material icons link
- #35948: docs: add missing `.dropup` in dropup centered example
- #35955: docs: Update Japanese translation
- #35980: Redesign the "Added in" badges in the docs
- #35984: Update docs syntax colors head of dark mode
- #36002: Fix docs error after #35644
- #36007: Convert added in badges to shortcode
- #36008: Add v5.1.0 to migration guide, update v5.2.0 additions
- #36013: Remove duplicate entry in migration.md
- #36030: Update parcel.md
- #36038: v5.2.0 migration updates
- #36040: Fix migration guide typos
- #36058: Fix proposal for `.dropstart`
- #36073: Fix typo for StackBlitz edit button's tooltip
- #36088: Fix StackBlitz edit feature by selecting the closest example
- #36092: Doc fixes
- #36099: Changing to btnTitle and btnEdit
- #36101: Move "Navbar" before "Navs & Tabs" in sidebar
- #36112: Fix CSpell by adding 'Analyser'
- #36123: Doc: Reorder alphabetically lists of components
- #36137: Change second example of dropdown form
- #36144: Doc: fix modals and navs CSS vars description
- #36151: Update offcanvas example to include .show class
- #36163: Doc: Uniformization of nav tabs content panes
- #36173: Fix Chroma line highlight style
- #36176: v5.2.0: Migrate to DocSearch 3
- #36182: Fix containers page in docs to re-order list so it matches sections b…
- #36188: example: change `.border-right` to `.border-end`
- #36190: Fix spacing of code snippets
- #36191: Do some CSS and Migration guide cleanup
- #36192: One more code snippet fix
- #36194: Refactor some docs examples CSS
- #36195: Doc: minor modifications in Scrollspy
- #36196: Realign Cheatsheet nav tabs example rendering with the doc examples
- #36199: Minor fixes
- #36203: Docs: update documentation js examples, using es6
- #36204: Rewrite Getting Started > Introduction page to be more guide-like
- #36212: Doc: remove `role="group"` from some split drop* buttons
- #36217: Document incompatibilities between Bootstrap JS and React/.etc
- #36218: Doc: mention Popper instead of Popper.js
- #36219: Doc: fix offset content for examples page
- #36245: Update new docs version picker to work on home and examples pages
- #36252: Doc: update path to `@popperjs/core` in parcel.md
- #36260: Docs(Scrollspy): minor changes to be aligned with new version of javascript
- #36273: Separate docs js assets
- #36276: Add proper markup on modal's page tooltips and popovers
- #36307: Fix search with xs to md breakpoints
- #36322: Fix contents.md
- #36328: Remove unused `.border-right` rule from modal example CSS file
- #36333: Doc: fix text overflow example
- #36335: Minor changes in 'Usage with JavaScript frameworks' description
- #36337: docs: drop Scratch usage
- #36340: Fix a11y keyboard access to docs navigation
- #36344: docs: link to the root page for the homepage

## 🛠 Examples

- #35223: Add missing `role="search"` and `type="search"` in navbar doc and examples
- #35308: update grid example docs
- #35365: Make footer examples responsive to mobile screens
- #35483: Replace inline styles in example "Dropdowns"
- #35699: Docs: replace CSS by utilities in examples
- #35704: Fix spelling mistake in footer example
- #35733: examples: fix a couple typos found with codespell
- #35877: remove opacity utilities from example CSS
- #35898: Remove border of disabled calendar buttons in Dropdowns example
- #35919: RTL carousel example
- #35997: Add another list-group snippet example
- #36075: Fix duplicate `.rounded-*` and `.fw-semibold` defs in examples

## 🌎 Accessibility

- #33079: Revamp tabs & follow ARIA 1.1 practices
- #35223: Add missing `role="search"` and `type="search"` in navbar doc and examples
- #35231: Ensure sufficient contrast in `accordion-item`
- #35588: Docs: Strengthen and expand note about dynamic tabs with dropdown menus
- #35589: Remove explicit use of aria-hidden for offcanvas when closed

## 🔧 Utility API

- #35428: Convert border utilities to CSS variables

## 🏭 Tests

- #35161: Swipe: add test to ensure that it ignores `pinch` events
- #35184: tests: try to fix a few random failures
- #35410: BaseComponent: add a couple more tests
- #35419: Alert: add a couple more tests
- #35431: Tests: consistency changes
- #35448: Dropdown tests: Use a function to improve readability
- #35455: Tests: Minor fixes
- #35456: Tooltip: remove title attribute before show & add tests
- #35492: ScrollBar.js. Minor refactoring and add test
- #35501: Fix tests fixture type
- #35585: Fix visual tests
- #35659: tests: replace 'done' callback with 'Promise' to fix deprecation errors
- #35757: Fix Popover test that randomly fails on BrowserStack
- #35765: tests: revisit all tests using Promise.reject instead of throwing an error
- #36028: Dropdown test

## 🧰 Misc

- #31607: Use Babel and ES6 in docs JS files
- #34509: build: read & dynamically resolve `imports` on plugins build
- #35178: Switch to Node.js 16 and npm 8.
- #35313: README.md remove broken "David DM" dependency badges
- #35395: build/change-version.js: fix wrong map usage
- #35447: Remove the now outdated build/svgo.yml
- #35451: package.json: add GitHub Sponsors and reorder properties
- #35452: README.md: wrap file contents in a `details` element
- #35454: CI: add `workflow_dispatch`
- #35481: JS tests: only test one Node.js version
- #35573: Move linkinator to GitHub Actions.
- #35586: build-plugins.js: use globby package
- #35593: Move cspell to Actions
- #35641: Update nuget/bootstrap.png
- #35647: Update cspell config
- #35680: Update cspell config
- #35846: CI: add issues-helper
- #35910: Release Drafter: add highlights
- #36185: Update CODE_OF_CONDUCT.md

## 📦 Dependencies

* Updated numerous devDependencies: <https://github.com/twbs/bootstrap/pulls?q=is%3Apr+is%3Aclosed+label%3Adependencies+project%3Atwbs%2Fbootstrap%2F32>

4.6.1: tag_name: v4.6.1
body: ### What's changed

- Replace Sass division with multiplication and custom `divide()` function by @mdo in https://github.com/twbs/bootstrap/pull/34571
- Update RFS to v8.1.0 by @XhmikosR in https://github.com/twbs/bootstrap/pull/34571
- fix(forms): input-group and validation icons by @ffoodd in https://github.com/twbs/bootstrap/pull/32968
- Fix minor visual bug in Firefox caused by `moz-focusring` by @kremit in https://github.com/twbs/bootstrap/pull/32821
- Adjust `SAFE_URL_PATTERN` regex for use with test method of regexes by @nikonthethird in https://github.com/twbs/bootstrap/pull/33153
- Add `sms` in the `SAFE_URL_PATTERN` for sanitizer by @XhmikosR in https://github.com/twbs/bootstrap/pull/35074
- Adjust feedback icon position and padding for `select.form-control` by @mdo in https://github.com/twbs/bootstrap/pull/33206
- Carousel: use buttons, not links, for prev/next controls by @patrickhlauke in https://github.com/twbs/bootstrap/pull/33165
- v4: Sass docs for default variables by @mdo in https://github.com/twbs/bootstrap/pull/33392
- Handle complex expressions in `add()` & `subtract()` by @ffoodd in https://github.com/twbs/bootstrap/pull/34047
- More concise improvements for `add()` and `subtract()` by @ffoodd in https://github.com/twbs/bootstrap/pull/34432
- Remove `aria-haspopup` from dropdowns by @patrickhlauke in https://github.com/twbs/bootstrap/pull/33624
- Dropdown: support `.dropdown-item` wrapped in `<li>` tags by @cpsievert in https://github.com/twbs/bootstrap/pull/33649
- Update Node versions in JS tests (drop Node 10, add Node 16), update docs JS assets and add variables for `vertical-align` in spinners by @XhmikosR in https://github.com/twbs/bootstrap/pull/33807
- Replace Freenode with Libera IRC server by @midzer https://github.com/twbs/bootstrap/pull/34050
- Fix repetition in the Navbar docs description by @coliff in https://github.com/twbs/bootstrap/pull/34208
- Enable `0.x` with negative margins in utilities by @k-utsumi in https://github.com/twbs/bootstrap/pull/33593
- Remove print `thead` rule by @coliff in https://github.com/twbs/bootstrap/pull/34426
- Fix prevented `show` event disabling modals with fade class from being displayed again by @alpadev in https://github.com/twbs/bootstrap/pull/34087
- Input group validation with custom-file input by @ffoodd in https://github.com/twbs/bootstrap/pull/33239
- Add eslint-plugin-qunit and tighten JS tests by @XhmikosR in https://github.com/twbs/bootstrap/pull/32270
- Update our tests to Node 16 and npm 8 by @XhmikosR in https://github.com/twbs/bootstrap/pull/35142
- Disabled link cleanup by @patrickhlauke in https://github.com/twbs/bootstrap/pull/34924
- Updated our devDependencies including terser; also enabled two passes for terser by @XhmikosR

### Full changelog

<https://github.com/twbs/bootstrap/compare/v4.6.0...v4.6.1>

v5.1.3: tag_name: v5.1.3
body: ## Fixes

### 🎨 CSS

- #35143: Revert "Add `align-self: center` to buttons for improved rendering in flex containers"

v5.1.2: tag_name: v5.1.2
body: ## Highlights

- Temporarily patched a [postcss-values-parser](https://github.com/shellscape/postcss-values-parser/issues/138) issue by rearranging our `calc()` functions that use negative numbers. This should restore the ability to import and compile Bootstrap's Sass in `create-react-app`.
- Added `border-radius` sizes to small and large `.form-select`s
- Added `align-self: center` to buttons for improved rendering in flex containers
- Fixed Collapse regression that prevented toggling between sibling children
- Updated JS Sanitizer to add `sms` in the `SAFE_URL_PATTERN`
- Improved docs around `.img-fluid`
- Added `role="switch"` to our form switches in our docs
- Implemented GitHub Issue forms to replace our previous issue templates.

## Changes

### 🎨 CSS

- #34799: fix custom property values of row overrides individual cell
- #34834: Add `align-self: center` to buttons for improved rendering in flex containers
- #34853: Add `border-radius` sizes to small and large `.form-select`s
- #34861: Separator for table direct children
- #35017: Use Sass variable instead of RGB components
- #35033: Add workaround for dart sass compile error

### ☕️ JavaScript

- #34951: Fix Collapse regression of handling toggling between sibling chilldren
- #34980: Minor refactoring
- #35074: sanitizer: add `sms` in the `SAFE_URL_PATTERN`

### 📖 Docs

- #34824: docs: Add `role="switch"` to switches
- #34918: docs: Update RFS version & move "v" prefix to config.yml
- #34920: Fix Backdroped typo
- #34921: Fix JavaScript typo
- #34922: fix predefined typo
- #34923: fix utilities typo
- #34926: Improve description of `.img-fluid` in docs
- #34935: Non-blocking typo fix
- #34936: replace dummy text with English for Text truncation page
- #34946: Changes some latin/dummy text to English
- #35013: Add offcanvas to the components requiring JavaScript
- #35111: Fix capitalization after period in `contents.md`

### 🛠 Examples

- #35022: examples: Add `role="switch"` to switches

### 🧰 Misc

- #34626: Implement issue forms
- #34940: Add cSpell custom dictionary and docs-spellcheck script
- #35070: rollup: specify `generatedCode: 'es2015'`
- #35086: README.md: fix capitalization after period

### 📦 Dependencies

* Updated numerous devDependencies: <https://github.com/twbs/bootstrap/pulls?q=is%3Apr+is%3Aclosed+label%3Adependencies+project%3Atwbs%2Fbootstrap%2F43>

v5.1.1: tag_name: v5.1.1
body: ## Highlights

## 🎨 CSS

- #34679: Fix font size variable name
- #34699: Add check to `rgba-css-var` function for body or bg
- #34773: Include root.scss in all dist builds
- #34779: Fix `$dropdown-link-hover-color` variable color value in _variable.scss file

## ☕️ JavaScript

- #34621: carousel: move common checks to a function
- #34701: Fix modal when is triggered by `bs-toggle`, to hide other open instances
- #34835: Collapse on toggle, should not hide descendant tabpanels
- #34842: Fix tooltip `data-bs-original-title` issue

## 📖 Docs

- #32781: docs: shortcodes tweaks and consistency changes
- #34686: docs: Fix placeholders typo
- #34752: Fix typo in placeholder docs
- #34769: Enhance Alerts > Live Example section
- #34781: docs: fix typos in approach and placeholders
- #34787: Progress page: remove toggle animation button
- #34840: clarify importing all vs specific plugins
- #34842: Fix tooltip `data-bs-original-title` issue
- #34877: docs: add `$enable-smooth-scroll` to Sass options page
- #34886: Disabled link cleanup
- #34892: Fix a11y issues in `.hstack` example and placeholder 'How it works' example
- #34910: Docs: Add Callout to Stacks Helper page about limited flexbox gap support
- #34913: docs: make use of the `.Site.Params.docs_version` variable
- #34914: Typo/US locale fixes

## 🛠 Examples

- #34766: dashboard-rtl: use the same scripts as the dashboard example

## 🌎 Accessibility

- #34886: Disabled link cleanup

## 🏭 Tests

- #34077: Add GitHub SHA in BrowserStack build ID.
- #34912: BrowserStack: add Firefox 60 and Chrome 60

## 📦 Dependencies

* Updated numerous devDependencies: <https://github.com/twbs/bootstrap/pulls?q=is%3Apr+is%3Aclosed+label%3Adependencies+project%3Atwbs%2Fbootstrap%2F42>

v5.1.0: tag_name: v5.1.0
body: ## Highlights

- Added experimental, opt-in CSS Grid support
- Added support for responsive offcanvas components in navbars
- Added new placeholders component for skeleton loading screens
- Added support for horizontal collapsing in the collapse component
- Added new stack and vertical rule helpers
- Added tons of new CSS variables for body styles, colors, RGB colors, and more
- Updated `.bg-*` and `.text-*` utilities to use CSS variables and new RGB CSS variables for real-time customization
- Added four new component examples for dropdowns, footers, list groups, and modals
- Updated modal and offcanvas backdrops to make them unique to each component
- Reverted ability for `.col-*` classes to override `.row-cols-*` classes for now until we can fix some critical bugs

## 🚀 Features

- #31813: Add optional CSS grid
- #31859: Add a "skeletons" component
- #32319: Add maps for all colors, document how to extend color utilities
- #33403: modal: change `data-dismiss` so that it can be outside of a modal using `bs-target`
- #33781: Add utility classes for opacity
- #33986: New helpers: `.hstack`, `.vstack`, and `.vr`
- #34253: Add horizontal collapse support
- #34273: Offcanvas navbar
- #34333: Accept argument of different types in the `getInstance` method

## 🎨 CSS

- #31813: Add optional CSS grid
- #32319: Add maps for all colors, document how to extend color utilities
- #33781: Add utility classes for opacity
- #33986: New helpers: `.hstack`, `.vstack`, and `.vr`
- #34100: Updated utility API (css-vars utils and new bg/color utils), plus new root CSS variables
- #34253: Add horizontal collapse support
- #34273: Offcanvas navbar
- #34432: More concise improvements for `add()` and `subtract()`
- #34440: Add null `$card-box-shadow` variable
- #34445: fix(forms): prevent color control from shrinking
- #34475: Make text decoration consistent with other anchors
- #34481: Make the `$accordion-icon-color` default value consistent with the `$accordion-button-color`
- #34572: Clean up a couple CSS Grid issues
- #34612: Revert "Allow individual grid classes to override `.row-cols`"
- #34651: Update `$input-bg` to use `$body-bg`

## ☕️ JavaScript

- #33402: Changes to Alert component to match the others
- #33403: modal: change `data-dismiss` so that it can be outside of a modal using `bs-target`
- #33603: Fix `Manipulator.offset()`
- #33610: Toasts: Change showing timings and classes to keep toast `display:none` by default
- #33865: Add shift-tab keyboard support for dialogs (modal & Offcanvas components)
- #33866: Add dynamic, live alerts example to docs
- #34170: Use a streamlined way to trigger component dismiss
- #34205: Cleanup tooltip & popover components
- #34207: Make proper use of the SelectorEngine in ScrollSpy
- #34215: Use the `switch` statement instead of `if`
- #34220: Do a major cleanup in Collapse.js
- #34333: Accept argument of different types in the `getInstance` method
- #34441: util.js: remove `Selector.findOne()` dependency
- #34458: Dropdown cleanups
- #34543: Fix `Util.reflow` function and add documentation
- #34619: tooltip: move repeated strings to constants
- #34620: Enable a few eslint-config-xo rules
- #34628: Regression on tooltip template creation process.

## 📖 Docs

- #32319: Add maps for all colors, document how to extend color utilities
- #33866: Add dynamic, live alerts example to docs
- #34100: Updated utility API (css-vars utils and new bg/color utils), plus new root CSS variables
- #34406: Fix site params variable on themes section
- #34472: Added new Offcanvas file to import example
- #34517: Update nav-tab.md
- #34526: Add: GitHub Octicons to the list
- #34557: docs: minor image compression improvements
- #34573: Update the custom Sass import docs
- #34574: Document change to `hr` in v5
- #34577: Make note of `_root.scss` being required
- #34578: Rename Build Tools page to Contribute
- #34605: Collapse page: add a link to the accordion page
- #34637: Improved docs describing `media-breakpoint-down` breakpoints

## 🛠 Examples

- #33882: Add four new snippet examples
- #34273: Offcanvas navbar
- #34336: Remove unneeded `.text-white-50` CSS rule from Offcanvas Example

## 🌎 Accessibility

- #33865: Add shift-tab keyboard support for dialogs (modal & Offcanvas components)

## 🔧 Utility API

- #34100: Updated utility API (css-vars utils and new bg/color utils), plus new root CSS variables

## 🧰 Misc

- #32907: npm scripts: add `aggregate-output`
- #34389: CONTRIBUTING.md: fix broken link to README.md
- #34453: CI: make use of the `actions/setup-node`'s `cache` option

## 📦 Dependencies

- Updated numerous devDependencies: https://github.com/twbs/bootstrap/pulls?q=is%3Apr+is%3Aclosed+label%3Adependencies+project%3Atwbs%2Fbootstrap%2F31

v5.0.2: tag_name: v5.0.2
body: ## 🚀 Features

- #34052: Automatically select an item in the dropdown when using arrow keys

## 🎨 CSS

- #33621: Allow individual grid classes to override `.row-cols`
- #34008: Fix x-paddings for select (with floating label, and in Firefox)
- #34026: Set the correct color for popover header bottom border
- #34034: Add missing transition to `.form-select`
- #34044: Fix wrong comment text for tooltip
- #34047: Handle complex expressions in `add()` & `subtract()`
- #34048: Decouple `--bs-table-bg` and `--bs-table-accent-bg`
- #34062: Document how to make utilities responsive using the API
- #34124: fix(dropdowns): RTL for `.dropdown-menu-*`
- #34161: fix(forms): unitless `line-height` for floating labels
- #34223: docs(style): fix display of nested `<ul><li>`
- #34245: Replace `/` division with multiplication and custom `divide()` function
- #34255: Don't set auto margin on offcanvas close
- #34281: Fix lingering Sass math
- #34283: Update the `divide()` function and RFS
- #34332: Fix another Sass division

## ☕️ JavaScript

- #33276: Add `getOrCreateInstance` method in base-component
- #33371: Popover & Tooltip: Allow `dispose`/`hide` methods usage through `jQueryIntreface`
- #33608: Utils: add `getNextActiveElement` helper function
- #33845: Fix handling of transitionend events dispatched by nested elements
- #33928: Reset inside a Dialog does not work if `data-dismiss="modal"` is set
- #33947: Refactor scrollbar.js to be used as a Class
- #33948: Add tests for scrollbar.js & better handling if a style property doesn't exist
- #33960: fix `isVisible` false positives from deep nesting or alternate means
- #33982: Don't add empty content holder when there is no content available
- #34014: Fix backdrop "Cannot read property 'removeChild' of null" when removed from body
- #34052: Automatically select an item in the dropdown when using arrow keys
- #34070: Fix test of #34014
- #34071: Change `element.parentNode.removeChild(element)` to `element.remove()`
- #34085: Fix prevented show event disables modals with fade class from being displayed again
- #34092: Backdrop: Fix stale body by removing unnecessary default
- #34158: Register only one `DOMContentLoaded` event listener in `onDOMContentLoaded`
- #34266: Fix carousel buttons
- #34307: fix(carousel): arrow keys break animation if carousel sliding

## 📖 Docs

- #33724: Nav-tabs documentation example: Adjust example to `querySelectorAll`
- #33749: add Bootstrap 5 Simplified Chinese translation
- #34009: Drop `BlinkMacSystemFont` in docs
- #34018: Adjusted z-index to cover "copy" buttons
- #34040: Placeholder changes to input value in readonly input.
- #34044: Fix wrong comment text for tooltip
- #34050: Replace Freenode with Libera IRC server
- #34062: Document how to make utilities responsive using the API
- #34074: Update Hugo config and sitemap.xml
- #34090: Change HTTP to HTTPS
- #34143: Add positioned badges example to docs
- #34160: img in horizontal card
- #34175: Fix typo in sass.md ("theses"→ "these")
- #34179: Missed explanations for variables override
- #34180: docs: update dropdowns.md to reflect the correct version
- #34183: docs: update migration.md to fix a typo
- #34199: docs: update overview.md to fix typo
- #34223: docs(style): fix display of nested `<ul><li>`
- #34239: fix(docs): update docs to match the newest modal-open removal
- #34251: Document the change to breakpoint mixins
- #34256: Add important to utilities, mention it's usage and global variable
- #34263: Fix error in JavaScript doc example
- #34280: Remove a leftover `sass:math` module call

## 🛠 Examples

- #34007: Dashboard example improvements
- #34011: Cheatsheet: fix JS errors in `setActiveItem()`
- #34214: fix accessibility issue on sidebars example

## 🌎 Accessibility

- #34052: Automatically select an item in the dropdown when using arrow keys
- #34214: fix accessibility issue on sidebars example

## 🔧 Utility API

- #34062: Document how to make utilities responsive using the API
- #34256: Add important to utilities, mention it's usage and global variable

## 🏭 Tests

- #33948: Add tests for scrollbar.js & better handling if a style property doesn't exist

## 🧰 Misc

- #34075: Improve vnu-jar.js
- #34250: Replace Freenode with Libera.Chat in the remaining files
- #34279: build/vnu-jar.js: clean up ignores

## 📦 Dependencies

- Updated numerous devDependencies: https://github.com/twbs/bootstrap/pulls?q=is%3Apr+is%3Aclosed+label%3Adependencies+project%3Atwbs%2Fbootstrap%2F41

v5.0.1: tag_name: v5.0.1
body: ## 🎨 CSS

- #33551: Modals no longer use `.modal-open` to affect the `<body>` scroll
- #33644: Validated inputs in `.input-group` shouldn't be behind sibling element
- #33825: Prevent `accent-bg` from leaking in nested table
- #33870: Don't redefine `$list-group-color` in loop
- #33961: Revert `:read-only` selector back to `[readonly]`

## ☕️ JavaScript

- #33221: Prevent toast autohiding if focusing or hovering
- #33288: Remove potential false positive assertions
- #33327: Move get element functionality to a helper
- #33381: Popover/Tooltip: streamline `config` property to start with underscore
- #33609: Merge js-components `transitionend` listener callbacks into one method
- #33635: Extract static `DATA_KEY` & `EVENT_KEY` to base-component
- #33740: Refactor: move disposing properties into the base class
- #33853: Fix backdrop `rootElement` not initialized in Modal
- #33920: Fix: Click on input outside of dropdown-menu prevents dropdown from closing
- #33938: Fix dropdown test warning "without expectations"

## 📖 Docs

- #33709: Add Arabic translation
- #33837: update About text now that Bootstrap 5 is live
- #33841: Fix typo in scrollspy docs
- #33842: Fix browser support versions in migration doc
- #33843: Fix typo in migration.md
- #33855: Remove extra t in Close button heading in Migration guide
- #33868: Fix value
- #33879: Fix "no long require" to "no longer require" typo
- #33893: Add accessible names to SVG icons in alerts
- #33896: Fix accordion link
- #33901: docs: make tooltip anchor properly wrap the svg
- #33904: Add Fathom Analytics to v5 docs
- #33915: docs: fix rtlcss stringmap configuration
- #33916: Remove unneeded "Edge Legacy" mention in Range docs
- #33924: Fix "directoinal" typo in v5 migration docs

## 🛠 Examples

- #33850: Fix unnecessary classes
- #33859: Update Sidebars example to fix dividers and rendering on Chrome
- #33926: Fix offcanvas example, using a custom trigger selector

## 🌎 Accessibility

- #33893: Add accessible names to SVG icons in alerts

## 🏭 Tests

- #33288: Remove potential false positive assertions
- #33635: Extract static `DATA_KEY` & `EVENT_KEY` to base-component
- #33927: Fix offcanvas test to expect the initial body `overflow` value
- #33938: Fix dropdown test warning "without expectations"

## 🧰 Misc

- #33923: CI: remove Node.js 10

## 📦 Dependencies

- Updated numerous devDependencies: https://github.com/twbs/bootstrap/pulls?q=is%3Apr+is%3Aclosed+label%3Adependencies+project%3Atwbs%2Fbootstrap%2F38

v5.0.0: tag_name: v5.0.0
body: ## Highlights

#32155: Updated `make-col()` mixin to generate equal columns when no size is specified
#32763: Added new `color-scheme()` mixin
#33389: Dropdown menus now have option become clickable
#33453: Added new docs footer
#33548: Offcanvas header components are now vertically aligned
#33549: Added offcanvas-top modifier
#33634: Added support for `.dropdown-item`s wrapped in `<li>`s
#33626: Fix v5 regressions in tab dropdown functionality

## 🚀 Features

- #32763: Add `color-scheme` mixin
- #33389: Dropdown — Add option to make the dropdown menu clickable
- #33549: Add offcanvas-top modifier

## 🎨 CSS

- #32155: Add equal column mixin
- #32763: Add `color-scheme` mixin
- #33292: Make accordion icon rotation more natural
- #33411: Fix validation feedback icon in select multiple
- #33478: Make `.nav-link` color consistent when using buttons
- #33482: Dropdown — Apply positioning only when Popper is not used
- #33548: Vertically align offcanvas header components
- #33549: Add offcanvas-top modifier
- #33550: Spinner alignment changes
- #33598: Hide validation icons from multiple selects
- #33600: Have $form-check-input-border's default derive from $black
- #33607: Reduce color-scheme complexity
- #33642: use `:read-only` css selector instead `[readonly]` for consistency
- #33658: fix: use list-group variable instead of alert
- #33736: accordion: fix `border-top` on Firefox

## ☕️ JavaScript

- #32439: Decouple BackDrop from modal
- #33245: Decouple Modal's scrollbar functionality
- #33249: Simplify Modal Config
- #33250: Simplify ScrollSpy config
- #33310: fix: make EventHandler better handle mouseenter/mouseleave events
- #33389: Dropdown — Add option to make the dropdown menu clickable
- #33429: Remove element event listeners through base component
- #33451: Add missing things in `hide` method of dropdown
- #33456: Use our `isDisabled` util on dropdown
- #33466: Refactor dropdown's hide functionality
- #33479: Fix dropdown escape propagation
- #33496:  Use cached `noop` function
- #33497: Use template literals instead of concatenation
- #33499: Fix wrong carousel transformation, direction to order
- #33545: Use the backdrop util in offcanvas, enforcing consistency
- #33586: Tab.js: Fixes on click handling
- #33589: refactor: make static `selectMenuItem` method private
- #33612: tests: fix random BrowserStack failures in scrollbar
- #33626: Fix v5 regressions in tab dropdown functionality
- #33634: Dropdown: support `.dropdown-item` wrapped in `<li>` tags
- #33638: Fix toggle between modals example
- #33643: fix: clicking an item in navbar dropdown should not collapse the dropdown in firefox
- #33666: Modal.js: fix test for scrollbar
- #33677: Offcanvas.js: If scroll is allowed, should allow focus on other elements
- #33684: Don't change the value for `altBoundary` option
- #33706: Scrollbar: respect the initial body overflow value

## 📖 Docs

- #33446: Make offcanvas example fully static
- #33453: Add new docs footer
- #33521: The spacing margin side identifiers 's' and 'e' may be intuitive for …
- #33522: Clarify docs accordion example
- #33543: Update parcel.md
- #33553: Add example: Panels stay open
- #33567: Fixed wrong method name _getInstance
- #33571: footer: fix `rel=noopener` attribute
- #33583: docs: update clipboard.js to v2.0.8
- #33597: Docs: Fix wrong dark attribute in Table - Vertical Alignment
- #33632: Correct the heading for the States section
- #33638: Fix toggle between modals example
- #33664: Docs: fix W3C validation errors in list-group example
- #33668: Update anchor.js to v4.3.1.
- #33669: Change from preventOverflow to detectOverflow in `boundary` option
- #33675: Fix typo
- #33676: Fix Grid System docs
- #33685: docs: fix the default value of Popper's `boundary` option
- #33687: Fixes #33686 typo in RTL docs
- #33690: Add Bootstrap Icons to alerts docs
- #33726: Replace modal and scrollspy placeholder content
- #33733: Tooltip/Popover — Minor doc updates
- #33735: Clarify `boundary` option description
- #33772: Improve overall new examples' accessibility
- #33782: Add new team members to the Teams page
- #33786: Docs: adding intro about web accessibility
- #33797: Update links to CCA, MQ5 prefers-reduced-motion, evergreen WCAG urls
- #33810: Tweak toast docs
- #33829: Update migration guide for some v5 changes
- #33832: Fix doc typo and Bootstrap Icons link
- #33833: refactor(docs): Added form file input variables
- #33834: Rewrite migration guide

## Examples

- #33097: Update RTL examples
- #33759: fix: change margin breakpoints for bootstrap logo on double header
- #33681: Fixes signup form in Heroes example
- #33569: Improve responsiveness of Features examples

## 🌎 Accessibility

- #33772: Improve overall new examples' accessibility
- #33810: Tweak toast docs

## 🏭 Tests

- #33578: Remove unnecessary `data-bs-backdrop="static"` from modal tests
- #33612: tests: fix random BrowserStack failures in scrollbar
- #33666: Modal.js: fix test for scrollbar
- #33734: Add missing test for clicking select option in a dropdown

## 🧰 Misc

- #33720: JS tests: add Node.js 16

## 📦 Dependencies

- Updated numerous devDependencies <https://github.com/twbs/bootstrap/pulls?q=is%3Apr+is%3Aclosed+label%3Adependencies+project%3Atwbs%2Fbootstrap%2F27>

v5.0.0-beta3: tag_name: v5.0.0-beta3
body: ## Highlights

- Added [new offcanvas component](https://getbootstrap.com/docs/5.0/components/offcanvas/) for left, right, and bottom-aligned hidden content
- Added [four new snippet-based examples](https://getbootstrap.com/docs/5.0/examples/): [headers](https://getbootstrap.com/docs/5.0/examples/headers/), [heroes](https://getbootstrap.com/docs/5.0/examples/heroes/), [features](https://getbootstrap.com/docs/5.0/examples/features/), and [sidebars](https://getbootstrap.com/docs/5.0/examples/sidebars/)
- Updated the [starter template example](https://getbootstrap.com/docs/5.0/examples/starter-template/) and a few other examples
- Added [new Sass docs section](https://getbootstrap.com/docs/5.0/components/alerts/#sass) to nearly every page to show variables, mixins, loops, and keyframes from our source code
- Added [new `.list-group-numbered` variation](https://getbootstrap.com/docs/5.0/components/list-group/#numbered) to list groups that uses pseudo-elements for numbering list group items.
- Removed explicit focus state suppression in Reboot
- Improved carousel swipe behaviors for RTL
- Updated accordions to improve transitions and borders when animating
- Updated Sass customization docs to show how to properly override default variables
- Fixed tooltips not appearing after rapid focus in and out
- Fixed dropdown events not bubbling and forms inside dropdowns not propagating
- Removed flip option from dropdowns
- Disabled select now render consistently in Chrome
- Button elements now grow in `.nav-fill` and `.nav-justified`
- JavaScript plugin constructors now accept CSS selectors
- De-duped the `.border-0` utility
- Fixed event handler removal in dropdown/carousel dispose
- Added [new Parcel guide](https://getbootstrap.com/docs/5.0/getting-started/parcel/) to the docs
- Added input focus blur Sass variable
- Updated `.browserslistrc` to drop Android and add Safari/iOS 12 as the new minimum version (completing our two latest major releases guideline for supported browsers).

## 🚀 Features

- #29017: Offcanvas as component
- #32245: Allow constructors to accept a CSS selector
- #33068: Add `ol.list-group` with pseudo-element numbers

## 🎨 CSS

- #32747: Add Sass docs (variables, mixins, and loops) to most pages
- #32925: Clear duplicated class `border-0`
- #33029: Remove explicit suppression of focus outline
- #33031: Add input focus blur variable
- #33068: Add `ol.list-group` with pseudo-element numbers
- #33127: Reset `select:disabled` opacity for Chrome
- #33149: Revamp accordion borders to fix pixel jumping
- #33154: Fix sibling card links in RTL
- #33210: Properly set `.list-group-item` color
- #33211: Validated controls border in input-group
- #33213: Buttons should grow in nav-fill & nav-justified
- #33325: Remove duplicate text-decoration style for abbr[title]
- #33426: Fix flush accordion styles

## ☕️ JavaScript

- #30621: modal: don't add margin & padding when sticky is not full width
- #32180: refactor: use a Map instead of an Object in dom/data
- #32245: Allow constructors to accept a CSS selector
- #32446: util: change `isRTL` to a function
- #32913: Fix carousel RTL and refactor code, fix rtl swipe issues
- #33000: Fix event handler removal in dropdown/carousel dispose
- #33056: modal: move common code to a new `isAnimated` method
- #33120: Remove the default positioning from `.dropup`
- #33136: Adjust `SAFE_URL_PATTERN` regex for use with test method of regexes.
- #33198: Dropdown — Drop `flip` option
- #33248: Accept data-bs-body option in the configuration object as well
- #33257: Dynamic tab should not show when triggered on `disabled` element
- #33261: Change the name of the `Offcanvas` constructor
- #33289: fix tooltips disappearing after trying to interact during their fade out animation
- #33382: Allow offcanvas to be initialized in open state
- #33385: Use more safe check for 'isDisabled' helper
- #33442: Allow data-toggle="dropdown" and form click events to bubble

## 📖 Docs

- #30909: Add Parcel Bundler doc
- #32747: Add Sass docs (variables, mixins, and loops) to most pages
- #33006: docs: add bootstrap5 zh-tw in translations
- #33049: Docs improvements after beta2
- #33081: Fix typo in nav-tabs docs
- #33123: Clarify docs around .navbar-brand
- #33207: Add an example of v4's media component in the flex utils docs
- #33246: Update the "Nonblocking files" section in the docs
- #33267: Grammatically update the doc
- #33300: Update modal's `show` method to accept `relatedTarget` as an argument
- #33301: Add example: toggle modal dialogs
- #33322: Fix Flex utilities documentation to add vertical space in example
- #33332: Mention .no-gutters removal in migration guide
- #33333: Fixes some copy around inline forms
- #33380: Utilities to Utilities API (Borders doc page)
- #33386: Update Customize > Sass docs to properly place default variable overrides
- #33430: Add link to new Parcel guide in starter template
- #33443: offcanvas-navbar: add missing redirect

## 🏭 Tests

- #32662: Unit tests for Popper V2
- #33045: Simplify karma.conf.js
- #33060: Add the missing expectations for touch events
- #33090: Add tests for `DATA_KEY`
- #33167: visual tests: add missing base-component dist file
- #33398: BrowserStack: test on iPhone 12

## 🧰 Misc

- #33067: CI: skip release drafter if we are not on our repo
- #33100: linkinator: replace `--silent` with `--verbosity`
- #33129: Rename _gh_pages to _site.
- #33130: CodeQL: skip dependabot PRs too
- #33148: Improve change-version script
- #33192: Bundlewatch: stop ignoring dependabot branches
- #33326: Delete the unused build/ship.sh
- #33329: @rollup/plugin-replace: specify `preventAssignment: true`
- #33397: .browserslistrc: remove the Edge workaround.
- #33399: .browserslistrc: remove Android and make Safari/iOS 12 the minimum
- #33401: README.md: use shields.io for the tests badge too

## 📦 Dependencies

Updated numerous devDependencies <https://github.com/twbs/bootstrap/pulls?q=is%3Apr+is%3Aclosed+label%3Adependencies+project%3Atwbs%2Fbootstrap%2F34>

v5.0.0-beta2: tag_name: v5.0.0-beta2
body: ## Highlights

- **Dropdowns:**
  - Updated dropdown plugin to add `data-bs-popper="static"` via JS to the `.dropdown-menu` when the trigger has add `data-bs-display="static"` and `data-bs-popper="none"` when in navbars.
  - Modified several selectors to separate our positioning styles from the Popper.js styles.
- **Navbars:**
  - Added a new `.navbar-nav-scroll` class to enable vertical scrolling when a collapsed navbar is opened. It's customizable via Sass and a CSS variable. [Read more in the docs](https://getbootstrap.com/docs/5.0/components/navbar/#scrolling).
  - We've re-added `flex-grow` to the `.navbar-collapse` to restore the flexbox behaviors from v4 and prevent some content from being inadvertently squished.
- **Forms:**
  - Removed `vertical-align` from `.form-select`
  - Form validation mixin updated with additional parameters
  - Fixed validation icon placement in `.form-select`
  - Checkboxes and radio buttons are aligned better in input groups
- **Buttons:**
  - Added variables for tinting and shading button state colors
  - Suppressed the default focus outline for buttons in Chromium
- **Toasts:**
  - Added `word-break` to `.toast-body`
  - Added a live example to the docs to trigger a real toast
- **Carousels:**
  - Updated docs examples to use `<button>`s wherever possible instead of `<a>` elements.
  - CSS selectors changed for using `<button>`s as indicators (from `.carousel-indicators li` to `.carousel-indicators [data-bs-target]`).
- **Bundles:**
  - Added our helpers to the utilities CSS bundle
- **JavaScript:**
  - Dropdown now emits events on the `.dropdown-toggle` instead of the `.dropdown`.
  - Restored the offset option for dropdowns.
  - Fixed modal toggling when clicking on `data-bs-toggle="modal"`.
  - We now build our base component as a separate `.js` file.
  - We now prevent `getSelector` from returning URLs as selector which caused errors in dropdown and scrollspy plugins.
  - Refactored components to use a utility function to define jQuery plugins

## 🚀 Features

- #32037: Add `.navbar-nav-scroll` for vertical scrolling of navbar content
- #32317: Add variables for modifying button state colours.
- #32376: Support Popper virtual elements

## ⚡ Performance Improvements

- #32348: Use box shadows instead of linear gradients to colorize tables

## 🎨 CSS

- #31757: Extended Form validation states capabilities
- #32037: Add `.navbar-nav-scroll` for vertical scrolling of navbar content
- #32317: Add variables for modifying button state colours.
- #32318: Remove `vertical-align` from `.form-select`
- #32324: Add helpers to utilities bundle
- #32348: Use box shadows instead of linear gradients to colorize tables
- #32397: Utility API, RFS option: Only generate responsive classes when needed
- #32415: Reset Popper position in RTL
- #32419: Tweak `.form-select` padding
- #32423: Add two new variables for pagination border-radius values
- #32436: RTL improvements
- #32440: Expand `visually-hidden-focusable` so it can be used on a container, …
- #32492: Fix: variables collide with globals
- #32501: `.ratio` missing variable prefix
- #32524: Remove the initial margin from dropdown/popover in favor of Popper
- #32575: docs(sidebar): invalid CSS value
- #32627: Carousel: use buttons, not links, for prev/next controls
- #32630: Dynamic tabs: use buttons rather than links
- #32631: Remove old/unnecessary reboot bug fix
- #32661: Make carousel indicators actual buttons
- #32670: Add word-break to `.toast-body`
- #32689: Suppress focus outline for buttons when it shouldn't be visible in Chromium
- #32751: Consistently use `outline:0` rather than `outline:none`
- #32754: Darken dropdown item hover style
- #32761: Mention stretched-link constraints with table elements
- #32785: Lighten disabled dropdown text to `$gray-500`
- #32787: Remove popover-arrow margin to fix alignment of the arrow
- #32793: Change `.form-check` background to `$input-bg` and change transitions
- #32819: Color utils docs
- #32899: Re-add `flex-grow` to `.navbar-collapse`
- #32912: Update checks and radios in input groups
- #32930: Fix hardcoded custom prop. in `.navbar-nav-scroll`
- #32951: fix(accordion): ensure `.accordion-button` stays left-aligned
- #32986: Dropdown menu alignment fixes
- #33003: Dropdown - Change the selector to check the use of Popper
- #33022: Ensure `.navbar-collapse` behaves as intended

## ☕️ JavaScript

- #32285: Refactor components to use a utility function to define jQuery plugins
- #32303: Use the ternary operator in a few more places
- #32309: tests: replace deprecated jQuery method
- #32313: build-plugins: build Base component too
- #32339: Remove `SelectorEngine.matches()`.
- #32376: Support Popper virtual elements
- #32391: SelectorEngine: drop variable used once
- #32392: alert: rename variables for consistency
- #32393: carousel: switch to string constants
- #32394: Remove `TRANSITION_END` from utils
- #32395: carousel: switch to `if/else`
- #32405: Add Popper fallback behaviour
- #32420: Tooltip - check if tip and its parent node exist in dispose method
- #32436: RTL improvements
- #32437: Tooltip/popover - change the default value for `fallbackPlacements`
- #32438: collapse: prevent url change if `A` nested tag is clicked
- #32443: Restore offset option for dropdown component
- #32465: Tooltip - Add missing callback in async spec
- #32511: modal: move common code to reusable functions
- #32523: Tooltip refactoring
- #32524: Remove the initial margin from dropdown/popover in favor of Popper
- #32585: Throw a `TypeError` instead of the generic `Error`
- #32586: Prevent `getSelector` from returning URLs as selector
- #32603: Scrollspy - Remove unnecessary event argument
- #32625: Dropdown - Emit events on the `.dropdown-toggle` button
- #32661: Make carousel indicators actual buttons
- #32691: Fix toggling modal when clicking on `data-bs-toggle="modal"`
- #32750: Fix dropdown keys to open menu
- #32843: Remove custom `fallbackPlacements` from the dropdown
- #32845: Fix Popper preventOverflow boundary config
- #32882: Add function type for `popperConfig` option
- #32986: Dropdown menu alignment fixes

## 📖 Docs

- #32246: Replace Lorem Ipsum placeholder text with more representative (or at least english language) text
- #32259: docs: SVG consistency changes
- #32272: Add a callout for the sanitizer in popovers and tooltips
- #32284: docs: Add Korean translation
- #32287: Typo: show on xxl, if only xl should be hidden.
- #32316: carousel.md: fix `$carousel-transition-duration` reference
- #32332: Move migration sidebar entry to sidebar.yml
- #32390: docs: Fix Popper-related docs
- #32398: Fix missed occurrencies of "Popper.js"
- #32399: Remove duplicated 'follow Bootstrap on Twitter' link in Getting Started
- #32401: cheatsheet: Drop redundant `(current)` text
- #32437: Tooltip/popover - change the default value for `fallbackPlacements`
- #32449: examples: Update font utility classes to new v5 versions
- #32455: docs: Add `system-ui` to the native font stack documentation
- #32461: Docs: style clipboard button on `:focus`, not just `:hover`
- #32463: Straggler lorem ipsum text
- #32464: Add missing `has-validation` in checkout examples
- #32478: Remove redundant `pointer-events: none` override for tooltip and popover disabled buttons
- #32479: Clean up lorem ipsum text in popover examples
- #32483: docs: Remove unneeded `.form-group` class
- #32489: Fix popover docs example
- #32490: Add keyboard-focusable elements for popover on disabled button
- #32512: Docs v5: Fix Sass rounding precision and state Sass implementation
- #32529: Tooltips: add missing space
- #32534: Documentation: added class selector "." to "dropend"
- #32543: API docs: add missing comma
- #32575: docs(sidebar): invalid CSS value
- #32589: Fix navbar docs - active `nav-link`
- #32620: docs: work around Toast CSS conflict with utils
- #32627: Carousel: use buttons, not links, for prev/next controls
- #32630: Dynamic tabs: use buttons rather than links
- #32632: Docs: Tweak the wording for collapse to indicate button is preferred/more semantic
- #32634: Docs: Remove incorrect mention of dropdowns for dynamic tab behavior
- #32638: Add an actual `data-bs-touch="false"` example in the carousel docs
- #32661: Make carousel indicators actual buttons
- #32684: Add functions and variables to the utilities API docs imports
- #32685: Clarify the `$enable-shadows` option in our docs
- #32688: Tweak wording for no-touch carousel
- #32740: Fix typo
- #32744: Document size and multiple aren't supported on floating label selects
- #32745: Add a link to v4.x from the v5 homepage
- #32758: Migration: mention the removal of `.rounded-sm/lg` utilities
- #32759: Add mention of CSPs and SVGs
- #32760: Add a live toast example to the docs
- #32761: Mention stretched-link constraints with table elements
- #32771: Improve docs regarding RTL migration
- #32778: Document some basic code conventions for us
- #32782: [docs] Update toasts.md
- #32788: Remove role="button" from CTA links in carousel examples
- #32795: Clarifies Sass variable defaults, adds bootstrap-npm-starter callout
- #32819: Color utils docs
- #32842: Docs: add v4.6.0
- #32846: docs: Fix navbar-nav-scroll description
- #32911: migration: mention `.form-text` changes
- #32912: Update checks and radios in input groups
- #32940: Fix default value for `$enable-deprecation-messages`
- #32979: Fix boundary config description for dropdown and popover
- #32995: Add a note to change the case type of option name
- #33017: Docs on enforcing HTTPS and avoiding mixed content
- #33027: Revamp sticky header offset to improve a11y

## 🌎 Accessibility

- #32401: cheatsheet: Drop redundant `(current)` text
- #32661: Make carousel indicators actual buttons
- #33027: Revamp sticky header offset to improve a11y

## 🏭 Tests

- #32309: tests: replace deprecated jQuery method
- #32465: Tooltip - Add missing callback in async spec
- #32486: BrowserStack: test on macOS Catalina instead of High Sierra
- #32730: Move "active" class from `.nav-item` to `.nav-link`
- #32769: JS: update karma config
- #32904: Minor ESLint rules cleanup

## 🧰 Misc

- #32185: terser: use 2 passes instead of the default 1.
- #32238: CI: add a 30-min timeout for BrowserStack
- #32312: build-plugins: switch to "bundled" for babel helpers
- #32313: build-plugins: build Base component too
- #32314: CONTRIBUTING: mention dist files
- #32417: Update Release Drafter configuration
- #32452: Update CodeQL Action
- #32453: Few updates for v5.0.0-beta1 NuGet support
- #32469: Improve zip-examples.js
- #32635: CI: update to actions/setup-node@v2
- #32737: package.json: move `version_short` variable under the `config` object
- #32755: GitHub Actions cleanup
- #32756: Stylelint: disallow some property values
- #32770: .gitignore: remove Ruby/Jekyll entries
- #32796: CI: change Node.js to `14`
- #32799: Update zip-examples.js
- #32917: change-version: remove vendor, add resources
- #32919: CI: switch to the coverallsapp/github-action tag
- #33012: CI: remove the cache fallback and shorten cache key
- #33016: vnu-jar.js: quote vnu path

## 📦 Dependencies

- Updated numerous devDependencies https://github.com/twbs/bootstrap/pulls?q=is%3Apr+is%3Aclosed+label%3Adependencies+project%3Atwbs%2Fbootstrap%2F33

v4.6.0: tag_name: v4.6.0
body: ### Highlights

- Tooltips and popovers can have custom clases via `customClass` option.
- Added new `.navbar-nav-scroll` class for scrolling expanded navbar contents on mobile devices.
- For improved accessibiliy, spinners now slow down when `prefers-reduced-motion` is enabled.
- v4.x docs are now built on Hugo for easier maintenance and backports from v5.x.
- Darkened `background-color` of `.dropdown-item` for improved hover state contrast, and ligthened the disabled `.dropdown-item` `color`.
- Improved alignment of form validation tooltips.
- File inputs no longer extend beyond their containers.

### CSS

- [#31557](https://github.com/twbs/bootstrap/pull/31557): Fix form validation tooltip alignment
- [#31657](https://github.com/twbs/bootstrap/pull/31657): Handle the Ubuntu sans-serif case
- [#31700](https://github.com/twbs/bootstrap/pull/31700): Suppress flexbox side effects in breadcrumb
- [#31882](https://github.com/twbs/bootstrap/pull/31882): Slow down spinners when prefers-reduced-motion
- [#31886](https://github.com/twbs/bootstrap/pull/31886): Fixed: Undefined mixin "deprecate" when importing "bootstrap-grid-scss"
- [#32141](https://github.com/twbs/bootstrap/pull/32141): Use correct value order
- [#32145](https://github.com/twbs/bootstrap/pull/32145): Avoid invisible real file input "spilling" out of container
- [#32160](https://github.com/twbs/bootstrap/pull/32160): Add overflow suppression to custom file label
- [#32211](https://github.com/twbs/bootstrap/pull/32211): Move negative margin-bottom from .nav-item to .nav-link
- [#32212](https://github.com/twbs/bootstrap/pull/32212): Remove needless Stylelint disables
- [#32833](https://github.com/twbs/bootstrap/pull/32833): Add `.navbar-nav-scroll` for vertical scrolling of navbar content
- Add two new variables for pagination border-radius values; backport of [#32423](https://github.com/twbs/bootstrap/pull/32423)
- Remove old/unnecessary reboot bug fix; backport of [#32631](https://github.com/twbs/bootstrap/pull/32631)
- Suppress focus outline for buttons when it shouldn't be visible in Chromium; backport of [#32689](https://github.com/twbs/bootstrap/pull/32689)
- Consistently use `outline:0` rather than `outline:none`; backport of [#32751](https://github.com/twbs/bootstrap/pull/32751)
- Darken dropdown item hover style; backport of [#32754](https://github.com/twbs/bootstrap/pull/32754)
- Lighten disabled dropdown text to `$gray-500`

### JS

- [#31820](https://github.com/twbs/bootstrap/pull/31820): Check for data-interval on the first slide of carousel
- [#31834](https://github.com/twbs/bootstrap/pull/31834)/[#32225](https://github.com/twbs/bootstrap/pull/32225): tooltip/popover: add a `customClass` option
- [#32001](https://github.com/twbs/bootstrap/pull/32001): Move `js/src/index.js` one folder up
- [#32045](https://github.com/twbs/bootstrap/pull/32045): tests: fix sanitizer test
- [#32220](https://github.com/twbs/bootstrap/pull/32220): Don't hide modal when `config.keyboard` is false
- [#32312](https://github.com/twbs/bootstrap/pull/32312): build-plugins: switch to "bundled" for babel helpers

### Docs

- [#31861](https://github.com/twbs/bootstrap/pull/31861): Split up dropdown sizing docs to improve rendering
- [#31892](https://github.com/twbs/bootstrap/pull/31892): Remove redundant visually hidden "(current)" from pagination controls
- [#31893](https://github.com/twbs/bootstrap/pull/31893): manifest.json: Switch to relative URLs so that we don't need to change the path with every major/minor release
- [#31898](https://github.com/twbs/bootstrap/pull/31898): switch to suggesting jsDelivr as a CDN
- [#31904](https://github.com/twbs/bootstrap/pull/31904):
  - docs(forms): use a legend for fieldset instead of aria-label
  - docs(forms): fix incorrect legend nesting in fieldset
- [#31936](https://github.com/twbs/bootstrap/pull/31936): forms: change inline custom radio name
- [#31951](https://github.com/twbs/bootstrap/pull/31951): Update anchor-js to v4.3.0
- [#31960](https://github.com/twbs/bootstrap/pull/31960): Explicitly mention emoji fonts, tweak sentence in typography
- [#31981](https://github.com/twbs/bootstrap/pull/31981): list-group.md: fix snippet
- [#32005](https://github.com/twbs/bootstrap/pull/32005): Remove `bugreport.apple.com` since it doesn't work
- [#32015](https://github.com/twbs/bootstrap/pull/32015): Fix redirects
- [#32050](https://github.com/twbs/bootstrap/pull/32050): Make docs anchorjs links darker on keyboard focus
- [#32054](https://github.com/twbs/bootstrap/pull/32054): Add callouts about using light colors ideally on a dark background
- [#32077](https://github.com/twbs/bootstrap/pull/32077): Switch to Hugo
- [#32083](https://github.com/twbs/bootstrap/pull/32083): mention "Liberation Sans"
- [#32087](https://github.com/twbs/bootstrap/pull/32087): download.md: link to JS files comparison too
- [#32094](https://github.com/twbs/bootstrap/pull/32094): Changes to navbar documentation/explanation
- [#32106](https://github.com/twbs/bootstrap/pull/32106): Clarify JS bundle docs once more for v4
- [#32137](https://github.com/twbs/bootstrap/pull/32137): input-group.md: fix wrong class `.visually-hidden`
- [#32138](https://github.com/twbs/bootstrap/pull/32138): navbar.md: remove `loading=lazy` from snippets
- [#32147](https://github.com/twbs/bootstrap/pull/32147): Fix caniuse.com redirects
- [#32151](https://github.com/twbs/bootstrap/pull/32151): Mention user-select-all support in docs
- [#32196](https://github.com/twbs/bootstrap/pull/32196): homepage: split snippets and show copy buttons
- [#32203](https://github.com/twbs/bootstrap/pull/32203): Switch to jsDelivr for the remaining docs assets
- [#32223](https://github.com/twbs/bootstrap/pull/32223): introduction: split comments
- [#32247](https://github.com/twbs/bootstrap/pull/32247): Fix typos in tooltip/popover docs
- [#32253](https://github.com/twbs/bootstrap/pull/32253): Add Russian translation
- [#32363](https://github.com/twbs/bootstrap/pull/32363): Remove useless `.text-left` in Layout / Overview
- [#32399](https://github.com/twbs/bootstrap/pull/32399): Remove duplicated "follow Bootstrap on Twitter" link in Community section
- [#32457](https://github.com/twbs/bootstrap/pull/32457): Add mention of the bs-custom-file-input plugin needed for the custom file input
- [#32461](https://github.com/twbs/bootstrap/pull/32461): style clipboard button on `:focus`, not just `:hover`
- [#32462](https://github.com/twbs/bootstrap/pull/32462): Replace Lorem Ipsum placeholder text with more representative (or at least english language) text
- [#32634](https://github.com/twbs/bootstrap/pull/32634): Remove incorrect mention of dropdowns for dynamic tab behavior
- [#32639](https://github.com/twbs/bootstrap/pull/32639): v4: Add an actual `data-touch="false"` example in the carousel docs
- [#32728](https://github.com/twbs/bootstrap/pull/32728): add v5.0 in versions
- [#32761](https://github.com/twbs/bootstrap/pull/32761): Mention stretched-link constraints with table elements
- [#32789](https://github.com/twbs/bootstrap/pull/32789): Remove `role="button"` from CTA links in carousel example
- [#32791](https://github.com/twbs/bootstrap/pull/32791): Docs v4: Sass implementation and rounding precision
- [#32809](https://github.com/twbs/bootstrap/pull/32809):
  - Clarify Sass import and customize docs for how to modify variable defaults
  - Add an npm starter project callout to a few pages
- [#32827](https://github.com/twbs/bootstrap/pull/32827): Add a live toast example to the docs
- [#32759](https://github.com/twbs/bootstrap/pull/32759): Mention CSP and embedded SVGs in v4 docs
- docs(dropdowns): clarify where is `.show` applied
- Require `.has-validation` for input groups with validation
- Fix mobile menu jump & double border
- Remove double spaces from homepage SVGs
- browserconfig.xml: switch to relative image path
- Tweak the wording for collapse to indicate button is preferred/more semantic; backport of [#32632](https://github.com/twbs/bootstrap/pull/32632)
- Clarify the `$enable-shadows` option in our docs; backport of [#32685](https://github.com/twbs/bootstrap/pull/32685)

### Examples

- [#31979](https://github.com/twbs/bootstrap/pull/31979): v4 Examples/Floating-labels: fix bad behavior with autofill
- [#32198](https://github.com/twbs/bootstrap/pull/32198): examples: add the version number in `title`

### Misc

- [#29753](https://github.com/twbs/bootstrap/pull/29753): Improve build/generate-sri.js regex
- [#32003](https://github.com/twbs/bootstrap/pull/32003): CI: switch to Node.js 14
- [#32008](https://github.com/twbs/bootstrap/pull/32008): Update Edge's Rendering Engine on CONTRIBUTING.md
- [#32486](https://github.com/twbs/bootstrap/pull/32486): BrowserStack: test on macOS Catalina instead of High Sierra
- [#32756](https://github.com/twbs/bootstrap/pull/32756): Stylelint: disallow some property values
- **Fix for npm 7.x** package.json: move `version_short` variable under the `config` object; backport of [#32737](https://github.com/twbs/bootstrap/pull/32737)
- Update build-examples script so that the resulting examples zip file includes only the needed files
- Various CI tweaks
- Updated devDependencies
v5.0.0-beta1: tag_name: v5.0.0-beta1
body: ⚠ Please check our [migration guide](https://getbootstrap.com/docs/5.0/migration/#v500-beta1) for more info!

## 🚀 Features

- #32280: Add toast positioning
- #30980: Add RTL support
- #32217: Ability to add custom class in tooltip/popover
- #31643: Add a state field to create utility pseudo-classes

## 🎨 CSS

- #31178: Update Popper to v2.x
- #31303: Keep rounded corners for the first `.btn` in vertical button group
- #31643: Add a state field to create utility pseudo-classes
- #31735: Simplify `make-container()`
- #32149: Rename `scale-color()` function to `shift-color()`
- #32201: fix(container): use `$variable-prefix`
- #32213: _reboot.scss: remove needless Stylelint disable
- #32249: breadcrumb: simplify appearance, improve extensibility
- #32277: Remove default linear gradient
- #32280: Add toast positioning

## ☕️ JavaScript

- #28849: Accessibility: add `aria-label` for tooltips
- #29370: create a base component
- #31178: Update Popper to v2.x
- #31827: Add namespace "bs" in the data attributes
- #32095: JS: use more "modern" APIs
- #32124: tooltip.js: deduplicate `_fixTitle()`
- #32152: Fix `.close` instances
- #32154: BrowserStack: test both on iPhone 7 and iPhone X
- #32173: Make the attribute methods bs specific
- #32178: Handle Chromium to run Karma
- #32179: Don't hide modal when `config.keyboard` is false
- #32217: Ability to add custom class in tooltip/popover
- #32221: Add missing tags in unit tests
- #32224: Be consistent with Popper's name.
- #32233: Update bundle.js in tests/integration
- #32279: Remove the `show` config option from the modal plugin
- #32310: Remove Polyfill leftovers

## 📖 Docs

- #31098: Docs: change sidebar collapse controls to actual button elements
- #31608: Add baseof.html layout to docs
- #32117: Update _syntax.scss
- #32131: application.js: remove non-existent selector
- #32134: Add hyphen between Sass and based
- #32135: Fix caniuse.com URLs to prevent redirects
- #32139: floating-labels.md: fix grammar error
- #32143: example.html: remove extra whitespace
- #32153: popovers.md: unbreak line
- #32158: Switch to jsDelivr for the remaining docs assets
- #32162: docs: Add missing `.has-validation` class for input group example
- #32163: docs: update selector CodePen example
- #32174: Position Utilities Docs: Fix the marker SVG color to match the button
- #32175: skippy.html: reduce whitespace output
- #32176: docs: use `expanded` Sass output style for development
- #32177: examples: fix `.btn-block` instances
- #32187: Manually optimize SVGs
- #32189: docs(dropdowns): clarify where is `.show` applied
- #32191: Correct block button breakpoint docs typo
- #32194: Docs: fix homepage npm install version
- #32198: examples: add the version number in `title`
- #32204: Fix a few typos
- #32223: introduction: split comments
- #32224: Be consistent with Popper's name.
- #32226: docs: use `event` instead of `e`
- #32258: homepage: fix wrong `alt` attribute
- #32281: Add mention of link underline change to migration and typography
- #32335: cheatsheet.js: use `event` instead of `e`

## 🌎 Accessibility

- #28849: Accessibility: add `aria-label` for tooltips

## 🧰 Misc

- #29753: Improve build/generate-sri.js regex
- #30986: Revisit our browserslist config
- #32125: Update codeql.yml
- #32154: BrowserStack: test both on iPhone 7 and iPhone X
- #32222: CI: specify `FORCE_COLOR:2`
- #32232: npm scripts: run integration tests in parallel
- #32257: README: fix path to search.js
- #32310: Remove Polyfill leftovers
- #32326: Fix `css-prefix-examples-rtl` script

## 📦 Dependencies

- Updated numerous devDependencies <https://github.com/twbs/bootstrap/pulls?q=is%3Apr+is%3Aclosed+label%3Adependencies+project%3Atwbs%2Fbootstrap%2F26>

v5.0.0-alpha3: tag_name: v5.0.0-alpha3
body: ## Changes

- #31728: Switch to dart-sass
- #31972: Drop Legacy Edge support.
- #32012: Remove obsolete prefixes

## 🚀 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-block` with utilities
- #32013: Add dedicated accordion component
- #32066: Add `.d-grid` to our display utilities
- #32074: Add `.gap` utilities

## 🎨 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 `.rounded` utilities
- #31700: Suppress flexbox side effects in breadcrumb
- #31826: Alert: Add `z-index` for 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-block` with utilities
- #32013: Add dedicated accordion component
- #32020: Add `cursor:pointer` to color inputs
- #32023: Fix color input heights
- #32031: Fix `.fw` utilities
- #32064: Remove firefox workaround for `::file-selector-button` margin
- #32066: Add `.d-grid` to our display utilities
- #32074: Add `.gap` utilities
- #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-input` element 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 `article` `og:type` when 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-white` docs to `filter` (not `backdrop-filter`)
- #31802: Improve callout shortcode.
- #31803: Update bs-table shortcode
- #31806: docs: switch to fenced codeblocks
- #31809: carousel: add missing `to` description and fix `nextwhenvisible` description
- #31828: docs: Add Russian translation
- #31835: Move `href` attribute 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-input` element 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 `$dark` to `$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 `--rd` flag
- #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: tag_name: v4.5.3
body: ### CSS

- [#31653](https://github.com/twbs/bootstrap/pull/31653): Add a comment to our `escape-svg` function to note that data URIs must be quoted.
- [#31693](https://github.com/twbs/bootstrap/pull/31693): Use the `custom-control` shadow variable instead of the generic `input-focus-box-shadow`.
- [#31793](https://github.com/twbs/bootstrap/pull/31793): Backport some v5 changes (improved `th` styling in Reboot, custom form field styling when printing, and improvements to `.text-break`).
  - [#29714](https://github.com/twbs/bootstrap/pull/29714): Keep custom check, radio, and switch theme when printing.
  - [#30781](https://github.com/twbs/bootstrap/pull/30781): Reboot's `th` updates: Inherit `font-weight: bold` that comes from user agent stylesheets.
  - [#30932](https://github.com/twbs/bootstrap/pull/30932): `.text-break` changes to drop `overflow-wrap` and use `word-wrap` once again
  - [#31754](https://github.com/twbs/bootstrap/pull/31754): Improve versions page rendering (also reversed the order while I was here)
- [#31846](https://github.com/twbs/bootstrap/pull/31846): Backports the z-index change to `.close` buttons in dismissible `.alert`s.

### JS

- [#31000](https://github.com/twbs/bootstrap/pull/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](https://github.com/twbs/bootstrap/pull/31673): Fix dropdown variable always evaluating to true.
- [#31696](https://github.com/twbs/bootstrap/pull/31696): Ensure `hidePrevented.bs.modal` can be prevented.
- [#31718](https://github.com/twbs/bootstrap/pull/31718): Backports new `$dropdown-padding-x` variable from v5.

### Docs

- [#30811](https://github.com/twbs/bootstrap/pull/30811): Mention GPU acceleration fix in docs callout for popovers. _Doesn't apply to v5 since we're updating to Popper v2._
- [#30838](https://github.com/twbs/bootstrap/pull/30838): Explain the `dispose` method more appropriately.
- [#31706](https://github.com/twbs/bootstrap/pull/31706): Backports updated margins for code snippets for improved readability.
- [#31769](https://github.com/twbs/bootstrap/pull/31769): Backports JS bundle guidance from v5.
- [#31851](https://github.com/twbs/bootstrap/pull/31851): Backports mention of missing `to` and `nextwhenvisible` methods.

### Misc

- [#31297](https://github.com/twbs/bootstrap/pull/31297): Switch to xo ESLint config
- Updated devDependencies versions

v5.0.0-alpha2: tag_name: v5.0.0-alpha2
body: ## Changes

- #30966: Floating labels improvements
- #31774: Replace ellipsis Unicode symbol with three dots.

## 🚀 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-focusable` to `visually-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 `rem` unit
- #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 <main> & use <section>
- #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 `postcssOptions` key
- #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 <main> & use <section>
- #31610: Docs layout: ensure content sits in main

## 🧰 Misc

- #31011: Update Babel config
- #31047: README: remove `.svg` from 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: tag_name: v4.5.2
body: This release addresses the following two issues:

- **[#31438](https://github.com/twbs/bootstrap/pull/31438) restores the `make-container-max-widths` mixin.** 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](https://github.com/twbs/bootstrap/pull/31439) removes `flex: 1 0 100%` from `.row`s.** 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-fill` to the `.row` and your row will behave as usual.
v4.5.1: tag_name: v4.5.1
body: ### CSS

- #30808: Simplify `list-group` borders in cards
- #30810: Add `z-index` to `.custom-check` to fix their rendering in CSS columns
- #30817: Add `border-radius` to `.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-break` utility.
- #30940: Prevent `.row` from 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: 0` on `.col` due to unforeseen side effects
- #31148: Remove duplicate properties on custom controls
- #31165: Remove `backdrop-filter` from docs subnav and toasts
- #31339: Add link to view docs pages on GitHub
- #31347: Turn off scroll anchoring for accordions
- #31381: Remove `overflow: hidden` from 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.md` page
- #30896: Improve wording on Downloads page
- #30897: Prevent skip links from overlapping header in docs
- #30973: Update some nav examples by removing `.nav-item` from `.nav-link` to 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: tag_name: v5.0.0-alpha1
body: 🎉 The first Bootstrap 5 alpha has landed!

- For highlights and a look ahead, please [read our v5 alpha 1 announcement blog post](https://blog.getbootstrap.com/2020/06/16/bootstrap-5-alpha/).
- [Browse the v5 alpha 1 project](https://github.com/twbs/bootstrap/issues?q=project%3Atwbs%2Fbootstrap%2F11+is%3Aclosed+) to see what's new and what's changed.

v4.5.0: tag_name: v4.5.0
body: ### Highlights

- **New interaction utilities.** Quickly set `user-select` with the new utilities and Sass map.
- **New Reboot style for pointer cursors.** We now include a `role="button"` selector in Reboot to set `cursor: pointer` on 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-variant` mixin 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: flex` on `.breadcrumb-item`
- #29819: Allow percentages in container widths
- #29857: Escape brackets
- #29946: Added new variable for padding on dropdown header
- #30004: Fixes disabled `.btn` cursor
- #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 `pre` is present by setting `min-width: 0`
- #30074: Use `word-wrap` in `.text-break` for IE and Edge compatibility
- #30166: Avoid `border-radius` functions 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 in `transition()` mixin
- #30497: Fix card list group borders & radii
- #30504: Fix `spinner-grow` animation in Safari
- #30515: Add `.card-footer` color
- #30555, #30512, #30480: Use `box-shadow` mixin for `.form-select`, `.btn`, and other form controls
- #30562: Added new interaction utilities for `user-select` and a new - `role="button"` in Reboot to set `cursor: pointer`.
- #30582: Delete unnecessary `appearance: none` from `button.close`
- #30594: Deprecate `bg-gradient-variant` mixin
- #30605, #30606: Grid now checks for for `$grid-columns > 0`
- #30609: Checks for an empty `$grid-breakpoints` map 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 `srcset` in the allowed attributes
- #30381: Updated tab.js to address accessibility issue when using ul/li semantic
- #30383: ensure `totype` always 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](https://github.com/twbs/bootstrap/commit/22f75ca2e328ad232dd2afafd15dc0c79a908410): 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-target` usage 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

- #29886: Fix checkout page forms
- #30573: Improve the responsiveness of our Dashboard example

### 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: tag_name: v4.4.1
body: * Fix Dart Sass compatibility (#29755, #29763)
* Add :disabled for disabled fieldset (#29762) 
v4.4.0: tag_name: v4.4.0
body: ### 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-cols` classes** 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 embedded `background-image` SVGs for forms and more.
- **New `add()` and `subtract()` functions** for avoiding errors and zero values from CSS's built in `calc` feature.
- **New `make-col-auto()` mixin** to make our `.col-auto` class available with custom HTML.
- Fixed an issue with Microsoft Edge not picking up `:disabled` styles by moving selectors to `[disabled]`.
- **Deprecated:** `bg-variant()`, `nav-divider()`, and `form-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 `:invalid` validation icon to be an alert instead of an `&times;` 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

- [List of closed issues and merged pull requests](https://github.com/twbs/bootstrap/issues?q=project%3Atwbs%2Fbootstrap%2F18+is%3Aclosed+sort%3Aupdated-desc)
- [Review the project board](https://github.com/twbs/bootstrap/projects/18)

v4.3.1: tag_name: v4.3.1
body: * **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
v3.4.1: tag_name: v3.4.1
body: * **Security:** Fixed an XSS vulnerability (CVE-2019-8331) in our tooltip and popover plugins by implementing a new HTML sanitizer
* Handle bad selectors (`#`) in `data-target` for Dropdowns
* Clarified tooltip selector documentation
* Added support for NuGet contentFiles
v4.3.0: tag_name: v4.3.0
body: ### Highlights

- **New:** Added `.stretched-link` utility to make any anchor the size of it's nearest `position: relative` parent, perfect for entirely clickable cards!
- **New:** Added `.text-break` utility for applying `word-break: break-word`
- **New:** Added `.rounded-sm` and `.rounded-lg` for small and large `border-radius`.
- **New:** Added `.modal-dialog-scrollable` modifier class for scrolling content _within_ a modal.
- **New:** Added responsive `.list-group-horizontal` modifier classes for displaying list groups as a horizontal row.
- **Improved:** Reduced our compiled CSS by using `null` for variables that by default inherit their values from other elements (e.g., `$headings-color` was `inherit` and is now `null` until you modifier it in your custom CSS).
- **Improved:** Badge focus styles now match their `background-color` like our buttons.
- **Fixed:** Silenced bad selectors in our JS plugins for the `href` HTML attribute to avoid JavaScript errors. Please try to use [valid selectors](https://www.w3.org/TR/CSS21/syndata.html#value-def-identifier) or the `data-target` HTML attribute/`target` option where available.
- **Fixed:** Reverted v4.2.1's change to the breakpoint and grid container Sass maps that blocked folks from upgrading when modifying those default variables.
- **Fixed:** Restored `white-space: nowrap` to `.dropdown-toggle` (before v4.2.1 it was on all `.btn`s) so carets don't wrap to new lines.
- **Deprecated:** `img-retina`, `invisible`, `float`, and `size` mixins are now deprecated and will be removed in v5.

### Links
- [Read the full ship list](https://github.com/twbs/bootstrap/issues/27893)
- [Review the project board](https://github.com/twbs/bootstrap/projects/16)
v4.2.1: tag_name: v4.2.1
body: Bump to v4.2.1 to republish package on npm. [See v4.2.0 release notes](https://github.com/twbs/bootstrap/releases/tag/v4.2.0) for changes introduced in v4.2.
v4.2.0: tag_name: v4.2.0
body: Here are the highlights of what's new and updated in v4.2.

- **New:** Added a new spinner loading component.
- **New:** Added new toast component for displaying notifications.
- **New:** Added a new iOS style switch (a modifier class to our custom checkboxes).
- **New:** Added touch support in our carousel component.
- **New:** Added `.font-weight-lighter` and `.font-weight-bolder` utilities.
- **New:** Added `.text-decoration-none` utility class.
- **New:** Added `.modal-xl` modifier class for our modals.
- **New:** Added new negative margin utility classes (e.g., `.mb-n3`). These rad new classes not only allow you more control over your general spacing needs, but also allow you to create responsive grid gutters at each breakpoint.
- **New:** Validated form fields now have feedback icons on `:invalid` and `:valid` fields. Disable them with the `$enable-validation-icons` boolean Sass variable (defaults to `true`).
- **New:** Added a new versions page to our docs
- **New:** Tooltips/Popovers work with Shadow DOM
- **Updated:** Redesigned the custom checkboxes and radios for more obvious states.
- **Updated:** `bootstrap-grid.css` now includes our `margin` and `padding` utilities for full control of our grid system.
- **Updated:** Changed auto columns (e.g., `.col-auto`) from `max-width: none` to `max-width: 100%` to prevent content from causing a column to overflow the parent.
- **Updated:** Improved rendering of custom selects, ranges, file input, and more.

Checkout the full [v4.2.0 ship list](https://github.com/twbs/bootstrap/issues/26952) and [GitHub project](https://github.com/twbs/bootstrap/projects/6) for the full details. Up next is [v4.3](https://github.com/twbs/bootstrap/projects/16) with some bugfixes, a few new modifier classes and variables, and some new utilities.

[Head to to the v4.2.x docs](https://getbootstrap.com/docs/4.2/) to see the latest in action. The full release has been published to npm and will soon appear on the Bootstrap CDN and Rubygems.
v3.4.0: tag_name: v3.4.0
body: - **New:** Added a `.row-no-gutters` class.
- **New:** Added docs searching via Algolia.
- **Fixed:** Resolved an XSS issue in Alert, Carousel, Collapse, Dropdown, Modal, and Tab components. See <https://snyk.io/vuln/npm:bootstrap:20160627> for details.
- **Fixed:** Added padding to `.navbar-fixed-*` on modal open
- **Fixed:** Removed the double border on `<abbr>` elements.
- Removed Gist creation in web-based Customizer since anonymous gists were disabled long ago by GitHub.
- Removed drag and drop support from Customizer since it didn't work anymore.
- Added a dropdown to the docs nav for newer and previous versions.
- Update the docs to use a new `baseurl`, `/docs/3.4/`, to version the v3.x documentation like we do with v4.
- Reorganized the v3 docs CSS to use Less.
- Switched to BrowserStack for tests.
- Updated links to always use https and fix broken URLs.
- Replaced ZeroClipboard with clipboard.js

v4.1.3: tag_name: v4.1.3
body: - **Fixed:** Removed the `:not(:root)` selector from our `svg` Reboot styles, resolving an issue that caused all inline SVGs ignore `vertical-align` styles via single class due to higher specificity.
- **Fixed:** Moved the browserslist config from our `package.json` to a separate file to avoid unintended inherited browser settings across npm projects.
- **Fixed:** Buttons in custom file inputs are once again clickable when focused.
- **Improved:** Bootstrap's plugins can now be imported separately in any contexts because they are now UMD ready.
- **Improved:** `.form-control`s now have a fixed `height` to compensate for differences in computed height across different `type`s. This also fixes some IE alignment issues.
- **Improved:** Added `Noto Color Emoji` to our system font stack for better rendering in Linux OSes.

v4.1.2: tag_name: v4.1.2
body: - Fixed an XSS vulnerability in tooltip, collapse, and scrollspy plugins
- Improved how we query elements in our JavaScript plugins
- Inline SVGs now have the same vertical alignment as images
- Fixed issues with double transitions on carousels
- Added Edge and IE10-11 fallbacks to our floating labels example
- Various improvements to form controls, including disabled states on file inputs and unified focus styles for selects

Checkout the [v4.1.2 ship list](https://github.com/twbs/bootstrap/issues/26423) and [GitHub project](https://github.com/twbs/bootstrap/projects/14) for the full details.
v4.1.1: tag_name: v4.1.1
body: **Our first patch release for Bootstrap 4!** Here's a quick rundown of some of the changes:

- Added validation styles for file inputs
- Improved printing of dark tables
- Suppressed that `text-hide` deprecation notice by default
- Cleaned up some JS globals and improve coverage
- Bumped dependencies, namely Jekyll
- Fixed docs issue with incorrect name for our monospace font utility

Checkout the [v4.1.1 ship list](https://github.com/twbs/bootstrap/issues/25971) and [GitHub project](https://github.com/twbs/bootstrap/projects/13) for the full details.
v4.1.0: tag_name: v4.1.0
body: - Added new custom range form control.
- Added new `.carousel-fade` modifier to switch carousel from horizontal sliding to crossfade.
- Added new `.dropdown-item-text` for plaintext dropdown items.
- Added new `.flex-fill`, `.flex-grow-*`, and `.flex-shrink-*` utilities.
- Added new `.table-borderless` variant for tables.
- Added new `.text-monospace` utility.
- Added new `.text-body` (default body color), `.text-black-50` (50% opacity black), and `.text-white-50` (50% opacity white) utilities.
- Added new `.shadow-*` utilities for quickly adding `box-shadow`s.
- Added ability to disable Popper's positioning in dropdowns.
- Fixed longstanding issue with Chrome incorrectly rendering cards across CSS columns.
- Deprecated `.text-hide`—you'll see a warning during compilation—as it's a dated and undocumented feature.
- Fixed up Dashboard and Offcanvas examples across Firefox and IE.
- Breadcrumbs can now use non-string values as dividers.
- Updated our Theming docs to confirm you _cannot_ use CSS variables in media queries (sorry folks!).

Be sure to look at the [ship list](https://github.com/twbs/bootstrap/issues/25375) and [project board](https://github.com/twbs/bootstrap/projects/5) for more details on all our fixes.

v4.0.0: tag_name: v4.0.0
body: Our first stable v4 release! 🎉 

### Highlights:
- Brand new examples and overhauls for existing ones.
- Additional border utilities have been added and the default `border-color` for them darkened from `$gray-200` to `$gray-300`.
- Pagination focus styles now match button and input focus state.
- Added responsive `.order-0` classes to reset column order.
- Improved examples of form validation documentation by adding tooltip examples and more.
- New documentation added for using our CSS variables to the [Theming page](https://getbootstrap.com/docs/4.0/getting-started/theming/).
- Improved consistent across browsers when printing.
- Sass map extends and docs
- New and improved print display utilities

### Project board
For more details, visit https://github.com/twbs/bootstrap/issues/25098.
v4.0.0-beta.3: tag_name: v4.0.0-beta.3
body: ### Breaking changes

As mentioned in [our Beta 2 release](http://blog.getbootstrap.com/2017/10/19/bootstrap-4-beta-2/), we needed to make a few more breaking changes in Beta 3. We've summarized them here and in our [migration docs](https://getbootstrap.com/docs/4.0/migration/#beta-3-changes)—be sure to read them!

- **Rewrote native and custom check controls.** Both browser default and custom checkboxes and radios now have simpler markup after removing the `<input>` from the `<label>`. Now, all checkboxes and radios have a parent `<div>` and sibling `<input>` and `<label>` pair. This is essential for form validation and disabled inputs because we can use the input's state to style the label.

	In addition, custom checkbox and radio elements no longer have a `.custom-control-indicator`. This is generated from the new `.custom-control-label`.

- **Input groups were rewritten** with specific `.input-group-{prepend|append}` classes. The new approach allows us to support validation styles and messages within input groups, while also adding support for custom selects, custom file inputs, and multiple `.form-control`s.

- **Responsive tables are once again parent classes** to avoid accessiblity issues with changing a `<table>`'s `display`.

- **Deleted the `.col-form-legend` class**, consolidating it's styles into the `.col-form-label` class.

Read the [Migration page](https://getbootstrap.com/docs/4.0/migration/#beta-3-changes) for further details.

### More highlights

In addition to the breaking changes, we've addressed a few more general issues that may impact your project.

- Restored `cursor: pointer` to non-disabled links, buttons, `.close`, navbar toggler, and pagination links.

- Added a new vertically centered modal option with `.modal-dialog-centered`.

- Added new dropleft and dropright variants for dropdowns in #23860.

- Our npm package no longer includes any files other than our source and dist JavaScript and CSS files. If you previously relied on our running our scripts via the `node_modules` folder, you'll need to update your build tools.

- Print styles have moved to bottom of the import stack to properly override styles.

For more details on this release's changes, take a look at the [Beta 3 ship list issue](https://github.com/twbs/bootstrap/issues/24439), as well as the [Beta 3 project](https://github.com/twbs/bootstrap/projects/10).
v4.0.0-beta.2: tag_name: v4.0.0-beta.2
body: Beta 2 is here! [Read the full ship list for details](https://github.com/twbs/bootstrap/issues/23278) on what issues were closed and PRs merged.

---

### Highlights


- Improved Sass map customization with #23260. With this change, it's now possible to override specific key value pairs instead of resetting the entire map, ideal for color scheme customization.
- Restored grid `.offset-` modifiers in #23445. Originally our intent was to supplement this with our margin utilities, but we underestimated the appeal of fixed number column offsets.
- Remove unnecessary `color` from `.badge`, and it's associated `$badge-color` variable, in #23529.
- Rename `grayscale` function to `gray` to avoid breaking CSS native `grayscale` filter in #23579.
- Renamed `.table-inverse`, `.thead-inverse`, and `.thead-default` to `.*-dark` and `.*-light`, matching our color schemes used elsewhere in #23560.
- Responsive tables now generate classes for each grid breakpoint, meaning we've added `.table-responsive-{sm,md,lg,xl}` to the already present `.table-responsive`. You might need to adjust your usage depending on when you want a table to resize. See #22804.
- Include two new dist files which contain Popper.js inside `bootstrap.bundle.js` and `bootstrap.bundle.min.js`. See #23735.
- Dropped support for Bower as they've deprecated the package manager. See #23568.
- Switched breadcrumbs from `float` to flexbox in #23683.
- Added new CSS variables in #23761.
- Switched to Stylelint in #23572.
- New Theming page in the docs from #23611
- #23943: Changed the `color-yiq` from a mixin that included the `color` property to a function that returns a value, allowing you to use it for any CSS property. For example, instead of `color-yiq(#000)`, you'd write `color: color-yiq(#000);`.
- New and improved theming in #24429.

v4.0.0-beta: tag_name: v4.0.0-beta
body: It's a beta! Holy crap this took forever. Thanks for sticking with me on this one—means a lot, y'all <3.

---

### Highlights!

- Dropped Normalize.css as a dependency, forking some of it and remixing it with our own Reboot for a more stable normalization approach.
- Update navbar responsive behaviors to be mobile first, use a new class name `.navbar-expand` instead of `.navbar-toggleable`, remove toggler position modifiers (relies on flex utils now), and fix a handful of bugs.
- Stabilize some grid behaviors and update the docs.
- Updated the grid to drop push, pull, and offset in favor of new `.order-` modifiers and margin utilities.
- Renamed tons of variables (see #22414 and #22092) for a more consistent naming scheme.
- Removed remaining `cursor: pointer`s to restore browser defaults and better indicate actions vs hyperlinks.
- Renamed flexbox `order` utilities to better match utility naming scheme of `.property-value`.
- Restored Alpha 5's placement of `_custom.scss` in our import order.
- Rewrote display and responsive utilities to de-dupe a bunch of functionality.
- Removed Gruntfile and docs from package manager builds.
- Overhauled our color system with new Sass maps, variables, classes, and component variants.
- Updated browser support to bring ranges up to more recent versions.
- Added a bash script for linting unused variables.
- Moved jQuery and Popper to `peerDependencies` as they're not requirements for every part of Bootstrap.

---

**[Be sure to read the full ship list.](https://github.com/twbs/bootstrap/issues/21568)**
v4.0.0-alpha.6: tag_name: v4.0.0-alpha.6
body: Happy New Year! It's our final alpha for Bootstrap 4.

### Details
- [Read the ship list](https://github.com/twbs/bootstrap/issues/20939)
- [Browser the closed milestone](https://github.com/twbs/bootstrap/milestone/39?closed=1)

### Highlights
- Flexbox is now on by default, with no fallback! This means we've dropped IE9 support, but with significant savings to our code base, simpler components, and improved customization thanks to the power of flexbox.
- Rebuilt the navbar with flexbox in mind, leading to some structural changes, but including more flexibility and customization. Includes updated docs, code snippets, more responsive options. All navbars in our examples are also using the latest markup and styles now. Also solves around 10 bugs in the process!
- Overhauled flexbox utilities and documented them. Replaced all the previous flexbox utilities with new ones that are named after `property: value` pairs (instead of creating new names for things). For example, `.flex-items-between` is now `.justify-content-between` to apply `justify-content: between;`. This also adds tons of new flexbox utilities for `display`, `order`, `wrap`, and more.
- Revamped navs Sass with flexbox and updated docs. All the `float`s and clearfixs have been removed, `.nav-inline` removed (on account of `display: flex` inlining for us on `.nav`), added fill and justify options, and more.
- Building on the grid improvements from Alpha 5, you can now customize container padding across grid breakpoints and optionally remove grid gutters with  `.no-gutters`.
- Similarly, our flexbox grid system has new classes for automatically sizing columns to the size of their content across viewports (e.g., you can now apply `col-xs-6`, `col-md-auto`, and `col-xl-4` to a single element).
- Grid, display, float, margin, padding, and text utility classes have been significantly overhauled. In addition to all classes now being responsive, the `xs` tier no longer requires a breakpoint abbreviation, making for shorter and more descriptive classes and an easier migration from v3. For example, instead of `.d-xs-none`, it's back to `.d-none` while it remains `.d-{sm,md,lg,xl}-none` for those breakpoints.
- Renamed some `.active`,  all `.in`, and all `.open` classes for our JavaScript powered components for more consistent naming. For example, instead it's now `.collapse.show` instead of  `.collapse.in` and `.show > .dropdown-menu` instead of `.open > .dropdown-menu` to better communicate the visibility of elements.
- Refactored carousel with new, simpler styles, better documentation, and less specific selectors.
- Rewrote progress component without the `<progress>` element due to lack of animations, no support for multiple bars, and no support for labels on the progress bars.
- Fixed some unescaped `#`s in our SVG data URLs that are used to add vector background-images.
- Renamed `.tag` back to `.badge`, like v3, to avoid conflicts with common WordPress styles.
- A number of custom form enhancements and bugfixes were made. Label-less custom radios and cehckboxes, fixed SVG URLs in `background-image`s, and more.
- Updated Normalize.css to v5.0.0.
- `.form-check` and `.form-check-inline` now share the same markup. Switch between the two by adding or removing `.form-check-inline` as a modifier.
- Added support for justified navigation when in flexbox mode.
- Renamed `_animation.scss` to `_transitions.scss` for clarity.
- Added new color variables (e.g., `$blue`) for additional customization.

v4.0.0-alpha.5: tag_name: v4.0.0-alpha.5
body: Fifth alpha! View the milestone for details: https://github.com/twbs/bootstrap/issues/20630.

v4.0.0-alpha.4: tag_name: v4.0.0-alpha.4
body: Fourth alpha release!

[See the closed milestone](https://github.com/twbs/bootstrap/milestone/40?closed=1) for details.

v4.0.0-alpha.3: tag_name: v4.0.0-alpha.3
body: Third alpha release!

[See the closed milestone](https://github.com/twbs/bootstrap/milestone/35?closed=1) for details.

v3.3.7: tag_name: v3.3.7
body: Release announcement blog post: https://blog.getbootstrap.com/2016/07/25/bootstrap-3-3-7-released/

### JavaScript
- #19192 Fix keyboard navigation for toggle buttons (checkbox, radio, single toggle) following a mouse click
- #19659: Clear tooltip's `$element` to prevent leaking memory
- #20019: Avoid calling `jQuery('#')` since it's a syntax error in jQuery 3
- #20259: Backport jQuery-related JS unit test fixes from v4
- #20278: button.js: Set disabled property in addition to disabled attribute, for jQuery 3 compatibility
- #20313: Avoid using `$.offset()` on SVGs since it gives incorrect results in jQuery 3
- #20338: Update jQuery version check and jQuery dependency version range to allow jQuery 3

### CSS

No significant changes.

### Accessibility
- #19704: Add `aria-label` and callout about labeling pagination components

### Docs
- #19263 Bump html5shiv to v3.7.3
- #19273 Port v4 browser support table format to v3
- #19893: Update jQuery to v1.12.4
- Numerous Wall of Browser Bugs updates

v4.0.0-alpha.2: tag_name: v4.0.0-alpha.2
body: Second alpha release!

[See the closed milestone](https://github.com/twbs/bootstrap/issues?q=milestone%3Av4.0.0-alpha.2) or [the blog post](http://blog.getbootstrap.com/2015/12/08/bootstrap-4-alpha-2/) for more details.

v3.3.6: tag_name: v3.3.6
body: ### CSS
- #16492: Use `@input-border-radius` variables on input groups.
- #16529: Un-style the caret on `<select>`s in IE10+.
- #16562, #16563: Create and implement a new `@dl-horizontal-breakpoint` variable to replace the `@grid-float-breakpoint` on `.dl-horizontal`.
- #16646, #16651: Fix hover border covering active links in pagination.
- #16684: Fix `border-radius` not being set on two corners of vertical btn group.
- #16718: Full 4-digit Unicode escape sequences in CSS for asterisk and plus Glyphicons.
- #16769: Remove the `min-height` on modal headers and replace with a clearfix to avoid collapsing when no title exists.
- #16779: Adjust the `padding` on jumbotrons within containers.
- #16785: Round the `padding` on containers to match the new rounding of negative `margin`s on rows.
- #16796: Ensure carousel controls are clickable in IE9.
- #16804: Indicate which buttons in a button group are selected, even when disabled.
- #16824: Correct a math error in the `padding-top` of `.control-label`s in large and small horizontal forms.
- #16975: Use `@carousel-control-font-size` for in specific pixel values.
- #17001: Fix borders on focused inputs in input groups.

### JS
- #16865: Fix triggering of `shown.bs.dropdown` & `hidden.bs.dropdown` events so that `relatedTarget` property gets set properly.
- #16896: Note jQuery v3 incompatibility.

### Docs
- #16630, #16632: Update mention of not-allowed cursor in disabled checkboxes, radios, and fieldsets docs section.
- #16744: Mention in the README where Bootstrap's changelogs can be found.
- #16745: Add `CHANGELOG.md` file that points to GitHub Releases and our blog.
- #16747: Document that Collapse and Tab methods are asynchronous.
- #16793: Add example with visible `<label>` and input group addon.
- #16888: Add a local jQuery fallback.
- #16902: Fix grid in modal example by removing `.container-fluid`.
- #16965: Call out `.icon-next`, `.icon-prev` alternative classes for carousel.
- #17003: Add `.col-offset-0` example addition to docs.
- #17726: Clarify the purpose of adding `.in` to the `.fade` of the initially-open Tab.
- #17729: Add Subresource Integrity (SRI) hashes to BootstrapCDN links
- #17742: Add CSS portion of IE10 viewport bug workaround to docs & examples
- #17809: Note that `container: 'body'` should be used for tooltips/popovers on tabular elements
- #17910: Document that `.panel-title` overrides the font size of `<h1>`–`<h6>` tags
- #18080: Document conflict between strict Content Security Policy and inline `style` attributes of `.progress` bars, and available workarounds

### Packaging
- #16710: Add official NuGet package
- #16877, #17693: Add support for Meteor 1.2.

### Build tools
- #16589: Enable source maps for `bootstrap.min.css`.
- #17769: Setup Hound for JSHint linting in pull requests

### Customizer
- #16897: Clarify that Collapse requires Component animations

### Browser bugs
- #16689: Add Wall of Browser Bugs entry for #16671.
- #16691: Add Wall of Browser Bugs entry for #15968.
- #16813/#16839: Reported WebKit bug (http://wkbug.com/146896) for #16809, which WebKit then fixed.
- #16840: Remove entry from Wall of Browser Bugs because http://wkbug.com/141804 has been fixed.
- #16841: Remove entry from Wall of Browser Bugs because http://wkbug.com/139803 has been fixed.
- #16842: Remove entry from Wall of Browser Bugs because http://wkbug.com/144990 has been fixed.
- #16881: Add Wall of Browser Bugs entry for #16814.
- #16908: Remove entry from Wall of Browser Bugs because http://crbug.com/309483 is most likely invalid.
- #16994: Add Wall of Browser Bugs entry for #16988.
- #17438 / #14237: Add Wall of Browser Bugs entry for http://wkbug.com/149935
- #17712: Mention Chrome meta-bug on Wall of Browser Bugs
- #17753: Remove entry from Wall of Browser Bugs because http://bugzil.la/1048279 was closed as WONTFIX.
- #17820: Add Wall of Browser Bugs entry for http://crbug.com/534750
- #17902: Remove entry from Wall of Browser Bugs because http://wkbug.com/138167 has been fixed.
- #17906: Add Wall of Browser Bugs entry for #14975
- #18111: Add Wall of Browser Bugs entry for http://wkbug.com/150715

v4.0.0 alpha: tag_name: v4.0.0-alpha
body: First alpha release!

[See the pull request](https://github.com/twbs/bootstrap/pull/17021) or [the blog post](http://blog.getbootstrap.com/2015/08/19/bootstrap-4-alpha/) for more details.

v3.3.5: tag_name: v3.3.5
body: ## CSS
- #15074, #16159: Manually handle `.input-group-*` sizing instead of using mixins, which causes a bug in our compiled code due to nesting
- #15944, #15945: Add `z-index` to avoid border overlapping in input groups
- #15956: Properly position `.form-control-feedback` across within input groups
- #15976, #15978: Fix overlapped `border` on pagination links on hover
- #16047: Make `.text-emphasis-variant` adjust `a:focus` color in addition to `a:hover` color
- #16086: Reset text/font properties more thoroughly for tooltips+popovers
- #16089: Add `@jumbotron-heading-font-size` variable
- #16092: Only disable `pointer-events` on disabled `<a>` `.btn`s
- #16120, #16350: Add `max-width: none` to `.media > .img-thumbnail` to prevent malformed images
- #16160: Make `.bg-variant` mixin adjust `:focus` color in addition to `:hover` color
- #16166, #16174: Update `.visible*` mixin to use `!important` on `<table>` elements
- #16175: Fix `border-radius` on list group items in collapsible panels
- #16176: Account for static form controls in form group size variations
- #16204, #16215: Add `<button>` support to `.list-group-item`s.
- #16224: Fix `.btn[disabled]` styles in the theme.
- #16234: Update to Normalize v3.0.3
- #16256: Add `px` unit to perspective property value
- #16258: Fix regression that made `.caret` not display in IE8
- #16259: Remove workaround for OS X `<select>` printing bug that's been fixed in recent Chrome
- #16271, #16373: Add `@btn-border-radius` variables based on global variables for better customization.
- #16279: Fix floating of `.btn`s that are direct children of `.btn-toolbar`
- #16281, #16351: Round grid column gutter operations to prevent inaccurate `padding` and `margin`
- #16333: Ensure proper sizing of `.form-control-feedback` in `.form-group-*` size variations.
- #16346, #16472: Update iOS temporal input overrides to be limited to `.form-control` uses.
- #16371, #16405: Vertically center carousel controls in small viewports.
- #16374, #16477: Redo jumbotron `padding` to prevent double negative spacing and overflowing containers.
- #16457, #16447: Add the license banner to the top of `bootstrap.less`.
- #16460: Fix inaccurate `.pagination-sm` height by specifying `line-height`.
- #16482, #16485: Add `border-radius` variable to theme's inverse navbar.
- #16614: Fix asymmetry between dropup and dropdown carets.

## Accessibility
- #16154: Darker style `.focus` and `:focus:hover` on `.active` buttons
- #16226, #16404: Fix radio and checkbox keyboard handling in `.btn-group` (plus removal of obsolete unit test)
- #16571: Generalize dropdowns / drop`role="menu"` 

## JavaScript
- #15694: Fix incorrect Affix positioning when webpage uses sticky footer layout
- #16014: Fix tooltip/popover behavior when multiple triggers are specified
- #16024: Avoid some unnecessary HTML string building+parsing
- #16039: Avoid leaking memory in tooltip/popover plugins
- #16073: Clicking into an input field within an open dropdown no longer closes the dropdown
- #16142: Fix horizontal viewport bounds check in tooltip/popover placement logic
- #16147: Add new `inserted.bs.tooltip/popover` event fired after tooltip/popover DOM is inserted into the document
- #16151: Tooltip/popover: Allow `viewport` option to be a function
- #16152: Fix auto placement to use viewport on tooltips and popovers
- #16158: Modals: Remove `aria-hidden` usage that's redundant to `display: none`
- #16263: Use `.dropdown-menu` instead of ARIA roles for Dropdown keydown event handler
- #16324: Throw error when tooltip/popover template has multiple top-level elements

## Documentation
- #15987: Add `role="button"` to `a[data-toggle="collapse"]`
- #16107: Add `.alert` change to v2 -> v3 migration guide
- #16113, #16114: Document how to install Bootstrap via Composer
- #16117: Increment quick start options count in README.md
- #16136: Callout for tooltips and keyboard/AT accessibility
- #16140: Add `aria-expanded` to navbar toggles
- #16156: Properly document the `$(...).tab('show')` method
- #16157: Document how to disable transitions in Bootstrap's jQuery plugins
- #16167: Remove wrong `role="tabpanel"` from docs
- #16194: Remove stray spaces from modal/using-grid-system sample code
- #16208: Eliminate extraneous `padding` in `.bs-docs-header` that would sometimes cause horizontal scrolling
- #16222: fix dead link: reduced test cases
- #16257: Upgrade to Holder v2.5.2 for placeholder images
- #16270, #16280: Change `vertical-align` on badges from `baseline` to `middle` for improvement alignment across more elements
- #16282: Document that Affix doesn't work on pushed/pulled grid columns in Safari
- #16301: Hide the "Copy" buttons in the docs when Flash is not available
- #16367: Ensure that `.form-inline` in non-responsive example doesn't stack
- #16369: Separate the docs for `.dropdown` and `.dropup` for more accurate examples
- #16398: Remove `role="button"` from download links
- #16409: Document Affix plugin's `checkPosition` method
- #16411: Document that `'manual'` trigger is mutually exclusive of other tooltip/popover triggers
- #16417: Added `#panels-footer` to components nav in docs
- #16430: Mark stateful button feature as deprecated, and document that `$(...).button('reset')` is async
- #16484: ScrollSpy requires non-body elements to have `height` and `overflow`.
- #16488: Update AnchorJS to 1.0.1
- #16524: Firefox file download bug affecting the Customizer seems to have been fixed
- #16561: Ensure divider list items have `role="separator"`
- #16623: Add role="document" to modal dialog content

## Browser bugs
- #16262: Added Wall of Browser Bugs entries for #16180
- #16372: Added Wall of Browser Bugs entry for table-related Chrome bug

## Packaging
- #16101: Update jspm configuration
- #16359: Update `bower.json` to comply with Bower's new spec for the `main` field
- #16378: Set `"moduleType": "globals"` in `bower.json`
- #16379: Remove moot `version` field from and add `license` field to `bower.json`
- #16408: Include entire `/grunt/` folder in npm package so that `grunt dist` works

## Grunt
- #15294: Add grunt-contrib-htmlmin for docs
- #16254: Upgrade iOS to v8.2 in Sauce Labs JS tests

v3.3.4: tag_name: v3.3.4
body: ## CSS
- #15561, #15628: Properly resize `.badge`s inside `.btn-group-xs`
- #15620: Add `.glyphicon-*` aliases for other [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217)-ish currency codes:
  - `.glyphicon-btc` and `.glyphicon-xbt` for `.glyphicon-bitcoin`
  - `.glyphicon-jpy` for `.glyphicon-yen`
  - `.glyphicon-rub` for `.glyphicon-ruble`
- #15656: Improve positioning of inline checkboxes and radio buttons by setting `position: relative`
- #15682, #15697: Ensure `.caret` is the same size in Firefox
- #15699: Ensure `.form-control-static` doesn't change height when it's empty
- #15719, #15728: Add a variable for `.form-group`'s `margin-bottom`
- #15726: Remove unnecessary nesting of `.embed-responsive-*` classes
- #15755: Removed unnecessary `visibility: hidden !important` from `.hidden` class per upstream H5BP change
- #15825: Use a utility mixing for `.initialism` text transformation
- #15947, #15974: iOS fix for `role="button"` elements
- #16021: Remove `visibility` properties where they are redundant to existing `display` properties

## JS
- #15378: Modal: Work around IE scrollbars not taking up page width
- #15496: Make `$(document).tooltip({...})` without the `selector` option throw an error
- #15520: Dropdown: Properly ignore `.disabled` elements when using keyboard navigation
- #15557: Tooltip: Avoid creating an unnecessary tooltip when `Tooltip#hide` is called
- #15593: Fix Scrollspy's handling of multiple target elements with offsets of zero
- #15630: Fix erroneous tautological conditional in Tab plugin
- #15681: Rename `Tooltip.replaceArrow()`'s `isHorizontal` parameter to `isVertical` for accuracy
- #15693: Remove duplicate implementation of `tip()` method in `popover.js`
- #15930: Modal: Apply any preexisting inline body padding again after closing
- #15941: Update the `.collapsed` class and `aria-expanded` attribute of all of a Collapse's trigger elements when showing/hiding the Collapse
- #15881: Modal: Fix backdrop not readjusting when height changes
- #15988: `$(...).tooltip('hide')` on an uninitialized tooltip/popover no longer unnecessarily initializes it
- #16011: `$(...).collapse('hide')` on a hidden uninitialized collapsible no longer shows it
- #16043: Use half-closed interval for ScrollSpy bounds condition to avoid selecting wrong nav element when user scrolls upwards

## Docs
- #15491: Add AnchorJS for docs anchors (hover over headings for a permalink to that section)
- #15621: Document sticky `:hover` on mobile browsers
- #15648: Improve image layout in the Carousel example and document image alignment via `.center-block`
- #15662: Mention `dropup` variation in dropdown docs
- #15683, #15703: Clarify usage and effects of `readonly` and `disabled` `input`s
- #15710: License FAQ clarification
- #15714: Skip link workarounds for Chrome and IE
- #15725: Add example of how to use the grid system within a modal
- #15739: Clarify target of modal events
- #15740: Clarify target of carousel events
- #15742: Document how `destroy` works for delegated tooltips/popovers
- #15882, #15900: Use an ID as the example for Scrollspy
- #15884, #15885, #15886, #15887, #15888, #15889, #15890, #15891, #15914: Accessibility changes to improve heading hierarchy within pages
- #15898: Change CC link in footer to HTTPS
- #15903: Add `rel="license"` and update the target of footer license links
- #15906, #15916: Add source code documentation of justified navbar for the single-line text requirement
- #15910: Document how to properly handle modals with dynamic content height
- #15915: Javascript docs: Accessibility and cosmetic changes to headings.
- #15929: Encourage use of icons with form validation states for colorblind users
- #15946: Accessibility and headings hierarchy for the "Getting started" page
- #15948: Accessibility and headings hierarchy for the CSS page.
- #15999: Document JS test suite basics
- #16004: Add link to Vietnamese docs translation
- #16042: Increment quick start options in README to five
- #16058: Document that striped progress bars aren't striped on IE9

### Examples
- #15291: Prevent collapsed navbar in non-responsive example
- #15911: Update the header in the jumbotron narrow example for a more durable layout

### Browser bugs
- #15846: Add Wall of Browser Bugs entries for #15832
- #16036: Add Wall of Browser Bugs entry for #16022

## Packages
- #15651: Add WOFF2 font file to bower.json's `main` field
- #15716: Integrate with Meteor's package manager
- #15809: Specify the files to install via npm

## Grunt/Travis
- #15611: Use local HTML validator to improve performance
- #15778: Upgrade Travis to Node.js v0.12

v3.3.2: tag_name: v3.3.2
body: ## CSS
- #14937: Fix carousel partially not using vendor-prefix mixins.
- #14990, #15391: Full width form control elements inside media/flag object 
- #15074: Fix the nesting problem with form control size variants.
- #15124: Restore missing `.media-object` that was removed in #14801.
- #15140: Restore `.media` and `.media-body` styles that were removed in #14801.
- #15142: Add `position: relative;` to `.dropup` for proper menu placement.
- #15148, #15307: Use same value for `margin`s on default `.dropdown-menu` as `.dropup .dropdown-menu`s.
- #15244: Vertically center `.icon-prev` and `.icon-next` in carousel controls with `line-height: 1`.
- #15278: Fix `border-radius` on nested button groups with only one child.
- #15413, #15422: Fixes `.input-group-sm` and `.input-group-lg` for temporal date inputs.
- #15428: Update browser bug references in Less comments.
- #15482: Add `.disabled` class to the `.btn-styles` mixin in the theme.
- #15497: Increase decimals on `@line-height-large` from `1.33` to `1.3333333` to fix button sizing in Chrome for Windows 8.1.
- #15536, #15559: Apply form group size variations to `.form-control-static`.
- #15551: Fix `.table-striped` to work with tooltips on rows by using `nth-of-type` instead of `nth-child`.
- #15565, #15567: Use `@link-hover-decoration` for `.btn-link` to match default `a:hover` styles.
- #15594: Reset the `color` on `<small>` and `.small` elements within `.panel-title`s.

### Icon font
- bcb90ef3a0affa6540d141733a073593011af064 / #15213: Update to Glyphicons v1.9
- #15464: Exclude 2 problematic icons that were added in Glyphicons v1.9

## JS

#### Collapse
- #15131: Use `$.fn.children` instead of `>` in selector.
- #15241: Add basic collapse plugin example for toggling another element.

#### Carousel
- #15152: Make `wrap: false` work again (fixes regression)

#### Affix
- #15154: Fix bug where `.affix-top` was not getting applied due to padding

#### Tooltip/Popover
- #15425: Belatedly add regression test for #14244.
- #15466: Revert #14189 (and thus remove the recently-added "multiple delegated tooltips on a single element" feature) since it caused some nasty regressions.

#### Misc
- #15535: Use strict mode in jQuery version check function

## Docs
- #15094: Add Options, Methods, and Events subsections for each plugin to the JavaScript docs nav sidebar.
- #15120, #15137: Fix `.form-inline` example in CSS docs.
- #15125: Clean up ARIA role usage.
- #15129: Specify `img` alternative text.
- #15133: Fix up use of `scope` and `th`/`td` elements inside tables.
- #15194: Improve recommended media component markup.
- #15238, #15306: Add more information about CSS source maps.
- #15277: Remove dummy `href="#"` from dismiss-on-next-click popover example
- #15334: Fix/merge advice on low percentage progress bars.
- #15337: Add @patrickhlauke to Core Team list on the About page.
- #15340: Document that the border-radius of `<select>`s can't be styled in all browsers
- #15363: Make skip link look less "bare bones" and expand related accessibility advice.
- #15426: Remove holder.js references from syntax-highlighted example HTML.
- #15465: Document that calling tooltip/popover `show`/`hide` method qualifies as manual triggering.
- #15470: Document the `VERSION` property of the jQuery plugins.
- #15472: Document that responsive tables use `overflow-y: hidden`.
- #15473: Document that Autoprefixer is required.
- #15498: Add examples of using feedback icons with `.input-group`.
- #15524: Add pointer to Masonry (& similar) in the Thumbnail docs.
- #15560: Document that `.form-inline` & `.form-horizontal` work fine on non-`<form>`s too,
- #15569: Document usage of npm package.
- #15581: Add example of using `.form-inline` with visible `<label>`s.

## Examples
- #15096: Fix navbar forms in the non-responsive example.

## Browser bugs
- 0445f23b728da63dab41e82c9f4aaf084e48bd98: The Chrome bug related to #14972 has been fixed on Linux. On Windows, it's still broken due to a different Chrome bug currently slated for Chrome 41.
- #15407: Add Wall of Browser Bugs entry for #15205.
- #15415: Add Wall of Browser Bugs entry for #11266 / #13098.
- #15576: Add Wall of Browser Bugs entry for #15298.

## Accessibility
- #15320: Expanded advice on labels for inline forms, use of `title` and explanation for `<abbr>`, replaced use of `sr-only` text with `aria-label` for close buttons, wrapped sidebar navigation in a `<nav>`.
- #15327: Expanded advice for optional icons with hidden labels, replaced use of `sr-only` text with `aria-label` for pagination "previous"/"next" links, callout and examples for various labelling methods for input groups, made main button in segmented buttons in input groups keyboard-focusable, split out/clarified `multiple` attribute on `<select>` elements.

## Customizer
- #15309: Catch and properly report compile errors that Less.js's toCSS() can throw.
- #15330: Tie help block to input with `aria-describedby`.
- #15395: Add warning message about intermittent Firefox-related bug.

## Build tools / Packaging
- #15149: Upgraded OS X JS browser tests to OS X Yosemite
- #15150: Upgraded iOS JS browser tests to iOS 8.1
- #15269: Make HTML validator Grunt task ignore spurious errors about `<li role="separator">...</li>`
- #15355, #15356, #15357, #15451, #15452, #15453, #15454, #15455, #15462: Update to latest versions of various libraries & Grunt tasks.

## Bots
- #15176, #15177, #15187: Launched [@twbs-savage](https://github.com/twbs-savage) bot to automatically run Sauce cross-browser tests on JavaScript pull requests. GitHub repo: https://github.com/twbs/savage
- Launched [@twbs-grunt](https://github.com/twbs-grunt) bot to automatically keep our `/dist/` files up-to-date. GitHub repo: https://github.com/twbs/gruntworker

v3.3.1: tag_name: v3.3.1
body: Follow up patch release for bug fixes and documentation improvements.

---

## CSS

### Forms
- #14234: Drop the IE specific hacks for temporal inputs and replace with a Safari media query hack to avoid the IE problems altogether.

### Button groups
- #15086: Don't remove focus outline from buttons in button groups.

### Badges
- #14915: Properly color badges in `.active` item of `<ul>`-based list groups.
- #15052: Fix active styles when in non-anchor `.list-group-item`.

### Jumbotron
- #14979: Override `.jumbotron` padding within `.container-fluid` to match `.container`.

### Navbar
- #14965: Reset `border-radius` on top corners on dropdown menus in fixed bottom navbars.

### Popovers and tooltips
- #14936, #15019: Fix some bugs in and deprecate diagonal placement classes for tooltips.
- #15046: Add full font overrides for popovers and tooltips.

### Theme
- #14381: Correctly override active dropdown items in collapsed navbars in the theme.
- #15018: Correctly override active dropdown items in collapsed navbars.

## JS
- #14925: Make button plugin's focus shim recognize `focusin` event in addition to `focus` event.
- #14931: Add workaround for seemingly spurious tooltip viewport unit test failures on iOS 8.
- #14927: Fix modal backdrop overlaying the modal's scrollbar.
- #14933: Center modal at all times.
- #14993: Have Carousel ignore keyboard events emited by `<input>`s or `<textarea>`s.
- #15088: Dropdown: Ignore keydown events coming from `input`s and `textarea`s.

## Docs

### Browser bugs
- #14920: Add Wall of Browser Bugs entry for #14868.
- #14922: Add Wall of Browser Bugs entry for #14708.
- #14958: Add Wall of Browser Bugs entry for #14409.
- #14985: Add Wall of Browser Bugs entry for #14972.

### Accessibility
- #14951: Assorted accessibility (and some consistency) fixes.
- #15009, #15085: Glyphicon accessibility improvements.
- #15087: Wash-up of some stray dropdown examples' ARIA roles.

### Contributing guidelines
- #14949: Explain issue bots & PR bots in `CONTRIBUTING.md`.
- #14959: Mention common contributor mistakes in `CONTRIBUTING.md`.

### Components, examples, etc
- #14917: Use HTML5 `<footer>` tag in examples.
- #14945: Replace deprecated uses of `.pull-left` & `.pull-right` in `.media` docs.
- #14986: Mention Safari font size issues with fixed-width `.container`s in Printing docs.
- #14989: Add `event.relatedTarget` + `data-*` example of how to vary modal content based on which button activated the modal.
- #15015: Add initialization examples to tooltip and popover "Opt-in functionality" callouts.
- #15077: Document required `.active` class on one carousel slide.

## Customizer
- #14954: Fix `config.json` file upload widget event listener.
- #14980: Integrate Autoprefixer into the Customizer.
- #15031: Remove file type check from config import.

## Build tools / Packaging
- #15072: HTML validation: `X-UA-Compatible` now validates, so remove it from the list of ignored errors.
- Update devDependencies

v3.3.0: tag_name: v3.3.0
body: **[Be sure to read the blog post for more details!](http://blog.getbootstrap.com/2014/10/29/bootstrap-3-3-0-released/)**

## CSS

### Variables and mixins
- #13923: Add `@gray-base` variable to make `@gray-*` variables work better together.
- #14440: Remove unused `@nav-open-link-hover-color` variable.
- #14511: Add missing `border-radius` variables for small and large inputs.
- #14592: Add `@progress-border-radius` variable for progress bar.
- #14786: Add `@link-hover-decoration` variable. 
- #14891: Add `@cursor-disabled` variable.

### Code
- #14168: Make nested kbd elements bold so you can better identify combinators.

### Type
- #13967: Don't reset the `<cite>` element's `font-style`.
- #14682: Remove the `content: "";` reset on `<blockquote>` elements as it can cause rendering bugs.

### Images
- #13996: Revert the IE backslash hack for `.img-responsive` on SVG images from #10073 as it stretches all image types unnecessarily in IE<11.

### Tables
- #13202: Always use `overflow: auto;` on `.table-responsive` to prevent content breaking out of containers.
- #13920: Assign `background-color` to `<tr>` elements instead of `<th>`/`<td>` within the `.table-striped` to avoid broken backgrounds on responsive tables.
- #14095: Add basic styling for `<caption>`s.
- #14251: Remove the `-webkit-overflow-scrolling` on `.table-responsive` to prevent Safari from screwing up `<body>` width.
- #14838: Fix IE9 bug when `.table-responsive` is used with `.table-hover`

### Forms
- #12669 (again): Redeclare the line-heights on date inputs in IE8+ to avoid cut off content.
- #13989: Don't extend the input sizes in small and large form groups. Instead, manually chain the selectors.
- #13997: Move `min-height` for radio/checkbox to their inner `<label>` given move from `float` to `position: absolute;` in v3.2.0.
- #14005: Only adjust the `.has-feedback` icons when needed.
- #14104: Remove pointer events on feedback icons.
- #14107: Lighten placeholder text back to `#999`.
- #14221: Make `.form-control-static` work in inline forms as well.
- #14234: Reset the IE8-10 temporal input `line-height` bug with another hack just for IE11.

### Buttons
- #14029: Add `touch-action: manipulation` to buttons to remove the 300ms delay in IE10+.
- #14030: Remove superfluous `cursor: pointer;` on `.btn-link` since we already set it on `.btn`.
- #14310: Remove the `box-shadow` on `.btn-link.active` to match the existing `:active` override.

### Button groups
- #14053: Don't show radio/checkbox in justified button groups.
- #14559: Properly hide checkbox and radio inputs in button groups.

### Thumbnails
- #14443: Only transition what needs transitioning for thumbnails to avoid Safari/Chrome render bug.

### Navbar
- #12738: Using landscape orientation media query for setting `max-height` on the `.navbar-collapse` content requires use of `max-device-width`, not `max-width`.
- #13325, #13464: Changed `:last-child` overrides in navbars to `:first-child` to prevent elements from overriding one another.
- #13943: Lighten the navbar inverse link and text color more since our text contrast change in v3.2.0.
- #14051: Improve `margin`s on `.navbar-right` to further fix #13325 and #13464.
- #14557: Remove the `margin-bottom` on `.form-group:last-child` in xs `.navbar-form`.
- #14667: Remove `translate3d` from `.navbar` and switch to `translate` to prevent iOS dropdown rendering bugs and make the CSS more predictable.

### Jumbotron
- #14337: Round `.jumbotron` corners within `.container` and `.container-fluid`.
- #14563: Prevent jumbotron reflow by changing the `padding` of `.jumbotron` so it doesn't interfere with the `.container` side padding.

### List groups
- #13931: Set `not-allowed` cursor on disabled `.list-group-item`s.
- #14711: Account for list groups in collapsing panels—just replace the `.panel-body` with a `.list-group`.

### Progress bars
- #13953, #14736: Remove the progress bar `min-width` styles for low percentages to avoid jumping progress.

### Media object
- #14801: Add vertical alignment of image in media component. Also deprecated the use of `.pull-left` and `.pull-right` in `.media`. They are replaced by the new `.media-left` and `.media-right` classes.

### Panels
- #14142: Adding horizontal padding to `caption`s in `.table`s in panels.
- #14253: Add borders for tables that follow panel bodies.
- #14329: Fix alignment, spacing, and borders for list groups nested within collapsing panels.
- #14437: Round the corners of table rows in panels as well as the cells.

### Responsive embed
- #14687: Include `<video>` element support in responsive embed.

### Popovers
- #14386: Reset font, text, and `line-height` properties in popovers. Moves the `font-weight` and `line-height` resets from `.popover-title` to the `.popover`, and adds `font-size`.
- #14465: Make `@popover-arrow-color` variable use the `@popover-bg` variable instead of regular `#fff`.

### Affix
- #13974, #14123: Remove translate3d repaint performance enhancement for text rendering and position wonkiness.
- #14363: Make affix accept `0` as offsetTop or offsetBottom

### Carousel
- #13074: Add WebKit CSS3 carousel `transform`s for supported devices.

### Theme
- #14074: Make open dropdown nav links in navbars use gradients to match active links.
- #14814: Use `@navbar-*-link-active-bg` variables in background gradients on active/open navbar items.
- #14806: Reset the `text-shadow` on badges in the themed buttons.

### Glyphicons
- #14869: Added `.glyphicon-eur` alias for `.glyphicon-euro`.

### Print
- #14452: Update `print.less` from its H5BP source to consolidate styles and update source URL.
- #14790: Update to the latest H5BP.

## Dependencies
- #14743: Updated normalize.css to v3.0.2.

## JS
- #12815: Make zero-value offsets work on affix plugin via data attributes.
- #13814, #13815: Allow tabs to fade in if there are no initially active panes present.
- #13853: Major unit tests cleanup.
- #13907: Add `.focus` to focused radio and checkbox buttons with the button plugin.
- #13998: Namespace the `affixed` event
- #14000: When a modal is open, pressing the Esc key to close a native browser dialog or menu no longer also closes the modal
- #14015: Fix positioning of tooltips on SVG elements
- #14034: Deprecated the `remote` option of modals
- #14069: Carousel now skip over non-items when its `next` or `prev` methods are called
- #14090, #14091: Fix IE8 JS unit test problems
- #14244: Remove popover content with `.children().detach()` instead of `.empty()`.
- #14273: Fix hover-triggered popover/tooltip flickering when mouse re-enters trigger element.
- #14282: Already visible collapse content no longer closes when `.collapse('show')` is called.
- #14316: Use closest `.alert` for alert dismissal.
- #14357: Recalculate scrollbar width for modal every time in case user resizes the window.
- #13928: Ensure that hidden event is sent when content is really hidden (`collapsing` class is removed).
- #14573: Make `inDom` check of tooltip cross document compatible.
- #14492: Handle lack of .width and .height from getBoundingClientRect() in IE8.
- #14353: Collapse: count `.collapsing` elements as actives.
- #14571: Properly fire hidden event when tooltip is destroyed.
- #13718: Correctly selects arrow placement for a tooltip.
- #14610: Remove unused (and undocumented) Tooltip#validate method.
- #14581: Fix tooltip misplacement with "auto top".
- #14570: Remove `.modal-open` class after backdrop is hidden.
- #14599: Tooltip: Rely on `getBoundingClientRect` for `width` and `height`.
- #14623: Use container instead of parent for tooltip/popover auto-placement calculations.
- #14626: Carousel: Only enable `pause: hover` for non-touch browsers.
- #14722: Escape key should only close Dropdown.
- #14723: Use `translate` instead of `translate3d` on modals to fix bug where sometimes modal wouldn't reappear in Safari.
- #14590: Add `keyboard` option to carousel.
- #14724: Modal no longer closes when dragging and releasing the mouse button outside the dialog.
- #14845: Collapse: Don't fire show event if show is prevented because other element is transitioning.
- #14767: Fixes tooltip misplacements in scrollable viewports with auto positioning.
- #14772: Implement `hide` and `hidden` events for tabs.
- #14852: Bump minimum required jQuery version to 1.9.1 and throw an error when Bootstrap's JS is used with outdated versions of jQuery.
- #13563: Clear scrollspy selection above first section.
- #14189: Handle multiple delegated selectors on tooltip and popover nodes.
- #14519: Fix tooltip occasionally not hiding when using a hide delay.
- #14457: Change value of stateful button after event loop.
- #14686: Handle `collapsed` class on triggers even when manually invoked.
- #14463: Independently delegate data-api selectors.

## Accessibility
- #14070: Add `role="tablist"` to `.nav-pills` in examples to improve accessibility.
- #14071: Add `role="listbox"` to `.carousel-inner` to improve accessibility of Carousels.
- #14072: Add screenreader text to previous/next carousel buttons in examples to improve accessibility.
- #14085: Add `role="presentation"` to tab `<li>`s to improve accessibility.
- #14086: Add `role="tabpanel"` to `.tab-pane` `<div>`s to improve accessibility.
- #14088: Add `role="tabpanel"` to `.panel-collapse` to improve accessibility.
- #14089: Add `role="tablist"` & `aria-multiselectable="true"` to accordion `.panel-group`.
- #14208: Add ARIA attributes to dropdown plugin.
- #14242: Remove `aria-describedby` attribute from tootips later
- #14147: ARIA / screenreader support for collapse
- #14577: Wrap `.pagination` & `.pager` in `<nav>` so that AT can know they're for navigation
- #14578: add `aria-labelledby` to accordion example to improve accessibility
- #14579: add `role="tab"` to `.panel-heading`s in accordion example to improve accessibility
- #14673: Add `visibility` styles to navbar and component animations (fade and collapse) for more screenreader friendly components.
- #14841: Add `role="button"` to a couple more non-link `<a>` buttons
- #14819: Add `aria-pressed` to single toggle buttons.
- #14154: Add `aria-expanded` toggling to tabs plugin. Also adds `aria-labelledBy`, `aria-controls`, and `aria-expanded` to the tabs docs.

## Docs
- Moved from Pygments to Rouge for syntax highlighting in the docs. (For folks developing the docs locally, be sure to run `gem install rouge` before building.)
- #13746: Add docs section for swapping `.navbar-brand` for an image.
- #13835: More explicitly document mobile dropdown menu dismissing behavior.
- #13937: Fix broken live demos for popovers.
- #13940, #13954: Save "Preview theme" state with local storage.
- #13942: Fix link to Less compilation section of docs.
- #13968: Add missing input group code to inline form example.
- #13986: Use valid JSON in compound option value examples in tooltip & popover docs so that they can be safely copy-pasted for data-api usage too.
- #14011: Document radio and checkbox validation states.
- #14021: Add `.collapsed` default class to `.navbar-collapse` for consistency.
- #14036: Have Jekyll use non-minified assets for local, non-hosted docs, for easier testing/debugging.
- #14037: Add new Wall of Browser Bugs entry for Chrome regarding `input[type="password"]` and width of floated elements.
- #14047: Add missing example code code for `kbd` after #13351.
- #14111: Update JS Bin template in CONTRIBUTING.md.
- #14116: Use `<button>` elements over empty `<a>`s in dropdown docs.
- #14143: Add note about JS plugins and users who have JavaScript disabled.
- #14156: Fix dismiss-on-next-click popover example.
- #14192: Use HTTPS for CDN URLs.
- #14203: Document that form field feedback icons only work with `<input class="form-control">`.
- #14211: Add new Wall of Browser Bugs entry for IE regarding `:hover` and scrolling.
- #14256: Correctly document arguments passed to `title` & `content` options of tooltips & popovers when the option values are functions.
- #14257: Document that empty tooltips & popovers do not get displayed.
- #14258: Move Windows Phone 8 IE10 viewport bug workaround script from `<head>` to end of `<body>`.
- #14264: Document arguments passed to `placement` function option of tooltip/popover.
- #14332: Clarify that closing an Alert removes it from the DOM.
- #14406: Consistently use `<nav>` instead of `<div>` for `.navbar` in the docs.
- #14439: Add static tooltip example to docs.
- #14451: Bootstrap's IRC channel is now named `##bootstrap`.
- #14516: Document that `fieldset[disabled]` is somewhat broken in IE11.
- #14527: Add Wall of Browser Bugs entry for #793.
- #14531: Add Wall of Browser Bugs entry for IE11 `<select>` cursor bug.
- #14709: Add default `.collapsed` class to accordion examples.
- #14745: Use `https` for Twitter links.
- #14858: Document `.alert-dismissible` `.close` button usage restrictions
- #14901: Add Wall of Browser Bugs entry for iOS Safari `transform: translate3d(0, 0, 0)` bug

## Examples
- #13964: Fix markup of "Remember me" checkbox in Sign In example for accurate horizontal alignment.
- #14500: Replace nonexistent `.col-6` classes in offcanvas example with `.col-xs-6`.

## Build tools / Packaging
- #14050: Ensure that Bower installs include useful dotfiles (`.jshintrc`, `.csscomb.json`, etc.)
- #14290: Fix `watch` task to also watch files in subdirectories of `/less/`.
- #14336: Have `watch` task regenerate `bootstrap.js` when JS source files are modified.
- #14394: Adjust Gruntfile so that `grunt dist` works when Bootstrap has been downloaded via Bower.
- #14488: Simplify `copy` task.
- #14497: Set Travis's git clone depth to 10 to make it faster.
- #14852: Bump required minimum jQuery version to 1.9.1 in `bower.json`
- #13824: Added `dist/js/npm.js` so the npm module can be properly required.

## Customizer
- #13790: Add feature to import customization `config.json` files via drag-and-drop.
- #14411: Fix Gist creation API call.

v3.2.0: tag_name: v3.2.0
body: **[Be sure to read the blog post for the highlights.](http://blog.getbootstrap.com/2014/06/26/bootstrap-3-2-0-released/)**

## New features
- #12042: Responsive embeds, as seen in SUIT CSS.
- #12204: Visibility and hidden classes for `block`, `inline-block`, and `inline` elements.
- #12690: Added ZeroClipboard to provide a Flash-based copy button on all examples to quickly copy snippets of code.

## CSS

#### Misc
- #12679: Add `.sr-only-focusable` class to provide a focus state for skip nav links.
- #13194: Update Normalize to v3.0.1.
- #13649: Add `translate3d` in a few instances to reduce repainting when scrolling.
- #13737: Reset the `html` `font-size` using pixels instead of percentages.

#### Mixins
- #12459: Refactor scale mixins to ensure both `.scale(x)` and `.scale(x, y)` work. 
- #12855: Add `.animation-fill-mode()` mixin.
- #12993: Add a table of contents to `mixins.less` and reorganize things.
- #12998: Modularized the mixins into separate files. We now have a `mixins` directory in our `less` folder that `@import`s all the mixins into `mixins.less` (for backward compatibility).
- #13859: Update the `.skew()` mixin to use `skewX(...) skewY(...)` instead of old and deprecated `skew(x,y)` syntax.

#### Grid system
- #12854, #12863: Properly reset `left` values to `auto` instead of `0` in `.col-*-push-0` and `.col-*-pull-0` grid reset classes.
- #13616: Add custom grid gutter support to `.container-fixed()`. `.make-row` and `.make-*-col` mixins already had this ability, so this simply completes the package.

#### Images
- #10073: Add `width: 100% \9;` to `.img-responsive` to prevent IE10 and below from distorting`<svg>` elements. 

#### Typography
- #12753, #12756: Ensure the `.clearfix` is applied on `.dl-horizontal dd` by moving it out of the media query (Less doesn't respect `:extend()` within media queries).
- #13449: Increase `.lead` `font-weight` for better readability on mobile.
- #13671: Add `text-transform` utility classes.
- #13854: Darken `@gray-light` and `.lead` to meet accessibility guidelines.
- #13860: Add a new variable for `.dl-horizontal`'s offset.

#### Code
- #12824: Remove `white-space: nowrap` from `<code>` elements in favor of default `pre-wrap` value for better rendering on narrow viewports.
- #13351: Add support for nested `kbd` elements.

#### Tables
- #12722: Scope `.table-responsive` styles to `screen` devices only so they're not cut off when printing from Chrome (Safari is fine, unknown for IE and FF).
- #12742: Make `.table-responsive` more mixin-friendly.
- #13013: Ensure table cells with contextual states preserve their styles when used within a hover table.
- #13375: Remove bottom margin on tables within collapsible panels.
- #13670: Use `overflow-x: auto;` in responsive tables to hide the scrollbar when it's not needed.
- #13707: Remove unnecessary `max-width: 100%;` on `<table>`s and place it on `.table`s.

#### Forms
- #12669: Properly reset `line-height` on all date inputs to ensure Mobile Safari and IE8+ display them correctly.
- #12759: Make input groups in inline forms use `display: table-cell` so they are sized properly and appear on the same line as intended.
- #12794: Fix placement of browser-based form validation popovers for `required` attribute. Applies to Firefox and Chrome.
- #12801: Add padding to the bottom of `.form-control-static` to match height of standard form controls.
- #12843: Scope label styles for horizontal forms to a media query so their narrow viewport display looks just like a normal form.
- #12868: Vertically center form feedback icons for large and small inputs. Also reorders our `bootstrap.less` file to place `glyphicons.less` closer to the top of our imports to avoid specificity issues.
- #13003: Move `padding` on `.radio`s and `.checkbox`s to their immediate `<label>`s to avoid the no-click deadzone caused by negative margin.
- #13066: Add `z-index` to the form control feedback icons so input groups don't render on top of them.
- #13099: Fix vertical alignment for all time-based inputs on iOS.
- #13141: Add a `max-width: 100%;` to `<label>` elements so IE8 wraps text properly.
- #13320: Fix `.form-control-feedback` position when labels have the `.sr-only` class applied. This makes it super easy to use optional feedback icons with no _visible_ label.
- #13548: Use `position: absolute;` and an IE8-9 hack to fix checkbox and radio `line-height` problems (and the vertical alignment) that were introduced after #13003.
- #13651: Update explanatory comment about iOS date/time inputs bug.
- #13745: Add optional `.disabled` class to set not-allowed cursor on disabled radio and checkbox labels.
- #13856: Add `.form-group-sm` and `.form-group-lg`.
- #13872: Always apply padding to `.form-control-static` for proper vertical alignment.

#### Buttons
- #12937: Darken active button background colors just a bit.
- #13079: Scope `.open` button state in `.button-variant()` mixin to immediate children.
- #13549: Use `.opacity()` mixin on button group inputs for IE8 support.
- #13903: Restore side padding on `.btn-block`.

#### Panels
- #12683: Remove the `overflow: hidden;` from `.panel-group > .panel` because it apparently serves no purpose and cuts off nested dropdown menus.
- #12745: Add `@panel-heading-padding` and `@panel-footer-padding` variables for panels.
- #12822: Scope panel collapse styles to immediate `.panel-body`s only.
- #13689: Fix double border in panel when a list group is followed by panel footer.
- #13735: Fix bug where a panel recieve extra top border when placed within a collapsible panel.

#### List groups
- #12490: Add support for disabled list items in list groups.
- #12739: Add `@list-group-link-hover-color` variable to customize the text color when hovering on linked list items.
- #13857: Properly color `<small>`/`.small` within active list group headings.

#### Progress bars
- #12848: Improve progress bars to better handle low to zero percentage values.
- #13861: Refactor striped and animated striped progress bars to deprecate the required parent class and add new modifier classes.

#### Badges
- #12969: Improve badge mixinability with better nesting.
- #13687: Colorize badges in panel headings.

#### Navbar
- #12738: Revamps navbar collapse functionality. Instead of setting a `max-height` on all `.navbar-collapse` elements, we only apply it to fixed top and bottom navbars. Also adds a shorter `max-height` for landscape views to ensure scrolling still works.
- #12694, #12813: Correctly reset `.btn-link` colors in a navbars.

#### Dropdowns
- #13037: Add `text-align: left;` to `.dropdown-menu` to avoid inheritance from any parent that might reset that property (e.g., our `.modal-footer`).
- #13369: Fix dropdown menu alignment in justified button groups in Firefox.
- #13851: Add `white-space: nowrap;` to `.dropdown-header` to match dropdown links.

#### Tooltips and popovers
- #12934, #12952: Base rounded corners on popover titles on the `@border-radius-large` variable.
- #13216, #13217: Increase `z-index` values on tooltips and popovers to always be in front of modals.

#### Modals
- #12803: Removed unnecessary top margin from `.modal-footer`. All spacing is addressed by `padding` on the `.modal-body`, and the `.modal-header` never had any `margin` on it.
- 7e551ecaf7: Update padding on modals to be `15px` all around. Previously was `15px` in the header and `20px` everywhere else.
- #13609: Update modal CSS to prevent shifting before animation.

#### Collapse
- #12593: Add support to Collapse plugin for `tr`s and `tbody`s.

#### Carousel
- #13242: Fix horizontal alignment of carousel controls by using appropriate margin for each side.

#### Theme
- #13093: Reset the `background-color` and `background-image` on disabled theme buttons.

#### Glyphicons
- #13542: Fixes #13478 by reverting #10941. This undoes the hardcoded some URL escaping around our icon paths as a way to fix broken assets when Bootstrap was included via Bower. Instead, folks implementing Bootstrap via Bower should use the relative URLs feature of Less.

## JavaScript

#### Misc
- #11464: Improve the JavaScript `noConflict()` mode not working in 3.0.x.
- #11966: Fix `.noConflict()` mode.
- #12948: Use quotes around all element attribute values in selectors.

#### Dropdowns
- #11281: When opening a dropdown, focus the toggle before (instead of after) triggering the `shown` event.
- #13296, #13354: Don't let dropdown menus disappear with right-click in Firefox.

#### Buttons
- #13511: Fix button plugin to allow empty string as reset state.

#### Scrollspy
- #11453: Fix scrollspy for targets within tabs.
- #11937: Correctly determine `scrollheight` of `<body>` in IE10 and lower.
- #12337: Correct some internal event names in scrollspy plugin.
- #13220: Correct scrollspy offsets when `scrollheight` changes.
- #13589: Adjust for Scrollspy offset when calculating `maxScroll`.
- #13702: Minor scrollspy refactoring.

#### Modals
- #11958: Move Modal `removeBackdrop()` call from `hideModal()` into `backdrop()`.
- #12761: Remove `.focus()` event aliases from modal and dropdown plugins.
- #12850: Stop passing argument of incorrect type to `Modal.hide()`
- #13103: Stop modals from shifting `<body>` content to the left.
- #13615: Add missing event namespacing in `modal.js`.
- #13627: Fix restoration of focus to the triggering element upon dismissal of a modal.

#### Alerts
- #13406: Fire `closed.bs.alert` event after (instead of before) alert has been detached from the DOM.

#### Affix
- #9342, #12982: Properly reset affix position when scrolling back to top.
- #12862: Improve flickering and simplify calculations in affix plugin.
- #13342: Add a `target` option to the Affix plugin.
- #13541: Improve affix plugin's `affix-bottom` positioning.

#### Tooltips and popovers
- #12328: Add tooltip `viewport` option, respect bounds of the viewport.
- #12377: Stop using `document.body.scrollTop`, because it's deprecated.
- #13060, #13481: Add `role="tooltip"` to tooltips & popovers by default to improve accessibility.
- #13165: Fix popover when using `append`.
- #13557: Add `aria-describedby` attribute to tooltips and popovers to improve accessibility
- #13593: Add reference to triggering element to tooltip/popover element's data.
- #13752: Avoid error when trying to show an auto-placed tooltip that gets removed from the DOM.

#### Carousel
- #9461, #13173: Make carousel ignore content that's not an `.item`.
- #12592: Change carousel indicators behavior to immediately move active classes from one indicator to the next.
- #13396: Add `direction` & `relatedTarget` properties to `slid.bs.carousel` event.
- #13787: Add left and right keyboard support to the carousel.

#### Collapse
- #9836, #12983: Prevent collapse animation from jumping when an input holds focus.
- #11099: Prevent `$.collapse()` from overriding original dimensions of the collapsed element when uncollapsing.
- #13157, #13176: Fix issues with transition end event bubbling in the collapse plugin.
- #13306: Don't override the original height/width of a collapsed element when uncollapsing it.
- #13330: Wait for the transition of the expected target to complete during a collapse.

## Docs
- #12487: Document required use of `position: relative;` for Scrollspy plugin.
- #12697: Document support for `input[readonly]`.
- #12744: Document ability to remove animation on modals.
- #12790: Add link to unofficial Italian translation (http://hackerstribe.com/guide/IT-bootstrap-3.1.1/).
- #12808: Correct grid column values listed in Grid Options.
- #12810: Document `.container-fluid` in the CSS overview docs.
- #12818: Small `table` tweak to browser support table.
- #12866: Add `sitemap.xml` and `robots.txt` files.
- #12748, #12956: Document missing examples for common inline typography tags.
- #12688: Document ability to dismiss popover via focus and next click.
- #13024: Add `role="alert"` to alert examples to improve accessibility.
- #13026: Document more Bootstrap components in the Theme and RTL examples.
- #13095: Generate translations list from YAML `_data` file.
- #13167: Use underscore prefix to ignore certain directories.
- #13184: Document the `template` option of tooltip & popover plugins.
- #13190: Document that a function for Popover's `content` parameter is called with the element as an argument.
- #13222: Explicitly document how to change the mobile navbar breakpoint.
- #13332: Document specificity collisions of well backgrounds and contextual background classes.
- #13337: Mention removal of `.progress-*` contextual classes in the migration guide.
- #13340: Document default assumption about icon font's location (and how to change it).
- #13362: Document that you shouldn't `show()` tooltips and popovers on hidden elements.
- #13367: Update gradient mixin docs to use percentage values instead of decimals for color stops.
- #13396: Document `direction` & `relatedTarget` properties of Carousel events.
- #13397: Document that invisible (non-jQuery-`:visible`) scrollspy targets are ignored.
- #13422: Warn about browsing the docs in IE when using an emulation mode to simulate older IE versions; these emulation modes can behave significantly differently than actual older IE versions.
- #13434: Explicitly document grid column wrapping behavior better.
- #13463: Add optional theme preview toggle to the docs sidebar on certain pages.
- #13493: Improve accessibility of `.close` buttons in docs examples.
- #13495: Mark Android Firefox (Fennec) as an officially supported OS+browser combination.
- #13700: Add missing `role="menu"` attrs to `.dropdown-menu`s.
- #13768: Simpler and updated docs copy for icon font file paths given escaped path reversion.

## Customizer
- #9951, #12865, #13205: Add Gist and Customizer URLs to customized files and `config.json`.
- #10632: Show an alert with links when customizer config is successfully saved as Gist
- #12617, #12666: Show proper browser support errors for the Customizer.
- #12773: Add feature detection to block Safari, since it doesn't fully support the necessary Blob API.
- #12719, #12875: Update to Less 1.7.x.
- #12966: Ensure icon font vars are loaded into Customizer.
- #13373: Make variable deprecation notices visible in the Customizer.
- #13151: Update the Customizer to use to UglifyJS 2.
- #13472: Disabled the v2.x customizer.
- #13543: Customizer: make `utilities.less` inclusion mandatory
- #13626: Show proper error message when viewing the Customizer in IE8

## Examples
- #12735: Fix sidebar hover state in Dashboard example.
- #12894: Remove `margin-bottom` from last `<p>` of `.blog-footer` in the Blog example.
- #12897: Remove `border-bottom` from navbar in Dashboard example for easier customization of navbar content.
- #13390: Add IE10 viewport bug workaround to examples.
- #13905: Update the Cover example to move the `box-shadow` from the `<body>` to the `.site-wrapper` so it surrounds content of all lengths.

## Build system
- #12670: Drop use of vendor prefix mixins and use autoprefixer as part of our Gruntfile. Mixins are still available and supported.
- #12672: Add logging to `build-raw-files` Grunt task.
- #12760: Misc Grunt improvements.
- #12798: Updated QUnit test reporting so Sauce Labs can report exact failing tests.
- #12949: Switch to grunt-css-flip Grunt plugin for RTL CSS generation.
- #12829: `package.json` cleanup.
- #12834: Update Sauce Labs config to use new name for Chrome browser for tests.
- #12853: Switch to JSCS to prepare for removal of style changes coming in JSHint 3.
- #12861: Add `docs.css` to the CSSComb task.
- #12989: Don't ignore _every_ dot file in Bower installs, only the ones in the root directory.
- #13064: Add `description` field to `bower.json`
- #13065: Exclude `/test-infra/` from Bower installs.
- #13328: Include a reference to `bootstrap.less` in Bower for easier installs.
- #13587: Switch to Kramdown for Jekyll.
- #13740: Add `replace` entry to `composer.json`.
- #13877: Switch to [uber/npm-shrinkwrap](https://github.com/uber/npm-shrinkwrap) for `npm-shrinkwrap.json` generation 

## Browser bugs

We've started tracking unresolved browser bugs that currently impact Bootstrap's development in some way. We call it the [Wall of browser bugs](http://getbootstrap.com/browser-bugs). We've also documented a few new bugs with this release:
- #10690: Reported a bug in Firefox for responsive images (those with `max-width: 100%`) in table cells. No other browsers are affected. See https://bugzilla.mozilla.org/show_bug.cgi?id=975632. Until a fix is shipped, add `width: 100%;` to your responsive images in table cells.
- #12548: Reported a bug in Chrome where date inputs stop resizing when appearing with `display: table-cell;`. See https://code.google.com/p/chromium/issues/detail?id=346051.
- #12476: Document IE8's limitation of borders on buttons in a justified button group. Currently the only way to get borders on those buttons is to wrap each button in an additional `.btn-group`, just like the button groups using `<button>` elements.

v3.1.1: tag_name: v3.1.1
body: General bug fix and documentation release.

### CSS
- #11659, #12349, #12698: Always show the input above appended buttons in input groups for proper focus and disabled state borders.
- #12025: Ensure responsive utility classes can be combined with one another.
- #12195: Apply `.btn:focused` styles to `.btn.active:focused` for improved accessibility.
- #12412: Refactored and renamed our internal grid mixins for generating custom number of grid columns.
- #12433: Use negative `margin` on `.list-inline`s so we don't override the `padding-left` on the first list item.
- #12448: Use `@navbar-height` instead on `.navbar-brand` to prevent element from being shorter than navbar height. Corrects a change introduced in v3.1.0.
- #12462: Add `border-radius` to tables when in panels for proper rounding with all background settings.
- #12470: Scope large modal styles to minimum viewport width.
- #12486: Restore full width inputs for input groups in inline forms and navbars.
- #12502: Remove long deprecated `:-moz-placeholder` styles.
- #12532: Scope popover arrow styles to immediate children.
- #12552: Fixes two typos in `carousel.less` for the Glyphicon classes.
- #12620, #12621: Use `:extend(.img-responsive)` instead of mixin in thumbnail and carousel. 
- #12625: Only remove top and bottom borders on list groups in panels if the list group is the first or last element.
- #12629: Override the default rounded corners in iOS's search input with `-webkit-appearance: none;`.
- #12633: Properly reset borders on table cells in panels.
- #12639: Drop the unsupported by Opera `-o-user-select`.
- #12659: Add `@blockquote-font-size` variable for calculated text size.
- #12673: Use `@popover-arrow-width` for popover offsets.
- #12674: Update popover `border` colors to use computed values rather than static ones.

### Sass
- #523: Rails 3.2 compatibility
- #518: `scale` mixin Sass compatibility issue
- Updated Bower docs

### JavaScript
- #12436: Update docs, examples, and tests to use jQuery v1.11.0.

## Docs
- #12437: Note specific versions of IE where progress bar animation is supported.
- #12439: Correct docs error about available grid resets.
- #12477: Clarify supported versions of Internet Explorer (we do v8-11) in browser support docs.
- #12494: Update docs to reflect modal remote change from #11933.
- #12497: Remove manual full-width container callout now that there's `.container-fluid`.
- #12512: Improve alignment of the Dashboard example placeholder images.
- #12519: Add Bower badge to README.
- #12527: Clarify that dropdowns always require `data-toggle="dropdown"`.
- #12543, #12544, #12545, #12546: Various fixes to the migration docs.
- #12555: Rearrange variables to place grids and containers closer together in Customizer.
- #12564: Distribution zip folder renamed to be more descriptive.
- #12589: Add "Back to top" link to bottom of sidenav.
- #12590: Add link to Korean translation.
- #12610: Better and more consistent prefixing of docs CSS with `.bs-docs-`.
- #12611: Mention limitation of one JavaScript plugin's data attributes per element.
- #12614: Add progress bar example with visible label.
- #12645: Omit semicolons consistently in JS examples.
- #12655: Upgrade holder.js to v2.3.1 so docs images are rendered properly in Internet Explorer >=9.

### Examples
- #12455: Fix typo in Dashboard example's CSS.
- #12512: Improve alignment of the Dashboard example's placeholder images.
- #12526: Add scrollbars when necessary to the Dashboard example's sidebar.
- #12579: Improve sticky footer examples to avoid any wrappers and improve rendering in IE8.
- #12695: Fixed transitions on offcanvas example by adding initial left and right values.

### Build tools
- #12466: Add the examples' CSS to the `csslint` task. 
- #12531: Add `/docs/dist/` to the `clean` task.
- #12534: Allow the bootstrap package in npm to directly expose CSS and Less files.
- #12568: Add the examples' CSS to the `csscomb` task.
- #12581, #12583: Reorganize all Grunt tasks into one directory so that `grunt` runs properly in Bower installations.
- #12605: Use license object instead of licenses array in Grunt.

v3.1.0: tag_name: v3.1.0
body: ### New features
- Three new templates: Blog, Cover, and Dashboard.
- #10884: Add `.info` variant to contextual table classes.
- #11138: Add contextual styles to list groups.
- #11162: Add new sizes, `.modal-lg` and `.modal-sm`, to modals for quicker settings on modals. Only applies to modals above the small breakpoint.
- #11193: Add `<kbd>` element styles to indicate user input via keyboard.
- #11244: Add `.animation()` mixins.
- #11572: Add contextual `background-color` classes to match our existing text classes. (This also moves both sets of classes to the Helper Classes section of the CSS docs.)
- #11675: Add `.text-justify` class to round out the text alignment classes.
- #11836: Add new form control feedback classes to toggle icons for each validation state. Works on regular forms, horizontal, and inline.

While we originally wanted v3.1 to include RTL support, we decided to hold back on that for some potentially beneficial unreleased tooling. We'll share more on that when we know more, but suffice to say it's been bumped to v3.2.

### CSS changes
- #10951: Add `outline: 0` to `.modal` to prevent a focus outline from appearing in Chrome for Windows.
- #11107: Add `@modal-backdrop-opacity` variable for customizable modal backdrop.
- #11266: Apply a pixel-based `line-height` that matches the `height` to date inputs for iOS 7 for proper vertical alignment of text in the form control.
- #11286: Add `@well-border` variable.
- #11302: Refactor the responsive utility classes to cut a few hundred lines of CSS (more context in #11214).
- #11435: Prevent the double borders between multiple buttons in an input group.
- #11561: Add `float: left;` to `.form-control`s within input groups to prevent IE9 from screwing up placeholder text and select menu arrows.
- #11588: Scope `font-size` to only `<p>` elements in `.jumbotron`s and remove the super-sized `line-height` from the base class to avoid interference with sub-components.
- #11676: Add `-webkit-overflow-scrolling: touch;` to modals for smooth scrolling on iOS devices.
- #11744: Clean up some incompatible properties in `forms.less`: block level inputs no longer receive `vertical-align: middle;` unless necessary, e.g. in inline forms.
- #11748: Updated `.scale()` mixin so that it accepts optional vertical scale as second parameter.
- #11750: Reverts v3.0.3's refactor to contextual table classes to ensure they work with striped tables.
- #11757: Darken default navbar toggle bars to meet WCAG criteria.
- #11766: Use `@color` variable in `.button-variant()` mixin to set `background-color` on `.badge`s in buttons for proper default button badge styles.
- #11741: Don't set `@headings-font-family` to the same font stack as the `<body>`; instead, just use `inherit` for same default CSS.
- #11786: Nest media queries within print utilities for mixin-friendliness.
- #11790: With switch to LESS compiler, remove duplicate CSS generated from the nested `.clearfix` class and mixin by switching to `&:extend(.clearfix all)`.
- #11801: Use correct variables for grid containers.
- #11817: Rework input groups to use the `font-size: 0;` and `white-space: nowrap` hack for a more durable component with regards to code formatting and custom font size changes.
- #11829: Add `.make-xs-column` mixins to complement the recently added extra small predefined grid classes.
- #11836: Along with the form validation update, we reset some key form and icon styles:
  - All `.form-control`s within inline forms are set to `width: auto;` to prevent stacking of `.form-label` within a `.form-group`.
  - Removes all `select.form-control` settings since those are now inherited by the above change
  - Removes the `width: 1em;` from the Glyphicons because it was virtually impossible to override.
- #11841: Breadcrumb padding values now use variables.
- #11859: Restore `@dropdown-caret-color` variable, but deprecate it.
- #11861: Add `@list-group-active-text-color` variable for improved customization on active list group items.
- #11868: Cleanup modal `z-index` values in `modals.less`.
- Updated `<blockquote>` to no longer thing text or modify `line-height` for improved readability.
- #11990, #12159: Make range inputs block level and 100% wide by default.
- #12073: Make order of component variations consistent throughout the repo.
- #12164: Fix value of SVG font ID and removed hard coded value.
- #12171: Ensure panel groups have a bottom margin since we nuke it on child panels.
- #12247: Add and use `.text-emphasis-variant()` mixin for emphasis classes. Also updated emphasis classes to only apply `:hover` styles to linked content.
- #12248: Add and use `.bg-variant()` mixin to generate background classes.
- #12249: Add and use `@modal-md` Less variable for uniformity.
- #12250: Remove print `margin`s per upstream H5BP change, thus deferring to browser defaults,  or users' custom values should they set them.
- #12286: Only remove appropriate `border-radius` from first and last tables or list groups in panels.
- #12353: Scope table border reset in panels to first-child rows.
- #12359: Reset `min-width` on `<fieldset>`s so they don't break responsive tables and behave more like standard block level elements.
- #12406: Upgrade to Normalize v3.
- #12422: Reset height on `select[multiple]` in `.input-size()` mixin.
- #12424: Given Normalize v3 upgrade, account for change on `<figure>` element so that we don't cause backward compatibility issues.
- #12388: Apply a fixed `height` to `.navbar-brand` to ensure adding a Glyphicon doesn't increase it's height.

### JavaScript changes
- #9318, #9459, #10105: Properly place remote content within the `.modal-content` instead of `.modal-body` (see note below).
- #10044: Check that `href` id's are followed by valid characters in dropdowns.
- #10134: Don't use jQuery `offset` directly because it uses sub pixel rendering.
- #10199: Correct `hidden.bs` and `shown.bs` events firing too early in tooltips and popovers.
- #10205: Enable support of Chinese characters in Scrollspy targets.
- #10236: Properly calculate offset positioning for affix plugin when reloading a scrolled window.
- #10260, #10568, #10740: Properly hide tooltips and popovers if no animation is set.
- #10283: Prevent IE8 from complaining about `$.support.transition.end`.
- #10327: Correctly reset carousel when the slide event is prevented.
- #10359: Pass `$element` to offset top/bottom calc funcs for better dynamic offsets.
- #10658: Don't let popover content lose bound events on second `setContent` call.
- #10675: Ensure scrollspy target in tab content works properly.
- #10709: Be consistent about type of quotes in our JS—switches double quotes to single quotes throughout.
- #10761: Don't create new tooltip/popover objects just to destroy them immediately.
- #10798: Modal namespacing.
- #10801: Restore `.collapse` to `.in` after collapsing animation finishes in collapse plugin.
- #10834: Only `preventDefault` on click on `[data-toggle="modal"]` when the element is a link.
- #10890: Calling `$().button(state)` shouldn't enable a disabled button.
- #10911: Add `loaded` event for use with modal's `remote` option.
- #10921: Input groups within button toolbars are now supported.
- #11203: Improve scrollspy's handling of hidden targets.
- #11288: Save vertical scroll position of modal between openings.
- #11362: Update affix and scrollspy on speedy scroll to top of page.
- #11373: Add related target to dropdown events.
- #11379: Fix carousel `this.sliding` not getting reset if `$next.hasClass('active')`.
- #11416: Use the transition duration from the CSS for the carousel.
- #11496: Clear tooltip timeout on destroy.
- #11555: Add `@tooltip-opacity` variable.
- #11720: Add events (affix, affixed, affix-top, etc) to affix plugin.
- #11722: Use document scroll height instead of offset height in affix plugin.
- #11788: Use `focusin`/`focusout` instead of `focus`/`blur` for tooltip and popover focus trigger for Firefox and Safari.
- #11825: Add dropdown ARIA roles.
- #12270: Add namespace `.bs` also to the event `dismiss.modal`.

#### Remote modal content

If you currently use the modal's `remote` option, be aware this release may break your modals. Yes, this is a breaking change, but it's first and foremost a **bug fix** one that corrects a rather longstanding and overlooked error. Our apologies for any headaches it may cause, but it's been missed in the last few patch releases.

See the #11933 pull request for details on the code changes.

### Deprecations
- #10370: Deprecated the `.pull-right` method for aligning dropdown menus. Includes the following changes:
  - Removed an old and unused pair of selectors that didn’t properly target the right-aligned navbar alignment of dropdown menus.
  - Deprecates the `.pull-right` alignment in favor of a more specific and unique class name.
  - Adds `.dropdown-menu-right` as the new alignment class. This is then mixin-ed into the `.navbar-right.navbar-nav` dropdown menus for auto-alignment (keeping the current behavior we have today).
  - Adds new ability to override that auto-alignment though with the new `.dropdown-menu-left`, which is mixin-ed in the same way to provide the appropriate specificity of an override. This should never need to be used except for within right-aligned `.navbar-nav` components.
- #11660: Deprecate `small` and `.small` in `blockquote` citation in favor of `footer` element.
- #12398: Deprecate `.box-shadow()` mixin.

### Documentation
- #10486: Add note about `data-toggle` dropdown dependency.
- #10505: Document more of our LESS variables and mixins (not all, but the commonly used ones).
- #11158: Customizer's variables are now generated via Grunt task from the `variables.less` file.
- #11447: Document that modal remote URL is only loaded once.
- #11655: Normalize disabled inputs and buttons in iOS with `opacity: 1;`.
- #11723: Mention removal of `.pill-content` and `.pill-pane` in the migration guide.
- #11738, #11765: Load minified assets in the docs to improve performance.
- #11742: Add link to French translation in About page (v3.0.3 saw Ukrainian added as well).
- #11760: Remove mailing list links from readme and about pages.
- #11764: Add `meta` tags to docs for description, keywords, and authors.
- #11770: Move component-animations.less to the utility section of import list to match Customizer
- #11830, #11832: More help for Windows users installing Jekyll with requirement of Python and link to [@juthilo](https://github.com/juthilo)'s guide, [Run Jekyll on Windows](https://github.com/juthilo/run-jekyll-on-windows/).
- #11876: Enable `failHard` grunt-html-validation option.
- #11977: Concatenate and minify all docs assets.
- #12037: Move docs `.html` pages and assets into `docs/` subfolder to clean up project root directory. Also moves `.csscomb.json` and `.csslintrc` to `less/` to further clean up project root.
- Updated browser and device support documentation:
  - #11055: add mention of select menu styling on Android stock browsers with included optional fix.
  - Update IDs and docs nav to include bookmark links to each section.
  - Add callout to navbar docs about fixed position, inputs, and virtual keyboard.
- #12073: Make order of component variations consistent throughout the repo.
- #12244: Move v2.x to v3.x migration docs to a separate page.
- #12311: Expand information on how to handle overflowing content in navbars.
- #12314: Add warning about modal markup placement affecting modal appearance/functionality.
- #12345: Add note about printer viewport weirdness.
- #12380: Add link to unofficial German translation, http://holdirbootstrap.de.

### Build system & packaging
- #11761: Add JavaScript Code Style checker integration.
- #11739: Lint `docs-assets/js/application.js` and `docs-assets/js/customizer.js`.
- #11780: Don't ignore `Gruntfile.js` or `package.json` in `bower.json` as they're required for compilation.
- #11790: Switch from Recess to LESS compiler.
  - Dropped `grunt-recess` for `grunt-contrib-less` to get the latest version of LESS (v1.5.x) since Recess was still quite behind.
  - Adds CSScomb to take place of Recess's CSS linting. Includes custom `.csscomb.json` in project root with basically the same property order as Recess.
  - Fixes duplicate CSS generation from the nested `.clearfix` class and mixin by switching to `&:extend(.mixin all)` (also mentioned in changes section).
  - Compiled CSS looks only slightly different—yay!
- #11804: Enable CSS source maps in `grunt-contrib-less`.
- #12003: Customizer now compiles `theme.less` with updated values.
- #12315: Add npm caching based on `npm-shrinkwrap.canonical.json`.

v3.0.3: tag_name: v3.0.3
body: General patch release with dozens of bug fixes and more documentation improvements.

### Key changes

There are a few dozen bug fixes and changes in this release, but we've called out the ones we think matter most:
- Padding of `.navbar-collapse` and alignment of `.navbar-right:last-child` elements has been reworked.
- Added a `max-width: 100%;` to `.container`s.
- Restored the twelfth column's `float: left;` at all grid tiers.

See the list below for more information on those changes and more.

### Specific bug fixes and changes
- #9927: Update non-responsive example to prevent `.navbar-collapse` border from increasing height and increase specificity of nav selectors to keep dropdowns looking the same.
- #10147: Remove outline from carousel controls on focus.
- #10353: Tell Bower to ignore development and documentation files.
- #10483, #10357: Make .container mixin-friendly by moving the width declarations within one class.
- #10662: Enable individually linked images within thumbnails.
- #10744: Use `border-style: solid;` on `.caret`s to undo a previous Firefox fix that appears to no longer work.
- #10936: Increase height of large inputs to fix Firefox inconsistencies by using `ceil()` instead of `floor()`.
- #10941: Fix Glyphicons path for those importing `bootstrap.less` from another directory.
- #10979: Don't use `.img-thumbnail` as a mixin for `.thumbnail` to avoid duplicate and unnecessary styles.
- #11217: Fix vertical alignment of labels within buttons, just like badges in buttons.
- #11268: Account for badges within buttons by matching background to text color and text color to background.
- #11277: Drop the `abbr` element from the `.initialism` selector.
- #11299: Support `.h1` in jumbotrons.
- #11351: Correct grid class reset on input groups by using attribute selector, not an old class from v3 betas.
- #11357: Vertically center `.btn-sm` and `.btn-xs` variations of `.navbar-btn`s in the navbar.
- #11376: Don't deselect radio buttons when double clicking.
- #11387: Improve nesting on table classes to enable easier use of mixins.
- #11388: Simplify contextual table styles mixin (also drops the `border` parameter since we longer apply that anyway).
- #11390: Add `max-width: 100%;` to containers within jumbotrons to avoid horizontal scrollbar.
- #11402: Set `width: auto;` on `select.form-control` within `.form-inline`.
- #11414: Add `.small` support to blockquote citations.
- #11425: Use `margin` instead of `padding` on `.modal-dialog` to click-thru to `.modal-backdrop`.
- #11432: Corrected color contrast to WCAG 2.0 AA for `@state-` variables (applies to forms and labels).
- #11444: Use `@navbar-padding-vertical` for nav links vertical padding.
- #11449: Prefer Menlo over Monaco for monospaced fonts.
- #11468: Prevent default gradient `background-image` on `.navbar-toggle` in Firefox for Android.
- #11476: Remove unnecessary prefixed keyframe declarations for animated progress bars. Given our browser support requirements, we can drop the `-moz-` prefix as the last several versions don't require it.
- #11477: Use namespace events for dropdowns and carousel.
- #11493: Ensure proper width of dropdown buttons within vertical button groups.
- #11499: Switch from `overflow-y: auto;` to `overflow-y: visible;` to prevent vertical scrollbar in some navbar situations.
- #11502: Add missing data namespace for dropdown plugin.
- #11513: Float `navbar-text` elements only when screen width is above `@grid-float-breakpoint`.
- #11515: Reorder the headings with body text and text emphasis classes.
- #11516: Invert dropdown divider border in navbars.
- #11530: Reworked `padding` on `.navbar-collapse` and negative `margin` for right-aligned navbar content to ensure proper alignment on the right side.
- #11536: Add support for button dropdowns within justified button groups.
- #11544: Add `color: inherit;` to `.panel-title` to ensure proper text color when customizing `@headings-color`.
- #11551: Remove color from `outline` reset for improved outlines on focus.
- #11553: Prevent double border on tables in panels without `thead` content.
- #11598: Remove line breaks in minified CSS.
- #11599: Explicitly call out font files in `bower.json` to avoid npm errors.
- #11610: Add `@grid-float-breakpoint-max` to better link navbar behavior across viewports and improve customization when setting `@grid-float-breakpoint`.
- #11614: Account for responsive tables within panels.
- #11617: Include jspm package configuration in `package.json`.
- #11623: Reset `position` to `static` for grid columns within tables to prevent borders from hiding in IE9, IE10, and Firefox.
- #11648: Restore twelfth column's float.
- #11658: Increase `min-height` of `.radio`/`.checkbox` for horizontal forms to ensure alignment of content below.
- #11693: Adds `.table` to responsive visibility mixin.
- #11694: Remove unnecessary prefixes for gradient mixins given our stated browser support.
- #11712: Better support for .table-responsive within .panel's.
- 841da88f3fc93740cca07b6e4581a333d77964f0: Remove browser default top margin from `dl`s.

### Docs changes

Be sure to run `npm install` if you're running `grunt` locally—we've updated our build process and have some new dependencies.
- #9898: Improve scrollspy and affix plugin documentation.
- #10716: Update "What's included" docs section with info on full source code download directory structure.
- #11303: Add link to the docs site in compiled assets, and remove personal usernames.
- #11330: Add `overflow-x: hidden;` to `body` in offcanvas example to prevent horizontal scrolling.
- #11369: Speed up jQuery and Twitter widgets on docs pages by using Google's CDN for jQuery and the async snippet from the Twitter dev site for the widgets.
- #11385: Warn about Webkit bug for justified nav example.
- #11409: Add release checklist to contributing guidelines.
- #11412: Add `word-wrap: break-word;` to docs Glyphicons class names to ensure proper wrapping in IE10-11.
- #11434: Mention form validation class changes in migration docs.
- #11534: Document that modal `show()` and `hide()` return before animation finishes.
- #11634: Add warning to docs to not combine icon classes with other elements.
- #11671: Updated third party asset libraries (for Customizer and Holder, our thumbnail utility).
- #11701: Switch to Sauce Labs for our cross-browser JS unit testing needs.
- 4cbc8d49b10f707029019aaa5eba50e56390a3c5: Remove mention of Chrome from Webkit rendering bug for justified nav.

v3.0.2: tag_name: v3.0.2
body: An impromptu patch release to fix the version numbers in our JavaScript files, restore some missing grid classes, and general improvements to our documentation.
- #10039: Remove `window.jQuery` for `jQuery`.
- #11273: Add branch alias for `composer.json`.
- #11295: Restore offset, push, and pull zero classes (e.g., 1.col-md-offset-0`)
- #11315: Add navigation role to example navbars.
- #11327: Improve nesting of `.thumbnail` styles.
- #11334: Remove unnecessary `&` from CSS nesting for panels.
- #11335: Add Grunt task to update version numbers across entire project. (**Note:** If you run our docs locally, you'll need to run `npm install` in order to run `grunt`).
- #11336: Don't use nonstandard `window.location.origin` in Customizer.
- #11345: Remove duplicate class changes in migration instructions.
- #11349: Add screen reader text for navbar toggles.
- #11378: Use `.navbar-*` alignment classes in `.navbar-text` example.
- Update Node to v0.10.x (current stable)
- Fix links to same-page anchors
- Drop `media` type on basic template example
- Correct download links in readme

For a full list of issues and pull requests in this release, see the [v3.0.2 milestone](https://github.com/twbs/bootstrap/issues?milestone=23&page=1&state=closed).

v3.0.1: tag_name: v3.0.1
body: First patch release for v3, featuring dozens of documentation improvements, bug fixes, and small improvements.

## Docs
- #9880: Use medium grid classes on jumbotron example
- #9887: Document `.show` and `.hide` classes
- #9908: Add `type="submit"` to Customizer compile button to prevent accidental submissions
- #9915: Fix inaccurate comment in media query docs
- #9917: Updated broken download link in README
- #9924: Removed non-ASCII character from non-responsive example CSS
- #9928, #9932: Update carousel example to work in IE10 and correctly display navbar in narrow viewports
- #9931: Add ARIA `role="toolbar"` to elements with `.btn-toolbar` in docs examples
- #9991: Better docs for tabbable tab markup and it's fade option
- #10011: Update Grunt instruction links and wording
- #10012: Add David to project readme to monitor dependency currentness
- #10034: Use npm-registered recent version of `grunt-html-validation` instead of its git repo
- #10040: Better cross referencing of default and navbar pull utilities
- #10042: Updated JS Fiddle tooltip delegation example linked in docs
- #10045: Use v2.3.2 release ZIP instead of master zip for downloads from old docs
- #10081: Documents workaround for tooltips+popovers on disabled elements
- #10082: Documents `.navbar-form`
- #10087: Add version number to all docs pages (in the footer)
- #10088: Updates accessibility docs regarding nesting heading elements
- #10112: More `role` attributes in the docs, this time on link buttons
- #10131: Corrects button group selector in JavaScript docs
- #10136: Broken image link in Carousel example
- #10146: Document `data-ride` carousel feature
- #10209: Fixed broken dismissable alert example
- #10215: More compressed touch icons, updates Respond.js to v1.3.0 and html5shiv.js to v3.6.2, adds `bugs` to package.json
- #10249: Correct component name of jumbotron component in Jumbotron example
- #10272: Removed unused link for nav alignment in Components page
- #10277: Mention removal of navbar vertical dividers in migration docs
- #10278: Change Google Maps compatibility warning to a general `box-sizing` warning with optional reset
- #10282: Cross reference tabs and tabs plugin
- #10298: Add progress bar to migration docs
- #10299, #10323: Getting Started wording changes
- #10316: Document .active and :active for buttons
- #10324, 10338: Restore opt-in warning for tooltips and popovers
- #10342: Update affix docs to better communicate plugin behavior
- #10344: Update IE8-9 support section with table of specific CSS3 and HTML5 features and their support in Bootstrap
- #10372: Homepage now shows two download buttons, one for our assets (CSS, JS, and fonts) and one for the source code (the entire repo)
- #10382: Update Disabling responsiveness docs section for brevity
- #10411: Color coded IE8-9 browser support table 
- #10414: Carousel now uses Glyphicons as default left/right chevron icons (text icons are still supported)
- #10417: Document `.hidden` in the Helper classes _Screen reader content_ section
- #10419: Add nav lists to migration guide
- #10453: Add additional screen reader text to button group dropdown toggles
- #10459: Update Customization section in Getting started page
- #10492: Account for responsive tables in panels
- #10497, #10584: Fix Windows 8 and Windows Phone 8 behavior in Internet Explorer 10 and applies "bug fix" to docs
- #10528: Add new About page to the docs with backstory, core team, community links, and translations
- #10573: Un-hardcode tooltip arrow widths and padding for easier customization
- #10591: Add modal `remote` option semantics change to migration docs
- #10693; Include a copy of the docs license as a file in the repo
- #10711: Address 100% fluid layouts in grid docs and the required padding
- #10768: Fix mention of renamed `.img-polaroid` class in Migration docs
- #10770: Rename `/assets` to `/docs-assets` to reduce confusion between `/dist` and docs dependencies
- #10790: Disable IE compatibility mode in all docs pages and examples
- #10856: Update grid docs to better explain the sizing and interactions when using multiple grid tier classes
- #11013: Use CDNs for jQuery and HTML5 shiv 
- 3318a982290817b40b21a6405b85f791180b5129: Add blog link back to docs homepage
- 8df05b95df85cdd636bcc47c5667c8a198b389df: Remove links to navbar examples from example navbars in Theme example
- 022e40404c283bc6f211cf3e5d55ef7a7d204cdb: Delete smaller touch icons and only include one
- 5d1707a25c0ee68644a182196439a86be1beafbd: Remove unused mention of `.prettyprint` styles from `code.less` (we no longer use that plugin and the class is undocumented, so we're nuking it)
- 6e064894db4a67ed2c1180212426a076a494d300: Remove unnecessary `left` and `right` properties from `.modal-dialog` since we use `margin` to center the modal
- 19db69c902bca678165cf6da8ade018923e05ead: Add Linux Firefox to supported browsers list
- 99b35150ee12d7a693de5ce45eded2f62e9e8354: update outdated JSFiddle example

## Bug fixes and changes
- #9855: Partial fix for open modal content shifting: removed all `margin` settings to prevent some of the content shifting. Still needs JS love to detect scrollbars and adjust content accordingly (will address in v3.0.2).
- #9877: Add improved `.active` state to navbar nav in theme
- #9879: Add hover state (move gradient up 15px) to theme buttons]
- #9909: Add `@component-active-color` variable to complement `@component-active-bg` (and apply it to dropdowns, nav pills, and list group items)
- #9964: Add fonts directory to bower.json `main` files list
- #9968: Simplify striped progress bar mixin to remove unused color
- #9969: Add support for `output` element by styling it more like our `.form-control`
- #9973: Removed unnecessary `-ms-linear-gradient` prefix
- #9981: Account for hover and focus states on pagination disabled items
- #9989: Set monospace `font-family` on `<kbd>` and `<samp>` to match browser defaults
- #9999: Make `.table-hover` styling apply to `<th>` within contextual table rows too
- #10013: Position carousel left and right controls from the left and right, respectively
- #10014, #10406: Update grid to use `width` on `.container`s instead of `max-width` as IE8 doesn't fully support `box-sizing: border-box` when combined with min/max width/height
- #10022: Add `width: 1em;` to all empty Glyphicons to prevent loading flicker
- #10024: Use negative margin to fix the border between button and input in input groups
- #10025: Add additional transform mixins
- #10057: Autohiding scrollbars in responsive tables for Windows Phone 8
- #10059: Add `.transition-property()` mixin
- #10079: Native-style scrolling in responsive tables for iOS
- #10101, #10541, #10565: Generate CSS file banners via Gruntfile
- #10111: Use different colors for dropdown link hover and active states
- #10115: Default carousel controls and Glyphicon controls should behave the same on small devices and up
- #10126: Update responsive test cases to properly highlight hidden class examples
- #10153: Restore `@headings-color` variable
- #10154: Add `.small` to pair with our heading classes (e.g., `h1` and `.h1`)
- #10164: Document `.center-block()` mixin and update CSS to include it as a class
- #10169: Remove old `@navbar-inverse-search-*` variables
- #10223: Add `@input-color` to `.input-group-addon` to match the form controls
- #10227: Use correct `max-width` on Offcanvas example media query and add `overflow-x: hidden` to prevent scrollbar on narrow devices
- #10232: Scope `.table` styles to immediate `thead`, `tbody`, and `tfoot` elements
- #10245: Add `@breadcrumb-separator` variable for customizing breadcrumbs
- #10246: Use correct variable for link hover color in Customizer
- #10256: Use `@navbar-default-brand-color` within the `@navbar-default-brand-hover-color` variable
- #10257: Remove `filter` on navbars in `theme.less` so that dropdowns can be triggered in IE<10
- #10265: Scope `background-image` reset to Bootstrap buttons and form controls only to avoid Android Firefox bug
- #10336: Replace non-ASCII dash in LESS source file
- #10341: Don't change border color on contextual table classes
- #10399: Add hover styles to text emphasis classes
- #10407: Add line-height to progress bar for proper text alignment within
- #10436: Use `@screen-sm` variable instead of hardcoded pixel value in type.less
- #10484: Allow for `.table-bordered` in panels by removing side and bottom margins
- #10516: Use auto positioning for dropdowns in justified nav to fix Firefox rendering
- #10521: Only remove `bottom-border` from last row of cells in `tbody` and `tfoot` within responsive tables
- #10522: Enable use of form validation class on .radio, .checkbox, .radio-inline, and .checkbox-inline
- #10526: Remove custom background on responsive tables and set it in the docs where it should've been originally
- #10560: Remove `display: block;` from `address` element since browsers set that to start
- #10590: Mention required jQuery version in docs
- #10601: Use `overflow-y: auto;` for `.navbar-collapse` instead of `visible` to better enable scrolling on Android 4.x devices (see issue for more details on support and gotchas)
- #10620: Remove `filter` on buttons for IE9 in `theme.less` due to bleed-through with rounded corners (matches behavior and style of Bootstrap 2.x)
- #10641: Remove unused `.accordion-toggle` class from docs example
- #10656: Inherit link and caret colors for textual dropdowns in panel headers
- #10694: Remove unnecessary `content` property from `.caret`
- #10695: Ensure carets in `.nav-pills` dropdown links inherit active color
- #10729: Removed the unnecessary override and the `!important` from `.wrap` in the sticky footer examples
- #10755: Don't remove quotes around `q` element by default
- #10778: Use newly-updated Glyphicons to workaround old Android WebKit bug
- #10763: Update html5shiv to v3.7.0
- #10863: Fix check for presence of jQuery
- #10893: Remove comma separating the color and the color-stop in `-webkit-linear-gradient` in `#gradient > .vertical` mixin
- #10927: Scope `padding-top` on `.form-control-static` to horizontal forms only
- #10949: Use variable for jumbotron `font-size` instead of hard-coded value
- #10959: Round `.lead` `font-size` to nearest whole pixel
- #10997: Move `.hidden` from responsive utilities to utilities (where it belongs, especially on account of deprecated `.hide` per #10769)
- #11050: Restore grid mixins
- #11126: Remove `box-shadow` from `.btn-link.dropdown-toggle`
- #11127: `.navbar-fixed-bottom` should have a top border, not a bottom border
- #11139: Add `position: relative;` to `.modal-dialog` so that the `z-index` takes effect
- #11151: Remove rogue H5BP `.ir` class from print styles
- #11186: Add `background-color` hacks so that clicking carousel indicators in IE8-9 works as intended
- #11188: Refactor `z-index` on navbars. Removes the default `z-index: 1000;` and instead only applies it to static-top, fixed-top, and fixed-bottom. Also fixes up the broken default navbar example's fubared padding.
- #11206: Remove `padding-left` from first list item within `.list-inline`
- #11244: Adds `.animation()` mixin to replace `.progress-bar`'s regular CSS animation properties (and drops the `-moz`, `-ms`, and `-o` prefies as they are not needed per http://caniuse.com/#feat=css-animation).
- #11248: Apply `background-color: #fff;` to `select`s in print styles to fix Chrome bug
- 291a23aa4fc62e7593d4471af2b438aa1017a86a: Audited Customizer variables section and rearranged content

## Deprecated
- #9963, #10567: Deprecate `@screen-*` classes for `@screen-*-min` to better match the `@screen-*-max` variables and provide more context to their actual uses.
- #10005: Finish removing uses of `@screen-{device}` variables by deprecating them for `@screen-*-min` wherever possible.
- #10100: Deprecate `.hide-text` mixin for `.text-hide`. This matches our class-mixin strategy elsewhere (e.g., `.clearfix`) and ensures the class and mixin use the same name to avoid confusion.
- #10125: Deprecate inconsistent container variables for new `@container-{screen-size}` variables (e.g., use `@container-sm` instead of `@container-tablet`)
- #10769: Deprecate `.hide` for `.hidden` so we don't duplicate functionality.

For a complete list of changes, see the [3.0.1 milestone](https://github.com/twbs/bootstrap/issues?milestone=22&page=1&state=closed).

v3.0.0: tag_name: v3.0.0
body: ## What's new

For those who haven't been following along too closely, here's a recap of all the biggest changes shipping with Bootstrap 3:
- **New design and an optional theme!** With v3, we've gone flat. Don't call it a trend—it's all about customization, folks. Since we simplified the aesthetics though, we thought it'd help to have an optional theme. To use it, check out the [Bootstrap theme example](http://getbootstrap.com/examples/theme/).
- **Mobile first and always responsive!** Nearly everything has been redesigned and rebuilt to start from your handheld devices and scale up.
- **Brand new Customizer!** It's been redesigned, is now compiled in the browser instead of Heroku, has better dependency support, and even has built-in error handling. Better yet, we now save your customizations to an anonymous Gist for easy reuse, sharing, and modifications.
- **Better box model by default.** Everything in Bootstrap gets `box-sizing: border-box`, making for easier sizing options and an enhanced grid system.
- **Super-powered grid system.** With four tiers of grid classes—phones, tablets, desktops, and large desktops—you can do some super crazy awesome layouts.
- **Rewritten JavaScript plugins.** All events are now namespaced, no-conflict stuff works way better, and more.
- **New Glyphicons icon font!** While they were gone for a while, we've since restored the Glyphicons to the main repo. In 2.x, they were images, but now they're in font format and include 40 new glyphs.
- **Overhauled navbar.** It's now always responsive and comes with some super handy and re-arrangable subcomponents.
- **Modals are way more responsive.** We've overhauled the modal code to make it way more responsive on mobile devices. They now scroll the entire viewport instead of having a max-height.
- **Added some components!** New to the mix are panels and list groups.
- **Removed some components!** We've dropped the accordion (replaced with collapsible panels), submenus, typeahead, and a few more small items. (Worth celebrating as much as adding new ones.)
- **More consistent base and sizing classes.** Buttons, tables, forms, alerts, and more have been updated to have more consistent classes for easier customizer and extensibility.
- **Docs have been blown up, yo.** We've added a lot of new documentation, not only for our components, but for browser support (including gotchas and bugs), license FAQs, third party support (and workarounds), accessibility, and more.
- **Dropped Internet Explorer 7 and Firefox 3.6 support.** For Internet Explorer 8, you'll need to include [Respond.js](https://github.com/scottjehl/Respond) for all the media queries to work correctly. You can read more about [browser support](http://getbootstrap.com/getting-started/#browser-support) in the docs.

For our pre-release testers and others who have been following along with the RCs, here's a list of some of the more prominent changes made since RC2:
- Hella bugs have been fixed (duh, right?).
- Restored the Glyphicons icon font.
- Navbars now require a `.navbar-default` for the standard version.
- Panels now require a `.panel-default` for the standard gray variation.
- Alerts now require a modifier class (e.g., `.alert.alert-warning` for the previously default yellow alert).
- Multiple responsive utilities can now be applied to the same element.
- Examples are back in the main repo and have been fully updated.
- Docs have been updated for more consistent placement, naming, etc.
- Customizer compiling bugs have all been fixed.
- The optional theme has been added and is demonstrated in an example.
- Jumbotrons are now made to extend the full width of the viewport with a container inside, but if you reverse that, the jumbotron in a container will be rounded and padded.
- The navbar components have been updated to better account for the presence of containers and more. You'll see some new margin and padding changes, but no markup changes should be required.

Thanks everyone! <3

(P.S. The dist download here includes compiled CSS, JS, and fonts only—no source code or docs.)

v3.0.0 RC2: tag_name: v3.0.0-rc.2
body: ### Overview

Second release candidate for the upcoming Bootstrap 3. For a complete set of changes between RC1 and RC1, see the commit logs. Key changes are summarized below. To check it out, visit [http://getbootstrap.com](http://getbootstrap.com) or use one of the download options below.

There's no dedicated ZIP file for the compiled CSS and JS—that falls out of date too quickly.

**To stay up to date, [download the latest 3.0.0-wip](https://github.com/twbs/bootstrap/archive/3.0.0-wip.zip)** instead of the download options below.

### Key changes
- **Docs changes:**
  - The Customizer is back! Still needs some work, but functionality has been rewritten and will be improved as we head to final release.
  - Added new mention to our [browser compatibility docs](http://getbootstrap.com/getting-started/#browsers) to highlight the workaround for Internet Explorer 10 in Windows Phone 8 not picking up media queries. [See #9171.](https://github.com/twbs/bootstrap/pull/9171)
  - Added new section to the Getting Started page for documenting [third party and addon compatibility](http://getbootstrap.com/getting-started/#third-parties) issues. [See #9175.](https://github.com/twbs/bootstrap/pull/9175)
  - Added [new Accessibility section](http://getbootstrap.com/getting-started/#accessibility), lots of new aria and role attributes, and more for improved 508 and WCAG compliancy. [See #9186.](https://github.com/twbs/bootstrap/pull/9186) Also improved used of more semantic HTML5 elements in docs per [#9332](https://github.com/twbs/bootstrap/pull/9332), [#9347](https://github.com/twbs/bootstrap/pull/9347), and [#9352](https://github.com/twbs/bootstrap/pull/9352).
  - Added HTML validation tests, and made any existing failures pass. [See #9396.](https://github.com/twbs/bootstrap/pull/9396)
- **Global CSS changes:**
  - Update vertical and horizontal gradients to make start and end color parameters come first, then start and end positions. [Fixes #9049.](https://github.com/twbs/bootstrap/issues/9049)
  - Make `.pull-right` and `.pull-left` classes use `!important` to avoid needing overrides due to specificity (like in navbar, button groups, etc). [See #8697.](https://github.com/twbs/bootstrap/issues/8697)
  - Lots of variable additions to components.
  - Updated gradients to not include `background-color` for improved use of `rgba()` colors within mixins. [See #8877](https://github.com/twbs/bootstrap/pull/8877)
- **Grid system:**
  - Overhauled grid system to include four tiers instead of the original three of RC1. We now have `.col-xs` (phones), `.col-sm` (tablets), `.col-md` (desktops), and `.col-lg` (large desktops). Responsive utilities have been updated to match these new tiers as well. [See relevant commit](https://github.com/twbs/bootstrap/commit/a2b9988eb908e5b95fb253aac7fde0fbd61c375e).
  - `.row`s only have negative left and right margins if they sit within a `.container`. This resolves the horizontal scrollbar issue for folks with full page containers (restoring the full behavior of the old fluid container from 2.x). [See #8959.](https://github.com/twbs/bootstrap/issues/8959)
  - Grid now includes offset, push, and pull classes for each break point [See #8974.](https://github.com/twbs/bootstrap/pull/8974)
  - Updated mixins to include ability to specify gutter width as a second parameter. [See #8935.](https://github.com/twbs/bootstrap/pull/8935)
- **Buttons:**
  - Buttons and inputs, and their large counterparts, are now a bit shorter.
  - New default button styles and higher contrast on `:hover` and `:active` states. [Fixes #8786.](https://github.com/twbs/bootstrap/issues/8786)
  - New classes for size modifier classes—instead of `.btn-mini`, `.btn-small`, or `.btn-large`, we now have `.btn-xs`, `.btn-sm`, and `.btn-lg`. [See #9056.](https://github.com/twbs/bootstrap/pull/9056)
  - New button group sizing classes: just add `.btn-group-xs`, `.btn-group-sm`, or `.btn-group-lg` to any `.btn-group` and you're good to go. [See #9295.](https://github.com/twbs/bootstrap/pull/9295)
- **Forms:**
  - Similar to the new button classes, we have new input size classes: `.input-sm` and `.input-lg`. [See #9056.](https://github.com/twbs/bootstrap/pull/9056)
  - Input focus states now generated via variable and mixin. Use the `@input-focus-border` variable and `.form-control-focus` mixin to generate a custom `border-color` and `box-shadow`. 
- Size modifier classes for large and small components—including buttons, form inputs, pagination, and wells—have all been standardized to use `-sm` or `-lg`. [See #9056.](https://github.com/twbs/bootstrap/pull/9056)
  - Inline forms now require the use of `.form-group`, [per #9382](https://github.com/twbs/bootstrap/issues/9382), to properly align and size all (native and custom) form controls. This also helps make form markup more consistent and flexible (just swap a class), so woohoo!
  - Added `.static-form-control` to account for static, placeholder text in horizontal form layouts. [Fixes #8150.](https://github.com/twbs/bootstrap/issues/8150)
  - New input group sizing classes: just add `.input-group-sm` or `.input-group-lg` to any `.input-group` and you're good to go. [See #9295.](https://github.com/twbs/bootstrap/pull/9295)
- **Dropped accordion for updated panel.**
  - We've removed the accordion and instead chosen to extend the panel component to provide the same functionality. [See #9404](https://github.com/twbs/bootstrap/pull/9404).
- **Navbar:**
  - Overhauled navbar to always be responsive and mobile first.
    - Navbars now require a `.navbar-header` to wrap up brand and toggle.
    - `.nav-collapse` has been renamed to `.navbar-collapse` and automatically hits a max-height and will overflow to keep your nav content in the same viewport.
    - [See details in #9403.](https://github.com/twbs/bootstrap/pull/9403)
  - Navbar's no longer use `.pull-left` or `.pull-right`, but rather `.navbar-left` and `.navbar-right`. This avoids issues with specificity due to chaining classes and enables easier styling.
- **Miscellaneous component changes:**
  - Alerts that are to be dismissed now require `.alert-dismissable` to properly pad the alert and align the close button. [See #9310](https://github.com/twbs/bootstrap/issues/9310).
  - Responsive utilities are now mixin-able thanks to [#9211](https://github.com/twbs/bootstrap/issues/9211).
  - Dropped `.alert-block` for a simpler `.alert`.
  - Linked panel titles now inherit their color. Fixes [#9061](https://github.com/twbs/bootstrap/issues/9061).
  - List groups in panels no longer require `.list-group-flush`.
  - Labels now require `.label-default` for the "default" gray option. [See #9123.](https://github.com/twbs/bootstrap/pull/9123)
  - Labels now collapse automatically (not in IE8) when empty. [See #9241.](https://github.com/twbs/bootstrap/issues/9241)

v3.0.0 RC1: tag_name: v3.0.0-rc1
body: First release candidate for the upcoming Bootstrap 3. For a complete set of changes and migration help, visit the [BS3 pull request](https://github.com/twbs/bootstrap/pull/6342) and read through the opening comment.

To check it out, visit [http://getbootstrap.com](http://getbootstrap.com) or use one of the download options below. `bs-v3.0.0-rc1-dist.zip` is the compiled CSS and JavaScript (you may also just download the entire source code.

<3

v2.3.2: tag_name: v2.3.2
body: Updated tag to bump the jQuery dependency in Bower and bump Recess to 1.1.9.

Original 2.3.2 tag fixed dropdown for firefox (middleclick) and mobile. (May 17, 2013)

v2.3.1: tag_name: v2.3.1
body: Patch release for @fat's n00bery
- fix missing event type in dropdown
- fix delegated data-attrs for popover/tooltip
- make carousel actually pause when you click cycle
- fix jshint ref in makefile
- fix trying to remove backdrop when no backdrop

v2.3.0: tag_name: v2.3.0
body: Minor release to add carousel indicators, improve tooltips, improve dev setup, and fix hella bugs.
- **Repository changes:**
  - **Local instead of global dependencies** for our makefile and install process. Now getting started is way easier—just run `npm install`.
  - Upgraded to jQuery 1.9. No changes were needed, but we did upgrade the included jQuery file to the latest release.
  - Moved changelog to be within the repo instead of as a wiki page.
- **New and improved features:**
  - **Added carousel indicators!** Add the HTML and it automagically works.
  - **Added `container` option to tooltips.** The default option is still `insertAfter`, but now you may specify where to insert tooltips (and by extension, popovers) with the optional container parameter.
  - Improved popovers now utilize `max-width` instead of `width`, have been widened from 240px to 280px, and will automatically hide the title if one has not been set via CSS `:empty` selector.
  - Improved tooltip alignment on edges with [#6713](https://github.com/twitter/bootstrap/pull/6713).
  - **Improved accessibility for links in all components.** After merging [#6441](https://github.com/twitter/bootstrap/pull/6441), link hover states now apply to the `:focus` state as well. This goes for basic `<a>` tags, as well as buttons, navs, dropdowns, and more.
  - Added print utility classes to show and hide content between `screen` and `print` via CSS.
  - Updated input groups to make them behave more like default form controls. Added `display: inline-block;`, increased `margin-bottom`, and added `vertical-align: middle;`  to match `<input>` styles.
  - Added `.horizontal-three-colors()` gradient mixin (with example in the CSS tests file).
  - Added `.text-left`, `.text-center`, and `.text-right` utility classes for easy typographic alignment.
  - Added `@ms-viewport` so IE10 can use responsive CSS when in split-screen mode.
- **Docs changes:**
  - Added [new justified navigation example](https://f.cloud.github.com/assets/98681/25869/5e2f812c-4afa-11e2-9293-501cd689232d.png).
  - Added sticky footer with fixed navbar example.

See more on the [2.3.0 pull request](https://github.com/twitter/bootstrap/pull/6346).

v2.2.2: tag_name: v2.2.2
body: Bugfix release addressing docs, CSS, and some JavaScript issues. Key changes include:
- **Docs:**
  - Assets (illustrations and examples) are now retina-ready.
  - Replaced [Placehold.it](http://placehold.it) with [Holder.js](http://imsky.github.com/holder/), a client-side and retina-ready placeholder image tool.
- **Dropdowns:** Temporary fix added for dropdowns on mobile to prevent them from closing early.
- **Popovers:**
  - No longer inherits `font-size: 0;` when placed in button groups.
  - Arrows refactored to work in IE8, and use less code.
  - Plugin no longer inserts popover content into a `<p>`, but rather directly into `.popover-content`.
- **Labels and badges:** Now [automatically collapse](https://github.com/twitter/bootstrap/commit/ead5dbeba5cd7acfa560bfb353f5e7c4f4a19256) if they have no content.
- **Tables:** Nesting support with `.table-bordered` and `.table-striped` greatly improved.
- **Typeahead:**
  - Now [inserts dropdown menu after the input](https://github.com/twitter/bootstrap/commit/1747caf19d59cad7fdc90ae56a00e0e2849f95f4) instead of at the close of the document.
  - Hitting escape will place focus back on the `<input>`.
- Print styles, from HTML5 Boilerplate, have been added.

See more on the [2.2.2 milestone](https://github.com/twitter/bootstrap/issues?milestone=17&state=closed).

v2.2.1: tag_name: v2.2.1
body: Hotfix release to address the carousel bug reports.

v2.2.0: tag_name: v2.2.0
body: ### tl;dr

2.1.2 is now 2.2.0: four new example templates, added media component, new typographic scale, fixed that box-shadow mixin bug, fixed z-index issues, and [more](https://github.com/twitter/bootstrap/issues?milestone=15&page=1&state=closed).

### Highlights
- **Added four new example templates** to the docs, including a narrow marketing page, sign in form, sticky footer, and a fancy carousel (created for an upcoming .net magazine article).
- **Added the media component**, to create larger common components like comments, Tweets, etc.
- **New variable-driven typographic scale** based on `@baseFontSize` and `@baseLineHeight`.
- Revamped mini, small, and large padding via new variables for inputs and buttons so everything is the same size.
- Reverted 2.1.1's `.box-shadow();` mixin change that caused compiler errors.
- Improved dropdown submenus to support dropups and left-aligned submenus.
- Fixed z-index issues with tooltips and popovers in modals.
- Hero unit now sets basic type styles for the entire component, rather than on `.hero-unit p { ... }`.
- Updated JavaScript plugins and docs to jQuery 1.8.1.
- Added Contributing.md file.
- Added support for installing Bootstrap via [Bower](http://twitter.github.com/bower).
- Miscellaneous variable improvements across the board.
- Miscellaneous documentation typos fixed.

v2.1.1: tag_name: v2.1.1
body: - New feature: alert text. We documented these new classes, like `.text-success`, at the bottom of the [Typography section](http://twitter.github.com/bootstrap/base-css.html#typography) along with the long undocumented `.muted`.
- Fixed a lot of typos in the docs. Spelling is hard.
- Made the `.box-shadow()` mixin more durable. It no longer requires escaping for multiple shadows, meaning you can easily use variables and functions in them once again.
- Widened `.dl-horizontal dt` and `.horizontal-form .control-group` to better handle the increased font-size.
- Dropdown submenus improved: now you only see the next level, not all levels, on hover of the submenu toggle.
- Clarified jQuery and Bootstrap template requirements in Getting Started section.
- `select` now utilizes `@inputBorder`.
- `.lead` now scales up from `@baseFontSize` instead of being a fixed font-size and line-height.
- Fixed the vertical three color gradient in latest Firefox.
- Reordered some variables that caused errors in certain Less compilers.

v2.1.0: tag_name: v2.1.0
body: - Submenu support on dropdowns
- Affix JavaScript plugin
- Block level buttons
- State classes on table rows
- Improved disabled states on navs and dropdowns
- The navbar component is now white by default, with an optional class to darken it
- Improved prepended and appended inputs
- New base font-size and line-height
- Added variable for navbar collapse trigger point
- Fluid grid offsets
- Fluid grid system variables are no longer fixed percentages
- Removed LESS docs page

v2.0.4: tag_name: v2.0.4
body: ### Docs
- Added `type="button"` to all dismiss buttons in alerts and modals  to avoid a bug in which they prevent their parent's `form` from properly submitting.
- Added simple documentation to Base CSS for `.lead`.
- Added new CSS test to illustrate how the navbar, static and fixed, behaves.
- Clarified grid sizing copy to include mention of responsive variations.
- Reformatted the LESS docs page to prevent terrible table displays at smaller grid sizes.
- Miscellaneous typos and tweaks.

### CSS
- Refactored forms.less to make our selectors more specific for fewer overrides and less code. Instead of a generic `input` selector and various resets, we target each type of input like `input[type="text"]`, `input[type="password"]`, etc.
- Form field state (e.g., success or error) now applies to checkbox and radio labels.
- Removed redundant CSS on `<p>` for `font-family`, `font-size`, and `line-height`.
- Removed redundant `color` declaration from the `<label>` element.
- Added variables for dropdown dividers border colors.
- `legend` and `.form-actions` share the same `border-color`, `#e5e5e5`.
- Fixed some responsive issues with input-prepend and -append, notably with the fluid grid.
- Added special CSS to prevent `max-width: 100%;` on images from messing up Google Maps rendering.
- Scope opened dropdowns to only immediate children to avoid unintended cascade.
- Similarly, scope floated-right dropdowns to immediate children with `.pull-right > .dropdown-menu`.
- Updated `.placeholder()` mixin to use `&` operator in Less for proper output when compiling.
- Added `-ms-input-placeholder` to `.placeholder()` mixin.
- Added CSS3 hyphens mixin.
- Fixed a bug in IE7/8 where certain form controls would not show text if the parent had a filter opacity set.

v2.0.3: tag_name: v2.0.3
body: ### HTML and CSS
- Overhauled the responsive utility classes to simplify required CSS, add `!important` to all declarations, and use `display: inherit` in place of `display: block` to account for different types of elements.
- Removed `>` from fluid grid column selectors, meaning every element with a `.span*` class within a `.row-fluid` will use percentage widths instead of fixed-pixels.
- Fixed regression in responsive images support as of 2.0.1. We've re-added `max-width: 100%;` to images by default. We removed it in our last release since we had folks complaining about Google Maps integration and other projects, but we're taking a different stance now on these things and will require developers to make these tweaks on their end.
- Added variable `@navbarBrandColor` for the brand element in navbars, which defaults to `@navbarLinkColor`.
- Font-family mixins now use variables for their stacks.
- Fixed an unescaped `filter` on the `.reset-filter()` mixin that was causing some errors depending on your compiler.
- Fixed regression in `.form-actions` background, which was too dark, by adding a new variable `@formActionsBackground` and changing the color to `#f5f5f5` instead of `#eee`.
- Fixed an issue on button group dropdowns where the background color was not using the button's darker color when the dropdown is open.
- Generalized and simplified the open dropdown classes while adding smarter defaults. Instead of `.dropdown.open`, we now use just `.open`. On the defaults side, all dropdown menus now have rounded corners to start.
- Improved active `.dropdown-toggle` styles (for dropdown buttons) by darkening the background and sharpening the inset shadow to match the active state of buttons.
- Direction of animation on progress bars reversed.
- Fixed input-prepend/append issue with uneditable inputs: `.uneditable-input` was being floated and a missing comma meant its `border-radius` for the append option wasn't being applied properly.
- Removed `height: auto;` from `img` since it was overriding dimensions set via HTML attributes.
- Fixed an issue of double borders on the top of tables with captions or colgroups.
- Fixed issue with anchor buttons in the `.navbar-text`. Instead of a general styling on all anchors within an element with that class, we now have a new class to specifically apply appropriate link color.
- Added support for `@navbarHeight` on the brand/project name and nav links for complete navbar height customization.
- Fixed the black borders on buttons problem in IE7 by removing the border, increasing the line-height, and providing darker background colors.
- Removed excess padding on `.search-query` inputs in IE7 since it doesn't have border-radius.
- Updated alert messages in Components to use `button` elements as close icons instead of `a`. Both can be used, but an `a` will require `href="#"` for dismissal on iOS devices.
- Fixed an issue with prepended/appended inputs in Firefox where `select` elements required two clicks to toggle the dropdown. Resolved by moving the `position: relative` to the `select` by default instead of on `:focus`.
- Added a new mixin, `.backface-visibility`, to help refine CSS 3D tranforms. Examples and explanation of usage can be found on [CSS Tricks](http://css-tricks.com/almanac/properties/b/backface-visibility/).
- Changed specificity of grid classes in responsive layouts under 767px to accurately target `input`, `select`, and `textarea` elements that use `.span*` classes.
- Horizontal description lists, `.dl-horizontal`, now truncate terms that are too long to fit in their fixed-width column. In the < 767px responsive layout, they change to their default stacked layout.
- Changed tabbable tabs to prevent issues in left and right aligned tabs. `.tab-content` would not growing to its parent's full width due to `display: table`. We removed that and the `width: 100%` and instead just set `overflow: auto` to clear the left and right aligned tabs.
- Updated thumbnails to support fluid grid column sizing.
- Added `>` to most of the button group selectors
- Added new variable, `@inputBorderRadius`, to all form controls that previously made use of the static `3px` value everywhere.
- Changed the way we do `border-radius` for tables. Instead of the regular mixin that zeros out all other corners, we specify one corner only so they can be combined for use on single column table headers.
- Updated Glyphicons Halflings from 1.5 to 1.6, introducing 20 new icons.
- Added an `offset` paramater to the `.makeColumn`.
- Increased the specificity of all tabbable nav selectors to include `.nav-collapse` to appropriately scope the responsive navbar behavior.
- Fixed uneditable inputs: text now cuts off and does not wrap, making it behave just like a default `input`.
- Labels and badges are now `vertical-align: baseline;` so they line up with surrounding text.

### Javascript
- Add jshint support
- Add travis-ci support w/ headless phantom integration
- Replace UA sniffing in bootstrap-transitions.js
- Add MSTransitionEnd event to transition plugin
- Fix pause method in carousel (shouldn't restart when hovering over controls)
- Fix crazy opera bug #1776
- Don't open dropdown if target element is disabled
- Always select last item in scrollspy if you've reached the bottom of the document or element
- Typeahead should escape regexp special chars
- If interval is false on carousel, do not auto-cycle
- Add preventDefault support for all initial event types (show, close, hide, etc.)
- Fix collapse bug in ie7+ for initial collapse in
- Fix nested collapse bug
- If transitioning collapse, don't start new transition
- Try to autodetect when to use html/text method in tooltip/popovers to help prevent xss
- Add bootstrap + bootstrap.min.js to gh-pages for @remy and jsbin support

### Documentation and repo
- Combined badges and labels into a single LESS file, labels-badges.less, to reduce repeated CSS.
- Separated responsive features into multiple files. We now have a file for each grouping of media queries (tablets and down, tablets to desktops, and large desktops). Additionally, the visible/hidden utility classes and the responsive navbar are in their own files. The output is the same in the compiled CSS, but this should give folks a bit more flexibility.
- Added a new CSS Tests page in the docs (not in the top nav) for better testing of edge cases and extending the use of standard components.
- Removed the bootstrap.zip file from the repo and the make process for faster building and a lighter repo. From now on, the zip will only be in the documentation branch.
- Fixed incorrect use of class instead of ID for tabs example and added documentation for multiple ways of toggling tabs.
- Fixed required markup listed for the specialized navbar search field.
- Removed all mention of `@siteWidth`, a variable no longer in use.
- Removed mentions of unused `@buttonPrimaryBackground` variable, which is no longer in use.
- Updated LESS docs page to include all the new variables we added in previous releases.
- Removed broken "dropup" menus from tabs and pills examples (shouldn't have been there in the first place).
- Replaced `.badge-error` with `.badge-important`. The error option is not a valid class and was a typo in the docs.
- Fixed mention of how to add plain text to the navbar. Previously the docs stated you only needed a `p` tag, but the required HTML is any element with class `.navbar-text`.
- Clarified the use of `.tabbable` for tabs. The wrapping class is only required for left and right tabs to clear their floats. Also added mention of `.fade` to fade in tabs.
- Updated forms documentation:
  - Remove unnecessary duplicate help text in first example
  - Added mention of required `input` class, `.search-query`, for the search form variation
  - Removed incorrect mention of form fields being `display: block;` to start as fields are `inline-block` to start.
- Added mention of `data-target` attribute for the dropdowns javascript plugin to show how to keep custom URLs intact on links with `.dropdown-toggle` class.
- Updated the Kippt screenshot on the homepage to reflect their recent responsive redesign and upgrade to 2.0.2.

v2.0.2: tag_name: v2.0.2
body: ### Documentation updates
- All docs pages now have distinct titles, such as <em>Scaffolding &middot; Twitter Bootstrap</em>.
- Updated the Apple touch icons (now black on black instead of the blue grid) and fixed the links to them in the docs.
- Added new global styles docs section to the Scaffolding page.
  - Required use of HTML5 doctype
  - Overview of global typographic and links details
  - Mention of our embedded CSS reset via [Normalize.css](http://necolas.github.com/normalize.css/)
- Added version number to the download button on the docs homepage.
- Updated progress bars section to simplify how the classes stack and more clearly indicate the available optional classes and styles.
- Added a new example, [SoundReady.fm](http://soundready.fm), to the homepage
- Added various sizes to the docs for button groups

### Resolved bugs
- Removed all IE7 hacks and floats from `.input-prepend` and `.input-append`, however, this requires you to **ensure there is no whitespace in your code** between `.add-on` and the `input`.
- In `.input-prepend` and `.input-append`, added ability to use add-ons on both sides when you chain the selectors.
- Updated lingering `.btn-dark` reference to `.btn-inverse`.
- Fixed issue with content being cut off in `.tab-content` for tabbable sections.
- Updated `.navbar .container` to use `width: auto;` to start and then reset the fixed widths via the `#gridSystem` mixin (it's a little dirty, but required to avoid adding another class).
- Modal footer buttons are now aligned by their parent via `text-align: right;` instead of `float: right` on the button level. This was changed to allow the use of `.pull-left` and `.pull-right` to align buttons easily. Double check your button order with this change!
- Fixed problem where default striped progress bar was green instead of blue.
- Fixed CSS selector used for `input` and `textarea` grid sizes to properly apply the CSS (was `input > .span*` and now is `input.span*`).

### New features
- Horizontal dividers support added to nav lists
- Added basic version of badges
- Added visible/hidden classes for devices
- Added support for buttons in input-prepend/append component
- Added .navbar-fixed-bottom support
- Added .dropup support for dropdown menus to pop them upward instead of downward (this is automatically done for the newly added fixed bottom navbar).
- Added mixin for [new image replacement technique](http://www.zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement/)
- Added pause on hover for the carousel
- Added tons of new variables for typography, buttons, forms, dropdowns, navbar, and more for the LESS pros out there. These variables have also been reflected on the Customize page.
- Added new horizontal description list variation
- Added `.disabled` class support to the pager component (also added a mention of this to the docs)
- Added `.well-large` and `.well-small` classes for extending the well component

v2.0.1: tag_name: v2.0.1
body: - Previously the docs called for use of `.control-label` in the examples, but the CSS didn't make clear use of it. This class is required for horizontal forms and has been reflected in the CSS.
- We've tried our best to improve rendering of buttons and icons across all browsers. Some issues remain; Firefox throws an `!important`on `line-height` for inputs, so that's the big one.
- We refined the label component style to move away from uppercase.
- Added the black button option, `.btn-inverse`.
- Added a mini button class, `.btn-mini`.
- We had to re-add the protocol, `http:` to the HTML5 schim because IE7-8 wouldn't recognize it, dropping some HTML5 support for those browsers and introducing major performance issues.
- Resolved some issues with responsive layouts where media queries would overlap at 768px and 980px.
- Rearranged Scaffolding docs page to split fixed and fluid grid systems.
- Tons of docs updates for typos and language changes.

v2.0.0: tag_name: v2.0.0
body: Essentially an entire rewrite of the library—docs, CSS, and JavaScript. Adds optional responsive CSS for nearly all components.

### Project changes
- Docs: major updates across the board to general structure, examples, and code snippets. Also made responsive with new media queries.
- Docs: all docs pages are now powered by Mustache templates and strings are wrapped in i18n tags for translation by the Twitter Translation Center. All changes to documentation must be done here and then compiled (similar to our CSS and LESS).
- Repo directory structure: removed the compiled CSS from the root in favor of a large direct download link on the docs homepage. Compiled CSS is in `/docs/assets/css/`.
- Docs and repo: one makefile, just type `make` in the Terminal and get updated docs and CSS.

### Scaffolding

#### Grid system
- Updated grid system, now only 12 columns instead of 16
- Responsive approach means your projects virtually work out of the box on smartphones, tablets, and more
- Removed unused (by default) grid columns support for 17-24 columns

#### Responsive (media queries)
- Media queries added for <strong>basic support</strong> across mobile and tablet devices
- Responsive CSS is compiled separately, as bootstrap-responsive.css

### Base CSS

#### Typography
- `h4` elements were dropped from 16px to 14px with a default `line-height` of 18px
- `h5` elements were dropped from 14px to 12px
- `h6` elements were dropped from 13px to 11px
- Right-aligned option for blockquotes if `float: right;`

#### Code
- New graphical style for `&lt;code&gt;`
- Google Code Prettify styles updated (based on GitHub's gists)

#### Tables
- Improved support for `colspan` and `rowspan`
- Styles now restricted to new base class, `.table`
- Table classes standardized with `.table-` required as a prefix
- Removed unused table color options (too much code for such little impact)
- Dropped support for TableSorter

#### Buttons
- New classes for colors and sizes, all prefixed with `.btn-`
- IE9: removed gradients and added rounded corners
- Updated active state to make styling clearer in button groups (new) and look better with custom transition
- New mixin, `.buttonBackground`, to set button gradients

#### Forms
- Default form style is now vertical (stacked) to use less CSS and add greater flexibility
- Form classes standardized with `.form-` required as a prefix
- New built-in form defaults for search, inline, and horizontal forms
- More flexible horizontal form markup with classes for all styling, including new optional class for the `label`
- Form states: colors updated and customizable via new LESS variables

#### Icons, by Glyphicons
- New Glyphicons Halflings icon set added in sprite form, in black and white
- Simple markup required for an icon in tons of contexts: `&lt;i class="icon-cog"&gt;&lt;/&gt;`
- Add another class, `.icon-white`, for white variation of the same icon

### Components

#### Button groups and dropdowns
- Two brand new components in 2.0: button groups and button dropdowns
- Dependency: button dropdowns are built on button groups, and therefore require all their styles
- Button groups, `.btn-group`, can be grouped one level higher with a button toolbar, `.btn-toolbar`

#### Navigation
- Tabs and pills now require the use of a new base class, `.nav`, on their `&lt;ul&gt;`
- New nav list variation added that uses the same base class, `.nav`
- Vertical tabs and pills have been added&mdash;just add `.nav-stacked` to the `&lt;ul&gt;`
- Pills were restyled to be less rounded by default
- Pills now have dropdown menu support (they share the same markup and styles as tabs)

#### Navbar (formerly topbar)
- Base class changed from `.topbar` to `.navbar`
- Now supports static position (default behavior, not fixed) and fixed to the top of viewport via `.navbar-fixed-top` (previously only supported fixed)
- Added vertical dividers to top-level nav
- Improved support for inline forms in the navbar, which now require `.navbar-form` to properly scope styles to only the intended forms.
- Navbar search form now requires use of the `.navbar-search` class and its input the use of `.search-query`. To position the search form, you <strong>must</strong> use `.pull-left` or `.pull-right`.
- Added optional responsive markup for collapsing navbar contents for smaller resolutions and devices.

#### Dropdown menus
- Updated the `.dropdown-menu` to tighten up spacing
- Now requires you to add a `&lt;span class="caret"&gt;&lt;/span&gt;` to show the dropdown arrow
- The navbar (fixed topbar) has brand new dropdowns. Gone are the dark versions and in their place are the standard white ones with an additional caret at their tops for clarity of position.

#### Labels
- Label colors updated to match form state colors
- Not only do they match graphically, but they are powered by the same new variables

#### Thumbnails
- Formerly `.media-grid`, now just `.thumbnails`, we've thoroughly extended this component for more uses while maintaining overall simplicity out of the box.
- Individual thumbnails now require `.thumbnail` class

#### Alerts
- New base class: `.alert` instead of `.alert-message`
- Class names standardized for other options, now all starting with `.alert-`
- Redesigned base alert styles to combine the deafult alerts and block-level alerts into one
- Block level alert class changed: `.alert-block` instead of `.block-message`

#### Progress bars
- New in 2.0
- Features multiple styles via classes, including striped and animated variations via CSS3

#### Miscellaneous components
- Added documentation for the well component and the close icon (used in modals and alerts)

### Javascript plugins

We're rewritten just about everything for our plugins, so head on over to the Javascript page to learn more.

#### Popovers
- Child elements now properly namespaced: `.title` to `.popover-title`, `.inner` to `.popover-inner`, and `.content` to `.popover-content`.

#### New plugins
- Collapse
- Carousel
- Typeahead

v1.4.0: tag_name: v1.4.0
body: - **Updated tables** to make no border the default and add options for condensed and bordered versions
- **Updated form states** to expand on error styles and provide warning and success variations
- New javascript plugin for button states
- Switched to strict mode for Javascript plugins
- Added more data attribute controls to our plugins
- Full list of 25+ issues fixed: https://github.com/twitter/bootstrap/issues?milestone=6&state=closed

v1.3.0: tag_name: v1.3.0
body: ### New features
- **Javascript plugins** for modals, alerts, dropdowns, scrollspy, tabs, tooltips, and popovers that work with jQuery and Ender
- **Massively updated docs** for both the main page and for the new javascript plugins
- **Inline labels** for marking inline content with key visual flags
- Media thumbnails
- Breadcrumbs

### Updated docs
- Added complete javascript page with detailed documentation for how to use plugins
- Three complete example pages of using Bootstrap, linked from main docs page with thumbnails
- Added section for compiling Less, for guidelines on how to recompile Bootstrap with Less
- Added section for customizing grid variables in Less to roll your own grid system
- Added section for code for using pre and code tags
- Added section for form field sizes that match grid column sizes

### Key bug fixes and changes
- Updated table styles to be just a tad bit more refined
- Added new form input sizes based on the Bootstrap grid system (meaning now you can do `input.span5` for a 280px-wide input)
- Removed `:focus` states from `:active` links in Firefox
- Fixed unqualified `.clearfix` in forms.less that added bottom margin to all containers
- Updated `.container()` mixing to be `.fixed-container()` to prevent conflicts when compiling
- Added focus states (either `box-shadow` or `outline` on `:focus`) to all buttons, links, and inputs
- No longer require `h3` in topbar, but still support for backwards compatibility

v1.2.0: tag_name: v1.2.0
body: - **Dropdowns refactored** to be extensible (now work in ul.tabs)
- **Added HTML5 form support** by generalizing the form selectors (e.g., input instead of input[type=text|password])
- **Gradients back in IE**, but removed rounded corners in IE9 to prevent background bleed on buttons and alert messages
- **Simplified the grid CSS** by removing the static .span1-16 classes in favor of CSS-style regex for column styles in the grid
- **Added .one-third and .two-thirds columns** to the grid system
- Fixed bug in disabled buttons where they received :active styles
- Bug fixes

v1.1.1: tag_name: v1.1.1
body: - **Redesigned alerts** to be more readable
- **Refactored buttons and alerts CSS** to be simpler
- Updated grid system to be more specific and not require .column or columns
- Improved on specificity of CSS selectors by removing unnecessary tag and parent selectors
- Miscellaneous updates to docs
- Bug fixes

v1.1.0: tag_name: v1.1.0
body: - **Added support for IE7 and IE8**
- Added examples directory with first example usage of Bootstrap for a simple website
- Syntax fixes for gradients and color-stops
- Miscellaneous updates to docs
- Bug fixes

v1.0.0: tag_name: v1.0.0
body: Initial release of Bootstrap! Includes only CSS and docs (JavaScript plugins not added until v1.3).