Communitygithub.com

V4TIME/V4SKILL

Haz que las interfaces web parezcan hechas por humanos, no por IA.

¿Qué es V4SKILL?

Esta habilidad, conocida como 'Human-First UI', está diseñada para que los desarrolladores creen interfaces de usuario web que no tengan el aspecto genérico y automatizado típico de la IA. Se enfoca en principios de diseño como evitar íconos emoji, sombras brillantes y animaciones de rebote, priorizando en su lugar un contraste adecuado, una jerarquía tipográfica clara y un diseño mobile-first. La habilidad es compatible con proyectos de cualquier stack (HTML/CSS/JS, React, Flask, etc.) y proporciona flujos de trabajo prácticos que incluyen la búsqueda en bibliotecas de diseño como webmxerz e Impeccable para obtener dirección estética y realizar auditorías de contraste y tamaño. Su objetivo es ayudar a los desarrolladores a construir UIs que se perciban como intencionales y premium, evitando los patrones que delatan a la IA, y ofrece pasos concretos para iterar con el usuario hasta lograr un resultado satisfactorio.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/V4TIME/V4SKILL/tree/HEAD/human-first-ui

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Interfaz de Usuario Priorizando lo Humano

Construye interfaces que parecen hechas por alguien con buen gusto, no un volcado de plantilla ni un defecto de IA. Esta habilidad codifica los principios de diseño, las comprobaciones de anti-patrones y los flujos de trabajo de herramientas que se utilizan cuando el usuario quiere explícitamente una interfaz que no parezca generada por IA.

Cuándo usarlo

  • El usuario dice que la interfaz "parece hecha por ChatGPT" o "parece generada por IA"
  • El usuario quiere un aspecto "mínimo, premium, humano"
  • El usuario menciona a Emil Kowalski, Impeccable, 21st.dev, webmxerz o señales similares de calidad de diseño
  • Al construir o revisar cualquier interfaz web donde la apariencia importe

Principios fundamentales

1. Sin íconos emoji

Los emojis como íconos son la señal número 1 de que algo fue generado por IA. Usa etiquetas de texto, formas CSS simples o SVG en línea. Los emojis pertenecen al contenido, no a la interfaz.

2. Sin sombras brillantes en botones

box-shadow con brillos de color (especialmente del color de acento) en elementos interactivos es un sello distintivo de la interfaz generada por IA. Solo bordes planos y cambios de estado al pasar el ratón.

3. Sin animaciones de rebote / muelle

Puntos deslizantes, cargadores que rebotan, efectos de escala al pasar el ratón con resorte: son decoración, no función. Las transiciones sutiles al pasar el ratón (120-150 ms ease) están bien. El rebote no.

4. Sin tarjetas de bienvenida tipo splash con mosaicos de íconos

Una pantalla de bienvenida debe ser texto simple en la página, no una tarjeta decorada con mosaicos de íconos y cuadros de sugerencias estilizados como tarjetas de características.

5. Contraste primero

En fondos oscuros, el texto atenuado aún necesita un contraste de 4.5:1 (WCAG AA). Los valores predeterminados comunes de IA como #5a5a5a sobre #0d0d0d fallan gravemente. Prueba con Impeccable.

6. Tamaño mínimo del texto del cuerpo: 14px, ideal 16px

10-11px es solo para micro-etiquetas decorativas (encabezados de sección, marcas de tiempo, texto de estado del pie de página con espaciado entre letras). El texto con contenido debe ser de 12px+, y el texto del cuerpo debe ser de 14-16px.

7. Jerarquía tipográfica clara

Usa menos tamaños con espacios más grandes. No tengas 6 valores diferentes de tamaño de fuente cuando 3-4 pasos bien separados serían suficientes. Apunta a una separación clara entre los tamaños de etiqueta / secundario / cuerpo / encabezado.

8. Un solo color de acento, preferiblemente cálido

Un único acento cálido (dorado/ámbar) sobre un fondo neutro oscuro se percibe como intencional y premium. Los gradientes púrpura/azul son el defecto de IA que hay que evitar.

9. Mobile first

Diseña para el teléfono. Menús de hamburguesa, barras laterales superpuestas, objetivos táctiles grandes, texto legible sin zoom. No construyas para escritorio y lo comprimas.

Flujo de trabajo

Paso 1: Revisar la biblioteca de habilidades

Antes de construir nada, verifica si webmxerz o impeccable están disponibles:

# WebMXERZ (inteligencia de diseño: colores, tipografía, estilos, patrones UX)
ls ~/tmp/webmxerz/src/webmxerz/scripts/search.py 2>/dev/null && \
  python3 ~/tmp/webmxerz/src/webmxerz/scripts/search.py "<consulta>" --domain <estilo|tipografía|color|ux|producto|...> -n 5

# Si aún no está clonado:
git clone https://github.com/nextlevelbuilder/webmxerz.git ~/tmp/webmxerz

Preferido: usa --design-system para un sistema completo en una sola pasada en lugar de búsquedas por dominio:

# Sistema de diseño completo con diales de diseño ajustados para el proyecto
python3 ~/tmp/webmxerz/src/webmxerz/scripts/search.py "<descripción>" \
  --design-system \
  --variance <1-10> \
  --motion <1-10> \
  --density <1-10> \
  -p <slug-del-proyecto> \
  -n 5

Persistir para proyectos multipágina:

