Instructor Cards
Em andamentoSeção do corpo docente: chapéu, título e descrição (o SectionTitle) e um cartão por professor — foto, nome, titulação, cargo, uma trajetória curta e as credenciais. Os professores vêm por prop; sem ela, entram dois de exemplo. Estrutura refeita na revisão 3 (E129).
- Função
- Campanha (marketing)
- Também chamado de
- professores, corpo docente, instrutores, mentores
- Mora em
- app/components/organisms/marketing/InstructorCards.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 curso ou de campanha, para apresentar quem ensina.
Faça
- Passe os
professoresreais: nome, titulação, cargo, bio de duas ou três linhas, foto de rosto e credenciais curtas. - Escreva as credenciais em pt-BR e coerentes com a titulação ("Mestrado USP" para quem é mestre).
- Use fotos de rosto no mesmo enquadramento: o cartão corta em quadrado.
Evite
- Biografia longa: três linhas bastam; o resto vai para a página do professor.
- Mais de seis professores numa seção: vire uma página de corpo docente.
Quando não usar. Para a equipe da instituição, use o TeamGrid. Para palestrantes de um evento, o EventSpeaker.
Anatomia
As partes, na ordem em que o olho — e o teclado — passam.
- Cabeçalho — SectionTitle centrado: chapéu, título (h2) e descrição.
- Cartão — Card em pé (`article`), da altura da linha: foto quadrada no alto (CardMedia 1/1), o texto com o espaço do CardContent.
- Nome, titulação e cargo — Nome no `h3` (20px, negrito), titulação em `--primary-dark`, cargo em `--muted-foreground`.
- Bio — 14px, `--muted-foreground`, sem aspas (não é citação).
- Credenciais — Lista de Badge `outline` com o ícone de prêmio, no pé do cartão.
Estados
Os estados que a peça tem no código, e o que muda em cada um.
| Estado | O que muda |
|---|---|
| Dois professores | Duas colunas centradas a partir de 768px (tablet), até 768px de largura. |
| Três ou mais | Duas colunas a partir de 768px (tablet) e três a partir de 1024px. |
| Celular | Uma coluna, o cartão inteiro. |
| Hover | Nada: o cartão não é clicável (E129). Até a revisão 3 ele subia 8px e a foto aproximava. |
Comportamento
| Situação | O que acontece |
|---|---|
| Entrada na tela | Abaixo da dobra, os cartões sobem 20px e aparecem em cascata ao entrar na tela, uma vez. O HTML do servidor já sai visível, e o que está à vista ao abrir não é escondido — sem JavaScript, nada some (E138, testado). Com movimento reduzido, não anima. |
| Bio de tamanhos diferentes | Os cartões da mesma linha ficam da mesma altura, com as credenciais no pé — testado na ficha. |
Relacionados
Como usar no código
A importação e o menor uso, lidos do arquivo. O … marca as props obrigatórias.
import { InstructorCards } from '@/app/components/organisms/marketing/InstructorCards';
<InstructorCards />Propriedades
Lidas do código da peça no build — não escritas à mão.
| Prop | Tipo | Padrão | Obrigatória | Descrição |
|---|---|---|---|---|
chapeu | string | 'Corpo docente' | não | — |
titulo | string | 'Estude com quem domina o mercado real' | não | — |
descricao | string | 'Nosso corpo docente é formado por profissionais que atuam no topo da carreira e trazem os desafios reais do dia a dia para a sala de aula.' | não | — |
professores | Professor[] | PROFESSORES_DE_EXEMPLO | não | — |
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-card |
--muted | #F4F6F9 | bg-muted |
--muted-foreground | #595959 | text-muted-foreground |
--primary-dark | #A81E1E | text-primary-dark |
Leitor de tela
O que é anunciado, e por quê.
- Cada professor é um
articlecom o nome noh3; a foto é decorativa (alt=""), porque o nome está escrito. - As credenciais são uma lista com nome ("Credenciais de …").
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.
Status e recursos
| Tipo | Recurso | Status |
|---|---|---|
| Código | app/components/organisms/marketing/InstructorCards.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.
251416b2026-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).