role navigation
Pagination draft v0.1.0
Lets people move between the pages of a long list, with the current page marked.
A pagination splits a long list of results into pages and lets people go to a page by its number, or to the previous and next ones. It shows which page is current. The pages are links: each one has a destination, so the browser handles history and focus. Which page numbers to show (all, a window around the current one) is the application's choice: the component renders the list it is given.
Playground
Token inspector
Part container
Not rendered in this configuration.
-
gap from default
{space.4}Details
- Value
-
4px - CSS
--pagination-container-gap- Token
pagination.container.gap- Decisions
Part list
Not rendered in this configuration.
No tokens of its own: it inherits from its parent.
Part item
Not rendered in this configuration.
No tokens of its own: it inherits from its parent.
Part previous
Not rendered in this configuration.
No tokens of its own: it inherits from its parent.
Part next
Not rendered in this configuration.
No tokens of its own: it inherits from its parent.
Part link
Not rendered in this configuration.
-
size
smallfrom default{space.32}Details
- Value
-
32px - CSS
--pagination-link-size-small- Token
pagination.link.size.small- Decisions
-
size
mediumfrom default{space.40}Details
- Value
-
40px - CSS
--pagination-link-size-medium- Token
pagination.link.size.medium- Decisions
-
padding-inline
smallfrom default{space.6}Details
- Value
-
6px - CSS
--pagination-link-padding-inline-small- Token
pagination.link.padding-inline.small
-
padding-inline
mediumfrom default{space.8}Details
- Value
-
8px - CSS
--pagination-link-padding-inline-medium- Token
pagination.link.padding-inline.medium
-
border-radius from default
{corner-radius.xs}Details
- Value
-
4px - CSS
--pagination-link-border-radius- Token
pagination.link.border-radius- Decisions
-
background
defaultfrom default{color.transparent}Details
- Value
-
color(srgb 0 0 0 / 0) - CSS
--pagination-link-background-default- Token
pagination.link.background.default- Decisions
-
background
hoverfrom default{global.bg.subtle.neutral.default}Details
- Value
-
#B6B4B41adark:#7676761a - CSS
--pagination-link-background-hover- Token
pagination.link.background.hover- Decisions
-
background
activefrom default{global.bg.subtle.neutral.hover}Details
- Value
-
#B6B4B426dark:#7676764d - CSS
--pagination-link-background-active- Token
pagination.link.background.active- Decisions
-
background
currentfrom default{global.bg.accent.neutral.default}Details
- Resolves through
light-switch.base.900 rawneutral.light.ash.900 raw- Value
-
#201E1Fdark:#E8E3E4 - CSS
--pagination-link-background-current- Token
pagination.link.background.current- Decisions
-
background
disabledfrom default{color.transparent}Details
- Value
-
color(srgb 0 0 0 / 0) - CSS
--pagination-link-background-disabled- Token
pagination.link.background.disabled- Decisions
-
color
defaultfrom default{global.text.on-base.neutral.primary}Details
- Resolves through
light-switch.base.950 rawneutral.light.ash.950 raw- Value
-
#0E0D0Ddark:#D2CECF - CSS
--pagination-link-color-default- Token
pagination.link.color.default- Decisions
-
color
currentfrom default{global.text.on-accent.neutral.primary}Details
- Resolves through
light-switch.base.25 rawneutral.light.ash.25 raw- Value
-
#FDFDFDdark:#191919 - CSS
--pagination-link-color-current- Token
pagination.link.color.current- Decisions
-
color
disabledfrom default{global.text.state.disabled.default}Details
- Resolves through
light-switch.base.500 rawneutral.light.ash.500 raw- Value
-
#8C8C8Cdark:#9D9B9Cb2 - CSS
--pagination-link-color-disabled- Token
pagination.link.color.disabled- Decisions
-
typography
smallfrom defaultDetails
- Value
-
Inter [object Object]/1.2 500 [object Object] - CSS
--pagination-link-typography-small-font-family- Token
pagination.link.typography.small- Decisions
-
typography
mediumfrom defaultDetails
- Value
-
Inter [object Object]/1.2 500 [object Object] - CSS
--pagination-link-typography-medium-font-family- Token
pagination.link.typography.medium- Decisions
-
outline-width
focus-visiblefrom default{focus.ring.width}Details
- Resolves through
stroke-width.lg semantic- Value
-
2.4px - CSS
--pagination-link-outline-width-focus-visible- Token
pagination.link.outline-width.focus-visible
-
outline-offset
focus-visiblefrom default{focus.ring.offset}Details
- Resolves through
space.4 semantic- Value
-
4px - CSS
--pagination-link-outline-offset-focus-visible- Token
pagination.link.outline-offset.focus-visible
-
outline-color
focus-visiblefrom default{color.focus.ring}Details
- Resolves through
brand.light.600 raw- Value
-
#175DD6dark:#9EE7FA - CSS
--pagination-link-outline-color-focus-visible- Token
pagination.link.outline-color.focus-visible
-
transition.duration from default
{duration.fast}Details
- Value
-
150ms - CSS
--pagination-link-transition-duration- Token
pagination.link.transition.duration
-
transition.easing from default
{easing.standard}Details
- Value
-
cubic-bezier(0.2, 0, 0, 1) - CSS
--pagination-link-transition-easing- Token
pagination.link.transition.easing
Part icon
Not rendered in this configuration.
-
font-family from default
{font.icon.family}Details
- Value
-
"Material Symbols Outlined" - CSS
--pagination-icon-font-family- Token
pagination.icon.font-family
-
font-weight from default
{font.icon.weight.light}Details
- Value
-
300 - CSS
--pagination-icon-font-weight- Token
pagination.icon.font-weight
-
fill from default
{font.icon.fill.off}Details
- Value
-
0 - CSS
--pagination-icon-fill- Token
pagination.icon.fill
-
grade from default
{font.icon.grade.normal}Details
- Value
-
0 - CSS
--pagination-icon-grade- Token
pagination.icon.grade
-
optical-size from default
{font.icon.optical-size.20}Details
- Value
-
20 - CSS
--pagination-icon-optical-size- Token
pagination.icon.optical-size
-
size
smallfrom default{size.3}Details
- Value
-
20px - CSS
--pagination-icon-size-small- Token
pagination.icon.size.small- Decisions
-
size
mediumfrom default{size.4}Details
- Value
-
24px - CSS
--pagination-icon-size-medium- Token
pagination.icon.size.medium- Decisions
<nav class="ds-pagination" aria-label="Pagination" data-size="medium">
<ul class="ds-pagination__list" data-part="list">
<li class="ds-pagination__item" data-part="previous">
<a class="ds-pagination__link" data-part="link" href="#">
<span
class="ds-pagination__icon"
aria-hidden="true"
>chevron_left</span>
<span>Previous</span>
</a>
</li>
<li class="ds-pagination__item" data-part="item">
<a class="ds-pagination__link" data-part="link" href="#">1</a>
</li>
<li class="ds-pagination__item" data-part="item">
<a class="ds-pagination__link" data-part="link" href="#">2</a>
</li>
<li class="ds-pagination__item" data-part="item">
<span
class="ds-pagination__link"
data-part="link"
aria-current="page"
>3</span>
</li>
<li class="ds-pagination__item" data-part="item">
<a class="ds-pagination__link" data-part="link" href="#">4</a>
</li>
<li class="ds-pagination__item" data-part="item">
<a class="ds-pagination__link" data-part="link" href="#">5</a>
</li>
<li class="ds-pagination__item" data-part="next">
<a class="ds-pagination__link" data-part="link" href="#">
<span>Next</span>
<span
class="ds-pagination__icon"
aria-hidden="true"
>chevron_right</span>
</a>
</li>
</ul>
</nav>