Logos Carousel
StableGrade de logos que troca coluna por coluna, numa onda escalonada. É conteúdo ambiente: roda só enquanto está na tela e com a aba visível, a grade em movimento fica fora da árvore de acessibilidade e do Tab, e o conjunto inteiro é listado uma vez para leitor de tela. Quando os logos importam, vem com um controle de pausa por `play`.
Instalação
npx up-web-ds add logos-carouselPreview
Basic
- Next.js
- React
- TypeScript
- Tailwind CSS
- Base UI
- React Aria
- Vitest
- Playwright
With Caption
Construído sobre ferramentas abertas
- Next.js
- React
- TypeScript
- Tailwind CSS
- Base UI
- React Aria
- Vitest
- Playwright
- Biome
- Motion
- Zod
- shadcn
Right To Left
- Next.js
- React
- TypeScript
- Tailwind CSS
- Base UI
- React Aria
- Vitest
- Playwright
- Biome
- Motion
- Zod
- shadcn
Responsive
- Next.js
- React
- TypeScript
- Tailwind CSS
- Base UI
- React Aria
- Vitest
- Playwright
- Biome
- Motion
- Zod
- shadcn
Few Logos
- Next.js
- React
- TypeScript
Pausable
Da validação à distribuição privada.
- GitHub Actions
- GitHub Packages
- Vercel
- Biome
- Vitest
- Playwright
- axe-core
- shadcn
All states
Basic
- Next.js
- React
- TypeScript
- Tailwind CSS
- Base UI
- React Aria
- Vitest
- Playwright
With Caption
Construído sobre ferramentas abertas
- Next.js
- React
- TypeScript
- Tailwind CSS
- Base UI
- React Aria
- Vitest
- Playwright
- Biome
- Motion
- Zod
- shadcn
Right To Left
- Next.js
- React
- TypeScript
- Tailwind CSS
- Base UI
- React Aria
- Vitest
- Playwright
- Biome
- Motion
- Zod
- shadcn
Responsive
- Next.js
- React
- TypeScript
- Tailwind CSS
- Base UI
- React Aria
- Vitest
- Playwright
- Biome
- Motion
- Zod
- shadcn
Few Logos
- Next.js
- React
- TypeScript
Pausable
Da validação à distribuição privada.
- GitHub Actions
- GitHub Packages
- Vercel
- Biome
- Vitest
- Playwright
- axe-core
- shadcn
Usage
Props
Estende Omit< React.ComponentProps<'div'>, 'children' >. Aceita também os atributos padrão de um elemento React (279 não listados).
prop obrigatória.
Metadata
Notas de acessibilidade
Verificado em tests/e2e/logos-carousel.spec.ts no Chromium desktop e mobile, em light e dark, com Axe sem violações WCAG 2.2 AA. Teclado: o item não é interativo e a grade em movimento é inert, então não há parada de Tab dentro dela; logos são conteúdo, não controles. Leitor de tela verificado por teste e pela árvore de acessibilidade do navegador: a grade é aria-hidden — uma coluna mostra um logo por vez e mantém o que sai montado durante o fade, o que faria o leitor anunciar um recorte arbitrário, às vezes repetido — e o conjunto completo é exposto uma vez, em ordem, numa lista sr-only; cada logo precisa trazer o próprio nome acessível. Pausa (WCAG 2.2.2): `play` interrompe o ciclo, que também para fora da tela e com a aba oculta; no exemplo pausable o controle vem antes da grade, é acionado por Enter e o foco permanece nele quando o rótulo muda. Touch verificado em 320px com emulação de toque: --column-count quebra a grade em duas colunas dentro do contêiner, cada célula contém o próprio wordmark em vez de invadir a vizinha, e o controle de pausa atende ao piso de 24x24 e responde ao toque. Reduced motion verificado em navegador com prefers-reduced-motion: reduce — o ciclo continua, porque é conteúdo, mas nenhum logo se desloca nem desfoca em nenhum quadro; as variants reduzidas levam transform e filter ao repouso sem tween, porque a preferência é lida depois do primeiro render e uma entrada já iniciada ficaria presa no meio do deslocamento (defeito encontrado pelo spec e corrigido). Timing: 2,4s por batida, 125ms de escalonamento e 500ms de troca são do upstream e foram mantidos como uma coreografia só.
Classificação
- Layer
- Component
- Domínio
- Application
- Categoria
- data-display
- Status
- Stable
Origem e distribuição
- Fonte
- ncdai registry / logos-carousel
- Licença
- MIT
- Distribuição
- Interna
Acessibilidade
- Teclado: revisado
- Leitor de tela: revisado
- Touch: revisado
- Reduced motion: revisado
Dependências
- Pacotes
- motion
- Ícones
- Nenhum
- Construído sobre
- Nenhum
- Usado por
- Nenhum ainda