Padrão de Ordenação de Colunas da Tabela
Este padrão estabelece a sequência recomendada de colunas para tabelas de entidades no sistema. Uma organização padronizada das colunas reduz o tempo de busca, diminui erros, aumenta a previsibilidade e melhora a experiência de navegação dos usuários em listas e tabelas.
Contexto & Problema
Section titled “Contexto & Problema”Usuários enfrentam inconsistências e confusão quando a disposição das colunas varia entre listas semelhantes. Manter uma ordem fixa e intuitiva das colunas acelera a localização de informações, facilita o entendimento dos dados exibidos e ajuda na execução de ações relacionadas.
Quando Usar
Section titled “Quando Usar”- Em qualquer tabela ou grade de entidades apresentando informações detalhadas para busca, filtragem ou gestão de dados
- Especialmente valioso em listagens administrativas, dashboards e visões de gerenciamento
Componentes Utilizados
Section titled “Componentes Utilizados”- DataTable (Console Kit Blocks)
Exemplo Visual
Section titled “Exemplo Visual”
Edge Applications
Comportamento Esperado
Section titled “Comportamento Esperado”Sequência de Colunas
Section titled “Sequência de Colunas”- ID - Identificador único
- Name - Nome da entidade
- Description - Descrição (quando aplicável)
- [Other Columns] - Colunas específicas da entidade
- Last Editor - Último editor
- Last Modified - Data da última modificação
- Status - Estado atual
- Actions - Ações disponíveis
- Colunas fixas à esquerda: ID, Name e Description são sempre as primeiras
- Colunas de ação à direita: Actions deve ser a última coluna
- Consistência entre componentes: Listas com entidades semelhantes devem seguir este padrão
- Personalização restrita: A ordem padrão deve ser sempre o estado inicial
- Colunas opcionais: Podem ser omitidas se não aplicáveis à entidade
Implementação
Section titled “Implementação”const getColumns = computed(() => { return [ { field: 'id', header: 'ID', filterPath: 'id', sortField: 'id' }, { field: 'name', header: 'Name', filterPath: 'name.text', type: 'component', component: (columnData) => { return columnBuilder({ data: columnData, columnAppearance: 'text-with-tag' }) } }, { field: 'domains', header: 'Domains', filterPath: 'domains', disableSort: true, type: 'component', component: (columnData) => { return columnBuilder({ data: columnData, columnAppearance: 'expand-column' }) } }, { field: 'workloadHostname', header: domainNameColumn.value, // "Workload Domain" filterPath: 'workloadHostname', disableSort: true, type: 'component', component: (columnData) => { return columnBuilder({ data: columnData, columnAppearance: 'text-with-clipboard', dependencies: { copyContentService: Helpers.clipboardWrite } }) } }, { field: 'infrastructure', header: 'Infrastructure', filterPath: 'infrastructure', sortField: 'infrastructure' }, { field: 'active', sortField: 'active', header: 'Status', filterPath: 'active', type: 'component', component: (columnData) => columnBuilder({ data: columnData, columnAppearance: 'tag' }) }, { field: 'lastModified', header: 'Last Modified', filterPath: 'lastModified', sortField: 'lastModified' }, { field: 'lastEditor', header: 'Last Editor', filterPath: 'lastEditor', sortField: 'lastEditor' } ]})Boas Práticas
Section titled “Boas Práticas”Anti-padrões
Section titled “Anti-padrões”Acessibilidade
Section titled “Acessibilidade”- Assegure que a ordem de leitura assistida siga a mesma ordem visual das colunas
- Utilize
<th scope="col">em cabeçalhos de tabela para leitores de tela - Garanta contraste adequado nos textos das colunas, principalmente para informações críticas