Sistemas de diseño con Atomic Design

El término «página web» es una reminiscencia del pasado. Es necesario de ir más allá de diseñar solo «páginas» para comenzar a crear sistemas de diseño. Atomic Design provee un método y las herramientas para lograrlo.

La Web ha evolucionado y ya no está confinada a un navegador web en una PC, sino que ha dado el salto a una enorme cantidad de dispositivos muy diversos, desde dispositivos móviles hasta televisiones inteligentes, todos con diferentes capacidades, tamaños, resoluciones de pantalla, formatos y métodos de interacción.

Pruebas de responsividad en varios dispositivos móviles.

Con una diversidad tecnológica tan grande, los diseñadores y desarrolladores que crean, diseñan y mantienen sitios y apps en la web pueden beneficiarse al utilizar métodos y mejores prácticas que ayuden a mantener la consistencia y la escalabilidad de sus proyectos, utilizando sistemas de diseño.

Aunque se recomienda nunca comenzar desde cero y un diseñador puede utilizar sistemas de diseño como Material Design, las Human Interface Guidelines de Apple o Fluent Design System, en ocasiones es necesario crear un sistema de diseño propio. Para hacerlo con un enfoque metodológico se utiliza la técnica de Atomic Design.

La metodología de Atomic Design

Diseño Atómico (Atomic Design) es una metodología de diseño creada por Brad Frost enfocada en la reutilización acumulativa de elementos modulares sencillos para crear estructuras de información más complejas.

El Atomic Design no se trata de diseñar una sola instancia de una página web a la vez, sino que vistos desde un punto de vista más amplio, se usa para crear la base de sistemas más grandes. Atomic Design ayuda a que el diseño de un producto digital pueda adaptarse con facilidad a diferentes dispositivos o plataformas, y es compatible con procesos de diseño centrado en el usuario, ya que se puede implementar desde las etapas tempranas de diseño usando sketches y prototipos.

La metodología de Atomic Design se compone de cinco etapas para crear interfaces y sistemas:

Atomic Design. Crédito: Brad Frost

1. Átomos

Los átomos son los elementos básicos que se utilizan en la construcción de interfaces digitales que no pueden ser reducidos en componentes más simples sin perder su funcionalidad. Los átomos para una página web incluyen las etiquetas básicas de HTML como párrafos, campos de texto, botones y  etiquetas, así como elementos básicos de estilo como colores y tipografías.

Átomos en HTML

La tabla periódica de elementos HTML de Josh Duck ilustra como los sitios web, web apps, mensajes de correo, intranets y cualquier cosa que se visualice con un navegador web están compuestos de los mismos elementos:

Tabla periódica de elementos HTML. Crédito: MadeByMike

2. Moléculas

Las moléculas son grupos de elementos visuales (o átomos)que funcionan juntos como una unidad y que tienen propiedades y funcionalidades que los átomos individuales no tienen.

Un ejemplo sería juntar un campo de texto, una etiqueta de formulario y un botón para crear la molécula de un formulario de búsqueda.

Molécula de búsqueda. Crédito: Brad Frost

Cuando se combinan, sus átomos tienen un propósito nuevo: la etiqueta define la entrada del campo, y el botón envía la información del formulario para ejecutar una búsqueda. El resultado es un componente simple y reutilizable que puede ser incluirse en cualquier sistema que necesite la funcionalidad de búsqueda.

3. Organismos

Los organismos son componentes más complejos compuestos por combinaciones de átomos y moléculas. Los organismos se integran para crear las secciones y los elementos funcionales de la interface de una página o app.

Si a nuestra molécula de búsqueda le agregamos algunos elementos más, podremos obtener el organismo del encabezado, un elemento común en muchas páginas web.

Organismo de Encabezado. Crédito: Brad Frost

4. Plantillas

Las plantillas son objetos a nivel de una página (en este punto abandonamos la metáfora de los elementos químicos y regresamos a elementos editoriales) que utilizan componentes creados por combinaciones de átomos, moléculas u organismos en una distribución que hace tangible la estructura general de contenido.

Plantilla con contenedores para contenido. Crédito: Brad Frost

Las plantillas organizan los componentes básicos y les agregan contexto para que la página funcione correctamente. Una característica importante de las plantillas es que se enfocan en la estructura del contenido en lugar del contenido final de la página.

Los sistemas dinámicos deben poder adaptarse a contenido dinámico que cambia todo el tiempo y las plantillas proveen los mecanismos para definir las propiedades de los componentes que las integran, como el tamaño y alineación de sus imágenes o la longitud y estilo de sus encabezados y párrafos.

5. Páginas

Las páginas son instancias específicas de las plantillas que utilizan contenido real. Si tomamos la plantilla de la capa anterior y la llenamos contenido real en sus contenedores podremos ver el resultado final del proceso.

Página con contenido final. Crédito: Brad Frost

Ventajas de utilizar Atomic Design

Una de las principales ventajas de utilizar esta metodología es que está enfocada en la modularidad, lo que permite crear elementos simples que pueden reutilizarse constantemente en equipos de diseño y desarrollo de cualquier tamaño sin perder la consistencia del diseño final.

La modularidad enAtomic Design también habilita la transversalidad entre los componentes abstractos y concretos del diseño, lo que permite generar diferentes patrones de interfaz reutilizando los mismos elementos al reorganizar su arquitectura y crear nuevos contextos para ellos.

Modularidad y reutilización de elementos atómicos. Crédito: Brad Frost

Atomic Design es un acercamiento para crear un sistemas de diseño (design systems) para crear prototipos y código más eficiente y que cualquier persona en el equipo de producción puede entender y utilizar para procesos de diseño y desarrollo más rápidos y productivos.

Atomic Design no es un proceso lineal, sino un modelo de pensamiento sobre el que se puede iterar para crear sistemas complejos partiendo de elementos sencillos.

Equipos de producto como los de Airbnb se han beneficiado al implementar Atomic Design en sus procesos de diseño y desarrollo, integrándolo a los procesos que ya usaban.

PatternLab para sistemas de diseño

Brad Frost y Dave Olsen crearon Pattern Lab, un gestor de sistemas de diseño basados en los principios de Atomic Design. Este gestor es opensource y tiene opciones para ajustar el tamaño de las páginas y de agregar comentarios a las secciones del sitio y a los bloques de construcción a nivel de código.

Pattern Lab, un gestor de elementos para Atomic Design

La versión original de Pattern Lab está escrita en PHP, pero ya hay dos versiones para NodeJS: una para Gulp y otra para Grunt. Es recomendable explorar el demo en PatternLab para entender mejor cómo funciona una implementación real de Atomic Design.

Atomic Design con Patternlab

La diversidad en los dispositivos con los que los usuarios navegan la web o consumen información no se detendrá, sino que seguirá creciendo de manera acelerada, y posiblemente los modelos de diseño y desarrollo tradicionales no soportarán esa diversidad sin adaptarse a formas más ágiles de trabajo. Atomic Design es una metodología que puede ayudarnos a crear sistemas de diseño para construir páginas y apps que se puedan adaptar a cualquier plataforma.

Sistema de diseño: Fluent Design System

Microsoft creó en 2009 «Metro», el primer sistema de diseño creado por ellos mismos, con el objetivo de revitalizar el diseño de apps para Windows Phone, abriendo camino a lo que hoy es Fluent Design System.

El Microsoft Design Language o Metro, fue un sistema de diseño creado como una nueva manera de visualizar información en dispositivos móviles. Pensado en principios de comunicación visual rápida, inspirada en las señales de tránsito, era muy minimalista, hacia un uso fuerte de tipografía, colores, animaciones y era un cambio radical hacia el diseño de apps en el ecosistema de Microsoft. En ese sentido, Metro fue pionero en muchos conceptos que hoy son centrales en Material Design o en las Human Interface Guidelines de Apple.

La app de TV Azteca para Windows Phone con Metro Design, diseñada en 2013 por Tesseract Space

