Section Title
Em andamentoTítulo de seção com chapéu opcional (em vermelho, caixa alta), o título (h2 por padrão, tituloComo escolhe) e uma descrição, alinhados à esquerda, ao centro ou à direita — com versão para fundo escuro.
- Função
- Conteúdo
- Também chamado de
- título de seção, cabeçalho de seção, chapéu
- Mora em
- app/components/molecules/SectionTitle.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.
Na largura da página: 0px
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
No começo de cada seção de uma página — "Os Cursos", "Depoimentos", "Dúvidas Frequentes".
Faça
- Use o chapéu para a categoria ("Pós-Graduação") e o título para a promessa.
- Use
superficie="escura"sobre fundo escuro (E72; o antigotitleColor="white"é apelido por um ciclo): chapéu, título e descrição nos tokens inversos. - Acerte o nível com
tituloComo:h1quando é o título da página,h3numa subseção (E72). - Nomeie a seção pelo título:
idDoTitulo={id}aqui earia-labelledby={id}na<section>em volta, com oiddouseId()(E76). Só o título — chapéu e descrição ficam de fora do nome. - Centralize só em seção centrada — texto longo centrado cansa.
Evite
- Chapéu vermelho sobre fundo escuro: media 3,46:1 — por isso, com
superficie="escura", ele muda sozinho. - Deixar o
h2padrão numa subseção de outra seçãoh2: acerte otituloComo.
Quando não usar. Para um título solto sem chapéu nem descrição, a Typography basta. Para o título da página (h1), a Typography com variant="h1".
Anatomia
As partes, na ordem em que o olho — e o teclado — passam.
- Chapéu — `subtitle`: `tiny` (12px, caixa alta), vermelho; branco sobre escuro.
- Chapéu e título — Num `<hgroup>` (E72): o chapéu é um `<p>` e o título, o `tituloComo` (padrão `h2`), até `max-w-3xl`.
- Descrição — `description`: parágrafo cinza (`--ink-inverse-muted` sobre escuro, E72 — era branco a 80% de opacidade), até `max-w-2xl`.
Estados
Os estados que a peça tem no código, e o que muda em cada um.
| Estado | O que muda |
|---|---|
| Sobre claro | Chapéu --primary, título --ink, descrição --muted-foreground. |
| Sobre escuro | superficie="escura": chapéu e título --ink-inverse, descrição --ink-inverse-muted. |
| Alinhamento | left (padrão), center ou right. |
Comportamento
| Situação | O que acontece |
|---|---|
| Sem `subtitle` ou `description` | A parte simplesmente não aparece. |
Relacionados
Como usar no código
A importação e o menor uso, lidos do arquivo. O … marca as props obrigatórias.
import { SectionTitle } from '@/app/components/molecules/SectionTitle';
<SectionTitle title={…}>…</SectionTitle>Propriedades
Lidas do código da peça no build — não escritas à mão.
| Prop | Tipo | Padrão | Obrigatória | Descrição |
|---|---|---|---|---|
subtitle | string | — | não | — |
title | string | — | sim | — |
description | string | — | não | — |
align | 'left' | 'center' | 'right' | 'left' | não | — |
superficie | 'clara' | 'escura' | — | não | Sobre que superfície o título está (E72): escura usa os tokens inversos. Nomeado pela superfície, e não pela cor, para o tema escuro da Fase 2 não pedir outra troca de API. |
titleColor | 'default' | 'white' | — | não | @deprecated Use superficie (E72). 'white' = superficie="escura"; fica por um ciclo. |
tituloComo | ElementType | 'h2' | não | O elemento do título (E72). Padrão h2. Use h1 quando o SectionTitle é o título da página, e h3 numa subseção — a lista de títulos do leitor de tela depende disso. |
idDoTitulo | string | — | não | id do título (E76), para a seção em volta se nomear por ele: <section aria-labelledby={id}>. Só o título — com chapéu e descrição, o nome da região ficaria uma frase. |
Aceita também: React.HTMLAttributes<HTMLElement>.
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 |
|---|---|---|
--ink-inverse-muted | #C7C7C7 | text-ink-inverse-muted |
Leitor de tela
O que é anunciado, e por quê.
- O título é o
tituloComo(padrão<h2>); chapéu e título ficam num<hgroup>, com o chapéu em<p>— quem pula de título em título encontra o grupo junto (E72, conferido no teste da ficha).
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/molecules/SectionTitle.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).