CSS También Puede Hacer Eso

Rate this content
Bookmark

CSS ha evolucionado y crecido enormemente desde que se introdujo por primera vez en 1996. Hubo un tiempo en aquel entonces en el que CSS ni siquiera estaba destinado a hacer diseños, pero ese tiempo ya pasó. Hoy en día, los diseños web son prácticamente sinónimo de CSS. Además de eso, CSS ahora se puede utilizar para construir cosas que antes solo eran posibles con JavaScript. Esta charla mostrará algunas de esas características y explicará cómo construirlas tú mismo.

22 min
11 Jun, 2021

Video Summary and Transcription

Esta charla trata sobre técnicas de CSS que pueden simplificar el desarrollo web y eliminar la necesidad de JavaScript. Cubre temas como tipografía receptiva, tamaño de fuente flexible, funciones matemáticas de CSS, desplazamiento de desplazamiento, elementos pegajosos y diseño de mampostería de CSS. El orador enfatiza la importancia de comprender cómo funcionan los elementos pegajosos y destaca los posibles errores que pueden ocurrir. El diseño de mampostería de CSS se discute como una solución nativa para crear cuadrículas de mampostería en el navegador. En general, CSS proporciona soluciones flexibles para el estilo web y es una herramienta emocionante para los desarrolladores.

Available in English

1. Introducción a CSS y Tipografía Responsiva

Short description:

Hola a todos. Esta es la primera vez que participo en JS Nation y espero que todos hayan tenido un gran tiempo hasta ahora. JS Nation es la conferencia de JavaScript más grande en la nube, ¡así que naturalmente hablaré sobre CSS! Específicamente, cosas para las que solíamos necesitar JavaScript, pero que ahora se pueden simplificar usando solo CSS. Mi nombre es Hui Jing. Soy desarrollador front-end en Shopify. Esta será una charla bastante corta de 20 minutos, así que piensen en esto como algo más, oh, eso es genial, hoy aprendí nueva información. Comencemos con la tipografía responsiva. La web es divertida porque no puedes controlar el entorno en el que tu audiencia ve tus creaciones. Para el contenido textual en la web, la legibilidad y la facilidad de lectura son preocupaciones clave. La tipografía web siempre ha sido un enfoque, y a medida que se disponen de nuevas propiedades de CSS, las técnicas se han ido refinando continuamente. La primera opción son las consultas de medios, que ofrecen un control detallado sobre el tamaño del texto. La segunda opción es CALC.

Esta es la primera vez que participo en JS Nation y espero que todos hayan tenido un gran tiempo hasta ahora. Creo que es el tercer día, así que ya ha habido muchas charlas increíbles. Ahora, aguanten un poco más. Casi terminamos. Ahora, JS Nation es la conferencia de JavaScript más grande en la nube, así que naturalmente voy a hablar sobre CSS. Específicamente, cosas para las que solíamos necesitar JavaScript, pero que ahora se pueden simplificar usando solo CSS. Así que una breve introducción. Mi nombre es Hui Jing. Soy bastante simple, tanto que estos emojis aquí pintan una imagen bastante completa de quién soy como ser humano. Soy de origen chino, y si no estás familiarizado con los nombres chinos, nuestros apellidos van primero y el nombre va después, así que Hui Jing soy yo. Actualmente soy desarrollador front-end en Shopify. Trabajo diario, importante. Hay que pagar las cuentas. Así que esta será una charla bastante corta de 20 minutos, así que no espero que las personas comprendan instantáneamente todo lo que estoy tratando de cubrir aquí. Piensen en esto como algo más, oh, eso es genial, hoy aprendí nueva información. Y si alguna vez se encuentran con un caso de uso donde estas soluciones funcionen para ustedes, entonces pueden tomarse su tiempo para comprenderlas a un nivel más profundo en su propio tiempo. Así que comencemos con la tipografía responsiva. Ahora, cuando digo esto, algunos de ustedes pueden pensar que tengo una mentalidad extraña, pero para mí, la web es divertida porque no puedes controlar el entorno en el que tu audiencia ve tus creaciones. Es como si construyeras algo, pero no estás seguro de cómo otras personas lo verán. Eso es lo que lo hace emocionante. Pero para el contenido textual en la web, todavía hay una preocupación clave, independientemente de qué tipo de diseño o lo que sea que estés haciendo, y es la legibilidad y facilidad de lectura de tu contenido textual. La tipografía web siempre ha sido un enfoque para muchas personas. Y se han desarrollado una serie de técnicas a lo largo de los años, y a medida que se disponen de nuevas propiedades de CSS, muchas de estas técnicas se han ido refinando continuamente. Así que hagámoslo en el navegador, es hora de la demostración. La primera opción que tenemos son las consultas de medios, y aunque parece bastante básico, también puedes verlo como la opción más flexible, incluso hoy en día, porque tienes un control muy detallado sobre el tamaño en el que deseas que tu texto cambie en cualquier punto de ruptura de vista que especifiques. Entonces, en este ejemplo, he puesto arbitrariamente 42 y 54 como los puntos de ruptura, pero realmente es muy personalizable. Así que hagamos esto con DevTools. A medida que cambia el punto de ruptura de la vista, puedes ver cómo tu texto cambia junto con él, y solo con una serie muy básica de consultas de medios, puedes ser muy detallado. Puedo entender cómo las personas sienten que esto puede volverse un poco tedioso si hay muchos puntos de ruptura de vista diferentes de los que quieres ocuparte. Entonces, la segunda opción que estoy mostrando aquí es CALC.

2. CSS Locks: Tamaño de Fuente Flexible

Short description:

Una combinación de CALC y unidades de vista. Esta técnica permite que los tamaños de fuente crezcan y se reduzcan con el ancho de la ventana, proporcionando un escalado suave entre los tamaños mínimo y máximo definidos. Se conoce como CSS locks.

Una combinación de CALC y unidades de vista. Esta técnica fue creada por Mike Rithmuller, creo, en 2015. Tiene un par de nombres, creo. Algunas personas lo llaman bloqueos de CSS, es posible que lo hayas visto cubierto en otros artículos. Básicamente, esta técnica permite que los tamaños de fuente crezcan y se reduzcan con el ancho de la ventana. Estas son las unidades de vista aquí. Y si te muestro, puedes ver que es como un crecimiento y reducción gradual. Pero luego, en este punto, deja de reducirse, en algún lugar a lo largo de este punto, deja de crecer. Por eso, nuevamente, es una combinación de consultas de medios CALC y unidades de vista, porque hay un límite en los tamaños máximo y mínimo. Pero cualquier cosa entre eso, el tamaño de fuente se ajustará suavemente. Supongo que por eso lo llaman bloqueos de CSS, porque estás bloqueando el tamaño mínimo y máximo.

3. Funciones Matemáticas CSS y Desplazamiento con Scroll

Short description:

La función clamp nos permite seleccionar un valor dentro de un rango entre un valor mínimo y máximo definido. Es útil si el valor preferido depende de algo que no controlas directamente, como las unidades de vista. Sin embargo, el uso de unidades de vista o limitar los tamaños de texto con funciones matemáticas puede hacer que los usuarios no puedan escalar el texto al 200% de su tamaño original, lo cual es un fallo de WCAG. El soporte del navegador para las funciones matemáticas es bueno, con aproximadamente un 91% de soporte general.

Para una explicación detallada de esta fórmula exacta, eventualmente... si lo miras, te das cuenta de que puedes hacer el cálculo de 48 menos 24 matemáticamente. Pero esta fórmula se corresponde con los tamaños de fuente mínimo y máximo de tu vista. Hay una explicación muy detallada, pero no voy a entrar en ella aquí porque no hay suficiente tiempo. Te sugiero que leas el artículo de Mike, al que he enlazado al final de la presentación.

Recientemente, hemos tenido una serie de funciones matemáticas que ya son compatibles con los principales navegadores. Entre ellas, tenemos la función clamp, que nos permite seleccionar un valor dentro de un rango entre un valor mínimo y máximo. Esto suena familiar, ¿verdad? Es casi lo que describí para la opción de bloqueos de CSS de Mike. Así es como se ve la función. Toma tres parámetros. El primero es el valor mínimo. Y el último es el valor máximo. Lo que tienes en medio es lo que llamamos el valor preferido. Esta función es útil si el valor preferido depende de algo que no controlas directamente. Por ejemplo, las unidades de vista. Si quieres que tu fuente crezca y se encoja, pero sin volverse demasiado pequeña o demasiado grande, eso es exactamente lo que hace la función clamp. Es similar a la opción dos, aunque con una sintaxis mucho más simplificada.

Una cosa a tener en cuenta al usar unidades de vista o limitar los tamaños de texto con funciones matemáticas es que puede, no al 100% pero puede, hacer que los usuarios no puedan escalar el texto al 200% de su tamaño original, lo cual es un fallo de WCAG. Por lo tanto, es esencial probarlo con Zoom. Cuando digo Zoom, me refiero a esto. Zoom. Solo para asegurarte de que no estás fallando en ninguna prueba de accesibilidad. En cuanto al soporte del navegador para las funciones matemáticas, parece muy bueno. Estadísticamente, es aproximadamente un 91% de soporte general. Así que pruébalo si tienes este caso de uso en particular. Bien, sigamos adelante. Hablemos sobre el desplazamiento con scroll.

4. CSS Scroll Snapping and Sticky Elements

Short description:

El CSS para el desplazamiento con scroll ha pasado por modificaciones, con las propiedades principales siendo scroll snap type para el contenedor y scroll snap align para el elemento hijo. Scroll snap type se puede establecer como obligatorio o de proximidad, determinando cuán estrictamente el navegador se ajusta a un punto. El soporte para el desplazamiento con scroll es casi del 94%, incluso en IE con la sintaxis antigua. Los elementos pegajosos se lograban anteriormente con JavaScript, pero ahora position sticky es ampliamente compatible, eliminando la necesidad de cálculos complejos.

El CSS para el desplazamiento con scroll ha estado presente durante un tiempo. Pero la especificación ha pasado por varias modificaciones y las propiedades han cambiado un poco desde la primera iteración. Hoy en día, las propiedades principales son scroll snap type para el contenedor y scroll snap align para el elemento hijo.

Veamos esto nuevamente en una demostración en vivo. Para scroll snap type, que se aplica al contenedor, puedes establecer un valor obligatorio o de proximidad. Esto determina cuán estrictamente el navegador se ajustará a un punto de ajuste. Aquí lo he ajustado como obligatorio. El navegador siempre se ajustará a un punto de ajuste, lo cual significa que solo hago clic una vez y se desplaza al siguiente elemento. También funciona con el teclado. Es posible que mi teclado sea un poco más ruidoso, por lo que es posible que puedas escucharlo mejor. También puedes hacer el desplazamiento con scroll en el eje x o en el eje y. Si quieres hacerlo en el eje y, solo modificaré esto un poco. Y listo, también puedes hacerlo verticalmente. Pero si cambio el valor a proximidad, verás que el ajuste es mucho más suelto. Si no puedes escuchar, simplemente toco, toco, toco, toco, toco, ajuste. Toco, toco, toco, toco, ajuste. Toco, toco, toco, ajuste. Creo que depende del navegador el punto exacto donde ocurre el ajuste. Pero parece que ocurre cuando dejamos de desplazarnos a unos cientos de píxeles del punto de ajuste. Así que tienes esta opción más flexible para el desplazamiento con scroll.

Pero si este es el tipo de interacción que deseas diseñar, ya no es necesario utilizar una biblioteca de JavaScript, ya que sé que hay varias bibliotecas de desplazamiento con scroll disponibles. En cuanto al soporte, es incluso mejor que las funciones matemáticas, con casi un 94%. Incluso IE tiene cierto soporte, aunque con la sintaxis antigua. Tal vez varíe según el caso. Pero si necesitas algo como esto, en lugar de recurrir a una solución basada en JavaScript, tal vez le des una oportunidad a esta solución nativa de CSS.

A continuación, tenemos los elementos pegajosos. Este es un patrón que encuentro muy a menudo en estos días. Y aún recuerdo los días antes de que position sticky fuera ampliamente compatible. Necesitábamos usar JavaScript porque necesitábamos calcular la posición del elemento, averiguar dónde debía estar y luego fijarlo allí. Pero luego surgieron todo tipo de problemas porque, ya sabes, las cosas se superponían.

5. Position Sticky and Offset Values

Short description:

Position sticky es una combinación entre cajas posicionadas de forma relativa y cajas posicionadas de forma fija. Para que funcione, se debe definir un valor de desplazamiento, como arriba, abajo, izquierda o derecha. Sin un valor de desplazamiento, el elemento pegajoso no se mantendrá. Al establecer el valor de desplazamiento, el elemento se mantendrá pegado hasta que alcance el borde opuesto de su bloque contenedor. Sin embargo, pueden haber errores, como el posicionamiento izquierdo y derecho que no funciona como se espera.

Todo esto era muy costoso y agotador, para ser honesto. Hoy en día, tenemos un soporte muy, muy bueno. Si simplemente ignoráramos esa columna de IE, el soporte para position sticky, ya sabes, está en todas partes. El principal problema con position sticky que veo hoy en día cuando la gente intenta usarlo es como por qué no funciona. ¿Por qué no se mantiene pegado? Y descubrí que la mayoría de las veces, se debe a algunas lagunas en la comprensión de cómo funciona precision sticky. Así que déjame tratar de explicarlo.

Una caja con posición pegajosa es como una combinación entre una caja con posición relativa y una caja con posición fija. Entonces, una caja con posición relativa fluye, ya sabes, puedes desplazarte, desplazarte, desplazarte, va junto. Una caja con posición fija simplemente se queda allí como un tic. Para que position sticky funcione, no es suficiente con simplemente aplicarle position sticky y listo, no, no, no. Debes tener un valor de desplazamiento, un valor de desplazamiento que puede ser arriba, abajo, izquierda o derecha, porque este elemento pegajoso se tratará como una caja con posición relativa hasta que cruce un umbral para el contenedor dentro del cual se está desplazando. Así que debe haber este punto donde se pegue. Si no defines este valor de desplazamiento, simplemente no se pegará, ¿sabes? Entonces, a medida que me desplazo, ahora lo he configurado en arriba 1m, solo para que sea obvio, como podría cambiarlo a cero para las personas que están como, argh, hay una brecha. Así que cámbialo a cero para que se pegue correctamente. Se quedará pegado en ese punto de umbral hasta que alcance el borde opuesto de su bloque contenedor. También podemos cambiar esto a abajo, y luego se pegará en la parte inferior, desplázate, desplázate, desplázate, se pega. También funciona en izquierda y derecha. Y no lo hagamos flexible. Cambiemos esto a izquierda, derecha. Oh, hey, no está funcionando realmente. Interesante. Bueno, acabo de mostrarte un error muy común, ¿por qué no funcionó para izquierda y derecha? Es más fácil para mí mostrarlo usando el ejemplo vertical debido al tamaño. Así que hagamos esto. Altura, y hagámoslo como 800. Y luego, para que puedas ver la altura, démosle un borde. Tal vez un borde de 2. Ok, así que hay este borde negro, ¿verdad? Y lo hice 800 porque, como, este contenedor es el padre de mis cajas aquí.

