Estilo Seguro para Paquetes de Componentes React: Vanilla Extract CSS

Rate this content
Bookmark
SlidesGithubProject website

Desbloquea el poder del estilo seguro en paquetes de componentes React con Vanilla Extract CSS. Aprende cómo escribir estilos escalables y mantenibles sin esfuerzo, aprovechando CSS-en-Typescript. Descubre la integración perfecta de Vanilla Extract CSS y lleva tus componentes React al siguiente nivel.

FAQ

Vanilla Extract CSS es un paquete que combina las ventajas de CSS con alcance y cero sobrecarga en tiempo de ejecución, ofreciendo una experiencia de desarrollo mejorada con TypeScript. Sus principales beneficios incluyen la generación de un archivo CSS estático en tiempo de construcción, compatibilidad con múltiples frameworks y un conjunto de herramientas que facilitan la definición de temas y estilos dinámicos.

Vanilla Extract CSS mejora la experiencia de desarrollo al proporcionar una sintaxis compatible con TypeScript que permite definiciones de temas con tokens profundamente anidados, autocompletado y un manejo seguro de los cambios de tokens, facilitando así el mantenimiento y escalabilidad del código CSS.

Un archivo CSS estático es un archivo de hoja de estilos que se genera durante el tiempo de compilación y no cambia en tiempo de ejecución. Vanilla Extract CSS lo utiliza para mejorar el rendimiento al eliminar la sobrecarga en tiempo de ejecución, generando estos archivos durante la construcción del proyecto.

Sí, Vanilla Extract CSS es agnóstico al framework, lo que significa que puede ser utilizado con diferentes bibliotecas y frameworks como React, Vue, y otros, facilitando la reutilización de estilos en diversos entornos de desarrollo.

Vanilla Extract CSS ofrece herramientas como 'Sprinkles', que permiten crear utilidades CSS, y la función 'create theme' para definir temas con variables CSS. También proporciona la herramienta 'recipe' para manejar variantes de estilos de componentes de manera eficiente y segura.

Para integrar Vanilla Extract CSS en un proyecto, es necesario instalar el paquete junto con sus dependencias, configurar el bundler del proyecto (como Vite) para procesar los archivos de estilo, y luego utilizar las funciones proporcionadas por Vanilla Extract para definir y aplicar estilos.

Negar Jamalifard
Negar Jamalifard
19 min
23 Oct, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La charla de hoy presenta Vanilla Extract CSS, un método de estilo seguro para aplicaciones React. Combina los beneficios del estilo con alcance, cero sobrecarga en tiempo de ejecución y una gran experiencia de desarrollador. Vanilla Extract genera un archivo CSS estático en el momento de la compilación, lo que resulta en un mejor rendimiento. Es agnóstico al marco y ofrece un potente conjunto de herramientas, incluyendo Sprinkles para clases de utilidad y CSS utils para cálculos. Con seguridad de tipo y la capacidad de definir temas y variantes, Vanilla Extract facilita la creación de paquetes de componentes de sistemas de diseño eficientes, escalables y mantenibles.

1. Introducción al estilo seguro de tipo en React

Short description:

Hoy vamos a hablar sobre el método de estilo seguro de tipo en las aplicaciones React. Voy a comenzar con una rápida comparación entre algunas de las herramientas más populares para el estilo en React, como CSS en JS en general, módulos CSS, y este nuevo kit en el blog, Vanilla Extracts CSS. Pero todo esto viene con algunos costos. Tiene cierta sobrecarga en tiempo de ejecución, y si tu aplicación es muy grande, vas a terminar con un gran archivo de paquete JS. Ahora tenemos módulos CSS. También ofrece un estilo con alcance. Se compila a CSS plano, lo que significa que no hay sobrecarga en tiempo de ejecución y un tamaño de paquete JS más pequeño. Y ahora, entra el CSS de extracto de vainilla. Piénsalo como un paquete que une lo mejor de ambos mundos, un estilo con alcance, cero sobrecarga en tiempo de ejecución, y proporciona una gran experiencia de desarrollador con un CSS y TS, una sintaxis hermosa. Así que para un paquete de componentes de sistema de diseño que necesita eficiencia, escalabilidad y mantenibilidad, queremos tanto rendimiento como una buena experiencia de desarrollador. Y en mi opinión, el CSS de extracto de vainilla es una opción que vale la pena considerar. Vanilla extract genera un archivo CSS estático en el momento de la construcción, por lo que no tiene sobrecarga en tiempo de ejecución, y como resultado, tiene un mejor rendimiento. Es agnóstico al marco. Así que desarrollas tus estilos una vez, y luego puedes usarlos en diferentes bibliotecas, ya sea React, Vue, o cualquier nueva biblioteca que tu equipo decida usar de repente. Tiene un kit de herramientas muy poderoso. Estás pensando en Tailwinds por sus clases de utilidad. Bueno, el CSS de Vanilla Extract tiene Sprinkles, y podrías pensar, Oh, pero necesito hacer algún cálculo en mi CSS. Pero Vanilla Extract ofrece utilidades CSS y algunas otras herramientas de las que voy a hablar durante la demostración. También, encima de todas estas características, tiene seguridad de tipo. Y con la seguridad de tipo, puedes definir temas con tokens profundamente anidados y dejar que TypeScript se encargue de todo eso.

¿Alguna vez te has encontrado luchando con CSS en una aplicación React y pensando, tiene que haber una mejor manera? ¿Suena familiar, verdad? Hoy vamos a hablar sobre el método de estilo seguro de tipo en las aplicaciones React.

Hola, mi nombre es Negar Jamwani-Farad. Soy desarrolladora de software en Lightspeed Commerce, y mis amigos y colegas me conocen por mi pasión por CSS y trabajar en sistemas de diseño. Y hoy, voy a hablar de una de las cosas que recientemente llamó mi atención. Voy a comenzar con una rápida comparación entre algunas de las herramientas más populares para el estilo en React, como CSS en JS en general, módulos CSS, y este nuevo kit en el blog, Vanilla Extracts CSS. Y confía en mí, al final de esto, vas a tener un nuevo favorito.

Te podrías preguntar, ya tenemos tantas opciones geniales. Quiero decir, ¿a quién no le gusta CSS en JS? Bueno, es popular de hecho. Ofrece un estilo con alcance justo dentro del componente, y también tiene una buena experiencia de desarrollador sin cambios de contexto cuando vas y vienes entre tus archivos CSS y de estilo, entre tus archivos JS y de estilo. Pero todo esto viene con algunos costos. Tiene cierta sobrecarga en tiempo de ejecución, y si tu aplicación es muy grande, vas a terminar con un gran archivo de paquete JS.

Ahora tenemos módulos CSS. También ofrece un estilo con alcance. Se compila a CSS plano, lo que significa que no hay sobrecarga en tiempo de ejecución y un tamaño de paquete JS más pequeño. Pero para ser justos, la experiencia del desarrollador no es tan buena como las soluciones de CSS y JS, especialmente cuando TypeScript entra en juego. Y ahora, entra el CSS de extracto de vainilla. Piénsalo como un paquete que une lo mejor de ambos mundos, un estilo con alcance, cero sobrecarga en tiempo de ejecución, y proporciona una gran experiencia de desarrollador con un CSS y TS, una sintaxis hermosa. Así que para un paquete de componentes de sistema de diseño que necesita eficiencia, escalabilidad y mantenibilidad, queremos tanto rendimiento como una buena experiencia de desarrollador. Y en mi opinión, el CSS de extracto de vainilla es una opción que vale la pena considerar.

Así que vamos a profundizar en por qué el extracto de vainilla está llamando la atención de tantos. Así que mencioné cero tiempo de ejecución. Vanilla extract genera un archivo CSS estático en el momento de la construcción, por lo que no tiene sobrecarga en tiempo de ejecución, y como resultado, tiene un mejor rendimiento. Es agnóstico al marco. Así que desarrollas tus estilos una vez, y luego puedes usarlos en diferentes bibliotecas, ya sea React, Vue, o cualquier nueva biblioteca que tu equipo decida usar de repente. Tiene un kit de herramientas muy poderoso. Estás pensando en Tailwinds por sus clases de utilidad. Bueno, el CSS de Vanilla Extract tiene Sprinkles, y podrías pensar, Oh, pero necesito hacer algún cálculo en mi CSS. Pero Vanilla Extract ofrece utilidades CSS y algunas otras herramientas de las que voy a hablar durante la demostración. También, encima de todas estas características, tiene seguridad de tipo. Y con la seguridad de tipo, puedes definir temas con tokens profundamente anidados y dejar que TypeScript se encargue de todo eso.

2. Uso de Vanilla Extract CSS con React

Short description:

Vamos a saltar al código y verlo en práctica. Tengo una aplicación React muy simple creada con Vite. Vamos a imitar la creación de componentes en paquetes de componentes de sistemas de diseño. Para empezar, necesitamos agregar Vanilla Extract CSS. También necesitamos instalar un plugin de Vit Bundler para agrupar nuestros archivos CSS. Luego, creamos una configuración básica para el botón y exportamos el estilo. Finalmente, exportamos el estilo del botón en nuestro componente de botón.

O autocompletar, y no perderse un cambio de token en alguna parte de su aplicación. Creo que he hablado mucho sobre Vanilla Extract hasta ahora. Vamos a saltar al código y verlo en práctica, y ver de qué se trata todo esto.

Así que permítanme cambiar a mi editor, aquí. Así que aquí tengo una aplicación React muy simple. He creado esto con Vite. Es TypeScript, React, y Vite como un bundler. He creado un componente de botón muy, muy simple, aquí. Vamos a imitar la creación de componentos en paquetes de componentes de sistemas de design, y voy a hacer lo posible para en un tiempo muy corto, crear temas, añadir variación a este botón, y añadiré todo el estilo a este botón. Así que ahora si quieres ver el componente, se ve así. Es básicamente el botón HTML básico.

Así que tenemos que empezar añadiendo Vanilla Extract CSS. Para empezar, hay dos paquetes que necesitamos instalar. Y uno de ellos es Vanilla Extract en sí, y el otro es recipe. Voy a hablar de recipe más adelante en esta charla. Pero los tengo instalados ahora mismo por el bien del tiempo, así que no tenemos que instalar ellos.

Así que otro paquete que necesitas empezar al principio de un proyecto es un bundler. Y Vanilla Extract CSS ofrece un par de integraciones de bundler con diferentes plataformas. Ahora mismo, estoy usando Vit, así que necesito instalar un plugin de Vit Bundler para poder agrupar nuestros archivos CSS en el momento de la construcción. Así que para configurar eso, necesitamos ir a vit.config y, como puedes ver, ya lo he hecho, importas el plugin y luego lo añades a tu configuración de Vit. Y tan simple como eso, estás listo. Tienes todo configurado para empezar a escribir tus cosas. Así que lo primero que voy a crear es una configuración muy básica para mi botón para que no sea sólo el aburrido botón HTML. Así que en mi carpeta de componentes, voy a añadir un archivo button.css.ts, y por eso necesitamos el bundler. Y voy a crear, voy a llamarlo estilo de botón, oh dios mío, odio la codificación en vivo. Así que hay una función de estilo en Vanilla CSS que vamos a usar aquí. Y por el bien del tiempo, sólo voy a copiar y pegar de mis notas el estilo que he creado para este componente. Así que un estilo muy básico, como hover y focus y todo eso. Y necesitamos exportar esto desde este archivo. Y luego, volvemos a nuestro botón, y aquí para el nombre de la clase, voy a exportar el estilo de botón que exporté en mi otro archivo.

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

