Fiona López

Un sistema para app y desktop

Ordenar las librerías de Figma de todas las plataformas de Amphora para que diseño y desarrollo trabajen con las mismas piezas: fundamentos, iconos y componentes de app y de web, documentados.

Product Designer · Amphora Logistics · design system · [2025-2026]

FoundationsColor, tipografía, espaciado, radios
IconsLucide y propios, cinco tamaños
App componentsLa app del almacén
Web componentsLas plataformas de escritorio, con sus layouts

Había componentes. No había un sistema.

La librería global ponía web y app en el mismo índice, sin categorías: Date Picker junto a SideBar, Switch junto a Toggle button y una página llamada «Page 1». Para usar un componente había que saber de antemano que existía y en qué página estaba.

En las librerías de app y web casi no había componentes, sino elementos parecidos copiados uno al lado del otro. Y los que sí lo eran no tenían propiedades: cambiar un texto o un icono obligaba a buscar otra variante o a separar la instancia. Cada diseñadora acababa resolviendo lo mismo a su manera, y desarrollo recibía pantallas parecidas con medidas distintas.

De la librería global a App y Web, redibujado.
Lo que habíaLo que decidí

Una librería para todo.Web y app compartían los mismos componentes, sin clasificar. Un botón pensado para escritorio, con hover, acababa en una app que se usa con el dedo.

Fundamentos e iconos comunes, y una librería para cada plataforma.App y Web se separan, pero se ordenan con las mismas nueve categorías: cada plataforma tiene lo que necesita y quien conoce una sabe moverse por la otra.

Cada control con su propio tamaño.Había tamaños, pero no coincidían entre componentes. Un botón podía medir 16 o 20 px y un badge, 18 o 24. Elementos que en el diseño iban alineados no encajaban.

Una sola escala de tamaños de control.Todos los elementos que pueden acabar alineados, como botones y badges, comparten la misma escala. Colocados uno al lado del otro, encajan sin ajustes.

Primary, secondary, tertiary.Los tokens de color tenían nombre de jerarquía, pero no estaban asociados a ningún uso. Elegir uno era una decisión a ojo cada vez.

Una propuesta de tokens por uso.Cada color se asocia a dónde se aplica, para que la decisión esté tomada en el sistema y no en cada pantalla. Primitives, tokens globales y tokens de componente, en cascada: se explica justo debajo.

Tipografías sin uso real.Había estilos definidos, pero nadie sabía cuál tocaba en cada caso, así que cada pantalla resolvía la jerarquía a su manera.

Investigación y definición de uso.Se revisó cómo se usaba la tipografía y cada librería tiene ahora su página con el uso de cada estilo. [Completar con lo que encontraste en la investigación.]

Los tokens, en cascada.

En Foundations, los tokens se organizan en tres niveles. Cada nivel solo apunta al anterior, así que ningún valor se escribe a mano dos veces.

Esa cadena es la que da coherencia: si un valor cambia en la base, cambia en todo lo que lo usa.

Primitives Los valores en bruto: colores y números, sin ningún significado todavía.
black/900#111111green/700#1E5A47neutral/100#F6F6F412radius/1212
Global tokens Dicen dónde se aplica cada valor. El negro deja de ser un color y pasa a ser la acción principal.
color/action/primary→ black/900color/surface/subtle→ neutral/10012radius/control→ radius/12
Component tokens Cada componente tiene sus propios tokens, que apuntan a los globales y nunca a un color directamente.
button/commit/bg→ action/primarybadge/on/bg→ action/primaryswitch/on/bg→ action/primary12button/radius→ radius/control
Un día, el color principal es el verde. Se cambia una sola referencia, color/action/primary, y todos los componentes que la usan se actualizan solos. Pruébalo.
Guardar Seleccionado Botón, badge y switch, con su token de componente.

Un ejemplo: el botón.

Antes, cada combinación de botón era un dibujo distinto. Ahora es un solo componente por plataforma: las variantes deciden tipo, tamaño y estado, y las propiedades deciden lo demás, sin duplicar nada.

Guardar
Button · propiedades
Tipo
Tamaño
Estado
Icono izquierdo
Icono derecho
VariantesPara lo que cambia el aspecto del botón: tipo, tamaño, estado y borde.
BooleansPara mostrar u ocultar elementos, como el icono, sin crear una variante nueva por cada combinación.
Instance swapPara elegir el icono directamente desde la librería de Icons, sin separar el componente.

El mismo componente, adaptado a cada plataforma.

WebLos tipos se clasifican por la utilidad que tienen en la plataforma: guardar, navegar, usar una herramienta o eliminar.
CommitUtilityNavigationToolGhost plainGhost destructiveDestructive
7 tipos · utility, commit, navigation, tool, ghost plain, ghost destructive y destructive 4 tamaños · Small 32, Medium 40, Large 48 y Hero 56 Estados · default, hover, pressed, disabled y loading, más selected en tool Outline · relleno o con borde
AppLos tipos se clasifican por el peso que tienen: de la acción principal de la pantalla a la más discreta.
PrimarySecondarySecondary outlinedTonalConfirmGhostDestructiveDestructive outlined
8 tipos · primary, secondary con relleno o borde, tonal, confirm, ghost y destructive con relleno o borde 4 tamaños · XS, S, M y L Estados · default, pressed, disabled y loading Sin hover: en el almacén el botón se pulsa con el dedo.

App y web hablan el mismo idioma.

Las dos librerías se ordenan con las mismas categorías, por lo que hace cada componente. Quien conoce una, encuentra lo que busca en la otra.

NavegaciónAccionesSelección Entrada de datosContenedores y superposicionesCards y listas Visualización de datosFeedback y progresoZona de trabajo

Un sistema documentado se puede cuidar entre todos.

OverviewQué contiene la librería y cómo se organiza.
FAQsLas dudas que se repiten, resueltas una vez.
ContributeCómo proponer un componente nuevo o un cambio.
Estado de cada componenteListo, en revisión o pendiente, a la vista en el índice.

Ir más despacio al principio para ir más rápido después.

Hacer componentes bien pensados lleva más tiempo: hay que estudiar desde el principio todos los casos posibles, o el máximo que se pueda. Pero ese tiempo se recupera. Después, el equipo los usa mucho más rápido, sabe cómo se comportan y tiene una guía de cómo usarlos.

Estandarizar no es producir menos. Es dedicar el tiempo donde más rinde.