6. Understanding Sticky Elements

Short description:

Si tu elemento pegajoso ya ha alcanzado el borde del bloque contenedor, es posible que no parezca pegajoso en absoluto. Es solo que el bloque contenedor se está desplazando. Esto es una de las cosas complicadas que creo que las personas encuentran cuando usan sticky por primera vez. Mi sugerencia es que te tomes el tiempo para comprender realmente cómo funciona.

Y claramente tengo más contenido que 800. Ahora, si quiero hacerlo en la parte superior... No parece que se esté pegando en absoluto, ¿verdad? Intentemos con 1000. La razón por la que no se pega, no es que no se pegue, en sí. Veamos si puedo explicarlo correctamente. Si tu elemento pegajoso ya ha alcanzado el borde del bloque contenedor, es posible que no parezca pegajoso en absoluto. Es solo que el bloque contenedor se está desplazando. Así que voy a cambiar esto de nuevo a 800 donde parece que no hay pegado involucrado. Es como si no hubiera nada a lo que realmente se pueda pegar porque antes de que pueda alcanzar el borde, el bloque contenedor ya se ha ido. Así que se vuelve más obvio cuando el contenedor es más grande que, oh sí, hay algo de pegado sucediendo. Entonces, esto es una de las cosas complicadas que creo que las personas encuentran cuando usan sticky por primera vez. Mi sugerencia es que te tomes el tiempo para comprender realmente y descubrir cómo funciona. Sería genial si pudieras probar estos valores por tu cuenta en las herramientas de desarrollo, tal vez. También escribí sobre el posicionamiento en mi blog antes y he enlazado varios artículos de diferentes autores que explican el pegado a su manera. Esto se debe a que creo que todos entienden esto y lo comprenden de manera ligeramente diferente. Entonces, si lo que dije hoy no tiene sentido para ti, prueba una explicación diferente hasta que encuentres la que se pegue. Ese es solo mi consejo.

7. CSS Masonry Layout

Short description:

Lo último de lo que quiero hablar es el diseño de mampostería. Originalmente fue un diseño de JavaScript creado por David DiSandro en 2009. Dada su popularidad, este método de diseño se discutió bastante en las reuniones del grupo de trabajo de DCS. Tenemos un borrador del editor de Grid Level 3 que especifica cómo se puede hacer la mampostería de forma nativa en el navegador solo con CSS. Antes de la mampostería en CSS, podemos lograr algo similar con el diseño de varias columnas. Sin embargo, el diseño de varias columnas tiene limitaciones y una implementación inconsistente en diferentes navegadores. La mampostería en CSS te permite hacerlo en las direcciones del eje x y del eje y, aprovechando las capacidades de la cuadrícula del navegador. El valor de la mampostería se aplica a las propiedades gridTemplateRows o gridTemplateColumns. Con la mampostería en CSS, puedes lograr una mejor expansión y flujo entre columnas.

De acuerdo, de acuerdo, se nos acaba el tiempo. Lo último de lo que quiero hablar es el diseño de mampostería. Originalmente fue un diseño de JavaScript creado por David DiSandro en 2009. En ese entonces, era muy popular, Tumblr lo utiliza, Pinterest lo utiliza, algunas personas lo llaman el diseño de Pinterest, así que buen trabajo, Pinterest, supongo. Pero dado su popularidad entre los diseñadores y desarrolladores web, este método de diseño se discutió bastante en las reuniones del grupo de trabajo de DCS. Por eso tenemos un borrador del editor de Grid Level 3 que especifica cómo se puede hacer la mampostería de forma nativa en el navegador solo con CSS.

