81 lines
2.9 KiB
CSS
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);
|
|
}
|