Sistemas de Diseño - Renovando Productos para Interfaces Consistentes

Rate this content
Bookmark

En esta charla, Taley'a discutirá cómo el sistema de diseño permite la consistencia entre los productos, explorarás los componentes principales del sistema de diseño, junto con los principales beneficios y desafíos al construir el sistema de diseño.

13 min
14 May, 2021

Video Summary and Transcription

Esta charla explora los componentes principales de los sistemas de diseño, sus beneficios y desafíos, así como la importancia de tener un sistema de diseño para los productos. También se discute el concepto de un lenguaje de diseño y su papel en la creación de un sistema de diseño. La sección sobre la construcción de un lenguaje de diseño y una biblioteca de componentes enfatiza la importancia de seleccionar opciones para un lenguaje de diseño y crear componentes reutilizables. La sección sobre la construcción y escalado de sistemas de diseño destaca los beneficios de los sistemas de diseño y los desafíos involucrados en su construcción y escalado. También menciona el cambio de mentalidad hacia el reconocimiento del valor de los sistemas de diseño en el espacio competitivo.

Available in English

1. Introducción a los Sistemas de Diseño

Short description:

Hola, soy Talia Mirza, una ingeniera de software en Karim, especializada en resolver problemas complejos de UI y mejorar el front-end. En esta charla, exploraremos los componentes principales de los sistemas de diseño, sus beneficios y desafíos. También discutiremos la importancia de tener un sistema de diseño para tus productos. Además, profundizaremos en el concepto de un lenguaje de diseño, que sirve como base para crear un sistema de diseño.

Hola, soy Talia Mirza de Pakistán. Trabajo como ingeniera de software en Karim. La mayor parte de mi experiencia gira en torno a resolver problemas complejos de UI y mejorar el front-end. Esta charla trata sobre P y vamos a hablar sobre los sistemas de diseño en esta charla. Seguramente has escuchado hablar de algunos sistemas de diseño populares como Material, Tailwind, Bootstrap o tal vez otros. En la última década, se ha visto que el diseño se ha convertido en una parte crucial del desarrollo de productos y las empresas están invirtiendo mucho en mejorar las interfaces de usuario y las experiencias de usuario de sus productos. Veamos rápidamente cuál es el enfoque de mi charla. Esta charla trata de aprender cómo el sistema de diseño será otro paso hacia la mejora del diseño y el desarrollo de productos en este momento y cómo permite la consistencia entre los productos. Exploraremos los componentes principales del sistema de diseño junto con los principales beneficios y desafíos al construir el sistema de diseño. Al final, también discutiremos brevemente si necesitas un sistema de diseño para tus productos o no. Antes de explorar los componentes principales, comencemos desde el principio. Tienes que imaginar una puerta de la casa de tus sueños. Imagina una puerta, puede ser así en tu mente o tal vez así o tal vez así o tal vez ninguna de ellas, porque todos pensamos de diferentes maneras a través de diferentes perspectivas. De manera similar, cuando hablamos de diseño para nuestros productos, tal vez para nuestro componente como un botón. Todos tendremos una imagen diferente en mente, ¿verdad? Eso lleva a interfaces de usuario inconsistentes. Entonces, para construir interfaces de usuario que sean consistentes en todos tus productos, necesitamos un sistema de diseño. Entonces, si tienes un par de productos bajo una marca, puedes tener un sistema de diseño para tu empresa. Por ejemplo, tienes un sitio web para tu negocio. Tienes un sitio de marketing. Tienes un sitio de documentación o tal vez más productos. Todos ellos deben tener consistencia en el diseño para un sistema de diseño a construir. Veamos cómo podemos construir un sistema de diseño que pueda crear consistencia en todos los productos. Hay tres componentes principales de un sistema de diseño. Estos son lenguaje de diseño, laboratorio de componentes y guía de estilo. Veámoslos en orden. Lo primero es el lenguaje de diseño. Es el primer componente que se debe crear para crear un sistema de diseño. Este es el conjunto de estándares que guían la creación de una suite de productos bajo una marca. Estas son las reglas o principios para el

2. Construcción de un Lenguaje de Diseño y una Biblioteca de Componentes

Short description:

Esta sección discute la importancia de seleccionar tipos, tamaños, colores, grados y opciones de espaciado para un lenguaje de diseño. También explica el concepto de una biblioteca de componentes y cómo crear componentes reutilizables utilizando props en React. La sección concluye resaltando la importancia de la documentación en los sistemas de diseño.

base del sistema de diseño. Esto puede incluir una tipografía, color, accesibilidad, grado, movimiento, iconos, en general, la identidad de nuestro producto. Por lo tanto, necesitamos seleccionar qué tipos utilizaremos en nuestro producto, cuáles serán los tamaños válidos para las fuentes, cuáles son las opciones de color de nuestra marca como color primario o secundario o tal vez terciario. Necesitamos fijar los grados y opciones de espaciado como estándares para la accesibilidad, movimiento e iconos de los productos. Esto es a lo que nos referiremos como lenguaje de diseño. Después de eso, necesitamos codificar esos componentes que deben ser consistentes en todo el producto. Entonces, una biblioteca de componentes es una colección de componentes independientes que convierte un lenguaje de diseño en bloques de construcción de la aplicación. Por lo tanto, necesitamos crear componentes reutilizables para el producto. Todos sabemos que en esta era moderna, cuando hablamos de diseño, no creamos páginas web completas de una vez. Dividimos las interfaces de usuario en componentes que nos permiten utilizar esos componentes y trabajar más rápido. Podemos utilizar cualquier biblioteca o framework de frontend, pero para el contexto de esta charla, utilizaremos ejemplos de React. También puedes crear tu sistema de diseño en vanilla JS también. Veremos un solo componente y cómo podemos crear múltiples variantes manteniendo la consistencia. Sabemos que en React existe el concepto de props, ¿verdad? Veremos cómo las props pueden ayudarnos a crear múltiples variantes a partir de un solo componente. Creemos un componente para un botón. Todos saben cómo crear un componente de botón, pero qué props tendremos. Para un botón predeterminado como este, debemos tener algunas props requeridas como label y OnClick que manejará la funcionalidad del botón. Este será nuestro botón predeterminado. No entraré en la implementación del botón, pero lo que podemos hacer, lo veremos en estos ejemplos. Con el botón predeterminado, cuando agregamos una sola prop llamada icon, podemos tener esa opción de icono como una prop opcional, como un prop opcional de icono y podemos agregar un icono en nuestro botón a través de esta prop. También podemos tener una prop como type, que puede ayudarnos a crear un tipo primario o secundario según los colores de nuestro lenguaje de diseño. Al agregar una prop de tamaño, podemos crear algunos tamaños fijos para nuestros botones, como pequeño, mediano y grande. Con la prop de tema, podemos permitir que nuestro componente responda según el tema. Esta es la forma en que podemos agregar otra prop. Y así, estas pueden ser props para botones a través de las cuales podemos crear múltiples variantes. Observa cómo estamos creando variantes. Tenemos flexibilidad, pero somos consistentes para todos los productos. De esta manera, podemos tener consistencia de diseño y también flexibilidad para adaptarnos a los cambios a través de nuestras variantes a partir de un solo componente. En el sistema de diseño, construimos todos los componentes de la misma manera. La tercera cosa es la documentación para nuestro lenguaje de diseño y la biblioteca de componentes. Seguramente has visto múltiples documentaciones de sistemas de diseño, por lo que tiene toda la información necesaria sobre los componentes, variantes,

3. Construcción y Escalado de Sistemas de Diseño

Short description:

