Skip to content

feat: add Splitter component#10425

Merged
segunadebayo merged 38 commits intochakra-ui:mainfrom
Adebesin-Cell:feat/splitter
Nov 19, 2025
Merged

feat: add Splitter component#10425
segunadebayo merged 38 commits intochakra-ui:mainfrom
Adebesin-Cell:feat/splitter

Conversation

@Adebesin-Cell
Copy link
Copy Markdown
Contributor

📝 Description

This PR adds a new splitter package and its corresponding slot recipe definitions to the Chakra system.
The splitter provides a flexible layout primitive that enables resizable panels with both horizontal and vertical orientations, built on top of the Ark UI splitter logic and fully integrated with Chakra’s styled-system.

⛳️ Current behavior (updates)

Previously, Chakra did not include a dedicated Splitter component for creating adjustable panel layouts.
Developers had to rely on custom CSS or third-party solutions to achieve resizable panel behavior.

🚀 New behavior

  • Introduced a new @chakra-ui/react Splitter component built around the Ark UI splitter primitives.

  • Added support for:

    • Horizontal and vertical orientations
    • Configurable panels with minSize, maxSize, and controlled size props
    • Resizable triggers with visible grip indicators for better usability and accessibility
  • Added a splitterSlotRecipe in the styled-system for consistent theming integration with Chakra components.

💣 Is this a breaking change?

No.
This is an additive feature — it introduces new components and recipe definitions without affecting existing APIs.

📝 Additional Information

  • Includes examples for controlled and programmatic splitter usage.

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Nov 1, 2025

🦋 Changeset detected

Latest commit: 56869b2

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 4 packages
Name Type
@chakra-ui/react Minor
@chakra-ui/charts Minor
@chakra-ui/cli Minor
@chakra-ui/panda-preset Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel
Copy link
Copy Markdown

vercel Bot commented Nov 1, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Updated (UTC)
chakra-ui-storybook Ready Ready Preview Nov 19, 2025 9:56am
chakra-v3-docs Ready Ready Preview Nov 19, 2025 9:56am

@segunadebayo segunadebayo merged commit 0168a04 into chakra-ui:main Nov 19, 2025
7 checks passed
@github-actions github-actions Bot mentioned this pull request Nov 19, 2025
isBatak pushed a commit to isBatak/chakra-ui that referenced this pull request Mar 5, 2026
* feat: add splitter slot recipe for resizable panels and triggers

* fix: refactor Splitter examples for panels and orientation

* feat: add new Splitter components

* feat: add SplitterExplorer component

* feat: add new composition 'splitter' with Splitter component

* style: remove unnecessary colorScheme property from Buttons

* docs: update component documentation for multiple panels

* feat: add collapsible panels to Splitter component

* fix: remove explicit type declaration in useState

* refactor: remove unused code for splitter variants

* fix: remove unnecessary comment use client from files

* feat: add SplitterWithKeyboardResize example

* fix: add padding to Splitter.Panel components

* docs: update keyboard resize example tab name in splitter component

* fix: clean up splitter examples

* style: adjust gap and alignment in splitterSlotRecipe

* feat: add SplitterNested component

* style: remove unnecessary height and width properties in splitter

* feat: add SplitterDisabled example and theme recipe

* feat: add SplitterWithStorage component

* refactor: remove unnecessary generic type in useLocalStorage

* refactor: rename component SplitterWithKeyboardResize

* docs: add keyboard resizing instructions for Splitter

* style: update minH value to 80 in splitter examples

* feat: add SplitterConditional component

* feat: add minH prop to Splitter components

* docs: remove SplitterComposition example

* refactor: recipe and examples

* style: update example tabs names in splitter.mdx

* fix: correct typo in SplitterMultiplePanels function name

* docs: update

* chore: more examples

* docs: add changeset

---------

Co-authored-by: Segun Adebayo <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants