Theme Color change in React JS

I recently had a project with a requirement to support theming on the website. Theme Color change in React JS

We can change the background color of the body tag using react. It is a very easy process in which we can change the color of our project. I am using bootstrap to design the layout, You can use material UI or tailwind according to your use.

This image has an empty alt attribute; its file name is image-3-1024x576.png
This image has an empty alt attribute; its file name is image-2-1024x576.png

Packages & Project Installation

Create React Project using command
npx creact-react-app theme_color

I am using the CDN link of Bootstrap but you should always install bootstrap in your project.

CDN link for the Bootstrap

<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">

<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

How to Install Bootstrap in React App

npm install bootstrap --save  

Now Code part is here

import 'bootstrap/dist/css/bootstrap.min.css';
import {useState} from 'react'

function ProfileCards()
{

    const [darkTheme,setDarkTheme] = useState(false)

    return (

        <div className={darkTheme == false ? 'light-theme'  : 'dark-theme'  }>
            <nav class="navbar navbar-default" style={{backgroundColor:"black"}}>
            <div class="container-fluid">
                <div class="navbar-header">
                 <a class="navbar-brand text-white" href="#">Theme Change</a>
                </div>
                <ul class="nav navbar-nav text-white">
                <button className="btn btn-success mt-6" onClick={() => setDarkTheme(prevTheme => !prevTheme)}>
                  Change Theme
                </button>
                <li></li>
                </ul>
            </div>
            </nav>
           <div className="row p-5">
             <div className="col-sm-4 mt-5 p-5">
              <div class="card shadow-lg p-3 mb-5 bg-white rounded" style={{width: "18rem",backgroundColor:"{color}"}}>
                <div class="card-body">
                    <h5 class="card-title">Card title</h5>
                    <h6 class="card-subtitle mb-2 text-muted">Card subtitle</h6>
                    <p class="card-text">Some quick example text to build on the card title.</p>
                    <a href="#" class="card-link">Card link</a>
                    <a href="#" class="card-link">Another link</a>
                </div>
                </div>
             </div>      
             <div className="col-sm-4 mt-5  p-5">
              <div class="card shadow-lg p-3 mb-5 bg-white rounded" style={{width: "18rem",backgroundColor:"{color}"}}>
                <div class="card-body">
                    <h5 class="card-title">Card title</h5>
                    <h6 class="card-subtitle mb-2 text-muted">Card subtitle</h6>
                    <p class="card-text">Some quick example text to build on the card title.</p>
                    <a href="#" class="card-link">Card link</a>
                    <a href="#" class="card-link">Another link</a>
                </div>
                </div>
             </div>      
             <div className="col-sm-4 mt-5  p-5">
              <div class="card shadow-lg p-3 mb-5 bg-white rounded" style={{width: "18rem",backgroundColor:"{color}"}}>
                <div class="card-body">
                    <h5 class="card-title">Card title</h5>
                    <h6 class="card-subtitle mb-2 text-muted">Card subtitle</h6>
                    <p class="card-text">Some quick example text to build on the card title.</p>
                    <a href="#" class="card-link">Card link</a>
                    <a href="#" class="card-link">Another link</a>
                </div>
                </div>
             </div>      
           </div>    
        </div>
    )
}

export default ProfileCards;

Now run the project using the command npm start and by default, this app will run on port no 3000

http://localhost:3002/

See our More Tutorials on React

Records display in Material UI Table

File Upload in Nodejs

Display Records in Model Box in React

Responsive Navbar in Material UI React

Leave a Reply

Your email address will not be published. Required fields are marked *