Construimos nuestra guía de estilos de manera similar, incluyendo componentes vinculados y props de componentes. Los sistemas de diseño ofrecen numerosos beneficios, como identidad de marca, consistencia, flexibilidad, capacidad de respuesta y mayor velocidad de desarrollo. Sin embargo, construir y escalar un sistema de diseño puede llevar tiempo y requiere colaboración entre equipos. A pesar de los desafíos, los sistemas de diseño son cruciales para mantener la consistencia y acelerar el desarrollo en empresas que luchan por escalar. Desafortunadamente, no todas las empresas reconocen el valor de los sistemas de diseño, pero el creciente espacio competitivo está cambiando esta mentalidad.

y nos brindan la capacidad de utilizarlos de manera eficiente. Por lo tanto, construimos nuestra guía de estilos de manera similar. Puedes ver un ejemplo de componente vinculado en el sistema de design principal. Aquí puedes ver, las props del componente, cuáles son sus vínculos, cuáles son sus valores predeterminados y qué valores puede esperar. Así es como podemos crear nuestra guía de estilos de nuestro sistema de design, y también podemos agregar la pila de tecnología que hemos utilizado, eso es opcional.

Así que vamos a concluir ahora. Los sistemas de design nos permiten, ¿qué beneficios? Estos son los beneficios que podemos obtener al construir el sistema de design. En primer lugar, la identidad de marca, la consistencia en todos los productos, la flexibilidad para adaptarse a los cambios a través de nuestras variantes, la capacidad de respuesta en todos los dispositivos, los estándares de accessibility. Podemos aumentar la velocidad de desarrollo, podemos tener una única fuente de crecimiento, por lo que el mantenimiento es fácil, está en constante evolución, por lo que podemos responder a los cambios a lo largo del tiempo a través de nuestras variantes, menos tiempo en la incorporación de nuevos empleados, por lo que tienes esta guía de estilos, puedes ver fácilmente cómo usar un solo componente y también podemos agregar ejemplos de código. Entonces, ahora vamos a los desafíos de construir un sistema de design. Construir un sistema de design lleva tiempo, no puedes construirlo una vez y usarlo para siempre. Es algo vivo que sigue evolucionando, por lo que necesita el compromiso y la dedicación del equipo y los interesados. Un sistema de design no es un proyecto, es un producto que sirve a múltiples productos, por lo que requiere el mismo compromiso que tienes con tus productos. El principal desafío no es construirlo, sino escalarlo. Por lo tanto, necesitamos la colaboración entre ingenieros, diseñadores y propietarios de productos para mejorarlo de manera iterativa con una actitud positiva hacia los comentarios para que pueda evolucionar con el tiempo. Los sistemas de design pueden tardar tiempo en volverse estables en la fase inicial. Puede llevar semanas, meses o incluso años para productos complejos, pero una vez construido, será útil para nuestra organización. Por lo tanto, el objetivo principal de un sistema de design es aumentar la velocidad de desarrollo mientras se mantiene la consistencia en todos los ámbitos. Las empresas a menudo luchan por escalar y mantener sus productos digitales de manera rápida y consistente, especialmente las grandes empresas con muchos empleados y equipos. Por lo tanto, el valor de un sistema de design se hace evidente cuando los productos se desarrollan rápidamente utilizando partes de esos sistemas. En esos escenarios, los sistemas de design se convierten en un componente crucial que incluye el desarrollo de su misión. Desafortunadamente, no todas las empresas lo ven de esa manera. En muchos casos, la inversión necesaria para crear dicho producto a menudo se considera una pérdida de tiempo y dinero, pero gracias a un creciente espacio competitivo en casi todas las industrias, la mentalidad está cambiando rápidamente impulsada por el deseo de seguir en el juego entre los gigantes. Entonces, ¿necesitas un sistema de design? Depende de si tu producto es parte de un proyecto pequeño en el que unas pocas personas trabajan en el design, tal vez no sea el momento de crear un sistema de design y gastar mucho tiempo, pero si eres parte de una gran empresa con muchos equipos diferentes que trabajan en uno o varios productos que requieren consistencia en todos los ámbitos, entonces un sistema de design podría ser una gran inversión para todos los involucrados en el equipo. Si quieres aprender más sobre los sistemas de design, estos son los excelentes recursos que he utilizado personalmente mientras construía un sistema de design para los productos de mi empresa así que siéntete libre de explorarlos y muchas gracias por escuchar ese es mi nombre de usuario en Twitter, no olvides darme comentarios sobre esta charla tú

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

