Construir un Sistema de Diseño con React y Tailwind CSS

Rate this content
Bookmark

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.

This talk has been presented at React Summit 2022, check out the latest edition of this React Conference.

FAQ

Un design system no es solo una guía de estilo o una biblioteca de componentes. Incluye un lenguaje de diseño, un kit de diseño, una biblioteca de componentes y documentación. Estos elementos trabajan juntos para crear un marco integral que guía la totalidad del diseño y desarrollo del frontend.

Tailwind CSS es un framework de CSS de bajo nivel que ofrece bloques de construcción para diseñar páginas web sin salir del archivo HTML. Ayuda en la creación de un design system proporcionando clases de utilidad que se pueden aplicar directamente para construir diseños consistentes y mantenibles.

Se personaliza Tailwind CSS modificando el archivo de configuración de Tailwind. Se pueden añadir colores, fuentes, tamaños de texto y otros elementos de diseño específicos del sistema, lo que permite aplicar un estilo consistente en toda la aplicación sin repetir código.

Tailwind CSS simplifica el proceso de desarrollo de componentes en React al permitir a los desarrolladores aplicar estilos de manera eficiente usando clases de utilidad. Esto elimina la necesidad de cambiar constantemente entre archivos HTML y CSS, facilitando un desarrollo más rápido y coherente.

Algunas bibliotecas de componentes que utilizan React y Tailwind CSS incluyen Material-Tailwind, Wcai UI, Windmill-React UI y Kimea UI. Estas bibliotecas ofrecen componentes preconstruidos que pueden ser utilizados y personalizados en proyectos que emplean estas tecnologías.

Para extender la configuración de Tailwind CSS, se puede utilizar la función `extend` dentro del archivo de configuración. Esto permite mantener los valores predeterminados de Tailwind mientras se añaden personalizaciones específicas del proyecto como nuevos colores, tamaños de fuente, o breakpoints.

Shruti Balasa
Shruti Balasa
27 min
21 Jun, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Esta charla discute los sistemas de diseño y cómo construir uno usando React y Tailwind CSS. Tailwind CSS proporciona clases de utilidad para construir diseños complejos sin escribir reglas CSS. Los colores personalizados pueden ser añadidos al archivo de configuración de Tailwind CSS, y los estilos de fuente y tamaños de texto pueden ser personalizados. Toda la configuración de Tailwind CSS puede ser personalizada para cumplir con requisitos específicos. Los estilos base pueden ser añadidos al archivo de configuración en sí mismo usando un plugin. Los componentes reutilizables pueden ser creados con Tailwind CSS, permitiendo una fácil personalización de tamaño y color.

1. Introducción a los sistemas de diseño y Tailwind CSS

Short description:

Hola a todos, soy Shruti Balasah, una educadora tecnológica de India. Hoy hablaré sobre los sistemas de diseño y cómo construir uno usando React y Tailwind CSS. Cubriremos la importancia de los sistemas de diseño, qué son, Tailwind CSS, configuración avanzada de Tailwind, componentes React con Tailwind y bibliotecas de componentes para inspiración. Un sistema de diseño incluye lenguaje de diseño, kit de diseño, biblioteca de componentes y documentación. Tailwind CSS es un marco de CSS de bajo nivel que te permite diseñar páginas web sin salir de tu archivo HTML. Tiene cientos de clases de utilidad y una amplia gama de colores y tonos.

Hola a todos, soy Shruti Balasah, una educadora tecnológica de India. Desafortunadamente no pude viajar para encontrarme con todos ustedes en persona, pero aún así estoy realmente agradecida de poder hablar con todos ustedes en este gran escenario virtual.

Hoy voy a hablar sobre los design systems y cómo puedes construir uno usando React y Tailwind CSS. ¿Cualquier charla que tenga la palabra sistema tiene que ser aburrida, verdad? Pero lo siento, no lo haré aburrido para ti. Aquí tienes una rápida visión general de lo que vamos a cubrir. ¿Por qué un design system? ¿Qué es un design system? ¿Qué es Tailwind CSS? ¿Cómo ayuda Tailwind con el design system, configuración avanzada de Tailwind, componentes React con Tailwind, y finalmente algunas bibliotecas de componentes para inspiration?

Ya sea que ya tengas un design system en marcha o que escuches este término por primera vez, puedo asegurarte que te llevarás algo valioso en los próximos 20 minutos. Siempre empiezo desde lo básico. Entonces, hagamos la primera pregunta, ¿por qué un design system? Has escuchado tantas charlas desde esta mañana y seguramente los design systems han aparecido mucho. Es hora de que implementes un buen design system.