Sistemas de Diseño: Caminando la Línea Entre Flexibilidad y Consistencia
React Advanced Conference 2021React Advanced Conference 2021
47 min
Sistemas de Diseño: Caminando la Línea Entre Flexibilidad y Consistencia
Top Content
Los sistemas de diseño buscan aportar consistencia al diseño de una marca y hacer que el desarrollo de la interfaz de usuario sea productivo. Las bibliotecas de componentes con una API bien pensada pueden facilitar esto. Pero, ¡a veces una elección de API puede accidentalmente sobrepasar y ralentizar al equipo! Hay un equilibrio allí... en algún lugar. Exploremos algunos de los problemas y posibles soluciones creativas.
TypeScript y React: Secretos de un matrimonio feliz
React Advanced Conference 2022React Advanced Conference 2022
21 min
TypeScript y React: Secretos de un matrimonio feliz
Top Content
TypeScript y React son inseparables. ¿Cuál es el secreto de su exitosa unión? Bastante código extrañamente extraño. Aprende por qué useRef siempre se siente extraño, cómo manejar los genéricos en los hooks personalizados y cómo los tipos de unión pueden transformar tus componentes.
Los tipos más útiles de React
React Day Berlin 2023React Day Berlin 2023
21 min
Los tipos más útiles de React
Top Content
No pensamos en React como si tuviera sus propios tipos. Pero los tipos de React son una parte fundamental del marco de trabajo - supervisados por el equipo de React, y coordinados con las principales lanzamientos de React.En esta charla de codificación en vivo, veremos todos los tipos que te has estado perdiendo. ¿Cómo obtienes el tipo de props de un componente? ¿Cómo sabes qué ref toma un componente? ¿Deberías usar React.FC? ¿Y qué pasa con JSX.Element?Te irás con un montón de ideas emocionantes para llevar a tus aplicaciones de React, y esperamos que con una nueva apreciación por las maravillas de React y TypeScript trabajando juntos.
Deja de Escribir tus Rutas
Vue.js London 2023Vue.js London 2023
30 min
Deja de Escribir tus Rutas
Cuanto más trabajas en una aplicación, más complicado se vuelve su enrutamiento y más fácil es cometer un error. "¿Se llamaba la ruta usuarios o usuario?", "¿Tenía un parámetro id o era userId?". Si solo TypeScript pudiera decirte cuáles son los nombres y parámetros posibles. Si solo no tuvieras que escribir una sola ruta más y dejar que un complemento lo haga por ti. En esta charla repasaremos lo que se necesitó para traer rutas automáticamente tipadas para Vue Router.
Haciendo Magia: Construyendo un Marco de Trabajo Primero-TypeScript
TypeScript Congress 2023TypeScript Congress 2023
31 min
Haciendo Magia: Construyendo un Marco de Trabajo Primero-TypeScript
Voy a profundizar en los internos de Nuxt para describir cómo hemos construido un marco de trabajo primero-TypeScript que está profundamente integrado con el IDE del usuario y la configuración de comprobación de tipos para ofrecer seguridad de tipo de pila completa de extremo a extremo, sugerencias para diseños, middleware y más, opciones de configuración de tiempo de ejecución tipadas e incluso enrutamiento tipado. Además, destacaré lo que más me emociona hacer en los días venideros y cómo TypeScript hace eso posible no solo para nosotros sino para cualquier autor de bibliotecas.
Compilaciones de TypeScript más rápidas con --isolatedDeclarations
TypeScript Congress 2023TypeScript Congress 2023
24 min
Compilaciones de TypeScript más rápidas con --isolatedDeclarations
Top Content
La verificación de tipos en una base de código TypeScript puede ser lenta, especialmente para monorepos que contienen muchos proyectos que necesitan usar el verificador de tipos para generar archivos de declaración de tipos. En esta charla, presentamos, por primera vez, una nueva característica de TypeScript en la que estamos trabajando llamada “Declaraciones Aisladas” que permite que los archivos DTS se generen sin usar el verificador de tipos en absoluto. ¡Esto abre la puerta a una generación de declaraciones más rápida en TypeScript mismo, así como en herramientas externas escritas en otros lenguajes como ESBuild y swc. Verás cómo usar esta nueva opción, y tal vez (solo tal vez) te convencerás de los beneficios de los tipos de retorno explícitos. Lo más importante, mostraremos cómo las Declaraciones Aisladas permiten compilaciones paralelas para distribuir el trabajo a través de tus núcleos de CPU para mejorar significativamente la velocidad de compilación de tus proyectos TypeScript.

Workshops on related topic

React, TypeScript y TDD
React Advanced Conference 2021React Advanced Conference 2021
174 min
React, TypeScript y TDD
Top Content
Featured WorkshopFree
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
Mejores Prácticas y Consejos Avanzados de TypeScript para Desarrolladores de React
React Advanced Conference 2022React Advanced Conference 2022
148 min
Mejores Prácticas y Consejos Avanzados de TypeScript para Desarrolladores de React
Top Content
Featured Workshop
Maurice de Beijer
Maurice de Beijer
¿Eres un desarrollador de React tratando de obtener los máximos beneficios de TypeScript? Entonces esta es la masterclass para ti.En esta masterclass interactiva, comenzaremos desde lo básico y examinaremos los pros y contras de las diferentes formas en que puedes declarar componentes de React usando TypeScript. Después de eso, pasaremos a conceptos más avanzados donde iremos más allá de la configuración estricta de TypeScript. Aprenderás cuándo usar tipos como any, unknown y never. Exploraremos el uso de predicados de tipo, guardias y comprobación exhaustiva. Aprenderás sobre los tipos mapeados incorporados, así como cómo crear tus propias utilidades de mapa de tipo nuevo. Y comenzaremos a programar en el sistema de tipos de TypeScript usando tipos condicionales e inferencia de tipos.
Consejos y Trucos Profundos de TypeScript
Node Congress 2024Node Congress 2024
83 min
Consejos y Trucos Profundos de TypeScript
Top Content
Workshop
Josh Goldberg
Josh Goldberg
TypeScript tiene un sistema de tipos poderoso con todo tipo de características sofisticadas para representar estados de JavaScript salvajes y extravagantes. Pero la sintaxis para hacerlo no siempre es sencilla, y los mensajes de error no siempre son precisos al decirte qué está mal. Vamos a profundizar en cómo funcionan muchas de las características más poderosas de TypeScript, qué tipos de problemas del mundo real resuelven, y cómo dominar el sistema de tipos para que puedas escribir código TypeScript verdaderamente excelente.
Practica Técnicas de TypeScript Construyendo una Aplicación con Componentes de Servidor React
TypeScript Congress 2023TypeScript Congress 2023
131 min
Practica Técnicas de TypeScript Construyendo una Aplicación con Componentes de Servidor React
Workshop
Maurice de Beijer
Maurice de Beijer
En esta masterclass práctica, Maurice te guiará personalmente a través de una serie de ejercicios diseñados para empoderarte con una profunda comprensión de los Componentes de Servidor React y el poder de TypeScript. Descubre cómo optimizar tus aplicaciones, mejorar el rendimiento y desbloquear nuevas posibilidades.
 
