Efectos listos para reutilizar en cualquier proyecto. Cada ficha trae el ejemplo en vivo, un prompt para reproducirlo y el código que lo hace funcionar.
Bloque de **texto centrado**: eyebrow + título + párrafo + botón. La base para cualquier sección de copy.
Ejemplo
Eyebrow
Un titular claro y directo
Una o dos frases que explican el valor sin rodeos.
EmpezarVer más
Prompt
Crea una «Sección simple (texto centrado)» responsive y accesible. Una sección con `.wrap` (max-width ~760px), eyebrow en mayúsculas, h2 grande, párrafo y hasta 2 CTAs; todo centrado. HTML + CSS nativo (sin dependencias). Contenedor con ancho máximo ~1200px, espaciado vertical generoso, tipografía clara y buen contraste. Funciona en móvil (una columna) y en desktop. Respeta prefers-reduced-motion si incluye animación.
Código
<section class="s">
<div class="wrap">
<p class="eb">Eyebrow</p>
<h2>Un titular claro y directo</h2>
<p class="lead">Una o dos frases que explican el valor sin rodeos.</p>
<a class="btn" href="#">Empezar</a>
</div>
</section>
<style>
.s{padding:96px 20px}
.s .wrap{max-width:760px;margin:0 auto;text-align:center}
.s .eb{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#8a9099;font-weight:700;margin:0 0 12px}
.s h2{font-size:clamp(30px,5vw,56px);line-height:1.05;margin:0 0 16px}
.s .lead{font-size:18px;color:#555;margin:0 0 26px}
.s .btn{display:inline-block;background:#111;color:#fff;padding:14px 28px;border-radius:999px;font-weight:600;text-decoration:none}
</style>
Sección de cards
Secciones
Grilla de **tarjetas** (icono + título + texto), responsive a 3/2/1 columnas.
Ejemplo
✦
Diseño
Interfaces claras y cuidadas.
⚡
Velocidad
Webs que cargan al instante.
◎
Medición
Decisiones con datos reales.
Prompt
Crea una «Sección de cards» responsive y accesible. Un grid `repeat(auto-fit,minmax(240px,1fr))` con tarjetas; cada una con icono, h3 y párrafo; hover suave. HTML + CSS nativo (sin dependencias). Contenedor con ancho máximo ~1200px, espaciado vertical generoso, tipografía clara y buen contraste. Funciona en móvil (una columna) y en desktop. Respeta prefers-reduced-motion si incluye animación.
Código
<section class="s">
<div class="wrap">
<h2>Lo que hacemos</h2>
<div class="cards">
<article class="card"><span class="ic">✦</span><h3>Diseño</h3><p>Interfaces claras y cuidadas.</p></article>
<article class="card"><span class="ic">⚡</span><h3>Velocidad</h3><p>Webs que cargan al instante.</p></article>
<article class="card"><span class="ic">◎</span><h3>Medición</h3><p>Decisiones con datos reales.</p></article>
</div>
</div>
</section>
<style>
.s{padding:96px 20px}
.s .wrap{max-width:1200px;margin:0 auto}
.s h2{font-size:clamp(26px,3.5vw,40px);margin:0 0 32px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.card{border:1px solid #e6e6e8;border-radius:18px;padding:26px;background:#fff;transition:transform .4s cubic-bezier(.25,1,.5,1),box-shadow .4s}
.card:hover{transform:translateY(-6px);box-shadow:0 20px 44px rgba(0,0,0,.1)}
.card .ic{font-size:26px}
.card h3{margin:14px 0 6px}
.card p{margin:0;color:#666}
</style>
Sección con video de fondo
Secciones
Hero de sección con **video de fondo** a pantalla + contenido y degradado de legibilidad.
Ejemplo
Eyebrow
Título sobre video
Ver más
Prompt
Crea una «Sección con video de fondo» responsive y accesible. Una sección a sangre con `<video autoplay muted loop playsinline>` en `object-fit:cover`, un degradado encima y el contenido alineado abajo/centro. HTML + CSS nativo (sin dependencias). Contenedor con ancho máximo ~1200px, espaciado vertical generoso, tipografía clara y buen contraste. Funciona en móvil (una columna) y en desktop. Respeta prefers-reduced-motion si incluye animación.
Fila de **cápsulas** (pills) con checks y valores — un resumen escaneable de beneficios.
Ejemplo
Sin permanenciaSoporte en españolPrecio transparenteListo en 48 h
Prompt
Crea una «Cápsulas de valores» responsive y accesible. Una fila flexible que envuelve: cada cápsula con un check ✔ y un texto en pill con borde; se apilan en móvil. HTML + CSS nativo (sin dependencias). Contenedor con ancho máximo ~1200px, espaciado vertical generoso, tipografía clara y buen contraste. Funciona en móvil (una columna) y en desktop. Respeta prefers-reduced-motion si incluye animación.
Dos columnas: **imagen** a un lado y **texto** (título, párrafo, CTA) al otro; se apila en móvil.
Ejemplo
Hover
Eyebrow
Imagen y texto, juntos.
Explica el beneficio con una imagen de apoyo.
Conocer más
Prompt
Crea una «Sección 50/50 (imagen + texto)» responsive y accesible. Grid de 2 columnas; la imagen `object-fit:cover` con radio; el texto con jerarquía y CTA. En móvil, una columna. HTML + CSS nativo (sin dependencias). Contenedor con ancho máximo ~1200px, espaciado vertical generoso, tipografía clara y buen contraste. Funciona en móvil (una columna) y en desktop. Respeta prefers-reduced-motion si incluye animación.
Franja de **llamada a la acción** sobre color de marca: titular + botón, ancho completo.
Ejemplo
¿Listo para empezar?
Te mostramos cómo en 20 minutos.
Agendar →
Prompt
Crea una «Banda de CTA» responsive y accesible. Un bloque con fondo de marca (degradado), texto claro, título grande y botón; padding generoso y radio. HTML + CSS nativo (sin dependencias). Contenedor con ancho máximo ~1200px, espaciado vertical generoso, tipografía clara y buen contraste. Funciona en móvil (una columna) y en desktop. Respeta prefers-reduced-motion si incluye animación.
Franja de **cifras clave** (número grande + etiqueta) para respaldar con datos.
Ejemplo
0proyectos entregados
0 htiempo de entrega
0 %satisfacción
Prompt
Crea una «Banda de métricas» responsive y accesible. Grid flexible con 3–4 métricas: número grande y etiqueta pequeña; apila en móvil. HTML + CSS nativo (sin dependencias). Contenedor con ancho máximo ~1200px, espaciado vertical generoso, tipografía clara y buen contraste. Funciona en móvil (una columna) y en desktop. Respeta prefers-reduced-motion si incluye animación.
Franja de **pasos** que se **queda fija (sticky)** mientras haces scroll: los textos **se destacan** al pasar y una **bolita** recorre la línea de un paso al siguiente, iluminándolo.
Ejemplo
Cómo funciona
De la primera llamada a un departamento trabajando.
1
Diagnóstico
Entendemos tu negocio y dónde duele.
2
Diseño
Definimos qué agentes y qué tareas.
3
Montaje
Construimos y conectamos tu departamento.
4
Operación
Tu equipo de IA trabaja y mejora solo.
Prompt
Crea una «Sección Cómo funciona (sticky + resaltado)» responsive y accesible. Una sección con un carril alto; el bloque de pasos queda sticky al centro. Al hacer scroll, una **línea de progreso** se llena y una **bolita** viaja sobre ella; el paso **activo** sube de opacidad/`scale` y recibe un anillo `pulse`. reduced-motion muestra todo estático. HTML + CSS nativo (sin dependencias). Contenedor con ancho máximo ~1200px, espaciado vertical generoso, tipografía clara y buen contraste. Funciona en móvil (una columna) y en desktop. Respeta prefers-reduced-motion si incluye animación.
Código
<section class="kf" id="kf">
<header class="kf-head">
<p class="kf-eb">Cómo funciona</p>
<h2>De la primera llamada a un departamento trabajando.</h2>
</header>
<div class="kf-scroll" tabindex="0" aria-label="Pasos (desplázate)">
<div class="kf-tall">
<div class="kf-sticky">
<ol class="kf-steps">
<li><span class="kf-num">1</span><h3>Diagnóstico</h3><p>Entendemos tu negocio y dónde duele.</p></li>
<li><span class="kf-num">2</span><h3>Diseño</h3><p>Definimos qué agentes y qué tareas.</p></li>
<li><span class="kf-num">3</span><h3>Montaje</h3><p>Construimos y conectamos tu departamento.</p></li>
<li><span class="kf-num">4</span><h3>Operación</h3><p>Tu equipo de IA trabaja y mejora solo.</p></li>
</ol>
<span class="kf-fill" aria-hidden="true"></span>
</div>
</div>
</div>
</section>
<style>
.kf{padding:72px 20px}
.kf-head{max-width:760px;margin:0 auto 28px}
.kf-eb{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#8a9099;font-weight:700;margin:0 0 10px}
.kf h2{font-size:clamp(26px,5vw,46px);line-height:1.02;margin:0}
.kf-scroll{max-width:1000px;margin:0 auto;height:72vh;min-height:360px;overflow:auto;border-radius:18px;
border:1px solid #e6e6e8;background:linear-gradient(180deg,#fafafb,#fff)}
.kf-tall{position:relative;height:260vh}
.kf-sticky{position:sticky;top:0;display:flex;align-items:center;justify-content:center;height:72vh;min-height:360px;padding:32px}
.kf-steps{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;width:100%;margin:0;padding:0;list-style:none}
.kf-steps li{position:relative;text-align:center;opacity:.3;transition:opacity .2s ease}
.kf-num{display:flex;width:52px;height:52px;margin:0 auto 14px;align-items:center;justify-content:center;
border-radius:999px;background:#fff;border:1px solid #e6e6e8;font-weight:800;font-size:20px;color:#6655f5}
.kf-steps h3{font-size:19px;margin:0 0 6px;transform-origin:50% 50%}
.kf-steps p{margin:0;color:#666;font-size:14px}
.kf-fill{position:absolute;left:0;top:26px;height:4px;width:0;border-radius:999px;
background:linear-gradient(90deg,#34d3a3,#7c6cff 55%,#ffb3d1);box-shadow:0 0 16px rgba(124,108,255,.8)}
.kf-fill::after{content:"";position:absolute;right:-7px;top:50%;width:14px;height:14px;margin-top:-9px;
border-radius:999px;background:#fff;box-shadow:0 0 20px 6px rgba(124,108,255,.95)}
.kf-steps li.active .kf-num{border-color:#7c6cff}
@media (prefers-reduced-motion: reduce){.kf-tall{height:auto}.kf-sticky{position:static;height:auto}.kf-steps li{opacity:1}.kf-fill{width:100%}}
</style>
<script>
(function(){
var sec=document.querySelector('.kf'); if(!sec) return;
var box=sec.querySelector('.kf-scroll'), tall=sec.querySelector('.kf-tall'),
sticky=sec.querySelector('.kf-sticky'), ol=sec.querySelector('.kf-steps'),
fill=sec.querySelector('.kf-fill'), items=[].slice.call(ol.children), n=items.length;
function update(){
var max=tall.offsetHeight-sticky.offsetHeight;
var p=max>0?(box.scrollTop)/max:0; p=Math.max(0,Math.min(1,p));
var pos=p*(n-1);
if(fill) fill.style.width=(p*100)+'%';
for(var i=0;i<n;i++){ var f=Math.max(0,1-Math.abs(i-pos)), li=items[i],
h=li.querySelector('h3'), num=li.querySelector('.kf-num');
li.style.opacity=(0.30+0.70*f);
if(h) h.style.transform='scale('+(1+0.06*f)+')';
if(num) num.style.boxShadow='0 0 '+(10+26*f)+'px rgba(124,108,255,'+(0.15+0.65*f)+')';
li.classList.toggle('active', i===Math.round(pos));
}
}
box.addEventListener('scroll', update, {passive:true});
window.addEventListener('resize', update);
update();
})();
</script>
Hero AIgenzi (aurora + título degradado)
Secciones
Hero de portada con **auroras** de fondo, badge, titular con **palabra en degradado animado** y doble CTA.
Ejemplo
Departamentos de IA para cualquier empresa
Tu próximo departamento no necesita selección.
Aigenzi monta departamentos de IA completos que trabajan desde el primer día.
Crea una sección «Hero AIgenzi (aurora + título degradado)» responsive y accesible, con el estilo de AIgenzi (fondo oscuro #0a0c14, texto claro y acentos en degradado aurora mint→sky→violet→rose). Un bloque oscuro con un `::before` de tres `radial-gradient` desenfocados (auroras), badge con punto, h1 grande con un span en `background-clip:text` animado y dos botones. HTML + CSS nativo (sin dependencias). Contenedor claro, jerarquía tipográfica y buen contraste. Funciona en móvil y desktop. Respeta prefers-reduced-motion si hay animación.
Código
<section class="ag-hero">
<p class="ag-badge"><span class="ag-dot"></span>Departamentos de IA para cualquier empresa</p>
<h1 class="ag-hero-h1">Tu próximo departamento<br><span class="ag-grad">no necesita selección.</span></h1>
<p class="ag-hero-lead">Aigenzi monta departamentos de IA completos que trabajan desde el primer día.</p>
<div class="ag-cta"><a class="ag-b1" href="#">Agenda una llamada gratis</a><a class="ag-b2" href="#">Ver los departamentos</a></div>
</section>
<style>
.ag-hero{position:relative;overflow:hidden;padding:64px 28px;border-radius:20px;background:#0a0c14;color:#eef0ff;text-align:center}
.ag-hero::before{content:"";position:absolute;inset:-30% -10% auto -10%;height:80%;pointer-events:none;filter:blur(40px);
background:radial-gradient(40% 60% at 18% 30%,rgba(52,211,163,.4),transparent 60%),radial-gradient(40% 60% at 82% 22%,rgba(124,108,255,.4),transparent 60%),radial-gradient(40% 60% at 60% 74%,rgba(255,179,209,.3),transparent 60%)}
.ag-badge{position:relative;display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:6px 14px;font-size:12.5px;color:#c9cfe6}
.ag-dot{width:6px;height:6px;border-radius:50%;background:#34d3a3}
.ag-hero-h1{position:relative;margin:22px 0 0;font-size:clamp(30px,6vw,58px);line-height:.98;letter-spacing:-.02em}
.ag-hero-lead{position:relative;margin:18px auto 0;max-width:34rem;color:#b8bfd6;font-size:17px}
.ag-cta{position:relative;margin-top:26px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
</style>
<style>
:root{--mint:#5eead4;--sky:#7dd3fc;--violet:#a99dff;--rose:#f9a8d4;--ag-bg:#0a0c14;--ag-ink:#eef0ff;--ag-mut:#aeb6cc;--ag-line:rgba(255,255,255,.1)}
.ag-sec{padding:56px 28px;background:var(--ag-bg);color:var(--ag-ink);border-radius:20px}
.ag-eb{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#8a93ad;font-weight:700;margin:0 0 12px}
.ag-h2{font-size:clamp(26px,4.4vw,44px);line-height:1.03;margin:0 0 28px;letter-spacing:-.01em}
.ag-grad{background:linear-gradient(95deg,var(--mint),var(--sky) 30%,var(--violet) 60%,var(--rose));background-size:230% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;font-style:italic;animation:ag-slide 10s linear infinite}
@keyframes ag-slide{0%{background-position:0% 50%}100%{background-position:230% 50%}}
@media (prefers-reduced-motion: reduce){.ag-grad{animation:none}}
.ag-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.ag-card{border:1px solid var(--ag-line);border-radius:22px;padding:22px;background:rgba(255,255,255,.03);transition:transform .4s cubic-bezier(.25,1,.5,1)}
.ag-card:hover{transform:translateY(-4px)}
.ag-ic{display:flex;width:44px;height:44px;align-items:center;justify-content:center;border-radius:14px;background:rgba(255,255,255,.06);font-size:20px}
.ag-card h3{margin:16px 0 6px;font-size:21px;letter-spacing:-.01em}
.ag-card p{margin:0;color:var(--ag-mut);font-size:14px;line-height:1.5}
.ag-tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:14px 0 0;padding:0}
.ag-tags li{font-size:11.5px;color:var(--ag-mut);background:rgba(255,255,255,.06);border-radius:999px;padding:4px 10px}
.ag-b1{display:inline-block;background:#34d3a3;color:#04121a;border-radius:999px;padding:14px 26px;font-weight:700;text-decoration:none}
.ag-b2{display:inline-block;border:1px solid rgba(255,255,255,.2);color:var(--ag-ink);border-radius:999px;padding:14px 26px;font-weight:600;text-decoration:none}
</style>
Áreas de negocio (grilla de cards)
Secciones
Grilla de **cards** de áreas (icono + título + texto) para mostrar en qué rubros trabajas.
Ejemplo
Áreas de negocio
Porque el mundo cambió y tu empresa aún no.
📊
Contabilidad
Conciliaciones, facturación y cobranza al día, sin sumar personal.
🖥️
Diseño Web
Sitios impresionantes para tu empresa.
👥
Recursos Humanos
Reclutamiento y onboarding siempre a tiempo.
🌱
Agricultura
Predios, clima e insumos ordenados.
🏠
Inmobiliaria
Captación y visitas agendadas solas.
🏗️
Construcción
Cotizaciones y obra coordinadas.
Prompt
Crea una sección «Áreas de negocio (grilla de cards)» responsive y accesible, con el estilo de AIgenzi (fondo oscuro #0a0c14, texto claro y acentos en degradado aurora mint→sky→violet→rose). Un `.ag-grid` `repeat(auto-fit,minmax(220px,1fr))` con cards de borde tenue y hover que eleva; cada card con chip de icono, h3 y párrafo. HTML + CSS nativo (sin dependencias). Contenedor claro, jerarquía tipográfica y buen contraste. Funciona en móvil y desktop. Respeta prefers-reduced-motion si hay animación.
Código
<section class="ag-sec">
<p class="ag-eb">Áreas de negocio</p>
<h2 class="ag-h2">Porque el mundo cambió <span class="ag-grad">y tu empresa aún no.</span></h2>
<div class="ag-grid">
<article class="ag-card"><span class="ag-ic">📊</span><h3>Contabilidad</h3><p>Conciliaciones, facturación y cobranza al día, sin sumar personal.</p></article>
<article class="ag-card"><span class="ag-ic">🖥️</span><h3>Diseño Web</h3><p>Sitios impresionantes para tu empresa.</p></article>
<article class="ag-card"><span class="ag-ic">👥</span><h3>Recursos Humanos</h3><p>Reclutamiento y onboarding siempre a tiempo.</p></article>
<article class="ag-card"><span class="ag-ic">🌱</span><h3>Agricultura</h3><p>Predios, clima e insumos ordenados.</p></article>
<article class="ag-card"><span class="ag-ic">🏠</span><h3>Inmobiliaria</h3><p>Captación y visitas agendadas solas.</p></article>
<article class="ag-card"><span class="ag-ic">🏗️</span><h3>Construcción</h3><p>Cotizaciones y obra coordinadas.</p></article>
</div>
</section>
<style>
:root{--mint:#5eead4;--sky:#7dd3fc;--violet:#a99dff;--rose:#f9a8d4;--ag-bg:#0a0c14;--ag-ink:#eef0ff;--ag-mut:#aeb6cc;--ag-line:rgba(255,255,255,.1)}
.ag-sec{padding:56px 28px;background:var(--ag-bg);color:var(--ag-ink);border-radius:20px}
.ag-eb{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#8a93ad;font-weight:700;margin:0 0 12px}
.ag-h2{font-size:clamp(26px,4.4vw,44px);line-height:1.03;margin:0 0 28px;letter-spacing:-.01em}
.ag-grad{background:linear-gradient(95deg,var(--mint),var(--sky) 30%,var(--violet) 60%,var(--rose));background-size:230% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;font-style:italic;animation:ag-slide 10s linear infinite}
@keyframes ag-slide{0%{background-position:0% 50%}100%{background-position:230% 50%}}
@media (prefers-reduced-motion: reduce){.ag-grad{animation:none}}
.ag-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.ag-card{border:1px solid var(--ag-line);border-radius:22px;padding:22px;background:rgba(255,255,255,.03);transition:transform .4s cubic-bezier(.25,1,.5,1)}
.ag-card:hover{transform:translateY(-4px)}
.ag-ic{display:flex;width:44px;height:44px;align-items:center;justify-content:center;border-radius:14px;background:rgba(255,255,255,.06);font-size:20px}
.ag-card h3{margin:16px 0 6px;font-size:21px;letter-spacing:-.01em}
.ag-card p{margin:0;color:var(--ag-mut);font-size:14px;line-height:1.5}
.ag-tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:14px 0 0;padding:0}
.ag-tags li{font-size:11.5px;color:var(--ag-mut);background:rgba(255,255,255,.06);border-radius:999px;padding:4px 10px}
.ag-b1{display:inline-block;background:#34d3a3;color:#04121a;border-radius:999px;padding:14px 26px;font-weight:700;text-decoration:none}
.ag-b2{display:inline-block;border:1px solid rgba(255,255,255,.2);color:var(--ag-ink);border-radius:999px;padding:14px 26px;font-weight:600;text-decoration:none}
</style>
Departamentos (cards con tags)
Secciones
Cards de **servicio/departamento**: chip de icono, título, descripción y **tags** de tecnología.
Ejemplo
Lo que construimos
Departamentos de IA, no más herramientas.
🤖
Atención al cliente
Responde en segundos, 24/7, con tu tono de marca.
WhatsApp
Web
Correo
🧾
Back office
Factura, concilia y reporta sin sumar gente.
ERP
DTE
Reportes
📈
Ventas
Califica interesados y agenda por ti.
CRM
Ads
Prompt
Crea una sección «Departamentos (cards con tags)» responsive y accesible, con el estilo de AIgenzi (fondo oscuro #0a0c14, texto claro y acentos en degradado aurora mint→sky→violet→rose). Igual que las cards de áreas, con una lista `.ag-tags` de pills al pie para enumerar herramientas o integraciones. HTML + CSS nativo (sin dependencias). Contenedor claro, jerarquía tipográfica y buen contraste. Funciona en móvil y desktop. Respeta prefers-reduced-motion si hay animación.
Código
<section class="ag-sec">
<p class="ag-eb">Lo que construimos</p>
<h2 class="ag-h2">Departamentos de IA, <span class="ag-grad">no más herramientas.</span></h2>
<div class="ag-grid">
<article class="ag-card"><span class="ag-ic">🤖</span><h3>Atención al cliente</h3><p>Responde en segundos, 24/7, con tu tono de marca.</p><ul class="ag-tags"><li>WhatsApp</li><li>Web</li><li>Correo</li></ul></article>
<article class="ag-card"><span class="ag-ic">🧾</span><h3>Back office</h3><p>Factura, concilia y reporta sin sumar gente.</p><ul class="ag-tags"><li>ERP</li><li>DTE</li><li>Reportes</li></ul></article>
<article class="ag-card"><span class="ag-ic">📈</span><h3>Ventas</h3><p>Califica interesados y agenda por ti.</p><ul class="ag-tags"><li>CRM</li><li>Ads</li></ul></article>
</div>
</section>
<style>
:root{--mint:#5eead4;--sky:#7dd3fc;--violet:#a99dff;--rose:#f9a8d4;--ag-bg:#0a0c14;--ag-ink:#eef0ff;--ag-mut:#aeb6cc;--ag-line:rgba(255,255,255,.1)}
.ag-sec{padding:56px 28px;background:var(--ag-bg);color:var(--ag-ink);border-radius:20px}
.ag-eb{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#8a93ad;font-weight:700;margin:0 0 12px}
.ag-h2{font-size:clamp(26px,4.4vw,44px);line-height:1.03;margin:0 0 28px;letter-spacing:-.01em}
.ag-grad{background:linear-gradient(95deg,var(--mint),var(--sky) 30%,var(--violet) 60%,var(--rose));background-size:230% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;font-style:italic;animation:ag-slide 10s linear infinite}
@keyframes ag-slide{0%{background-position:0% 50%}100%{background-position:230% 50%}}
@media (prefers-reduced-motion: reduce){.ag-grad{animation:none}}
.ag-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.ag-card{border:1px solid var(--ag-line);border-radius:22px;padding:22px;background:rgba(255,255,255,.03);transition:transform .4s cubic-bezier(.25,1,.5,1)}
.ag-card:hover{transform:translateY(-4px)}
.ag-ic{display:flex;width:44px;height:44px;align-items:center;justify-content:center;border-radius:14px;background:rgba(255,255,255,.06);font-size:20px}
.ag-card h3{margin:16px 0 6px;font-size:21px;letter-spacing:-.01em}
.ag-card p{margin:0;color:var(--ag-mut);font-size:14px;line-height:1.5}
.ag-tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:14px 0 0;padding:0}
.ag-tags li{font-size:11.5px;color:var(--ag-mut);background:rgba(255,255,255,.06);border-radius:999px;padding:4px 10px}
.ag-b1{display:inline-block;background:#34d3a3;color:#04121a;border-radius:999px;padding:14px 26px;font-weight:700;text-decoration:none}
.ag-b2{display:inline-block;border:1px solid rgba(255,255,255,.2);color:var(--ag-ink);border-radius:999px;padding:14px 26px;font-weight:600;text-decoration:none}
</style>
De emprendedores que trabajan solos a grandes empresas.
🧑💻
Emprendedores
Multiplica tu capacidad sin contratar.
🏬
Pymes
Haz de 5 personas un equipo de 15.
🏢
Corporativos
Automatiza procesos repetitivos a escala.
🤝
Equipos
Que cada área tenga su propio agente.
Prompt
Crea una sección «Para quién (audiencias)» responsive y accesible, con el estilo de AIgenzi (fondo oscuro #0a0c14, texto claro y acentos en degradado aurora mint→sky→violet→rose). Un grid de 4 cards con chip de icono, título y una línea; útil para segmentar audiencias sin barreras. HTML + CSS nativo (sin dependencias). Contenedor claro, jerarquía tipográfica y buen contraste. Funciona en móvil y desktop. Respeta prefers-reduced-motion si hay animación.
Código
<section class="ag-sec">
<p class="ag-eb">Para quién</p>
<h2 class="ag-h2">De emprendedores que trabajan solos <span class="ag-grad">a grandes empresas.</span></h2>
<div class="ag-grid">
<div class="ag-card"><span class="ag-ic">🧑‍💻</span><h3>Emprendedores</h3><p>Multiplica tu capacidad sin contratar.</p></div>
<div class="ag-card"><span class="ag-ic">🏬</span><h3>Pymes</h3><p>Haz de 5 personas un equipo de 15.</p></div>
<div class="ag-card"><span class="ag-ic">🏢</span><h3>Corporativos</h3><p>Automatiza procesos repetitivos a escala.</p></div>
<div class="ag-card"><span class="ag-ic">🤝</span><h3>Equipos</h3><p>Que cada área tenga su propio agente.</p></div>
</div>
</section>
<style>
:root{--mint:#5eead4;--sky:#7dd3fc;--violet:#a99dff;--rose:#f9a8d4;--ag-bg:#0a0c14;--ag-ink:#eef0ff;--ag-mut:#aeb6cc;--ag-line:rgba(255,255,255,.1)}
.ag-sec{padding:56px 28px;background:var(--ag-bg);color:var(--ag-ink);border-radius:20px}
.ag-eb{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#8a93ad;font-weight:700;margin:0 0 12px}
.ag-h2{font-size:clamp(26px,4.4vw,44px);line-height:1.03;margin:0 0 28px;letter-spacing:-.01em}
.ag-grad{background:linear-gradient(95deg,var(--mint),var(--sky) 30%,var(--violet) 60%,var(--rose));background-size:230% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;font-style:italic;animation:ag-slide 10s linear infinite}
@keyframes ag-slide{0%{background-position:0% 50%}100%{background-position:230% 50%}}
@media (prefers-reduced-motion: reduce){.ag-grad{animation:none}}
.ag-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.ag-card{border:1px solid var(--ag-line);border-radius:22px;padding:22px;background:rgba(255,255,255,.03);transition:transform .4s cubic-bezier(.25,1,.5,1)}
.ag-card:hover{transform:translateY(-4px)}
.ag-ic{display:flex;width:44px;height:44px;align-items:center;justify-content:center;border-radius:14px;background:rgba(255,255,255,.06);font-size:20px}
.ag-card h3{margin:16px 0 6px;font-size:21px;letter-spacing:-.01em}
.ag-card p{margin:0;color:var(--ag-mut);font-size:14px;line-height:1.5}
.ag-tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:14px 0 0;padding:0}
.ag-tags li{font-size:11.5px;color:var(--ag-mut);background:rgba(255,255,255,.06);border-radius:999px;padding:4px 10px}
.ag-b1{display:inline-block;background:#34d3a3;color:#04121a;border-radius:999px;padding:14px 26px;font-weight:700;text-decoration:none}
.ag-b2{display:inline-block;border:1px solid rgba(255,255,255,.2);color:var(--ag-ink);border-radius:999px;padding:14px 26px;font-weight:600;text-decoration:none}
</style>
Modelos (3 columnas)
Secciones
Tres columnas que muestran los **modelos de IA** (ChatGPT, Claude, Gemini) y cuál conviene para cada tarea.
Ejemplo
Modelos
ChatGPT, Claude, Gemini. La mejor para cada tarea.
🟢
ChatGPT
Conversación, código y acciones.
🟣
Claude
Textos largos y análisis fino.
🔵
Gemini
Datos, multimodal y Google Workspace.
Prompt
Crea una sección «Modelos (3 columnas)» responsive y accesible, con el estilo de AIgenzi (fondo oscuro #0a0c14, texto claro y acentos en degradado aurora mint→sky→violet→rose). Grid de 3 cards (`.ag-grid3`); cada una con chip, título y una línea; cierra con una nota al pie tenue. HTML + CSS nativo (sin dependencias). Contenedor claro, jerarquía tipográfica y buen contraste. Funciona en móvil y desktop. Respeta prefers-reduced-motion si hay animación.
Sección de **precios**: 3 pasos numerados (diagnóstico → montaje → operación) con precio por tokens.
Ejemplo
Precios
IA por tokens. Pagas por el trabajo hecho.
1
Diagnóstico
Sin costo. Vemos dónde duele.
2
Montaje
Precio fijo por implementación.
3
Operación
Pagas solo los tokens usados.
Prompt
Crea una sección «Precios por pasos» responsive y accesible, con el estilo de AIgenzi (fondo oscuro #0a0c14, texto claro y acentos en degradado aurora mint→sky→violet→rose). Un `<ol>` en grid de 3 con círculo numerado y texto; comunica el modelo de cobro sin tablas. HTML + CSS nativo (sin dependencias). Contenedor claro, jerarquía tipográfica y buen contraste. Funciona en móvil y desktop. Respeta prefers-reduced-motion si hay animación.
Banda de **cifras clave** (número grande + etiqueta) para respaldar con datos.
Ejemplo
Resultados
Funciona con sus propios agentes.
+320tareas por día
98 %satisfacción
24/7disponible
< 1 sde respuesta
Prompt
Crea una sección «Resultados / métricas» responsive y accesible, con el estilo de AIgenzi (fondo oscuro #0a0c14, texto claro y acentos en degradado aurora mint→sky→violet→rose). Un grid de 4 métricas con número en degradado y etiqueta tenue. HTML + CSS nativo (sin dependencias). Contenedor claro, jerarquía tipográfica y buen contraste. Funciona en móvil y desktop. Respeta prefers-reduced-motion si hay animación.
Bloque de **principios/valores** en 2 columnas: chip de icono + título + texto.
Ejemplo
Principios
Agentes potentes. Criterio humano.
🎯
Resultado, no juguetes
Montamos lo que mueve la aguja de tu negocio.
🔒
Tus datos, tuyos
Todo bajo tu control y con permisos claros.
🧠
El mejor modelo, siempre
Elegimos por tarea, sin casarnos con uno.
📊
Se mide
Si no se mide, no se opera.
Prompt
Crea una sección «Principios (lista 2 columnas)» responsive y accesible, con el estilo de AIgenzi (fondo oscuro #0a0c14, texto claro y acentos en degradado aurora mint→sky→violet→rose). Un grid de 2 columnas con filas `icono + texto`, para comunicar criterio y valores. HTML + CSS nativo (sin dependencias). Contenedor claro, jerarquía tipográfica y buen contraste. Funciona en móvil y desktop. Respeta prefers-reduced-motion si hay animación.
Código
<section class="ag-sec">
<p class="ag-eb">Principios</p>
<h2 class="ag-h2">Agentes potentes. <span class="ag-grad">Criterio humano.</span></h2>
<div class="ag-prin">
<div class="ag-prow"><span class="ag-ic">🎯</span><div><h3>Resultado, no juguetes</h3><p>Montamos lo que mueve la aguja de tu negocio.</p></div></div>
<div class="ag-prow"><span class="ag-ic">🔒</span><div><h3>Tus datos, tuyos</h3><p>Todo bajo tu control y con permisos claros.</p></div></div>
<div class="ag-prow"><span class="ag-ic">🧠</span><div><h3>El mejor modelo, siempre</h3><p>Elegimos por tarea, sin casarnos con uno.</p></div></div>
<div class="ag-prow"><span class="ag-ic">📊</span><div><h3>Se mide</h3><p>Si no se mide, no se opera.</p></div></div>
</div>
</section>
<style>
.ag-prin{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.ag-prow{display:flex;gap:16px;border:1px solid var(--ag-line);border-radius:22px;padding:20px;background:rgba(255,255,255,.03)}
.ag-prow h3{margin:0 0 4px;font-size:17px}
.ag-prow p{margin:0;color:var(--ag-mut);font-size:14px}
</style>
<style>
:root{--mint:#5eead4;--sky:#7dd3fc;--violet:#a99dff;--rose:#f9a8d4;--ag-bg:#0a0c14;--ag-ink:#eef0ff;--ag-mut:#aeb6cc;--ag-line:rgba(255,255,255,.1)}
.ag-sec{padding:56px 28px;background:var(--ag-bg);color:var(--ag-ink);border-radius:20px}
.ag-eb{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#8a93ad;font-weight:700;margin:0 0 12px}
.ag-h2{font-size:clamp(26px,4.4vw,44px);line-height:1.03;margin:0 0 28px;letter-spacing:-.01em}
.ag-grad{background:linear-gradient(95deg,var(--mint),var(--sky) 30%,var(--violet) 60%,var(--rose));background-size:230% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;font-style:italic;animation:ag-slide 10s linear infinite}
@keyframes ag-slide{0%{background-position:0% 50%}100%{background-position:230% 50%}}
@media (prefers-reduced-motion: reduce){.ag-grad{animation:none}}
.ag-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.ag-card{border:1px solid var(--ag-line);border-radius:22px;padding:22px;background:rgba(255,255,255,.03);transition:transform .4s cubic-bezier(.25,1,.5,1)}
.ag-card:hover{transform:translateY(-4px)}
.ag-ic{display:flex;width:44px;height:44px;align-items:center;justify-content:center;border-radius:14px;background:rgba(255,255,255,.06);font-size:20px}
.ag-card h3{margin:16px 0 6px;font-size:21px;letter-spacing:-.01em}
.ag-card p{margin:0;color:var(--ag-mut);font-size:14px;line-height:1.5}
.ag-tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:14px 0 0;padding:0}
.ag-tags li{font-size:11.5px;color:var(--ag-mut);background:rgba(255,255,255,.06);border-radius:999px;padding:4px 10px}
.ag-b1{display:inline-block;background:#34d3a3;color:#04121a;border-radius:999px;padding:14px 26px;font-weight:700;text-decoration:none}
.ag-b2{display:inline-block;border:1px solid rgba(255,255,255,.2);color:var(--ag-ink);border-radius:999px;padding:14px 26px;font-weight:600;text-decoration:none}
</style>
Banda de CTA (degradado)
Secciones
Franja de **llamada a la acción** sobre degradado aurora: titular + apoyo + botón oscuro.
Crea una sección «Banda de CTA (degradado)» responsive y accesible, con el estilo de AIgenzi (fondo oscuro #0a0c14, texto claro y acentos en degradado aurora mint→sky→violet→rose). Un bloque con `background:linear-gradient(...)` de la paleta, texto oscuro y botón contrastado. HTML + CSS nativo (sin dependencias). Contenedor claro, jerarquía tipográfica y buen contraste. Funciona en móvil y desktop. Respeta prefers-reduced-motion si hay animación.
Barra de navegación **fija arriba** que se queda pegada al hacer scroll, con **fondo translúcido + desenfoque**. Logo · enlaces · CTA.
Ejemplo
Prompt
Crea un «Menú sticky (barra superior)» responsive y accesible. Una barra `position:sticky;top:0` con `backdrop-filter:blur`, logo, lista de enlaces y un botón CTA; en móvil colapsa a hamburguesa. HTML + CSS nativo (sin dependencias). Fondo translúcido con desenfoque, foco visible y buen contraste. Funciona en móvil y en desktop. Respeta prefers-reduced-motion si incluye animación.
Botón **hamburguesa** que abre un panel a pantalla con los enlaces; el ícono se transforma en **X** y el panel entra con transición. Accesible (`aria-expanded`).
Crea un «Menú móvil (hamburguesa)» responsive y accesible. Un botón con 3 barras que rota a X al abrir; un panel `position:fixed` que se desliza con `clip-path` o `transform`. Bloquea el scroll del fondo y cierra al elegir un enlace. HTML + CSS nativo (sin dependencias). Fondo translúcido con desenfoque, foco visible y buen contraste. Funciona en móvil y en desktop. Respeta prefers-reduced-motion si incluye animación.
Enlace con **panel desplegable** en columnas (ícono + título + descripción), ideal para agrupar servicios. Se abre al pasar el puntero o al enfocar con teclado.
Ejemplo
Prompt
Crea un «Mega menú (paneles)» responsive y accesible. Un `li` con `position:relative`; al `:hover`/`:focus-within` aparece un panel `position:absolute` con columnas y una entrada escalonada suave. HTML + CSS nativo (sin dependencias). Fondo translúcido con desenfoque, foco visible y buen contraste. Funciona en móvil y en desktop. Respeta prefers-reduced-motion si incluye animación.
Hero a todo el ancho con fondo generativo en canvas. Modo por defecto **plexus**: una red de partículas que derivan y se conectan con líneas cuando se acercan, y el puntero las repele (constelación interactiva). Sirve igual **de fondo de hero que detrás de un titular** (plexus typography). Opcional modo clásico (degradado) y capa de imagen + overlay.
Ejemplo
Design the Future
Mueve el cursor sobre el recuadro → las partículas se repelen.
Prompt
Crea un efecto web «Hero Mesh (plexus)». Un <canvas> a pantalla completa dibuja ~80 partículas blancas que derivan (velocidad baja); dos partículas a menos de ~150px se unen con una línea de opacidad = 1 − d/150. El puntero (lerp suave) las REPELE dentro de 150px. Se pausa fuera de viewport (IntersectionObserver), escala por devicePixelRatio (≤2) y respeta prefers-reduced-motion. Datos configurables: densidad, color, distancia de enlace, velocidad, interacción (repel/attract/constellation). Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Código
<div class="plexus"><canvas></canvas>
<div class="plexus-in"><h1>Design the Future</h1></div>
</div>
<style>
.plexus{position:relative;min-height:80vh;background:#0d0f12;overflow:hidden}
.plexus canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.plexus-in{position:relative;z-index:1;color:#fff;text-align:center;padding-top:22vh}
</style>
<script>
(function(){
var host=document.querySelector('.plexus'); if(!host) return;
if(matchMedia('(prefers-reduced-motion: reduce)').matches) return;
var cv=host.querySelector('canvas'), x=cv.getContext('2d');
var dpr=window.innerWidth<=768?1:Math.min(devicePixelRatio||1,2);
var DENS=80, DIST=150, COL='#ffffff', SPEED=1, W, H, on=true;
var m={x:0,y:0}, y={x:0,y:0}, P=[];
function size(){ var r=host.getBoundingClientRect(); W=r.width; H=r.height;
cv.width=W*dpr; cv.height=H*dpr; x.setTransform(dpr,0,0,dpr,0,0);
m.x=W/2; m.y=H/2; y.x=W/2; y.y=H/2; }
addEventListener('resize',size); size();
var n=window.innerWidth<=768?Math.min(DENS,40):DENS;
for(var i=0;i<n;i++) P.push({x:Math.random()*W,y:Math.random()*H,
vx:(Math.random()-.5)*SPEED, vy:(Math.random()-.5)*SPEED});
host.addEventListener('mousemove',function(e){ var r=host.getBoundingClientRect();
m.x=e.clientX-r.left; m.y=e.clientY-r.top; },{passive:true});
host.addEventListener('mouseleave',function(){ m.x=W/2; m.y=H/2; });
new IntersectionObserver(function(e){ on=e[0].isIntersecting; },{rootMargin:'50px 0px'}).observe(host);
(function loop(){
if(on){
y.x+=(m.x-y.x)*.1; y.y+=(m.y-y.y)*.1;
x.clearRect(0,0,W,H);
P.forEach(function(p){
p.x+=p.vx; p.y+=p.vy;
if(p.x<0||p.x>W) p.vx*=-1; if(p.y<0||p.y>H) p.vy*=-1;
var dx=y.x-p.x, dy=y.y-p.y, d=Math.sqrt(dx*dx+dy*dy);
if(d<150 && d>0){ var f=(150-d)/150; p.x-=dx/d*f*2; p.y-=dy/d*f*2; }
x.fillStyle=COL; x.beginPath(); x.arc(p.x,p.y,1.5,0,6.2832); x.fill();
});
x.strokeStyle=COL; x.lineWidth=1;
for(var a=0;a<P.length;a++) for(var b=a+1;b<P.length;b++){
var ex=P[a].x-P[b].x, ey=P[a].y-P[b].y, dd=Math.sqrt(ex*ex+ey*ey);
if(dd<DIST){ x.globalAlpha=1-dd/DIST; x.beginPath();
x.moveTo(P[a].x,P[a].y); x.lineTo(P[b].x,P[b].y); x.stroke(); }
}
x.globalAlpha=1;
}
requestAnimationFrame(loop);
})();
})();
</script>
Kinetic Image Hero
Hero
Hero **art-directed** con composiciones de 1–3 imágenes (**Single · Split Duo · Offset Duo**), contenido integrado (eyebrow/badge, título, texto y hasta 2 CTAs), **encuadre por punto focal**, **reveal** al entrar (fade-rise/scale/clip/blur) y **profundidad por puntero** (parallax 3D).
Ejemplo
Eyebrow · Badge
Art-directed hero
Composición con jerarquía de contenido y dos CTAs.
Crea un efecto web «Image Hero (composiciones)». Un hero con composiciones conmutables: Single (1 imagen a sangre), Split Duo (2 imágenes mitad y mitad) y Offset Duo (2 imágenes asimétricas). El contenido (eyebrow, título, texto, 2 CTAs) va sobre la imagen con degradado de legibilidad; las imágenes entran con reveal y se mueven con profundidad por puntero (--px/--py × --dep). Cambiar de layout anima geometría con cubic-bezier(.25,1,.5,1). reduced-motion deja todo estático. Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Transición tipo **Blinds** de PowerPoint: el hero aparece con franjas que **se abren** (crecen desde 0) escalonadas, como persianas venecianas; horizontal o vertical.
Ejemplo
Blinds
Hero Blinds
Prompt
Crea un efecto web «Hero Blinds (PowerPoint)». Igual que el comb (imagen por slices) pero cada franja **escala** desde 0 (scaleY o scaleX según orientación) con origen en el centro, escalonada — efecto persiana. El contenido entra después con fade-up. Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Titulares animados con **split por caracteres o palabras** y **disparo al scroll**. Estilos base: **Reveal** (máscara: la palabra sube desde abajo), **Blur In** (entra nítida desde el desenfoque) y **Pop In** (rebote). Dirección (arriba/izquierda…), velocidad, stagger, umbral y easing configurables.
Ejemplo
Reveal
Build motion into meaning
Blur In
Soft cinematic focus
Pop In
Energetic headline motion
Prompt
Crea un efecto web «Kinetic Typography (Reveal / Blur In / Pop In)». El texto se divide en palabras (o caracteres). Con un IntersectionObserver se dispara al entrar: Reveal = cada palabra va dentro de una máscara (overflow:hidden) y su span sube de translateY(115%) a 0 con cubic-bezier(.23,1,.32,1) y stagger; Blur In = opacidad 0 + blur(10px) → nítido; Pop In = scale(.6) → 1 con rebote cubic-bezier(.68,-.6,.32,1.6). reduced-motion muestra el texto sin animación. Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Titular con **máquina de escribir**: una palabra se teclea y se borra letra a letra en bucle y un **caret** parpadea. Sirve para el sustantivo/adjetivo variable de un H1 (como en AIgenzi) sin que el layout salte.
Ejemplo
Diseña tu próximo producto
Prompt
Crea un efecto web «Titular máquina de escribir». Un `span` con `data-words` (palabras separadas por `|`) cicla: borra letra a letra (rápido), pausa y escribe la siguiente; un **caret** (`::after`/span) parpadea con `steps(1)`. Reserva ancho para no saltar y en bucle; reduced-motion muestra una palabra fija. Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
**Degradado animado** aplicado a **texto** (`background-clip:text`) y a **objetos** (fondos/bordes): la banda de color se desplaza en bucle. Paleta aurora (mint → sky → violet → rose) configurable; sin color crudo fuera de los tokens.
Ejemplo
Departamentos de inteligencia para tu empresa
Prompt
Crea un efecto web «Degradado aurora». Una banda `linear-gradient(95deg, mint, sky, violet, rose)` con `background-size:230% 100%` se anima con `background-position` 0%→230% en bucle. Para texto se recorta con `-webkit-background-clip:text;color:transparent;padding-bottom:.12em`; para objetos se usa como `background`. reduced-motion detiene la animación. Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Código
<h1 class="au-t">Departamentos de <span class="au-g">inteligencia</span> para tu empresa</h1>
<div class="au-obj"></div>
<style>
:root{--mint:#5eead4;--sky:#7dd3fc;--violet:#a99dff;--rose:#f9a8d4}
.au-g{background:linear-gradient(95deg,var(--mint) 0%,var(--sky) 30%,var(--violet) 60%,var(--rose) 100%);
background-size:230% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;
padding-bottom:.12em;padding-right:.08em;animation:au-slide 10s linear infinite}
.au-obj{height:120px;border-radius:18px;
background:linear-gradient(95deg,var(--mint),var(--sky) 30%,var(--violet) 60%,var(--rose));
background-size:230% 100%;animation:au-slide 10s linear infinite}
@keyframes au-slide{0%{background-position:0% 50%}100%{background-position:230% 50%}}
@media (prefers-reduced-motion: reduce){.au-g,.au-obj{animation:none}}
</style>
Botones
Kinetic Magnetic Button
Botón
Botón CTA con **atracción magnética** del cursor, **parallax del texto/ícono**, escala al hover y **brillo (shine sweep)**. Estilos: **Primary · Glass · Outline · Neon (glow) · Status badge** (con **dot radar** que pulsa), e íconos (flecha, play, descarga, check…).
Crea un efecto web «Botón magnético (CTA)». El botón sigue al cursor: en mousemove se traslada hacia él (hasta ~16px) con transición cubic-bezier(.25,1,.5,1); al salir vuelve. Incluye variantes Primary/Glass/Outline/Neon, un barrido de brillo (::after que cruza en hover), el ícono se desplaza unos px y un status badge con un punto que emite un pulso (keyframe scale 1→3.4 con fade). Solo puntero fino; fallback estático en táctil; reduced-motion desactiva. Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Comparador de imágenes (antes/después) con **dos interacciones**: **arrastrar** la manija o **seguir con el cursor** al pasar. Máscara por `clip-path`, etiquetas y hover-zoom.
Ejemplo
AntesDespués⇆
Prompt
Crea un efecto web «Antes/Después». Dos imágenes superpuestas; la de arriba se recorta con `clip-path: inset(0 calc(100% - p) 0 0)` donde p = posición %. Modos conmutables: (a) arrastrar (pointerdown/move) y (b) hover (mousemove sobre el stage; al salir vuelve a 50%). Etiquetas Antes/Después y zoom suave en hover. Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Miniatura que abre el video en un modal ligero (YouTube/Vimeo/archivo), con carga diferida y safelist de URLs.
Ejemplo
Prompt
Crea un efecto web «Video modal». Una miniatura con botón de play abre un <dialog>/overlay con el video (iframe o <video>), que solo se carga al abrir (lazy); se cierra con Escape, botón y clic en el fondo. Foco atrapado mientras está abierto. Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Reproductor de audio con forma de onda (waveform), control de avance y UI de reproducción accesible.
Ejemplo
Prompt
Crea un efecto web «Reproductor de audio». Barras (waveform) que representan el audio; se colorean según el progreso. Play/pausa con <audio>, actualización por timeupdate; accesible con teclado y aria. Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Tira de **imágenes/logos en loop eterno** (sin salto ni huecos), con **edge fade**, pausa al pasar el cursor y un **sibling blur** opcional: el ítem del centro queda nítido y los laterales se desenfocan y atenúan según su distancia al centro.
Crea un efecto web «Marquee infinito (loop perfecto)». La pista contiene DOS grupos idénticos (cada uno con su gap incluyendo un padding-right igual al gap) y se anima translateX(0 → -50%) en linear infinito: al llegar a -50% el segundo grupo queda exactamente donde empezó el primero → loop sin salto. Overflow oculto + máscara de degradado en los extremos (edge fade) y pausa en :hover. Extra opcional (sibling blur): en cada frame se mide la distancia de cada ítem al centro del contenedor y se aplica blur/opacidad/scale proporcional (centro nítido, laterales borrosos). Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Código
<div class="mq2"><div class="mq2-track">
<div class="mq2-group"><img src="a.jpg"><img src="b.jpg"><img src="c.jpg"></div>
<div class="mq2-group" aria-hidden="true"><img src="a.jpg"><img src="b.jpg"><img src="c.jpg"></div>
</div></div>
<style>
.mq2{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
.mq2-track{display:flex;width:max-content;animation:mq 30s linear infinite}
.mq2-group{display:flex;gap:16px;padding-right:16px} /* el padding = gap ⇒ loop perfecto */
.mq2:hover .mq2-track{animation-play-state:paused}
.mq2-item{width:180px;height:112px;border-radius:12px;overflow:hidden}
.mq2-item img{width:100%;height:100%;object-fit:cover;display:block}
@keyframes mq{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){.mq2-track{animation:none}}
</style>
<script>
// Sibling blur opcional: centro nítido, laterales desenfocados.
(function(){
var mq=document.querySelector('.mq2'); if(!mq) return;
if(matchMedia('(prefers-reduced-motion: reduce)').matches) return;
var track=mq.querySelector('.mq2-track'), items=mq.querySelectorAll('.mq2-item'), base=[];
var tl0=track.getBoundingClientRect().left;
items.forEach(function(el,i){ var r=el.getBoundingClientRect(); base[i]=(r.left-tl0)+r.width/2; });
(function frame(){
var r=mq.getBoundingClientRect(), cx=r.left+r.width/2, half=r.width/2, tl=track.getBoundingClientRect().left;
items.forEach(function(el,i){ var d=Math.min(1,Math.abs((tl+base[i])-cx)/half);
el.style.filter='blur('+(d*4).toFixed(2)+'px) saturate('+(1-d*.3).toFixed(2)+')';
el.style.opacity=(1-d*.5).toFixed(2); el.style.transform='scale('+(1-d*.08).toFixed(3)+')'; });
requestAnimationFrame(frame);
})();
})();
</script>
Carrusel Coverflow 3D
Media
Carrusel 3D tipo coverflow: la tarjeta activa al centro y el resto a los lados (**rotateY + translateZ + escala**); **autoplay**, puntos, flechas, **swipe** y **flip al clic** en la tarjeta activa (revela el reverso).
Ejemplo
Tarjeta 1Desliza o usa las flechas
Detrás 1Contenido de la tarjeta
Tarjeta 2Desliza o usa las flechas
Detrás 2Contenido de la tarjeta
Tarjeta 3Desliza o usa las flechas
Detrás 3Contenido de la tarjeta
Tarjeta 4Desliza o usa las flechas
Detrás 4Contenido de la tarjeta
Tarjeta 5Desliza o usa las flechas
Detrás 5Contenido de la tarjeta
Prompt
Crea un efecto web «Carrusel Coverflow 3D». Stage con perspective:1500px; cada tarjeta por distancia d a la activa: translateX(d·ancho·.55) translateZ(−|d|·120) rotateY(−d·32°) scale(max(.6,1−|d|·.14)); autoplay/puntos/flechas/swipe. Cada tarjeta es una card con dos caras (flip en Y); clic en la activa la gira para ver el reverso. Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Código
// posicionar por distancia d a la activa
c.style.transform='translateX('+(d*w*.55)+'px) translateZ('+(-ad*120)+'px) rotateY('+(-d*32)+'deg) scale('+Math.max(.6,1-ad*.14)+')';
// flip de la card activa
.cf-card{perspective:1500px}
.cf-flip{transform-style:preserve-3d;transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.cf-card.flipped .cf-flip{transform:rotateY(180deg)}
.cf-face{position:absolute;inset:0;backface-visibility:hidden}
.cf-face.back{transform:rotateY(180deg)}
// clic activa -> flip; clic otra -> traer al frente
Reveal duotono (hover)
Media
Imagen/video en **duotono** que revela su **color real al pasar el cursor** (de aigenzi.estandar.cl): grayscale + overlay de sombra (`mix-blend-mode: lighten`) y realce (`multiply`); en hover se quitan.
Ejemplo
Pasa el cursor
Prompt
Crea un efecto web «Reveal duotono». Media con filter:grayscale(1); dos pseudo-elementos: uno con la sombra (mix-blend-mode:lighten) y otro con el realce (mix-blend-mode:multiply). Al :hover, filter:none y opacidad 0 de los overlays → aparece el color real, con transición suave. Compatible con Safari (no usa filter:url sobre <video>). Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Scroll vertical que mueve un **carril horizontal** de tarjetas: encabezado **sticky** y avance en X con **snap**. Cada tarjeta es una **card con flip** al clic.
Ejemplo
Carrusel sticky horizontal · baja dentro del recuadro
Detrás 1
Detrás 2
Detrás 3
Detrás 4
Detrás 5
Detrás 6
Detrás 7
Detrás 8
Prompt
Crea un efecto web «Carrusel sticky horizontal con cards». Contenedor con encabezado sticky y un track flex; el scroll vertical traslada el track (translateX = progreso·recorrido) con snap. Cada tarjeta es un flip-card (front imagen / back contenido) que se gira al hacer clic. Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Separador que se dibuja al hacer scroll (línea recta, discontinua, punteada o con glow) para marcar el paso entre secciones.
Ejemplo
Solid · dibuja a la izquierda
Dashed · dibuja desde el centro
Dotted · dibuja a la derecha
Glow · línea con resplandor
Prompt
Crea un efecto web «Divisor animado al scroll». Una línea (o degradado) que se dibuja de 0 a 100% cuando su sección entra en viewport, usando IntersectionObserver + transición/animation; distintos estilos (sólido, guiones, glow). Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Historia a pantalla dividida: la **media queda fija** (sticky) mientras la columna de **pasos** hace scroll. **Smart media swap** (la imagen hace crossfade según el paso activo), **línea de progreso** vertical y texto con **fade-up**.
Ejemplo
Paso 01
Fija el relato visual.
La media queda anclada mientras el texto explica cada parte.
Paso 02
Sincroniza media y texto.
La imagen hace crossfade al avanzar por los pasos.
Paso 03
Guía el scroll.
La línea de progreso muestra dónde estás en la historia.
Prompt
Crea un efecto web «Split Scroll (media fija + pasos)». Contenedor con scroll propio a dos columnas: la izquierda con la media en position:sticky (se queda fija), la derecha con N pasos. Un IntersectionObserver (root = contenedor) marca el paso activo → la media hace crossfade (smart swap) y el texto activo sube con fade. Una línea vertical muestra el progreso. En móvil se apila. Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Indicador de progreso **lateral** con **dos estilos**: **Hitos** (línea de tiempo con secciones clicables) y **Kinetic** (riel con %, relleno, punto y anillo que rota). El relleno avanza con el scroll; se puede usar a la derecha o izquierda.
Ejemplo
Introducción
Desplázate dentro de este recuadro y observa la línea lateral.
Sección
Cada sección es un hito de la línea de tiempo.
Detalle
El hito activo se marca; puedes clicarlo para saltar.
Cierre
La línea y el % muestran cuánto llevas recorrido.
0%
00%
Prompt
Crea un efecto web «Progreso de scroll lateral con dos estilos (Hitos / Kinetic)». Una línea fija vertical a un costado (derecha por defecto, conmutable a izquierda) cuyo tramo relleno = scrollY/(alto−viewport). En la variante Hitos van hitos (uno por sección/heading); con IntersectionObserver o por offsets se marca el hito activo y se muestra su etiqueta; clic en un hito → scroll suave. La variante Kinetic es un riel con etiqueta de porcentaje, relleno (scaleY), punto que baja y anillo que rota (rotate = progreso·360°); transiciones suaves y se oculta al 100%. Muestra el % numérico. reduced-motion: sin animación. Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
<aside class="kprogress is-visible" id="kprogress" role="progressbar" aria-label="Progreso de la página" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0">
<span class="kprogress__label" aria-hidden="true">00</span>
<span class="kprogress__track" aria-hidden="true">
<span class="kprogress__fill"></span>
<span class="kprogress__dot"><i aria-hidden="true"></i></span>
</span>
<span class="kprogress__unit" aria-hidden="true">%</span>
</aside>
<style>
.kprogress{position:fixed;right:28px;top:50%;transform:translateY(-50%);z-index:90;display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .4s ease,visibility .4s}
.kprogress.is-visible{opacity:1;visibility:visible}
.kprogress__label{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:9px;line-height:1;letter-spacing:.16em;color:#111;opacity:.55;min-width:2ch;text-align:center}
.kprogress__track{position:relative;width:1px;height:160px;background:rgba(17,18,20,.2);border-radius:1px}
.kprogress__fill{position:absolute;left:0;top:0;width:1px;height:100%;background:#111;border-radius:1px;transform:scaleY(var(--kp,0));transform-origin:top;transition:transform .32s cubic-bezier(.16,1,.3,1)}
.kprogress__dot{position:absolute;left:50%;top:calc(var(--kp,0)*100%);width:7px;height:7px;border-radius:50%;background:#111;transform:translate(-50%,-50%);transition:top .32s cubic-bezier(.16,1,.3,1);box-shadow:0 0 0 5px rgba(255,255,255,.55);z-index:2;pointer-events:auto;cursor:grab;touch-action:none}
.kprogress__dot::before{content:"";position:absolute;inset:-12px;border-radius:50%}
.kprogress__dot:active{cursor:grabbing}
.kprogress__dot i{position:absolute;inset:-7px;display:block;border:1px solid rgba(17,18,20,.25);border-radius:50%;transform:rotate(calc(var(--kp,0)*360deg));transition:transform .55s cubic-bezier(.16,1,.3,1)}
.kprogress__unit{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:8px;line-height:1;letter-spacing:.12em;color:#8a9099;opacity:.8}
.kprogress.is-dragging .kprogress__fill,.kprogress.is-dragging .kprogress__dot,.kprogress.is-dragging .kprogress__dot i{transition:none}
@media(max-width:640px){.kprogress{right:14px;gap:8px}.kprogress__track{height:130px}.kprogress__label{font-size:8px}.kprogress__unit{font-size:7px}}
@media(prefers-reduced-motion:reduce){.kprogress__fill,.kprogress__dot,.kprogress__dot i{transition:none}}
</style>
<script>
(function(){
var el=document.getElementById('kprogress'); if(!el) return;
var label=el.querySelector('.kprogress__label');
var dot=el.querySelector('.kprogress__dot'), track=el.querySelector('.kprogress__track');
function update(){
var max=document.documentElement.scrollHeight-innerHeight;
var p=max>0?Math.min(1,Math.max(0,scrollY/max)):0;
el.style.setProperty('--kp',p);
el.setAttribute('aria-valuenow',String(Math.round(p*100)));
if(label) label.textContent=String(Math.round(p*100)).padStart(2,'0');
}
function setFromY(y){
if(!track) return;
var r=track.getBoundingClientRect();
var p=Math.max(0,Math.min(1,(y-r.top)/r.height));
el.style.setProperty('--kp',p);
var max=document.documentElement.scrollHeight-innerHeight;
scrollTo(0,p*max);
}
if(dot&&track){
var dragging=false, prevBehavior='';
dot.addEventListener('pointerdown',function(e){
dragging=true; el.classList.add('is-dragging');
prevBehavior=document.documentElement.style.scrollBehavior;
document.documentElement.style.scrollBehavior='auto';
try{dot.setPointerCapture(e.pointerId)}catch(x){}
e.preventDefault(); setFromY(e.clientY);
});
dot.addEventListener('pointermove',function(e){ if(!dragging) return; e.preventDefault(); setFromY(e.clientY); });
function endDrag(e){ if(!dragging) return; dragging=false; el.classList.remove('is-dragging'); document.documentElement.style.scrollBehavior=prevBehavior; try{dot.releasePointerCapture(e.pointerId)}catch(x){} }
dot.addEventListener('pointerup',endDrag); dot.addEventListener('pointercancel',endDrag);
}
addEventListener('scroll',update,{passive:true}); addEventListener('resize',update); update();
})();
</script>
Cursor
Kinetic Cursor Reveal
Cursor
Lista interactiva con previsualización flotante que sigue al cursor al pasar por cada ítem.
Ejemplo
Brand IdentityStrategy & Logo
Web ExperienceFSE Development
Product LaunchLanding Page
Pasa el cursor por los ítems → imagen flotante que sigue al puntero.
Prompt
Crea un efecto web «Cursor reveal (lista)». Una lista de filas; una imagen flotante sigue al cursor mostrando el medio de la fila bajo el puntero. Solo con puntero fino; se oculta al salir. Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Aura/aurora decorativa que respira detrás del contenido: manchas de color desenfocadas en movimiento lento.
Ejemplo
Ambient Aura
Glow de color detrás del contenido.
Prompt
Crea un efecto web «Aura ambiental». Un contenedor con varias manchas de color (radial-gradients o blobs con blur) en esquinas, animadas con desplazamiento/scale lentos y alternos; opacidad baja para no competir con el contenido. Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Contenedor con **tilt 3D** y **spotlight** que siguen al puntero con **lerp** (sin saltos): el box se inclina suave y un resplandor tenue sigue el cursor.
Ejemplo
Título
Contenido del panel.
Prompt
Crea un efecto web «Box con tilt suave». En mousemove se calcula la posición relativa del cursor; un bucle con requestAnimationFrame interpola (lerp ~0.12) el tilt (rotateX/rotateY ≤8°) y la posición del spotlight (--mx/--my), evitando saltos. El box usa perspective + preserve-3d y una capa ::before con radial-gradient tenue que sigue el cursor. Suave al salir (vuelve a 0). Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Preguntas y respuestas que se **despliegan con una transición de altura suave** (no abrupta): el panel crece con easing y su contenido entra con un leve desvanecido; el icono **+** rota a **×**.
Ejemplo
Copia el prompt (para regenerarlo con IA) o el código y pégalo en tu proyecto.
Sí: cada efecto incluye sus variantes y una versión reconstruida y liberada para reutilizar.
Sí: todos los efectos se desactivan con prefers-reduced-motion.
Prompt
Crea un efecto web «Acordeón FAQ». Cada pregunta es un botón accesible (aria-expanded). El panel se abre animando `grid-template-rows` de 0fr a 1fr con cubic-bezier(.25,1,.5,1) (~.45s), con el interior en overflow:hidden; el párrafo entra con opacity/translate. El icono rota de + a ×. Nada de height fijo ni saltos. Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Cartas apiladas que al **clic** se abren en **abanico** (con el fondo difuminado); **reaccionan al puntero por cercanía**, se **arrastran** y se **voltean** al tocarlas (revelan el reverso).
Ejemplo
Proyecto 1Contenido detrás
Proyecto 2Contenido detrás
Proyecto 3Contenido detrás
Proyecto 4Contenido detrás
Proyecto 5Contenido detrás
Prompt
Crea un efecto web «Cards apiladas → abanico + flip». Mazo de N cartas apiladas; al clic se abren en abanico (tx=c·74, ty=−|c|·16, rot=c·13°, stagger) con un scrim `backdrop-filter: blur`. Con el abanico abierto, mousemove inclina cada carta hacia el puntero con fuerza ∝ cercanía (lerp). Cada carta es arrastrable (pointer events) y, si el pinch no arrastra, se VOLTEA (flip en Y) para mostrar su reverso. Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Código
// abanico (al clic)
card.style.transform = open ? 'translate('+(c*74)+'px,'+(-Math.abs(c)*16-6)+'px) rotate('+(c*13)+'deg)' : 'translate('+(c*7)+'px,'+(-i*3)+'px) rotate('+(c*2)+'deg)';
// flip al tocar (si no se arrastró)
if (moved < 5) card.classList.toggle('flipped');
.fan-card-i{perspective:900px}
.fan-flip{transform-style:preserve-3d;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.fan-card.flipped .fan-flip{transform:rotateY(180deg)}
.fan-face{position:absolute;inset:0;backface-visibility:hidden}
.fan-face.back{transform:rotateY(180deg)}
Generativo
Flow field (estelas)
Generativo
Partículas que siguen un **campo de flujo** de ruido y dejan **estelas**; parece humo/tinta. Sutil y elegante.
Ejemplo
Prompt
Crea un efecto web «Flow field (estelas)». Cada partícula calcula un ángulo a partir de un campo de ruido (sin/cos o Perlin) y avanza; el lienzo se aclara un poco por frame (rgba con alfa bajo) para dejar estelas. Se recicla la partícula al salir. Implementación 100% local (HTML/CSS/JS o canvas), sin dependencias. Respeta prefers-reduced-motion (sin animación si el usuario lo pide), usa devicePixelRatio (≤2) y se pausa fuera de viewport (IntersectionObserver).
Código
// campo de flujo + estelas
for(p of P){
var a = Math.sin(p.y*0.006+t*0.2)*3.1 + Math.cos(p.x*0.007-t*0.15)*2.0;
p.px=p.x; p.py=p.y;
p.x+=Math.cos(a)*1.2; p.y+=Math.sin(a)*1.2;
if(out(p)) reset(p);
stroke(p.px,p.py,p.x,p.y);
}
ctx.fillStyle='rgba(10,12,16,.08)'; ctx.fillRect(0,0,w,h); // estela
Atractor caótico (Clifford)
Generativo
Estructuras de humo/lazo que giran dibujando un **atractor extraño** punto a punto.
Ejemplo
Prompt
Crea un efecto web «Atractor caótico (Clifford)». Se iteran las ecuaciones de Clifford (o de Jong/Lorenz) y se grafican los puntos con alfa bajo; los parámetros a,b,c,d definen la forma. Implementación 100% local (HTML/CSS/JS o canvas), sin dependencias. Respeta prefers-reduced-motion (sin animación si el usuario lo pide), usa devicePixelRatio (≤2) y se pausa fuera de viewport (IntersectionObserver).
**Bandada** con vida emergente: cada agente sigue reglas de separación, alineación y cohesión.
Ejemplo
Prompt
Crea un efecto web «Boids (bandada)». Para cada boid, mirar vecinos dentro de un radio: separación (evitar choques), alineación (promediar velocidad) y cohesión (ir al centro); limitar velocidad y envolver en los bordes. Implementación 100% local (HTML/CSS/JS o canvas), sin dependencias. Respeta prefers-reduced-motion (sin animación si el usuario lo pide), usa devicePixelRatio (≤2) y se pausa fuera de viewport (IntersectionObserver).
Partículas en **espiral de girasol** (ángulo áureo): orden matemático precioso.
Ejemplo
Prompt
Crea un efecto web «Phyllotaxis (espiral áurea)». Cada punto i va a ángulo `i·137.5°` y radio `√i·k`; el ángulo áureo produce empaquetamiento natural. Se colorea por índice y gira lento. Implementación 100% local (HTML/CSS/JS o canvas), sin dependencias. Respeta prefers-reduced-motion (sin animación si el usuario lo pide), usa devicePixelRatio (≤2) y se pausa fuera de viewport (IntersectionObserver).
Código
var a = i * Math.PI * (3 - Math.sqrt(5)); // ángulo áureo
var r = Math.sqrt(i) * k;
point(cos(a)*r, sin(a)*r);
Interferencia / moiré
Generativo
Dos rejillas de líneas superpuestas generan **moiré**: ondas que aparecen por la interferencia. Sutilísimo.
Ejemplo
Prompt
Crea un efecto web «Interferencia / moiré». Dos capas con `repeating-linear-gradient` de líneas finas, una rotada/desplazada lentamente respecto de la otra; el patrón de interferencia emerge al moverse. Implementación 100% local (HTML/CSS/JS o canvas), sin dependencias. Respeta prefers-reduced-motion (sin animación si el usuario lo pide), usa devicePixelRatio (≤2) y se pausa fuera de viewport (IntersectionObserver).
El **texto se forma** (o se disuelve) con miles de partículas que viajan hacia su posición.
Ejemplo
Prompt
Crea un efecto web «Texto en partículas». Se dibuja el texto en un canvas oculto, se muestrean los píxeles opacos como objetivos y cada partícula se mueve con lerp hacia su objetivo. Implementación 100% local (HTML/CSS/JS o canvas), sin dependencias. Respeta prefers-reduced-motion (sin animación si el usuario lo pide), usa devicePixelRatio (≤2) y se pausa fuera de viewport (IntersectionObserver).
Código
// muestrear texto -> objetivos
fx = offctx.getImageData(...); // alpha>128 => punto
// cada frame
p.x += (p.tx - p.x) * 0.08; p.y += (p.ty - p.y) * 0.08;
Logo en partículas
Generativo
Igual que el texto, pero las partículas **forman el logo de Estandar** (SVG) y luego se dispersan; el puntero las repele.
Ejemplo
Prompt
Crea un efecto web «Logo en partículas». Se dibuja el logo SVG en un canvas oculto, se muestrean sus píxeles opacos como objetivos y cada partícula viaja con lerp hacia ellos (ciclo formar/dispersar). Implementación 100% local (HTML/CSS/JS o canvas), sin dependencias. Respeta prefers-reduced-motion (sin animación si el usuario lo pide), usa devicePixelRatio (≤2) y se pausa fuera de viewport (IntersectionObserver).
Código
img.src='/img/logoestandar.svg';
offctx.drawImage(img, ...); // muestrear alpha>120 => objetivo
p.cx += (p.x - p.cx) * 0.06; // formar
// ciclo: cada 7s se dispersa y vuelve
Campo ASCII
Generativo
Un patrón de ruido **dibujado con caracteres** (` .:-=+*#%@`); estética técnica/retro.
Ejemplo
Prompt
Crea un efecto web «Campo ASCII». Grilla de celdas; la “densidad” de cada celda sale de un ruido animado y elige un carácter de la rampa; se colorea según el valor. Implementación 100% local (HTML/CSS/JS o canvas), sin dependencias. Respeta prefers-reduced-motion (sin animación si el usuario lo pide), usa devicePixelRatio (≤2) y se pausa fuera de viewport (IntersectionObserver).
Código
var v = (sin(c*.3+t) + cos(r*.3-t) + 1)/4;
var gi = floor(v * (glyphs.length-1));
fillText(glyphs[gi], c*cw, r*ch);
Recursos
Kinetic Page Loader
Recurso
**6 loaders cinemáticos**: Contador (barra + %), Cortina (paneles que suben), Wordmark (relleno lateral), **Logo** (logo Estandar con revelado **lateral discontinuo**), Anillo (SVG con %) y **Logo zoom** (el logo se agranda mucho y revela el contenido).
Ejemplo
Prompt
Crea un efecto web «Page loaders». Overlay a pantalla completa que se desvanece al terminar. Variantes: Contador (0→100 + barra), Cortina (N paneles que suben escalonados), Wordmark (palabra que se rellena izq→der), Logo (el logo SVG se revela lateralmente con cadencia levemente discontinua, sin números), Anillo (stroke-dashoffset + %), Logo zoom (revelado lateral del logo y, al completar, scale(34) que cubre y revela). Respeta reduced-motion. Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Código
// Logo (revelado lateral discontinuo, sin números)
var im=el.querySelector('.ldr-logo.lat'), v=0;
var t=setInterval(function(){ v=Math.min(100, v + (Math.random()<.28 ? 0 : (Math.random()*16|0)));
im.style.clipPath='inset(0 '+(100-v)+'% 0 0)'; if(v>=100){ clearInterval(t); fade(el); } }, 70);
// Logo zoom: igual + al terminar im.style.transform='scale(34)'; -> cubre y revela
// Cortina: N paneles .ldr-cur i { transform:translateY(-102%) } con stagger
Kinetic Scroll to Top
Recurso
Botón flotante **arrastrable** con **anillo de progreso**: aparece al bajar, muestra el % de avance en el borde del círculo y la flecha; puedes moverlo donde quieras (drag) y al soltar sin mover, sube al inicio.
Ejemplo
Desplázate dentro de este recuadro…
…sigue bajando…
…casi…
…abajo.
Prompt
Crea un efecto web «Volver arriba (arrastrable + progreso)». Botón circular fijo cuyo contorno (SVG stroke-dashoffset) = % de scroll; aparece al pasar cierto umbral. Es ARRASTRABLE con pointer events (pointerdown/move/up cambian su translate); si el pointerup ocurre sin haber movido (umbral), hace scrollTo({top:0,behavior:'smooth'}). Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Panel de diagnóstico de rendimiento del frontend (peso, recursos, animaciones pesadas) para auditar páginas con efectos.
Ejemplo
Prompt
Crea un efecto web «Auditor de frontend». Un panel dev-only que inspecciona la página: peso transferido por tipo (doc/css/js/img/video), nº de recursos, animaciones activas y long tasks; se abre con un botón flotante y es read-only. Sin dependencias externas (solo HTML/CSS/JS nativo). Respeta prefers-reduced-motion (sin animación si el usuario lo pide) y funciona en móvil. Devuelve el HTML, el CSS y el JS listos para pegar en cualquier proyecto.
Código
// Auditor mínimo (dev-only): peso por tipo + recursos + long tasks.
(function(){
if(!location.search.includes('debug')) return;
var r=performance.getEntriesByType('resource');
var byType={}; r.forEach(function(x){ var t=x.initiatorType||'other'; byType[t]=(byType[t]||0)+(x.transferSize||0); });
var lt=performance.getEntriesByType('longtask');
var box=document.createElement('pre');
box.style.cssText='position:fixed;left:12px;bottom:12px;z-index:99999;background:#111;color:#0f0;padding:12px;font:12px monospace;max-width:340px;white-space:pre-wrap';
box.textContent='Recursos: '+r.length+'\n'+Object.keys(byType).map(function(k){return k+': '+Math.round(byType[k]/1024)+'KB';}).join('\n')
+'\nlong tasks: '+lt.length;
document.body.appendChild(box);
})();
Chatbox embebible (cómo se cuelga)
Recurso
Cómo se **cuelga** el widget de chat en una página: un **objeto de configuración** y **una** inclusión de script. Dos modos: **floating** (burbuja, aparece a los 3 s) e **inline** (chat embebido en un punto de la página).
Crea «Chatbox embebible (cómo se cuelga)». Se define `window.AGENTE = { mode, endpoint, title, subtitle, welcome, placeholder, accent, position }` **antes** de incluir `agente.js` (defer). El widget se monta solo; en modo inline se puede montar a mano con `window.Agente.mount({ mode:'inline', after:'#seccion' })`. Un solo archivo, reutilizable en cualquier página. Sin dependencias externas si es posible. Cuida contraste, foco visible y aria. Funciona en móvil y desktop. Respeta prefers-reduced-motion si hay animación.
Código
<!-- 1) Configura el agente ANTES del script -->
<script>
window.AGENTE = {
mode: 'floating', // 'floating' (burbuja) | 'inline' (embebido)
endpoint: '/agente/chat.php', // backend que responde
title: 'Asistente', subtitle: 'Departamentos de IA',
welcome: 'Hola 👋 ¿En qué te ayudo?',
placeholder: 'Escribe tu mensaje…',
accent: '#34d3a3', position: 'right' // burbuja abajo-derecha
};
</script>
<!-- 2) Incluye el widget UNA vez -->
<script src="/agente.js" defer></script>
<!-- (Opcional) Montaje inline dentro de la página -->
<div id="chat-inline"></div>
<script>
addEventListener('load', function () {
window.Agente.mount({ mode: 'inline', target: '#chat-inline', endpoint: '/agente/chat.php' });
});
</script>
Burbujas de chatbot
Recurso
Burbujas de conversación: **usuario** (alineada a la derecha, con degradado) y **asistente** (a la izquierda, superficie tenue), más el indicador *escribiendo…*.
Ejemplo
Hola 👋 ¿En qué te ayudo?
Necesito facturar a un cliente.
Perfecto, ¿me pasas su RUT y el detalle?
escribiendo…
Prompt
Crea «Burbujas de chatbot». Contenedor en columna; las burbujas usan `align-self` y `border-radius` asimétrico (esquina inferior del lado correspondiente a 4px) para señalar el emisor; el usuario lleva el degradado de marca y texto oscuro. Sin dependencias externas si es posible. Cuida contraste, foco visible y aria. Funciona en móvil y desktop. Respeta prefers-reduced-motion si hay animación.
Código
<div class="chat">
<div class="chat-body">
<div class="msg a">Hola 👋 ¿En qué te ayudo?</div>
<div class="msg u">Necesito facturar a un cliente.</div>
<div class="msg a">Perfecto, ¿me pasas su RUT y el detalle?</div>
<div class="typing">escribiendo…</div>
</div>
</div>
<style>
.chat{background:#0c0e18;border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:16px;color:#eef0ff;font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif}
.chat-body{display:flex;flex-direction:column;gap:10px}
.msg{max-width:82%;padding:10px 13px;border-radius:14px;white-space:normal;word-wrap:break-word}
.msg.a{align-self:flex-start;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08);border-bottom-left-radius:4px}
.msg.u{align-self:flex-end;background:linear-gradient(135deg,#34d3a3,#7c6cff 55%,#ffb3d1);color:#04121a;border-bottom-right-radius:4px}
.typing{align-self:flex-start;color:#9aa7b6;font-size:13px;padding:4px 6px}
</style>
Accesibilidad base (checklist)
Recurso
Las bases de accesibilidad que usamos en AIgenzi: **skip link**, **foco visible**, **movimiento reducido**, texto **sr-only** para lectores de pantalla y **contraste** de tokens.
Crea «Accesibilidad base (checklist)». Un enlace «saltar al contenido» que aparece al enfocar, `:focus-visible` con outline notorio, `prefers-reduced-motion` que anula animaciones/scroll suave, y una clase `.sr-only` para texto solo de lectores. Contraste AA en todo par texto/fondo. Sin dependencias externas si es posible. Cuida contraste, foco visible y aria. Funciona en móvil y desktop. Respeta prefers-reduced-motion si hay animación.
Código
<a class="skip" href="#main">Saltar al contenido</a>
<main id="main" tabindex="-1"> … </main>
<style>
/* 1) Skip link: oculto hasta recibir foco por teclado */
.skip{position:absolute;left:12px;top:-56px;z-index:100;background:#111214;color:#fff;
padding:10px 16px;border-radius:10px;transition:top .2s ease}
.skip:focus{top:12px}
/* 2) Foco visible SIEMPRE (no lo elimines) */
:focus-visible{outline:2px solid #6655f5;outline-offset:2px;border-radius:4px}
/* 3) Texto solo para lectores de pantalla */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* 4) Respetar el movimiento reducido */
@media (prefers-reduced-motion: reduce){
html{scroll-behavior:auto}
*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}
/* 5) Contraste: texto principal sobre fondo claro/oscuro con ratio AA (>=4.5:1) */
</style>
Preguntas y respuestas
Cómo usamos estos efectos
Efectos nativos de HTML/CSS/JS, reconstruidos y curados por Estandar. Cada ficha trae su ejemplo en vivo, su prompt y su código listos para pegar en cualquier proyecto.
Sí. Copia el prompt y pídelo a una IA, o copia el código (HTML/CSS/JS) y pégalo. Son nativos, sin dependencias ni licencias.
Sí. Son bloques de HTML/CSS/JS estándar; funcionan en WordPress, Astro, sitios estáticos o cualquier proyecto.
Todos respetan prefers-reduced-motion, usan transform/opacity (compositor) y dejan un fallback legible para lectores de pantalla.