Cada vez más, una decisión de la pila de tecnología que una vez se sintió correcta comienza a mostrar sus límites, como darse cuenta de lo ineficiente que es un tornillo después de usar una perforación de energía.Styled ComponentsDurante años, nos sirvió bien, ofreciendo estilos amplios, temas dinámicos y control total dentro de nuestros componentes React.Tailwind CSSA partir de ese momento, se hizo evidente que achange was overdue.
Este post es una ruptura de nuestro cambio de Styled Components a Tailwind CSS, por qué hicimos el movimiento, cómo me acerqué a la transición, y cómo ha parecido el proceso hasta ahora.Si está trabajando con estilos legados o considerando Tailwind para sus propios proyectos, espero que esto le dé algo útil (o al menos relativo) para irse con.
Por qué HackerNoon originalmente usó componentes estilizados
No formé parte del equipo cuando Styled Components fue elegido por primera vez para manejar nuestro CSS, pero en ese momento,Tailwind CSS hadn’t even been released, y Styled Components hizo mucho sentido para la arquitectura front-end de HackerNoon.
Permitió a los desarrolladores escribir CSS directamente dentro de JavaScript, haciendo que los componentes estén completamente independientes.encapsulated, reusable, and, at the time, thought to be easier to maintainLas capacidades de diseño dinámico, el soporte de temática integrado y la capacidad de pasar props directamente a los estilos funcionaron especialmente bien para la amplia variedad de páginas y diseños que estábamos construyendo.Styled Components served HackerNoon well. el
¿Qué nos hizo considerar el cambio a Tailwind?
Con el tiempo, nuestra base de código creció, así como la complejidad de los estilos de gestión.
Los componentes estilizados nos dieron flexibilidad, pero eso vino a un costo:larger bundle sizes, deruntime performance hits, y acluttered component structureCada vez era más difícil rastrear estilos o reutilizarlos de manera efectiva sin duplicar el código.
También notamos que muchos de nuestros estilos se estaban repitiendo a través de componentes.Tailwind CSSEl enfoque de utilidad primero se sintió como una forma de simplificar todo, desde el diseño hasta la receptividad e incluso el tema.
Pero seamos reales: parasmall dev team like HackerNoon’s, la idea de refactorizar una base de código masivaline by lineSin embargo, no podíamos ignorar lo ampliamente que Tailwind estaba siendo adoptado en la comunidad de desarrolladores.
Cómo hice el switch
¿La parte más difícil de este cambio?Setup.
La instalación de Tailwind fue sencilla, pero una vez que estaba activo, los estilos globales de Tailwind, gracias a Preflight, comenzaron a chocar con nuestros componentes existentes.
Un salvavidas aquí estaba establecidopreflight: false
En latailwind.config.js
archivo que se muevedisabled most of Tailwind’s base resetsCiertamente, todavía había problemas menores de estilo para arreglar, pero las cosas parecían menos una zona de guerra.
Desde allí, tuve queestablish new conventions¿Cómo gestionamos los estilos globales, reutilizamos clases y construimos componentes conscientes del tema con Tailwind?Una vez que se puso esa base, estaba listo para construir.
Y aquí está la parte que todavía me sorprende:AI made this process actually enjoyable.
Refactorizar miles de líneas de código solo habría sido una locura. Pero usé ChatGPT para convertir nuestros componentes estilizados en Tailwind uno a la vez. Para componentes simples -layouts, espaciamiento, estructura- era una brisa.
Now, let me be honest:La IA no lo consiguió todo bien.Los componentes más complejos y temáticos todavía son necesariosmanual coding and plenty of hoursPero tener una base sólida para comenzar hizo que las cosas fuesen mucho más fáciles.La documentación de Tailwind también ayudó a llenar las lagunas, y una vez que abrazé completamente lautility class mindsetLas cosas comenzaron a clicar.
¿Cómo es la migración hasta ahora?
Me alegro de decirTailwind is now live on HackerNoon!
A partir de ahora, elLa página web de HackerNoon se ha convertido completamentea Tailwind CSS, con Componentes estilizados completamente eliminados. La mayoría de las otras páginas todavía dependen de Componentes estilizados, y se convertirán gradualmente—one component, one page at a time. el
La página web de HackerNoon se ha convertido completamente
Este enfoque más lento ha sido realmente una bendición.Refactorizar cada componente me dio la oportunidad derevisit and improveel diseño y la estructura de nuestras páginas. Junto a la conversión de Tailwind, hemos introducido unmore modern UImejor uso del diseño, nuevos componentes e incluso uncustom-built theme pickerEsto da vergüenza a nuestro viejo sistema temático.
Después de trabajar en HackerNoon durante más de 4 años, sientoreignitedSubir a nuestra base de código de nuevo. Tailwind ha hecho la construcción divertida de nuevo. Es limpio, consistente y potente -y estoy emocionado de seguir impulsando la conversión hacia adelante.styled-components
de nuestropackage.json
Para lo mejor. 😉
Reflexiones finalistas
El paso a Tailwind CSS no se trataba sólo de reemplazar una biblioteca de estilo, sino de modernizar nuestro flujo de trabajo frontend, abrazando la coherencia y simplificando el desarrollo.flexibility, speed, and maintainabilityNecesitamos seguir escalando.
Todavía es un trabajo en curso —nuestra aplicación todavía tiene un montón de Componentes Estilizados— pero ver a Tailwind en vivo en nuestra página de inicio y en componentes recién refactorizados ha sido increíblemente gratificante.El hecho de que pueda combinar AI con mi propia experiencia para refactor más rápido ha hecho que esta transición se sienta no sólo factible sino emocionante.
HackerNoon está evolucionando, y nuestros estilos están evolucionando con ello.