Estilos CSS y su alcance
Empezamos rematando un poco algunos flecos del portfolio que estamos montando.
Añadiendo componentes de navegación ¶
Crea NavBar.astro
en /src/components
y copia y pega este contenido allí.
Y ahora lo mismo con Footer.astro
.
👀 En este caso nos basta con tener componentes estáticos. Fíjate como no hemos usado el separador ---
ya que no es obligatorio si no vas a emplear el poder de JavaScript.
⚡️ El enlace no se ve del todo bien, pronto lo vamos a arreglar.
💦 Piensa un momento en dónde crees que puedes incorporar estos componentes en tu código. Es una decisión importante, ¡es arquitectura de software!
¡Exacto!
Es en Sitelayout.astro
nuestro “supercomponente” que nos deja tener elementos comunes en toda la web.
Así quedaría la parte del body
y los imports.
Estilos CSS y alcance ¶
Una parte que no hemos visto hasta ahora de los componentes .astro
es su capacidad para soportar definiciones de estilos CSS.
Corrijamos el color del enlace en el componente Footer
. Podríamos hacerlo sin ningún problema con las clases de Bootstrap, pero lo haremos más divertido.
Añade en Footer.astro
esto al final:
_10<style>_10 a {_10 color: white;_10 }_10</style>
💣 ¿Demasiado arriesgado? Parece que va a cambiar TODOS los enlaces para que tengan color blanco.
Pues no.
🔍 Recuerda que Astro hace cosas por nosotros y en este caso este estilo esta solo en el alcance (scope) del componente Footer
.
💦 Abre en el navegador las herramientas de desarrollador y comprueba como el estilo aplicado a <a>
en el Footer
tiene unos caracteres extra que lo hacen único.
Estilos globales
Veamos como hacer una definición de estilo CSS global para todo el sitio.
Abre SiteLayout.astro
y escribe esto al final:
_10<style is:global>_10 body {_10 background-color: lemonchiffon;_10 }_10</style>
Aparecerá un fondo parecido al amarillo en el fondo de todas las páginas de la web. Si bien es cierto que el componente de layout afecta a todas las páginas, es una buena práctica usar el modificador is:global
para que Astro sepa que todos los body
deben tener ese color de fondo.
👀 Considero una buena práctica aunar los estilos globales en un solo componente o en un fichero CSS específico para que luego, si el proyecto crece, no nos volvamos locos buscando donde está.
⚡️ Pon a prueba lo que has aprendido
Este contenido llega a ti gracias a la Comunidad de suscriptores de Web Reactiva