diff --git a/.browserslistrc b/.browserslistrc index 122986c8e..b8e384bc9 100644 --- a/.browserslistrc +++ b/.browserslistrc @@ -1,13 +1,14 @@ # https://github.com/browserslist/browserslist#readme ->= 1% -last 1 major version +>= 0.5% +last 2 major versions not dead Chrome >= 60 Firefox >= 60 # needed since Legacy Edge still has usage; 79 was the first Chromium Edge version # should be removed in the future when its usage drops or when it's moved to dead browsers not Edge < 79 +Firefox ESR iOS >= 10 Safari >= 10 Android >= 6 diff --git a/.bundlewatch.config.json b/.bundlewatch.config.json index 4bfffbab4..074066390 100644 --- a/.bundlewatch.config.json +++ b/.bundlewatch.config.json @@ -10,7 +10,7 @@ }, { "path": "./dist/css/bootstrap-reboot.css", - "maxSize": "2 kB" + "maxSize": "2.25 kB" }, { "path": "./dist/css/bootstrap-reboot.min.css", @@ -34,11 +34,11 @@ }, { "path": "./dist/js/bootstrap.bundle.js", - "maxSize": "50 kB" + "maxSize": "41 kB" }, { "path": "./dist/js/bootstrap.bundle.min.js", - "maxSize": "22 kB" + "maxSize": "21.5 kB" }, { "path": "./dist/js/bootstrap.esm.js", diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 0913b5b5b..32b30cdb3 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -101,12 +101,12 @@ Example: Sometimes bugs reported to us are actually caused by bugs in the browser(s) themselves, not bugs in Bootstrap per se. -| Vendor(s) | Browser(s) | Rendering engine | Bug reporting website(s) | Notes | -| ------------- | ---------------------------- | ---------------- | --------------------------------------------------------------------- | -------------------------------------------------------- | -| Mozilla | Firefox | Gecko | https://bugzilla.mozilla.org/enter_bug.cgi | "Core" is normally the right product option to choose. | -| Apple | Safari | WebKit | https://bugs.webkit.org/enter_bug.cgi?product=WebKit | In Apple's bug reporter, choose "Safari" as the product. | -| Google, Opera | Chrome, Chromium, Opera v15+ | Blink | https://bugs.chromium.org/p/chromium/issues/list | Click the "New issue" button. | -| Microsoft | Edge | Blink | https://developer.microsoft.com/en-us/microsoft-edge/ | Go to "Help > Send Feedback" from the browser | +| Vendor(s) | Browser(s) | Rendering engine | Bug reporting website(s) | Notes | +| ------------- | ---------------------------- | ---------------- | ------------------------------------------------------ | -------------------------------------------------------- | +| Mozilla | Firefox | Gecko | https://bugzilla.mozilla.org/enter_bug.cgi | "Core" is normally the right product option to choose. | +| Apple | Safari | WebKit | https://bugs.webkit.org/enter_bug.cgi?product=WebKit | In Apple's bug reporter, choose "Safari" as the product. | +| Google, Opera | Chrome, Chromium, Opera v15+ | Blink | https://bugs.chromium.org/p/chromium/issues/list | Click the "New issue" button. | +| Microsoft | Edge | Blink | https://developer.microsoft.com/en-us/microsoft-edge/ | Go to "Help > Send Feedback" from the browser | ## Feature requests @@ -134,9 +134,9 @@ Please adhere to the [coding guidelines](#code-guidelines) used throughout the project (indentation, accurate comments, etc.) and any other requirements (such as test coverage). -**Do not edit `bootstrap.css`, or `bootstrap.js` -directly!** Those files are automatically generated. You should edit the -source files in [`/bootstrap/scss/`](https://github.com/twbs/bootstrap/tree/main/scss) +**Do not edit `bootstrap.css` or `bootstrap.js`, and do not commit +any dist files (`dist/` or `js/dist`).** Those files are automatically generated by our build tools. You should +edit the source files in [`/bootstrap/scss/`](https://github.com/twbs/bootstrap/tree/main/scss) and/or [`/bootstrap/js/src/`](https://github.com/twbs/bootstrap/tree/main/js/src) instead. Similarly, when contributing to Bootstrap's documentation, you should edit the diff --git a/.github/workflows/browserstack.yml b/.github/workflows/browserstack.yml index 9163f803c..00831721d 100644 --- a/.github/workflows/browserstack.yml +++ b/.github/workflows/browserstack.yml @@ -5,12 +5,14 @@ on: env: CI: true + FORCE_COLOR: 2 NODE: 14.x jobs: browserstack: runs-on: ubuntu-latest if: github.repository == 'twbs/bootstrap' && (!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')) + timeout-minutes: 30 steps: - name: Clone repository diff --git a/.github/workflows/bundlewatch.yml b/.github/workflows/bundlewatch.yml index 865732259..966dfbf72 100644 --- a/.github/workflows/bundlewatch.yml +++ b/.github/workflows/bundlewatch.yml @@ -8,6 +8,7 @@ on: env: CI: true + FORCE_COLOR: 2 NODE: 14.x jobs: diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 817c3fb7d..f9dccfce0 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -1,15 +1,16 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. name: "CodeQL" on: push: - branches-ignore: - - "dependabot/**" + branches: + - main + - v4-dev + - "!dependabot/**" pull_request: + # The branches below must be a subset of the branches above + branches: + - main + - v4-dev schedule: - cron: "0 2 * * 5" @@ -18,15 +19,6 @@ jobs: name: Analyze runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - # Override automatic language detection by changing the below list - # Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python'] - language: ["javascript"] - # Learn more... - # https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection - steps: - name: Checkout repository uses: actions/checkout@v2 @@ -44,27 +36,10 @@ jobs: - name: Initialize CodeQL uses: github/codeql-action/init@v1 with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main + languages: "javascript" - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild uses: github/codeql-action/autobuild@v1 - # ℹ️ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl - - # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release - - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v1 diff --git a/.github/workflows/css.yml b/.github/workflows/css.yml index 065f7a937..a75f018c5 100644 --- a/.github/workflows/css.yml +++ b/.github/workflows/css.yml @@ -8,6 +8,7 @@ on: env: CI: true + FORCE_COLOR: 2 NODE: 14.x jobs: diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index ac38d97ea..58b55fc7c 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -8,6 +8,7 @@ on: env: CI: true + FORCE_COLOR: 2 NODE: 14.x jobs: diff --git a/.github/workflows/js.yml b/.github/workflows/js.yml index d14588965..1ec0d6909 100644 --- a/.github/workflows/js.yml +++ b/.github/workflows/js.yml @@ -8,6 +8,7 @@ on: env: CI: true + FORCE_COLOR: 2 jobs: run: diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index b5035c1ef..e850a1f1b 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -8,6 +8,7 @@ on: env: CI: true + FORCE_COLOR: 2 NODE: 14.x jobs: diff --git a/.github/workflows/node-sass.yml b/.github/workflows/node-sass.yml index 6904f7eca..2db55f0ff 100644 --- a/.github/workflows/node-sass.yml +++ b/.github/workflows/node-sass.yml @@ -8,6 +8,7 @@ on: env: CI: true + FORCE_COLOR: 2 NODE: 14.x jobs: diff --git a/README.md b/README.md index 97b5c770d..8a470260a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@
@@ -9,7 +9,7 @@
Sleek, intuitive, and powerful front-end framework for faster and easier web development.
- Explore Bootstrap docs »
+ Explore Bootstrap docs »
Report bug
@@ -46,14 +46,14 @@ Our default branch is for development of our upcoming Bootstrap 5 release. Head
Several quick start options are available:
-- [Download the latest release](https://github.com/twbs/bootstrap/archive/v5.0.0-alpha3.zip)
+- [Download the latest release](https://github.com/twbs/bootstrap/archive/v5.0.0-beta1.zip)
- Clone the repo: `git clone https://github.com/twbs/bootstrap.git`
- Install with [npm](https://www.npmjs.com/): `npm install bootstrap@next`
- Install with [yarn](https://yarnpkg.com/): `yarn add bootstrap@next`
-- Install with [Composer](https://getcomposer.org/): `composer require twbs/bootstrap:5.0.0-alpha3`
+- Install with [Composer](https://getcomposer.org/): `composer require twbs/bootstrap:5.0.0-beta1`
- Install with [NuGet](https://www.nuget.org/): CSS: `Install-Package bootstrap` Sass: `Install-Package bootstrap.sass`
-Read the [Getting started page](https://v5.getbootstrap.com/docs/5.0/getting-started/introduction/) for information on the framework contents, templates and examples, and more.
+Read the [Getting started page](https://getbootstrap.com/docs/5.0/getting-started/introduction/) for information on the framework contents, templates and examples, and more.
## Status
@@ -83,37 +83,52 @@ Within the download you'll find the following directories and files, logically g
```text
bootstrap/
-└── dist/
- ├── css/
- │ ├── bootstrap-grid.css
- │ ├── bootstrap-grid.css.map
- │ ├── bootstrap-grid.min.css
- │ ├── bootstrap-grid.min.css.map
- │ ├── bootstrap-reboot.css
- │ ├── bootstrap-reboot.css.map
- │ ├── bootstrap-reboot.min.css
- │ ├── bootstrap-reboot.min.css.map
- │ ├── bootstrap-utilities.css
- │ ├── bootstrap-utilities.css.map
- │ ├── bootstrap-utilities.min.css
- │ ├── bootstrap-utilities.min.css.map
- │ ├── bootstrap.css
- │ ├── bootstrap.css.map
- │ ├── bootstrap.min.css
- │ └── bootstrap.min.css.map
- └── js/
- ├── bootstrap.bundle.js
- ├── bootstrap.bundle.js.map
- ├── bootstrap.bundle.min.js
- ├── bootstrap.bundle.min.js.map
- ├── bootstrap.esm.js
- ├── bootstrap.esm.js.map
- ├── bootstrap.esm.min.js
- ├── bootstrap.esm.min.js.map
- ├── bootstrap.js
- ├── bootstrap.js.map
- ├── bootstrap.min.js
- └── bootstrap.min.js.map
+├── css/
+│ ├── bootstrap-grid.css
+│ ├── bootstrap-grid.css.map
+│ ├── bootstrap-grid.min.css
+│ ├── bootstrap-grid.min.css.map
+│ ├── bootstrap-grid.rtl.css
+│ ├── bootstrap-grid.rtl.css.map
+│ ├── bootstrap-grid.rtl.min.css
+│ ├── bootstrap-grid.rtl.min.css.map
+│ ├── bootstrap-reboot.css
+│ ├── bootstrap-reboot.css.map
+│ ├── bootstrap-reboot.min.css
+│ ├── bootstrap-reboot.min.css.map
+│ ├── bootstrap-reboot.rtl.css
+│ ├── bootstrap-reboot.rtl.css.map
+│ ├── bootstrap-reboot.rtl.min.css
+│ ├── bootstrap-reboot.rtl.min.css.map
+│ ├── bootstrap-utilities.css
+│ ├── bootstrap-utilities.css.map
+│ ├── bootstrap-utilities.min.css
+│ ├── bootstrap-utilities.min.css.map
+│ ├── bootstrap-utilities.rtl.css
+│ ├── bootstrap-utilities.rtl.css.map
+│ ├── bootstrap-utilities.rtl.min.css
+│ ├── bootstrap-utilities.rtl.min.css.map
+│ ├── bootstrap.css
+│ ├── bootstrap.css.map
+│ ├── bootstrap.min.css
+│ ├── bootstrap.min.css.map
+│ ├── bootstrap.rtl.css
+│ ├── bootstrap.rtl.css.map
+│ ├── bootstrap.rtl.min.css
+│ └── bootstrap.rtl.min.css.map
+└── js/
+ ├── bootstrap.bundle.js
+ ├── bootstrap.bundle.js.map
+ ├── bootstrap.bundle.min.js
+ ├── bootstrap.bundle.min.js.map
+ ├── bootstrap.esm.js
+ ├── bootstrap.esm.js.map
+ ├── bootstrap.esm.min.js
+ ├── bootstrap.esm.min.js.map
+ ├── bootstrap.js
+ ├── bootstrap.js.map
+ ├── bootstrap.min.js
+ └── bootstrap.min.js.map
```
We provide compiled CSS and JS (`bootstrap.*`), as well as compiled and minified CSS and JS (`bootstrap.min.*`). [source maps](https://developers.google.com/web/tools/chrome-devtools/javascript/source-maps) (`bootstrap.*.map`) are available for use with certain browsers' developer tools. Bundled JS files (`bootstrap.bundle.js` and minified `bootstrap.bundle.min.js`) include [Popper](https://popper.js.org/).
@@ -126,9 +141,9 @@ Have a bug or a feature request? Please first read the [issue guidelines](https:
## Documentation
-Bootstrap's documentation, included in this repo in the root directory, is built with [Hugo](https://gohugo.io/) and publicly hosted on GitHub Pages at
`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n text-decoration-skip-ink: none; // 4\n}\n\n\n// Address\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\n\n// Lists\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\n// 1. Undo browser default\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n margin: 0 0 1rem;\n}\n\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n font-weight: $font-weight-bolder;\n}\n\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n position: relative;\n @include font-size($sub-sup-font-size);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n\n &:hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-code;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n\n kbd {\n padding: 0;\n @include font-size(1em);\n font-weight: $nested-kbd-font-weight;\n }\n}\n\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: $table-cell-padding-y;\n padding-bottom: $table-cell-padding-y;\n color: $table-caption-color;\n text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `