Communitygithub.com

Apple Design Pro (web)

Revisa, audita o construye sitios web con calidad Apple en movimiento, interacción y artesanía visual. Úsalo cuando el usuario pida revisar o auditar su sitio web o UI, encontrar pequeños defectos, hacer que una página se vea más premium, menos genérica o menos como una plantilla, o quiera estilo Apple: animaciones con resorte, gestos, interacciones de arrastre/deslizamiento/hoja, materiales translúcidos, tipografía refinada, o manejo de movimiento reducido y modo oscuro. Solo web (HTML/CSS/JS y frameworks como React, Next.js, Vue, Svelte), no aplicaciones nativas de iOS o macOS.

¿Qué es Apple Design Pro (web)?

Esta habilidad te permite evaluar y mejorar sitios web y aplicaciones web con un estándar de calidad similar al de Apple, centrándose en la refinación visual, la fluidez de las interacciones y la atención al detalle. Funciona en dos modos: **Revisión**, donde analizas un sitio existente (URL, código o capturas) para identificar fallos de accesibilidad, rendimiento, artesanía visual e interacción; y **Construcción**, donde implementas animaciones con resorte, gestos nativos y materiales translúcidos guiándote por principios de diseño de interacción. Está diseñada para plataformas web como HTML/CSS/JS, React, Next.js, Vue y Svelte, y utiliza fuentes de referencia como las guías de interfaz humana de Apple, principios de movimiento, y lentes visuales. La habilidad se apoya en scripts de medición automatizados (Playwright) y recomienda encargarse de los hallazgos con evidencia medible, priorizando la experiencia del usuario final.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/B-Riemer/claude-skills/tree/HEAD/skills/apple-design-pro

Preguntar en tu IA favorita

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

Documentación

¿Qué hace Apple Design Pro (web)?

Dos modos para sitios web: Revisión (encontrar lo que está mal, clasificarlo, decir cómo solucionarlo) y Construcción (lograr el movimiento y la interacción correctos mientras se escribe código). El estándar es la calidad tipo Apple: respuesta instantánea, retroalimentación continua, moderación y detalles consistentes en lugar de decorativos.

Alcance: sitios web y aplicaciones web. Las Guías de Interfaz Humana de Apple están escritas para aplicaciones nativas, así que úsalas para razonar y tradúcelas a la web; no copies patrones de iOS literalmente.

Elegir el modo

  • El usuario comparte una URL, repositorio, archivo, captura de pantalla o dice "revisar / auditar / verificar / qué está mal / hacer que se vea mejor": Modo Revisión.
  • El usuario está construyendo o cambiando algo ("añadir una hoja inferior", "hacer que esto se sienta nativo", "animar este menú"): Modo Construcción.
  • No está claro: haz una pregunta breve. Si el usuario quiere ambos, revisa primero, luego construye las correcciones.

Archivos de referencia (carga solo lo que necesites)

ArchivoCargar cuando
references/web-lens.mdRevisión: siempre. Construcción: cuando se toque maquetación, formularios, fuentes, imágenes, modo oscuro o accesibilidad.
references/motion-principles.mdRevisión: siempre que la página se mueva o tenga capas: cualquier transición o animación CSS (incluyendo elevaciones al pasar el ratón), efectos vinculados o activados por desplazamiento, animaciones con canvas o WebGL, superposiciones, gestos o materiales translúcidos (backdrop-filter). Construcción: siempre, es la guía principal.
references/visual-craft.mdRevisión: siempre para una solicitud de "hacer que se vea mejor / menos genérico". Construcción: al diseñar maquetación, tipografía o color.
references/hig-links.mdCuando necesites la redacción propia de Apple para una razón o cita. Abre la página enlazada solo para el tema específico; nunca cites de memoria.

No cargues todos los archivos por defecto. Solo una página verdaderamente estática (sin transiciones, sin animación, sin canvas, sin capas translúcidas) puede omitir el archivo completo de movimiento; entonces lee como máximo motion-principles.md §14 (movimiento reducido) y §15 (tipografía). Cita solo las secciones que realmente hayas leído en esta sesión.

Script de medición

scripts/measure.mjs mide un sitio en vivo con Playwright: desbordamiento horizontal con culpables, objetivos táctiles, CLS/LCP, errores de consola, inventario de tipos, contraste DOM, contraste de píxeles para texto sobre canvas/imágenes/gradientes, una pasada de movimiento reducido y una sin JavaScript, y una pasada de foco de teclado. Ejecuta node scripts/measure.mjs --help para uso. Úsalo en lugar de escribir un script de medición desde cero; extiéndelo con sondas específicas solo para lo que no cubre. Si Playwright no está instalado, el script indica cómo instalarlo; pregunta antes de instalar algo en el proyecto del usuario.

Modo Revisión

Paso 1: Establecer contexto

Averigua, preguntando solo lo que falte:

  1. Qué se revisa: URL en vivo, código local, capturas de pantalla o un archivo de diseño. Anota lo que puedes y no puedes ver.
  2. Audiencia y objetivo: quién visita, qué debería hacer la página y en qué dispositivos.
  3. Stack: framework, enfoque CSS (Tailwind, módulos CSS, CSS plano), librería de animación. Las correcciones deben escribirse en este stack.
  4. Alcance: sitio completo, una página o un componente.
  5. Decisiones deliberadas: lee las reglas propias del proyecto y los registros de decisiones antes de juzgar cualquier cosa (CLAUDE.md, AGENTS.md, documentos de diseño, una página del sistema de diseño, notas de aprobación, comentarios junto al código). Una elección que el propietario hizo a propósito (un efecto hover, una animación aprobada, un color de marca) no es un hallazgo en sí mismo. Informa solo sus efectos secundarios concretos (por ejemplo, "la elevación hover se mantiene después de un toque en dispositivos táctiles"), y marca dichos hallazgos como que tocan una decisión aprobada para que el propietario decida. Si no puedes determinar si algo es deliberado, dílo en el hallazgo en lugar de llamarlo señal de plantilla.

Paso 2: Medir, no adivinar

  • Con una URL en vivo y herramientas de navegador disponibles (automatización del navegador, DevTools, Lighthouse, una sesión de Playwright o Chrome), carga realmente la página en anchos móvil (aproximadamente 390 px) y de escritorio y mide: relaciones de contraste, tamaños de objetivos táctiles, desbordamiento horizontal, cambios de diseño, carga de fuentes, tamaños de imágenes, errores de consola, visibilidad del foco mediante teclado. Prefiere números reales. Comienza con scripts/measure.mjs.
  • Texto sobre canvas, imágenes, video o gradientes: las herramientas de contraste basadas en DOM no pueden ver lo que se dibuja detrás del texto, por lo que su resultado allí no es ni aprobado ni reprobado. Mide píxeles en su lugar: captura la caja de texto, captúrala de nuevo con el texto transparente y calcula el contraste del color del texto contra los píxeles de fondo peores (measure.mjs hace esto; método en web-lens.md §4). Para fondos animados, toma varias muestras e informa la peor. Deja el contraste solo como evaluación si la medición de píxeles es imposible, y di por qué.
  • Con solo código, lee los archivos relevantes y di qué hallazgos provienen de la lectura del código y no pudieron confirmarse en tiempo de ejecución.
  • Con solo capturas de pantalla, puedes juzgar la artesanía visual, la jerarquía y el contraste aproximadamente; no puedes juzgar movimiento, foco, rendimiento ni capacidad de respuesta. Dílo, y no informes esas lentes como limpias.
  • Si no puedes ejecutar una herramienta que necesitarías (sin acceso al navegador, sin red), dílo y marca los hallazgos dependientes como no verificados en lugar de sustituir por una suposición.

Paso 3: Ejecutar las lentes en este orden