Es hora de la demostración. Pero antes de la mampostería en CSS, porque en realidad no es muy compatible en este momento, veamos, sí, solo está implementado en Firefox detrás de una bandera, así que debes activar esa bandera para poder verlo o incluso probar mi demostración en este momento. Así que digamos que no tienes la mampostería en CSS, podemos lograr algo similar con el diseño de varias columnas, solo que el diseño de varias columnas tiene algunas limitaciones. Su implementación también es un poco inconsistente en diferentes navegadores en este momento, de hecho.

Diría que el diseño de varias columnas es más adecuado para contenido en línea, como líneas de texto, en lugar de cajas discretas como las que estoy usando aquí. Diría que hay inconsistencias porque mi salto de línea aquí no está funcionando, pero si abro esto en Chrome. Olvídalo. Así que cuando lo usamos, el diseño de varias columnas fluye en la dirección de bloque y luego las columnas se vuelven a organizar. Entonces tu contenido realmente fluye de arriba a abajo y luego de izquierda a derecha. Así que si el orden es importante para ti, he numerado estas cajas para que puedas verlo. Tal vez las primeras cosas en tu cuadrícula sean importantes, pero no quieres que estén en la parte inferior. No puedes controlar esto realmente con el diseño de varias columnas. Y qué más, podrías, si quieres abarcar tus elementos en varias columnas, puedes hacerlo con el diseño de varias columnas, pero como dije, la implementación del diseño de varias columnas no es muy completa en los navegadores. Así que ahora mismo todo lo que tienes es algo así. El salto de línea se ve extraño, un poco defectuoso, así que digamos que el diseño de varias columnas es solo un tercio del camino para la mampostería, ¿verdad? Así que con la mampostería en CSS, puedes hacerlo en ambas direcciones, en el eje x y en el eje y, porque la mampostería en CSS se basa en las capacidades de cuadrícula del navegador, y su sintaxis es bastante similar a cómo usaríamos SubGrid, que es parte de Grid Level 2. El valor de la mampostería se aplica a la propiedad gridTemplateRows o gridTemplateColumns, dependiendo de la dirección que desees seguir. Para esta dirección horizontal aquí, mis alturas de fila están definidas con filas de plantilla aquí. Puse esta repetición porque soy perezoso. Y luego puedes dejar las columnas libres para ser mamposteadas. Básicamente, las columnas no están alineadas como en una cuadrícula normal, sino que están mamposteadas, como sea que se diga. Entonces, definitivamente puedes abarcar mucho mejor. Como esto es horizontal, estoy usando gridRow para esto. Abarcar dos, abarcar tres se ve bien. Las cosas fluyen juntas.

8. Diseño de Mampostería CSS y Flexibilidad

Short description:

Si deseas utilizar el diseño de mampostería, CSS Masonry tiene propiedades de alineación que funcionan de manera similar a otras propiedades de alineación de cajas. Puedes utilizar la propiedad de alineación de pistas para empujar los elementos hacia abajo, hacia arriba o al centro. El cambio de dirección en el diseño de mampostería requiere el uso de la propiedad de columna para abarcar. La implementación de CSS Masonry todavía está en sus primeras etapas y se esperan errores. Actualmente está disponible detrás de una bandera en Firefox. CSS proporciona soluciones flexibles para una variedad de situaciones, lo que lo convierte en una herramienta emocionante para el estilo web.

Si deseas hacer la dirección opuesta, verás que las columnas y las filas están invertidas, por lo que ahora mis filas son las que están siendo mamposteadas. Una de las grandes cosas sobre grid y flexbox son las propiedades de alineación. Naturalmente, CSS Masonry también tiene propiedades de alineación relacionadas con la mampostería y utilizan el mismo valor que las otras propiedades de alineación de cajas, así que no hay nada especialmente nuevo que descubrir.

