Cómo lograr la composición de diseño en React

Rate this content
Bookmark

Usar CSS en esta era de componentes es difícil. Se han creado muchas herramientas para ayudarnos con este problema, pero todas fallan en el único problema que las herramientas nunca pueden resolver: ¿Qué componente debería encargarse de qué estilos? En esta charla, repasaremos estrategias sobre cómo construir diseños de manera componible.

FAQ

Travis Waithmer trabaja para Plex y es el creador y mantenedor de Bedrock Layout Primitives. Puedes encontrarlo en Twitter como Travis Waithmer, en su cuenta de Canvas o en su blog en non-traditional.dev.

Plex es una plataforma de transmisión en línea que permite transmitir videos personales y videos a pedido. Están contratando, y puedes encontrar más información sobre carreras en Plex.tv/careers.

Bedrock Layout Primitives es una biblioteca de diseño diseñada para facilitar la composición de aplicaciones de React en la web, permitiendo una reutilización eficiente del diseño a través de componentes modulares.

En React, un diseño de héroe se puede lograr mediante la composición cuidadosa de diferentes componentes como stack, inline, cover, frame y split, que permiten diversas disposiciones y estilos.

La ventaja de usar componentes de diseño en React es que permiten reutilizar y modularizar los estilos de diseño, haciendo que el código sea más escalable y fácil de mantener en grandes aplicaciones.

Puedes aprender más sobre la composición de diseños en React en bedrocklayout.dev o tomando un curso en newline.co donde Travis Waithmer enseña sobre este tema.

El componente 'stack' en Bedrock Layout Primitives es usado para apilar elementos uno encima del otro con un espacio consistente, ayudando a organizar visualmente los componentes de forma uniforme y ordenada.

El componente 'inline' coloca elementos en línea y gestiona automáticamente el ajuste de los elementos cuando no hay suficiente espacio, similar a como el texto se ajusta en un párrafo.

Travis Waith-Mair
Travis Waith-Mair
8 min
21 Jun, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Esta charla discute cómo lograr la composición de diseño en React utilizando los Primitivos de Diseño de Bedrock. Al componentizar el diseño CSS, se pueden lograr y reutilizar diseños complejos en diferentes componentes. La charla también aborda los desafíos de lograr diseños complejos, como alineaciones de tarjetas, y proporciona soluciones para mantener la alineación y la capacidad de respuesta. La biblioteca de primitivos de diseño de Bedrock simplifica los diseños web y ofrece flexibilidad en la composición de diseños.

1. Logrando la Composición de Diseño en React

Short description:

¡Hola, React Summit! En esta charla, discutiré cómo lograr la composición de diseño en React utilizando los Primitivos de Diseño de Bedrock. Al componentizar el diseño CSS, podemos crear primitivas de diseño como stack, inline, split, cover y frame. Estos componentes se pueden combinar para lograr diseños complejos y se pueden reutilizar en diferentes componentes. La biblioteca de primitivas de diseño de Bedrock simplifica los diseños web y ofrece flexibilidad en la composición de diseños. Visita bedrocklayout.dev para obtener más información.

¡Hola, React Summit, y bienvenidos a mi charla sobre cómo lograr la composición de diseño en React. Mi nombre es Travis Waithmer, y pueden encontrarme en Twitter, en Travis Waithmer, todo en mi cuenta en Canvas, o en mi blog en non-traditional.dev.

Ahora, un poco sobre mí, trabajo para Plex, que es una plataforma de transmisión en línea que te permite transmitir tanto tus video de tus medios personales como video a pedido que curamos para ti. Y estamos contratando, por supuesto, Plex.tv slash careers. También soy el creador y mantenedor de Bedrock Layout Primitives. Es una biblioteca de diseño diseñada para facilitar el diseño de tus aplicaciones de React en la web. Y ese es el punto de esta charla, ¿cómo logramos la composición de diseño? ¿Cómo usamos el modelo de composición de React en nuestro diseño web?

