CSS Questions & Answers Logo
CSS Questions & Answers Part of the Q&A Network
Real Questions. Clear Answers.
Ask any question about CSS here... and get an instant response.
Q&A Logo Q&A Logo

How do I toggle between light and dark mode using CSS variables without JavaScript?

Asked on Dec 09, 2025

Answer

You can toggle between light and dark mode using CSS variables by leveraging the `:root` selector and the `:checked` pseudo-class on a checkbox input. This method allows you to switch themes using only CSS.
<!-- BEGIN COPY / PASTE -->
    <style>
      :root {
        --bg-color: white;
        --text-color: black;
      }

      [data-theme="dark"] {
        --bg-color: black;
        --text-color: white;
      }

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

      input[type="checkbox"] {
        display: none;
      }

      label {
        cursor: pointer;
        padding: 10px;
        background-color: #ccc;
        border-radius: 5px;
      }

      input[type="checkbox"]:checked ~ body {
        background-color: var(--bg-color);
        color: var(--text-color);
      }
    </style>

    <input type="checkbox" id="theme-toggle">
    <label for="theme-toggle">Toggle Theme</label>
    <!-- END COPY / PASTE -->
Additional Comment:
  • The `:root` selector defines default CSS variables for light mode.
  • The `[data-theme="dark"]` attribute selector changes the CSS variables for dark mode.
  • The checkbox input is hidden but used to toggle the theme when checked.
  • The `label` element is styled to act as a toggle button.
  • CSS transitions are used for smooth color changes.
✅ Answered with CSS best practices.

← Back to All Questions

Q&A Network
The Q&A Network
CSS
Ask Questions / Get Answers about CSS!
Video Editing
Ask Questions / Get Answers about Video Editing!
Data Science
Ask Questions / Get Answers about Data Science!
Web Languages
Ask Questions / Get Answers about Web Languages!
Cloud Computing
Ask Questions / Get Answers about Cloud Computing!
AI Business
Ask Questions / Get Answers about AI Business!
Web Development
Ask Questions / Get Answers about Web Development!
HTML
Ask Questions / Get Answers about HTML!
AI Ethics
Ask Questions / Get Answers about AI Ethics!
Creative Writing
Ask Questions / Get Answers about Creative Writing!
IoT
Ask Questions / Get Answers about IoT!
Film Production
Ask Questions / Get Answers about Film Production!
SEO
Ask Questions / Get Answers about SEO!
AI Education
Ask Questions / Get Answers about AI Education!
AI Coding
Ask Questions / Get Answers about AI Coding!
Bootstrap
Ask Questions / Get Answers about Bootstrap!
Security
Ask Questions / Get Answers about Website Security!
AI Video
Ask Questions / Get Answers about AI Video!
AI Design
Ask Questions / Get Answers about AI Design!
AI Marketing
Ask Questions / Get Answers about AI Marketing!
MobileDev
Ask Questions / Get Answers about Mobile Developement!
Robotics
Ask Questions / Get Answers about Robotics!
Web Hosting
Ask Questions / Get Answers about Hosting!
Cybersecurity
Ask Questions / Get Answers about Cybersecurity!
AI
Ask Questions / Get Answers about AI!
AI Images
Ask Questions / Get Answers about AI Images!
AI Audio
Ask Questions / Get Answers about AI Audio!
DevOps
Ask Questions / Get Answers about DevOps!
Photography
Ask Questions / Get Answers about Photography!
JavaScript
Ask Questions / Get Answers about JavaScript!
VR & AR
Ask Questions / Get Answers about VR & AR!
WordPress
Ask Questions / Get Answers about WordPress!
Tailwind
Ask Questions / Get Answers about Tailwind!
Graphic Design
Ask Questions / Get Answers about Graphic Design!
Analytics
Ask Questions / Get Answers about Analytics!
Chatbots
Ask Questions / Get Answers about Chatbots!
Monetization
Ask Questions / Get Answers about Ad & Monetization!
AI Writing
Ask Questions / Get Answers about AI Writing!
Performance
Ask Questions / Get Answers about Web Vitals!
Quantum
Ask Questions / Get Answers about Quantum Computing!
Networking
Ask Questions / Get Answers about Networking!