Empezar

Cómo hacer que la UI generada por IA parezca menos genérica

Casi todas las guías sobre este tema responden con consejos de prompt: pedir una paleta más atrevida, mencionar una era del diseño o decir «que no sea genérico». Eso cambia una pantalla. Estos seis cambios modifican los valores que el agente lee antes de escribir cualquier cosa, por lo que se mantienen en todas las pantallas posteriores.

Actualizado 2026-07-27

Por qué los consejos a nivel de prompt son insuficientes

Los consejos de prompt no son erróneos, simplemente son efímeros. Si se le indica que use una paleta cálida, el agente lo hará. Seis pantallas después, recordará el adjetivo pero no los valores, por lo que hará una aproximación, y las aproximaciones divergen. Ese es el mecanismo detrás de por qué los sitios creados con IA convergen, y es la razón por la que las soluciones a continuación se escriben como valores y no como instrucciones.

Regla general durante la lectura: si un cambio puede expresarse como un número o un hex, póngalo en los tokens. Si solo puede expresarse como un adjetivo, es que aún no ha terminado de tomar la decisión.

1. Matice los neutros hacia su color de acento

Este es el cambio con mayor impacto y casi nadie lo hace. Los temas predeterminados combinan una escala de grises puros con un acento inconexo, y ambos parecen no pertenecer al mismo producto. Los sistemas de diseño sesgan los neutros unos pocos grados hacia el tono de acento, con una croma muy baja.

/* Default: pure neutral, unrelated to the accent */
--background: oklch(0.145 0 0);
--muted:      oklch(0.269 0 0);
--primary:    oklch(0.55 0.19 45);

/* Tinted: same lightness, a trace of the accent hue */
--background: oklch(0.145 0.008 45);
--muted:      oklch(0.269 0.012 45);
--primary:    oklch(0.55 0.19 45);
Una croma de 0.008 a 0.015 es imperceptible conscientemente y cambia la percepción de toda la página.

Mantenga la croma realmente baja. Por encima de aproximadamente 0.02, los grises empiezan a percibirse como colores en lugar de neutros, y habrá cambiado un aspecto obvio por otro.

2. Añada una segunda familia tipográfica

Que una sola familia se encargue de los encabezados, el cuerpo, las etiquetas y los números es la forma más rápida de detectar una UI generada. La solución es una combinación con contraste real, no dos tipografías grotescas similares, lo cual se percibiría como un accidente en lugar de una decisión.

  • Serif para display + grotesque para cuerpo. El contraste más fiable y difícil de errar.
  • Grotesque para display + humanist para cuerpo. Más discreto; funciona para UI de producto densas donde una serif resultaría decorativa.
  • Una superfamilia, dos extremos. Una versión condensed heavy frente a una regular. Seguro cuando la marca necesita mantener la cohesión.
  • Una mono para datos. No como decoración: las cifras tabulares evitan que los números oscilen entre filas.

Sea cual sea su elección, escriba las familias, pesos y el espaciado entre letras exactos en los tokens. *Combinar una serif con una sans* es un adjetivo, y los adjetivos se degradan.

Preview unavailable here. Browse complete kits in the kit gallery.

3. Escale el radio según el tamaño del elemento

Un único --radius aplicado en todas partes es la tercera señal. El radio se percibe *en relación con el elemento en el que se encuentra*, por lo que los mismos 8px hacen que un botón pequeño parezca deforme y que una tarjeta grande parezca apenas redondeada.

/* One value, applied to everything */
--radius: 0.5rem;

/* Scaled to element size */
--radius-sm: 0.25rem;  /* inputs, chips, badges */
--radius-md: 0.5rem;   /* buttons, small controls */
--radius-lg: 0.875rem; /* cards, panels */
--radius-xl: 1.25rem;  /* modals, sheets, hero surfaces */
Cuatro pasos son suficientes. El objetivo es la proporción, no la granularidad.

4. Rompa la cuadrícula uniforme

Tres tarjetas iguales sugieren que cada elemento tiene el mismo peso. Eso casi nunca es cierto, y un diseño que lo sugiere de todos modos no aporta información sobre el producto.

El cambio es editorial más que técnico: decida qué elemento es realmente el más importante y deje que el diseño lo refleje. Una tarjeta ancha sobre dos estrechas. Una división de dos tercios y un tercio. Una única funcionalidad con imágenes de apoyo reales en lugar de tres iconos. La cuadrícula es correcta cuando los elementos son genuinamente pares. El error es usarla por defecto.

Consistency check · No type scale

The same plan card, built two ways in Mauve Broadcast.

Drifting system

Pricing

Starter$19/mo

Everything a small team needs to ship a branded UI.

Consistent system

Pricing

Starter$19/mo

Everything a small team needs to ship a branded UI.

What to notice: Izquierda: cada sección redefine su propio tratamiento tipográfico. Derecha: una sola escala aplicada en todo el conjunto.

