Skip to content

feat: ProductCarousel — sección de productos faltante en landing - #80

Open
turbillon50 wants to merge 1 commit into
mainfrom
feat/product-carousel
Open

feat: ProductCarousel — sección de productos faltante en landing#80
turbillon50 wants to merge 1 commit into
mainfrom
feat/product-carousel

Conversation

@turbillon50

Copy link
Copy Markdown
Owner

Qué hace este PR

Crea components/marketing/ProductCarousel.tsx — la única sección de landing que faltaba e impedía que page.tsx compilara correctamente.

Diseño

  • 6 verticales de producto: Delivery, Salud, MLM, Fintech, Servicios, SaaS
  • Carousel horizontal con scroll snap, fade edges y dots de navegación
  • Cada card: icono VFIcons, stat destacado, tags de tech stack, CTA expandible al click
  • Stats strip debajo: 70+ apps / <7d / 100% código tuyo / 24/7 V
  • Design system exacto: VFIcons (cero Lucide), framer-motion, tokens void/ink/border-app/on-surface, glow único por sección
  • id="productos" — target del Hero button "Ver productos"

Archivos

  • components/marketing/ProductCarousel.tsx (nuevo)

Estado de la landing tras merge

Sección Estado
Hero ✅ existe
ProductCarousel este PR
Metodo ✅ existe
Integraciones ✅ existe
Contratos ✅ existe
Credenciales existe
CTA ✅ existe

Pendiente post-merge: revisar Credenciales.tsx si compila (no auditado en esta sesión).

Generado por Vulcano — audit 2026-06-28

Sección faltante de la landing. Muestra 6 verticales de producto
que VForge construye (Delivery, Salud, MLM, Fintech, Servicios, SaaS).
Sigue el design system exacto: VFIcons, framer-motion, tokens CSS
void/ink/border-app, neon.tech dark premium. id='productos' para
el anchor del Hero."
@vercel

vercel Bot commented Jun 28, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
vforge Ready Ready Preview Jun 28, 2026 6:08am

Request Review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cb942c7c0f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

initial={{ opacity: 0, y: 24 }}
animate={inView ? { opacity: 1, y: 0 } : {}}
transition={{ duration: 0.5, delay: 0.08 + i * 0.07, ease: EASE as unknown as number[] }}
onClick={() => setActive(active === p.id ? null : p.id)}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Restore keyboard access to product cards

When navigating the landing carousel with a keyboard or screen reader, the clickable product cards are now plain motion.divs with only onClick; unlike the previous button cards, they cannot receive focus or be toggled with Enter/Space, so those users cannot reveal the CTA/details. Use a real button or add role, tabIndex, and key handling for the card trigger.

Useful? React with 👍 / 👎.

{/* Fade edges */}
<div
aria-hidden
className="pointer-events-none absolute left-0 top-0 z-10 h-full w-10 bg-gradient-to-r from-[rgb(var(--color-void))] to-transparent"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Replace invalid rgb() wrapping around hex token

With the current theme tokens, --color-void is a hex color in app/globals.css, so rgb(var(--color-void)) computes as rgb(#03020a) and the browser drops this gradient stop; the carousel edge fade will not render in the current themes. Use var(--color-void)/bg-void or change the token to RGB channels before wrapping it in rgb().

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant