El sistema vivo de Wiwo.
Neo Design System organiza marca, UI, motion, IA, fotografía, íconos y tono para que cada producto Wiwo se sienta simple por fuera, poderoso por dentro y listo para escalar sin perder personalidad.
Simple es poderoso.
Wiwo debe verse como una neo-agencia que sabe ejecutar: beige calmo para pensar, azul para identidad, verde para acción y degradados para momentos de transformación.
La lógica antes de la forma.
Principios, voz y conceptos retóricos que hacen que cada interfaz Wiwo tenga criterio antes de tener componentes.
Principios
La mezcla Wiwo entre marca, producto, IA y motion define cómo se toman decisiones de interfaz, narrativa y experiencia.
Expresivo, no ruidoso
Usa verde o gradiente para momentos de energía: lanzamiento, automatización, insight, confirmación. Evita cubrir todo con color.
Editorial y escaneable
Grillas claras, titulares fuertes, mucho aire y bloques que se pueden leer en diagonal sin perder precisión.
IA como copiloto
Todo patron debe mostrar próximo paso, estado y criterio. La interfaz no presume magia: explica decisiones útiles.
Marca modular
El logo, el ícono W y el punto final de wiwo funcionan como piezas: lockup, app icon, sello, loader y marcador de estado.
Retórica
Conceptos narrativos para alinear estrategia, marca, producto, campañas y sistemas IA-first. Esta es la capa verbal que sostiene el diseño.
La IA amplifica lo humano.
Wiwo se expresa desde una tensión clara: tecnología avanzada por dentro, experiencia simple y humana por fuera. El relato debe convertir futuro, IA y automatización en capacidad real de negocio.
Compañía IA-first.
Wiwo es una compañía IA-first creada para convertir el futuro en capacidad real de negocio.
Ver desarrollo
No es solo una agencia, no es solo una plataforma y no es solo una capa tecnológica. Wiwo es un sistema de crecimiento que une creatividad, inteligencia artificial, automatización, datos, infraestructura y estrategia para ayudar a personas, equipos y compañías a operar con una nueva potencia.
Wiwo existe para hacer que la tecnología se sienta simple, útil y humana, pero que por dentro funcione con una arquitectura profundamente inteligente. Su premisa central es clara: la IA no reemplaza el valor humano, lo amplifica.
Wiwo es la interfaz entre lo que una persona imagina y lo que una organización puede construir, escalar y transformar.
Personas más capaces.
Humanity Augmented es la visión que define cómo Wiwo entiende la relación entre personas e inteligencia artificial.
Ver desarrollo
No creemos en un futuro donde la tecnología sustituye a los humanos. Creemos en un futuro donde los humanos aumentan su capacidad gracias a la tecnología. La IA no viene a borrar el criterio, la intuición, la sensibilidad, la creatividad ni la experiencia de las personas; viene a expandirlas.
Humanity Augmented significa que una persona puede pensar más rápido, crear mejor, decidir con más información, operar con más precisión y escalar su impacto con herramientas que multiplican su capacidad natural.
En Wiwo, la tecnología no es protagonista por sí sola. Es una extensión del talento humano.
Multiplicación real.
x10 es la promesa de multiplicación de Wiwo.
Ver desarrollo
No se trata de mejorar un proceso en un 10%. Se trata de cambiar la escala de lo que una persona, un equipo o una compañía puede lograr. x10 representa velocidad, eficiencia, inteligencia, creatividad, producción, aprendizaje y capacidad operativa multiplicadas por tecnología.
x10 es pasar de hacer más con más recursos, a hacer mucho más con sistemas más inteligentes. Es transformar procesos manuales en flujos automatizados, convertir equipos tradicionales en equipos aumentados y pasar de estructuras pesadas a modelos más ágiles, precisos y escalables.
El x10 de Wiwo no es solo productividad. Es una nueva forma de competir.
La persona al centro.
The Power of You es el concepto que pone a la persona en el centro.
Ver desarrollo
En un mundo obsesionado con la inteligencia artificial, Wiwo recuerda que el verdadero poder sigue estando en las personas: en su visión, su criterio, su historia, su creatividad, su sensibilidad y su capacidad de imaginar lo que todavía no existe.
The Power of You significa que la tecnología debe adaptarse a las personas, no al revés. Cada herramienta, agente, plataforma o sistema debe amplificar lo que hace única a una persona, una marca o una compañía.
Wiwo no busca uniformar. Busca potenciar. No transforma a las personas en máquinas. Les entrega máquinas para que puedan llevar más lejos su propia inteligencia.
Brutal por dentro.
Simple por fuera, brutal por dentro es la filosofía de diseño y desarrollo de Wiwo.
Ver desarrollo
Lo que el usuario ve debe sentirse simple, claro, elegante y fácil de usar. Pero detrás de esa simplicidad debe existir una arquitectura poderosa: agentes, automatizaciones, modelos de IA, datos, integraciones, infraestructura, lógica de negocio y sistemas complejos trabajando en silencio.
Este concepto expresa una tensión clave de Wiwo: ocultar la complejidad para entregar fluidez. Hacer que lo sofisticado parezca natural. Convertir tecnología avanzada en experiencias intuitivas.
Wiwo no presume complejidad. La domina.
El futuro se construye.
Imagine Tomorrow es la invitación emocional y estratégica de Wiwo.
Ver desarrollo
No habla solo de futuro como una idea abstracta. Habla de la capacidad de imaginar lo que viene y construirlo hoy. Es una declaración optimista, ambiciosa y profundamente tecnológica: el mañana no se espera, se diseña.
Imagine Tomorrow conecta a Wiwo con la innovación, la creatividad, la anticipación y la construcción de nuevas posibilidades. Es un llamado a marcas, empresas y personas que no quieren adaptarse tarde al futuro, sino participar activamente en su creación.
Para Wiwo, imaginar el mañana no es fantasear. Es transformar visión en productos, sistemas, campañas, plataformas y experiencias reales.
Identidad usable, no decorativa.
Logos, fotografía, video e íconos funcionan como herramientas de producto: claros, livianos y siempre propios de Wiwo.
Marca
El sistema usa los archivos reales de Wiwo: lockup azul, lockup beige, lockup verde y mark. Cada variante conserva proporción, contraste y espacio vital.
Logo, color y contexto en una sola decisión.
La marca no vive como un bloque aislado: azul para identidad, beige para lectura, verde para acción y gradiente para momentos de IA, cambio o momentum.
Presentación obligatoria
Cuando se enseña el sistema de logo, despliega siempre las tres versiones de lockup: Blue, Beige y Green. El mark se presenta aparte como ícono, loader o sello.
Proporcion intacta
No comprimir, expandir ni reconstruir. El lockup mantiene su relación 6317/1339 y el mark 3390/2164.
Contraste por fondo
Azul sobre beige o superficies claras. Beige sobre ink #292929, fotos y fondos profundos. Verde solo para activación.
Zona segura
Reserva al menos la altura del punto final alrededor del logo. En UI compacta, usa el mark antes de apretar el lockup.
Sin filtros
No aplicar sombras duras, recolor por CSS, blur ni efectos encima del archivo. Cambia de variante según el fondo.
Descarga de assets
Archivos PNG transparentes listos para Figma, web, presentaciones y piezas comerciales.
Fotografía
El sistema de fotos Wiwo muestra un futuro optimista, lindo y realista: cercano, humano, posible, con beige Wiwo como atmósfera y verde/azul como señales vivas.
Futuro cercano, humano y posible
La foto Wiwo debe sentirse luminosa y operativa: espacios beige, verde como energía, azul como interfaz y personas usando tecnología real sin perder calidez.
No cyber. Futuro real.
Wiwo no retrata una ciudad cyber, cyborgs ni tecnología lejana. Retrata un mañana bonito, realista y alcanzable: gente trabajando mejor, comercios vivos, interfaces claras y espacios con color de marca.
Personas presentes, activas y tranquilas. La tecnología acompana, no reemplaza la escena.
Locales, oficinas, tiendas y rutinas reconocibles. Futuro no tan lejano, posible de vivir ahora.
Beige #F8FAD7/#EDEFDD para calma, verde para acción y azul para sistema, interfaz o señal.
Luz beige
Prioriza luz natural, calidez y sombras suaves. Evita blancos fríos o fondos clínicos.
Personas en acción
La persona debe estar haciendo algo: decidir, comprar, atender, probar o recibir ayuda.
Producto visible
Incluye pantallas, pagos, interfaces o senaletica cuando la foto necesita demostrar capacidad.
Marca integrada
El verde y azul aparecen como capas, objetos o interfaces dentro de la escena, no como filtro encima.
Evitar sci-fi frío
Nada de cyber city, cyborgs, metal oscuro, neón distópico o tecnología imposible. Wiwo es futuro amable y real.
Biblioteca visual con criterio.
Los assets nuevos se ordenan por función: interfaz, retail, futuro optimista, campaña, creators y 3D de marca. No todo se usa igual: cada pieza debe conservar cercanía humana, beige Wiwo, verde de acción y azul de sistema.
Selecciona por rol
Antes de usar una imagen, define si cumple función de producto, evidencia, campaña, ambiente, creator o transición.
Color Wiwo presente
Beige como base o luz; verde como acción; azul como sistema. Si el asset no tiene esa lógica, no es principal.
Humanidad primero
Cuando haya personas, deben sentirse reales, activas y optimistas. Evita poses frias o moda demasiado distante.
3D con moderación
Usalo para motion, fondos y objetos de marca. No convertirlo en mundo cyber, distópico ni tecnología imposible.
Style frames para un futuro vivo.
Estos assets funcionan como dirección audiovisual: cámara suave, luz beige, interfaz azul, verde como acción y movimiento optimista. Son stills y style frames; cuando exista video real, debe respetar este lenguaje visual.
Cámara
Dolly lento, orbit corto, push in suave y parallax glass. Evita cámara nerviosa o velocidad agresiva.
Luz y color
Beige luminoso, azul interfaz y verde acción. Evita neón distópico, metal oscuro o brillos sin calidez.
Edición
Cortes de 280 a 420ms, microinteracciones de 160ms y transiciones con máscaras, blur glass o profundidad.
Uso correcto
Estos archivos son referencia visual. No prometer video real si no existe archivo fuente, render o pieza editada.
Tokens, componentes y patrones.
La parte consumible: fuente única de tokens, componentes para producto real y reglas de layout que escalan.
Tokens
Base reusable para web, Figma y producto. Nombres funcionales primero; colores de marca después.
Color
Wiwo mantiene azul y verde como señales activas, balanceadas con beige Wiwo como fondo principal e ink #292929 para contraste. Regla dura: el verde nunca va como texto sobre fondos claros.
Degradados
El degradado principal nace del Figma: verde eléctrico hacia azul Wiwo. Se usa para energía, lanzamiento, IA y momentos de transformación.
Tipografía
Paquete descargable con Plus Jakarta Sans variable, italic, licencia OFL y CSS para autohosting.
Forma y espacio
El sistema usa formas simples: tarjetas de 8px, controles tipo pill, focos visibles y grillas con ritmo de 4/8px.
Modo oscuro semantico
Light y dark comparten nombres, no excepciones: las vistas cambian porque cambian --surface, --ink, --line y contenedores.
Tokens como código
El HTML documenta el sistema, pero el contrato consumible vive en un JSON exportable. Cambia el verde, el beige, dark mode o foco en un solo lugar y regenera los outputs.
npm run build:tokens
Una fuente, tres consumos
Estos archivos se generan desde el JSON. No se editan a mano: web, Figma y Tailwind deben leer el mismo origen para evitar deriva.
--wiwo-beige
#F8FAD7
Fondo principal, secciones largas, documentos, superficies de lectura.
--wiwo-beige-alt
#EDEFDD
Fondos secundarios, bloques alternos, superficies operativas y areas de descanso visual.
--wiwo-blue
#4242FF
Identidad, foco, selección, links importantes y elementos de confianza.
--wiwo-green
#3BFF00
Acción primaria, energía y progreso. Nunca usar como texto sobre beige o blanco; solo sobre oscuro, como fill con ink encima o en gráficos no textuales.
--wiwo-gradient-primary
103deg
Momentos de IA, transformación, hero de campaña y transiciones de estado.
--chart-primary
#4242FF
Serie principal de KPIs: revenue, conversión, selección y foco en dashboards.
--chart-positive
#3BFF00
Crecimiento, progreso positivo, completion y mejoras confirmadas.
--chart-grid
Light / Dark
Líneas de chart semanticas. Cambian con el tema para no hardcodear grillas.
--glass-fill
rgba 24%
Capas liquid glass: toolbars, overlays, docks, command palettes y estados flotantes.
--surface
Light beige / Dark ink
Fondo base del producto. Cambia con el tema y evita fondos hardcodeados por pantalla.
--surface-container
Elevacion semantica
Cards, tablas, tool surfaces y paneles operativos. En dark se eleva sin usar negro solido.
--ink
Light #292929 / Dark beige
Texto principal. No usarlo como fondo; para superficies opuestas existe --surface-inverse.
--line
Borde por tema
Separadores y contornos. En dark baja opacidad para que el dashboard no se vea alambrado.
--surface-inverse
Modo opuesto
Botones sobrios, headers de tablas y contenedores premium; siempre con --ink-inverse.
Componentes
Componentes mínimos para empezar un producto Wiwo: acción clara, estados visibles y contenido fácil de escanear.
Foco visible real
Todo control interactivo usa :focus-visible con ring azul/verde según tema. El foco no depende de hover ni de color solamente: debe verse en teclado, formularios, icon buttons, chips y nav.
Contraste aprobado
La paleta Wiwo se usa con pares cerrados. Si el fondo se mueve, el texto necesita overlay, glass o contenedor estable.
| Fondo | Texto | Uso | Regla |
|---|---|---|---|
| Beige #F8FAD7 / #EDEFDD | #292929 | UI base, lectura, dashboards | Aprobado para texto normal y largo. |
| Verde #3BFF00 | #292929 | CTA, estado activo, success | Nunca usar blanco sobre verde lima. |
| Azul #4242FF | #FFFFFF o #F8FAD7 | Marca, foco, selección | Aprobado para botones, chips y headers. |
| Ink #292929 | #F8FAD7 | Dark mode, cards premium | No usar negro sólido; ink es el límite oscuro. |
| Gradiente Wiwo | #292929 sobre glass claro o #F8FAD7 sobre overlay ink | IA, progreso, transformación | Texto directo solo si el fondo queda estabilizado. |
Botones y acciones
Usa verde para la acción más importante, ink #292929 para acción sobria y grupos conectados cuando hay decisiones hermanas.
Chips y filtros
Los chips agrupan contexto, no reemplazan titulares. Buenos para estados de IA, categorías y filtros rapidos.
Formulario
Labels siempre visibles. Ayuda corta. Foco azul. Error con texto específico, no solo color.
Estados
Los estados deben poder leerse sin depender del color. Incluye nombre, icono o microcopy.
Navegación de producto
Nav compacta, íconos reconocibles, estado activo evidente y superficie limpia para trabajo repetido.
Briefs activos
Patrón hero / portada
Para piezas editoriales o comerciales, usar imagen real o arte generado. El texto va sobre la escena, no en una tarjeta flotante.
Liquid glass
Usalo para capas flotantes sobre color o video: dock, comando, búsqueda, overlays y estados que necesitan profundidad.
Componentes para producto real
Wiwo Boost, MetriQ y cualquier herramienta operativa necesitan UI de trabajo: tablas densas, feedback claro, estados vacíos útiles, paginación, dialogs accesibles y una paleta estable para KPIs.
Tablas para dashboards
La tabla es componente crítico: debe permitir escaneo, comparación, sorting, filtros, estados, tendencia, progreso y paginación sin convertirse en una grilla de tarjetas.
| Cliente | Etapa | KPI | Tendencia | Señal | Próxima acción |
|---|---|---|---|---|---|
| Retail launchPaid + retail media | Live | 84% brief clarity | +12% | Priorizar audiencias con intención alta. | |
| Audience mapMetriQ cohort scan | Revisión | 62% fit score | -4% | Corregir segmento y excluir ruido. | |
| Creative routesBoost generative flow | Listo | 12 assets aprobados | +31% | Exportar formatos por canal. |
Toasts y empty states
El feedback debe confirmar lo que paso, decir que hacer ahora y no esconder estados importantes en una esquina sin contexto.
Sin campañas comparables
Explica por que esta vacío, que falta y cuál es el primer paso útil. Nada de pantallas muertas.
Modal documentado
Un modal no es solo una animación: bloquea contexto, pide decisión y debe devolver el foco al control que lo abrio.
Activar ruta IA
El sistema va a crear tareas, adaptar formatos y avisar cuando encuentre bloqueos. La acción principal debe ser una sola y concreta.
Paleta para KPIs y charts
Los gráficos no deben inventar colores por pantalla. Usa tokens de chart, reserva lime para acción/positivo, azul para serie principal y deja danger solo para problemas reales.
Revenue pulse
Serie principal + positivo + alerta--chart-grid cambia con light/dark.Wiwo Expressive
El sistema usa tácticas expresivas: contraste de forma, contención tonal, grupos de acción, motion con easing y jerarquía por tamaño.
Expressive
IA, bots y microanimaciones
En Wiwo la IA no aparece como un spinner genérico. Se comporta como una capa viva: escucha, piensa, propone, confirma y se retira sin robar protagonismo. El movimiento debe explicar que el sistema está trabajando, pero siempre con calma, precisión y una estética optimista.
Como interactuan los bots
Los bots se ven como agentes coordinados, no como ventanas sueltas. Cada agente declara qué está haciendo, qué encontró y cuál es la próxima acción útil.
Letras, ventanas y modales
El texto generado por IA aparece con reveal editorial, no con máquina de escribir lenta. Las ventanas entran desde profundidad y desaparecen con compresión suave, como si el sistema limpiara el espacio para la siguiente decisión.
El modal confirma, entrega una acción y luego se retira con escala .985 y 10px hacia arriba. La capa de fondo se apaga en 160ms.
Como viven los gradientes en plataformas Wiwo
El gradiente no debe ser una alfombra decorativa permanente. Debe aparecer como energía del sistema: borde vivo, halo de IA, progreso, foco de selección, transición de estado o momento de transformación.
Reglas avanzadas para IA y microinteracciones
La experiencia debe sentirse cara: pocas cosas se mueven al mismo tiempo, cada movimiento tiene causa y todo vuelve rápido a un estado legible.
// Next.js + GSAP + ScrollTrigger + SplitText + Lenis
const split = new SplitText("[data-ai-title]", { type: "chars,words" });
const tl = gsap.timeline({ defaults: { ease: "power3.out" } });
tl.from(split.chars, {
y: 14,
opacity: 0,
filter: "blur(6px)",
stagger: 0.018,
duration: 0.42
})
.from("[data-agent-card]", {
y: 18,
opacity: 0,
scale: 0.98,
stagger: 0.08,
duration: 0.5
}, "-=0.2")
.to("[data-modal]", {
y: -10,
opacity: 0,
scale: 0.985,
filter: "blur(6px)",
duration: 0.18
}, "+=1.2");
ScrollTrigger.create({
trigger: "[data-ai-motion-section]",
start: "top 72%",
animation: tl
});
Wiwo Thinking Orb
El orb es la señal propia de Wiwo para decir que una plataforma o IA está pensando. No es un loader ni un spinner: es una presencia viva, premium y optimista que respira, razona, genera y vuelve a la calma.
Estados de pensamiento
Cada estado cambia ritmo, brillo, deformación y dirección del movimiento. El usuario debe sentir que algo inteligente está ocurriendo, sin perder legibilidad ni calma.
Cómo construirlo en plataformas Wiwo
El orb puede vivir en CSS para producto liviano, Rive para estados vectoriales exportables o Three.js / React Three Fiber cuando se necesita profundidad real, shaders y escenas tipo WiwoSurface.
- GSAP + SplitTextSincroniza cambio de estado, texto animado y salida de respuestas con timelines precisos.
- ScrollTrigger + LenisActiva el orb con scrub, pinning y scroll suave en demos, onboarding o presentaciones.
- RiveIdeal para estados pequeños, botones IA, micro loaders y componentes exportables entre producto y marketing.
- Three.js / React Three FiberUsar para orbs grandes, escenas inmersivas, shaders, refracción, partículas y profundidad real.
Tamaños, contexto y restricciones
El orb reemplaza esperas genéricas en propuestas, análisis, contenido, reporterías, automatizaciones, chat, insights y módulos agentic. Debe verse caro, no decorativo.
Liquid glass para Wiwo
Capas con blur, brillo, borde translúcido y refracción suave para experiencias IA, docks, command palettes y overlays de alto foco.
Launch control
El sistema debe sentirse vivo.
Animaciones, preloaders, bots, orbes y stack técnico se documentan como comportamiento de producto.
Preloaders
Los preloaders de Wiwo no son mensajes tecnicos de carga. Son una extensión de la personalidad del producto: hacen que la espera se sienta activa, inteligente y de marca.
Wordmark para cargas de marca, exports, entregables y experiencias premium.
Círculos gradiente para estados compactos, dashboards, tablas y acciones inline.
La espera también comunica.
En vez de decir "Cargando..." o "Procesando...", Wiwo convierte la espera en una experiencia de marca: humor de industria, ironía inteligente, lenguaje operativo y señales reales del trabajo que el sistema está resolviendo.
Humanizar procesos complejos
Transforman tareas técnicas en acciones comprensibles y cercanas.
- Construyendo estrategia de marca...
- Detectando oportunidades ocultas...
- Ajustando narrativa de marca...
Reirse de los dolores
Humor interno de marketing, diseño, publicidad y ventas.
- Agregando más logos al PPT...
- Esperando feedback eterno...
- Traduciendo brief ambiguo...
Mostrar trabajo invisible
Hacen visible lo que la plataforma resuelve automáticamente.
- Recalculando jerarquía...
- Optimizando para cada canal...
- Cerrando loops eternos...
Generar expectativa positiva
La espera se convierte en anticipación, no fricción.
- Preparando algo bueno...
- Vale la pena...
- Haciendo magia sin drama...
Reforzar valor Wiwo
Cada mensaje recuerda que Wiwo convierte tecnología en impacto.
- Haciendo que marketing venda...
- Transformando datos en acción...
- Quitando sufrimiento manual...
Estructura
Ícono primero: wordmark Wiwo para momentos de marca o tres círculos para estados compactos. Nunca loader genérico sin personalidad.
Movimiento
Gradiente verde/azul, pulso suave, dots en wave, barra indeterminada o wordmark respirando. Duración base: 900ms a 2400ms.
Texto animado
El mensaje cambia cada 1.6 a 2.4 segundos. Evitar repetir una sola frase o estados fríos como "Procesando...".
Tono
Mezcla operativo + humor profesional + cultura creativa. Irreverente, pero nunca burlesco con el usuario.
Accesibilidad
Respetar reduced motion. Usar aria live polite si el texto informa progreso real; decorativo si solo entretiene.
HTML base
Usar wordmark o dots. El texto vive en un nodo único para poder rotarlo sin layout shift.
<div class="wiwo-preloader" role="status" aria-live="polite">
<img src="/logos/wiwo-beige.png" alt="Wiwo" />
<div class="wiwo-loader-orbit" aria-hidden="true"></div>
<p data-loader-message>Traduciendo brief ambiguo...</p>
</div>
Banco JS
Rotación simple. En producto, filtrar por contexto: export, IA, resize, datos, ventas o espera general.
const messages = [
"Buscando el \"hagámoslo viral\"...",
"Recalculando jerarquía...",
"Transformando datos en acción...",
"Haciendo magia sin drama..."
];
setInterval(() => {
message.textContent = messages[index++ % messages.length];
}, 1900);
Iconografía
Lucide Icons es la biblioteca base para producto digital Wiwo: SVG livianos, minimalistas, consistentes, personalizables y listos para React, Next.js, Tailwind y shadcn/ui.
Lucide como default de producto.
Usar Lucide para dashboards, SaaS, landing pages, apps, botones, menús, estados y acciones. El documento también está construido con Lucide inline para ser su propio mejor ejemplo.
Stroke consistente
Base 2px. Usa 1.75 para UI editorial o 2.25 para acciones primarias, sin mezclar pesos dentro del mismo componente.
Grid 24px
Botones 18 a 20px, nav 20px, cards 24px, hero o empty states 32 a 40px con absoluteStrokeWidth.
Color por contexto
Hereda currentColor. Azul para navegación/foco, verde para acción, #292929 para controles sobrios y beige solo sobre fondos profundos.
Accesibilidad
Iconos decorativos con aria hidden. Icon buttons con aria label. Acciones importantes siempre con texto visible.
Producto / SaaS
Interfaces de trabajo, dashboards, CRM, tablas, búsqueda y configuración.
IA / Launch
Momentos de magia controlada: automatización, copiloto, sugerencias y activaciones.
Estado / Feedback
Confirmaciones, alertas, estados vivos y microinteracciones de producto.
Next.js / React
Importa solo lo que se usa. Lucide trabaja bien con React Server Components cuando el icono no necesita estado.
npm install lucide-react
import { Search, LayoutDashboard, Sparkles } from "lucide-react";
export function WiwoAction() {
return (
<button className="wiwo-button-primary">
<Sparkles size={20} strokeWidth={2} aria-hidden="true" />
Activar flujo
</button>
);
}
Tailwind / shadcn
Usa clases de tamaño estables y color por currentColor. No fijar colores inline salvo íconos de estado.
import { Rocket, Search } from "lucide-react";
import { Button } from "@/components/ui/button";
<Button className="gap-2 bg-[#3bff00] text-[#292929]">
<Rocket className="size-4" strokeWidth={2} aria-hidden="true" />
Lanzar
</Button>
<Search className="size-5 text-[#4242ff]" strokeWidth={2} />
Stack motion
Para experiencias Wiwo de alto impacto: Next.js como base, GSAP para motion fino, Lenis para scroll, Rive para vectores interactivos y Three.js / React Three Fiber cuando el caso pide 3D real.
Build con movimiento.
El sistema no se implementa como plantilla plana. Cada sitio, campaña o producto debe elegir una capa motion según el efecto que necesita generar.
Next.js como sistema operativo
Usa App Router para separar contenido, componentes server y capas client. Todo motion vive en client components con boundaries claros, carga diferida y CSS tokens compartidos.
GSAP + ScrollTrigger
Para pinning, scrub, snap, parallax y transiciones ligadas al scroll con control fino. Es la capa pro para marca, campañas y heroes expresivos.
SplitText
Para titulares que aparecen por línea, palabra o carácter. Ideal en hero sections, manifiestos y bloques editoriales con precisión de motion design.
Lenis
Para scroll suave, sincronizado con ScrollTrigger y escenas WebGL. Se usa cuando el sitio necesita sensación premium, no por defecto en herramientas densas.
Rive
Para logos vivos, loaders, botones con estado, ilustraciones UI y microinteracciones con state machines. Debe sentirse producto, no video decorativo.
Three.js / React Three Fiber
Para WebGL, shaders, partículas, productos flotando, espacios inmersivos y escenas tipo keynote. React Three Fiber se usa cuando el 3D vive dentro de React.
Color, tipo, glass, radios y easing antes de animar.
Secciones en Next, motion solo en client components.
GSAP para revelar, ordenar y conectar scroll.
Rive para vectores; Three/R3F para escenas 3D.
Reduce motion, performance, responsive y foco visible.
Instalacion base
Crear el proyecto en Next.js y agregar solo las capas que el caso necesite. Rive y Three deben cargarse diferido si no son primera pantalla.
npx create-next-app@latest wiwo-surface --ts --app
cd wiwo-surface
npm install lucide-react gsap @gsap/react lenis @rive-app/react-canvas three @react-three/fiber @react-three/drei
MotionShell client
Plantilla para sincronizar Lenis con ScrollTrigger y dejar SplitText dentro de un scope controlado.
"use client";
import gsap from "gsap";
import { useGSAP } from "@gsap/react";
import { ScrollTrigger } from "gsap/ScrollTrigger";
import { SplitText } from "gsap/SplitText";
import Lenis from "lenis";
gsap.registerPlugin(useGSAP, ScrollTrigger, SplitText);
export function MotionShell() {
useGSAP(() => {
if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
const lenis = new Lenis({ lerp: 0.08 });
const tick = (time) => lenis.raf(time * 1000);
lenis.on("scroll", ScrollTrigger.update);
gsap.ticker.add(tick);
gsap.ticker.lagSmoothing(0);
const split = SplitText.create("[data-split]", { type: "lines,words", mask: "lines" });
gsap.from(split.words, {
yPercent: 110,
opacity: 0,
stagger: 0.018,
duration: 0.72,
ease: "power3.out",
scrollTrigger: { trigger: "[data-split]", start: "top 78%" }
});
return () => {
gsap.ticker.remove(tick);
lenis.destroy();
};
});
return null;
}
Reglas de implementación
- Motion con propósito. Revela jerarquía, confirma acción o conecta una historia. Si solo adorna, sale.
- Client boundary limpio. GSAP, Rive y Three viven en componentes client; contenido y data pueden seguir en server components.
- Lenis sincronizado. Si hay smooth scroll, conecta RAF con ScrollTrigger y prueba pinning, anchors y teclado.
- 3D solo cuando aporta. Three.js / R3F se usa para escenas, producto, partículas o shaders. Para íconos y estados, Rive.
- Accesibilidad primero. Respeta reduced motion, evita texto ilegible durante animaciones y mantiene foco visible.
Motion specs
Instrucciones avanzadas para que Wiwo se sienta como experiencia de marca premium: microinteracciones, scroll cinematográfico, texto preciso, vectores vivos y 3D solo cuando aporta.
Motion con sistema.
La animación se diseña como arquitectura: timeline, triggers, estados, performance y salida accesible. No son adornos; son feedback, jerarquía y dirección.
Arquitectura motion
En App Router, deja contenido y SEO en server components; monta motion en islas client. Cada isla debe tener scope, cleanup, reduced motion y carga diferida si usa Rive o Three.
Microinteracciones
Usa timelines cortos para hover, press, success, menú y cards. El movimiento debe responder al input con magnetismo suave, spotlight y retorno elástico.
Scroll narrativo
Para piezas de marca: usa `pin`, `scrub`, `snap`, timeline maestro y labels. Cada bloque debe tener una razón narrativa para quedarse fijo.
Texto de precisión
Usa SplitText para líneas/palabras con mask. Recalcula split en resize, foco en legibilidad y fallback sin animación cuando reduced motion esté activo.
State machines UI
Rive entra cuando necesitas vectores con estados: idle, hover, loading, success, error. Ideal para logo vivo, íconos de producto y loaders con input real.
WebGL expresivo
Three.js / R3F solo para escenas inmersivas, shaders, partículas o producto 3D. Si es decoración plana, usa CSS/GSAP; si es espacio, usa WebGL.
GSAP timeline pro
Patrón base para hero, SplitText, ScrollTrigger y Lenis sincronizado en Next.js.
"use client";
import gsap from "gsap";
import { useGSAP } from "@gsap/react";
import { ScrollTrigger } from "gsap/ScrollTrigger";
import { SplitText } from "gsap/SplitText";
import Lenis from "lenis";
gsap.registerPlugin(useGSAP, ScrollTrigger, SplitText);
export function WiwoMotionPage() {
useGSAP(() => {
const reduce = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
if (reduce) return;
const lenis = new Lenis({ lerp: 0.08, smoothWheel: true });
const raf = (time) => lenis.raf(time * 1000);
lenis.on("scroll", ScrollTrigger.update);
gsap.ticker.add(raf);
gsap.ticker.lagSmoothing(0);
const split = SplitText.create("[data-hero-title]", {
type: "lines,words",
mask: "lines",
autoSplit: true
});
const tl = gsap.timeline({
defaults: { ease: "power3.out" },
scrollTrigger: {
trigger: "[data-motion-hero]",
start: "top 78%",
end: "bottom 20%",
scrub: 0.8
}
});
tl.from(split.words, { yPercent: 110, opacity: 0, stagger: 0.018, duration: 0.72 })
.from("[data-motion-card]", { y: 42, opacity: 0, stagger: 0.08, duration: 0.6 }, "-=0.35")
.to("[data-parallax]", { yPercent: -12, ease: "none" }, 0);
return () => {
split.revert();
gsap.ticker.remove(raf);
lenis.destroy();
};
});
return null;
}
Rive + Three según caso
Rive para estados vectoriales; R3F cuando la experiencia necesita canvas 3D real.
// Rive: UI state machine
import { useRive, useStateMachineInput } from "@rive-app/react-canvas";
export function WiwoRiveButton() {
const { RiveComponent, rive } = useRive({
src: "/rive/wiwo-button.riv",
stateMachines: "Button",
autoplay: true
});
const hover = useStateMachineInput(rive, "Button", "isHover");
return <button onPointerEnter={() => hover.value = true} onPointerLeave={() => hover.value = false}><RiveComponent /></button>;
}
// React Three Fiber: WiwoSurface scene
import { Canvas, useFrame } from "@react-three/fiber";
import { Float, Environment } from "@react-three/drei";
export function WiwoSurface() {
return (
<Canvas dpr={[1, 1.5]} camera={{ position: [0, 0, 5], fov: 38 }}>
<Environment preset="city" />
<Float speed={1.2} rotationIntensity={0.35} floatIntensity={0.6}>
<mesh>
<torusKnotGeometry args={[1, 0.28, 180, 24]} />
<WiwoSurfaceShader color="#4242ff" glow="#3bff00" intensity={0.22} roughness={0.38} />
</mesh>
</Float>
</Canvas>
);
}
Patrones
Reglas para que el sistema sirva tanto en landings como en dashboards, documentos, decks y herramientas internas.
Grilla maestra
Todo layout estratégico parte de 12 columnas en desktop. Las composiciones permitidas son 3/9, 4/8, 5/7 y 6/6; cualquier otro split debe responder a una necesidad funcional clara.
- Desktop: 12 columnas con gutter
--space-5. - Tablet: mantiene proporción hasta que el contenido pida colapso.
- Mobile: una columna visual y navegación compacta.
- Cards:
auto-fit + minmax(260px, 1fr).
Medidas de lectura
La tipografía no se controla solo por tamaño: también por ancho de línea. Estos tokens evitan títulos cortados, párrafos eternos y UI apretada.
--measure-display: 12chpara titulares.--measure-lead: 36chpara bajadas.--measure-body: 62chpara lectura larga.- No forzar cortes con guiones manuales.
Layout editorial
Usar cuando Wiwo explica una idea: casos, reportes, pensamiento, manifiestos y piezas para LinkedIn.
- Titular de 8 a 12 palabras máximo.
- Grilla de 12 columnas en desktop, 4 en mobile.
- Imagen o arte como evidencia, no como relleno.
- Chips solo para categoría, fecha o estado.
Layout operativo
Usar cuando el usuario viene a trabajar: CRM, automatizaciones, brief builder, tableros y sistemas de seguimiento.
- Navegación persistente y densa.
- Acción primaria siempre visible arriba o abajo.
- Estados con texto, icono y color.
- Evitar secciones hero si la tarea es repetitiva.
Reglas listas para construir.
Instrucciones, CSS base y archivos generados para que diseño, frontend y Figma trabajen desde el mismo origen.
Instrucciones
Cómo aplicar el sistema sin romper la marca ni convertirlo en una copia literal de ningún lenguaje externo.
-
Parte por tokens. Define color, tipografía, radio, spacing y motion antes de dibujar pantallas. Si una decisión no cabe en tokens, probablemente es una excepción de campaña.
-
Tokens como código. Cambia valores en
tokens/wiwo.tokens.jsony ejecutanpm run build:tokens. CSS, Tailwind y variables Figma son outputs, no fuente editorial. -
Dark mode es sistema. Usa
body[data-theme="dark"]para invertir --surface, --ink, --line y contenedores. No crees cards oscuras aisladas si el producto completo necesita modo nocturno. -
Elige el modo. Editorial para contar, operativo para ejecutar. No mezcles un hero gigante dentro de una herramienta de trabajo.
-
Usa tácticas Wiwo Expressive. Aumenta jerarquía con tamaño, forma, contención tonal, grupos conectados y motion. No dependas solo del color.
-
Usa fotos como evidencia de futuro optimista. Prioriza escenas Wiwo con personas, producto visible, interiores beige y acentos verde/azul integrados. No usar cyber city, cyborgs, sci-fi frío ni tecnología lejana: el futuro debe verse lindo, humano y realista.
-
Lucide es la biblioteca de íconos base. Importa desde lucide react, usa SVG con currentColor, stroke 2px, tamaños 18/20/24/32 y aria label solo cuando el ícono sea el único contenido del control.
-
Controla contraste. Usa la tabla de pares aprobados: verde solo con #292929, azul con blanco o beige, y gradientes solo con overlay, glass o contenedor estable.
-
Anima por significado. Motion para confirmar, ordenar, revelar o guiar. Duración recomendada: 160ms micro, 280ms paneles, 420ms transiciones expresivas.
-
Accesibilidad como estilo. Implementa
:focus-visible, labels persistentes,aria-invalidcon texto específico y estados disabled/loading/error que se entiendan sin depender del color.
CSS base
Snippet de consumo. Los valores salen de tokens/wiwo.tokens.json y se importan desde el CSS generado.
/* 1. Source of truth */
/* Editar: outputs/tokens/wiwo.tokens.json */
/* 2. Build */
/* npm run build:tokens */
/* 3. Consumo web */
@import "./tokens/wiwo.tokens.css";
:where(a, button, input, select, textarea, summary):focus-visible {
outline: 3px solid var(--focus-ring);
outline-offset: 3px;
box-shadow: 0 0 0 7px var(--focus-glow);
}
.wiwo-button-primary {
min-height: 48px;
border-radius: var(--radius-control);
border: 1px solid var(--wiwo-green);
background: var(--wiwo-green);
color: var(--on-accent);
font-family: var(--font-system);
font-size: 1rem;
font-weight: var(--weight-action);
}
.wiwo-button-primary:disabled,
.wiwo-input:disabled {
cursor: not-allowed;
opacity: var(--disabled-opacity);
}
.wiwo-card {
border: 1px solid var(--line);
border-radius: var(--radius-card);
background: var(--surface);
color: var(--ink);
padding: 24px;
}
.wiwo-gradient-band {
min-height: 96px;
border-radius: var(--radius-card);
background: var(--wiwo-gradient-primary);
}
.wiwo-icon {
width: var(--icon-size-md);
height: var(--icon-size-md);
color: currentColor;
stroke-width: var(--icon-stroke);
}
.wiwo-input {
min-height: 48px;
border: 1px solid var(--line);
border-radius: 6px;
background: var(--surface);
color: var(--ink);
}
.wiwo-input[aria-invalid="true"] {
border-color: var(--error);
background: var(--error-soft);
}
.wiwo-connected-group {
display: inline-flex;
border-radius: var(--shape-full);
overflow: hidden;
background: var(--surface-container);
}
.wiwo-connected-group button {
min-height: 52px;
padding: 0 16px;
border: 0;
background: transparent;
transition: border-radius var(--motion-medium), background var(--motion-fast);
}