¿Cómo crear un tema oscuro usando Slider en CSS?

En este artículo, aprenderemos a crear un tema oscuro usando el control deslizante en CSS. En los sitios web modernos, vemos que es una característica maravillosa para cambiar el tema del sitio web con solo marcar un control deslizante. Para verificar esta característica increíble, vaya al sitio web geeksforgeeks.org donde puede cambiar el tema según sus preferencias. En este artículo, aprenderemos a crear un control deslizante para cambiar el tema del sitio web. Permite a los usuarios personalizar la interfaz del sitio web según sus preferencias es la mejor experiencia de usuario. Aquí vamos a crear un buen control deslizante para cambiar el tema de nuestro sitio web. 

Pasos para crear un control deslizante de tema oscuro: estos son los siguientes pasos para crear un control deslizante de tema oscuro. 

  • Crear una página web usando HTML
  • Defina todas las variables de CSS, como el color de fondo, el color de texto principal, el color de texto secundario para el tema predeterminado y el tema oscuro.
  • Agregue funcionalidad usando JavaScript para alternar el modo predeterminado al modo oscuro.

Ejemplo: El siguiente ejemplo demuestra cómo crear un tema oscuro usando el control deslizante en CSS.

Paso 1: cree un archivo index.html y agregue el siguiente código html para proporcionar una estructura básica a la página web.

Nombre de archivo: index.html

HTML

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content=
        "width=device-width, initial-scale=1.0">
 
    <!-- Stylesheet link -->
    <link rel="stylesheet" href="./style.css">
 
    <!-- JavaScript file -->
    <script defer src="/script.js"></script>
    <!-- Instead of add defer, embedd javascript
        file in body tag -->
</head>
 
<body>
 
    <!--Heading Section-->
    <header>
        <nav>
 
            <!-- Add your custom menu here
                and theme slider -->
            <div class="theme-switch-container">
                <label class="theme-slider" for="checkbox">
                    <input type="checkbox" id="checkbox" />
                    <div class="round slider"></div>
                </label>
                 
 
 
<p>use this slider to change theme</p>
 
 
 
            </div>
        </nav>
    </header>
 
    <!-- Main Section -->
    <main>
        <h1>GeeksforGeeks</h1>
         
         
 
 
<p>
            GeeksforGeeks is a best learning
            plateform for geeks.
        </p>
 
 
 
 
         
 
 
<p>
            click below link to open
            geeksforgeeks website
        </p>
 
 
 
 
        <a href="https://www.geeksforgeeks.org/">
            GeeksforGeeks
        </a>
    </main>
</body>
 
</html>

  
Paso 2: ahora crearemos un nuevo archivo para agregar estilo al código html anterior.

Nombre de archivo: estilo.css

CSS

/* Default light theme */
:root {
    --primary-color: #302AE6;
    --secondary-color: #536390;
    --text-color: #424242;
    --background-color: #fff;
    --heading-color: #292922;
}
 
/* Dark theme */
[theme="dark"] {
    --primary-color: #9A97F3;
    --secondary-color: #818cab;
    --text-color: #e1e1ff;
    --background-color: #161625;
    --heading-color: #818cab;
}
 
/* Adding css variable in our webpage */
body {
    background-color: var(--background-color);
    color: var(--text-color);
}
 
h1 {
    color: var(--secondary-color);
}
 
a {
    color: var(--primary-color);
}
 
/* Slider styling */
.theme-switch-container {
    display: flex;
    align-items: center;
}
 
.theme-slider {
    display: inline-block;
    height: 34px;
    position: relative;
    width: 60px;
}
 
.theme-slider input {
    display: none;
}
 
.slider {
    background-color: #ccc;
    bottom: 0;
    cursor: pointer;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    transition: .4s;
}
 
.slider:before {
    background-color: #fff;
    bottom: 4px;
    content: "";
    height: 26px;
    left: 4px;
    position: absolute;
    transition: .4s;
    width: 26px;
}
 
input:checked+.slider {
    background-color: #66bb6a;
}
 
input:checked+.slider:before {
    transform: translateX(26px);
}
 
.slider.round {
    border-radius: 34px;
}
 
.slider.round:before {
    border-radius: 50%;
}

 
Paso 3: Ahora crearemos un archivo javascript y haremos la función toggleSwitch que nos permitirá alternar entre el tema oscuro y el claro.

Nombre de archivo: script.js

Javascript

const toggleSwitch =
    document.querySelector('.theme-slider input[type="checkbox"]');
 
/* Function to change theme */
function switchTheme(e) {
 
    /* Once checkbox is checked default theme change to dark */
    if (e.target.checked) {
        document.documentElement.setAttribute('theme', 'dark');
    }
 
    /* While page in dark mode and checkbox is
    checked then theme back to change light*/
    else {
        document.documentElement.setAttribute('theme', 'light');
    }
}
 
toggleSwitch.addEventListener('change', switchTheme, false);

Producción:

Publicación traducida automáticamente

Artículo escrito por vikashgautam11 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *