¿Hay demasiado CSS ahora? | trucos CSS
Como desarrolladores front-end, hemos pedido muchas cosas a lo largo de los años: formas de centrar las cosas en CSS, encapsular estilos, establecer la relación de aspecto de un elemento, obtener un control más preciso sobre nuestros colores, seleccionar un elemento en función de sus propiedades secundarias. , administrar capas de especificidad, permitir que los elementos coincidan con el ancho de sus padres... la lista sigue y sigue.
Y ahora que obtuvimos todo lo que queríamos y más, algunos de nosotros nos preguntamos: ¿lo tenemos más? demasiado ¿CSS?
los tiempos oscuros
Si, como yo, te metiste en el desarrollo web en la infancia de CSS, la idea de tener demasiado parece absurda.
En el pasado, casi toda la descripción del trabajo de un desarrollador frontend consistía en trabajar con restricciones de CSS: el truco clearfix para borrar flotantes, el truco de relleno al 100 % para hacer divisiones cuadradas, sin mencionar la aplicación semiarbitraria de propiedades no relacionadas para engañar a Internet. Explorer para seguir sus sugerencias.
En ese momento, el navegador era un enemigo insidioso que tenía que ser derrotado a través de hechizos arcanos y astutos. Hoy, la propiedad perfecta espera y es solo copiar y pegar en MDN.
La nueva era de CSS
Pero las cosas son muy diferentes hoy en día: no solo las cosas se mueven mucho más rápido, sino también los proveedores de navegadores. realmente me importa por hacer felices a los desarrolladores! Lo sé, yo tampoco podía creerlo. Pero corro la edición anual estado CSS encuesta de desarrolladores (que es abierto ahora, por cierto, ¡ve a buscarlo!), y sé con certeza que los equipos de desarrollo de navegadores están utilizando los resultados de la encuesta (entre muchos otros puntos de datos) para informar su hoja de ruta.
Además, Google también ayudó a financiar mi trabajo de investigación e incluso me contrató. Lea Verú tomar la iniciativa en la elección de las preguntas de la encuesta de este año.
No es solo Google. Se ha puesto de moda criticar a Safari y a Apple en general (a veces con razón), pero no se puede negar lo apasionado que le gusta a alguien Jen Simmons se trata de escuchar a los desarrolladores y mejorar la web.
Y no son solo los proveedores de navegadores los que mejoran el CSS; incluso colaboran en las líneas de batalla con iniciativas como Interoperabilidad 2023 para ayudar a reducir las inconsistencias e incompatibilidades entre navegadores.
¿Demasiado de una cosa buena?
El resultado de todo esto es que ahora nos enfrentamos a una vergüenza de riquezas en CSS, y puede ser difícil ponerse al día. CSS Grid comenzó a ser compatible con los principales navegadores hace casi cinco años, pero todavía verifico una referencia cada vez que lo uso. Y aunque se ve genial, todavía no lo he probado.
Durante el proceso de selección qué características de CSS incluir o no en el estado de CSSLea y yo consideramos muchas funciones, pero también rechazamos algunas. Algunos ejemplos de la función nosotros no incluyen son:
- los
linear()
función de aliviopermitiéndole definir curvas de relieve con más detalle. - los
env()
funciónque le permite utilizar variables definidas por el navegador o dispositivo. - los
scrollbar-width
propiedad que ayuda a controlar la apariencia de la barra de desplazamiento. - los
margin-trim
propiedad que le permite controlar cómo se comportan los campos secundarios de un contenedor.
Todos estos son potencialmente muy útiles y habrían sido una gran noticia durante la sequía de CSS de los últimos años. Pero en el contexto actual, tienen que luchar por la atención con mensajes mucho más grandes, como un selector has() o anidamiento de CSS.
no estoy emocionado
Como Sylvester Bistrovic escribeél "no está tan entusiasmado con todas estas nuevas características de CSS". Esto resonó en Twitter, p Sara Sweidan afirmando que lo que le importa es "la practicidad, no lo brillante que se ve una característica en este momento".
Esto puede parecer una actitud negativa, pero creo que es comprensible. ¡No se puede esperar que nadie se mantenga al día con tantas características nuevas!
Otra consecuencia no intencionada (¿o tal vez intencionada?) es que cuanto más complejo se vuelve el CSS, más sube el listón para cualquier empresa nueva que busque desarrollar un motor de navegador, sin mencionar la carga adicional cuando se trata de mantener y documentar todos estos nuevos caracteristicas.
anulación de CSS
También existe una preocupación muy válida de que CSS pueda ramificarse en áreas que no son adecuadas para su manejo. Esta es otra cosa que señaló Sarah Sweidan cuando reaccionó a la nueva implementación experimental de CSS Toggles (aqui hay un ticket que lo comenta):
Muchos han señalado de manera muy razonable que este tipo de comportamiento se manejaría mejor con un nuevo elemento HTML, en lugar de administrar el estado de alternancia solo a través de CSS, y que CSS puede no ser el mejor medio para garantizar que los problemas de accesibilidad se aborden correctamente.
Cuando CSS se hace cargo de algo que antes manejaba JavaScript, generalmente se considera algo bueno, ya que a menudo reduce la cantidad de código que debe cargar el navegador. Así que soy cautelosamente optimista acerca de CSS Toggles y confío en que el Grupo de trabajo de CSS abordará adecuadamente las inquietudes de la comunidad. Pero aún puede llegar un día en que comencemos a preocuparnos de que CSS se expanda más allá de sus límites y entre en las responsabilidades de HTML y JavaScript.
Nuevas expectativas
Y tal vez eso es lo que debe cambiar: tal vez debamos abandonar la expectativa de que los desarrolladores de CSS deben saber todo de CSS?
Esta expectativa proviene de los días en que CSS era una ocurrencia tardía, esa pequeña y molesta sintaxis que tenía que aprender para hacer que su botón fuera azul y en negrita tal como lo pedía el cliente. Pero creo que tenemos que aceptar que el CSS actual puede ser simplemente demasiado extenso para que lo domine una sola persona, especialmente además de otras tareas de front-end.
Me gusta michelle barker lo pone:
Y ahí es donde termino aterrizando yo mismo. He llegado a un acuerdo con el hecho de que probablemente nunca usaré, o ni siquiera conoceré, todas las características posibles de CSS. Y esto viene de alguien que lleva a cabo investigaciones sobre CSS!
Pero estas nuevas características sin duda serán útiles para alguien. Alguien escribirá publicaciones de blog sobre ellos, creará CodePens geniales con ellos, dará charlas sobre ellos. Este chico será un desarrollador fresco, joven y enérgico que todavía tiene todo su cabello. En otras palabras, no seré yo, y está bien.
Y tal vez le preocupe que este nuevo desarrollador se sienta abrumado por todas las cosas que tiene que aprender a la vez. Pero tenga en cuenta todas las cosas que no lo haré Necesito aprender precisamente porque ha sido reemplazado por estas alternativas más nuevas. Sé que aceptaría ese trato en cualquier momento.
Pero considere esto: en los últimos años, no solo hemos visto un gran aumento en la cantidad de dispositivos que necesitamos atender, sino que también comenzamos a darnos cuenta de que todos usamos la web de formas ligeramente diferentes, ya sea por discapacidad , contexto actual o simplemente preferencia personal. ¿No debería CSS adaptarse a esta nueva realidad?
Ahora, tengo que admitir que todo esto me hizo sentir un poco nostálgico... así que disculpe mientras limpio algunas carrozas, solo por los viejos tiempos.
Como mencioné, el año Encuesta de estado de CSS ya está abierto. Ya sea que piense que hay demasiado CSS o no, una encuesta es una excelente manera de que los desarrolladores de navegadores sepan cómo se siente, así que ve a llenarlo si tienes 10 minutos.
Deja una respuesta