Video Testimonial Carousel
Em andamentoSeção escura "O que nossos Alunos Dizem.": cartões com a capa do vídeo em cima e, embaixo, cinco estrelas, nome, curso e citação. O play fica no próprio cartão — o clique troca a capa pelo player do YouTube ou do Vimeo ali mesmo, na proporção do vídeo, vertical ou horizontal (E132). Todos os cartões têm a mesma altura (E160): a moldura da capa é uma só por seção. Não é carrossel. Os depoimentos vêm por depoimentos (E75).
- Função
- Campanha (marketing)
- Também chamado de
- depoimentos em vídeo, vídeos de alunos, histórias de sucesso, shorts, reels
- Mora em
- app/components/organisms/marketing/VideoTestimonialCarousel.tsx
- Última mudança
- 2026-10-01
Prévia
A peça ao vivo, vinda da ficha, na largura escolhida. Em larguras fixas, ela roda num quadro do tamanho de uma tela de verdade.
1280px, em tamanho real
Variantes na ficha
Lidas da ficha no build, na ordem do palco. Cada uma abre sozinha, sem o styleguide em volta — é o endereço que o palco carrega.
Quando usar
Em página de campanha, com depoimentos gravados em vídeo — inclusive os verticais, feitos para o celular.
Faça
- Passe
depoimentos, comvideoUrldo YouTube ou do Vimeo em quem tiver vídeo: só esses ganham o play. - Marque
formato: "vertical"no vídeo vertical do Vimeo e no do YouTube que não esteja num endereço/shorts/— o Vimeo não diz a proporção pelo endereço. - Use capas (
thumbnail) que aguentem o recorte em 9:16 quando a seção mistura vídeo vertical e horizontal: a moldura é a da seção, e a capa é recortada para caber.
Evite
- Publicar com os depoimentos de exemplo (os que vêm sem prop).
- Endereço de outro lugar em
videoUrl: não há player para incorporar, e o play vira um link em nova aba.
Quando não usar. Para um vídeo só, grande, use o VideoPlayer. Para depoimentos em texto, o TestimonialCarousel.
Anatomia
As partes, na ordem em que o olho — e o teclado — passam.
- Chapéu e título — "Histórias Reais de Sucesso" (com o ícone de vídeo só quando há vídeo, E75) e o `h2`.
- Capa — A imagem decorativa (`alt=""`) sob um degradê de `--ink`, num CardMedia na moldura da seção (E160): 9:16 se algum depoimento for vertical, 16:9 se todos forem horizontais.
- Play — A capa inteira é o botão "Assistir depoimento de <nome>"; o círculo de 80px em `--primary` é o desenho. O anel de foco claro fica no círculo.
- Player — Depois do clique: o `iframe` do YouTube (`youtube-nocookie.com`) ou do Vimeo (`dnt=1`), titulado "Depoimento de <nome>", ocupando a área da capa.
- Informações — Embaixo da capa, no fluxo: cinco estrelas, nome (`h3`), curso (Badge) e a citação — o vídeo tocando não cobre nada.
Estados
Os estados que a peça tem no código, e o que muda em cada um.
| Estado | O que muda |
|---|---|
| Padrão | Uma coluna no celular, duas a partir de 768px, três a partir de 1024px. |
| Vertical | O player em 9:16, ocupando a moldura: o YouTube Shorts pelo endereço, o resto por formato — testado na ficha. |
| Horizontal | 16:9, o padrão; numa moldura vertical, o player fica centrado em 16:9, com faixa escura em volta — testado na ficha. |
| Formatos misturados | A mesma altura em todos (E160, revisão 4): uma moldura por seção, os cartões esticam até a linha, e as linhas da grade têm a mesma altura (auto-rows-fr) — no tablet e no celular também. Testado na ficha, com citações de tamanhos bem diferentes. |
| Tocando | O player no lugar da capa, com o foco; os outros cartões continuam com o botão — testado na ficha. |
| Endereço não reconhecido | O play vira link: "Assistir depoimento de <nome> (abre em nova aba)" — testado na ficha. |
Comportamento
| Situação | O que acontece |
|---|---|
| Play | Troca a capa pelo player, que já começa a tocar, e leva o foco para ele — até a revisão 3, abria o vídeo numa aba nova (E132). |
| Endereços | YouTube: watch?v=, youtu.be/, embed/ e shorts/. Vimeo: vimeo.com/<id>, com o hash de vídeo não listado, e player.vimeo.com/video/<id> — testado na ficha. |
| Privacidade | Nada do YouTube nem do Vimeo carrega antes do clique; depois, o YouTube sem cookie de rastreamento e o Vimeo com "não rastrear". |
Relacionados
Como usar no código
A importação e o menor uso, lidos do arquivo. O … marca as props obrigatórias.
import { VideoTestimonialCarousel } from '@/app/components/organisms/marketing/VideoTestimonialCarousel';
<VideoTestimonialCarousel />Propriedades
Lidas do código da peça no build — não escritas à mão.
| Prop | Tipo | Padrão | Obrigatória | Descrição |
|---|---|---|---|---|
depoimentos | DepoimentoEmVideoDeCampanha[] | DEPOIMENTOS_PADRAO | não | Os depoimentos por prop (E75): eram fixos no arquivo. |
Tokens de cor
Os tokens semânticos que o código da peça usa, com o valor de hoje em app/globals.css.
| Token | Valor | Usado como |
|---|---|---|
--foreground | #1A1A1A | bg-inkfrom-ink/70to-ink/10via-ink/20 |
--primary | #D42B2B | bg-primarybg-primary/20fill-primarytext-primary |
--ink-inverse | #FAFAFA | text-ink-inverse |
--ink-inverse-muted | #C7C7C7 | text-ink-inverse-muted |
--primary-foreground | #FFFFFF | text-primary-foreground |
Teclado
| Tecla | Faz |
|---|---|
| Tab | O play de cada depoimento com vídeo; sem vídeo, nada recebe foco. |
| EnterEspaço | Toca o vídeo no cartão e leva o foco para o player. |
Leitor de tela
O que é anunciado, e por quê.
- O player abre com as legendas em português ligadas quando o vídeo as tem — YouTube por
cc_load_policy, Vimeo portexttrack=pt-BR(E145, SC 1.2.2). A legenda em si é do vídeo: sem ela, o depoimento com fala não pode ir ao ar. - A nota chega a quem ouve como "Nota 5 de 5"; as estrelas são
aria-hidden. - O botão sai do DOM ao tocar: o foco vai para o player, e não para o
<body>, como no VideoPlayer (E52). - Cada player tem título próprio ("Depoimento de <nome>").
O que sustenta o estado
Esta peça usa estatico. O estado dela é o de quem já foi ouvido com leitor de tela nesses padrões — e não uma passada sobre esta peça em específico.
Falta ouvir: estatico — ver docs/a11y-screen-reader-checklist.md.
Achados abertos
Defeitos conhecidos, com o que falta fazer.
- O nome promete um carrossel. É uma grade parada.
Status e recursos
| Tipo | Recurso | Status |
|---|---|---|
| Código | app/components/organisms/marketing/VideoTestimonialCarousel.tsx | Disponível |
| Ficha | Storybook (abre em outra aba) | Disponível |
| Teste de acessibilidade | axe em npm run test | No gate de todo commit |
| Leitor de tela | Passada da E33 | Falta ouvir |
| Design | Figma | Desativado até a Fase 2 |
Histórico
Os últimos commits que tocaram o arquivo, lidos do git no build.
f14e77c2026-10-01E160: VideoTestimonialCarousel — todos os cartões com a mesma altura251416b2026-10-01E159: Testimonials — o vídeo toca dentro do cartão, YouTube e Vimeo
O histórico completo está no GitHub (abre em outra aba).