Root cause real del bug reportado por el usuario (imagen de producto viéndose gigante/cortada en Chrome y Edge Android) -- no era la imagen: al mover "También te puede gustar" DENTRO del grid de la página (para el layout de 2 filas del commit anterior), su carrusel horizontal (overflow-x-auto interno, sin flex-wrap) empezó a contar como item de ese grid. Sin min-w-0, el ancho mínimo intrínseco de TODAS las cards del carrusel sin wrappear se usa para dimensionar la columna compartida del grid -- en mobile (grid de una sola columna), eso empujaba TODO (imagen, título, specs) a ~800px de ancho en un viewport real de ~380px. El navegador termina "zoomeando" el layout para que entre, dando la sensación de que todo se ve a tamaño real / cortado. Confirmado en vivo con bisección real: sin el fix, el grid medía 783px en un viewport de 380px; agregando min-w-0 al contenedor del carrusel vuelve a 380px. Se agrega min-w-0 también a los otros 3 contenedores del grid (galería, info, buy-box) y a la tira de miniaturas dentro de ProductGallery (mismo patrón de overflow-x-auto) como defensa preventiva -- práctica estándar para items de grid/flex con scroll horizontal interno. Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_012Y4df3Z7odr9Cg8F2nw6uV
ARI Shopping Headless Storefront v4.1
Actualización enfocada en UX, interactividad y rendimiento sobre Next.js 15.5.10.
Correcciones principales
- Encabezado blanco premium con acentos cyan, violeta, fucsia y navegación negra.
- Imágenes promocionales sin
opacity,mix-blendni filtros de color. - Menú principal funcional mediante Drawer accesible de Radix UI.
- Cuenta y favoritos funcionales.
- Carrusel con flechas, teclado, scroll suave y
scroll-snap. - Zoom real de producto entre 100% y 300%, rueda, botones, doble clic y arrastre.
- Thumbnails WebP dedicados para tarjetas, búsqueda, carrito y favoritos.
- Recursos originales recomprimidos y caché HTTP para
/images. next/imageen modounoptimizedporque los recursos ya vienen procesados; evita latencia del optimizador durante la primera visita.- Menos componentes animados con JavaScript; las tarjetas usan transiciones CSS.
content-visibilitypara contenido fuera de pantalla.- Pantalla
loading.tsxpara transiciones de ruta.
Validación
npm ci
npm run typecheck
npm run build
Flujo
Gitea → Gitea Actions → Registry → actualización de frontend.yaml → Argo CD → Kubernetes.