Testimonials
Em andamentoSeção de depoimentos: três cartões escuros de foto, citação, nome e cargo — com o play quando o depoimento tem videoUrl, e o vídeo tocando dentro do cartão (E159) —, setas no celular, e embaixo três depoimentos em texto. Os cartões vêm por depoimentos (E75); os de texto estão no arquivo.
- Função
- Institucional
- Também chamado de
- depoimentos, avaliações, prova social, o que dizem
- Mora em
- app/components/organisms/Testimonials.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
Na página inicial ou de um curso, como vitrine do bloco de depoimentos.
Faça
- Passe
depoimentos, comvideoUrlem quem tiver vídeo: só esses ganham o play. YouTube e Vimeo tocam no cartão; o vertical do Vimeo precisa deformato: "vertical"(o Shorts é reconhecido pelo endereço).
Evite
- Publicar os depoimentos em texto como estão: nomes e cargos são de exemplo.
Quando não usar. Para depoimentos em vídeo de campanha, use o VideoTestimonialCarousel. Para uma grade só de texto, em campanha, o TestimonialCarousel (que, apesar do nome, não é carrossel).
Anatomia
As partes, na ordem em que o olho — e o teclado — passam.
- Título — Um SectionTitle: "Assista os depoimentos:" quando há vídeo, "Depoimentos" quando não há (E75).
- Setas — Só abaixo de 768px: dois CarouselNavButton `tonal` (E65), "Depoimento anterior" e "Próximo depoimento", com `aria-controls` na fileira, que rolam 300px.
- Cartão com foto — `figure`: foto escurecida (`alt=""`), o play (só com `videoUrl`, botão de 64px; o vídeo ocupa o cartão, E159b), a citação em `blockquote` e, na `figcaption`, o autor pelo PessoaResumo no escuro (nome em `h3` e cargo). A citação inteira, sem corte: o cartão tem 384px no mínimo (420px a partir de 768px) e cresce com o texto (E139, testado a 320px com o espaçamento do SC 1.4.12).
- Depoimentos em texto — Três `figure` escuras: citação em `blockquote`, nome (`h4`) e cargo na `figcaption`.
Estados
Os estados que a peça tem no código, e o que muda em cada um.
| Estado | O que muda |
|---|---|
| Celular | Os cartões rolam na horizontal, com encaixe, e as setas aparecem. |
| Computador | Os três cartões em grade; sem setas. |
| Hover no cartão | A foto aproxima e clareia; o play, quando há, cresce no hover dele. |
| Tocando | O player do YouTube ou do Vimeo ocupa o cartão inteiro, sobre o fundo escuro (E159b, como o depoimento da home da EBAC): o provedor encaixa o vertical e o horizontal. A foto, a citação e o nome saem da tela, sem mudar o tamanho do cartão; o "×" (Fechar vídeo), numa faixa própria em cima, sem cobrir os controles do player. |
| Sem vídeo | Sem play, sem cursor-pointer e sem o ícone de link que ficava junto do autor (E75). |
Comportamento
| Situação | O que acontece |
|---|---|
| Play | O vídeo toca dentro do cartão (E159, o mesmo mecanismo do VideoTestimonialCarousel): nada do provedor carrega antes do clique, o player sai pelo youtube-nocookie.com ou com o dnt=1 do Vimeo, e o foco vai para ele — testado na ficha. |
| Fechar vídeo | O player sai, a capa, a citação e o nome voltam, e o foco volta ao play — testado na ficha. |
| Vídeo de outro lugar | Sem player para incorporar: o play vira link em nova aba, e diz isso no nome. |
| Clique no resto do cartão | Nada, e o cartão não finge o contrário: o cursor-pointer saiu. |
| Setas (celular) | Rolam a fileira 300px para cada lado. |
Relacionados
Como usar no código
A importação e o menor uso, lidos do arquivo. O … marca as props obrigatórias.
import Testimonials from '@/app/components/organisms/Testimonials';
<Testimonials />Propriedades
Lidas do código da peça no build — não escritas à mão.
| Prop | Tipo | Padrão | Obrigatória | Descrição |
|---|---|---|---|---|
depoimentos | DepoimentoEmVideo[] | 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 |
|---|---|---|
--card | #FFFFFF | bg-cardshadow-card |
--foreground | #1A1A1A | bg-inkfrom-ink |
--ink-inverse | #FAFAFA | text-ink-inverse |
--ink-inverse-muted | #C7C7C7 | text-ink-inverse-muted |
--primary | #D42B2B | bg-primary |
--primary-dark | #A81E1E | bg-primary-dark |
Teclado
| Tecla | Faz |
|---|---|
| Tab | O play de cada depoimento com vídeo (E75). No celular, também as duas setas e a própria fileira, que rola por teclado — medido em 375px. |
| EnterEspaço | Nas setas, rolam a fileira; no play, tocam o vídeo no cartão, e o foco vai para o player; no "×", fecham o vídeo, e o foco volta ao play. |
Leitor de tela
O que é anunciado, e por quê.
- Os nomes são títulos (
h3nos cartões,h4nos depoimentos em texto).
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.
- Conteúdo de exemplo e em inglês. Cargos como "Design Head @ Dune" e "Product Lead @ Google" são de exemplo; "Assista os depoimentos" pede a regência "Assista aos".
- Níveis de título misturados.
h3nos cartões eh4nos depoimentos em texto, sem umh3entre eles.
Status e recursos
| Tipo | Recurso | Status |
|---|---|---|
| Código | app/components/organisms/Testimonials.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.
25a82842026-10-01E159b: Testimonials — o vídeo ocupa o cartão inteiro, como o da EBAC251416b2026-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).