diff --git a/.bundlewatch.config.json b/.bundlewatch.config.json
index b89e0207b..6e3c15a96 100644
--- a/.bundlewatch.config.json
+++ b/.bundlewatch.config.json
@@ -30,7 +30,7 @@
},
{
"path": "./dist/css/bootstrap.min.css",
- "maxSize": "21.5 kB"
+ "maxSize": "21.6 kB"
},
{
"path": "./dist/js/bootstrap.bundle.js",
diff --git a/.eslintignore b/.eslintignore
index 6d874bc36..ae6baae7e 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -4,4 +4,3 @@
/_gh_pages/
/js/coverage/
/site/static/sw.js
-/package.js
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index 34da5de09..0913b5b5b 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
https://bugreport.apple.com/ | 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 | EdgeHTML | https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/ | |
+| 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
@@ -123,10 +123,12 @@ Good pull requests—patches, improvements, new features—are a fantastic
help. They should remain focused in scope and avoid containing unrelated
commits.
-**Please ask first** before embarking on any significant pull request (e.g.
+**Please ask first** before embarking on any **significant** pull request (e.g.
implementing features, refactoring code, porting to a different language),
otherwise you risk spending a lot of time working on something that the
-project's developers might not want to merge into the project.
+project's developers might not want to merge into the project. For trivial
+things, or things that don't require a lot of your time, you can go ahead and
+make a PR.
Please adhere to the [coding guidelines](#code-guidelines) used throughout the
project (indentation, accurate comments, etc.) and any other requirements
diff --git a/.github/workflows/browserstack.yml b/.github/workflows/browserstack.yml
index f709b98da..9163f803c 100644
--- a/.github/workflows/browserstack.yml
+++ b/.github/workflows/browserstack.yml
@@ -1,19 +1,22 @@
name: BrowserStack
-on: [push]
+
+on:
+ push:
+
env:
CI: true
- NODE: 12.x
+ NODE: 14.x
jobs:
browserstack:
runs-on: ubuntu-latest
- if: github.repository == 'twbs/bootstrap'
+ if: github.repository == 'twbs/bootstrap' && (!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]'))
steps:
- name: Clone repository
uses: actions/checkout@v2
- - name: Set Node.js version
+ - name: Set up Node.js
uses: actions/setup-node@v1
with:
node-version: "${{ env.NODE }}"
diff --git a/.github/workflows/bundlewatch.yml b/.github/workflows/bundlewatch.yml
index f09cc9667..865732259 100644
--- a/.github/workflows/bundlewatch.yml
+++ b/.github/workflows/bundlewatch.yml
@@ -1,8 +1,14 @@
name: Bundlewatch
-on: [push, pull_request]
+
+on:
+ push:
+ branches-ignore:
+ - "dependabot/**"
+ pull_request:
+
env:
CI: true
- NODE: 12.x
+ NODE: 14.x
jobs:
bundlewatch:
@@ -12,7 +18,7 @@ jobs:
- name: Clone repository
uses: actions/checkout@v2
- - name: Set Node.js version
+ - name: Set up Node.js
uses: actions/setup-node@v1
with:
node-version: "${{ env.NODE }}"
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 777d812d6..817c3fb7d 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -1,25 +1,70 @@
-name: "Code Scanning - Action"
+# 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/**"
+ pull_request:
schedule:
- - cron: "0 0 * * 0"
+ - cron: "0 2 * * 5"
jobs:
- CodeQL-Build:
+ analyze:
+ 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
+ with:
+ # We must fetch at least the immediate parents so that if this is
+ # a pull request then we can checkout the head.
+ fetch-depth: 2
+ # If this run was triggered by a pull request event, then checkout
+ # the head of the pull request instead of the merge commit.
+ - run: git checkout HEAD^2
+ if: ${{ github.event_name == 'pull_request' }}
+
+ # Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
- languages: javascript
+ 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
+ # 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 390bffc96..065f7a937 100644
--- a/.github/workflows/css.yml
+++ b/.github/workflows/css.yml
@@ -1,8 +1,14 @@
name: CSS
-on: [push, pull_request]
+
+on:
+ push:
+ branches-ignore:
+ - "dependabot/**"
+ pull_request:
+
env:
CI: true
- NODE: 12.x
+ NODE: 14.x
jobs:
css:
@@ -12,7 +18,7 @@ jobs:
- name: Clone repository
uses: actions/checkout@v2
- - name: Set Node.js version
+ - name: Set up Node.js
uses: actions/setup-node@v1
with:
node-version: "${{ env.NODE }}"
diff --git a/.github/workflows/dart-sass.yml b/.github/workflows/dart-sass.yml
deleted file mode 100644
index 8482a152e..000000000
--- a/.github/workflows/dart-sass.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-name: CSS (Dart Sass)
-on: [push, pull_request]
-env:
- CI: true
- NODE: 12.x
-
-jobs:
- css:
- runs-on: ubuntu-latest
-
- steps:
- - name: Clone repository
- uses: actions/checkout@v2
-
- - name: Set Node.js version
- uses: actions/setup-node@v1
- with:
- node-version: "${{ env.NODE }}"
-
- - name: Build CSS with Dart Sass
- run: |
- npx --package sass@latest sass --version
- npx --package sass@latest sass --style expanded --source-map --embed-sources --no-error-css scss/:dist-sass/css/
- ls -Al dist-sass/css
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index 652e27a7d..ac38d97ea 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -1,8 +1,14 @@
name: Docs
-on: [push, pull_request]
+
+on:
+ push:
+ branches-ignore:
+ - "dependabot/**"
+ pull_request:
+
env:
CI: true
- NODE: 12.x
+ NODE: 14.x
jobs:
docs:
@@ -12,7 +18,7 @@ jobs:
- name: Clone repository
uses: actions/checkout@v2
- - name: Set Node.js version
+ - name: Set up Node.js
uses: actions/setup-node@v1
with:
node-version: "${{ env.NODE }}"
diff --git a/.github/workflows/js.yml b/.github/workflows/js.yml
index 543172ccb..d14588965 100644
--- a/.github/workflows/js.yml
+++ b/.github/workflows/js.yml
@@ -1,5 +1,11 @@
name: JS Tests
-on: [push, pull_request]
+
+on:
+ push:
+ branches-ignore:
+ - "dependabot/**"
+ pull_request:
+
env:
CI: true
@@ -11,13 +17,13 @@ jobs:
strategy:
fail-fast: false
matrix:
- node: [10, 12]
+ node: [10, 12, 14]
steps:
- name: Clone repository
uses: actions/checkout@v2
- - name: Set Node.js version
+ - name: Set up Node.js
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node }}
@@ -42,7 +48,7 @@ jobs:
- name: Run Coveralls
uses: coverallsapp/github-action@master
- if: matrix.node == 12
+ if: matrix.node == 14
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
path-to-lcov: "./js/coverage/lcov.info"
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index f3d00d69f..b5035c1ef 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -1,8 +1,14 @@
name: Lint
-on: [push, pull_request]
+
+on:
+ push:
+ branches-ignore:
+ - "dependabot/**"
+ pull_request:
+
env:
CI: true
- NODE: 12.x
+ NODE: 14.x
jobs:
lint:
@@ -12,7 +18,7 @@ jobs:
- name: Clone repository
uses: actions/checkout@v2
- - name: Set Node.js version
+ - name: Set up Node.js
uses: actions/setup-node@v1
with:
node-version: "${{ env.NODE }}"
diff --git a/.github/workflows/node-sass.yml b/.github/workflows/node-sass.yml
new file mode 100644
index 000000000..6904f7eca
--- /dev/null
+++ b/.github/workflows/node-sass.yml
@@ -0,0 +1,30 @@
+name: CSS (node-sass)
+
+on:
+ push:
+ branches-ignore:
+ - "dependabot/**"
+ pull_request:
+
+env:
+ CI: true
+ NODE: 14.x
+
+jobs:
+ css:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Clone repository
+ uses: actions/checkout@v2
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v1
+ with:
+ node-version: "${{ env.NODE }}"
+
+ - name: Build CSS with node-sass
+ run: |
+ npx --package node-sass@latest node-sass --version
+ npx --package node-sass@latest node-sass --output-style expanded --source-map true --source-map-contents true --precision 6 scss/ -o dist-sass/css/
+ ls -Al dist-sass/css
diff --git a/.stylelintrc b/.stylelintrc
index 15e5765ea..1c9ee1811 100644
--- a/.stylelintrc
+++ b/.stylelintrc
@@ -4,7 +4,9 @@
],
"rules": {
"function-disallowed-list": [
- "calc"
+ "calc",
+ "lighten",
+ "darken"
],
"property-disallowed-list": [
"border-radius",
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index 963db62fe..5c6a4e727 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -40,7 +40,4 @@ Project maintainers who do not follow or enforce the Code of Conduct in good fai
## Attribution
-This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [https://www.contributor-covenant.org/version/1/4/code-of-conduct.html][version]
-
-[homepage]: https://www.contributor-covenant.org/
-[version]: https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
+This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 1.4, available 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// 4. Disable auto-hiding scrollbar in legacy Edge to avoid overlap,\n// making it impossible to interact with the content\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 -ms-overflow-style: scrollbar; // 4\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 `