Componentes UI reutilizables: nombres, variantes y reglas de diseño
Establece reglas claras de nombres, variantes y diseño para componentes UI reutilizables y así los equipos construyen pantallas coherentes y rápido en cualquier constructor visual.

Por qué se rompe la consistencia de pantallas en los constructores visuales
Los constructores visuales facilitan lanzar pantallas rápido. Esa velocidad también puede ocultar una deriva lenta en cómo se ve y se comporta la UI. Cuando varias personas construyen al mismo tiempo, las pequeñas decisiones se acumulan: una persona añade 12px de padding, otra usa 16px y una tercera copia un botón antiguo de otra pantalla.
Normalmente notas los síntomas pronto: componentes casi duplicados, espaciados que cambian entre pantallas y palabras ligeramente distintas para la misma acción (Guardar, Enviar, Confirmar). Los estados también suelen divergir. Un formulario muestra un estado de carga claro y otro no. Los mensajes de error varían y aparecen “arreglos rápidos” en una página que nunca vuelven al patrón compartido.
Ahí es donde nace la deuda de UI. Cada inconsistencia parece pequeña, pero con el tiempo hace que el producto parezca menos fiable. También ralentiza a los equipos porque la gente pasa más tiempo buscando la versión “correcta”, comparando pantallas y arreglando pequeñas diferencias tarde en la revisión.
Una biblioteca de componentes en un constructor visual es un conjunto compartido de bloques (botones, campos, tarjetas, encabezados, estados vacíos) que todos utilizan en lugar de recrearlos. En una plataforma como AppMaster, eso suele significar crear piezas UI reutilizables dentro de los creadores visuales, y luego acordar cómo se nombran, configuran y colocan para que las pantallas se mantengan coherentes aunque distintas personas las construyan.
El objetivo no es eliminar la creatividad. Es hacer que las partes de uso diario sean predecibles para que las decisiones sean intencionales. Las cuatro palancas que evitan la deriva son: nombres claros, variantes sensatas, reglas básicas de diseño (espaciado, alineación, rejillas) y hábitos de equipo que mantienen la biblioteca saludable a medida que la app crece.
Qué debe ser un componente reutilizable (y qué no)
No todo elemento bonito merece convertirse en componente. Si conviertes todo en componente, la gente pierde tiempo buscando en una biblioteca y ajustando opciones que no deberían existir.
Un buen componente reutilizable es algo que esperas ver en muchas pantallas o algo que debe verse y comportarse igual siempre. Piensa en patrones que los usuarios reconocen al instante: un botón primario, un campo de texto con ayuda, una tarjeta que previsualiza un registro.
Un conjunto pequeño inicial suele cubrir la mayoría de pantallas: botones, inputs, tarjetas, encabezados de página y un par de tipos de modales (confirmación y formulario).
Una regla práctica de extracción mantiene las decisiones simples: si usas la misma UI 2 o 3 veces, o es crítica para tu marca y debe ser idéntica, extráela. Si aparece una sola vez, mantenla local.
¿Qué debería quedarse como único? Diseños muy específicos ligados a una sola pantalla, secciones experimentales que cambias a diario y cualquier cosa que sea principalmente contenido. Por ejemplo, un banner de incorporación único con texto e ilustración personalizados rara vez merece ser componentizado.
Mantén cada componente enfocado. Un componente debe hacer un trabajo. Una “Tarjeta de Usuario” que además gestiona permisos, estado de facturación y acciones de admin se vuelve difícil de reutilizar. Un enfoque más limpio es una “Tarjeta de Usuario” enfocada en la presentación y botones de acción y chips de estado separados.
Convenciones de nombres que siguen siendo legibles bajo presión
Cuando un equipo entrega rápido, los nombres son lo primero que se rompe. Alguien duplica “Button2”, otro crea “CTA Button” y un tercero usa “BlueButton”. Una semana después, nadie sabe cuál reutilizar, así que crean uno nuevo. Así una biblioteca se convierte en un montón de casi-duplicados.
Un patrón simple te ayuda a mantener la consistencia incluso cuando estás cansado: Component - Parte - Estado. La mayoría de los componentes no necesitan los tres, pero el orden se mantiene.
Usa palabras que la gente realmente diga. Si tu equipo dice “Tarjeta Cliente”, no la llames “CRM Tile”. Si el producto la llama “Plan”, no la llames “SubscriptionBox”. El lenguaje llano gana porque es buscable.
Una regla evita mucha confusión: no mezcles “cómo se ve” y “para qué sirve” en la misma capa. Elige un enfoque. Si nombras por propósito, evita palabras de color. Si nombras por apariencia, evita el significado de negocio. Nombrar por propósito suele escalar mejor.
Ejemplos fáciles de escanear en una lista de componentes:
- Botón - Primario
- Botón - Secundario - Deshabilitado
- Input - ConEtiqueta
- Tarjeta - Compacta
- Modal - ConfirmarEliminar
Decide el formato una vez y regístralo: Title Case o sentence case, espacios alrededor de guiones y sin abreviaturas salvo que sean universales (como “URL”). En constructores visuales con muchos contribuidores, estas pequeñas elecciones mantienen la biblioteca legible a medida que la lista crece.
Variantes: cómo ofrecer opciones sin crear caos
Las variantes permiten reutilizar un componente en muchos lugares sin hacer copias nuevas. El truco es decidir desde el principio qué diferencias importan y bloquear todo lo demás.
Empieza con pocas dimensiones de variante que cubran necesidades reales. Para muchos componentes, tres son suficientes: tamaño (S/M/L), intención (primary/secondary/danger) y estado (default/hover/active). Si una nueva opción no encaja en esas dimensiones, trátala como un nuevo componente, no como “una variante más”.
Los valores por defecto importan más de lo que la gente cree. Las nuevas pantallas deberían verse correctas incluso cuando alguien arrastra un componente y no cambia nada. Fija valores por defecto seguros (por ejemplo size=M, intent=primary, state=default) para que la velocidad no se convierta en un estilo aleatorio.
Para cada componente con variantes, documenta y aplica:
- Dimensiones soportadas y valores permitidos (mantenlo corto)
- Valores por defecto
- Lo que nunca cambia entre variantes (padding, tipografía, radio de esquinas, espacio entre icono)
- Estados requeridos como deshabilitado y carga, además de error cuando sea posible la falla
- Cuándo crear un nuevo componente en lugar de añadir una variante
Ejemplo: tienes un botón “Enviar” en todo un portal de clientes. Si una persona hace un “Botón Enviar Ancho” y otra hace un “Botón Enviar Redondeado”, la deriva aparece rápido. Con reglas, mantienes un solo componente Button. Permites tamaño e intención, prohíbes padding y radio de esquina personalizados, y defines “Loading” una vez (mostrar spinner, bloquear clics) para que se comporte igual en todas partes.
Cuando alguien pide “solo un estilo más”, pregunta qué problema de usuario resuelve. Si la respuesta no está clara, probablemente sea caos disfrazado.
Reglas de diseño: espaciado, alineación y rejillas que sigue todo el mundo
Si las reglas de diseño son vagar, cada pantalla se convierte lentamente en una excepción. La forma más rápida de mantener los componentes coherentes es hacer el espaciado y la alineación aburridos: pocas opciones permitidas y usadas siempre de la misma manera.
Empieza con una escala de espaciado y prohíbe todo lo demás. Elige un conjunto pequeño (por ejemplo 4, 8, 12, 16, 24) y trátalo como un teclado: puedes tocar muchas canciones, pero solo con esas teclas. Si alguien necesita “18px”, normalmente significa que el componente o la rejilla están mal.
Sé explícito sobre qué significa cada tipo de espaciado:
- Padding es dentro de un componente y se mantiene consistente entre pantallas.
- Gap es la separación entre elementos dentro de un contenedor (filas de formulario, elementos de una barra de herramientas).
- Margin es fuera de un componente y debe usarse con moderación.
- Prefiere gap sobre márgenes apilados para que el espaciado no se duplique accidentalmente.
Las reglas de alineación eliminan esos retoques interminables. Un valor por defecto simple funciona bien: alinear texto a la izquierda, alinear etiquetas y campos en la misma línea vertical y mantener las acciones principales consistentes (por ejemplo, abajo a la derecha en un modal y alineadas a la derecha en el pie de un formulario). Usa alineación por baseline para filas con mucho texto. Reserva la centrada para filas solo con iconos.
Las rejillas no necesitan ser sofisticadas, pero deben existir. Decide columnas y gutters, y define qué ocurre en pantallas más pequeñas (incluso un “12 columnas en escritorio, columna única en móvil” básico ayuda). Establece anchos de contenedor y breakpoints una vez, luego construye pantallas dentro de esos rails.
Trampas comunes a vigilar: contenedores anidados que cada uno añade padding, márgenes de página inconsistentes, mezclar anchos fijos con columnas responsive y “números mágicos” que solo arreglan una pantalla.
Tokens de estilo: fuentes, colores y fundamentos de accesibilidad
Los tokens de estilo son las elecciones compartidas que usa todo el mundo. Cuando los tokens están claros, los componentes UI reutilizables se mantienen coherentes aunque distintas personas construyan pantallas.
Comienza con la tipografía como fuente única de verdad. Elige una escala pequeña para tamaño de fuente, peso y altura de línea y detente. La mayoría de equipos solo necesita unos pocos pasos (por ejemplo: body, small, caption, title y heading de página). Pon estas elecciones en un solo lugar para que el texto nuevo empiece con los mismos valores.
Los colores funcionan mejor cuando se nombran por su significado, no por códigos de pintura. “Primary” señala una acción principal. “Success” significa “funcionó” y “warning” significa “revisar esto”. Evita nombres como “blue-500” a menos que tu equipo ya piense en paletas.
Bases de accesibilidad que previenen problemas más adelante:
- Asegurar que el texto tenga suficiente contraste contra su fondo.
- Hacer objetivos táctiles lo bastante grandes para pulgares, no punteros de mouse.
- Escribir mensajes de error que expliquen qué pasó y qué hacer a continuación.
- No depender solo del color para comunicar estado.
Los tokens deben conectarse directamente a las variantes de los componentes. Una variante de Button como Primary, Secondary o Danger debe intercambiar tokens aprobados (color, borde, estilo de texto) y no introducir estilos únicos.
Mantén la lista de tokens lo suficientemente corta para que la gente realmente la use. Una buena prueba: ¿puede alguien elegir el token correcto en 5 segundos? Si no, fusiona o elimina.
Un conjunto inicial simple podría incluir tipografía (text.body, text.small, text.title), color (color.primary, color.success, color.warning, color.danger), espaciado (space.8, space.16, space.24), radio (radius.sm, radius.md) y foco (focus.ring).
Paso a paso: configurar una biblioteca de componentes en un constructor visual
Una biblioteca de componentes tiene menos que ver con “perfección de diseño” y más con eliminar micro-decisiones diarias. Cuando todos eligen los mismos bloques, las pantallas se mantienen coherentes incluso cuando distintas personas las construyen.
Una implementación práctica en 5 pasos
-
Audita lo que ya tienes. Escoge 5 a 10 pantallas reales y anota duplicados que veas repetidamente: botones, inputs, encabezados de sección, tarjetas y estados vacíos.
-
Elige una primera ola pequeña para estandarizar. Apunta a las 10 piezas principales que aparecen en todas partes y causan más desajustes. Para muchos equipos eso significa botones, inputs, dropdowns, diálogos modales, headers de tablas y tarjetas.
-
Escribe las reglas antes de construir. Manténlo corto: nombre del componente, cuándo usarlo, variantes permitidas y reglas de diseño alrededor (espaciado, alineación, ancho).
-
Reconstruye una vez y reemplaza gradualmente. Crea los nuevos componentes en tu constructor visual y bloquea las variantes acordadas. Reemplaza copias antiguas pantalla por pantalla. No intentes refactorizar todo en un sprint.
-
Añade una puerta de revisión ligera. Una persona (rotando semanalmente) revisa nuevos componentes y variantes. La meta no es fiscalizar; es prevenir forks accidentales.
Cómo se ve “suficientemente bueno”
Sabrás que funciona cuando un diseñador o PM pueda decir: “Usa la tarjeta estándar con encabezado compacto” y dos constructores obtengan el mismo resultado. Ese es el beneficio: menos decisiones puntuales, menos inconsistencias sutiles y construcción de pantallas más rápida.
Mantén tu biblioteca intencionalmente pequeña. Si alguien solicita una nueva variante, pregunta primero: ¿es una necesidad real o una variante existente puede cubrirlo con contenido diferente?
Errores comunes que causan UI lenta e inconsistente
La mayoría de las inconsistencias no vienen por mal gusto. Suceden porque copiar es fácil, los ajustes rápidos son rápidos y nadie vuelve a revisar. El resultado es un conjunto de pantallas casi iguales que son difíciles de actualizar.
Una trampa común es crear casi-duplicados en lugar de añadir una variante. Alguien necesita un “botón primario, pero un poco más alto” y duplica el componente. Una semana después, otra persona duplica eso. Ahora tienes tres botones que se parecen pero se comportan distinto y cada cambio se convierte en una búsqueda.
Otro freno es el componente sobreconfigurable: un mega componente con docenas de toggles. Parece flexible y luego se vuelve impredecible. La gente deja de confiar en él y crea versiones “solo para este caso”, lo que anula el propósito.
Los errores de diseño causan tanto daño como lo anterior. El mayor es mezclar responsabilidades: un componente controla sus propios márgenes externos mientras la pantalla también añade espaciado. Obtienes huecos aleatorios que varían por página. Una regla simple ayuda: los componentes definen padding interno, las pantallas controlan el espaciado entre componentes.
Problemas que suelen aparecer primero: las reglas de nombres se rompen bajo presión, los estados se añaden tarde (carga, vacío, error), los ajustes puntuales se vuelven permanentes y distintas personas resuelven el mismo diseño de formas diferentes.
Lista rápida de verificación de consistencia para cada nueva pantalla
Antes de añadir algo nuevo, párate 60 segundos y comprueba lo básico. Una pantalla puede verse bien mientras rompe el sistema silenciosamente, y esas pequeñas roturas se acumulan rápido cuando varios construyen en paralelo.
- Nomenclatura: Cada componente sigue el patrón acordado (por ejemplo,
Form/Input,Form/Input.HelperText,Table/RowActions). Si el nombre no ayuda a alguien a buscar y colocarlo rápidamente, cámbialo ahora. - Propietario + propósito: Cada componente compartido tiene un responsable (persona o equipo) y una frase que explique cuándo usarlo.
- Solo escala de espaciado: Todo padding, gap y margin usa pasos de espaciado aprobados. Si estás escribiendo un número nuevo “porque se ve bien”, detente y elige el paso más cercano.
- Estados incluidos: Las piezas interactivas clave incluyen estado de carga y error, no solo el camino feliz. Piensa en botón deshabilitado, error en input, lista vacía, reintentar.
- No inventar estilos nuevos: Construye la pantalla usando tokens y componentes existentes. Si quieres un color, tamaño de fuente, radio o sombra nuevo, trátalo como una petición al sistema, no como un arreglo de pantalla.
Ejemplo: dos personas construyen la misma funcionalidad, con y sin reglas
Maya y Leon están en un equipo de soporte al cliente. Necesitan dos pantallas: una lista de tickets (para escanear rápido) y una pantalla de detalles de ticket (para actuar sobre un ticket). Se dividen el trabajo y construyen en un constructor visual.
Sin reglas, cada persona hace “una tarjeta” diferente. Maya usa una tarjeta blanca con borde fino y sombra. Leon usa una tarjeta gris sin borde pero con padding extra. Una pantalla tiene un botón primario redondeado, la otra usa un botón cuadrado y un enlace de texto. El estado aparece como un punto de color en una pantalla y como una etiqueta en la otra. En la pantalla de detalles, los campos no se alinean porque las etiquetas tienen anchos distintos y el formulario se ve tambaleante.
La reunión de revisión se convierte en un debate de estilo, y una actualización simple (como añadir “Prioridad”) implica tocar múltiples diseños únicos.
Con reglas, empiezan desde componentes reutilizables compartidos en una biblioteca pequeña: un TicketCard para estructura y espaciado, un StatusBadge para estilos y contraste de estado y una ActionBar para acciones primarias consistentes.
Ahora la pantalla de lista usa una variante compacta de TicketCard para campos clave y una línea de vista previa. La pantalla de detalles usa una variante detallada para descripción completa, timeline y campos extra. La estructura se mantiene; la variante controla qué aparece.
La mejor parte es lo que no ves: menos comentarios en revisiones, menos preguntas de “¿por qué es diferente?” y actualizaciones más rápidas después. Cuando el equipo renombra “Closed” a “Resolved” y ajusta su color, cambian StatusBadge una vez y ambas pantallas se actualizan.
Mantener la coherencia con el tiempo (y siguientes pasos)
La consistencia no es una configuración única. En cuanto más gente construye pantallas, las pequeñas decisiones “solo para esta página” se multiplican y la biblioteca empieza a derivar.
Un proceso de cambios simple mantiene al equipo en movimiento sin convertir cada ajuste de botón en debate:
- Proponer: qué cambia y por qué (nuevo componente, variante, renombrar, desaprobar)
- Revisar: un diseñador o responsable de UI comprueba nombres, reglas de espaciado y básicos de accesibilidad
- Aprobar: un sí/no claro, con una nota corta si está limitado a un flujo específico
- Publicar: actualizar la biblioteca compartida y anunciar el cambio en un solo lugar
Las decisiones necesitan un hogar. Un documento corto de “reglas UI” es suficiente si incluye convenciones de nombres, la lista oficial de variantes (qué existe y qué no) y una lista de no-hacer (por ejemplo: “No crear un segundo ‘Primary Button’ con padding diferente”).
Programa una limpieza mensual. Úsala para fusionar duplicados, eliminar piezas no usadas y marcar componentes antiguos como obsoletos para que la gente deje de coger el equivocado.
Refactoriza cuando veas el mismo patrón dos veces (por ejemplo, dos equipos crean estados vacíos ligeramente distintos). Acepta un único caso cuando sea verdaderamente único, sensible al tiempo y poco probable que se repita.
Si construyes en AppMaster, un siguiente paso práctico es estandarizar un flujo de trabajo primero (como “Create ticket” o “Checkout”), y luego ampliar. Los constructores UI facilitan compartir los mismos componentes entre pantallas, y appmaster.io es un punto de referencia útil si tu equipo quiere un enfoque sin código que aún soporte aplicaciones completas, no solo maquetas de página.
FAQ
Empieza estandarizando las piezas que tocas en casi todas las pantallas: botones, campos, tarjetas, encabezados y uno o dos tipos de modales. Crea esos componentes reutilizables primero, fija valores por defecto sensatos y reemplaza las copias antiguas pantalla a pantalla en lugar de intentar refactorizar todo de una vez.
Una buena regla es extraerlo cuando usas la misma UI dos o tres veces, o cuando debe lucir y comportarse idénticamente siempre (como acciones principales o campos de formularios). Si es realmente único, está ligado a una sola pantalla o cambia a diario, mantenlo local para que la biblioteca siga siendo manejable.
Usa un patrón de nombres simple y mantén la consistencia, por ejemplo: "Componente - Parte - Estado". Prefiere palabras que tu equipo use en conversaciones y evita nombres basados en colores como "BlueButton", porque se vuelven engañosos cuando los estilos cambian.
Limita las variantes a diferencias que importen repetidamente, como tamaño, intención (primary/secondary/danger) y estado. Todo lo demás debe permanecer bloqueado para que la gente no "ajuste" componentes por pantalla y genere deriva. Si una nueva petición no encaja en tus dimensiones de variante, suele ser un nuevo componente, no “una opción más”.
Elige una pequeña escala de espaciado y usa solo esos valores en toda la app; cualquier otro valor suele indicar que la rejilla o el componente están desajustados. Prefiere que el espaciado lo controlen los contenedores (gaps) en lugar de márgenes apilados para evitar duplicar espaciado cuando los componentes se anidan.
Usa tokens nombrados por su significado, no por valores de color crudos, para que los equipos elijan "primary" o "danger" en lugar de inventar tonos nuevos. Asegura que las variantes de los componentes mapeen esos tokens, de modo que un “Primary Button” siempre aplique la misma tipografía y colores en todas partes.
Asegúrate de que cada componente interactivo compartido tenga al menos un estado deshabilitado y uno de carga, y añade estados de error cuando pueda producirse fallos (formularios, acciones de red). Si los estados no están estandarizados, tendrás pantallas que se sienten inconsistentes aunque parezcan similares, lo que aumenta las revisiones.
Los componentes sobreconfigurables parecen flexibles al principio, pero la gente deja de confiar en ellos porque su comportamiento se vuelve impredecible. Mantén los componentes enfocados en un solo trabajo y compón UIs más grandes a partir de piezas más pequeñas para que la reutilización sea simple y los cambios no creen efectos secundarios.
Usa una puerta ligera: un responsable rotativo revisa nuevos componentes y variantes para comprobar nombres, reglas de espaciado y estados requeridos. La meta no es poner burocracia, sino evitar forks accidentales temprano, porque unir casi-duplicados más adelante es lento y suele romper pantallas.
En AppMaster, crea piezas UI reutilizables dentro de los constructores web y móvil, y estandariza cómo se nombran, configuran y sitúan para que otros las reutilicen con confianza. Un enfoque práctico es estandarizar primero un flujo (por ejemplo, “Create ticket”), ajustar componentes y variantes allí, y luego ampliar la biblioteca a medida que más pantallas adopten los mismos patrones.