5. Establezca un modelo de elevación

La UI generada suele tener una única sombra, aplicada a cualquier elemento que deba parecer elevado. Los sistemas de elevación reales cuentan con dos o tres niveles que mantienen una coherencia sobre la procedencia de la luz, y utilizan cambios en el borde y el fondo además de la sombra, o a menudo en su lugar.

/* One shadow doing every job */
--shadow: 0 1px 3px rgb(0 0 0 / 0.1);

/* Levels that agree about a light source */
--elevation-0: none;                                  /* flush: use a border */
--elevation-1: 0 1px 2px rgb(0 0 0 / 0.06);           /* cards */
--elevation-2: 0 4px 12px rgb(0 0 0 / 0.08);          /* dropdowns */
--elevation-3: 0 16px 40px rgb(0 0 0 / 0.12);         /* modals */
En el modo oscuro, prefiera una superficie más clara antes que una sombra más densa: las sombras apenas se perciben sobre fondos oscuros.

6. Escríbalo donde el agente pueda volver a leerlo

Los cinco cambios anteriores tienen poco valor si permanecen en una conversación. Inclúyalos en un archivo DESIGN.md y en los archivos de design tokens del repositorio; así, el agente resolverá los mismos valores en cada ejecución, incluso en una sesión abierta el próximo mes.

  1. 1

    Instale el contrato de diseño

    Escribe el archivo DESIGN.md y los archivos de design tokens en el proyecto.

    npx --yes identityforge@latest install --client claude-code
  2. 2

    Aplique un kit que ya incorpore estas decisiones

    Neutros tintados, un emparejamiento real, radio escalado y un modelo de elevación, ya definidos.

    identityforge apply terrain-vivant
  3. 3

    Referéncielo desde su archivo de agente

    Una línea en AGENTS.md para que el contrato se encuentre deliberadamente en lugar de por azar.

    Never hardcode theme colors. Use the semantic tokens in DESIGN.md.
  4. 4

    Verifique que se haya mantenido

    Abra una nueva sesión, cree una pantalla no relacionada y compare su color primario y su radio con la primera. Si son idénticos, significa que los valores se están leyendo, no recordando.

Preview unavailable here. Browse complete kits in the kit gallery.

Lo que sigue pareciendo generado después de los seis cambios

Cualquier guía en esta SERP termina en la lista de correcciones. Ese es el lugar equivocado para detenerse, porque hay dos indicios que sobreviven a los seis cambios y son los que la gente nota sin saber nombrarlos. Ambos están fuera del archivo de design tokens tal como se escribe habitualmente, que es precisamente la razón por la que persisten.

Todo se mueve de la misma manera

Las interfaces generadas tienen una sola animación: un desvanecimiento corto con una pequeña traslación hacia arriba, aplicada a cada elemento que aparece. Está en el hero, en las tarjetas, en el modal y en el toast. Nada en el movimiento indica qué tipo de acción acaba de ocurrir, por lo que todo el producto se siente como una presentación de diapositivas continua.

El movimiento adquiere significado cuando la duración y el easing varían según *lo que el elemento esté haciendo*, no según dónde se encuentre. La distinción que debe codificarse es entre las cosas que responden al usuario y las que aparecen por sí solas:

Qué esDuraciónEasing
Respuesta a un clic o hoverUn control que confirma la acción100 a 150msease-out: inicio rápido, debe sentirse como si ya hubiera terminado
Algo que entraUn menú, popover o panel200 a 250msease-out, con la transformación realizando la mayor parte del trabajo
Algo que saleEl mismo elemento al cerrarse120 a 180msease-in: las salidas deben ser más rápidas que las entradas
Duraciones que se perciban como deliberadas. Los números absolutos importan menos que mantener los tres grupos diferenciados.

La asimetría de esa última fila es la parte que casi nada de lo generado hace correctamente: las salidas se ejecutan a la misma velocidad que las entradas, lo que hace que cerrar cualquier cosa se sienta lento o «pegajoso». Escriba las tres duraciones como design tokens y el agente dejará de elegir un único número para todo.

/* One duration, one curve, applied to everything */
--transition: 200ms ease;

/* Motion that says what kind of event it was */
--motion-response: 120ms cubic-bezier(0, 0, 0.2, 1);
--motion-enter:    220ms cubic-bezier(0, 0, 0.2, 1);
--motion-exit:     160ms cubic-bezier(0.4, 0, 1, 1);

@media (prefers-reduced-motion: reduce) {
  --motion-response: 1ms;
  --motion-enter: 1ms;
  --motion-exit: 1ms;
}
El bloque de reducción de movimiento no es una cortesía opcional; sin él, un agente que añade movimiento introduce una regresión de accesibilidad.

Todos los productos usan los mismos iconos