Bueno, veamos este diseño de héroe. Esto es probablemente algo que todos hemos hecho en algún momento de nuestra carrera. Ahora, una forma ingenua de abordar esto es abordarlo a nivel de componente. Tenemos un contenedor de héroe, tenemos un héroe superior, izquierdo, derecho, y así sucesivamente. Y así es como nos enseñan a escribir nuestro CSS, de arriba hacia abajo, con un enfoque basado en excepciones. Ahora, desafortunadamente, esto se vuelve muy difícil de escalar en nuestras aplicaciones, por lo que comenzamos a reutilizar nuestros componentes. Ahora, podemos tener metodologías de CSS que nos ayuden, pero solo nos llevan hasta cierto punto. Nos ayudan a administrar nuestras hojas de estilo a gran escala, pero cuando abordamos cada componente y, específicamente, el diseño de cada componente, como algo único, estamos perdiendo una oportunidad fantástica para reutilizar el diseño. Entonces, ¿qué tal si te dijera que el diseño de CSS se puede componentizar? ¿Qué tal si creamos algunas primitivas de diseño? Por ejemplo, ¿qué tal si tuviéramos un componente stack que apilara cosas una encima de la otra? Un inline que colocara las cosas en línea con espacios entre ellas? Un componente split que dividiera las cosas solo desde el lado izquierdo y derecho, de manera uniforme a lo largo del ancho del padre? ¿Qué tal si tuviéramos un componente cover que cubriera un área y centrara verticalmente los hijos en su interior? Y un componente frame que tomara cosas como medios, imágenes o cualquiera de sus hijos y lo forzara a tener una relación de aspecto? Ahora, individualmente, cada uno solo puede hacer una cosa única. Pero cuando los combinamos, podemos lograr ese mismo diseño de héroe. Podemos tener un inline, un par de stacks, un cover, frame, split. A través de una composición cuidadosa, ahora hemos logrado ese diseño de héroe. Pero eso no es todo. Podemos colocarlo en JSX de esta manera y simplemente usar la composición de React. Y luego podemos usar eso en nuestros otros componentes, como un formulario de registro, un feed de publicaciones de blog, una página de características. Todos estos pueden usar exactamente los mismos componentes, exactamente los mismos diseños, pero simplemente compuestos de diferentes maneras para lograr sus diseños individuales. Y eso es exactamente para lo que está diseñada la biblioteca de primitivas de diseño de Bedrock. Es el guión bajo de los diseños web. Luego podemos tomar... Y si quieres obtener más información, está en bedrocklayout.dev. Pero tomemos, por ejemplo, un simple componente stack. Probablemente todos tengamos algo como esto, donde necesitamos colocar un espacio consistente encima de otros elementos. Bueno, utilizando solo uno de los componentes de diseño de Bedrock, el stack, por ejemplo, podemos lograr este componente de suscripción. Ahora, otro patrón común es que necesitamos hacer cosas de manera similar a como funciona nuestro párrafo en la web.

2. Logrando Diseños Complejos en React

Short description:

Cuando nos quedamos sin espacio, nuestras palabras se envolverán automáticamente a la siguiente fila según la justificación que establezcamos. El componente de agrupación en línea es útil para contenido en línea que se envuelve automáticamente. Para diseños más complejos como una alineación de tarjetas, debemos asegurarnos de que cada tarjeta ocupe la altura completa de la fila, manteniendo las imágenes y los encabezados alineados. La descripción siempre debe estar centrada verticalmente. Las imágenes deben mantener una relación de aspecto y recortarse si es necesario. Las tarjetas deben estar en una cuadrícula receptiva con un ancho de columna mínimo, envolviendo y ajustando las columnas según sea necesario.

Cuando nos quedamos sin espacio, nuestras palabras se envolverán automáticamente a la siguiente fila según la justificación que establezcamos. Ahí es donde entra en juego el componente de agrupación en línea. Podemos tener cosas en línea. Pero a medida que nos quedamos sin espacio, se envolverá automáticamente según la justificación.