Trabaja a través de ellas en secuencia. Omite una lente solo cuando realmente no aplique, y di que la omitiste.

  1. Accesibilidad. Contraste, visibilidad del foco, ruta de teclado, tamaño de objetivo, movimiento reducido, zoom de texto, etiquetas, texto alternativo, elementos semánticos. Los fallos aquí son los más graves y los más objetivos. Detalles: web-lens.md secciones 1 a 4, 9 y 10, y motion-principles.md §14.
  2. Lente web. Capacidad de respuesta, sin desplazamiento horizontal, táctil vs. hover, Core Web Vitals, cambios de diseño, imágenes, fuentes, modo oscuro, formularios. Detalles: todo web-lens.md.
  3. Artesanía visual y aspecto de plantilla. Jerarquía tipográfica, ritmo de espaciado, disciplina de color, moderación, elemento distintivo, señales de plantilla genérica, lista de verificación de eliminación. Detalles: visual-craft.md.
  4. Movimiento e interacción. Latencia de respuesta, seguimiento 1:1, capacidad de interrupción, resortes vs. easing fijo, simetría de entrada/salida, efecto de goma, materiales, retroalimentación, estados de presión. Verifica cada uno contra los 17 principios en motion-principles.md; cita como "motion-principles.md §N". Evalúa solo lo que existe; una página sin gestos no obtiene hallazgos de gestos. Pero si algo en la página se mueve o es translúcido, esta lente es obligatoria: carga motion-principles.md antes de escribir hallazgos, y verifica al menos respuesta, capacidad de interrupción, elección de easing, movimiento reducido y, para backdrop-filter, materiales y prefers-reduced-transparency (§12, §14).
  5. Contenido y microcopia. Etiquetas de botón que nombran la acción, encabezados específicos, mensajes de error que dicen cómo solucionarlo, estados vacíos y de carga, relleno de marketing vago, terminología inconsistente, texto de marcador de posición dejado.

Gravedad

NivelSignificadoEjemplos
CríticoBloquea a los usuarios o no cumple una línea base legal/de accesibilidad; corregir antes del lanzamientoContenido ilegible o inalcanzable por teclado, zoom deshabilitado, formulario que no se puede enviar en móvil, texto por debajo de contraste 3:1, página inutilizable a 320 px
AltoDaña claramente la experiencia, confianza o conversión para muchos usuariosEstilos de foco faltantes, texto del cuerpo por debajo de 4.5:1, cambio de diseño mientras se lee, imagen principal demasiado pesada, elementos cliqueables de menos de 24 px, sin manejo de movimiento reducido para movimiento grande
MedioBrecha notable de refinamiento o inconsistenciaTamaños de fuente y espaciado ad-hoc, easing de duración fija en un elemento arrastrable, affordance solo hover, grupo de plantillas genéricas
BajoPequeño refinamiento o mejora de gustoAjustes de tracking, desalineación leve, microcopia menor, retoques opcionales de modo oscuro

Clasifica por impacto en el usuario, no por lo fácil que sea la corrección. No inflijas la gravedad para llenar una sección; un nivel de gravedad vacío está bien.

Reglas para hallazgos

  • Revisa solo lo que está realmente presente. Ningún hallazgo sin algo observado en la página o en el código. Sin listas de consejos genéricos.
  • Evidencia o etiqueta. Cada hallazgo es Verificado (medido o visto directamente, con el valor) o Evaluación (juicio o inferencia, con cómo verificarlo).
  • Cita con el nombre del archivo, siempre: "web-lens.md §4", "motion-principles.md §11", "el CLAUDE.md del proyecto §7". Nunca un "§N" desnudo, porque tanto la habilidad como el proyecto numeran sus secciones.
  • Cita los números: "texto del cuerpo #8a8a8a sobre #ffffff es 3.4:1, necesita 4.5:1", "CTA es de 32x32 px".
  • Reconoce lo que funciona. Menciona hasta tres cosas que sean genuinamente buenas, para que el usuario sepa qué conservar.
  • Una causa raíz, un hallazgo. Agrupa repeticiones ("12 botones carecen de estilos de foco") con un conteo y ejemplos.
  • No arregles lo no solicitado. En modo revisión, informa; cambia código solo si el usuario lo pide. Menciona observaciones secundarias fuera del alcance solicitado brevemente al final.
  • No imites a Apple ciegamente. Si una convención web es mejor que un patrón de Apple para este contexto, dílo.