Aunque la recepción de Metro fue muy buena con Windows Phone y con xBox (llegó a ganar el «Interactive Gold Award» de la Industrial Designers Society of America en 2011), Metro se integró en Windows 8 para PCs y fue ahí donde encontró mucha resistencia: casi ninguna aplicación de Microsoft (como Internet Explorer o los programas de Office) adoptaron el sistema visual, lo que llenó al sistema operativo de inconsistencias, volviéndolo complejo y poco usable.

Metro fue descontinuado en 2015 junto con la plataforma de Windows Phone, aunque aún se encuentran rastros del sistema de diseño en la plataforma de xBox y en Windows 10.

Microsoft Fluent Design System

Microsoft anunció Design Fluent System en su evento Build en 2017 como un nuevo sistema de diseño que evolucionaría a partir de Metro pero que sería llevado en una nueva dirección: el diseño de Aplicaciones Universales para Realidad Mixta. Aquí hay dos conceptos nuevos que vale la pena explorar antes de entrar en detalle sobre el sistema de diseño.

UWP: Aplicaciones Universales para Windows

Microsoft presentó en 2016 su Universal Windows Platform o UWP, una plataforma para desarrollar aplicaciones que pueden correr en PCs, laptops, tablets, consolas de videojuegos, móviles, dispositivos de IoT o visores de realidad virtual o aumentada sin necesidad de tener que reescribirlas para cada dispositivo.

Una app UWP puede ser desarrollada en lenguajes como C++, C#, F#, VB.NET, XAML o JavaScript para que los programadores puedan trabajar con lo que ya conocen y reutilicen lo que ya han hecho antes.

La visión de Microsoft para Universal Windows Platform: un solo Windows en muchos dispositivos.

La apps universales de Microsoft son por diseño responsivas y pueden adaptarse a cualquier formato de pantalla o estilo de interacción (teclado, táctil, natural, voz, controles, etc), y se distribuyen, sincronizan y actualizan a través de la tienda de apps de Windows.

Realidad Mixta

La Realidad Mixta (Mixed Reallity o MR), también llamada Realidad Híbrida (Hybrid Reality o HR) es la fusión de mundos virtuales con el mundo fìsico real para producir entornos virtuales y visualizaciones donde los objetos físicos y los digitales viven juntos e interactúan en tiempo real. La Realidad Mixta no es exclusiva del mundo físico o del virtual, sino que es una mezcla de Realidad Virtual (VR) y Realidad Aumentada (AR) por medio de tecnología inmersiva.

Concepto de trabajo con Realidad Mixta usando Hololens.

En 2016 Microsoft lanzó Hololens, su primer dispositivo para Realidad Mixta, un visor que muestra apps universales a su usuario (llamados «hologramas«) que son geolocalizadas.

A diferencia de otros visores de realidad virtual como Oculus Rift , Hololens es un dispositivo autónomo que es inalámbrico, corre Windows 10 e interactúa por medio de interfaces naturales de voz y gestuales.

Hololens 2, de Microsoft

Principios de diseño de Fluent Design System

«Fluent Design System es nuestro sistema para crear interfaces de usuario que son adaptables, empáticas y bellas»

– Microsoft Build, 2018

Fluent Design System está basado en 3 principios de diseño:

  1. Adaptatibilidad. Las experiencias en Fluent se sienten naturales en cada dispositivo y se adaptan al medio ambiente del usuario. Una experiencia fluida se siente cómoda en una tableta, en una PC de escritorio y en un Xbox; incluso funciona bien en un visor de realidad mixta. Cuando se le agrega más hardware, como un monitor adicional a la PC,
    Fluent lo aprovecha como parte de la experiencia.
  2. Empatía. Las experiencias en Fluent son intuitivas y se ajustan al comportamiento y la intención del usuario, comprenden y anticipan lo que se necesita. Estas experiencias unen personas e ideas, ya sea que estén en lados opuestos del mundo o parados uno al lado del otro.
  3. Estética. Las experiencias en Fluent son atractivas e inmersivas. Al incorporar elementos del mundo físico, una experiencia en Fluent aprovecha las cosas que son fundamental para el usuario: utiliza la luz, la sombra, el movimiento, la profundidad y la textura para organizar la información de una manera que se siente intuitiva e instintiva.