Entonces, ¿qué es exactamente este design system? No es solo una guía de estilo o una biblioteca de componentes. Idealmente, un design system incluye al menos estas cuatro cosas, lenguaje de diseño, kit de diseño, biblioteca de componentes y documentación. El lenguaje de diseño es el conjunto más pequeño de detalles que componen la totalidad de tu front-end, como los colores de tu marca, el tipo de fuentes que usas, incluyendo tamaños de fuente, pesos de fuente, y luego el espaciado entre elementos, esquinas redondeadas, esquinas afiladas, y así sucesivamente. El kit de diseño es el conjunto de activos o archivos gráficos que te da el diseñador. Puede tener iconos, símbolos, plantillas, maquetas, y así sucesivamente. Bibliotecas de componentes, estoy seguro de que sabes lo que es esto. Es un conjunto de componentes reutilizables como encabezados, botones, elementos de formulario, tarjetas y cientos de pequeños bloques de construcción. Finalmente, la documentación reúne todas estas partes con referencias a cada una de ellas y enumera los quehaceres y los que no hacer. Durante los próximos 15 minutos o así, nos centraremos en estas dos partes del sistema de diseño, las más importantes para nosotros, como desarrolladores. Ahora entra Tailwind CSS. Por supuesto, has oído hablar de él, tal vez lo has usado también, y a algunos de ustedes les encanta, a algunos de ustedes incluso puede que lo odien. Pero para aquellos de ustedes que no saben lo que hace Tailwind CSS, aquí tienen una rápida introducción de dos minutos.

Tailwind CSS es un marco de CSS de bajo nivel que te proporciona los bloques de construcción para diseñar tus páginas web sin tener que salir de tu archivo HTML. Sin cambio de contexto. Tailwind tiene cientos de clases de utilidad como estas, TextWhite, TextCenter, donde TextWhite establecerá el color de tu texto en blanco y TextCenter lo centrará. Luego algo como esto, BG Blue 200 añadirá un fondo azul claro. Tailwind tiene alrededor de 220 tonos por defecto que puedes usar. Aquí tienes solo una muestra. Tailwind tiene 22 colores principales con 10 tonos cada uno, donde el sufijo 50 es el tono más claro y 900 es el más oscuro. A continuación, el H20 que ves aquí es una de las clases de utilidad de altura fija.

2. Usando Tailwind CSS para construir un sistema de diseño

Short description:

Tailwind CSS tiene clases de utilidad para casi todas las propiedades CSS con valores comúnmente utilizados. Usando estas clases de utilidad predeterminadas, puedes construir incluso los diseños más complejos sin escribir una sola regla CSS. Tailwind CSS ayuda a construir un sistema de diseño proporcionando una configuración predeterminada para una aplicación React y permitiéndote personalizarla en función de una guía de estilos dada.

Hay alrededor de 40 clases como estas, H1, H2, y así sucesivamente. Estas son algunas muestras de la documentation y, por cierto, la documentation es increíble. Encontrarás cualquier cosa que estés buscando en cuestión de segundos. Luego, algo como esto, H20, W20, ya sabes, ambos alrededor de 80 píxeles, ancho y alto, luego rounded full, así que no hay necesidad de usar border, radius, 50%.. Simplemente puedes establecer rounded full. Esa es otra gran clase de utilidad. Y esto es una de las cosas más increíbles de Tailwind. ¡Mira eso! Por defecto es un cuadrado, pero después de MDBreakpoint, que es para pantallas más grandes que MDBreakpoint, que es el punto de interrupción medio, puedes añadir un radio de borde, rounded full. ¿Verdad? Así que puedes especificar cualquier clase de utilidad usando estos puntos de interrupción para cambiar estilos y sin usar ninguna consulta de medios como tal. Mucho menos code. Y aquí hay otra cosa, el modo oscuro. Puedes usar estas variantes oscuras por defecto, text gray 800 que es un color gris oscuro y en modo oscuro es text white. Vimos clases para el color del texto, el color de fondo, el radio del borde y las alturas. De la misma manera, Tailwind tiene clases de utilidad para casi todas las propiedades CSS con los valores más comúnmente utilizados. Usando estas clases de utilidad predeterminadas, puedes construir incluso los diseños más complejos como este y no tener que escribir una sola regla CSS. No tienes que inventar nombres de clases y no tienes que cambiar constantemente entre archivos HTML y CSS.

