CSS Evolution: Modern Web Styling

Rate this content
Bookmark

En un mundo de componentes escritos en JavaScript, CSS se convirtió en un ciudadano de segunda clase. Pero olvida los memes. En esta charla, Tony muestra cómo el CSS moderno puede ser el mejor amigo de los desarrolladores de JavaScript, ahorrando tiempo de codificación y evitando los tipos de problemas de estilo que solían atormentar a los desarrolladores de JS y que han resultado en una miríada de abstracciones de CSS competidoras, que quizás ya no sean tan necesarias.

This talk has been presented at JSNation US 2024, check out the latest edition of this JavaScript Conference.

Tony Alicea
Tony Alicea
11 min
21 Nov, 2024

Comments

Sign in or register to post your comment.
  • Perspective
    Perspective
    Great talk! Everything was explained to cleanly, it is indeed time for devs to fall in love with CSS.
Video Summary and Transcription
Hola, soy Tony Alisea, un desarrollador con más de 25 años de experiencia. CSS ganó en los 90 debido a su separación de estructura y presentación, concepto de cascada y selectores poderosos. Los desarrolladores de JavaScript se desenamoraron de CSS cuando comenzaron a usar frameworks para construir el DOM. En lugar de mirar el DOM de manera holística, comenzamos a pensar en términos de componentización. CSS ha seguido creciendo y añadiendo características extraordinarias, como anidamiento de CSS y capas de cascada. Las capas de CSS dan más control sobre la estratificación de estilos CSS. Las consultas de contenedor nos permiten responder al tamaño del contenedor en lugar del viewport. La pseudo clase has permite seleccionar elementos padre. CSS ahora es más amigable con los componentes y mejora la experiencia del usuario.

1. Introduction to CSS and Its Challenges

Short description:

Hola, soy Tony Alisea, un desarrollador con más de 25 años de experiencia. CSS ganó en los 90 debido a su separación de estructura y presentación, concepto de cascada y selectores poderosos. Sin embargo, los desarrolladores de JavaScript dejaron de amar CSS cuando comenzaron a usar frameworks para construir el DOM.

Hola, soy Tony Alisea. He sido desarrollador por más de 25 años. He enseñado a más de 350,000 estudiantes los fundamentos web en mis cursos en Udemy así como en Pluralsight Teachable. Puedes encontrar mi material en mi canal de YouTube. Puedes encontrar enlaces a todo lo que hago, incluidos mis cursos en TonyAlisea.dev. También puedes encontrar ayuda para todo lo que hace tu equipo de desarrollo en TheSmithGroup.com.

Ahora, este curso es Es Hora de Enamorarse de CSS. Ahora, esto. Ahora, retrocedamos en el tiempo un momento a los 90. Ahora, no solo existía CSS como un concepto para cómo estilizar documentos HTML. De hecho, había muchas ideas diferentes, diferentes estándares posibles que se habían propuesto. Pero al final, CSS ganó. Ahora, y hay razones para eso. Ahora, ¿cuáles son algunas de las razones? Ahora, hay razones por las que los desarrolladores amaban CSS. Las personas que trabajaban en sitios web amaban CSS. Por ejemplo, estaba la separación de estructura y presentación. HTML y CSS. Ahora esto, estaba la idea de la cascada. Múltiples hojas de estilo podían aplicarse a un solo documento o múltiples reglas a un solo documento, y se combinarían en cascada. Para formar la presentación final. Ahora, cosas como los selectores, el poder de los selectores para poder seleccionar diferentes elementos dentro del documento, ese poder realmente ayudó a CSS a ganar sobre los conceptos competidores. Ahora, esto ahora esto.