React Advanced Conference 2022React Advanced Conference 2022
25 min
A Guide to React Rendering Behavior
Top Content
React is a library for "rendering" UI from components, but many users find themselves confused about how React rendering actually works. What do terms like "rendering", "reconciliation", "Fibers", and "committing" actually mean? When do renders happen? How does Context affect rendering, and how do libraries like Redux cause updates? In this talk, we'll clear up the confusion and provide a solid foundation for understanding when, why, and how React renders. We'll look at: - What "rendering" actually is - How React queues renders and the standard rendering behavior - How keys and component types are used in rendering - Techniques for optimizing render performance - How context usage affects rendering behavior| - How external libraries tie into React rendering
React Summit Remote Edition 2021React Summit Remote Edition 2021
33 min
Building Better Websites with Remix
Top Content
Remix is a new web framework from the creators of React Router that helps you build better, faster websites through a solid understanding of web fundamentals. Remix takes care of the heavy lifting like server rendering, code splitting, prefetching, and navigation and leaves you with the fun part: building something awesome!
React Advanced Conference 2023React Advanced Conference 2023
33 min
React Compiler - Understanding Idiomatic React (React Forget)
Top Content
React provides a contract to developers- uphold certain rules, and React can efficiently and correctly update the UI. In this talk we'll explore these rules in depth, understanding the reasoning behind them and how they unlock new directions such as automatic memoization. 
React Advanced Conference 2022React Advanced Conference 2022
30 min
Using useEffect Effectively
Top Content
Can useEffect affect your codebase negatively? From fetching data to fighting with imperative APIs, side effects are one of the biggest sources of frustration in web app development. And let’s be honest, putting everything in useEffect hooks doesn’t help much. In this talk, we'll demystify the useEffect hook and get a better understanding of when (and when not) to use it, as well as discover how declarative effects can make effect management more maintainable in even the most complex React apps.
React Summit 2022React Summit 2022
20 min
Routing in React 18 and Beyond
Top Content
Concurrent React and Server Components are changing the way we think about routing, rendering, and fetching in web applications. Next.js recently shared part of its vision to help developers adopt these new React features and take advantage of the benefits they unlock.In this talk, we’ll explore the past, present and future of routing in front-end applications and discuss how new features in React and Next.js can help us architect more performant and feature-rich applications.
React Advanced Conference 2021React Advanced Conference 2021
47 min
Design Systems: Walking the Line Between Flexibility and Consistency
Top Content
Design systems aim to bring consistency to a brand's design and make the UI development productive. Component libraries with well-thought API can make this a breeze. But, sometimes an API choice can accidentally overstep and slow the team down! There's a balance there... somewhere. Let's explore some of the problems and possible creative solutions.

Workshops on related topic

React Summit 2023React Summit 2023
170 min
React Performance Debugging Masterclass
Top Content
Featured WorkshopFree
Ivan’s first attempts at performance debugging were chaotic. He would see a slow interaction, try a random optimization, see that it didn't help, and keep trying other optimizations until he found the right one (or gave up).
Back then, Ivan didn’t know how to use performance devtools well. He would do a recording in Chrome DevTools or React Profiler, poke around it, try clicking random things, and then close it in frustration a few minutes later. Now, Ivan knows exactly where and what to look for. And in this workshop, Ivan will teach you that too.
Here’s how this is going to work. We’ll take a slow app → debug it (using tools like Chrome DevTools, React Profiler, and why-did-you-render) → pinpoint the bottleneck → and then repeat, several times more. We won’t talk about the solutions (in 90% of the cases, it’s just the ol’ regular useMemo() or memo()). But we’ll talk about everything that comes before – and learn how to analyze any React performance problem, step by step.
(Note: This workshop is best suited for engineers who are already familiar with how useMemo() and memo() work – but want to get better at using the performance tools around React. Also, we’ll be covering interaction performance, not load speed, so you won’t hear a word about Lighthouse 🤐)
React Advanced Conference 2021React Advanced Conference 2021
132 min
Concurrent Rendering Adventures in React 18
Top Content
Featured WorkshopFree
With the release of React 18 we finally get the long awaited concurrent rendering. But how is that going to affect your application? What are the benefits of concurrent rendering in React? What do you need to do to switch to concurrent rendering when you upgrade to React 18? And what if you don’t want or can’t use concurrent rendering yet?

