components / 24

marked pagination

place is information. the current page gets one clear human mark while every other control stays quiet and native.

shadcnnpx shadcn@latest add berkantay/cheez/marked-pagination
live

forty-eight pages, one position

page 8 / 48
showing marks 8596
size
ink
character
<MarkedPagination tone="orange" size="medium">
  <MarkedPaginationList>
    <MarkedPaginationPrevious href="?page=7" />
    {range.map((item) => /* link or ellipsis */)}
    <MarkedPaginationNext href="?page=9" />
  </MarkedPaginationList>
</MarkedPagination>
range

the gaps move, the anchors stay

deterministic and framework-free
compact

small screen, complete context

previous · status · next
archivefield notes240 entries
voice

same place, different hand

calm · rushed · chaotic
reference

api

composable native controls
proptypedefaultpurpose
pageCountnumberrequiredtotal pages passed to the range helper
currentPagenumberrequiredactive page passed to the range helper
siblingCountnumber1pages visible beside the current page
boundaryCountnumber1pages kept visible at each edge
size"small" | "medium" | "large""medium"control rhythm
toneMarkedPaginationTone"orange"built-in ink palette
colorstringtone colorcustom ink override
compactbooleanfalsevisually hides direction labels
spreadbooleanfalsepushes previous and next to the edges
thicknessnumber1non-scaling pen weight
Link.currentbooleanfalsesets aria-current and draws the active mark
Link.disabledbooleanfalsesets aria-disabled and removes tab focus
Link.activeMarkCheezType"circle"current-page drawing
Link.hoverMarkCheezType"underline"interaction drawing
Link.characterCheezCharacter"rushed"drawing personality
Status.livebooleanfalseannounces client-side page changes

behavior notes

  • use links for route navigation and buttons when the dataset changes in place
  • the current control sets aria-current="page"; it does not disable navigation
  • previous and next use rel="prev" and rel="next" automatically
  • disabled links leave the tab order and expose aria-disabled
  • ellipsis carries readable context for assistive technology
  • the range helper clamps invalid values and never emits duplicate pages
  • only Cheez ink animates; pagination layout never moves