Close Menu
Arunangshu Das Blog
  • Tools and Extensions
    • Automation Tools
    • Developer Tools
    • Website Tools
    • SEO Tools
  • Software Development
    • Frontend Development
    • Backend Development
    • DevOps
    • Adaptive Software Development
  • Cloud Computing
    • Cloud Cost & FinOps
    • AI & Cloud Innovation
    • Serverless & Edge
    • Cloud Security & Zero Trust
  • Industry Insights
    • Trends and News
    • Case Studies
    • Future Technology
  • Tech for Business
    • Business Automation
    • Revenue Growth
    • SaaS Solutions
    • Product Strategy
    • Cybersecurity Essentials
  • AI
    • Machine Learning
    • Deep Learning
    • NLP
    • LLM
  • Expert Interviews
    • Software Developer Interview Questions
    • Devops Interview Questions
    • AI Interview Questions

Subscribe to Updates

Subscribe to our newsletter for updates, insights, tips, and exclusive content!

What's Hot

Understanding the Impact of Language Models on Technology

February 17, 2025

Load Testing with Artillery: Prepare Your Node.js Application for Peak Traffic

December 23, 2024

7 Essential Tips for Fine-Tuning AI Models

February 9, 2025
X (Twitter) Instagram LinkedIn
Arunangshu Das Blog Wednesday, May 14
  • Article
  • Contact Me
  • Newsletter
Facebook X (Twitter) Instagram LinkedIn RSS
Subscribe
  • Tools and Extensions
    • Automation Tools
    • Developer Tools
    • Website Tools
    • SEO Tools
  • Software Development
    • Frontend Development
    • Backend Development
    • DevOps
    • Adaptive Software Development
  • Cloud Computing
    • Cloud Cost & FinOps
    • AI & Cloud Innovation
    • Serverless & Edge
    • Cloud Security & Zero Trust
  • Industry Insights
    • Trends and News
    • Case Studies
    • Future Technology
  • Tech for Business
    • Business Automation
    • Revenue Growth
    • SaaS Solutions
    • Product Strategy
    • Cybersecurity Essentials
  • AI
    • Machine Learning
    • Deep Learning
    • NLP
    • LLM
  • Expert Interviews
    • Software Developer Interview Questions
    • Devops Interview Questions
    • AI Interview Questions
Arunangshu Das Blog
Home»Software Development»Frontend Development»Implementing Dark Mode in Your Website
Frontend Development

Implementing Dark Mode in Your Website

Arunangshu DasBy Arunangshu DasJuly 23, 2024Updated:February 26, 2025No Comments3 Mins Read

In the world of web development, enhancing user experience is paramount. One significant trend that has gained traction is the implementation of dark mode. Dark mode not only reduces eye strain in low-light environments but also conserves battery life on OLED and AMOLED screens. T

1. Understanding Dark Mode

Dark mode is a display setting where the background is dark and the text is light. This inverse color scheme helps in reducing the blue light emitted from screens, thus minimizing eye strain.

2. Basic Implementation of Dark Mode

Step 1: Setting Up Your HTML and CSS

To start, we need a basic HTML structure and some CSS to toggle between light and dark modes.

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dark Mode Example</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="container">
<h1>Welcome to Dark Mode Example</h1>
<button id="theme-toggle">Toggle Dark Mode</button>
</div>
<script src="script.js"></script>
</body>
</html>

CSS:

:root {
  --background-color: #ffffff;
  --text-color: #000000;
}

body {
  background-color: var(--background-color);
  color: var(--text-color);
  transition: background-color 0.3s, color 0.3s;
}

body.dark-mode {
  --background-color: #121212;
  --text-color: #ffffff;
}

.container {
  text-align: center;
  margin-top: 20%;
}

button {
  padding: 10px 20px;
  cursor: pointer;
}

Step 2: Adding JavaScript for Theme Toggle

To toggle between light and dark modes, we can use JavaScript to add or remove a class on the <body> element.

JavaScript:

const toggleButton = document.getElementById('theme-toggle');
const body = document.body;

toggleButton.addEventListener('click', () => {
  body.classList.toggle('dark-mode');
});

