Park UI Documentation
repository·main·Indexed 25 days ago
https://github.com/chakra-ui/park-uiA collection of styled components built on Ark UI for headless logic and Panda CSS for styling. Park UI is framework-agnostic, supporting JavaScript frameworks such as React, Solid, and Vue. It includes a CLI for initialization and component management, and a comprehensive set of components including Accordion, Avatar, Button, Carousel, Checkbox, and Clipboard.
What's inside Park UI
Configure Tags Input sizes and variants
mainYou can adjust the visual appearance of theTagsInputusing thesizeandvariantprops.The relationship between Park UI and Ark UI
mainPark UI components are built on top of Ark UI, a headless component library. While Ark UI provides the logic and accessibility (headless functionality), Park UI provides the styling and component implementation. This architecture ensures that components are highly composable and maintain a predictable interface across different JavaScript frameworks.How Pagination.Items works internally
mainThe
Pagination.Itemsshortcut is a convenience wrapper. Rendering<Pagination.Items />is functionally equivalent to using thePagination.Contextto map over thepagesarray and conditionally rendering either aPagination.Itemor aPagination.Ellipsisbased on the page type.<Pagination.Context> {({ pages }) => pages.map((page, index) => page.type === "page" ? ( <Pagination.Item key={index} {...page} /> ) : ( <Pagination.Ellipsis key={index} index={index} /> ), ) } </Pagination.Context>Choose color pairings for your theme
mainPark UI themes are built around the combination of one accent color and one gray color. You can choose between two pairing strategies:
- Neutral Pairings: Using a
neutralgray scale. This works well with any accent hue and provides a simple, clean vibe. - Natural Pairings: Choosing a gray scale that is saturated with the hue closest to your accent hue. This creates a more colorful and harmonious visual vibe.
- Neutral Pairings: Using a
Use NumberInput.Control shorthand
mainThe
NumberInput.Controlcomponent can be used as a shorthand. Writing<NumberInput.Control />automatically renders theIncrementTriggerandDecrementTriggerinside it, unless you choose to provide custom triggers manually.// Shorthand for: <NumberInput.Control> <NumberInput.IncrementTrigger /> <NumberInput.DecrementTrigger /> </NumberInput.Control>Manage Combobox items and filtering
mainWhen setting up a Combobox, you may need to use specific hooks to manage the data lifecycle:
useListCollection: Used to manage the list of items in the combobox, providing methods for filtering and mutating the list.useFilter: Used to provide the filtering logic for the combobox based onIntl.CollatorAPIs.
Configure Segment Group layout and orientation
mainYou can customize the visual layout of the
SegmentGroupusing the following props:size: Controls the size of the segmented group.fitted: When enabled, makes the items fit the full width of the container.orientation: Controls the direction of the group. Set toverticalto change from the default horizontal layout to a vertical one.
Configure Input Group sizes and variants
mainThe
InputGroupcomponent supports customization through the following props:size: Controls the size of the input group (e.g., to match the scale of the input field).variant: TheInputGroupautomatically adapts its styling to match thevariantof theInputcomponent placed inside it.
Accessibility considerations for Hover Card
mainThe
HoverCardis intended solely for supplementary information that is not essential for understanding the context.Important: The component is inaccessible to screen readers and cannot be activated via keyboard. Do not place crucial or essential content inside a
HoverCard.Use Park UI shadow tokens
mainPark UI provides elevation levels ranging fromxsto2xl. Unlike default Panda shadows, these tokens are designed to adapt seamlessly between light and dark modes.Use standardized Park UI variants
mainTo ensure visual harmony, Park UI defines five standardized variants that are shared across components. You can use these to maintain a consistent look and feel when combining different elements:
solid: High-contrast background with inverted foreground. Best for primary CTAs and main actions.subtle: Tinted background with matching foreground. Best for badges, tags, and secondary highlights.surface: Background with a visible border and hover states. Best for cards, menu items, and elevated containers.outline: Border-only with a transparent background. Best for secondary actions, cancel buttons, and filters.plain: Minimal style with background appearing only on interaction. Best for text buttons, links, and tabs.