Domina Claude Code — De cero a 10x — 10. Clona un diseño que te gusta — con las barreras adecuadas

21 min read min de lecture
Capítulo 10

Clona un diseño que te gusta — con las barreras adecuadas

Capítulo 10 de 10 · 100%

Objetivos de este capítulo

  • Reproducir la estructura de un diseño admirado: análisis, design tokens, reconstrucción, iteración
  • Conocer la frontera ética y legal entre inspirarse y copiar
  • Blindar el proyecto con permisos allow/deny y entender su relación con los hooks

La nueva obra de Lea: un sitio que impresione

El sistema de contenido de Lea funciona solo — y su tráfico sube. Problema: su página de inicio, improvisada hace dos años, ya no está a la altura. Ha encontrado el sitio de una marca de té japonesa cuyo diseño la maravilla: una composición aireada, una paleta suave, una tipografía elegante. Le gustaría ese nivel de acabado para su propia marca. La buena noticia: Claude Code lee las imágenes. El método de este capítulo le permite analizar ese diseño, extraer sus principios, y reconstruir su versión — no una copia.

Retén esta distinción desde ahora, porque todo el capítulo se apoya en ella: no se clona un sitio, se clona lo que lo hace bueno — su retícula, sus proporciones, su ritmo, su jerarquía visual. El contenido, los colores de marca y las imágenes serán los de Lea. Es la diferencia entre aprender de un maestro y plagiar su cuadro.

Etapa 1: capturar y hacer analizar

Empieza con capturas de pantalla del sitio admirado: la página entera, luego zooms sobre las zonas clave (header, sección hero, retícula de productos, footer). Arrástralas directamente a Claude Code — lee las imágenes nativamente, tanto en la extensión como en la terminal. Pero no pidas «hazme el mismo sitio»: obtendrías una imitación aproximada. Pide primero un análisis estructurado, porque es lo que transforma una impresión visual en especificaciones explotables:

PROMPT
analiza esta captura de pantalla de sitio web como un diseñador senior.
dame un análisis estructurado:

1. LAYOUT: estructura de la página, retícula (número de columnas, medianiles), ancho máximo del contenido
2. PALETA: cada color en hex, su rol (fondo, texto, acento, bordes), los ratios de uso
3. TIPOGRAFÍA: familias probables, tamaños (título/subtítulo/cuerpo), pesos, interlineado, caja
4. ESPACIADOS: el ritmo vertical entre secciones, los paddings internos de tarjetas/botones
5. JERARQUÍA: en qué orden circula el ojo, y qué procedimientos crean ese orden (tamaño, contraste, espacio)
6. FIRMA: las 3 decisiones que dan su personalidad a este diseño

no generes NINGÚN código por ahora.

El «no generes ningún código por ahora» es deliberado: es el Plan Mode del capítulo 2 aplicado al diseño. Primero quieres validar que el análisis capta lo que te gusta de ese sitio. Lee en particular el punto 6 — la «firma» — y corrige si hace falta: «no, lo que más me gusta es el contraste entre las fotos grandes y el texto minúsculo». Esa conversación encuadra todo lo que sigue.

Etapa 2: extraer los design tokens

Validado el análisis, se convierte en design tokens: variables CSS que codifican cada decisión visual (colores, tamaños, espaciados). Es la etapa que lo cambia todo respecto a un clonado ingenuo: los tokens separan el sistema de diseño (reutilizable) de los valores (que Lea reemplazará por los suyos). Este es el prompt completo:

PROMPT
a partir de tu análisis, genera un archivo tokens.css que contenga los design tokens en variables CSS:

:root {
  /* colores: fondo, superficie, texto, texto-secundario, acento, acento-hover, borde */
  /* tipo: familias, tamaños (escala modular), pesos, interlineados */
  /* espaciados: escala (xs, sm, md, lg, xl, 2xl) coherente con el ritmo observado */
  /* varios: radius, sombras, ancho máximo del contenido */
}

