Theme switching lets users change how a website looks, like switching between light and dark modes. It makes websites more personal and easier to use in different lighting.
Theme switching architecture in SASS
// Define theme colors using variables $light-bg: #ffffff; $light-text: #000000; $dark-bg: #121212; $dark-text: #e0e0e0; // Create theme classes .light-theme { background-color: $light-bg; color: $light-text; } .dark-theme { background-color: $dark-bg; color: $dark-text; }
Use variables to store colors for easy updates.
Wrap theme styles inside classes to switch themes by changing the class on a container element.
// Using variables for light theme $primary-color: #3498db; .light-theme { background-color: #fff; color: $primary-color; }
// Dark theme with nested styles .dark-theme { background-color: #222; color: #eee; a { color: #9b59b6; } }
// Using CSS custom properties for themes :root { --bg-color: #fff; --text-color: #000; } .dark-theme { --bg-color: #121212; --text-color: #e0e0e0; } body { background-color: var(--bg-color); color: var(--text-color); }
This example uses Sass variables compiled to CSS for light and dark themes. The page starts with the light theme. Clicking the button toggles the theme by changing the class on the body. The colors and background update smoothly.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Theme Switcher Example</title> <style> .light-theme { background-color: #ffffff; color: #000000; transition: background-color 0.3s ease, color 0.3s ease; } .dark-theme { background-color: #121212; color: #e0e0e0; transition: background-color 0.3s ease, color 0.3s ease; } button { margin: 1rem; padding: 0.5rem 1rem; font-size: 1rem; cursor: pointer; } </style> </head> <body class="light-theme"> <main> <h1>Welcome to Theme Switcher</h1> <p>Click the button to toggle between light and dark themes.</p> <button id="toggle-theme" aria-label="Toggle theme">Switch Theme</button> </main> <script> const button = document.getElementById('toggle-theme'); const body = document.body; button.addEventListener('click', () => { if (body.classList.contains('light-theme')) { body.classList.replace('light-theme', 'dark-theme'); } else { body.classList.replace('dark-theme', 'light-theme'); } }); </script> </body> </html>
Use semantic HTML elements like <main> and <button> for accessibility.
Include smooth transitions for a nicer visual effect when switching themes.
Use ARIA labels on buttons to help screen reader users understand the button's purpose.
Theme switching uses CSS classes with different colors to change website look.
Sass variables help keep colors organized and easy to update.
JavaScript can toggle theme classes to switch themes dynamically.