
Coral is a thoroughly developed design system widely adopted by developers and designers for creating beautiful and user-friendly Sea internal products.
Copyright Β© 2018-2025 Sea Labs
Prop name | Type | Default | Description |
---|---|---|---|
alignment | PaginationAlignments | center | Controls how the pagination items (like pages or page text) are aligned in the main container.
|
as | any | Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended. | |
children | ReactNode | React children that can be used to override or extend the default pagination items. For example, you can pass <PaginationList /> or <PaginationPageText /> here. | |
current | number | The controlled current page number (1-based). If used, initialCurrent is ignored and the component becomes controlled. | |
initialCurrent | number | 1 | The initial (uncontrolled) current page number. Defaults to 1. |
initialNavSpan | number | 7 | |
initialPageSize | number | 20 | |
leftContainerProps | DivProps | ||
leftElement | ReactNode | Defaults to showing total pages and selected items for non-minimal variants. | |
navSpan | number | The controlled number of pagination elements to show (e.g., 7 shows a maximum of 7 page buttons). Must be an odd number greater than 3 for best display. | |
numSelected | number | (Optional) Number of selected items (out of totalRow). Used by default to display information like "x selected". | |
onChange | (page: number) => void | A callback that fires when the current page changes (e.g., user navigates to a new page). Receives the new page number as its argument. | |
onNavSpanChange | (navSpan: number) => void | ||
onPageSizeChange | (pageSize: number) => void | ||
pageSize | number | The controlled page size (number of items per page). If used, initialPageSize is ignored and the component becomes controlled. | |
rightContainerProps | DivProps | ||
rightElement | ReactNode | Defaults to showing page navigation for non-minimal variants. | |
sizes | number[] | [10, 20, 30, 40] | Selectable page sizes. |
totalRow | number | The total number of rows (items) across all pages. This is used to calculate the number of pages. | |
variant | PaginationVariants | outlined | The variant of pagination style to use.
|
Prop name | Type | Default | Description |
---|---|---|---|
as | any | Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended. | |
disabled | boolean | Equivalent to button's disabled property. | |
keyboardClickKeys | string[] | ||
onBlur | FocusEventHandler<HTMLDivElement> | ||
onClick | MouseEventHandler<HTMLDivElement> | ||
onKeyDown | KeyboardEventHandler<HTMLDivElement> | ||
onKeyUp | KeyboardEventHandler<HTMLDivElement> | ||
onMouseDown | MouseEventHandler<HTMLDivElement> | ||
onMouseLeave | MouseEventHandler<HTMLDivElement> | ||
onMouseUp | MouseEventHandler<HTMLDivElement> | ||
onRelease | EventHandler<SyntheticEvent<HTMLDivElement, Event>> | Callback that's triggered after click i.e. mouseup and keyup of enter or space. | |
onTouchEnd | TouchEventHandler<HTMLDivElement> | ||
onTouchStart | TouchEventHandler<HTMLDivElement> | ||
type | ArrowTypes |
Prop name | Type | Default | Description |
---|---|---|---|
as | any | Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended. | |
disabled | boolean | Equivalent to button's disabled property. | |
keyboardClickKeys | string[] | ||
onBlur | FocusEventHandler<HTMLDivElement> | ||
onClick | MouseEventHandler<HTMLDivElement> | ||
onKeyDown | KeyboardEventHandler<HTMLDivElement> | ||
onKeyUp | KeyboardEventHandler<HTMLDivElement> | ||
onMouseDown | MouseEventHandler<HTMLDivElement> | ||
onMouseLeave | MouseEventHandler<HTMLDivElement> | ||
onMouseUp | MouseEventHandler<HTMLDivElement> | ||
onRelease | EventHandler<SyntheticEvent<HTMLDivElement, Event>> | Callback that's triggered after click i.e. mouseup and keyup of enter or space. | |
onTouchEnd | TouchEventHandler<HTMLDivElement> | ||
onTouchStart | TouchEventHandler<HTMLDivElement> | ||
page | number |
Prop name | Type | Default | Description |
---|---|---|---|
as | any | Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended. | |
disabled | boolean | Equivalent to button's disabled property. | |
keyboardClickKeys | string[] | ||
onBlur | FocusEventHandler<HTMLDivElement> | ||
onClick | MouseEventHandler<HTMLDivElement> | ||
onKeyDown | KeyboardEventHandler<HTMLDivElement> | ||
onKeyUp | KeyboardEventHandler<HTMLDivElement> | ||
onMouseDown | MouseEventHandler<HTMLDivElement> | ||
onMouseLeave | MouseEventHandler<HTMLDivElement> | ||
onMouseUp | MouseEventHandler<HTMLDivElement> | ||
onRelease | EventHandler<SyntheticEvent<HTMLDivElement, Event>> | Callback that's triggered after click i.e. mouseup and keyup of enter or space. | |
onTouchEnd | TouchEventHandler<HTMLDivElement> | ||
onTouchStart | TouchEventHandler<HTMLDivElement> | ||
type | JumperTypes |
Prop name | Type | Default | Description |
---|---|---|---|
as | any | Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended. | |
itemSize | number | ||
renderArrow | (type: ArrowTypes) => ReactElement<any, string | JSXElementConstructor<any>> | (type: ArrowTypes) => <PaginationArrow type={type} /> | |
renderItem | (page: number) => ReactElement<any, string | JSXElementConstructor<any>> | (item: number) => <PaginationItem page={item} /> | |
renderJumper | (type: JumperTypes) => ReactElement<any, string | JSXElementConstructor<any>> | (type: JumperTypes) => <PaginationJumper type={type} /> | |
variant | "text" | "outlined" |
Prop name | Type | Default | Description |
---|---|---|---|
id | string | ||
initialIsOpen | boolean | ||
initialKeyboardHighlightedIndex | number | ||
initialMouseHighlightedIndex | number | ||
initialSearchValue | string | ||
initialSelectedIndex | number | ||
initialValue | SelectValue | ||
inputProps | SelectSearchProps | ||
isOpen | boolean | ||
keyboardHighlightedIndex | number | ||
listOptionProps | SelectOptionProps | ||
listProps | SelectListProps | ||
mouseHighlightedIndex | number | ||
onChange | ChangeCallback | Called when selected value is changed. Different from onSelect, onChange is not called when the value is already selected. | |
onIsOpenChange | (isOpen: boolean) => void | ||
onKeyboardHighlightedIndexChange | (index: number) => void | ||
onMouseHighlightedIndexChange | (index: number) => void | ||
onSearch | SearchCallback | ||
onSelect | ChangeCallback | Different from onChange: onSelect is triggered even if the option's value is the selected one. | |
onSelectedIndexChange | (index: number) => void | ||
prefix | ReactNode | Go to | |
searchValue | string | This is not the selected value. Rather, it's a search value on input if you use SelectSearch. | |
selectedIndex | number | ||
stateReducer | AcdcStateReducer | ||
value | SelectValue |
Prop name | Type | Default | Description |
---|---|---|---|
as | any | Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended. | |
itemSize | number | ||
renderArrow | (type: ArrowTypes) => ReactElement<any, string | JSXElementConstructor<any>> | (type: ArrowTypes) => <PaginationArrow type={type} /> | |
renderPageText | (type: string) => ReactElement<any, string | JSXElementConstructor<any>> | (current: string) => <PageText>{current}</PageText> | |
variant | "minimal" |
Prop name | Type | Default | Description |
---|---|---|---|
as | any | Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended. | |
numSelected | number | ||
prefix | ReactNode | Selected: |
Prop name | Type | Default | Description |
---|---|---|---|
buttonProps | SelectButtonProps | ||
id | string | ||
initialIsOpen | boolean | ||
initialKeyboardHighlightedIndex | number | ||
initialMouseHighlightedIndex | number | ||
initialSearchValue | string | ||
initialSelectedIndex | number | ||
initialValue | SelectValue | ||
isOpen | boolean | ||
keyboardHighlightedIndex | number | ||
listProps | SelectListProps | ||
mouseHighlightedIndex | number | ||
onChange | ChangeCallback | Called when selected value is changed. Different from onSelect, onChange is not called when the value is already selected. | |
onIsOpenChange | (isOpen: boolean) => void | ||
onKeyboardHighlightedIndexChange | (index: number) => void | ||
onMouseHighlightedIndexChange | (index: number) => void | ||
onSearch | SearchCallback | ||
onSelect | ChangeCallback | Different from onChange: onSelect is triggered even if the option's value is the selected one. | |
onSelectedIndexChange | (index: number) => void | ||
searchValue | string | This is not the selected value. Rather, it's a search value on input if you use SelectSearch. | |
selectedIndex | number | ||
sizes | number[] | ||
stateReducer | AcdcStateReducer | ||
suffix | ReactNode | / page | |
value | SelectValue | ||
wrapperProps | HTMLAttributes<HTMLDivElement> & { as?: any; ref?: HTMLDivElement; } |
Prop name | Type | Default | Description |
---|---|---|---|
as | any | Tag or component, but a simple tag (i.e. built-in components, e.g. div, span) is recommended. | |
prefix | ReactNode | Total: |
Copyright Β© 2018-2025 Sea Labs