In this shot, we will show you how to override the default Bootstrap theme with our own custom theme variables.
Bootstrap theme files
First, we need to understand how Bootstrap 4 theme files work. So, after installing Bootstrap 4 via NPM
npm i bootstrap@4
navigate to the node_modules/bootstrap/scss/_variables.scss file.
We will not make our modifications inside this file we will just take a quick look to understand how Bootstrap works and then we will make our modification in a proper way.
In this file, we will find every variable used in Bootstrap.
Scrolling down we will see some pre-defined color variables:
_variables.scss
$blue: #007bff !default; $indigo: #6610f2 !default; $purple: #6f42c1 !default; $pink: #e83e8c !default; $red: #dc3545 !default; $orange: #fd7e14 !default; $yellow: #ffc107 !default; $green: #28a745 !default; $teal: #20c997 !default; $cyan: #17a2b8 !default;
And then it uses the following variable with its theme variables:
$primary: $blue !default; $secondary: $gray-600 !default; $success: $green !default; $info: $cyan !default; $warning: $yellow !default; $danger: $red !default; $light: $gray-100 !default; $dark: $gray-800 !default;
After that, it creates an SCSS Map:
$theme-colors: () !default; $theme-colors: map-merge( ( "primary": $primary, "secondary": $secondary, "success": $success, "info": $info, "warning": $warning, "danger": $danger, "light": $light, "dark": $dark, ), $theme-colors );
Overriding Bootstrap 4 theme
In your root .sass file
// Required @import "node_modules/bootstrap/scss/functions"; @import "node_modules/bootstrap/scss/variables"; // Adding/Overriding Colors $theme-colors: map-merge( $theme-colors, ( "secondary": #ddc22b, "tertiary": #e059c3, "quaternary": #25a1a1, ) ); // Overriding/Adding Spacers $spacers: map-merge( $spacers, ( 10: $spacer * 10, ) ); $sizes: map-merge( $sizes, ( 10: 10%, 90: 90%, ) ); // Bootstrap and its default variables @import "node_modules/bootstrap/scss/bootstrap";
Top comments (0)