¡Ey! Entonces, si eres como yo y te encanta todo el ambiente del modo oscuro, es posible que hayas pensado en agregarlo a tu sitio web. Es bastante fácil de configurar con sólo un poco de CSS y JavaScript. Así es como lo hice.
En primer lugar, necesita un botón o un interruptor en el que los usuarios puedan hacer clic para alternar entre los modos claro y oscuro. Para este ejemplo elegí un botón simple (puedes usar un ícono si lo deseas):
Este botón será el activador para cambiar de modo.
A continuación, debes definir cómo se verán tu modo claro y tu modo oscuro. En tu CSS, configurarás los estilos predeterminados (que serán tu modo claro) y luego agregarás una clase de modo oscuro que anula estos estilos.
body { background-color: white; color: black; transition: background-color 0.3s, color 0.3s; } .dark-mode { background-color: #121212; color: #ffffff; }
Esto es lo que está pasando:
Ahora viene la parte en la que hacemos que el botón realmente haga algo. Este fragmento de JavaScript alternará la clase .dark-mode en el cuerpo cada vez que se haga clic en el botón.
const toggleButton = document.getElementById('dark-mode-toggle'); const body = document.body; toggleButton.addEventListener('click', () => { body.classList.toggle('dark-mode'); // Save the user's preference in local storage if (body.classList.contains('dark-mode')) { localStorage.setItem('theme', 'dark'); } else { localStorage.setItem('theme', 'light'); } });
Aquí hay un desglose:
Para asegurarse de que el sitio se cargue en el modo preferido del usuario, debe verificar el almacenamiento local cuando se carga la página y configurar el modo en consecuencia.
window.addEventListener('load', () => { const savedTheme = localStorage.getItem('theme'); if (savedTheme === 'dark') { body.classList.add('dark-mode'); } });
Si estás usando React, el proceso es bastante similar, pero manejarás las cosas dentro de tus componentes. He aquí cómo hacerlo:
Utilice useState de React para administrar el estado del modo oscuro y aplique la clase apropiada a su elemento raíz:
import React, { useState } from 'react'; function App() { const [darkMode, setDarkMode] = useState(false); const toggleDarkMode = () => { setDarkMode(!darkMode); }; return (); } export default App;
En este ejemplo:
Agrega la clase .dark-mode a tu CSS, como antes:
body { background-color: white; color: black; transition: background-color 0.3s, color 0.3s; } .dark-mode { background-color: #121212; color: #ffffff; }
Si deseas que la preferencia del tema persista, puedes agregar este pequeño ajuste:
import React, { useState, useEffect } from 'react'; function App() { const [darkMode, setDarkMode] = useState(() => { const savedTheme = localStorage.getItem('theme'); return savedTheme === 'dark'; }); useEffect(() => { localStorage.setItem('theme', darkMode ? 'dark' : 'light'); }, [darkMode]); return (); } export default App;
Esto es lo que está pasando:
¡Y listo! Esta es una forma más sencilla de agregar el modo oscuro a tu aplicación React sin complicar demasiado las cosas.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3