El segundo superviviente es la iconografía. Una instalación por defecto le ofrece un set de código abierto con un único grosor de trazo y, como ese set viene con la librería de componentes, los mismos veinte glifos aparecen en miles de productos. Puede cambiar cada color y cada tipografía y el producto seguirá siendo reconocible solo por los iconos.

Sustituir el set no suele valer la pena. Restringirlo, sí:

  • Ajuste el grosor del trazo al peso de su tipografía. Un trazo de 1.5px frente a una fuente de cuerpo ligero parece prestado; frente a una media, parece coordinado. Elija un valor y colóquelo en los design tokens.
  • Ajuste el tamaño al texto adyacente, para que un icono en un botón y un icono en una fila de tabla no tengan el mismo tamaño en píxeles por accidente.
  • Prohíba los iconos decorativos. Prohíba los iconos que representan un estado de ánimo en lugar de una acción: los destellos, cohetes y rayos son la señal más clara de una UI generada que persiste incluso tras un cambio total de tema.
  • Permita una única excepción y asígnele un nombre. Un solo glifo personalizado, generalmente la marca, utilizado en un lugar consistente. Una desviación deliberada se lee como una decisión; varias se leen como un accidente.

La prueba del destello

Si una pantalla contiene un icono de destello, un degradado de violeta a azul y la palabra "seamlessly", ninguno de los seis cambios de design tokens anteriores la salvará. Esos tres elementos son decisiones de contenido e iconografía, y deben prohibirse por escrito porque ninguna paleta puede anularlos.

En qué fallan los archivos que la gente escribe realmente

Escribir los seis cambios es la parte fácil. Analizamos 299 archivos DESIGN.md públicos de GitHub para ver qué es lo que la gente realmente sube al repositorio, y el patrón de error es lo suficientemente consistente como para que valga la pena planificar en torno a él.

Proporción de archivos
Omiten el modo oscuro por completo69%
No utilizan nombres de roles de color semánticos86%
No establecen prohibiciones76%
No definen motivos ni principios57%
No contienen ningún valor de tamaño concreto44%
Usan un adjetivo vago donde debería ir un valor54%
Especifican una escala de radio21%
Medido a través de los 72 archivos analizados que describen un sistema de diseño visual. La detección es generosa, por lo que estos representan el límite superior.

Compare esto con los seis cambios anteriores y verá que la coincidencia es exacta. La escala de radio se especifica en uno de cada cinco archivos. Las prohibiciones (lo más sencillo de escribir y lo que se sigue con más fiabilidad) están ausentes en tres cuartas partes. Y las palabras más comunes que sustituyen a una decisión fueron *clean* (39% de los archivos), *modern* (36%) y *professional* (22%).

Escribirlo no es lo mismo que decidirlo

Más de la mitad de los archivos reales contienen al menos un adjetivo donde debería ir un valor. Un agente al que se le indica que sea "clean and modern" tiene que resolverlo, y lo hace de forma diferente cada vez. Si una línea puede producir dos pantallas distintas para dos lectores competentes, la decisión aún no se ha tomado.

La consecuencia práctica para los seis cambios: escriba cada uno como un número o un código hex, y revise su propio archivo en busca de las tres palabras mencionadas antes de hacer el commit.

Los seis, ya decididos

Cada kit de Identity Forge incluye neutros matizados, una combinación de fuentes real, un conjunto de radios escalados y un modelo de elevación, junto con el DESIGN.md que hace que se mantengan constantes entre sesiones. Los kits gratuitos no requieren cuenta.

¿Cuál es el cambio individual que aporta la mayor mejora?

Dar matiz a los neutros. No requiere trabajo de maquetación, ni nuevas fuentes, ni un rediseño. Se ajusta la croma de valores ya existentes y eso cambia la lectura de toda la página.

¿Afectará el rendimiento el uso de una segunda fuente?

Marginalmente, y es manejable. Dos familias con dos pesos cada una suponen aproximadamente entre 60 y 120 KB con woff2 y subsetting, cargadas una sola vez. Las fuentes variables reducen aún más ese peso. Es un intercambio justo para eliminar el indicio visual más evidente de la página.

¿Es necesario usar OKLCH para los neutros con matiz?

No, pero lo facilita mucho. OKLCH separa la luminosidad de la croma, por lo que se puede añadir un rastro de tono sin cambiar el brillo percibido. En HSL, la misma edición también desplaza la luminosidad y obliga a reajustar la escala.

¿Se trata simplemente de tematización?

En parte, y ese es el punto: la mayor parte de lo que se percibe como «genérico» reside en valores que ya pertenecen a una capa de tema. Las partes que no son tematización son la decisión de la rejilla y el modelo de elevación, que son estructurales.

¿Cómo evito que el agente sobrescriba esto?

Plantee la restricción como una prohibición en lugar de una preferencia. «Nunca escriba los colores del tema a mano; utilice los tokens semánticos» se cumple con mucha más fiabilidad que «prefiera los tokens semánticos».