There are some behavior changes you need to be aware of! In this workshop we will cover all of those subjects and more.

Join me with your laptop in this interactive workshop. You will see how easy it is to switch to concurrent rendering in your React application. You will learn all about concurrent rendering, SuspenseList, the startTransition API and more.
React Summit Remote Edition 2021React Summit Remote Edition 2021
177 min
React Hooks Tips Only the Pros Know
Top Content
Featured Workshop
The addition of the hooks API to React was quite a major change. Before hooks most components had to be class based. Now, with hooks, these are often much simpler functional components. Hooks can be really simple to use. Almost deceptively simple. Because there are still plenty of ways you can mess up with hooks. And it often turns out there are many ways where you can improve your components a better understanding of how each React hook can be used.You will learn all about the pros and cons of the various hooks. You will learn when to use useState() versus useReducer(). We will look at using useContext() efficiently. You will see when to use useLayoutEffect() and when useEffect() is better.
React Advanced Conference 2021React Advanced Conference 2021
174 min
React, TypeScript, and TDD
Top Content
Featured WorkshopFree
ReactJS is wildly popular and thus wildly supported. TypeScript is increasingly popular, and thus increasingly supported.

The two together? Not as much. Given that they both change quickly, it's hard to find accurate learning materials.

React+TypeScript, with JetBrains IDEs? That three-part combination is the topic of this series. We'll show a little about a lot. Meaning, the key steps to getting productive, in the IDE, for React projects using TypeScript. Along the way we'll show test-driven development and emphasize tips-and-tricks in the IDE.
React Advanced Conference 2021React Advanced Conference 2021
145 min
Web3 Workshop - Building Your First Dapp
Top Content
Featured WorkshopFree
In this workshop, you'll learn how to build your first full stack dapp on the Ethereum blockchain, reading and writing data to the network, and connecting a front end application to the contract you've deployed. By the end of the workshop, you'll understand how to set up a full stack development environment, run a local node, and interact with any smart contract using React, HardHat, and Ethers.js.
React Summit 2023React Summit 2023
151 min
Designing Effective Tests With React Testing Library
Top Content
Featured Workshop
React Testing Library is a great framework for React component tests because there are a lot of questions it answers for you, so you don’t need to worry about those questions. But that doesn’t mean testing is easy. There are still a lot of questions you have to figure out for yourself: How many component tests should you write vs end-to-end tests or lower-level unit tests? How can you test a certain line of code that is tricky to test? And what in the world are you supposed to do about that persistent act() warning?
In this three-hour workshop we’ll introduce React Testing Library along with a mental model for how to think about designing your component tests. This mental model will help you see how to test each bit of logic, whether or not to mock dependencies, and will help improve the design of your components. You’ll walk away with the tools, techniques, and principles you need to implement low-cost, high-value component tests.
Table of contents- The different kinds of React application tests, and where component tests fit in- A mental model for thinking about the inputs and outputs of the components you test- Options for selecting DOM elements to verify and interact with them- The value of mocks and why they shouldn’t be avoided- The challenges with asynchrony in RTL tests and how to handle them
Prerequisites- Familiarity with building applications with React- Basic experience writing automated tests with Jest or another unit testing framework- You do not need any experience with React Testing Library- Machine setup: Node LTS, Yarn