Logo Marquee
Em andamentoFaixa de logotipos que rola sozinha, em laço, com título em cima e um botão de pausa; a segunda cópia da faixa (que faz o laço) fica fora da árvore de acessibilidade.
- Função
- Campanha (marketing)
- Também chamado de
- faixa de logos, marcas, parceiros, logos rolando
- Mora em
- app/components/organisms/marketing/LogoMarquee.tsx
- Última mudança
- 2026-09-30
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
Para mostrar marcas, parceiros ou selos numa faixa, em página de campanha ou institucional.
Faça
- Passe
marcascomnomeelogo: o nome é oaltdo logotipo. - Mantenha o botão de pausa: a faixa se move sozinha por mais de cinco segundos (WCAG 2.2.2).
Evite
- Marca sem
logona lista padrão sem avisar: a faixa mostra só o nome em texto, e o desenho fica desigual.
Quando não usar. Para uma frase promocional rolando, use o PromoMarquee. Para logos parados, uma lista comum de imagens.
Anatomia
As partes, na ordem em que o olho — e o teclado — passam.
- Título — `tiny` centrado ("Faculdade Phorte" por padrão).
- Faixa — Duas cópias da lista de logotipos (48px de altura), em laço de 40s.
- Pausa — Botão redondo de 44px no canto.
Estados
Os estados que a peça tem no código, e o que muda em cada um.
| Estado | O que muda |
|---|---|
| Rolando | A faixa corre em laço; o botão diz "Pausar a rolagem das marcas". |
| Pausada | A faixa para; o botão vira "Retomar…" com aria-pressed="true" — medido. |
| Movimento reduzido | A faixa não corre e o botão some; os itens quebram linha, cada um uma vez (E145). Era uma rolagem manual sem nada focável dentro — o teclado não chegava ao que ficava fora da largura. |
Comportamento
| Situação | O que acontece |
|---|---|
| Marca sem logotipo | Mostra o nome da marca em texto. |
Relacionados
Como usar no código
A importação e o menor uso, lidos do arquivo. O … marca as props obrigatórias.
import { LogoMarquee } from '@/app/components/organisms/marketing/LogoMarquee';
<LogoMarquee />Propriedades
Lidas do código da peça no build — não escritas à mão.
| Prop | Tipo | Padrão | Obrigatória | Descrição |
|---|---|---|---|---|
titulo | string | 'Faculdade Phorte' | não | — |
marcas | MarcaDaFaixa[] | MARCAS_PADRAO | não | — |
className | string | — | 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 |
|---|---|---|
--border | #E5E5E5 | border-border |
--border-interactive | #8C8C8C | border-border-interactive |
--card | #FFFFFF | bg-card |
--foreground | #1A1A1A | text-ink |
--muted-foreground | #595959 | text-muted-foreground |
--ring | var(--footer-red)), decisão da revisão 2. Se outra peça precisar
* dele como superfície, o nome vira de papel (ex.: --surface-brand-strong). */
--footer-red: #7D1B1B | ring-ring |
Teclado
| Tecla | Faz |
|---|---|
| Tab | Só o botão de pausa — medido. |
| EnterEspaço | Pausa ou retoma a faixa — medido. |
Leitor de tela
O que é anunciado, e por quê.
- A faixa é uma região nomeada pelo título dela (E76).
- A cópia do laço é
aria-hidden, comalt="": o leitor lê cada marca uma vez.
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/LogoMarquee.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.
0298af82026-09-30E147: fechamento da Entrega 11 — REPORT.md, verificação cross-agent e o gate estático estrito
O histórico completo está no GitHub (abre em outra aba).