Y esto es cómo se ve en el código. Tenemos nuestro componente de menú que obviamente compone ese lado derecho dentro de él. Y simplemente usamos un grupo en línea para colocar todos nuestros elementos de navegación en una fila, y luego se agruparán una vez que el ancho no permita que todos se mantengan en una sola fila.

¿Y qué tal algo mucho más complicado como una alineación de tarjetas? Esto parece bastante simple al principio, pero hay algunas cosas a tener en cuenta. Cada una de estas tarjetas debe ocupar la altura completa de la fila en la que se encuentra, pero el imagen y los encabezados de todas las tarjetas deben alinearse. Pero la descripción, sin importar su tamaño, debe estar centrada verticalmente dentro de cada una de estas tarjetas.

Además de eso, todas las imágenes deben mantener una relación de aspecto, y las imágenes deben ser recortadas para mantener esa relación de aspecto. Y finalmente, cada una de estas tarjetas debe estar en una cuadrícula receptiva, deben mantener un ancho de columna mínimo, y si no pueden mantener ese ancho de columna y mantenerlos todos en la misma fila, debemos comenzar a envolver y ajustar las columnas en consecuencia.

Entonces, en el código, podríamos escribir nuestro componente de tarjeta usando un cover, que nos permite especificar la parte superior y la inferior. En este caso, la parte superior es un h3 y la parte inferior utiliza un componente frame para forzar una relación de aspecto de 16 por 9, y luego tenemos nuestra descripción que estará centrada verticalmente dentro de ese cover. Y luego establecemos esa altura en 100% para que siempre sea la altura completa de la fila en la que se encuentra. Y luego usaremos todas estas tarjetas dentro de una cuadrícula y podemos establecer el ancho mínimo del elemento a 40 ch para que las columnas sean lo más anchas posible para incluir todo en su interior. Pero si no pueden caber todos y sin tener al menos una columna de 40 ch, entonces comenzará a envolver y optimizar eso. Eso es todo el tiempo que tengo para ustedes hoy. Pueden obtener más información en bedrock-layout.dev o pueden ir a mi curso en newline.co donde les enseño más sobre la composición de diseños en React. Gracias por su excelente tiempo y espero que tengan un excelente resto de su conferencia.

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

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.
El componente de React más caro del mundo y cómo dejar de escribirlo
React Advanced Conference 2021React Advanced Conference 2021
23 min
El componente de React más caro del mundo y cómo dejar de escribirlo
Top Content
Necesitamos dejar de construir componentes de React costosos, componentes que prometen el mundo pero son imposibles de mantener. Luchemos contra la apropcylpse y dejemos de lado nuestras perforaciones de prop con esta propuesta para una forma de trabajo más productiva en React.
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
Construir un sistema de diseño no es suficiente. Tu equipo de desarrollo debe preferirlo sobre los componentes individuales y las bibliotecas de terceros. De lo contrario, todo el esfuerzo es una pérdida de tiempo. Aprende cómo utilizar el análisis de código estático para medir si tu sistema de diseño supera a la competencia interna y formas basadas en datos para mejorar tu posición.
CCTDD: Diseño impulsado por pruebas de componentes Cypress
TestJS Summit 2022TestJS Summit 2022
25 min
CCTDD: Diseño impulsado por pruebas de componentes Cypress
La primera parte de la charla se centrará en una variedad de patrones al usar las pruebas de componentes de Cypress y TDD para crear componentes de React. Los ejemplos de código serán del Tour of Heroes de Angular para que el contenido sea relevante para una comunidad más amplia. Actualmente estoy trabajando en un GitBook reescribiéndolo en React usando pruebas de componentes de Cypress, debería haber mucho contenido para destilar en la charla.La segunda parte de la charla se centrará en estrategias de prueba, tipos de pruebas y dónde aplicarlas, y finalmente compararlas y contrastarlas con los enfoques familiares de la industria.Terminaremos con las conclusiones clave, repositorios de aplicaciones de muestra para ayudar con el aprendizaje y estrategias de implementación.

Workshops on related topic

Práctica con AG Grid's React Data Grid
React Summit 2022React Summit 2022
147 min
Práctica con AG Grid's React Data Grid
WorkshopFree
Sean Landsman
Sean Landsman
Comienza con AG Grid React Data Grid con un tutorial práctico del equipo principal que te guiará a través de los pasos para crear tu primera cuadrícula, incluyendo cómo configurar la cuadrícula con propiedades simples y componentes personalizados. La edición comunitaria de AG Grid es completamente gratuita para usar en aplicaciones comerciales, por lo que aprenderás una herramienta poderosa que puedes agregar de inmediato a tus proyectos. También descubrirás cómo cargar datos en la cuadrícula y diferentes formas de agregar representación personalizada a la cuadrícula. Al final del masterclass, habrás creado una cuadrícula de datos AG Grid React y la habrás personalizado con componentes funcionales de React.- Comenzando e instalando AG Grid- Configurando ordenamiento, filtrado, paginación- Cargando datos en la cuadrícula- La API de la cuadrícula- Usando hooks y componentes funcionales con AG Grid- Capacidades de la edición comunitaria gratuita de AG Grid- Personalizando la cuadrícula con componentes de React
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.
De la Idea a la Producción: Desarrollo de React con un Toque Visual
React Summit 2023React Summit 2023
31 min
De la Idea a la Producción: Desarrollo de React con un Toque Visual
WorkshopFree
Omer Kenet
Omer Kenet
Únete a nosotros para un masterclass de 3 horas que explora el mundo del desarrollo creativo de React utilizando Codux. Los participantes explorarán cómo un enfoque visual puede desbloquear la creatividad, agilizar los flujos de trabajo y mejorar la velocidad de desarrollo. Sumérgete en las características que hacen de Codux un cambio de juego para los desarrolladores de React. La sesión incluirá ejercicios prácticos que demuestran el poder de la renderización en tiempo real, la manipulación visual del código y el aislamiento de componentes, todo en tu código fuente.
Tabla de contenidos:- Descarga e instalación: Preparando Codux para el masterclass- Selector de proyectos: Clonación e instalación de un proyecto de demostración- Introducción a los conceptos principales de Codux y su interfaz de usuario- Ejercicio 1: Encontrando nuestro camino- Descanso- Ejercicio 2: Realizando cambios de manera efectiva- Ejercicio 3: Reutilización y validación de casos especiales- Resumen, Cierre y Preguntas y Respuestas
Curso intensivo de TypeScript para contenido de un CMS sin cabeza
React Summit 2022React Summit 2022
98 min
Curso intensivo de TypeScript para contenido de un CMS sin cabeza
WorkshopFree
Ondrej Polesny
Ondrej Polesny
En este masterclass, primero te mostraré cómo crear un nuevo proyecto en un CMS sin cabeza, llenarlo con datos y usar el contenido en tu proyecto. Luego, pasaremos el resto del tiempo en código, haremos lo siguiente:- Generar modelos y estructuras de tipo fuertemente tipados para el contenido obtenido.- Usar el contenido en componentes- Resolver contenido de campos de texto enriquecido en componentes de React- Tocar los pipelines de implementación y las posibilidades de descubrir problemas relacionados con el contenido antes de llegar a producción
Aprenderás:- Cómo trabajar con contenido de un CMS sin cabeza- Cómo se puede aprovechar el modelo de contenido para generar tipos en TypeScript y qué beneficios aporta a tu proyecto- Cómo dejar de usar literales de cadena para el contenido en el código- Cómo resolver texto enriquecido en componentes de React- Cómo minimizar o evitar problemas relacionados con el contenido antes de llegar a producción