Gráficos B
Mapa de calor
Intensidade por dia em grade, com abas de semana, mês e ano.
Exemplo
Mapa de calor
Grade de células arredondadas em cinco níveis do acento. As abas trocam a granularidade com transição e cada célula tem dica ao passar o mouse.
<article class="u-chartb-card">
<div class="u-chartb-panel" data-u="heatmap" data-u-props="{"label":"Commits neste ano","noun":"commits","periods":[{"label":"Este ano","total":1312,"delta":9.2,"seed":7,"stats":[{"v":"41 dias","l":"Maior sequência"},{"v":"28","l":"Commits no melhor dia"},{"v":"6h 12m","l":"Sessão mais longa"},{"v":"186","l":"Pull requests mesclados"}]},{"label":"Ano passado","total":1203,"delta":3.1,"seed":19,"stats":[{"v":"33 dias","l":"Maior sequência"},{"v":"24","l":"Commits no melhor dia"},{"v":"5h 40m","l":"Sessão mais longa"},{"v":"161","l":"Pull requests mesclados"}]},{"label":"Dois anos atrás","total":1046,"delta":-2.4,"seed":31,"stats":[{"v":"27 dias","l":"Maior sequência"},{"v":"19","l":"Commits no melhor dia"},{"v":"4h 55m","l":"Sessão mais longa"},{"v":"132","l":"Pull requests mesclados"}]}]}"></div>
<div class="u-chartb-copy">
<h3>Mapa de calor</h3>
<p>Grade de células arredondadas em cinco níveis do acento. As abas trocam a granularidade com transição e cada célula tem dica ao passar o mouse.</p>
</div>
</article>Instalação
Só este gráfico, com o core e os tokens:
curl -fsSL unslop.leallabs.dev/i | sh -s add heatmapDependência Puxa junto b-shell (casca dos gráficos B). O instalador baixa e já põe na ordem certa.
O card completo do exemplo, em HTML pronto pra colar:
curl -fsSL unslop.leallabs.dev/i | sh -s add chart-heatmapFamília B: casca u-chartb-card > o data-u com a classe u-chartb-panel, e depois div.u-chartb-copy com h3 e p.
Props
Vão em data-u-props, como JSON. Cada item de periods vira uma opção do seletor e o gráfico reanima do dado antigo pro novo.
| Prop | Tipo | Padrão | O que faz |
|---|---|---|---|
label | string | sem padrão | Rótulo pequeno no topo do card. |
noun | string | contribuições | Palavra da contagem. |
tabs | array | [Semanal, Mensal, Anual] | Abas de granularidade. |
tab | number | 0 | Aba que abre. |
activity | string | sem padrão | Título da barra de atividade. |
periods | array | sem padrão | Lista de {label, total, delta, seed, stats: [{v, l}]}. As células saem de seed: é padrão visual, não dado por dia. Todos com o mesmo número de stats. |
period | number | 0 | Índice do período que abre selecionado. |
Acessibilidade e teclado
Estado e papéis
| Onde | Atributo | O que diz |
|---|---|---|
| abas | role="tablist", role="tab", aria-selected | Semanal, Mensal e Anual. |
| lista de períodos | role="listbox", role="option" | Abre com aria-expanded e marca a opção em aria-selected. |
| grade | aria-hidden="true" | As células são decoração. Total e stats ficam em texto. |
Teclado
| Tecla | Faz |
|---|---|
| Seta para a esquerda e para a direita | trocam a aba |
| Enter ou Espaço | abre a lista de períodos |
| Seta para cima e para baixo | anda pelas opções |
| Esc | fecha sem trocar |
| Tab | fecha e segue o foco |
Eventos e API
Nenhum evento público. A troca de período acontece dentro do card.