Entonces, cuando pensamos en CSS, entonces estábamos mirando el estilo del DOM de manera holística. Estás mirando todo el documento, toda la estructura HTML, todo el árbol DOM haciendo selecciones y luego estilizando. Ahora, hay cosas como CSS zen garden donde se presenta un solo archivo HTML y luego las personas pueden enviar varios CSS, varias hojas de estilo para luego. Ahora, esto es ese documento de una variedad de maneras muy diferentes, mostró el poder de CSS. Ahora, esto CSS ganó debido a los problemas que resolvió y cómo los resolvió. Pero luego sucedió algo. Ahora, esto los desarrolladores de JavaScript dejaron de amar CSS, los memes comenzaron, comenzaron a hablar sobre lo difícil que es CSS, lo difícil que eran las cosas de hacer en él. Pero ¿por qué?

Ahora, esto la gran parte es debido al cambio cuando pasamos de escribir nuestro HTML y nuestro CSS a usar cosas como frameworks de JavaScript para construir el DOM.

2. The Evolution of CSS and Its Powerful Features

Short description:

En lugar de mirar el DOM de manera holística, comenzamos a pensar en términos de componentización. Los desarrolladores de JavaScript dejaron de amar CSS debido a conflictos con frameworks de JavaScript. Sin embargo, CSS ha seguido creciendo y añadiendo características extraordinarias, como CSS nesting y cascade layers.

En lugar de mirar el DOM de manera holística, comenzamos a pensar en términos de componentización. Ahora, todo es un componente y un componente realmente es un subárbol del DOM. Ahora, esto no es mirar toda la página presentada al usuario. En cambio, estamos pensando en pequeños subárboles y luego poder mover esos sub árboles dentro de diferentes estructuras DOM, componentes, componente que el componente es fundamentalmente diferente de mirar el DOM de manera holística.

Así que la cuestión es que los desarrolladores de JavaScript que trabajan en frameworks de JavaScript que estaban construyendo el DOM para ellos, las cosas que no les gustaban eran las mismas cosas que la gente amaba de CSS por esa separación de estructura y presentación. Los desarrolladores de JavaScript dirían, bueno, no queremos pasar nuestro tiempo a veces en JavaScript y a veces en CSS y a veces en HTML component cascade. Bueno, eso era un problema debido a mis componentes. Si muevo mi componente de un contenedor a otro contenedor, las reglas de cascada se anulan y tengo que pensar en lo que podría suceder con el CSS en esa página. Selectores que requerían que la estructura del DOM fuera consistente. Y si estoy haciendo un componente y moviéndolo, entonces quién sabe cómo se verá finalmente el DOM realmente.

