Theme

React Bootstrap 5 Theme

Theming system enables you to customize the appearance of all MDB components.

Appearance customization options enable you to create skins for your Bootstrap 5 project. Use predefined dark theme, light theme or create custom themes.

See an example of a dark-theme created using our theme system.


How to start

Creating a theme requires recompiling the scss styles, for this purpose we recommend using sass compiler

Step 1

Install sass

        
            
            npm i sass
          
        
    

Step 2

Copy scss folder from node_modules/mdb-react-ui-kit/dist

Step 3

Put copied files into the src folder.

Step 4

Create an index.scss file in the scss folder and import MDB Pro scss styles:

        
            
            @import './mdb.pro.scss';;
          
        
    

Step 5

In your root index.js file instead of importing CSS stylesheet:

        
            
            import 'mdb-react-ui-kit/dist/css/mdb.min.css';
          
        
    

Import index.scss file:

        
            
            import './scss/index.scss';
          
        
    

Create a new theme

Creating a new theme requires that you define primary and secondary colors for your application. We prepared functions and mixins that will help you to create a ready to use theme using these colors.

Go to scss folder you copied before, open index.scss file located in src/scss folder and replace the code there with the following code:

        
            
            @import './mdb.pro.scss';

            $my-theme-primary: #9c27b0; // theme primary color, change this value to customize theme
            $my-theme-secondary: #69f0ae; // theme secondary color, change this value to customize theme

            $my-theme: mdb-light-theme($my-theme-primary, $my-theme-secondary); // create the new theme using primary and
            // secondary colors

            // include theme styles
            @include mdb-theme($my-theme);
          
        
    

Light theme

It's possible to create a light theme using mdb-light-theme function. You just need to define primary and secondary colors, all other parameters will be adjusted automatically.

        
            
            @import './mdb.pro.scss';

            $my-theme-primary: #9c27b0; // theme primary color, change this value to customize theme
            $my-theme-secondary: #69f0ae; // theme secondary color, change this value to customize theme

            $my-light-theme: mdb-light-theme($my-theme-primary, $my-theme-secondary); // create the new light theme using
            // primary and secondary colors

            // include theme styles
            @include mdb-theme($my-light-theme);
          
        
    

Dark theme

It's possible to create a dark theme using mdb-dark-theme function. You just need to define primary and secondary colors, all other parameters will be adjusted automatically.

        
            
            @import './mdb.pro.scss';

            $my-theme-primary: #9c27b0; // theme primary color, change this value to customize theme
            $my-theme-secondary: #69f0ae; // theme secondary color, change this value to customize theme

            $my-dark-theme: mdb-dark-theme($my-theme-primary, $my-theme-secondary); // create the new dark theme using
            // primary and secondary colors

            // include theme styles
            @include mdb-theme($my-dark-theme);
          
        
    

Ready-to-use dark skin

For your convenience, we added a ready-to-use dark skin to our UI KIT pro essential and pro advanced. Installation is very easy, because you just need to replace the current mdb.min.css stylesheet path with mdb.dark.min.css. The files are located in the mdb-react-ui-kit/dist/css.

        
            
            import 'mdb-react-ui-kit/dist/css/mdb.dark.min.css';
          
        
    

Skin toggler

It's possible to create a skin toggler. Create a dark theme inside your main scss file, but this time wrap @include rule with any custom class. Then add the button switch to toggle this class for the body element.

        
            
            @import '~mdb-react-ui-kit/src/scss/mdb.pro.scss';

            // DARK SKIN
            $my-theme-primary: #1266f1;
            $my-theme-secondary: #b23cfd;
            $my-dark-theme: mdb-dark-theme($my-theme-primary, $my-theme-secondary);

            .dark {
              @include mdb-theme($my-dark-theme);
            }
          
        
    
        
            
            import React from 'react';
            import { MDBBtn } from 'mdb-react-ui-kit';

            export default function App() {
              const handleClick = () =>{
                document.body.classList.toggle('dark');
              }

              return (
                <MDBBtn onClick={handleClick}>Toggle skin</MDBBtn>
              )
            }
          
        
    
Instead of making changes to the scss file, you can also use compiled css files and switch between <link rel="stylesheet" href="css/mdb.min.css" /> and <link rel="stylesheet" href="css/mdb.dark.min.css" /> after clicking the toggle button.