77 lines
2.4 KiB
CSS
77 lines
2.4 KiB
CSS
/* Data Table pattern: wrappers around the Table primitive. Header / cell / row looks are src/theme/table.css; Checkbox, Pagination, Select,
|
|
Dropdown Menu, Button and Skeleton keep their own tokens. Only the footer layout, summary text, sort button, empty and loading cells are here. */
|
|
:root, [data-hm-theme] {
|
|
--hm-data-table-footer-gap: 12px;
|
|
--hm-data-table-footer-padding-top: 12px;
|
|
--hm-data-table-summary-color: var(--hm-sem-fg-secondary);
|
|
--hm-data-table-summary-font-size: 13px;
|
|
--hm-data-table-sort-gap: 4px;
|
|
--hm-data-table-sort-icon-size: 14px;
|
|
--hm-data-table-sort-active-color: var(--hm-sem-palette-green-light-3);
|
|
--hm-data-table-empty-padding-y: 48px;
|
|
--hm-data-table-empty-color: var(--hm-sem-fg-secondary);
|
|
--hm-data-table-skeleton-height: 16px;
|
|
}
|
|
|
|
/* min-width 0 lets the Table container scroll sideways inside a grid / flex parent instead of widening the page. */
|
|
[data-slot="data-table"] {
|
|
min-width: 0;
|
|
}
|
|
|
|
[data-slot="data-table-footer"] {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: var(--hm-data-table-footer-gap);
|
|
padding-top: var(--hm-data-table-footer-padding-top);
|
|
}
|
|
[data-slot="data-table-summary"] {
|
|
margin: 0;
|
|
margin-right: auto;
|
|
color: var(--hm-data-table-summary-color);
|
|
font-size: var(--hm-data-table-summary-font-size);
|
|
}
|
|
[data-slot="data-table-page-size"] {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
color: var(--hm-data-table-summary-color);
|
|
font-size: var(--hm-data-table-summary-font-size);
|
|
}
|
|
[data-slot="data-table-footer"] [data-slot="data-table-pagination"] {
|
|
width: auto;
|
|
margin: 0;
|
|
}
|
|
|
|
[data-slot="data-table-sort"] {
|
|
gap: var(--hm-data-table-sort-gap);
|
|
font: inherit;
|
|
color: inherit;
|
|
cursor: pointer;
|
|
}
|
|
[data-slot="data-table-sort"] svg {
|
|
width: var(--hm-data-table-sort-icon-size);
|
|
height: var(--hm-data-table-sort-icon-size);
|
|
opacity: 0.6;
|
|
}
|
|
[data-slot="data-table-sort"][data-sorted] svg {
|
|
opacity: 1;
|
|
color: var(--hm-data-table-sort-active-color);
|
|
}
|
|
[data-slot="data-table-sort"]:focus-visible {
|
|
outline: 2px solid var(--hm-sem-stroke-input-focus);
|
|
outline-offset: 2px;
|
|
border-radius: 2px;
|
|
}
|
|
|
|
[data-slot="data-table-empty"] {
|
|
padding-top: var(--hm-data-table-empty-padding-y);
|
|
padding-bottom: var(--hm-data-table-empty-padding-y);
|
|
text-align: center;
|
|
color: var(--hm-data-table-empty-color);
|
|
}
|
|
[data-slot="data-table-skeleton"] {
|
|
height: var(--hm-data-table-skeleton-height);
|
|
width: 100%;
|
|
}
|