F A Q
Em andamentoSeção "Dúvidas Frequentes": título e descrição centrados, as perguntas num Accordion e, com hrefTodasAsPerguntas, o link "Ver todas as perguntas", em tema escuro (padrão) ou claro. Vem com quatro perguntas de exemplo.
- Função
- Conteúdo
- Também chamado de
- perguntas frequentes, dúvidas, faq
- Mora em
- app/components/organisms/FAQ.tsx
- Última mudança
- 2026-09-29
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
Perto do fim de uma página de curso ou da página inicial, para responder o que o candidato pergunta antes de se inscrever.
Faça
- Passe as
perguntasreais do curso: sem elas, entram as quatro de exemplo. - Escreva cada pergunta como o candidato perguntaria.
- Use
tema="claro"quando a seção anterior já for escura. - Passe
hrefTodasAsPerguntasquando houver uma página de dúvidas; sem ele, a seção termina no acordeão.
Evite
- Publicar com as perguntas de exemplo.
- Mais de oito ou dez perguntas: aí é uma página de dúvidas.
Quando não usar. Para recolhíveis dentro de outro conteúdo, sem título de seção, use o Accordion. Para a grade curricular, o CurriculumAccordion.
Anatomia
As partes, na ordem em que o olho — e o teclado — passam.
- Seção — `<section>` com fundo `--ink` (escuro) ou `--background` (claro), até 800px de largura.
- Título — Um SectionTitle centrado: "Dúvidas Frequentes" e a descrição.
- Perguntas — Um Accordion, uma pergunta aberta por vez.
- Ver todas — Só com `hrefTodasAsPerguntas` (E74): Button `outline` com `href`, redondo; branco no escuro.
Estados
Os estados que a peça tem no código, e o que muda em cada um.
| Estado | O que muda |
|---|---|
| Escuro | Padrão: fundo --ink, título branco, acordeão escuro com anel de foco claro. |
| Claro | Fundo --background, título --ink, acordeão claro. |
Comportamento
| Situação | O que acontece |
|---|---|
| Abrir uma pergunta | Fecha a que estava aberta (o Accordion sem allowMultiple). |
| "Ver todas as perguntas" | Leva ao hrefTodasAsPerguntas; sem a prop, não aparece (E74, decisão de 2026-09-28) — 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 FAQ from '@/app/components/organisms/FAQ';
<FAQ>…</FAQ>Propriedades
Lidas do código da peça no build — não escritas à mão.
| Prop | Tipo | Padrão | Obrigatória | Descrição |
|---|---|---|---|---|
tema | TemaDoAcordeao | 'escuro' | não | Padrão escuro, que é como a peça sempre foi — ninguém muda sem querer. |
perguntas | PerguntaFrequente[] | PERGUNTAS_PADRAO | não | — |
titulo | string | 'Dúvidas Frequentes' | não | — |
descricao | string | 'Tudo o que você precisa saber sobre a Phorte.' | não | — |
hrefTodasAsPerguntas | string | — | não | Destino de "Ver todas as perguntas" (E74). Sem ele o botão não aparece: era um botão sem ação numa peça que, fora isso, estava pronta. |
Aceita também: Omit<React.HTMLAttributes<HTMLElement>, 'title'>.
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-inktext-ink |
--background | #FAFAFA | bg-background |
--border | #E5E5E5 | bg-border |
--card | #FFFFFF | bg-card |
Teclado
| Tecla | Faz |
|---|---|
| Tab | Passa pelas quatro perguntas e, com a prop, por "Ver todas as perguntas" — medido. |
| EnterEspaço | Abre ou fecha a pergunta em foco (ver Accordion). |
Leitor de tela
O que é anunciado, e por quê.
- Cada pergunta é um cabeçalho de nível 3 com o botão dentro: o leitor pula de pergunta em pergunta pela tecla H.
- A seção é uma região nomeada pelo título ("Dúvidas Frequentes"), pelo
idDoTitulodo SectionTitle (E76).
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/FAQ.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.
fdd10ff2026-09-29ESTADO: E109 concluida, roteiro final fechado; proximo o merge na main
O histórico completo está no GitHub (abre em outra aba).