From 5327ffc05e12ed9cdc74dc858271e145f82fc0e3 Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Wed, 13 Jan 2021 21:35:09 -0800 Subject: [PATCH 1/3] Clarify Sass import and customize docs for how to modify variable defaulst --- site/content/docs/5.0/customize/sass.md | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/site/content/docs/5.0/customize/sass.md b/site/content/docs/5.0/customize/sass.md index d21dff7aa..65f29d22e 100644 --- a/site/content/docs/5.0/customize/sass.md +++ b/site/content/docs/5.0/customize/sass.md @@ -42,6 +42,8 @@ In your `custom.scss`, you'll import Bootstrap's source Sass files. You have two // Option A: Include all of Bootstrap @import "../node_modules/bootstrap/scss/bootstrap"; + +// Add custom code after this ``` ```scss @@ -53,6 +55,8 @@ In your `custom.scss`, you'll import Bootstrap's source Sass files. You have two @import "../node_modules/bootstrap/scss/variables"; @import "../node_modules/bootstrap/scss/mixins"; +// Include custom variable default overrides here + // Optional @import "../node_modules/bootstrap/scss/root"; @import "../node_modules/bootstrap/scss/reboot"; @@ -70,17 +74,27 @@ Every Sass variable in Bootstrap includes the `!default` flag allowing you to ov You will find the complete list of Bootstrap's variables in `scss/_variables.scss`. Some variables are set to `null`, these variables don't output the property unless they are overridden in your configuration. -Variable overrides within the same Sass file can come before or after the default variables. However, when overriding across Sass files, your overrides must come before you import Bootstrap's Sass files. +Variable overrides must come after our functions, variables, and mixins are imported, but before the rest of the imports. Here's an example that changes the `background-color` and `color` for the `` when importing and compiling Bootstrap via npm: ```scss +// Required +@import "../node_modules/bootstrap/scss/functions"; +@import "../node_modules/bootstrap/scss/variables"; +@import "../node_modules/bootstrap/scss/mixins"; + // Your variable overrides $body-bg: #000; $body-color: #111; // Bootstrap and its default variables -@import "../node_modules/bootstrap/scss/bootstrap"; + +// Optional +@import "../node_modules/bootstrap/scss/root"; +@import "../node_modules/bootstrap/scss/reboot"; +@import "../node_modules/bootstrap/scss/type"; +// etc ``` Repeat as necessary for any variable in Bootstrap, including the global options below. @@ -139,7 +153,7 @@ $theme-colors: map-remove($theme-colors, "info", "light", "dark"); @import "../node_modules/bootstrap/scss/root"; @import "../node_modules/bootstrap/scss/reboot"; @import "../node_modules/bootstrap/scss/type"; -... +// etc ``` ## Required keys From 3631bc02b0255db4c39383b7a72eb6dec5aade06 Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Wed, 13 Jan 2021 21:35:28 -0800 Subject: [PATCH 2/3] Add an npm starter project callout to a few pages --- site/content/docs/5.0/customize/sass.md | 4 ++++ site/content/docs/5.0/getting-started/build-tools.md | 4 ++++ site/content/docs/5.0/getting-started/download.md | 4 ++++ site/layouts/partials/callout-info-npm-starter.md | 1 + 4 files changed, 13 insertions(+) create mode 100644 site/layouts/partials/callout-info-npm-starter.md diff --git a/site/content/docs/5.0/customize/sass.md b/site/content/docs/5.0/customize/sass.md index 65f29d22e..eda2d83fb 100644 --- a/site/content/docs/5.0/customize/sass.md +++ b/site/content/docs/5.0/customize/sass.md @@ -99,6 +99,10 @@ $body-color: #111; Repeat as necessary for any variable in Bootstrap, including the global options below. +{{< callout info >}} +{{< partial "callout-info-npm-starter.md" >}} +{{< /callout >}} + ## Maps and loops Bootstrap includes a handful of Sass maps, key value pairs that make it easier to generate families of related CSS. We use Sass maps for our colors, grid breakpoints, and more. Just like Sass variables, all Sass maps include the `!default` flag and can be overridden and extended. diff --git a/site/content/docs/5.0/getting-started/build-tools.md b/site/content/docs/5.0/getting-started/build-tools.md index fcee8cc26..d0286375e 100644 --- a/site/content/docs/5.0/getting-started/build-tools.md +++ b/site/content/docs/5.0/getting-started/build-tools.md @@ -65,6 +65,10 @@ Our [package.json]({{< param repo >}}/blob/v{{< param current_version >}}/packag +{{< callout info >}} +{{< partial "callout-info-npm-starter.md" >}} +{{< /callout >}} + ## Sass Bootstrap uses [Dart Sass](https://sass-lang.com/dart-sass) for compiling our Sass source files into CSS files (included in our build process), and we recommend you do the same if you're compiling Sass using your own asset pipeline. We previously used Node Sass for Bootstrap v4, but LibSass and packages built on top of it, including Node Sass, are now [deprecated](https://sass-lang.com/blog/libsass-is-deprecated). diff --git a/site/content/docs/5.0/getting-started/download.md b/site/content/docs/5.0/getting-started/download.md index af2d5a5de..48578572b 100644 --- a/site/content/docs/5.0/getting-started/download.md +++ b/site/content/docs/5.0/getting-started/download.md @@ -70,6 +70,10 @@ Bootstrap's `package.json` contains some additional metadata under the following - `sass` - path to Bootstrap's main [Sass](https://sass-lang.com/) source file - `style` - path to Bootstrap's non-minified CSS that's been precompiled using the default settings (no customization) +{{< callout info >}} +{{< partial "callout-info-npm-starter.md" >}} +{{< /callout >}} + ### yarn Install Bootstrap in your Node.js powered apps with [the yarn package](https://yarnpkg.com/en/package/bootstrap): diff --git a/site/layouts/partials/callout-info-npm-starter.md b/site/layouts/partials/callout-info-npm-starter.md new file mode 100644 index 000000000..15525cba5 --- /dev/null +++ b/site/layouts/partials/callout-info-npm-starter.md @@ -0,0 +1 @@ +**Get started with Bootstrap via npm with our starter project!** Head to the [twbs/bootstrap-npm-starter](https://github.com/twbs/bootstrap-npm-starter) template repository to see how to build and customize Bootstrap in your own npm project. Includes Sass compiler, Autoprefixer, Stylelint, Purge CSS, and Bootstrap Icons. From e87258d57d6ea6b0e2a8ed8aad026f76dd41a78e Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Thu, 14 Jan 2021 12:29:24 +0200 Subject: [PATCH 3/3] Update callout-info-npm-starter.md --- site/layouts/partials/callout-info-npm-starter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/layouts/partials/callout-info-npm-starter.md b/site/layouts/partials/callout-info-npm-starter.md index 15525cba5..bbd3897b5 100644 --- a/site/layouts/partials/callout-info-npm-starter.md +++ b/site/layouts/partials/callout-info-npm-starter.md @@ -1 +1 @@ -**Get started with Bootstrap via npm with our starter project!** Head to the [twbs/bootstrap-npm-starter](https://github.com/twbs/bootstrap-npm-starter) template repository to see how to build and customize Bootstrap in your own npm project. Includes Sass compiler, Autoprefixer, Stylelint, Purge CSS, and Bootstrap Icons. +**Get started with Bootstrap via npm with our starter project!** Head to the [twbs/bootstrap-npm-starter](https://github.com/twbs/bootstrap-npm-starter) template repository to see how to build and customize Bootstrap in your own npm project. Includes Sass compiler, Autoprefixer, Stylelint, PurgeCSS, and Bootstrap Icons.