Event Date
Em andamentoData e duração de um evento numa linha: ícone de calendário, a data em pt-BR no fuso de São Paulo ("5 de dezembro às 09:00") num <time> com o valor de máquina, e a duração com ícone de relógio.
- Função
- Eventos
- Também chamado de
- data do evento, quando, data e hora
- Mora em
- app/components/molecules/EventDate.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
Junto do título de um evento — no cartão, na página do evento, na programação.
Faça
- Passe
dateem ISO (2026-12-05T09:00-03:00), só o dia (2026-12-05) ou umDate(E72): é o que vai nodateTime. - Escreva a duração como a pessoa lê ("16h", "2 dias").
Evite
- Data em texto livre ("5 de dezembro") quando a data exata existe: ela aparece como veio, mas o
<time>fica semdateTimee a máquina não a lê.
Quando não usar. Para uma sequência de marcos com ano, use o TimelineItem. Para a previsão de início de uma turma, o TurmaCard já traz a dela.
Anatomia
As partes, na ordem em que o olho — e o teclado — passam.
- Calendário — Ícone vermelho de 14px, decorativo.
- Data — `<time dateTime>` com dia, mês por extenso e hora — sem a hora quando a data vem só com o dia (E72).
- Duração — Ponto separador, ícone de relógio e o texto.
Estados
Os estados que a peça tem no código, e o que muda em cada um.
| Estado | O que muda |
|---|---|
| Com duração | Data, separador e duração. |
| Sem duração | Só a data. |
Comportamento
| Situação | O que acontece |
|---|---|
| Data em ISO | Formata em pt-BR, sempre no fuso de São Paulo (E72): 01:30 UTC do dia 13 é "12 de outubro, 22:30" — conferido no teste da ficha. Sem o fuso, servidor e navegador divergiam (erro de hidratação). |
| Só o dia (`2026-10-12`) | "12 de outubro", sem hora — conferido no teste da ficha. |
| Data que o `Date` não entende | Mostra o texto como veio ("A definir"), sem dateTime no <time> — ficha "A definir". |
Relacionados
Como usar no código
A importação e o menor uso, lidos do arquivo. O … marca as props obrigatórias.
import { EventDate } from '@/app/components/molecules/EventDate';
<EventDate date={…}>…</EventDate>Propriedades
Lidas do código da peça no build — não escritas à mão.
| Prop | Tipo | Padrão | Obrigatória | Descrição |
|---|---|---|---|---|
date | string | Date | — | sim | ISO ("2026-10-12T19:00:00-03:00"), só o dia ("2026-10-12"), um Date, ou texto livre ("A definir"). |
duration | string | — | não | — |
Aceita também: React.HTMLAttributes<HTMLDivElement>.
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 |
|---|---|---|
--border | #E5E5E5 | bg-border |
--muted-foreground | #595959 | text-muted-foreground |
--primary | #D42B2B | text-primary |
Leitor de tela
O que é anunciado, e por quê.
- Os ícones e o separador são
aria-hidden; o leitor lê a data e a duração. - O
<time dateTime>dá a data exata a quem a lê por máquina (agenda, buscador).
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/EventDate.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).