Construyendo Componentes de IU Perfectos con Variables CSS

Rate this content
Bookmark

Las variables CSS se han vuelto tan sofisticadas en los últimos años que ahora nos permiten hacer cosas que no son posibles con JavaScript. En esta charla relámpago, explicaré cómo los ingenieros de MUI están aprovechando el poder de las variables CSS en nuestra nueva biblioteca de componentes de React, Joy UI, para ofrecer componentes que se adaptan automáticamente a su estilo y estructura según el contexto en el que se renderizan.

FAQ

Una variable CSS es una entidad definida por los autores de CSS que contiene valores específicos para ser reutilizados en todo un documento. Estas permiten una gestión más eficiente de los estilos, facilitando cambios y mantenimiento de consistencia en el diseño.

En Joy UI, las variables CSS se utilizan para crear componentes que se adaptan automáticamente a los estilos de sus padres e hijos, permitiendo ajustes de estilo dinámicos y precisos sin necesidad de recurrir a JavaScript, ofreciendo una experiencia más simple y directa para los desarrolladores.

La principal diferencia es que Joy UI utiliza variables CSS para permitir ajustes de estilo más fáciles y precisos, mientras que en Material UI, hacer ajustes puede resultar más complicado y requiere cálculos adicionales.

Las variables CSS ofrecen beneficios como la reutilización de valores comunes, la facilidad para hacer cambios globales y la capacidad para nombrar valores, lo que ayuda a mantener la consistencia y proteger el código en el futuro.

Joy UI es una nueva biblioteca hermana de Material UI que implementa su propio sistema de diseño y utiliza innovaciones en las variables CSS para mejorar la experiencia del desarrollador. Material UI es una implementación de React del Material Design de Google y es conocida por ser popular en GitHub.

Joy UI facilita la personalización y ajuste de componentes mediante variables CSS, lo que elimina la necesidad de JavaScript para estilos y simplifica los cálculos, haciendo que el proceso de diseño y desarrollo sea más intuitivo y agradable.

Las variables CSS abren la posibilidad de realizar cálculos matemáticos dentro de CSS, referencias cruzadas entre variables y adaptaciones automáticas de estilos, lo que permite una mayor flexibilidad y potencial en el diseño de interfaces y componentes.

Sam Sycamore
Sam Sycamore
9 min
02 Jun, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Las variables CSS y sus posibilidades para los desarrolladores de IU, la historia de MUI y su comprensión de las necesidades de los desarrolladores, el enfoque de Joy UI en la experiencia del desarrollador y el uso de variables CSS para la consistencia y la futura compatibilidad, la eliminación de cálculos manuales y JavaScript con variables CSS en JoyUI, y la disponibilidad de entornos de prueba y una versión estable para explorar.

1. Introducción a CSS y MUI

Short description:

Me encanta CSS. Eso es todo. Esa es la idea principal. Específicamente emocionado por las variables CSS y sus posibilidades para los desarrolladores de UI. MUI aprovecha las variables CSS para una experiencia del desarrollador encantadora. El papel de CSS se está expandiendo, abriendo nuevas posibilidades. Historia de MUI y comprensión de las necesidades de los desarrolladores.

Muy bien, hola a todos. Gente de fiesta en la casa. Wow. Eso es mucha gente ahí fuera. Muy bien.

No estaba seguro de cómo comenzar esta charla. Estaba hablando con un amigo mío que dijo, deberías compartir tu opinión más picante. Así que en la siguiente diapositiva, voy a compartir mi opinión más controvertida en el ámbito del desarrollo web. Esto va a molestar a mucha gente en la audiencia aquí hoy, pero realmente siento que debe decirse. ¿Estás listo? Aquí va. Me encanta CSS. Eso es todo. Esa es la idea principal. Te dije que era picante, pero no estoy aquí para hacer amigos. Estoy aquí para decir la verdad.

Específicamente, lo que me emociona últimamente son las variables CSS y todas las posibilidades que nos abren como desarrolladores de UI. En MUI, estamos aprovechando el poder de las variables CSS para ofrecer una experiencia del desarrollador que genera alegría y deleite al personalizar los componentes de React. Con las variables CSS, podemos crear componentes que son conscientes de su entorno y se adaptan automáticamente para coincidir con los estilos y estructuras de sus padres e hijos. Y lo mejor de todo, todo esto sucede en CSS, no en JavaScript. No envíes JavaScript a hacer el trabajo de CSS. Y el papel de CSS se está expandiendo rápidamente. Así que para nosotros, los desarrolladores, se abren muchas nuevas posibilidades.