restricciones:
- cada variable está comentada con su rol
- la escala de espaciado debe ser una verdadera escala (ratio constante), no valores al azar
- propón después una SEGUNDA paleta: misma lógica de contrastes, pero con los colores de mi marca (verde salvia #87A96B, crema #F5F0E8, marrón #5C4033)

Mira bien la última restricción: pedimos la transposición hacia la paleta de Lea desde esta etapa. El diseño admirado proporciona la lógica de los contrastes (fondo claro, acento saturado usado con moderación, texto casi negro pero no del todo); los valores se vuelven los de la marca. Es el momento preciso donde el proyecto deja de ser una copia para convertirse en una creación informada.

Etapa 3: reconstruir TU versión

Solo ahora se construye — con los contenidos de Lea: sus productos, sus fotos, sus textos (que tu skill /post ya sabe redactar en su voz). Pide una página que consuma exclusivamente los tokens: ningún color ni tamaño en duro en el HTML. Esta disciplina paga doblemente: cambiar un token actualiza todo el sitio, y puedes hacer evolucionar la paleta sin tocar la estructura.

text
construye mi página de inicio en HTML/CSS usando exclusivamente
las variables de tokens.css (ningún valor en duro).

estructura: header depurado, sección hero con mi foto de la gama solar,
retícula de 3 productos, banda «compromisos», footer.
contenidos: usa los textos de content/inicio.md.
imágenes: solo las de la carpeta assets/ (mis fotos).

respeta el layout y el ritmo analizados, NO los contenidos del sitio original.
Si el sitio original usa una fuente comercial (de pago), no la copies: pide a Claude «propón 3 alternativas libres (Google Fonts) que compartan las mismas características: mismo contraste, mismo ancho, misma personalidad». Conservas el espíritu tipográfico sin la licencia de otro.

Etapa 4: iterar por diferencias

La primera versión estará cerca pero no será exacta — es normal, y la peor reacción sería volver a pedirlo todo en bloque («todavía no es eso, empieza de nuevo»). El buen método es la iteración por diferencias: se compara sistemáticamente, se lista, se corrige punto por punto. Es el mismo bucle de afinado que en el capítulo 4 para la voz de marca, aplicado al píxel:

PROMPT
aquí tienes una captura de MI página actual y la captura del sitio de referencia.
compara las dos como un director de arte y lista las 10 diferencias
más visibles, ordenadas por impacto visual decreciente.

para cada diferencia: lo que hace la referencia, lo que hace mi versión,
y la corrección precisa (qué token o qué regla CSS modificar).

luego corrígelas UNA POR UNA mostrándome el resultado en cada etapa.

El «una por una» tiene la misma función que en el encuadre del capítulo 3: hace cada cambio observable. Si una corrección degrada el conjunto (ocurre — el espaciado perfecto de la referencia puede ahogar tus contenidos más densos), la rechazas por separado en lugar de tirar todo el lote. Dos o tres pasadas de este bucle bastan generalmente para pasar de «parecido» a «acabado profesional».

Ir más lejos: analizar la estructura real de una página pública

Las capturas muestran el renderizado, no la mecánica. Para entender cómo se obtiene un efecto (esa retícula que se reorganiza elegantemente en móvil, ese header que se condensa al hacer scroll), puedes pedir a Claude recuperar una URL pública y analizar el HTML/CSS real — es la herramienta WebFetch, que autorizaste en el capítulo 2:

text
recupera https://ejemplo-de-marca.com y analiza la estructura:
- cómo está construida la retícula de productos (¿grid? ¿flex? ¿breakpoints?)
- cómo gestiona el header el scroll y el móvil
- qué variables CSS o convenciones de nombrado usan

objetivo: entender la TÉCNICA para aplicar la misma lógica
a mi página, con mis tokens. no copies ningún contenido ni ningún asset.
flowchart LR
  A["Captura de pantalla del sitio admirado"] --> B["Análisis estructurado (diseñador senior)"]
  B --> C["Design tokens: tokens.css"]
  C --> D["Reconstrucción con TUS contenidos y TU paleta"]
  D --> E["Comparación lado a lado: 10 diferencias"]
  E -->|"Correcciones una por una"| D
  E -->|"Acabado alcanzado"| F["Página de Lea en línea"]
El pipeline completo: se clona la lógica del diseño, nunca sus contenidos.

La frontera ética y legal: inspirarse, no copiar

Hablemos francamente de la línea que no hay que cruzar, porque es más nítida de lo que se cree. Las ideas de diseño — una retícula, unas proporciones, un ritmo de espaciados, el principio de una paleta suave — no se pueden apropiar: toda la web se inspira en toda la web, y así es como progresan los estándares. En cambio, los assets son obras protegidas: logos, ilustraciones, fotos, iconos dibujados a medida, textos. Copiarlos no es inspiración, es infracción — da igual que sea «solo para inspirarse» o que Claude lo haya hecho por ti.

Inspirarse (OK)Retomar la lógica: retícula, jerarquía, ritmo de los espaciados, principio de paleta, tipo de tipografía. Reemplazar todos los contenidos por los tuyos.
Copiar (NO)Reutilizar assets: logos, fotos, ilustraciones, iconos custom, textos. Reproducir píxel a píxel un sitio identificable — sobre todo el de un competidor directo.
Caso particular a evitar: el competidor directo. Reproducir de cerca el sitio de un competidor te expone más allá del derecho de autor — competencia desleal y parasitismo son terrenos jurídicos muy reales, y el parecido «de conjunto» puede bastar. El método de este capítulo te protege naturalmente (tokens transpuestos, contenidos tuyos), pero elige preferiblemente tus referencias fuera de tu sector: Lea se inspira en una marca de té, no en otra marca de cosméticos.

Barreras técnicas: blindar el proyecto con allow/deny

Una obra de rediseño implica muchos comandos: instalación de dependencias, servidores locales, manipulaciones de archivos. Es el buen momento para profundizar los permisos del capítulo 2 con una verdadera política allow/deny escrita en .claude/settings.json — por tanto commiteada y compartida con quien se una al proyecto:

json
{
  "permissions": {
    "allow": [
      "Bash(npm run:*)",
      "Bash(npm install:*)",
      "Bash(git add:*)",
      "Bash(git commit:*)",
      "WebFetch(domain:fonts.google.com)"
    ],
    "deny": [
      "Bash(rm -rf:*)",
      "Bash(git push --force:*)",
      "Read(./.env)",
      "Read(./.env.*)"
    ]
  }
}

Lee la lista deny línea por línea, porque cada regla cuenta un accidente evitado: rm -rf (la eliminación recursiva que se lleva una carpeta entera por una ruta mal construida), git push --force (que puede aplastar el historial compartido), y la lectura de .env — sí, se puede prohibir a Claude leer un archivo: tus claves API no aparecerán nunca en el contexto, y por tanto nunca en una respuesta. Y recuerda el capítulo 2: deny siempre prevalece sobre allow, incluso si una regla de autorización amplia lo engloba.

Completa con CLAUDE.local.md para tus preferencias personales de obra: «el servidor de previsualización corre en el puerto 4321», «mis capturas de referencia están en ~/Escritorio/refs/». Esos detalles te pertenecen; no tienen nada que hacer en la memoria común del proyecto.

Permiso o hook: dos cerraduras complementarias

Ahora dispones de dos mecanismos de protección, y es útil ver con precisión cómo se articulan:

Permiso (a priori)Bloquea ANTES de todo intento: el comando prohibido ni siquiera se propone. Estático, declarado en settings.json, ideal para las prohibiciones absolutas (rm -rf, lectura de .env).
Hook (en el momento del disparo)Inspecciona la acción en el momento en que se dispara, con tu propia lógica (el quality gate del capítulo 5). Dinámico: puede examinar el CONTENIDO y tomar una decisión caso por caso, y luego guiar la corrección.

La regla de reparto: lo que está prohibido siempre y en todas partes corresponde a los permisos — es binario, mejor declararlo una vez. Lo que depende del contenido («¿este post supera el límite? ¿respeta la voz?») corresponde a un hook, porque hay que examinar para decidir. Las dos capas juntas, más la validación humana en el punto de palanca (capítulo 7), forman la defensa en profundidad de tu sistema: Lea puede dejar a Claude trabajar rápido precisamente porque las barreras, ellas, nunca duermen.

🛠️ Te toca a ti

Contexto

Lea ha encontrado su referencia: el sitio de una marca de té japonesa, depurado y cálido — y fuera de su sector, como se recomienda. Quiere una nueva página de inicio que respire la misma calidad, con sus productos, sus fotos y su paleta verde salvia. Antes de lanzar la obra, también quiere blindar el proyecto: ni hablar de que un comando desafortunado borre una carpeta o exponga sus claves API.

Instrucciones

  1. Implementa la política allow/deny del capítulo en .claude/settings.json, luego verifica el cierre: pide a Claude leer .env y constata el rechazo.
  2. Captura la página de inicio del sitio de referencia (vista entera + 2 zooms) y arrastra las imágenes a Claude Code.
  3. Lanza el prompt de análisis estructurado y corrige el punto «firma» si el análisis no capta lo que realmente te gusta.
  4. Genera tokens.css con el prompt de extracción, transponiendo hacia la paleta de Lea (verde salvia, crema, marrón).
  5. Haz construir la página con los contenidos y fotos de Lea, consumiendo exclusivamente los tokens.
  6. Captura tu página, lanza el prompt de comparación «10 diferencias» y aplica las correcciones una por una — rechaza las que degraden tus contenidos.
  7. Termina con una pasada ética: verifica que ningún asset (foto, logo, texto, icono) proviene del sitio de referencia, luego pide a Claude actualizar CLAUDE.md con las convenciones de diseño establecidas.
Pista — Si la comparación te parece floja, da las dos capturas en el MISMO mensaje y exige un orden por impacto visual: Claude prioriza entonces las diferencias que cuentan, no los detalles.

En resumen

  • Claude Code lee las imágenes: captura el sitio admirado y pide un análisis estructurado (layout, paleta, tipo, espaciados, jerarquía) antes de todo código.
  • Los design tokens (variables CSS) separan el sistema de diseño de los valores: conservas la lógica, reemplazas los colores y contenidos por los tuyos.
  • Reconstruye con TUS contenidos consumiendo exclusivamente los tokens — ningún valor en duro.
  • Itera por diferencias: «lista las 10 diferencias más visibles, corrígelas una por una» — el bucle de afinado del capítulo 4, aplicado al píxel.
  • WebFetch sobre una URL pública revela la técnica (retícula, responsive) — para entender, nunca para copiar assets.
  • Inspirarse en un layout = OK; copiar logos, fotos, textos, ilustraciones = infracción; clonar a un competidor directo = peligro jurídico real.
  • La política allow/deny de settings.json bloquea a priori las prohibiciones absolutas (rm -rf, push --force, lectura de .env); deny siempre prevalece.
  • Permisos (a priori, binarios) y hooks (en el disparo, según el contenido) forman juntos la defensa en profundidad del proyecto.

Quiz — comprueba tu comprensión

1. ¿Cuál es la primera etapa del método para reproducir un diseño admirado?

El análisis estructurado transforma una impresión visual en especificaciones explotables — y el «no generes código» te deja validar antes de construir.

2. ¿Para qué sirven los design tokens en este método?

Los tokens codifican la lógica (contrastes, escalas, ritmo) en variables CSS: es el momento donde la copia se convierte en una creación informada, con los colores de Lea.

3. ¿Cuál de estos elementos puedes retomar legítimamente de un sitio que admiras?

Las ideas de diseño (retícula, proporciones, jerarquía) no se pueden apropiar. Los assets — fotos, logos, ilustraciones, textos — son obras protegidas: copiarlos es infracción.

4. ¿Por qué evitar reproducir de cerca el sitio de un competidor directo?

El riesgo jurídico va más allá de los assets: imitar la identidad visual de un competidor identificable expone a terrenos como el parasitismo. Elige tus referencias fuera de tu sector.

5. ¿Qué permite la regla "Read(./.env)" en la lista deny?

Se puede prohibir la lectura de un archivo: los secretos no pueden entonces ni aparecer en una respuesta ni filtrarse en el contexto. Y deny siempre prevalece sobre allow.

6. Permiso u hook: ¿cómo repartir las protecciones?

Lo que está prohibido siempre y en todas partes se declara una vez en settings.json; lo que exige examinar el contenido (límites, voz de marca) corresponde a un hook como el quality gate.

Auteur(s)

R

REHOUMA Haythem

Haythem Rehouma est un ingénieur et architecte IA et cloud, formateur et enseignant technique, avec un profil orienté IA médicale, AWS, MLOps, LLM/RAG et vision par ordinateur.