3. Syncing with System-Wide Dark Mode

Modern operating systems allow users to set a system-wide preference for dark or light mode. We can use CSS media queries to detect this preference and apply it automatically.

Step 1: Using CSS Media Queries

CSS:

@media (prefers-color-scheme: dark) {
  :root {
    --background-color: #121212;
    --text-color: #ffffff;
  }
}

@media (prefers-color-scheme: light) {
  :root {
    --background-color: #ffffff;
    --text-color: #000000;
  }
}

Step 2: Enhancing JavaScript to Respect System Preferences

To ensure our JavaScript respects the system preference on page load, we can modify our script as follows:

JavaScript:

const toggleButton = document.getElementById('theme-toggle');
const body = document.body;

// Check for system preference
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
  body.classList.add('dark-mode');
}

toggleButton.addEventListener('click', () => {
  body.classList.toggle('dark-mode');
});

4. Persisting User Preference

To provide a consistent experience, we should save the user’s theme preference in local storage so that it persists across sessions.

JavaScript:

const toggleButton = document.getElementById('theme-toggle');
const body = document.body;

// Check for saved user preference or system preference
const savedTheme = localStorage.getItem('theme');
const systemPrefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;

if (savedTheme === 'dark' || (!savedTheme && systemPrefersDark)) {
  body.classList.add('dark-mode');
}

toggleButton.addEventListener('click', () => {
  body.classList.toggle('dark-mode');
  if (body.classList.contains('dark-mode')) {
    localStorage.setItem('theme', 'dark');
  } else {
    localStorage.setItem('theme', 'light');
  }
});

Conclusion

Implementing dark mode on your website enhances user experience by providing a comfortable viewing option and conserving battery life. This feature not only makes your website more user-friendly but also shows your attention to detail and commitment to modern web standards.

CSS Dark Mode Design

Related Posts

10 Tips for Designing Dark Mode Interfaces

February 17, 2025

5 Benefits of Using Dark Mode in Web Apps

February 17, 2025

Top 8 Frontend Performance Optimization Strategies

February 17, 2025
Leave A Reply Cancel Reply

Top Posts

How does containerization work in DevOps?

December 26, 2024

Securing Node.js WebSockets: Prevention of DDoS and Bruteforce Attacks

December 23, 2024

Can Artificial Intelligence Replace Human Intelligence?

March 27, 2024

Top 10 Technologies for Backend-Frontend Integration

February 21, 2025
Don't Miss

Top 10 Generative AI Tools for Content Creators in 2025

February 13, 20255 Mins Read

The creative process has always required inspiration, skill, and time. But now, with generative AI…

SQL vs. NoSQL in Node.js: How to Choose the Right Database for Your Use Case

December 23, 2024

8 Key Concepts in Neural Networks Explained

February 8, 2025

Gradient Descent Optimizer

April 8, 2024
Stay In Touch
  • Facebook
  • Twitter
  • Pinterest
  • Instagram
  • LinkedIn

Subscribe to Updates

Subscribe to our newsletter for updates, insights, and exclusive content every week!

About Us

I am Arunangshu Das, a Software Developer passionate about creating efficient, scalable applications. With expertise in various programming languages and frameworks, I enjoy solving complex problems, optimizing performance, and contributing to innovative projects that drive technological advancement.

Facebook X (Twitter) Instagram LinkedIn RSS
Don't Miss

Can Artificial Intelligence Replace Human Intelligence?

March 27, 2024

Ridge Regression

March 31, 2024

Serverless with AWS Lambda and Node.js: A Cost-Efficient Deployment Method

December 23, 2024
Most Popular

Can Deep Learning used for Regression?

March 28, 2024

Understanding Regression in Deep Learning: Applications and Techniques

January 1, 2025

Choosing the Right SaaS Solutions for Business Growth: A Comprehensive Guide

February 26, 2025
Arunangshu Das Blog
  • About Me
  • Contact Me
  • Privacy Policy
  • Terms & Conditions
  • Disclaimer
  • Post
  • Gallery
  • Service
  • Portfolio
© 2025 Arunangshu Das. Designed by Arunangshu Das.

Type above and press Enter to search. Press Esc to cancel.