Files
HMDesign/packages/ui/src/theme/data-table.css
T

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%;
}