Esse componente também está disponível em nossa biblioteca agnóstica de Web Components. Acesse a página de Web Components >
O que é?
Tabelas exibem conjuntos de dados. Apresentam informações em um formato de grade de linhas e colunas. O componente de tabela permite personalização conforme necessidade.
Quando usar
- Para organizar, exibir e tabular dados;
- Se o seu usuário precisar navegar até um dado específico para concluir uma tarefa;
Anatomia
O componente é composto por células (Cells), que são os menores blocos variáveis. Deste modo, é adequado afirmar que não há uma forma padrão desse componente, sendo mutável em número de linhas e colunas e do seu conteúdo.
O uso depende da necessidade da aplicação, porém, toda tabela precisa de ao menos uma linha e coluna. Cada linha é composta por várias células, com exceção do estado vazio, composto de apenas uma célula. Aplica-se o mesmo conceito de Label Value (Rótulo e valor), como mostra a figura a seguir:
- Linha do cabeçalho (Header)
- Linhas de conteúdo (Value)
- Linha do rodapé (Footer)
- Select (Quantidade de itens por página)
- Número de páginas (Navegação)
- Paginação
Tipos de células de tabela
Há somente uma variação de tabela. O que muda são as células que podem ser aplicadas de inúmeras maneiras. Conheça os tipos de células e o uso de cada uma delas:
- Label + Info Icon: Usado para habilitar tooltips;
- Label Regular;
- Label + Order Icon: Usada para ordenação da coluna;
- Value Checkbox: Usado para selecionar uma linha inteira
- Value Regular;
- Value + Caption: Usado para abrigar atributos correlacionados como data e hora;
- Button Text: Usado para o usuário efetuar uma ação ou acessar uma página;
- Badge: Usado para sinalizar status;
- Switch: Usado para ativar ou desativar a linha inteira;
- Icons: Usados para ações diretas e objetivas. Ex.: abrir menu contextual, copiar, exportar…
|
Label | Label | Label | Label | Label | |
---|---|---|---|---|---|---|
|
Value | Value Caption | Link | Success |
|
<table class="table is-fullwidth">
<thead>
<tr>
<th>
<div class="field">
<p class="control">
<input class="checkradio" id="selectAll" type="checkbox" name="selectAll">
<label for="selectAll"></label>
</p>
</div>
</th>
<th>
Label
<span class="icon tooltip" data-tooltip="Tooltip informativa">
<i class="far fa-info-circle"></i>
</span>
</th>
<th>Label</th>
<th>Label</th>
<th>
Label
<a class="icon">
<i class="fas fa-sort"></i>
</a>
</th>
<th>Label</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="field">
<p class="control">
<input class="checkradio" id="item1" type="checkbox" name="item0">
<label for="item0"></label>
</p>
</div>
</td>
<td>Value</td>
<td>Value <small>Caption</small></td>
<td><a>Link</a></td>
<td>
<span class="badge is-success is-light">
<span class="icon is-medium">
<i class="fak fa-success-medium"></i>
</span>
<span>Success</span>
</span>
</td>
<td>
<div class="switch">
<input id="switch1" class="switch" type="checkbox"">
<label class="label" for="switch1" data-on="On" data-off="Off"></label>
</div>
</td>
<td>
<button class="button is-icon" aria-haspopup="true">
<span class="icon is-medium">
<i class="fak fa-options-medium" aria-hidden="true"></i>
</span>
</button>
</td>
</tr>
</tbody>
</table>
Estado vazio
O estado vazio padrão tabela possui um linha com texto informativo centralizado. Há também uma opção com botão de ação.
Label | Label | Label |
---|---|---|
Nenhum dado encontrado |
<table class="table is-fullwidth">
<thead>
<tr>
<th>Label</th>
<th>Label</th>
<th>Label</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="3" class="has-text-centered">Nenhum dado encontrado</td>
</tr>
</tbody>
</table>
Label | Label | Label |
---|---|---|
Nenhum dado encontrado |
<table class="table is-fullwidth">
<thead>
<tr>
<th>Label</th>
<th>Label</th>
<th>Label</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="3" class="has-text-centered">
Nenhum dado encontrado
<button class="button is-text">
<span>Recarregar</span>
<span class="icon">
<i class="far fa-redo"></i>
</span>
</button>
</td>
</tr>
</tbody>
</table>
Paginação
Usado em conjunto com Tabelas e listagens.
Aplicação
Clique na linha
Não é recomendado que apenas uma célula da tabela seja clicável. Se a tabela abre páginas secundárias, a linha deve ter o link, com exceção da célula que contenha Icon Button. Não recomendamos que somente uma célula seja destacada em outra cor e contenha link.
Cor
No caso de linhas com link, as células de texto devem se manter na cor padrão, Support Darkest.
Ação principal
O clique na linha deve abrir, invariavelmente, uma página de detalhes do item. A página deve conter a estrutura padrão, incluindo breadcrumbs.
Largura mínima da tabela
A tabela deve ocupar a largura mínima, e recomendada, igual ao contêiner de conteúdo equivalente a 8 colunas e pode ser estendida até 12.
Atributos por coluna
É recomendado o uso de apenas um atributo por coluna. Ex.: Cidade e estado representam duas colunas diferentes.
Colunas da tabela
Priorize a coluna “Nome” como a primeira, a menos que haja dados para justificar que outra coluna esteja nessa posição.
Quebras de texto
Para quebras de texto serão utilizadas reticências (…) e o texto completo deverá abrir em uma tooltip.
Exemplos
Mês de referência | Valor (R$) | Situação | |
---|---|---|---|
Janeiro/2021 | 229.223,75 | Em aberto | |
Dezembro/2020 | 12.009,40 | Pago | > |
Novembro/2020 | 9.300,00 | Pago | |
Outubro/2020 | 34.650,89 | Pago | |
Setembro/2020 | 100.700,16 | Pago | |
Agosto/2020 | 80.100,09 | Pago | |
Julho/2020 | 22.111,00 | Pago | |
Junho/2020 | 50.780,60 | Pago | |
Maio/2020 | 8.720,93 | Pago | |
Abril/2020 | 91.562,00 | Pago |
<table class="table is-fullwidth">
<thead>
<tr>
<th>
Mês de referência
<span class="icon tooltip" data-tooltip="Tooltip informativa">
<i class="far fa-info-circle"></i>
</span>
</th>
<th>Valor (R$)</th>
<th>Situação</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>Janeiro/2021</td>
<td>229.223,75</td>
<td>
<span class="badge is-warning is-light">
<span class="icon is-medium">
<i class="fak fa-warning-medium"></i>
</span>
<span>Em aberto</span>
</span>
</td>
<td>
<button class="button is-icon" aria-haspopup="true">
<span class="icon is-medium">
<i class="fak fa-options-medium" aria-hidden="true"> </i>
</span>
</button>
</td>
</tr>
<tr>
<td>Dezembro/2020</td>
<td>12.009,40</td>
<td>
<span class="badge is-success is-light">
<span class="icon is-medium">
<i class="fak fa-success-medium"></i>
</span>
<span>Pago</span>
</span>
</td>
<td>
<button class="button is-icon" aria-haspopup="true">
<span class="icon is-medium">
<i class="fak fa-options-medium" aria-hidden="true"> </i>
</span>
</button>
</td>>
</td>
</tr>
<tr>
<td>Novembro/2020</td>
<td>9.300,00</td>
<td>
<span class="badge is-success is-light">
<span class="icon is-medium">
<i class="fak fa-success-medium"></i>
</span>
<span>Pago</span>
</span>
</td>
<td>
<button class="button is-icon" aria-haspopup="true">
<span class="icon is-medium">
<i class="fak fa-options-medium" aria-hidden="true"> </i>
</span>
</button>
</td>
</tr>
<tr>
<td>Outubro/2020</td>
<td>34.650,89</td>
<td>
<span class="badge is-success is-light">
<span class="icon is-medium">
<i class="fak fa-success-medium"></i>
</span>
<span>Pago</span>
</span>
</td>
<td>
<button class="button is-icon" aria-haspopup="true">
<span class="icon is-medium">
<i class="fak fa-options-medium" aria-hidden="true"> </i>
</span>
</button>
</td>
</tr>
<tr>
<td>Setembro/2020</td>
<td>100.700,16</td>
<td>
<span class="badge is-success is-light">
<span class="icon is-medium">
<i class="fak fa-success-medium"></i>
</span>
<span>Pago</span>
</span>
</td>
<td>
<button class="button is-icon" aria-haspopup="true">
<span class="icon is-medium">
<i class="fak fa-options-medium" aria-hidden="true"> </i>
</span>
</button>
</td>
</tr>
<tr>
<td>Agosto/2020</td>
<td>80.100,09</td>
<td>
<span class="badge is-success is-light">
<span class="icon is-medium">
<i class="fak fa-success-medium"></i>
</span>
<span>Pago</span>
</span>
</td>
<td>
<button class="button is-icon" aria-haspopup="true">
<span class="icon is-medium">
<i class="fak fa-options-medium" aria-hidden="true"> </i>
</span>
</button>
</td>
</tr>
<tr>
<td>Julho/2020</td>
<td>22.111,00</td>
<td>
<span class="badge is-success is-light">
<span class="icon is-medium">
<i class="fak fa-success-medium"></i>
</span>
<span>Pago</span>
</span>
</td>
<td>
<button class="button is-icon" aria-haspopup="true">
<span class="icon is-medium">
<i class="fak fa-options-medium" aria-hidden="true"> </i>
</span>
</button>
</td>
</tr>
<tr>
<td>Junho/2020</td>
<td>50.780,60</td>
<td>
<span class="badge is-success is-light">
<span class="icon is-medium">
<i class="fak fa-success-medium"></i>
</span>
<span>Pago</span>
</span>
</td>
<td>
<button class="button is-icon" aria-haspopup="true">
<span class="icon is-medium">
<i class="fak fa-options-medium" aria-hidden="true"> </i>
</span>
</button>
</td>
</tr>
<tr>
<td>Maio/2020</td>
<td>8.720,93</td>
<td>
<span class="badge is-success is-light">
<span class="icon is-medium">
<i class="fak fa-success-medium"></i>
</span>
<span>Pago</span>
</span>
</td>
<td>
<button class="button is-icon" aria-haspopup="true">
<span class="icon is-medium">
<i class="fak fa-options-medium" aria-hidden="true"> </i>
</span>
</button>
</td>
</tr>
<tr>
<td>Abril/2020</td>
<td>91.562,00</td>
<td>
<span class="badge is-success is-light">
<span class="icon is-medium">
<i class="fak fa-success-medium"></i>
</span>
<span>Pago</span>
</span>
</td>
<td>
<button class="button is-icon" aria-haspopup="true">
<span class="icon is-medium">
<i class="fak fa-options-medium" aria-hidden="true"> </i>
</span>
</button>
</td>
</td>
</tr>
</tbody>
</table>
<nav class="level">
<div class="level-left">
<span class="pagination-details"> Exibir </span>
<div class="select pagination-details">
<select class="pagination-select">
<option> 10 </option>
<option> 9 </option>
<option> 8 </option>
</select>
</div>
<div class="vertical-divider pagination-details"></div>
<span class="pagination-details">1-10 de 12</span>
</div>
<div class="level-right">
<!-- Pagination -->
<nav class="pagination is-right" role="navigation" aria-label="pagination">
<ul class="pagination-list">
<li><a class="pagination-previous"> <i class="fa-light fa-chevron-left"></i></a> </li>
<li><a class="pagination-link is-current" aria-label="Page 1" aria-current="page">1</a></li>
<li><a class="pagination-link" aria-label="Goto page 2">2</a></li>
<li><a class="pagination-link" aria-label="Goto page 2">3</a></li>
<li> <a class="pagination-next"> <i class="fa-light fa-chevron-right"></i></a> </li>
</ul>
</nav>
</div>
</nav>