Pero antes de explorar algunas de esas posibilidades, necesito compartir un poco de historia aquí. MUI como empresa comenzó con Material UI, que es la implementación de React de Material Design de Google. Hoy en día hacemos mucho más que solo Material Design. Pero Material UI sigue siendo una de las bibliotecas de código abierto más populares en GitHub y tiene una historia que se remonta a los primeros días de React mismo. A lo largo de esos nueve años aproximadamente, hemos aprendido mucho sobre lo que los desarrolladores quieren y necesitan de una biblioteca de componentes. Más que cualquier otra cosa, hemos aprendido mucho sobre lo que los desarrolladores odian. Aquí tienes un ejemplo de la clase de cosas que veo en Twitter de vez en cuando. Lo entiendo.

2. Variables CSS y Joy UI

Short description:

Puede ser frustrante cuando hacer pequeños ajustes a un componente requiere múltiples cambios. Presentamos Joy UI, una biblioteca hermana de Material UI, con un enfoque en la experiencia del desarrollador. Joy UI aprovecha las variables CSS, lo que permite tener una única fuente de verdad y variables nombradas para consistencia y protección futura. Las variables CSS tienen aplicaciones más allá del branding, permitiendo valores dinámicos y cálculos matemáticos. Joy UI utiliza variables CSS para crear componentes que se adaptan a sus padres e hijos. Comparemos Material UI y Joy UI con un componente de interruptor.

El rey de los críticos aquí, tiene un punto válido. No está equivocado. Puede ser muy frustrante cuando intentas hacer un pequeño ajuste de dos píxeles a un componente. Y luego te das cuenta de que de repente tienes que hacer 10 ajustes más. Es frustrante. Lo entiendo. Y esa es solo una de las razones por las que estamos construyendo Joy UI, que es una nueva biblioteca hermana de Material UI que implementa nuestro propio sistema de diseño junto con algunas innovaciones de vanguardia en la experiencia del desarrollador.

Y esto es más evidente, creo, en la forma en que hemos construido Joy UI para manejar las variables CSS. Entonces, ¿qué es una variable CSS? Según MDN, las variables CSS son entidades definidas por los autores de CSS que contienen valores específicos para ser reutilizados en todo un documento. Es fácil de entender en el contexto de los colores de marca, ¿verdad? Tienes un conjunto de colores que se reutilizarán en todo el diseño. Y si necesitas cambiar uno, es mucho más simple si tienes una única fuente de verdad para no tener que buscar y reemplazar cientos de instancias del código hexadecimal incorrecto. Tener esa única fuente de verdad es muy poderoso. Y una de las cosas realmente geniales es que puedes nombrar tus variables, ¿verdad? Ayuda mucho a mantener la consistencia en tu sistema de diseño y a proteger tu código en el futuro. En lugar de tratar de averiguar por qué este texto tiene un tamaño de 1.75 rem, puedes ver que tiene este valor dinámico establecido en encabezado de texto, lo que te brinda mucha más información sobre por qué se ha aplicado ese estilo.

Y a medida que te adentras más en el tema, te das cuenta de que las variables CSS tienen algunas aplicaciones realmente interesantes en nuestros sistemas de diseño que van mucho más allá del simple branding. Aquí tienes un ejemplo de lo que está sucediendo en el componente JoyUI, el componente de entrada, que compartí hace unos pocos diapositivas atrás. Es extraño, ¿verdad? Al principio es un poco difícil acostumbrarse. Quiero decir, ¿qué está pasando aquí? Tenemos variables CSS que hacen referencia a otras variables y realizan cálculos matemáticos basados en esas variables. Y todo esto sucede en CSS, ¿verdad? Como señala Josh Como, simplemente no estamos acostumbrados a este concepto, este modelo mental de definir propiedades CSS que tienen valores dinámicos. Y las cosas se vuelven aún más extrañas cuando comienzas a hacer matemáticas con tus variables y hacer referencia a variables dentro de variables. De hecho, en el caso de JoyUI, estamos utilizando variables CSS para crear componentes que pueden adaptar automáticamente sus estilos para que coincidan con los de sus padres e hijos, ya que todos hacen referencia a esa única fuente de verdad para sus números mágicos. Entonces, está bien, suena genial, pero ¿qué diferencia realmente hace, verdad? Consideremos un componente de interruptor y observemos las diferencias en la experiencia del desarrollador entre Material UI y JoyUI. Aquí tienes algunos ejemplos de interruptores.