Durante la masterclass, realizarás:
- Maximizar la mantenibilidad y escalabilidad del código con prácticas avanzadas de TypeScript
- Desatar los beneficios de rendimiento de los Componentes de Servidor React, superando enfoques tradicionales
- Potenciar tu TypeScript con el poder de los Tipos Mapeados
- Hacer tus tipos TypeScript más seguros con Tipos Opacos
- Explorar el poder de los Tipos de Plantillas Literales al usar Tipos Mapeados
 
Maurice estará virtualmente a tu lado, ofreciendo una guía completa y respondiendo a tus preguntas mientras navegas por cada ejercicio. Al final de la masterclass, habrás dominado los Componentes de Servidor React, armado con un nuevo arsenal de conocimientos de TypeScript para potenciar tus aplicaciones React.
 
No pierdas esta oportunidad de elevar tu experiencia en React a nuevas alturas. Únete a nuestra masterclass y desbloquea el potencial de los Componentes de Servidor React con TypeScript. Tus aplicaciones te lo agradecerán.
Tipos avanzados de TypeScript para diversión y confiabilidad
TypeScript Congress 2022TypeScript Congress 2022
116 min
Tipos avanzados de TypeScript para diversión y confiabilidad
Workshop
Maurice de Beijer
Maurice de Beijer
Si estás buscando sacar el máximo provecho de TypeScript, este masterclass es para ti! En este masterclass interactivo, exploraremos el uso de tipos avanzados para mejorar la seguridad y previsibilidad de tu código TypeScript. Aprenderás cuándo usar tipos como unknown o never. Exploraremos el uso de predicados de tipo, guardias y verificación exhaustiva para hacer tu código TypeScript más confiable tanto en tiempo de compilación como en tiempo de ejecución. Aprenderás sobre los tipos mapeados incorporados, así como cómo crear tus propias utilidades de mapeo de tipos. Y comenzaremos a programar en el sistema de tipos de TypeScript utilizando tipos condicionales e inferencia de tipos.
¿Estás familiarizado con los conceptos básicos de TypeScript y quieres profundizar? Entonces únete a mí con tu computadora portátil en este masterclass avanzado e interactivo para aprender todos estos temas y más.
Puedes encontrar las diapositivas, con enlaces, aquí: http://theproblemsolver.nl/docs/ts-advanced-workshop.pdf
Y el repositorio que utilizaremos está aquí: https://github.com/mauricedb/ts-advanced
Dominando Node.js Test Runner
TestJS Summit 2023TestJS Summit 2023
78 min
Dominando Node.js Test Runner
Workshop
Marco Ippolito
Marco Ippolito
Node.js test runner es moderno, rápido y no requiere bibliotecas adicionales, pero entenderlo y usarlo bien puede ser complicado. Aprenderás a utilizar Node.js test runner a su máximo potencial. Te mostraremos cómo se compara con otras herramientas, cómo configurarlo y cómo ejecutar tus pruebas de manera efectiva. Durante la masterclass, haremos ejercicios para ayudarte a sentirte cómodo con el filtrado, el uso de afirmaciones nativas, la ejecución de pruebas en paralelo, el uso de CLI y más. También hablaremos sobre trabajar con TypeScript, hacer informes personalizados y la cobertura de código.