30 de abril de 20253 min de lectura

¿CSS puro o Tailwind CSS?

Compartir
Comparativa visual entre CSS y Tailwind CSS con sus respectivos logotipos sobre fondo degradado verde y morado

Tailwind se ha puesto muy de moda estos últimos años, a veces por lo práctico que es y a veces porque a mucha gente le resulta más fácil que aprender CSS a fondo.

Yo empecé a usarlo hace apenas un año, en proyectos con Astro, y me costó muy poco acostumbrarme. Seguramente porque llevaba años diseñando con CSS nativo: ya sabía qué quería conseguir y solo tenía que aprender cómo se escribía en clases. Eso no le pasa a todo el mundo, y creo que cambia bastante la respuesta a la pregunta del título.

Hoy uso los dos, y te cuento cuándo elijo cada uno.

Dónde gana Tailwind

Para maquetar, Tailwind me hace ir mucho más rápido. Compongo la interfaz directamente en el HTML, sin saltar a otro archivo ni pensar cómo llamar a cada clase, y todo sale de la misma escala de espacios, colores y tipografía, así que el diseño queda consistente sin esfuerzo.

Con Astro además encaja muy bien: como los componentes se reutilizan con facilidad, las clases largas quedan encapsuladas en un solo sitio y no se repiten por todo el proyecto.

Si tengo que sacar algo rápido, ordenado y que vaya a crecer, Tailwind es mi primera opción.

Dónde prefiero CSS: sombras y pseudoelementos

Aquí es donde Tailwind no me termina de convencer, y es de lo poco que no me gusta de él.

Las sombras, sobre todo. Cuando quiero una sombra con cuerpo suelo necesitar varias apiladas, y en Tailwind eso acaba en una clase arbitraria que cuesta leer:

<div class="shadow-[0_1px_2px_rgb(0_0_0/0.06),0_4px_8px_rgb(0_0_0/0.06),0_16px_32px_rgb(13_188_130/0.12)]">

En CSS lo mismo se lee de un vistazo, y si la uso en varios sitios la cambio en uno solo:

.tarjeta {
  box-shadow:
    0 1px 2px rgb(0 0 0 / 0.06),
    0 4px 8px rgb(0 0 0 / 0.06),
    0 16px 32px rgb(13 188 130 / 0.12);
}

Sé que en Tailwind 4 se puede definir una sombra propia en @theme y usarla como shadow-lo-que-sea, y todavía no he profundizado en eso. Pero incluso así acabo escribiendo la sombra en CSS, solo que en otro sitio.

Con los pseudoelementos (::before y ::after) me pasa lo mismo. Este es un trozo real del ::before de las tarjetas de proyecto de mi portafolio, escrito en Tailwind:

before:absolute before:size-36 before:aspect-square before:rounded-full
before:blur-3xl dark:before:blur-3xl dark:before:opacity-20 before:opacity-5
before:transition before:-z-1 before:left-7/12 before:bottom-50 xl:before:-bottom-0
before:[background-image:radial-gradient(circle,_rgba(71,255,194)_0,_rgba(0,255,191)_100%)]
dark:before:[background-image:radial-gradient(circle,_rgba(7,255,173)_0,_rgba(1,45,34)_100%)]

Funciona, pero cada propiedad lleva el prefijo before: y el modo oscuro duplica la mitad. En CSS sería esto:

.proyecto::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 58.33%;
  bottom: 12.5rem;
  width: 9rem;
  aspect-ratio: 1;
  border-radius: 9999px;
  filter: blur(64px);
  opacity: 0.05;
  background-image: radial-gradient(circle, rgb(71 255 194) 0, rgb(0 255 191) 100%);
  transition: opacity 150ms;
}

.dark .proyecto::before {
  opacity: 0.2;
  background-image: radial-gradient(circle, rgb(7 255 173) 0, rgb(1 45 34) 100%);
}

@media (min-width: 80rem) {
  .proyecto::before { bottom: 0; }
}

Es más largo, pero se entiende mejor y es más fácil de mantener. Cuando un estilo depende de muchas sombras o de un pseudoelemento, me resulta más sostenible hacerlo en CSS.

Lo que cuesta cada uno

CSS puro te da control total y no depende de ninguna herramienta, pero exige disciplina: sin una buena organización, entre la cascada, la especificidad y los nombres de clase, el proyecto se desordena rápido.

Tailwind te quita casi todos esos problemas a cambio de un HTML muy cargado y de un paso de compilación. Y si no conoces CSS, te quita también la posibilidad de entender qué está pasando cuando algo no sale como esperabas.

Mi respuesta

Nunca me he arrepentido de elegir uno u otro en un proyecto. Creo que es justamente porque usé mucho CSS antes de llegar a Tailwind: hoy puedo decidir con bastante seguridad qué conviene en cada proyecto nuevo, y a menudo acabo usando los dos a la vez.

Así que mi consejo es aprender CSS a fondo primero. Con esa base, Tailwind se aprende en poco tiempo, y también cualquier otro framework, por distinto que sea: Bootstrap, Bulma o el que venga.

Compartir