Danilo Alessandro Vinciprova

Danilo Alessandro Vinciprova

AI-Assisted Web Developer · React · Next.js · Claude Code

Aprendí a pensar en construir como en piezas que tienen que encajar entre sí.

Proyecto 03 / 06 · sitio web

CURATA

Boutique prototipo de hallazgos de Amazon UK, a cargo del personaje Cura. Es un prototipo, no una tienda en funcionamiento.

PrototipoNext.js, Tailwind CSS, Framer Motion

Resumen

Capturas de pantalla

Nivel de prueba: Prueba existente

CURATA: captura de la página de inicio, escritorio (1440 px).
CURATA: captura de la página de inicio, móvil (375 px).
Escritorio 1440 × 900 y móvil 375 × 812, capturados el 29 de septiembre de 2026 desde el proyecto ejecutándose en local (no está en línea).
Ver la prueba
  1. Afirmación

    CURATA: boutique prototipo de hallazgos de Amazon UK, a cargo del personaje Cura. Es un prototipo, no una tienda en funcionamiento.

    Declarado por Danilo

  2. Pruebas

  3. Resultado

    Capturas reales de la página, tomadas del proyecto en funcionamiento el 29/09/2026. Que lo construyera Danilo es una declaración suya.

En esta página

  1. 02 En acción: una grabación de pantalla del prototipo en funcionamiento
  2. 03 Código: extractos del código fuente de la página de inicio

No está en esta página

  • Una vista 3D: el código fuente actual del prototipo no renderiza ninguna escena 3D, así que no hay nada real que grabar.
  • Medido: este prototipo solo funciona en un servidor de desarrollo local, y las puntuaciones tomadas allí no serían representativas.

En acción

La página de inicio y después las seis “salas”: cada tarjeta reproduce su propio vídeo corto mientras el puntero está encima.

Grabación de pantalla

Nivel de prueba: Prueba existente

Grabación de pantalla del prototipo CURATA en funcionamiento (13 s, sin sonido). Grabada el 29/09/2026 con Playwright desde el proyecto ejecutándose en local: la página de inicio y después las tarjetas de las salas reproduciendo sus propios vídeos al pasar el puntero.

Código

Las seis salas son datos; la página convierte cada una en una tarjeta cuyo vídeo se reproduce mientras el puntero está encima, y vuelve al principio cuando sale.

src/app/page.tsx líneas 76–84

Raw: texto de src/app/page.tsx, líneas 76–84
/* ─── Data ────────────────────────────────────────────────────── */
const CATEGORIES: Category[] = [
  { id:'tech',     title:'Tech Room',         subtitle:"Boring tech that quietly works.",         href:'/tech-room',     poster:'/images/rooms/tech.jpg',     video:'/videos/rooms/tech.mp4',     count:'6 finds', status:'open' },
  { id:'beauty',   title:'Beauty Edit',       subtitle:"Skincare without the alchemy marketing.", href:'/beauty-room',   poster:'/images/rooms/beauty.jpg',   video:'/videos/rooms/beauty.mp4',   count:'6 finds', status:'open' },
  { id:'kitchen',  title:'Kitchen Lab',       subtitle:"Tools that actually cook, not collect dust.", href:'/kitchen-room', poster:'/images/rooms/kitchen.jpg', video:'/videos/rooms/kitchen.mp4', count:'6 finds', status:'open' },
  { id:'home',     title:'Home Upgrade',      subtitle:"Small flat. Big quietly-clever fixes.",   href:'/home-room',     poster:'/images/rooms/home.jpg',     video:'/videos/rooms/home.mp4',     count:'6 finds', status:'open' },
  { id:'wellness', title:'Wellness Room',     subtitle:"Sleep, recover, breathe. No miracle cures.", href:'/wellness-room', poster:'/images/rooms/wellness.jpg', video:'/videos/rooms/wellness.mp4', count:'6 finds', status:'open' },
  { id:'pet',      title:'Pet Room',          subtitle:"For the small ones who run the house.",   href:'/pet-room',      poster:'/images/rooms/pet.jpg',      video:'/videos/rooms/pet.mp4',      count:'6 finds', status:'open' },
]

Nivel de prueba: Prueba existente

Código fuente de CURATA: las seis salas · copiado el 29 de septiembre de 2026 · sha256 9a72df962cff…

src/app/page.tsx líneas 522–545

Raw: texto de src/app/page.tsx, líneas 522–545
            const isOpen = cat.status === 'open'
            const inner = (
              <motion.div variants={reduce?undefined:FV.fadeUp} className="st-cat-card"
                onMouseEnter={(e) => {
                  const v = e.currentTarget.querySelector('video') as HTMLVideoElement | null
                  v?.play().catch(() => {})
                }}
                onMouseLeave={(e) => {
                  const v = e.currentTarget.querySelector('video') as HTMLVideoElement | null
                  if (v) { v.pause(); v.currentTime = 0 }
                }}
                style={{position:'relative',padding:0,background:P.bg,border:`1px solid ${P.border}`,borderRadius:'14px',display:'flex',flexDirection:'column',cursor:isOpen?'pointer':'default',opacity:isOpen?1:0.7,overflow:'hidden'}}>
                {/* Cinematic visual — poster image + hover video */}
                <div style={{position:'relative',aspectRatio:'16/9',width:'100%',background:P.surf2,overflow:'hidden'}}>
                  {/* eslint-disable-next-line @next/next/no-img-element */}
                  <img src={cat.poster} alt="" loading="lazy" style={{position:'absolute',inset:0,width:'100%',height:'100%',objectFit:'cover',zIndex:1}}/>
                  <video
                    src={cat.video}
                    muted
                    loop
                    playsInline
                    preload="none"
                    aria-hidden
                    style={{position:'absolute',inset:0,width:'100%',height:'100%',objectFit:'cover',zIndex:2}}

Nivel de prueba: Prueba existente

Código fuente de CURATA: una tarjeta de sala que reproduce su vídeo al pasar el puntero · copiado el 29 de septiembre de 2026 · sha256 2a8d72f752dc…