Estos son todos interruptores de Material UI. Interruptor, obviamente, un simple interruptor de encendido y apagado, está compuesto por una pista y un pulgar. El usuario hace clic en el pulgar para deslizarlo a través de la pista y hacer su selección. Es bastante simple en la superficie, pero puede resultar bastante molesto cuando necesitas hacer ajustes perfectos de píxeles al componente de Material UI. Por ejemplo, si necesitamos cambiar el ancho de la pista aquí, bueno, eso descoloca por completo el pulgar porque no conoce la longitud de la pista. Y si intento cambiar el tamaño del pulgar, bueno, eso también arruina su posición. Y ni siquiera me hagas empezar con los radios de borde. Si necesito ajustar las esquinas redondeadas, no es como si simplemente pudiera pasar los mismos valores a ambas partes.

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.
Hacia una Biblioteca Estándar para Runtimes de JavaScript
Node Congress 2022Node Congress 2022
34 min
Hacia una Biblioteca Estándar para Runtimes de JavaScript
Top Content
Puedes revisar las diapositivas de la charla de James aquí.
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
Tailwind CSS, con su enfoque de utilidad primero, es conocido por acelerar el proceso de desarrollo. Combinándolo con el poder de React, veamos cómo puedes construir un sistema de diseño personalizado para tu proyecto para acelerarlo aún más, hacerlo escalable y también fácil de mantener.
Composición vs Configuración: Cómo Construir Componentes Flexibles, Resilientes y a Prueba de Futuro
React Summit 2022React Summit 2022
17 min
Composición vs Configuración: Cómo Construir Componentes Flexibles, Resilientes y a Prueba de Futuro
Top Content
Existen muchas formas de autorizar componentes en React, y hacerlo correctamente puede no ser tan fácil, especialmente cuando los componentes se vuelven más complejos. En esta charla, aprenderás cómo construir componentes React a prueba de futuro. Cubriremos dos enfoques diferentes para construir componentes - Composición y Configuración, para construir el mismo componente utilizando ambos enfoques y explorar sus ventajas y desventajas.
Rethinking CSS - Introducing Stylex
React Finland 2021React Finland 2021
25 min
Rethinking CSS - Introducing Stylex
Top Content
CSS + superpowers - bloat. How Stylex creates a zero-cost abstraction that gives CSS superpowers.
Construyendo Bibliotecas de Componentes Multiplataforma para Web y Nativo con React
React Advanced Conference 2021React Advanced Conference 2021
21 min
Construyendo Bibliotecas de Componentes Multiplataforma para Web y Nativo con React
Top Content
Construir productos para múltiples plataformas como la web y el móvil a menudo requiere códigos base separados a pesar de que la mayoría de los componentes son idénticos en apariencia y sensación. ¿Existe una forma en la que podríamos usar la biblioteca de componentes compartidos de React en diferentes plataformas y ahorrar tiempo? En esta presentación demostraré una forma de construir una biblioteca de componentes verdaderamente multiplataforma con un enfoque único de usar React & React Native en combinación.

Workshops on related topic

Construye un Tablero Rico en Datos y Hermoso con la Rejilla de Datos de MUI X y Joy UI
React Summit 2023React Summit 2023
137 min
Construye un Tablero Rico en Datos y Hermoso con la Rejilla de Datos de MUI X y Joy UI
Top Content
WorkshopFree
Sam Sycamore
Siriwat (Jun) Kunaporn
2 authors
Aprende cómo utilizar el ecosistema completo de MUI para construir un tablero de gestión de proyectos hermoso y sofisticado en una fracción del tiempo que tomaría construirlo desde cero. En particular, veremos cómo integrar la Rejilla de Datos de MUI X con Joy UI, nuestra biblioteca de componentes más nueva y hermana del estándar de la industria Material UI.
Tabla de contenidos:- Presentando nuestro proyecto y herramientas- Configuración de la aplicación e instalación del paquete- Construcción del tablero- Prototipado, estilos y temas - Características de Joy UI- Filtrado, ordenación, edición - Características de la Rejilla de Datos- Conclusión, pensamientos finales, P&R