Como resultado del cambio radical, pasamos de HTML que podría verse así, donde estamos definiendo nuestras clases y usándolas junto con nuestra estructura, las cosas que se están volviendo populares ahora como esto, donde solo nos enfocamos en un elemento particular y solo los estilos para ese elemento, de alguna manera haciendo lo opuesto a lo que CSS estaba destinado, y un inconveniente negativo es enfocarse más en lo que el CSS necesita ser. Y solo agregando un div para que termine obteniendo un componente que se vea como el prototipo. Pero CSS ha seguido creciendo y añadiendo algunas características realmente extraordinarias. Es hora de que el desarrollador moderno de JavaScript, el desarrollador moderno de front end se enamore de CSS. Nuevamente, ¿cuáles son algunas características del CSS moderno que funcionan tan bien ahora? Con la componentización del DOM. Bueno, veamos solo algunos ejemplos. Uno es CSS nesting. Anteriormente, podríamos decir, bueno, tengo una clase de notificación para mi componente de notificación. Y luego, si es realmente una notificación de éxito, entonces agrego una clase secundaria en eso. Y todos esos están separados en tus reglas CSS. Pero ahora, con CSS nesting soportado nativamente que está en el navegador, en la especificación CSS misma, podemos mostrar en la forma en que escribimos nuestro CSS que todas estas reglas están conectadas entre sí, que son parte del mismo conjunto de reglas. Ahora, realmente es solo azúcar sintáctica, lo que significa que no agrega nada que no se pudiera hacer antes, pero es una forma mucho más agradable de escribir tu CSS, especialmente cuando estás escribiendo CSS para un componente, cuando estás escribiendo otra característica, cascade layers, la palabra clave at layer. Esto me permite agrupar mis diferentes reglas CSS y luego ordenarlas según su propia especificidad, pero no realmente especificidad, sino ordenando qué capa debería tener mayor precedencia en la cascada.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Instalar Nada: Interfaces de Aplicación con APIs Nativas del Navegador
JSNation 2024JSNation 2024
31 min
Instalar Nada: Interfaces de Aplicación con APIs Nativas del Navegador
This Talk introduces real demos using HTML, CSS, and JavaScript to showcase new or underutilized browser APIs, with ship scores provided for each API. The dialogue element allows for the creation of modals with minimal JavaScript and is supported by 96% of browsers. The web animations API is a simple and well-supported solution for creating animations, while the view transitions API offers easy animation workarounds without CSS. The scroll snap API allows for swipers without JavaScript, providing a smooth scrolling experience.
Construir un Sistema de Diseño con React y Tailwind CSS
React Summit 2022React Summit 2022
27 min
Construir un Sistema de Diseño con React y Tailwind CSS
Top Content
This Talk discusses design systems and how to build one using React and Tailwind CSS. Tailwind CSS provides utility classes for building complex layouts without writing CSS rules. Custom colors can be added to the Tailwind CSS config file, and font styles and text sizes can be customized. The entire Tailwind CSS configuration can be customized to meet specific requirements. Base styles can be added to the config file itself using a plugin. Reusable components can be created with Tailwind CSS, allowing for easy customization of size and color.
Ampliando los límites de la codificación de video en navegadores con WebCodecs
JSNation 2023JSNation 2023
25 min
Ampliando los límites de la codificación de video en navegadores con WebCodecs
Top Content
This Talk explores the challenges and solutions in video encoding with web codecs. It discusses drawing and recording video on the web, capturing and encoding video frames, and introduces the WebCodecs API. The Talk also covers configuring the video encoder, understanding codecs and containers, and the video encoding process with muxing using ffmpeg. The speaker shares their experience in building a video editing tool on the browser and showcases Slantit, a tool for making product videos.
If You Were a React Compiler
React Summit US 2024React Summit US 2024
26 min
If You Were a React Compiler
Top Content
In this talk, the speaker aims to build an accurate understanding of how the new React compiler works, focusing on minimizing re-renders and improving performance. They discuss the concept of memoization and how it can be used to optimize React applications by storing the results of function calls. The React compiler automates this process by analyzing code, checking dependencies, and transpiling JSX. The speaker emphasizes the importance of being aware of memory concerns when using memoization and explains how the React compiler detects changes in function closure values. They also mention the Fibre Tree, which drives the reconciliation process and helps optimize performance in React. Additionally, the speaker touches on JSX transpilation, compiler caching, and the generation of code. They encourage developers to understand the code generated by the compiler to optimize specific sections as needed.
Cómo lograr la composición de diseño en React
React Summit 2022React Summit 2022
8 min
Cómo lograr la composición de diseño en React
This talk discusses achieving layout composition in React using Bedrock Layout Primitives. By componentizing CSS layout, complex layouts can be achieved and reused across different components. The talk also covers the challenges of achieving complex layouts, such as card lineups, and provides solutions for maintaining alignment and responsiveness. The BedrockLayout primitive library simplifies web layouts and offers flexibility in composing layouts.

Workshops on related topic

Escribiendo Módulos Universales para Deno, Node y el Navegador
Node Congress 2022Node Congress 2022
57 min
Escribiendo Módulos Universales para Deno, Node y el Navegador
Workshop
Luca Casonato
Luca Casonato
En este masterclass te guiaré en la escritura de un módulo en TypeScript que pueda ser utilizado por usuarios de Deno, Node y los navegadores. Explicaré cómo configurar el formato, linting y pruebas en Deno, y luego cómo publicar tu módulo en deno.land/x y npm. Comenzaremos con una breve introducción sobre qué es Deno.