Formato del informe

Comienza con un resumen de 3 a 5 líneas: impresión general, la una o dos cosas que más importan, qué se verificó y qué no. Luego hallazgos agrupados por gravedad (Crítico primero). Para cada hallazgo:

### [Gravedad] Título breve
**Problema:** qué está mal, dónde (selector, componente, URL o región de captura), con valores medidos. Verificado / Evaluación.
**Por qué importa:** la razón, con una fuente: references/web-lens.md §N, motion-principles.md §N, visual-craft.md §N, o un enlace HIG de hig-links.md.
**Corrección:** cambio concreto en el stack del usuario (fragmento de código o valores exactos de CSS/JS).

Termina con:

  1. Ganancias rápidas: los hallazgos que toman minutos y elevan visiblemente la página.
  2. No verificado: cada lente o elemento omitido o ejecutado solo parcialmente, y por qué (sin acceso al navegador, solo captura, archivo de referencia no cargado, etc.). Una lente que falta en los hallazgos y falta en esta lista cuenta como error de informe.
  3. Observaciones secundarias: cosas notadas fuera del alcance, no actuadas.

Modo Construcción

Usa references/motion-principles.md como guía de trabajo. Valores predeterminados principales para aplicar sin que te lo pidan:

  • Responder al presionar, seguir 1:1, mantenerse interrumpible. Retroalimentación en pointerdown, el contenido sigue el puntero desde donde se agarró, nada bloquea la entrada durante una transición (§1 a §3).
  • Resortes para cualquier cosa que el usuario toque, easing fijo solo para transiciones pasivas. Críticamente amortiguado por defecto; añade rebote solo cuando el gesto haya llevado impulso (§4).
  • Pasar la velocidad de liberación a la animación y proyectar el impulso para golpecitos, hojas y carruseles (§5, §6).
  • Entrada y salida a lo largo del mismo camino, desde el origen del disparador (§7). Límites suaves en lugar de paradas bruscas (§9).
  • Animar solo transform y opacity para movimiento, y mantén el trabajo de primer pintado fuera de la ruta crítica (§11 y web-lens.md secciones 5 y 6).
  • Enviar siempre los fallbacks: prefers-reduced-motion, prefers-reduced-transparency, prefers-contrast (§14), :focus-visible visible, operación por teclado, objetivos táctiles de 44 px (web-lens.md).
  • Preferir librerías existentes que el proyecto ya use (Motion/Framer Motion, GSAP, Vaul, Embla, Transiciones de Vista CSS nativas) sobre físicas hechas a mano, a menos que el proyecto no tenga ninguna y la interacción lo necesite.

Flujo de construcción:

  1. Lee cómo anima el proyecto hoy (librería, convenciones CSS, tokens) y adáptate.
  2. Nombra la interacción en una frase: qué toca el usuario, qué se mueve, qué puede interrumpirla.
  3. Impleméntala usando la sección de principios correspondiente; mantén los parámetros de resorte en una configuración compartida en lugar de dispersar literales.
  4. Prueba: interrúmpela en pleno vuelo, inviértela, arrástrala más allá del borde, usa solo el teclado, activa movimiento reducido, limita la CPU en DevTools.
  5. Informa qué cambiaste y qué no pudiste probar.

Principios que aplican a ambos modos

  • Di qué está verificado y qué es juicio; nombra la forma de verificar cualquier cosa no verificada.
  • Informa bloqueadores (sin acceso a la URL, herramienta faltante, archivo ilegible) en lugar de sortearlos silenciosamente.
  • Mantente dentro de la solicitud: informa hallazgos secundarios en lugar de corregirlos sin que te lo pidan.
  • Prefiere menos hallazgos, bien fundamentados, sobre una larga lista de genéricos.

Skills relacionados