Simple Calculator with Dark Mode
Tags: html, css, javascript
Published: 2022-01-05 11:00:03

Hi Guys Wish you Happy  Year 🎊. <br>
Here's a simple calculator built using HTML, CSS and obviously, JavaScript.

This calculator also has dark mode which looks really good. And here's how you can do that:
<h1>HTML</h1>

```
<!DOCTYPE html>
<html lang="en">
<head>
   
    <title>Simple JS Calculator</title>
    <link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@600&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="light.css" id="theme">
    <script src="script.js"></script>
</head>
<body>
    <div class="container">
        <h1>Calculator</h1>
        <div class="row-1">
            <input type="text" id="result" placeholder="Result" readonly>
            <button onclick="clearScreen()" id="clear" >C</button>
        </div>
        <div class="btnrow-1">
            <button onclick="updScreen(1)">1</button>
            <button onclick="updScreen(2)">2</button>
            <button onclick="updScreen(3)">3</button>
            <button onclick="updScreen('*')">x</button>
        </div>
        <div class="btnrow-1">
            <button onclick="updScreen(4)" >4</button>
            <button onclick="updScreen(5)" >5</button>
            <button onclick="updScreen(6)" >6</button>
            <button onclick="updScreen('+')">+</button>
        </div>
        <div class="btnrow-1">
            <button onclick="updScreen(7)">7</button>
            <button onclick="updScreen(8)">8</button>
            <button onclick="updScreen(9)">9</button>
            <button onclick="updScreen('-')">-</button>
        </div>
        <div class="btnrow-2">
            <button onclick="updScreen('/')" >/</button>
            <button onclick="updScreen(0)" >0</button>
            <button onclick="updScreen('.')">.</button>
            <button onclick="result.value = eval(result.value)">=</button>
        </div>
        <div class="btnrow-1">
            <button onclick="themeSwitcher()" id="dark-mode" >Turn on Dark Mode</button>
        </div>
    </div>
</body>
</html>
```

![A pie chart showing 40% responded "Yes", 50% responded "No" and 10% responded "Not sure"](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n4uyq232y9u0blkfpou1.jpg)
### CSS
Now made two css file 
1) Light Mode
2) Dark Mode

## Here's the CSS for Light Mode

```
/* CSS Reset */
*{
    margin: 0;
    padding: 0;
}
body{
    background-color: lightSteelBlue;
    font-family: 'Open Sans', sans-serif;
    font-weight: 500;
}
.row-1 {
    margin-top: 15px;
}
h1{
    color: black;
    font-family: Lunacy, serif;
}

.container{
    display: flex;
    width: 100%;
    height: 90vh;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
button{
    background-color: white;
    width: 65px;
    height: 65px;
    margin: 2px 0.3px;
    border: none;
    outline: none;
    border-radius: 3px;
    font-size: 15px;
    font-family: 'Open Sans', sans-serif;
}

button:hover{
    cursor: pointer;
    background-color: rgb(37, 35, 59);
    color: #fff;
}
#dark-mode {
    width: 274px;
    height: 40px;
}
#clear{
    background-color: rgb(255, 20, 20);
    color: white;
}
#clear:hover{
    background-color: rgb(37, 35, 59);
}
input[type="text"]{
    width: 180px;
    height: 65px;
    padding-left: 25px;
    border: none;
    outline: none;
    border-radius: 3px;
    font-size: 15px;
    font-family: 'Open Sans', sans-serif;
}
p {
 text-align: center;
}
```

![A pie chart showing 40% responded "Yes", 50% responded "No" and 10% responded "Not sure"](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/duxihxg444n4xbq6fucp.jpg)
## Here's the CSS for Dark Mode

```
/* CSS Reset */
*{
    margin: 0;
    padding: 0;
}
body{
    background-color: #1d1e1f;
    font-family: 'Open Sans', sans-serif;
    font-weight: 500;
}
.row-1 {
    margin-top: 15px;
}
h1{
    color: orange;
    font-family: Lunacy, serif;
    color: #FFBB89;
    font-size: ;   
}

.container{
    display: flex;
    width: 100%;
    height: 90vh;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
button{
    background-color: #444444;
    color: white;
    width: 65px;
    height: 65px;
    margin: 2px 0.3px;
    border: none;
    outline: none;
    border-radius: 3px;
    font-size: 15px;
    font-family: 'Open Sans', sans-serif;
}
input{
    color: white;
}
button:hover{
    cursor: pointer;
    background-color: rgb(160, 160, 160);
    color: #fff;
}
#dark-mode {
    width: 274px;
    height: 40px;
}
#clear{
    background-color: rgb(255, 40, 40);
    color: white;
}
#clear:hover{
    background-color: rgb(37, 36, 54);
}
input[type="text"]{
    background-color: #444444;
    color: white;
    width: 180px;
    height: 65px;
    padding-left: 25px;
    border: none;
    outline: none;
    border-radius: 3px;
    font-size: 15px;
    font-family: 'Open Sans', sans-serif;
}
p {
 text-align: center;
 color: white;
}
```


![
A pie chart showing 40% responded "Yes", 50% responded "No" and 10% responded "Not sure"](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xolori1friqeb10idgju.jpg)
And finally, here's the <strong>JavaScript</strong>:

```
// Clear screen with C button.

function clearScreen() {

 document.getElementById("result")
  .value = "";

}



// Display updates in Result Input

function updScreen(val) {

 var x = document.getElementById(
  "result").value;

 document.getElementById("result")
  .value = x + val;

}



// Switch between Dark and Light Modes

function themeSwitcher() {

 var dark = document.getElementById(
  "dark-mode");

 var th = document.getElementById(
  "theme");

 if (th.getAttribute('href') ==
  'light.css') {

  th.href = 'dark.css';

  dark.innerHTML =
   'Turn on Light Mode';

 } else {

  th.href = 'light.css';

  dark.innerHTML =
   'Turn on Dark mode';

 }

}
```
That's it. Now we have a simple calculator with dark mode. Thanks for reading. Hope you like it! If you have any problems, you can definitely comment and ask me. I will definitely help you.
 If you like my post, please like the article 
Follow me 👇
<a href= "https://twitter.com/HarshitKhaladk1" target ="blank"> <u>**Twitter**</u> </a> <br>
   <a href= "https://www.quora.com/profile/Harshit-Khaladkar" target="blank"> <u>**Quora**</u></a> <br>