En el podcast de JS Party:
[Kend C. Dodds]: […] pregúntele a cualquiera que haya hecho CSS antiguo y regular y le dirá que “no sé si está bien para mí cambiar esto, así que lo duplicaré”. Y ahora tenemos: en PayPal (esto no es inventado) teníamos un 90 % de CSS sin usar en el proyecto que estaba usando, porque todos tenían miedo de tocar las cosas viejas. Así que simplemente duplicamos algo nuevo y lo llamamos de otra manera. Y podrías decir que somos malos en CSS, pero tal vez CSS fue malo con nosotros, no sé… [laughter]
[Emma Bostain]: Bueno, es por eso que los componentes con estilo y CSS-in-JS fueron tan fundamentales; fue como “Oh, oye, en realidad podemos encapsular toda esta lógica dentro del componente que está tocando y ya no tenemos que preocuparnos por sangrar el código”. Es mucho más fácil eliminar cosas y agregar cosas y todas esas cosas.
[Kend C. Dodds]: Sí, tienes toda la razón. Ese era el problema que esas cosas estaban hechas para resolver.
Segmento de audio:
He escuchado esta misma historia antes varias veces, generalmente de grandes empresas. Muchos desarrolladores, la típica rotación de desarrolladores… nadie sabe qué CSS se usa realmente y qué no, porque ese es un problema muy difícil.
Esa es una de las razones por las que a veces me gustan las soluciones de estilo basadas en componentes (CSS-in-JS, si eres desagradable). No porque ame las herramientas complejas. No porque me guste más la sintaxis de JavaScript que la de CSS. Debido a la ubicación conjunta de estilos y componentes. Porque ya nadie le teme a los estilos: están estrechamente relacionados con lo que están diseñando. No es necesario en todos los proyectos, pero si está construyendo con componentes de todos modos (una forma muy agradable de diseñar interfaces que no requieren JavaScript), también podría diseñar de esta manera.
Por esta razón, estoy emocionado de que los “estilos de alcance” estén regresando un poco en las discusiones sobre estándares.
Recuerdo una idea antigua (¿que tal vez incluso se incluyó en los navegadores por un minuto?) <style scoped>
bloque directamente en el HTML y cualquiera que sea el elemento principal, los estilos se limitaron a ese elemento principal. Eso fue genial, ojalá pudiéramos tener eso de nuevo.
Pero parece que las cosas más nuevas (aquí está la propuesta original de Miriam) tienen algunas cosas más inteligentes que ese concepto básico no cubre, como poder establecer un límite inferior además de un límite superior, lo que hace posible el alcance ” estilos en forma de dona” en el DOM (un término de Nicole Sullivan). Pase lo que pase, la sombra de estilos con alcance sin DOM sin herramientas es enorme.