Files
HMDesign/packages/ui/src/theme/pagination.css
T

81 lines
2.9 KiB
CSS

/* Pagination mapping. ui-viz lists Pagination only as a component name (no spec), so these are current HM values built from the HM
Semantic tokens. Links are independent anchor styles (not the Button tokens): a square page link, a padded Previous / Next link,
a filled current page, and a dimmed aria-disabled link. */
:root, [data-hm-theme] {
--hm-pagination-gap: 4px;
--hm-pagination-height: 34px;
--hm-pagination-min-width: 34px;
--hm-pagination-padding-x: 12px;
--hm-pagination-radius: var(--hm-radius-control-md);
--hm-pagination-font-size: 14px;
--hm-pagination-line-height: 20px;
--hm-pagination-font-weight: 500;
--hm-pagination-icon-size: 16px;
--hm-pagination-text: var(--hm-sem-fg-primary);
--hm-pagination-hover-background: var(--hm-sem-surface-highlight);
--hm-pagination-hover-text: var(--accent-foreground);
--hm-pagination-active-background: var(--hm-sem-action-primary);
--hm-pagination-active-text: var(--hm-sem-on-action-primary);
--hm-pagination-active-font-weight: 700;
--hm-pagination-ellipsis-color: var(--hm-sem-fg-secondary);
/* Current HM value for this component only; not a global Disabled rule. */
--hm-pagination-disabled-opacity: 0.6;
}
[data-slot="pagination-content"] {
gap: var(--hm-pagination-gap);
}
[data-slot="pagination-link"] {
box-sizing: border-box;
height: var(--hm-pagination-height);
min-width: var(--hm-pagination-min-width);
padding: 0;
border-radius: var(--hm-pagination-radius);
color: var(--hm-pagination-text);
font-size: var(--hm-pagination-font-size);
line-height: var(--hm-pagination-line-height);
font-weight: var(--hm-pagination-font-weight);
text-decoration: none;
outline: none;
}
[data-slot="pagination-link"][data-size="default"] {
padding: 0 var(--hm-pagination-padding-x);
}
[data-slot="pagination-link"] > svg {
width: var(--hm-pagination-icon-size);
height: var(--hm-pagination-icon-size);
flex-shrink: 0;
}
[data-slot="pagination-link"]:hover {
background: var(--hm-pagination-hover-background);
color: var(--hm-pagination-hover-text);
}
[data-slot="pagination-link"]:focus-visible {
box-shadow: 0 0 0 3px color-mix(in srgb, var(--ring) 50%, transparent);
}
/* Current page: filled, stays filled on hover. */
[data-slot="pagination-link"][aria-current="page"] {
background: var(--hm-pagination-active-background);
color: var(--hm-pagination-active-text);
font-weight: var(--hm-pagination-active-font-weight);
}
[data-slot="pagination-link"][aria-disabled="true"] {
opacity: var(--hm-pagination-disabled-opacity);
cursor: not-allowed;
}
[data-slot="pagination-link"][aria-disabled="true"]:hover {
background: transparent;
color: var(--hm-pagination-text);
}
[data-slot="pagination-ellipsis"] {
width: var(--hm-pagination-min-width);
height: var(--hm-pagination-height);
color: var(--hm-pagination-ellipsis-color);
}
[data-slot="pagination-ellipsis"] > svg {
width: var(--hm-pagination-icon-size);
height: var(--hm-pagination-icon-size);
}