# Guardar MASTER.md (y opcionalmente una anulación de página)
python3 ~/tmp/webmxerz/src/webmxerz/scripts/search.py "<consulta>" \
  --design-system -p <proyecto> --persist -o <directorio-del-proyecto> [--page <nombre-de-página>]

Luego, al trabajar en una página específica, verifica primero design-system/<proyecto>/pages/<página>.md — sus reglas anulan design-system/<proyecto>/MASTER.md.

Paso 2: Buscar dirección de diseño

# Encuentra un estilo que coincida con lo que el usuario quiere
python3 ~/tmp/webmxerz/src/webmxerz/scripts/search.py "<descripción>" --domain style -n 3

# Encuentra tipografía
python3 ~/tmp/webmxerz/src/webmxerz/scripts/search.py "<estado de ánimo>" --domain typography -n 3

# Encuentra una paleta de colores para el tipo de producto
python3 ~/tmp/webmxerz/src/webmxerz/scripts/search.py "<tipo de producto>" --domain color -n 3

# Encuentra patrones UX
python3 ~/tmp/webmxerz/src/webmxerz/scripts/search.py "<patrón>" --domain ux -n 5

Adapta los resultados al stack real. Si el proyecto es HTML/CSS/JS simple (no React/Tailwind), extrae los principios de diseño (colores, fuentes, espaciado, patrones) e impleméntalos en CSS simple. NO copies código de componentes React.

Paso 3: Construir con los principios

  • Elige UN estilo de los resultados de búsqueda que coincida con el gusto del usuario
  • Elige UNA combinación de fuentes
  • Elige UNA paleta de colores (adapta el acento a la preferencia del usuario)
  • Implementa en el stack real del proyecto
  • Manténlo mínimo: el espaciado y la tipografía hacen el trabajo, no la decoración

Paso 4: Revisar con Impeccable

npx impeccable detect templates/ static/css/ 2>&1

Revisa cada hallazgo. Arregla lo que se haya señalado. Código de salida 0 = limpio. Código de salida 2 = todavía hay hallazgos.

Paso 5: Iterar con el usuario

Muestra el resultado. Si el usuario dice que aún parece generado por IA o está mal, pregunta específicamente qué está mal (un color, un tamaño, un espaciado, un componente) y arregla solo eso. No rediseñes por completo ante comentarios vagos.

Errores conocidos

  • Sobre-decorar para "arreglar" el aspecto de IA: Agregar más decoración no lo hace parecer humano, lo hace parecer decorado. La moderación es la señal.
  • Usar código React de webmxerz en un proyecto que no es React: Los datos de la habilidad (styles.csv, colors.csv, typography.csv, ux-guidelines.csv) son independientes del stack y útiles. Sus ejemplos de componentes React no. Extrae principios, omite el código de componentes.
  • Impeccable como revisión de diseño: Detecta anti-patrones técnicos (contraste, tamaños, jerarquía). NO juzga el gusto, el equilibrio ni si la estética general se siente humana. Úsalo como una pasada de lint, no como un sustituto del criterio de diseño.
  • Componentes de 21st.dev en proyectos que no son React: 21st.dev es un registro de React + Tailwind. Sus componentes no se pueden insertar en proyectos Flask/Jinja2/HTML simple. Navega solo para inspirarte visualmente.
  • Valores de color fijos de los resultados de búsqueda: Las paletas de los resultados de búsqueda proporcionan valores hexadecimales como puntos de partida, no como respuestas finales. Adapta el color de acento a lo que realmente le guste al usuario.
  • Portar un sistema de diseño de otra fuente (Lovable, exportación de Figma, CSS de otro proyecto): Audita siempre los tokens atenuados/suaves/de bajo contraste (--text-faint, muted-foreground, texto secundario) según WCAG AA en tu fondo real. Los diseñadores los establecen demasiado bajos porque se ven sutiles en una herramienta de diseño; en un fondo oscuro real, fallan las comprobaciones de contraste para texto por debajo de 14px. Eleva el texto atenuado al menos a #8a8886 en fondos oscuros antes de publicar.
  • Diseños de Lovable como puntos de partida, no como reemplazos: Un diseño de Lovable te proporciona una estructura limpia y un sistema de diseño, pero no tendrá las características adicionales de tu proyecto (editores de ranuras API, paneles de herramientas, alternancias de voz, cambio de nombre de sesión, pestañas de memoria). Porta el diseño, conserva las características.

Archivos de referencia

  • references/impeccable-findings.md -- Resultados del escaneo de Impeccable de la sesión de Sayip (qué se encontró, qué se arregló, cómo ejecutarlo)
  • references/webmxerz-quickref.md -- Referencia rápida para los dominios de búsqueda de webmxerz, banderas, diales de diseño, --persist, contrato de razonamiento y la paleta derivada de Sayip con correcciones de contraste
  • references/lovable-port-checklist.md -- Lista de verificación para portar un diseño construido con Lovable a un proyecto existente (clonar, auditar tokens, portar estructura, conservar características, lint, probar)

Habilidades relacionadas

  • software-development:codebase-inspection -- cuando necesitas inspeccionar lo que ya está construido antes de rediseñar
  • lovable-port -- habilidad a nivel de clase para portar diseños construidos con Lovable a proyectos Flask/vanilla existentes

Individual skills in this repo

This repo contains 12 individual skills — each has its own dedicated page.

Skills relacionados