¿Cómo utilizar plantillas en Astro para mejorar tu proyecto?
La incorporación de plantillas en tu proyecto de Astro puede optimizar significativamente la reutilización de código, permitiendo una estructura más homogénea y eficiente tanto en páginas como en componentes. Este enfoque es crucial para mantener un orden y uniformidad en el desarrollo de software, posibilitando el ahorro de tiempo y esfuerzo al estructurar configuraciones repetitivas y estilos visuales.
¿Qué es una plantilla base en Astro?
Una plantilla base en Astro es un componente que define estilos y estructuras HTML estándar, beneficiando a las páginas escritas en Markdown. Para iniciar, se crea un componente llamado base.astro que establecerá una estructura central para el layout. Aquí, se utiliza el valor slot para encapsular contenido, lo cual permite flexibilidad y dinamismo en la presentación del contenido de las páginas.
¿Cómo integramos Tailwind CSS para darle estilo al layout?
Tailwind CSS se utiliza para dotar de un diseño elegante y moderno al cuerpo de las páginas, implementando variables de color y dimensiones específicas. Se aplican estilos que incluyen background-color, con una tonalidad slate, y un color 400 para variaciones visuales. Además, se considera el uso de clases como FlexBlock y MaxWidth XL para adaptar la presentación a diferentes resoluciones.
¿Cómo aplicar una plantilla a un archivo Markdown?
Una vez que la plantilla está creada, se debe indicar a los archivos Markdown que deben utilizar esta estructura base. Para ello, se añade una referencia en el archivo correspondiente en el directorio pages, asegurando que se carga el layout especificado.
---layout: '../layouts/base.astro'
title: 'Acerca de'---# Acerca de
Este es el contenido de la página sobre nosotros...
¿Qué hacer si los cambios no se reflejan?
En caso de que los cambios no sean visibles, es recomendable revisar el entorno de desarrollo local. Errores o advertencias en la terminal pueden ser señales de que algo no está funcionando correctamente. Un reinicio del proceso con el comando npm run dev puede resolver muchos de estos problemas, garantizando que las modificaciones sean visibles.
Usar plantillas en Astro no solo mejora la organización del proyecto, sino que nos permite aprovechar la potencia del contenido en Markdown para brindar un diseño consistente. Te animo a que experimentes y enriquezcas esta configuración, compartiendo tus resultados para aprender juntos. ¡La práctica constante es clave para el dominio de estas herramientas!
Creación de Plantillas en Astro para Páginas Markdown
Creación de Plantillas en Astro para Páginas Markdown
Recursos
Resumen
¿Cómo utilizar plantillas en Astro para mejorar tu proyecto?
La incorporación de plantillas en tu proyecto de Astro puede optimizar significativamente la reutilización de código, permitiendo una estructura más homogénea y eficiente tanto en páginas como en componentes. Este enfoque es crucial para mantener un orden y uniformidad en el desarrollo de software, posibilitando el ahorro de tiempo y esfuerzo al estructurar configuraciones repetitivas y estilos visuales.
¿Qué es una plantilla base en Astro?
Una plantilla base en Astro es un componente que define estilos y estructuras HTML estándar, beneficiando a las páginas escritas en Markdown. Para iniciar, se crea un componente llamado base.astro que establecerá una estructura central para el layout. Aquí, se utiliza el valor slot para encapsular contenido, lo cual permite flexibilidad y dinamismo en la presentación del contenido de las páginas.
¿Cómo integramos Tailwind CSS para darle estilo al layout?
Tailwind CSS se utiliza para dotar de un diseño elegante y moderno al cuerpo de las páginas, implementando variables de color y dimensiones específicas. Se aplican estilos que incluyen background-color, con una tonalidad slate, y un color 400 para variaciones visuales. Además, se considera el uso de clases como FlexBlock y MaxWidth XL para adaptar la presentación a diferentes resoluciones.
¿Cómo aplicar una plantilla a un archivo Markdown?
Una vez que la plantilla está creada, se debe indicar a los archivos Markdown que deben utilizar esta estructura base. Para ello, se añade una referencia en el archivo correspondiente en el directorio pages, asegurando que se carga el layout especificado.
---
layout: '../layouts/base.astro'
title: 'Acerca de'
---
# Acerca de
Este es el contenido de la página sobre nosotros...
¿Qué hacer si los cambios no se reflejan?
En caso de que los cambios no sean visibles, es recomendable revisar el entorno de desarrollo local. Errores o advertencias en la terminal pueden ser señales de que algo no está funcionando correctamente. Un reinicio del proceso con el comando npm run dev puede resolver muchos de estos problemas, garantizando que las modificaciones sean visibles.
Usar plantillas en Astro no solo mejora la organización del proyecto, sino que nos permite aprovechar la potencia del contenido en Markdown para brindar un diseño consistente. Te animo a que experimentes y enriquezcas esta configuración, compartiendo tus resultados para aprender juntos. ¡La práctica constante es clave para el dominio de estas herramientas!
El elemento <slot /> es un espacio reservado para contenido HTML externo, permitiéndote inyectar (o ingresar en la “ranura”) elementos hijos provenientes de otros archivos en el maquetado de tu componente.
Por defecto, todos los elementos hijos que le sean enviados a un componente serán renderizados en su <slot />.
---
import Header from './Header.astro';
import Logo from './Logo.astro';
import Footer from './Footer.astro';
const { titulo } = Astro.props
---
<div id="content-wrapper">
<Header />
<Logo />
<h2>{titulo}</h2>
<slot /> <!-- aquí van los hijos -->
<Footer />
</div>
👀 OJO:
Los slots son diferentes a las props, que son atributos enviados a un componente Astro y disponibles para utilizar con Astro.props. Los slots renderizan elementos HTML hijos donde se lo indique.
Oscar lo menciona al final del video: A veces se queda algo pegado en la consola y es mejor reiniciarla para ver los cambios reflejados del Proyecto. Me sucedió en esta y en la clase anterior 😅
ℹ️ Definición
En Atomic Design, las plantillas son una organización que posee una definición de contenido basado en el recurso (ya sea por SEO o por estructura).
.
Las plantillas consisten, principalmente en grupos unidos para formar una narrativa de algún producto web. A este nivel, comenzamos a ver la definición formal de diseño según la interfaz de usuario.
.
Las plantillas son muy concretas y brindan contexto a todas las partes relacionadas o alusivas al contenido en curso.
.
!Image
Layouts Astro
Los layouts en Astro, son componentes en el subdirectorio ./src/layouts/ de que se utilizan para proporcionar una estructura de interfaz de usuario reutilizable, como una plantilla de página.
.
✨ Concepto clave
Convencionalmente, usamos el término Layout para los componentes de Astro que proporcionan elementos comunes de la interfaz de usuario compartidos entre páginas como encabezados, barras de navegación y pies de página.
.
Un layout, generalmete proporciona:
Una plantilla de página en HTML
Un componente enriquecido procesada antes que se disponga la página
.
Un componente de diseño Astro típico proporciona páginas Astro, Markdown o MDX con:
.
src/layouts/MySiteLayout.astro
---
import BaseHead from '../components/BaseHead.astro';
import Footer from '../components/Footer.astro';
const { title } = Astro.props
---
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<BaseHead title={title}/>
</head>
<body>
<nav>
<a href="#">Home</a>
<a href="#">Posts</a>
<a href="#">Contact</a>
</nav>
<h2>{title}</h2>
<article>
<slot /> <!-- your content is injected here -->
</article>
<Footer />
</body>
</html>
✨ Concepto clave
Astro posee por default un layout, en cuanto agreguemos una, será remplazada y deberemos declararla por página según sea el caso.
.
Desarrollo de layouts
Generalmente, los layouts son distribuciones que se discuten y desarrollan según las necesidades del producto, ya que, particularmente, facilitará el desarrollo de las posibles historias de usuario o requerimientos.
.
Supongamos el caso donde tenemos una aplicación móvil con los siguientes wireframes, donde tendríamos que adaptar 1 layout para 3 vistas diferentes:
.
La etiqueta <slot> en Astro (y en otros frameworks como Vue) se utiliza para definir un espacio reservado en un componente en el que se puede insertar contenido dinámico. Esencialmente, actúa como un marcador que permite a los desarrolladores crear componentes más flexibles y reutilizables. El contenido que se pase al componente se renderiza en el lugar donde se encuentra el <slot>, permitiendo personalizar la presentación sin modificar la estructura del componente base.