Entonces, para este diseño de mampostería vertical que tengo aquí, hagamos algo así. Digamos que mi contenedor es realmente, realmente largo. Vamos a utilizar 150 unidades de altura de vista. Así que, ya sabes, un contenedor largo. Puedes utilizar la propiedad de alineación de pistas. Tenemos alinear pistas y justificar pistas. Nuevamente, dependiendo de la dirección que desees seguir, alinear pistas es para la dirección de bloque. Puedo empujarlos hacia abajo, hacia arriba, empujarlos al centro. Estas propiedades de alineación también funcionan si deseas utilizar el diseño de mampostería. Y por supuesto, también puedes hacer lo de abarcar, excepto que esta vez utilizarías la columna porque la dirección cambió, es grid plus plus, ¿verdad?

Actualmente, el grupo de trabajo está buscando comentarios sobre la implementación, todavía está en sus primeras etapas. Estoy seguro de que también hay errores en esta implementación de Firefox, así que hay muchos aspectos a considerar antes de que esté listo para producción. Si estás utilizando Firefox, esta función está detrás de una bandera para que puedas probarla por ti mismo. Regresemos a mis diapositivas, esto es el final, hombre. Como amante autoproclamado de CSS, debo decir que lo que me atrae de CSS es que no hay una única forma correcta de hacer las cosas. Es lo suficientemente flexible como para adaptarse a una variedad de situaciones. No puedes modificar el marcado, no te preocupes. Probablemente una combinación de propiedades de CSS puede solucionar el problema. Así que hay realmente muchos desarrollos emocionantes en CSS, lo que nos brinda más herramientas para estilizar la web. Así que espero que la próxima vez que se presente alguno de estos casos de uso para ti, en lugar de optar por una solución basada en JavaScript, pruebes la solución de CSS. Estos son los recursos. Compartiré estas diapositivas con todos. Hay un enlace en el pie de página. Gracias. Muchas gracias por escuchar la charla de CSS en la conferencia de JavaScript más grande en la nube.

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

Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Scaling Up with Remix and Micro Frontends
Top Content
Do you have a large product built by many teams? Are you struggling to release often? Did your frontend turn into a massive unmaintainable monolith? If, like me, you’ve answered yes to any of those questions, this talk is for you! I’ll show you exactly how you can build a micro frontend architecture with Remix to solve those challenges.
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Full Stack Components
Top Content
Remix is a web framework that gives you the simple mental model of a Multi-Page App (MPA) but the power and capabilities of a Single-Page App (SPA). One of the big challenges of SPAs is network management resulting in a great deal of indirection and buggy code. This is especially noticeable in application state which Remix completely eliminates, but it's also an issue in individual components that communicate with a single-purpose backend endpoint (like a combobox search for example).
In this talk, Kent will demonstrate how Remix enables you to build complex UI components that are connected to a backend in the simplest and most powerful way you've ever seen. Leaving you time to chill with your family or whatever else you do for fun.
JSNation Live 2021JSNation Live 2021
29 min
Making JavaScript on WebAssembly Fast
Top Content
JavaScript in the browser runs many times faster than it did two decades ago. And that happened because the browser vendors spent that time working on intensive performance optimizations in their JavaScript engines.Because of this optimization work, JavaScript is now running in many places besides the browser. But there are still some environments where the JS engines can’t apply those optimizations in the right way to make things fast.We’re working to solve this, beginning a whole new wave of JavaScript optimization work. We’re improving JavaScript performance for entirely different environments, where different rules apply. And this is possible because of WebAssembly. In this talk, I'll explain how this all works and what's coming next.
React Summit 2023React Summit 2023
24 min
Debugging JS
Top Content
As developers, we spend much of our time debugging apps - often code we didn't even write. Sadly, few developers have ever been taught how to approach debugging - it's something most of us learn through painful experience.  The good news is you _can_ learn how to debug effectively, and there's several key techniques and tools you can use for debugging JS and React apps.

Workshops on related topic

