De vuelta a tierra firme. Lleva tu blog del día a la noche, ¡sin necesidad de islas!
Ahora que puedes construir islas de Astro para elementos interactivos, ¡no olvides que puedes llegar bastante lejos con solo JavaScript y CSS básicos!
Vamos a crear un icono en el que se pueda hacer clic para que los usuarios puedan alternar entre los modos claro y oscuro utilizando otra etiqueta <script>
para la interactividad… sin enviar JavaScript al navegador.
Prepárate para...
- Crear un alternador interactivo con sólo JavaScript y CSS
- Enviar la menor cantidad posible de JavaScript al navegador.
Añade y estiliza un icono de cambio de tema
-
Crea un nuevo archivo en
src/components/ThemeIcon.astro
y pega el siguiente código en él: -
Añade el icono a
Header.astro
para que se muestre en todas las páginas. No olvides importar el componente. -
Visita la vista previa de tu navegador en
http://localhost:4321
para ver el icono ahora en todas tus páginas. Puedes intentar hacer clic en él, pero aún no has escrito un script para hacerlo interactivo.
Añade estilos CSS para un tema oscuro
Elige algunos colores alternativos para usar en modo oscuro.
-
En
global.css
, define algunos estilos oscuros. Puedes elegir los tuyos propios o copiar y pegar:
Añade interactividad en el lado del cliente
Para añadir interactividad a un componente de Astro, puedes utilizar una etiqueta <script>
. Este script puede comprobar y establecer el tema actual desde localStorage
y alternar el tema cuando se hace clic en el icono.
-
Añade la siguiente etiqueta
<script>
ensrc/components/ThemeIcon.astro
después de tu etiqueta<style>
: -
Comprueba la vista previa de tu navegador en
http://localhost:4321
y haz clic en el icono del tema. Comprueba que puedes cambiar entre los modos claro y oscuro.
Pon a prueba tus conocimientos
Elige si cada una de las siguientes afirmaciones describe etiquetas de Astro <script>
, componentes del framework UI, o ambos.
-
Te permiten incluir elementos de UI interactivos en tu sitio web.
-
Los elementos crearán contenido estático en tu sitio a menos que incluyas un
client:
para enviar tu JavaScript al cliente y ejecutarlo en el navegador. -
Te permiten “probar” un nuevo framework sin necesidad de iniciar un proyecto completamente nuevo con esa pila tecnológica.
-
Te permiten reutilizar el código que se ha escrito en otros frameworks y, a menudo, basta con soltarlos directamente en el sitio.
-
Te permiten añadir interactividad sin necesidad de conocer o aprender otros frameworks de JavaScript.