UI

Grid List

Lista interativa com linhas selecionáveis e conteúdo rico, navegável pelo teclado.

Mariana CostaClínica Sorriso · mariana@clinicasorriso.com.br
Rafael OliveiraPadaria Pão de Ouro · rafael@padariapaodeouro.com.br
Juliana MartinsStudio JM · juliana@studiojm.com.br
Carlos Eduardo LimaLima Advocacia · carlos@limaadvocacia.adv.br

Instalação

npx shadcn@latest add @lenstech/grid-list

Uso

import { GridList, GridListItem } from "@/components/ui/grid-list"
<GridList aria-label="Contatos" selectionMode="multiple" items={contatos}>
  {(contato) => (
    <GridListItem id={contato.id} textValue={contato.nome}>
      {contato.nome}
    </GridListItem>
  )}
</GridList>

Informe textValue quando a linha tiver conteúdo rico

Se o filho do GridListItem não for uma string simples, passe textValue — ele é usado na busca por digitação e pelo leitor de tela.

Exemplos

Seleção controlada

Com selectionMode="multiple" cada linha ganha um checkbox. Controle com selectedKeys / onSelectionChange.

Registrar domínio
Revisar textos da página inicial
Enviar fotos da equipe
Instalar pixel do Meta
Publicar o site

2 de 5 tarefas concluídas

Seleção única

selectionMode="single" com disallowEmptySelection funciona como uma escolha obrigatória com conteúdo rico.

EssencialSite de 1 página · R$ 89/mês
ProfissionalAté 8 páginas + blog · R$ 189/mês
CompletoSite + sistema de agendamento · R$ 349/mês

Ações na linha e itens desabilitados

Diferente do ListBox, cada linha pode ter botões próprios — o teclado navega até eles com ←/→. disabledKeys desabilita linhas específicas.

contrato-assinado.pdf312 KB
fotos-consultorio.zip18,4 MB

Estado vazio

Nenhum contato favorito ainda.

Quando usar

  • Use para coleções de itens com ações: contatos, arquivos, tarefas, planos.
  • Não use para dados com várias colunas comparáveis — use Table.
  • Não use para escolher opções num formulário — use Select, ListBox, Checkbox Group ou Radio Group.
  • Não use para navegação — use links ou o Sidebar.

API

GridList

Aceita todas as props do GridList do React Aria. As mais usadas:

Prop

Type

GridListItem

Aceita todas as props do GridListItem do React Aria.

Prop

Type

On this page