Fluent Design incorpora efectos físicos que mejoran la experiencia del usuario, al emular experiencias que sus cerebros procesan de manera eficiente.

Los elementos de estética de Fluent Design System como luz, profundidad, movimiento, material y escala aplican tanto para pantallas de escritorio o móviles como para experiencias en realidad mixta:

https://www.youtube.com/watch?v=vcBGj4R7Fo0

Ejemplos de Fluent Design System

Estos son algunos ejemplos y pruebas de concepto de aplicaciones que utilizan Fluent Design System, tanto de las creadas por Microsoft como por terceros.

Recursos de Fluent Design System

Fluent Design System tiene su propio sitio en fluent.microsoft.com en el que se pueden encontrar las guías de estilo y la documentación de diseño, así como guías de implementación para apps en Universal Windows Platform, junto con guías de controles y patrones para Fluent, guías de accesibilidad y toolkits de prototipado para Figma, Sketch, Framer, Adobe XD, Illustrator y Photoshop.

Sistema de diseño: Apple Human Interface Guidelines

Partiendo de las bases del diseño para el sistema operativo Mac OS X, Apple creó guías de diseño para ofrecer una experiencia consistente en el resto de su familia de productos. Estas son las Guías de Interfaces para Humanos (Human Interface Guidelines) de Apple.

Las Guías de Interfaz Humana (Human Interface Guidelines o HIG) son documentos para creación de productos digitales que ofrecen a los diseñadores y programadores un conjunto de recomendaciones para que las interfaces de sus aplicaciones sean más intuitivas, fáciles de utilizar y coherentes entre ellas. La mayoría de este tipo de guías se limitan a definir una apariencia común para las aplicaciones en un entorno particular.

Las guías de interfaz humana enumeran reglas de diseño muy específicas, a veces basadas en estudios de interacción humano-computadora y de usabilidad, y también en convenciones creadas por las preferencias de los diseñadores de la plataforma.


Primera edición de las Human Interface Guidelines de Apple, de 1987. Crédito:
Bryant Hodson

Apple publicó su primera versión de sus guías de interfaz humana en 1987, con el lanzamiento de la Macintosh II, la primera computadora de Apple con pantalla a color. Desde esta época temprana, las guías de Apple tienen principios que hoy asociamos a un buen diseño de experiencia de usuario:

“La interfaz de escritorio de Apple se basa en el supuesto de que las personas son curiosas por instinto: quieren aprender, y aprenden mejor mediante una exploración autodirigida activa de su entorno. Las personas se esfuerzan por dominar su entorno: les gusta tener un sentido de control sobre lo que están haciendo, ver y entender los resultados de sus propias acciones «.

Human Interface Guidelines de Apple, 1987 , pág 2

Las guías de interfaz humana de Apple se actualizan con frecuencia y han cambiado mucho a lo largo de la historia de la compañía, adaptándose a nuevos entornos, productos y tecnologías.

Guías de Interfaces para Humanos

Aunque no es un sistema de diseño completo, las Guías de Interfaz para Humanos de Apple cubren esa función al proporcionar a los diseñadores y programadores documentación, guías y elementos visuales que pueden utilizar para que sus aplicaciones sean consistentes con el entorno donde serán utilizados.

Lamentablemente, las guías de interfaz para humanos de Apple
actualmente se encuentran fragmentadas por familia de productos.

Familias de dispositivos de Apple. Aunque se parecen, cada una tiene guías de diseño diferentes.

Estas son:

Principios de diseño para apps en Apple

«Los principios de diseño son la clave para entender cómo el diseño satisface las necesidades humanas de seguridad, significado, triunfo y belleza. Es importante conocer estos principios y cómo usarlos para diseñar experiencias de usuario más acogedoras, comprensibles, empoderadoras y gratificantes».

Conferencia “Essential Design Principles” in WWDC 2017

