Diseño de Área Pública con Imágenes y CSS en Tailwind

Clase 24 de 31Curso de Introducción a Laravel 9

Contenido del curso

Fundamentos de Laravel

Manos a la obra con nuestro proyecto

Trabajemos en el diseño web de nuestro proyecto

Resumen

Diseñar el área pública de un proyecto web requiere atención a los detalles visuales y una estructura HTML bien organizada. Aquí se explica cómo integrar imágenes, configurar un encabezado con clases utilitarias de Tailwind CSS y resolver un problema frecuente de compilación que impide que las clases se apliquen correctamente.

¿Cómo preparar las imágenes para el proyecto?

Antes de escribir código, es necesario contar con los recursos gráficos organizados en el directorio correcto. El proceso consiste en descargar las imágenes necesarias y almacenarlas dentro de la carpeta public del proyecto [00:24].

  • Crear una carpeta llamada images (o el nombre que prefieras) dentro de public.
  • Guardar el logo del sitio como logo.png.
  • Descargar una segunda imagen relacionada con el contenido, por ejemplo dev.png.

Esta organización permite acceder a las imágenes desde las vistas usando funciones auxiliares del framework, como asset(), que genera la ruta pública correcta hacia el archivo.

¿Cómo estructurar el encabezado con HTML y Tailwind CSS?

La plantilla base es el punto de partida. Lo primero es importar el archivo CSS del proyecto utilizando la directiva correspondiente, en este caso con la función que apunta a css/app.css [02:00]. Una vez vinculado, los estilos compilados estarán disponibles en toda la aplicación.

La estructura del header sigue un patrón jerárquico claro:

  • Un div contenedor con clases de relleno lateral y centrado.
  • Dentro, una etiqueta <header> que aloja dos bloques: el logo y un formulario de búsqueda.
  • El logo se coloca dentro de un enlace <a>, y la imagen se renderiza con la función asset('images/logo.png') [03:12].
  • El formulario incluye un <input> con un placeholder que dice "buscar".

¿Qué clases utilitarias se aplican al encabezado?

Tailwind CSS funciona con clases utilitarias que definen estilos directamente en el marcado HTML. Para el <header> se utilizan las siguientes [03:40]:

  • flex: convierte el elemento en un contenedor flexible.
  • justify-between: distribuye los hijos con espacio entre ellos.
  • items-center: alinea verticalmente los elementos al centro.
  • py-4: aplica relleno superior e inferior de nivel cuatro.

Para el <div> interno que envuelve el formulario:

  • flex e items-center para mantener la alineación.
  • grow: permite que este bloque crezca en relación con su hermano (el enlace del logo).
  • gap-4: establece una brecha o espacio entre elementos de nivel cuatro.

¿Por qué las clases de Tailwind no se aplican y cómo solucionarlo?

Uno de los errores más comunes al trabajar con Tailwind CSS es que las clases no surtan efecto en el navegador. Al inspeccionar el archivo CSS compilado, se puede verificar que ciertas clases simplemente no existen en él [04:22].

Esto ocurre porque Tailwind utiliza un proceso de compilación que genera únicamente las clases que detecta en los archivos configurados. El archivo tailwind.config.js define qué rutas debe analizar para buscar clases utilitarias, normalmente las vistas del proyecto [04:42].

¿Cómo recompilar para incluir las nuevas clases?

Cada vez que se agregan clases nuevas en las plantillas, es necesario volver a ejecutar el comando de compilación [05:02]:

bash npm run dev

Este comando regenera el archivo CSS final incluyendo todas las clases detectadas. Tras ejecutarlo y actualizar el navegador, las clases aparecerán correctamente y los estilos se aplicarán como se espera.

Este flujo de trabajo, donde se editan las vistas y luego se recompila, es fundamental para entender cómo Tailwind optimiza el tamaño del archivo CSS eliminando clases no utilizadas, un concepto conocido como purge o tree-shaking de estilos.

Con estas configuraciones, el encabezado del área pública queda funcional y listo para recibir mejoras visuales como líneas con degradado en las siguientes iteraciones. ¿Qué otros elementos agregarías a tu diseño público?