Contenido del curso

Menú moderno en PHP con Tailwind CSS

Resumen

Mejorar el diseño de un proyecto en PHP no requiere ser experto en CSS. Con Tailwind CSS puedes transformar un menú plano en una interfaz moderna usando clases utilitarias listas para producción, sin escribir hojas de estilo desde cero.

La idea es sencilla: importar Tailwind vía CDN dentro del header.php, envolver el contenido en un contenedor centrado y reutilizar componentes prediseñados como un navbar responsive. Esto es ideal para quienes están aprendiendo motores de plantillas en PHP y quieren ver resultados visuales rápidos.

¿Cómo se instala Tailwind CSS en un proyecto PHP?

La instalación más rápida es usando el enlace directo que ofrece la documentación oficial de Tailwind, pensado para pruebas y prototipos.

El flujo es directo:

  1. Entra a la documentación de Tailwind y copia el enlace de instalación rápida.
  2. Pega ese enlace dentro del header.php, que es el archivo que se importa en todas las páginas.
  3. Abre un contenedor con las clases container, centrado y con padding para dar respiro al contenido.
  4. Cierra ese contenedor en el footer.php para envolver toda la aplicación.

¿Qué hace la clase container en Tailwind? Define un ancho máximo según el breakpoint actual y, combinada con mx-auto, centra el contenido horizontalmente. Es la base para layouts limpios.

Al actualizar el navegador, el sistema ya responde a las utilidades de Tailwind y queda listo para aplicar estilos más complejos.

¿Cómo construir un navbar elegante con clases utilitarias?

El menú parte de algo tan básico como una lista <ul>, pero las clases de Tailwind hacen el trabajo pesado de diseño.

La estructura aplica color de fondo, un ancho máximo, alineación con flex y una altura definida para centrar verticalmente los elementos. Todo eso se traduce en un navbar que se ve profesional sin escribir CSS personalizado.

¿Qué clases de Tailwind dan ese acabado moderno?

Las piezas clave del navbar son combinaciones de utilidades que controlan layout y apariencia:

  • Color de fondo para destacar la barra sobre el resto del contenido.
  • flex para alinear los elementos en una sola fila.
  • Altura fija y centrado vertical para dar consistencia visual.
  • Ancho máximo para evitar que el menú se estire en pantallas grandes.

¿Por qué usar flex en un navbar? Porque permite distribuir logo, enlaces y botones en una misma línea con control total sobre el espacio entre ellos, sin recurrir a float ni posicionamientos manuales.

Después de pegar el componente desde el repositorio, basta con actualizar el navegador para ver el cambio: de un menú simple pasas a uno con jerarquía visual clara.

¿Por qué mover el menú al header.php mejora el proyecto?

Tener el navbar repetido en cada página rompe el principio de no repetir código. La refactorización busca que cada elemento viva en un solo lugar.

El movimiento es lógico: si el header.php y el footer.php ya se incluyen en todas las vistas, el menú de navegación pertenece ahí. Eliminas la importación manual del navbar en cada página y lo colocas como hermano del encabezado dentro de la plantilla base.

Este tipo de organización se acerca a los motores de plantilla, donde defines un esqueleto común y cada vista solo aporta su contenido específico. Ganas tres cosas concretas:

  • Menos código duplicado entre páginas.
  • Mantenimiento más rápido cuando cambias un enlace o un estilo.
  • Una arquitectura preparada para escalar a sistemas más complejos.

¿Qué es un motor de plantillas? Es un sistema que separa la estructura HTML reutilizable del contenido dinámico de cada página, permitiendo definir layouts base y vistas hijas sin duplicar código.

El resultado final mantiene el mismo comportamiento que antes, pero con una base mucho más ordenada. La siguiente parada es activar los botones del menú para que detecten en qué página estás y apliquen un estilo distinto al enlace activo.

El reto queda abierto: cambia la apariencia del botón Proyectos cuando pases el mouse por encima usando las utilidades hover de Tailwind. ¿Qué clases usarías para lograrlo?