Bien, ahora lleguemos al meollo del asunto. Entonces, ¿cómo exactamente ayuda Tailwind CSS a construir un sistema de diseño? Para eso, permíteme cerrar mis diapositivas y veamos algo de code real. Este es un proyecto de React que he creado usando create-react-app. He instalado Tailwind CSS siguiendo la documentation. Es bastante sencillo. También he eliminado el contenido predeterminado de app.js y he añadido solo un encabezado aquí, párrafo y un enlace y solo algunas clases de utilidad aquí. Ahora esto es lo que tenemos en el navegador para empezar. Ahora aquí está nuestro archivo principal, el archivo de configuración de tailwind que se genera cuando instalas Tailwind siguiendo los pasos que acabo de mencionar. Esta es la configuración predeterminada para una aplicación React. Si quieres usar Tailwind tal como está con todos los estilos predeterminados de fábrica, no necesitas hacer ningún cambio en este archivo. Pero para construir un sistema de diseño, este es tu archivo más importante. Supón que te dan una guía de estilos, algo como esto por tu diseñador. Lo he tomado de Pinterest. Es solo un ejemplo realmente simple.

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
The Talk discusses the balance between flexibility and consistency in design systems. It explores the API design of the ActionList component and the customization options it offers. The use of component-based APIs and composability is emphasized for flexibility and customization. The Talk also touches on the ActionMenu component and the concept of building for people. The Q&A session covers topics such as component inclusion in design systems, API complexity, and the decision between creating a custom design system or using a component library.
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.
Caminando en la línea entre la flexibilidad y la consistencia en las bibliotecas de componentes
React Summit 2022React Summit 2022
27 min
Caminando en la línea entre la flexibilidad y la consistencia en las bibliotecas de componentes
This Talk discusses the comparison between Polaris and Material UI component libraries in terms of consistency and flexibility. It highlights the use of the action list pattern and the customization options available for the action list component. The Talk also emphasizes the introduction of a composite component to improve API flexibility. Additionally, it mentions the importance of finding the right balance between flexibility and consistency and the use of types to enforce specific child components.
Descubre si tu sistema de diseño es mejor que nada
React Summit 2022React Summit 2022
20 min
Descubre si tu sistema de diseño es mejor que nada
Building a design system without adoption is a waste of time. Grafana UI's adoption is growing consistently over time. The factors affecting design system adoption include the source mix changing, displacement of Homebrew components by Grafana UI, and the limitations of Grafana UI's current state. Measuring adoption is important to determine the success of a design system. The analysis of code through static code analysis tools is valuable in detecting and tracking component usage.
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.
Estilo Seguro para Paquetes de Componentes React: Vanilla Extract CSS
React Advanced Conference 2023React Advanced Conference 2023
19 min
Estilo Seguro para Paquetes de Componentes React: Vanilla Extract CSS
Today's Talk introduces Vanilla Extract CSS, a type-safe styling method for React applications. It combines the benefits of scoped styling, zero runtime overhead, and a great developer experience. Vanilla Extract generates a static CSS file at build time, resulting in better performance. It is framework agnostic and offers a powerful toolkit, including Sprinkles for utility classes and CSS utils for calculations. With type safety and the ability to define themes and variants, Vanilla Extract makes it easy to create efficient, scalable, and maintainable design system component packages.

Workshops on related topic

Desarrollo Rápido de UI en React: Aprovechando Bibliotecas de Componentes Personalizadas y Sistemas de Diseño
React Advanced Conference 2022React Advanced Conference 2022
118 min
Desarrollo Rápido de UI en React: Aprovechando Bibliotecas de Componentes Personalizadas y Sistemas de Diseño
Workshop
Richard Moss
Richard Moss
En este masterclass, recorreremos los enfoques más efectivos para construir componentes de UI escalables que mejoren la productividad y felicidad del desarrollador :-) Esto implicará una combinación de ejercicios prácticos y presentaciones, que cubrirán los aspectos más avanzados de la popular biblioteca styled-components, incluyendo la tematización e implementación de utilidades styled-system a través de props de estilo para un desarrollo rápido de UI, y culminando en cómo puedes construir tu propia biblioteca de componentes personalizada y escalable.
Nos enfocaremos tanto en el escenario ideal, donde trabajas en un proyecto nuevo, como en tácticas para adoptar incrementalmente un sistema de diseño y enfoques modernos para el estilo en una base de código existente con algo de deuda técnica (¡que suele ser el caso!). Al final del masterclass, deberías sentir que comprendes los compromisos entre diferentes enfoques y sentirte seguro para comenzar a implementar las opciones disponibles para avanzar hacia el uso de una biblioteca de componentes basada en un sistema de diseño en la base de código en la que trabajas.
Prerrequisitos: - Familiaridad y experiencia trabajando en grandes bases de código de React- Una buena comprensión de los enfoques comunes para el estilo en React