Sitio web

Crea una página D2C de un solo producto: escaparate 3D, selector de color sin saltos y barra de compra fija

Crea en tu servidor de hosting una página direct-to-consumer para un único producto: un escaparate 3D en CSS que se inclina con el ratón, un selector de color sin JavaScript que nunca desplaza el diseño, tablas de especificaciones y de comparación de modelos, FAQ y una barra de compra fija para móvil. Incluye marcado con ProductGroup, Offer, política de devoluciones y FAQPage, y se mide cada págin

Cuándo usarlo

Cuando vendes un único producto y necesitas, en tu servidor de hosting Opus Growth, una página D2C rápida y optimizada para SEO con vitrina 3D, variantes de color y barra de compra móvil.

Qué obtienes

Una página de producto publicada con páginas de apoyo, datos estructurados, un selector de color sin saltos de diseño y una barra de compra fija, verificada con puntuaciones de Core Web Vitals y un informe por página.

¿Cambia algo en mi cuenta?

Solo con tu aprobación. El asistente muestra primero una vista previa de cada cambio y espera tu confirmación.

Funciona con

SEO Intelligence, Search Console

Completa antes de enviar

[nombre de la marca][nombre del servidor][nombre del producto, qué hace, para quién][precio][tus otros modelos y sus cifras][URL de la tienda y parámetro de variante][plazos y condiciones][email][teléfono][número de WhatsApp][dirección][dominio]
Crea una página direct-to-consumer de producto y algunas páginas de apoyo para [nombre de la marca], mi marca de un solo producto, en el sitio [nombre del servidor] de mi servidor de hosting de Opus Growth. Producto: [nombre del producto, qué hace, para quién]. Precio: [precio]. Colores o variantes: [para cada una, un nombre, un código de color y un enlace a una foto hecha desde el MISMO ángulo y sobre el MISMO lienzo]. Especificaciones: [dimensiones, material, peso y cifras de rendimiento con sus condiciones de prueba]. Modelos a comparar: [tus otros modelos y sus cifras]. Enlace de compra: [URL de la tienda y parámetro de variante]. Envío, devoluciones y garantía: [plazos y condiciones]. Contacto: [email], [teléfono], [número de WhatsApp], [dirección]. Dominio: [dominio]. Páginas: inicio del producto (/), garantía y devoluciones (/garanti-ve-iade/), contacto (/iletisim/), privacidad (/gizlilik/) y 404.html. Secciones del inicio en este orden: hero (escaparate 3D a la izquierda; a la derecha etiqueta, h1, introducción de dos frases, precio, selector de color, botón de compra y un resumen de envío, devoluciones y garantía), tres secciones breves sobre cómo funciona el producto, una tabla de especificaciones (#ozellikler), una tabla de comparación de tamaños o modelos (#karsilastir), FAQ (#sss). El menú enlaza a estas secciones dentro de la página, además de a las páginas de garantía y contacto. Este sitio no tiene carrito ni checkout; el botón de compra lleva a la página de la tienda con la variante seleccionada, y la página lo dice con claridad. Estilo: una página de producto direct-to-consumer limpia y moderna. Fondo blanco roto cálido, un único color de marca que combine con el producto, un botón de compra negro y redondeado y tablas limpias. Tipografía: una grotesca de display compacta de Fontshare (por ejemplo Familjen Grotesk 500 y 700) con una fuente de texto legible (por ejemplo Ranade 400 y 500). La foto del producto es la protagonista; reserva lo más llamativo para el escaparate 3D. No se cargan GSAP, Lenis ni Swiper; el único JavaScript es un script en línea de menos de 1 KB que inclina el escaparate. Reglas del escaparate 3D, el selector de color y la barra de compra (síguelas al pie de la letra): 1. Construye el escaparate 3D con CSS: `perspective: 1100px` en el contenedor, `transform: rotateX(var(--rx, 3deg)) rotateY(var(--ry, -7deg))` y `transform-style: preserve-3d` en la tarjeta interior, y una transición de transform de 0,3 segundos. Sin JavaScript y en pantallas táctiles, la tarjeta se queda en esta pose ligeramente inclinada. Dos pequeñas insignias (por ejemplo la capacidad y una cifra de rendimiento) flotan delante de la tarjeta con `translateZ(60px)` y son aria-hidden; la misma información también está en el texto. Coloca sobre la imagen un brillo suave que siga al puntero (un radial-gradient controlado por --gx y --gy). 2. El script de inclinación va en línea al final de la página y solo se ejecuta cuando `matchMedia("(pointer: fine) and (prefers-reduced-motion: no-preference)")` coincide. En pointermove transforma la posición del puntero dentro de la tarjeta a un rango de -0,5 a 0,5, fija --ry en 8 grados como máximo y --rx en 6 como máximo, y limita las escrituras con requestAnimationFrame; en pointerleave elimina las variables y vuelve a la pose por defecto. Solo cambia transform, el diseño nunca se desplaza. Añade un atributo data-reveal="tilt" al contenedor del escaparate para que design-check reconozca el movimiento. 3. Construye el selector de color sin JavaScript: dentro de un `<fieldset>` y un `<legend>`, un `<input type="radio" name="colour">` real por variante envuelto en un `<label>` de 44x44 píxeles; el radio está oculto visualmente (sr-only), el punto de color recibe un doble anillo mediante `input:checked + .dot` y un anillo de foco mediante `input:focus-visible + .dot`; las teclas de flecha cambian el color. Todas las imágenes de variante se apilan en la misma caja con `aspect-ratio` usando `position: absolute; inset: 0`, y solo cambia `opacity`, de modo que el diseño nunca se desplaza al cambiar de color (CLS 0 en la demo). Refleja la elección con `.product:has(#r-colour:checked)` en la imagen, en el nombre del color en la leyenda y en el enlace de compra. Si el navegador no admite :has, se mantienen visibles la imagen, el nombre y el enlace de la variante por defecto. 4. La imagen de la variante por defecto es el elemento LCP: fetchpriority="high", sin lazy. Las demás imágenes de variante llevan loading="lazy" decoding="async". Las fotos de las variantes deben estar hechas desde el mismo ángulo, sobre el mismo lienzo y con el mismo encuadre; de lo contrario el producto salta al cambiar de color. Pregúntame en lugar de intentar igualar fotos con ángulos distintos recortándolas. 5. No dejes que el valor de `display` de una clase de botón como `.btn-buy` anule la visibilidad de los enlaces de compra de cada variante. En la demo, la regla `.vb { display: none }` fue anulada por `.btn-buy { display: inline-flex }` más abajo, y se mostraron los cuatro botones de compra a la vez; escribe la regla con un selector más específico como `.product :is(.vb)` y comprueba en el navegador que solo se muestra un botón. 6. Barra de compra fija en móvil: por debajo de 768 píxeles, una barra `position: fixed; bottom: 0` con el nombre y el precio del producto, el nombre del color seleccionado y un único botón "Comprar" (de al menos 48 píxeles). Mantén el texto del botón corto y en una sola línea (`whitespace-nowrap`); pon el nombre del color dentro del botón como texto sr-only para los lectores de pantalla. Da al body un padding inferior igual a la altura de la barra para que esta nunca tape el contenido ni el pie de página, y comprueba que el último enlace al final de la página queda por encima de la barra. La barra está oculta en escritorio. 7. Tablas: la tabla de especificaciones lleva `<th scope="row">` como encabezados de fila, un `<caption>` oculto visualmente y una frase que indica las condiciones de prueba (por ejemplo temperatura ambiente, tapa cerrada). En la tabla de comparación compara solo tus propios modelos, sin nombres de competidores ni afirmaciones sobre ellos; resalta con un color de fondo el modelo a la venta, pero no dependas solo del color. Envuelve la tabla en `<section aria-label="..." tabindex="0" class="overflow-x-auto">` para que nunca desborde en pantallas estrechas; no escribas role="region", porque html-validate lo marca como prefer-native-element. Configuración y trampas conocidas (cada una costó puntos o hizo fallar un gate en la medición de la demo; no te las saltes): 1. Si ya hay un sitio publicado en el servidor, avísame primero, porque la configuración inicial sobrescribe index.html y la carpeta assets. Haz primero una vista previa de scaffold_site con confirm=false y después llama con confirm=true cuando yo lo apruebe. Luego lee site_design_guide y site_seo_guide. Antes de escribir código, redacta la dirección de diseño (tipografía, color, rejilla, elemento distintivo, lenguaje de movimiento y las bibliotecas que NO se cargarán) en un ART.md breve fuera de assets y muéstramelo. 2. Compila Tailwind, no lo cargues desde el CDN. Instala `npm i -D tailwindcss@3` con site_run_command y background=true, y sigue con site_command_status. Las rutas content de `tailwind.config.js` deben cubrir todos los archivos HTML, incluidas las subcarpetas, las plantillas `_src/*.tpl` y cualquier archivo JS que escriba clases. `_src/tw.css` contiene la línea `@import "../assets/app.css";` y las tres líneas `@tailwind`; compílalo en un solo archivo con `npx tailwindcss -c tailwind.config.js -i _src/tw.css -o assets/site.css --minify`. Quita de las páginas el script de cdn.tailwindcss.com, el tailwind.config en línea, chrome.js y motion.js, y enlaza solo `/assets/site.css`. Vuelve a compilar tras cada cambio de HTML. Si defines los puntos de color con clases de valor arbitrario como `bg-[#28385C]`, se compilan porque aparecen en el HTML. 3. Aloja las fuentes en tu propio servidor. Lee el CSS de Fontshare con una petición por familia y peso (`https://api.fontshare.com/v2/css?f[]=family@weight`), descarga cada archivo woff2 en `assets/fonts/` con site_fetch y escribe las reglas @font-face con `font-display: swap` en `assets/app.css`; design-check busca ahí la fuente personalizada. Precarga TODOS los pesos usados above the fold (títulos, texto y botones) en cada página con `<link rel="preload" as="font" type="font/woff2" crossorigin>` y coloca estas líneas antes del enlace a la hoja de estilos. La mayoría de las fuentes de Fontshare no tienen el signo ₺, así que escribe los precios con "TL". 4. Haz que el menú y el pie de página sean HTML estático. Escribe un pequeño `chrome-stamp.mjs` que lea la lista de navegación de site.config.js y estampe `_src/header.tpl` y `_src/footer.tpl` entre los marcadores `<!-- nav:start --><!-- nav:end -->` y `<!-- footer:start --><!-- footer:end -->` en cada página, añadiendo aria-current="page" al enlace activo. No pongas extensión .html a las plantillas y usa marcadores como `[[NAV]]` en lugar de `{{...}}`. Construye el menú móvil con `<details>` y sin JS. Mantén el nombre del negocio, la dirección y el teléfono en el pie de página como texto plano, y haz que los enlaces del pie y de las migas de pan tengan al menos 44 píxeles de alto. 5. Convierte las imágenes al descargarlas con site_fetch: guarda la misma foto en archivos separados con resize="480x", "800x" y "1120x" (o los anchos que necesite la página), image_format="webp" y quality=65. Da a cada `<img>` srcset, sizes y un width y height que coincidan con la proporción real. La imagen principal above the fold lleva fetchpriority="high" y no es lazy; da fetchpriority solo al verdadero elemento LCP, y loading="lazy" decoding="async" al resto. Descarga las imágenes de variante en 4:5 con resize="480x", "720x" y "960x". 6. Escribe un pequeño `favicon.svg` en la raíz del sitio y añade `<link rel="icon" href="/favicon.svg" type="image/svg+xml">` a cada página; si hay un logo en PNG, crea un apple-touch-icon con site_fetch, resize="180x180" e image_format="png". Sin favicon el navegador registra un 404 para /favicon.ico y Best Practices baja a 96. 7. Reglas del validador de HTML: empieza cada documento con un `<!DOCTYPE html>` en mayúsculas, entrecomilla los atributos con comillas dobles, usa `&nbsp;` para los espacios en el texto visible de los enlaces tel:, no uses nunca el atributo style="" (si necesitas una variable CSS, usa una clase de propiedad arbitraria de Tailwind como `[--r:-4deg]`), da a cada botón type="button", no pongas aria-label en elementos sin rol como `<ul>` o `<div>`, y usa `<section aria-label="...">` en lugar de role="region". 8. Una auditoría de áreas táctiles puede marcar el radio oculto visualmente como de 1 píxel; el área táctil real es el label que lo rodea. Mide que el label tenga al menos 44x44 píxeles y anota el motivo en el informe. SEO, AEO y GEO: 1. Usa URLs de estilo directorio con barra final (/garanti-ve-iade/, /iletisim/, /gizlilik/ o sus equivalentes en tu idioma). Rellena el bloque seo de site.config.js y ejecuta `node seo-stamp.mjs`. Para una marca sin tienda física, pon localBusiness:false en site.config.js. Página de inicio: ItemPage (mainEntity el producto), el schema del producto y FAQPage. Schema del producto: con una sola variante, Product y Offer; con variantes de color, un ProductGroup (productGroupID, variesBy https://schema.org/color, brand, description, material) y dentro de hasVariant un Product por color (sku, color, image) con una Offer (price, priceCurrency TRY, availability, itemCondition, la URL de tienda de la variante como url, seller @id, shippingDetails con OfferShippingDetails y hasMerchantReturnPolicy con MerchantReturnPolicy). Publica la misma MerchantReturnPolicy con su @id en un bloque propio en la página de garantía y devoluciones. Añade GTIN, valoraciones o reseñas solo si tengo valores reales. Escribe cada schema específico de página en su propio bloque `<script type="application/ld+json">` y enlázalo con el grafo base mediante @id. No anides BreadcrumbList dentro de @graph; déjalo en su propio bloque, porque es la única forma en que seo-check lo detecta. 2. Títulos de 48 a 60 caracteres (seo-check trata más de 65 como error), descripciones de 145 a 158 caracteres, un h1 por página. El contenido principal de cada página tiene al menos 150 palabras. En la demo, las páginas de garantía y devoluciones, privacidad y contacto quedaron en 141, 124 y 106 palabras al primer intento y se completaron con información real como "pasos para devolver", "con quién se comparten los datos" y "qué necesita una reclamación de garantía". 3. El primer párrafo de cada página responde directamente a la pregunta de esa página, y el h1 está formulado como esa pregunta. Escribe la FAQ propia de la página con `<details>` y márcala como FAQPage. Muestra la organización editora y una fecha de "Última actualización" con `<time datetime>`. 4. En robots.txt, escribe tu decisión con su motivo para GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-User, Claude-SearchBot, PerplexityBot, Perplexity-User, Google-Extended, Applebot-Extended, Bingbot y CCBot, y apunta al sitemap. sitemap.xml lleva un lastmod real. llms.txt tiene un resumen exacto del sitio en dos frases y una lista de las páginas importantes. 5. Nada de inventar: no escribas reseñas, valoraciones, premios, número de clientes, certificados, horarios, coordenadas, precios ni cifras del producto sin preguntarme. Deja fuera del schema cualquier campo que no conozcas. Gates (en orden; no digas "hecho" hasta que pasen todos): 1. Con site_run_command, ejecuta en orden `node chrome-stamp.mjs`, la compilación de Tailwind, `node seo-stamp.mjs`, `node seo-check.mjs` (0 errores, 0 avisos), `node design-check.mjs` (0 errores; justifica cualquier aviso restante) y `npx html-validate "**/*.html"` (0 errores). 2. Revisa cada página con site_preview, view="mobile" y view="desktop". site_preview captura la página con el movimiento desactivado; si el contenido no está completo en esa captura, el estado sin movimiento está roto. Las imágenes lazy más abajo pueden salir en blanco en una captura de página completa; no lo cuentes como error, pero comprueba sus rutas. 3. Ejecuta core_web_vitals para cada página con strategy="mobile" y strategy="desktop". Aceptación: en móvil Performance de al menos 95 y Accessibility, Best Practices y SEO de 100; en escritorio las cuatro de al menos 95, con objetivo de 100. Si una página no llega, encuentra el archivo lento con resources=true, corrígelo y mide de nuevo. Después ejecuta seo_audit en la página de inicio con strategy="mobile" y runs=2. La lista de peticiones de red no debe contener ninguna dirección fuera de tu propio dominio (los enlaces a la tienda y a WhatsApp son enlaces, no peticiones). 4. Sin desplazamiento horizontal con 360, 390, 768 y 1440 píxeles de ancho, áreas táctiles de al menos 44 píxeles, sin errores de consola. Comprobación de interacción: como site_preview no puede mostrar movimiento ni clics, dime qué debo mirar en mi propio navegador: en escritorio, al mover el ratón sobre el producto la tarjeta se inclina hacia el puntero con las insignias flotando delante, y vuelve a la pose inclinada cuando el ratón sale; al hacer clic en un punto de color o pulsar una tecla de flecha cambian la imagen, el nombre del color y el enlace de compra sin que nada en la página se desplace; con JavaScript desactivado el selector de color sigue funcionando; en un móvil la barra inferior está siempre visible y no tapa los enlaces del final de la página; con reducción de movimiento activada la tarjeta no se inclina. Después de publicar: previsualiza con site_headers la regla `/assets/* Cache-Control: public, max-age=31536000, immutable` y aplícala cuando yo lo apruebe; a partir de entonces, versiona el nombre del archivo siempre que cambie el CSS o el JS (site-v2.css, etc.). Envía sitemap.xml con gsc_submit_sitemap y comprueba la página de inicio con gsc_url_inspect. Al final entrégame: una tabla de puntuaciones por página (página, las cuatro puntuaciones en móvil, las cuatro en escritorio, LCP, CLS), los resultados de los gates y la lista de correcciones que aplicaste.

Resultado de ejemplo

Un ejemplo del resultado que da este prompt. La estructura procede de la salida real de las herramientas; cifras y nombres son ficticios.

Resultado de ejemplo (de una marca de demostración ficticia, no de datos de clientes reales; las puntuaciones son mediciones reales de la demo)

Este prompt se aplicó al pie de la letra a "Buğu 750", un termo de acero ficticio: fondo blanco roto, Familjen Grotesk y Ranade, cuatro colores (azul noche, salvia, arcilla, blanco nieve), cuatro páginas. El único JavaScript es un script en línea de 0,8 KB que inclina el escaparate; el selector de color funciona sin JavaScript.

PáginaMóvil (P/A/BP/SEO)LCP móvilEscritorio (P/A/BP/SEO)CLS
/99/100/100/1002,1 s100/100/100/1000
/garanti-ve-iade/100/100/100/1001,4 s100/100/100/1000
/iletisim/100/100/100/1001,4 s100/100/100/1000
/gizlilik/100/100/100/1001,4 s100/100/100/1000

Controles: seo-check 0 errores 0 advertencias, design-check 0 errores 0 advertencias, html-validate 0 errores, sin desbordamiento a 360/390/768/1440 píxeles, consola limpia, sin solicitudes de red externas. La auditoría de áreas táctiles marcó los radios ocultos como de 1 píxel; las etiquetas, que son los objetivos reales, miden 44x44 píxeles.

Prueba de interacción: al hacer clic en salvia cambiaron a la vez la imagen visible, el nombre en la leyenda y el enlace de compra (?renk=adacayi); la tecla de flecha pasó a arcilla; CLS medido 0. El mismo resultado con JavaScript desactivado. Al mover el ratón a la esquina superior derecha de la tarjeta, --ry quedó en 6,4 grados. A 390 píxeles la barra de compra quedó en la parte inferior de la pantalla con un botón de 48 píxeles, el body tenía 88 píxeles de padding inferior y el último enlace de la página quedó por encima de la barra; en escritorio la barra estaba oculta.

Correcciones aplicadas:
1. La misma página de inicio con el CDN de Tailwind y el CSS de Fontshare midió 95/100/100/100 en móvil (LCP 2,4 s); con CSS compilado y fuentes alojadas en el propio sitio, la página de inicio alcanzó 99/100/100/100.
2. El valor display de .btn-buy anulaba la regla que oculta las variantes y los cuatro botones de compra se mostraban a la vez; se hizo el selector más específico.
3. En la barra móvil, "Buy, night blue" se partía en cuatro líneas; se acortó el texto del botón y el nombre del color pasó a sr-only.
4. role="region" no pasó html-validate (prefer-native-element); el contenedor de la tabla pasó a ser una section.
5. Las páginas de garantía, privacidad y contacto salieron con 141, 124 y 106 palabras; añadir información real las llevó por encima de 150.

Un sitio de ejemplo creado con este prompt

D2C de un solo producto: fondo blanco roto, vitrina con inclinación 3D en CSS (solo con ratón, 0,8 KB de JS en línea), selector de color con :has() sin JS y sin CLS, tablas técnicas y comparativas, ba

Creado para una marca ficticia siguiendo este prompt al pie de la letra. Las puntuaciones se midieron con Lighthouse en cada página.

Crea una página D2C de un solo producto: escaparate 3D, selector de color sin saltos y barra de compra fija
Puntuaciones de Lighthouse (página más baja)
MóvilEscritorio
Rendimiento99100
Accesibilidad100100
Buenas prácticas100100
SEO100100

Controles superados

  • seo check: 0 hata 0 uyarı
  • design check: 0 hata 0 uyarı
  • html validate: 0 hata
  • overflow: 360/390/768/1440 taşma yok, konsol temiz, dış ağ isteği yok; dokunma denetimi sr-only radio'ları 1 px işaretledi, asıl hedef label 44x44 px; renk değişiminde CLS 0, JS kapalıyken renk seçici çalışıyor
  • tailwind before after: Ana sayfa Tailwind CDN + Fontshare CSS ile mobil 95/100/100/100 (LCP 2.4 s), derlenmiş CSS + yerel font ile 99/100/100/100
Capturas de pantalla
Crea una página D2C de un solo producto: escaparate 3D, selector de color sin saltos y barra de compra fija: Móvil
Móvil
Crea una página D2C de un solo producto: escaparate 3D, selector de color sin saltos y barra de compra fija: Escritorio
Escritorio

Medido el: 2026-10-11

Búsquedas relacionadas

Estos prompts funcionan mejor cuando tu asistente de IA está conectado a tus cuentas con Opus Growth.

Conecta tus cuentas gratis

Más prompts

Sitio webCambia tras tu aprobaciónDemo en vivo

Crea un sitio editorial de experto con guías y schema de autor

Pide a tu asistente que construya el sitio de un experto con portada tipo revista, guías extensas y perfil de autor. Tipografía serif, schema Article y Person y artículos fechados y con fuentes dan lugar a una publicación que la gente lee y que las respuestas de IA pueden citar.

Cuándo usarloCuando eres un experto, consultor o autónomo y quieres un sitio que demuestre tu experiencia con guías extensas y que los buscadores y las respuestas de IA puedan citar.

SEO Intelligence, Search Console
Sitio webCambia tras tu aprobaciónDemo en vivo

Crea el sitio de una empresa familiar con aspecto clásico y estándares actuales

Pide a tu asistente que construya un sitio con el espíritu de una etiqueta antigua y un letrero de tienda para un productor de tercera generación, con marco y textura de papel. El aspecto es antiguo, la construcción es nueva: mobile first, sin JavaScript, fuentes alojadas en el propio sitio, WebP, schema Product y HowTo.

Cuándo usarloCuando tienes un negocio familiar y quieres un sitio web de aspecto clásico, como una etiqueta antigua, que cargue rápido y cumpla los estándares actuales de SEO y accesibilidad.

SEO Intelligence, Search Console
Sitio webCambia tras tu aprobaciónDemo en vivo

Crea un sitio minimalista suizo para un despacho de abogados o contabilidad con señales de confianza sólidas

Pide a tu asistente que construya el sitio estático de un despacho sobre una retícula estricta, con la jerarquía sostenida por una sola familia tipográfica. Incorpora las señales de confianza que exige un sector YMYL: perfiles de los profesionales, una nota informativa fechada y con fuentes, un lenguaje que respeta las normas de publicidad profesional y schema Person.

Cuándo usarloCuando diriges un despacho de abogados o una asesoría contable y necesitas una web creíble y rápida que genere confianza sin saltarse las normas de publicidad profesional.

SEO Intelligence, Search Console
Sitio webCambia tras tu aprobaciónDemo en vivo

Crea un sitio corporativo multipágina sin JavaScript y entrégalo con 100 puntos

Pide a tu asistente que construya un sitio estático, rápido y accesible para un negocio corporativo como arquitectura, ingeniería o consultoría. El menú y el pie son HTML estático, las fuentes y el CSS se alojan en el propio servidor y cada página se mide antes de la entrega.

Cuándo usarloCuando necesitas un sitio corporativo nuevo de varias páginas (arquitectura, ingeniería, consultoría) que cargue al instante, funcione sin JavaScript y supere las auditorías de accesibilidad y SEO.

SEO Intelligence, Search Console