Paquete npm Open source
@tryonit/react — Componentes de prueba virtual para React
Componentes y hooks de React que añaden un botón «Pruébatelo» a cualquier página de producto, personalizables y con API headless para Next.js, Remix y Vite.
Resumen
@tryonit/react es el paquete que usan la mayoría de las tiendas dentro de TryOnIt, el SDK open source de prueba virtual que creé. Una sola línea, <TryOnButton asset="/tryon/aviator.json" />, añade un botón que abre un diálogo accesible con la cámara en vivo, un selector de productos, muestras de tonos, un control de intensidad, una comparación de antes y después y una vista previa de la captura con descarga y opción de compartir. Se apoya en el motor @tryonit/web y no necesita provider en el caso simple.
Lo diseñé para que una tienda nunca tenga que pelearse con la interfaz. Los tokens del tema se convierten en propiedades CSS personalizadas, sin runtime de CSS-in-JS. Cada slot acepta una clase, y la hoja de estilos usa selectores de baja especificidad para que las tuyas ganen sin !important. El modo unstyled quita el aspecto visual pero conserva la maquetación y la accesibilidad, los slots sustituyen subcomponentes completos y los hooks headless como useTryOn y useTryOnState permiten construir la interfaz desde cero. Todos los textos, iconos e imágenes se pueden sustituir, incluidas las maquetaciones de derecha a izquierda.
Los datos de seguimiento de cada fotograma nunca pasan por el estado de React, así que los re-renders son escasos, y useTryOnState solo vuelve a renderizar cuando cambia la parte del estado que seleccionas. Los componentes son compatibles con SSR e incluyen «use client», por lo que las páginas del App Router de Next.js los importan directamente. El paquete ocupa unos 8 KB min+gzip y su diálogo incluye trampa de foco, cierre con Escape, retorno del foco y avisos para lectores de pantalla.
Funciones clave
- <TryOnButton> listo para usar que precarga los modelos al pasar el ratón o al hacerse visible
- Diálogo accesible: trampa de foco, Escape, retorno del foco y estado anunciado
- Tokens de tema, clases por slot, modo unstyled y slots sustituibles
- Hooks headless: useTryOn, useTryOnState, useCamera, useAsset, useCapture
- Compatible con SSR en el App Router y el Pages Router de Next.js y en Remix
- Textos e iconos sustituibles, modo oscuro y maquetación RTL
Artículos sobre este proyecto
-
7 min de lectura
How to Create Virtual Try-On Products with JSON Manifests
A practical guide to TryOnIt asset manifests: lipstick shades, makeup looks, face stickers, variants, CORS hosting, CMS or Shopify loading and CI validation.
-
8 min de lectura
Inside TryOnIt: The Architecture of a Client-Side Virtual Try-On SDK
How I structured an open-source virtual try-on SDK as layered TypeScript packages: a DOM-free core, a per-frame fast path, a state machine and renderers.
-
6 min de lectura
Keeping Web AR Fast: Bundle Budgets, Lazy Loading and Adaptive Tracking
The performance techniques behind TryOnIt: size budgets that fail the build, loading only the trackers a product needs, intent preloading, adaptive detection.
-
4 min de lectura
Privacy by Design for Camera Features: On-Device Virtual Try-On
How TryOnIt keeps camera frames on the device, which network requests it makes, how to self-host for zero third-party requests, and the CSP it needs.