¡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.
Comments