Aunque las guías de cada familia de producto de Apple tienen temas de diseño diferentes, todas comparten (más o menos) los mismos principios de diseño:

  1. La integridad estética representa qué tan bien la apariencia y el comportamiento de una aplicación se integran con su función. Por ejemplo, una aplicación que ayuda a las personas a realizar una tarea seria puede mantenerlos enfocados mediante el uso de gráficos sutiles y discretos, controles estándar y comportamientos predecibles. Por otro lado, una aplicación inmersiva, como un juego, puede ofrecer una apariencia atractiva que promete diversión y emoción, al mismo tiempo que fomenta el descubrimiento.
  2. La consistencia en el diseño está basada en estándares y paradigmas familiares mediante el uso de elementos de interfaz provistos por el sistema operativo, iconos conocidos, estilos de texto estándar y terminología uniforme. Una aplicación debe incorpora características y comportamientos en la manera que la gente las espera.
  3. La interacción directa del usuario con el contenido en su pantalla los compromete y les facilita la comprensión de lo que están haciendo. Los usuarios saben que están afectando directamente la aplicación cuando giran el dispositivo o usan gestos para afectar el contenido en pantalla. A través de la interacción directa pueden ver los resultados
    de sus acciones de manera inmediata.
  4. La retroalimentación ayuda a los usuarios a reconocer las acciones que son útiles y les muestra resultados para mantenerlos informados. Las funciones que ya están incorporadas proporcionan comentarios perceptibles en respuesta a cada acción del usuario. Los elementos interactivos se resaltan brevemente cuando se utilizan, los indicadores de progreso comunican el estado de las operaciones que necesitan mucho tiempo, y la animación y el sonido ayudan a aclarar los resultados de las acciones del usuario.
  5. Las metáforas ayudan a que las personas aprendan más rápidamente cuando los objetos y acciones virtuales de una aplicación son similes de experiencias familiares, ya sea basadas en el mundo real o en el digital. Las metáforas funcionan bien en las plataformas de Apple porque las personas interactúan físicamente con ellas en la pantalla: mueven elementos para exponer el contenido que está debajo, arrastran y deslizan contenido, activan interruptores, deslizan controles y se desplazan a través de las opciones de un menú. Inclusive pasan las páginas de libros y revistas.
  6. Las personas, y no las aplicaciones, son las que tienen el control. Una aplicación puede sugerir un curso de acción o advertir sobre consecuencias peligrosas, pero es un error que la aplicación se haga cargo de la toma de decisiones. Las mejores aplicaciones encuentran el equilibrio entre ser muy permisivas y evitar resultados que el usuario no quiere. Las aplicaciones puede hacer que las personas se sientan en control al mantener sus elementos interactivos familiares y predecibles, confirmando acciones destructivas y facilitando la cancelación de operaciones, incluso cuando ya están en marcha.

Ejemplos de aplicaciones de Apple

Apple mantiene un ecosistema con dispositivos, aplicaciones y servicios muy diversos y para usuarios muy variados. Estos son algunos ejemplos de aplicaciones que utilizan sus Guías de Diseño:

Recursos de diseño de apps para Apple

Apple mantiene un sitio web (ya no hay que comprar el libro) con las guías de diseño de interfaz para humanos en sus plataformas. En cada una de ellas es posible leer la documentación para cada familia de dispositivos y ver con detalle tanto especificaciones técnicas de los dispositivos, así como los diferentes elementos, componentes, animaciones, interacciones, paletas de colores y tipografías que se recomiendan utilizar al diseñar aplicaciones para ellas, así como bibliotecas de iconos y kits para programadores.

Sistema de diseño: Material Design

Cuando Larry Page tomó el rol de CEO de Google en 2011, una de sus prioridades fue estandarizar los criterios de diseño en los productos de la compañía, dando los primeros pasos hacia la creación de Material Design, el sistema de diseño de Google.

En 2011, Google ya tenía varios productos para usuarios finales, desde su buscador web, Google Maps hasta GMail o Google AdWords. Los usuarios de estos servicios podían utilizarlos en un navegador web, o como apps para Android o iOS.

El problema entonces es que las diferentes versiones de un mismo producto era manejados por equipos diferentes, con ideas y enfoques que no siempre estaban alineados, por lo que el mismo servicio tenía muchas inconsistencias en su diseño entre diversas plataformas.

Comparación de las vistas de GMail en desktop, app para Android y web móvil.

El primer intento de Google para estandarizar criterios de diseño se llamó Project Kennedy, con el objetivo de enfocar el diseño en todos los productos y servicios de la empresa con los conceptos de refinamiento, espacio, limpieza, elasticidad, utilidad y sobre todo, simplicidad.

Sin embargo, Project Kennedy se quedó corto en su alcance, al comenzar a surgir más inconsistencias entre plataformas, y problemas de usabilidad e implementación con los equipos de producción.

Material Design

En 2014, un equipo de diseñadores dentro de Google, lidereados por Matías Duarte, comenzaron a trabajar en un proyecto con el nombre «Quantum Paper«, con el objetivo de crear un sistema de diseño que estuviera más alineado a los procesos de creación de productos y a los principios de la marca de Google. En el evento de Google I/O de ese año se presentó una versión refinada llamada Material Design.

Desde entonces, Material Design ha sido adoptado por todos los equipos de diseño y desarrollo en Google, y todos han colaborado al sistema de diseño para hacerlo más robusto, flexible y consistente. Google comenzó a publicar guías y componentes de Material Design para que otros diseñadores pudieran utilizarlo para crear aplicaciones dentro del ecosistema de Google o incluso usarlo como punto de partida para crear sus propias versiones del mismo.

Principios de Material Design

Material Design está basado en 3 objetivos:

  1. Crear un lenguaje visual que sintetice los principios clásicos de buen diseño con la innovación y posibilidades que ofrecen las nuevas tcnologías y la ciencia.
  2. Unificar el desarrollo en un mismo sistema que integre la experiencia de usuario a través de múltiples plataformas, dispositivos y métodos de interacción
  3. Ser personalizable y extensible para proveer una base flexible para la innovación y la expresión de la marca.
https://www.youtube.com/watch?v=NPjzUyax4tw

A su vez, Material Design está basado en 5 principios de diseño:

  1. El Material es la metáfora. Material Design se inspira en el mundo real y en sus texturas, incluyendo cómo el material refleja luz y proyecta sombras. Este material es una interpretación de medios como el papel y la tinta en el mundo digital.
  2. Es atrevido, gráfico e intencional. El diseño en Material Design se guía por los métodos de diseño para impresos: tipografía, rejillas, espacio, escala, color e imágenes, para crear jerarquías, significado y enfoque que meta los usuarios en la experiencia.
  3. La animación tiene significado. La animación enfoca la atención del usuario y ayuda a mantener la continuidad, por medio de retroalimentación muy sutil y transiciones coherentes. Mientras los elementos de la interfaz aparecen en la pantalla, se transforman y reorganizan a través de la interacción, generando así nuevas transformaciones.
  4. Una base flexible. El sistema de diseño de Material Design fue creado para permitir que una marca pueda usarla como un medio de expresión. Se integra con una base de código hecho a la medida que permite la integración natural de componentes, plug-ins y elementos de diseño.
  5. Es multi-plataforma. Material Design mantiene el mismo diseño de interfaz en diferentes plataformas, utilizando componentes en Android, iOS, Flutter y para la web.

Ejemplos de Material Design

Como sistema de diseño, Material Design no solo es utilizado por Google, sino que ha sido adoptado por muchas empresa de todos tamaños como base para la creación de su propia identidad visual.

Recursos de Material Design

Material Design tiene su sitio web oficial en material.io, en el que se pueden revisar las guías completas y la documentación del sistema de diseño, así como guías para diseño e implementación para web, Android, iOS y Flutter.

El sitio ofrece muchos recursos para diseño y desarrollo con Material Design, como bibliotecas de iconos, una herramienta para creación de paletas de color, y casos de estudio de implementación del sistema de diseño para diferentes industrias.