React Day Berlin 2022React Day Berlin 2022
86 min
Using CodeMirror to Build a JavaScript Editor with Linting and AutoComplete
Top Content
WorkshopFree
Using a library might seem easy at first glance, but how do you choose the right library? How do you upgrade an existing one? And how do you wade through the documentation to find what you want?
In this workshop, we’ll discuss all these finer points while going through a general example of building a code editor using CodeMirror in React. All while sharing some of the nuances our team learned about using this library and some problems we encountered.
TestJS Summit - January, 2021TestJS Summit - January, 2021
173 min
Testing Web Applications Using Cypress
WorkshopFree
This workshop will teach you the basics of writing useful end-to-end tests using Cypress Test Runner.
We will cover writing tests, covering every application feature, structuring tests, intercepting network requests, and setting up the backend data.
Anyone who knows JavaScript programming language and has NPM installed would be able to follow along.
Node Congress 2023Node Congress 2023
63 min
0 to Auth in an Hour Using NodeJS SDK
WorkshopFree
Passwordless authentication may seem complex, but it is simple to add it to any app using the right tool.
We will enhance a full-stack JS application (Node.JS backend + React frontend) to authenticate users with OAuth (social login) and One Time Passwords (email), including:- User authentication - Managing user interactions, returning session / refresh JWTs- Session management and validation - Storing the session for subsequent client requests, validating / refreshing sessions
At the end of the workshop, we will also touch on another approach to code authentication using frontend Descope Flows (drag-and-drop workflows), while keeping only session validation in the backend. With this, we will also show how easy it is to enable biometrics and other passwordless authentication methods.
Table of contents- A quick intro to core authentication concepts- Coding- Why passwordless matters
Prerequisites- IDE for your choice- Node 18 or higher
React Summit US 2023React Summit US 2023
96 min
Build a powerful DataGrid in few hours with Ag Grid
WorkshopFree
Does your React app need to efficiently display lots (and lots) of data in a grid? Do your users want to be able to search, sort, filter, and edit data? AG Grid is the best JavaScript grid in the world and is packed with features, highly performant, and extensible. In this workshop, you’ll learn how to get started with AG Grid, how we can enable sorting and filtering of data in the grid, cell rendering, and more. You will walk away from this free 3-hour workshop equipped with the knowledge for implementing AG Grid into your React application.
We all know that rolling our own grid solution is not easy, and let's be honest, is not something that we should be working on. We are focused on building a product and driving forward innovation. In this workshop, you'll see just how easy it is to get started with AG Grid.
Prerequisites: Basic React and JavaScript
Workshop level: Beginner
Node Congress 2023Node Congress 2023
49 min
JavaScript-based full-text search with Orama everywhere
Workshop
In this workshop, we will see how to adopt Orama, a powerful full-text search engine written entirely in JavaScript, to make search available wherever JavaScript runs. We will learn when, how, and why deploying it on a serverless function could be a great idea, and when it would be better to keep it directly on the browser. Forget APIs, complex configurations, etc: Orama will make it easy to integrate search on projects of any scale.
Node Congress 2022Node Congress 2022
128 min
Back to the basics
WorkshopFree
“You’ll never believe where objects come from in JavaScript.”
“These 10 languages are worse than JavaScript in asynchronous programming.”
Let’s explore some aspects of JavaScript that you might take for granted in the clickbaitest nodecongress.com workshop.
To attend this workshop you only need to be able to write and run NodeJS code on your computer. Both junior and senior developers are welcome.
Objects are from Mars, functions are from Venus
Let’s deep-dive into the ins and outs of objects and then zoom out to see modules from a different perspective. How many ways are there to create objects? Are they all that useful? When should you consider using them?
If you’re now thinking “who cares?“, then this workshop is probably for you.
Asynchronous JavaScript: the good? parts
Let’s have an honest conversation.
I mean… why, oh why, do we need to bear with all this BS? My guess is that it depends on perspective too. Let’s first assume a hard truth about it: it could be worse… then maybe we can start seeing the not-so-bad-even-great features of JavaScript regarding non-blocking programs.