c2f45ca
Thanks @segunadebayo! - RenameFieldset.Control
toFieldset.Content
- #8905
807a581
Thanks @stevensecreti! - Added transform function to backgroundClip to appropriately handle 'text' value
47b3b5a
Thanks @segunadebayo! - Support array in conditions object. This matches the API in Panda CSS and allow users to define complex selectors like media hover queries.
-
5093e18
Thanks @segunadebayo! - Add cursor pointer to button -
945a777
Thanks @segunadebayo! - BREAKING: Integrate Ark v4. This mostly affects the custom select component that requires the use ofcreateListCollection
now. -
c26acf0
Thanks @segunadebayo! - Add support for cursor token type
-
#8857
fdc2b9b
Thanks @stevensecreti! - update mapObject util to not call fn provided on nullish values -
#8854
388716d
Thanks @codebutler! - Fix issue where target was not passed to link overlay
6d4cbbe
Thanks @segunadebayo! - Fix ES module interop for @emotion/is-prop-value that makes Jest throw error.
788f493
Thanks @segunadebayo! - Fix issue where media query css order is inconsistent with v2
- #8815
806be96
Thanks @isBatak! - Remove the@chakra-ui/hooks
package in favour of using dedicated, robust libraries likereact-use
andusehooks-ts
edec8f7
Thanks @segunadebayo! - Add clipboard composition
- Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.23
- @chakra-ui/utils@3.0.0-next.23
55c0839
Thanks @segunadebayo! - Move theProse
component to snippets so it can be customized by the user.
-
be98566
Thanks @segunadebayo! - Fix checkbox and toast on mobile -
Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.22
- @chakra-ui/utils@3.0.0-next.22
192c6b1
Thanks @segunadebayo! - Add new fieldset component
-
#8795
4408573
Thanks @TylerAPfledderer! - Adds style prop names toLayerStyleProperty
union type -
#8792
4dd77ec
Thanks @TylerAPfledderer! - Updates the exposed list of slot anatomy to ensure all anatomy is included for use in type-checking extend recipe configs. -
Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.21
- @chakra-ui/utils@3.0.0-next.21
- Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.20
- @chakra-ui/utils@3.0.0-next.20
-
4c6838c
Thanks @segunadebayo! - - RenameonLabel
andoffLabel
totrackLabel
- Add support for
thumbLabel
prop for rendering an icon within thumb
- Add support for
-
f4762bf
Thanks @segunadebayo! - Add support for merging multiple system configs into one withincreateSystem
Before:
const config = mergeConfigs(defaultConfig, customConfig) export const system = createSystem(config)
After:
const system = createSystem(defaultConfig, customConfig)
- Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.19
- @chakra-ui/utils@3.0.0-next.19
- Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.18
- @chakra-ui/utils@3.0.0-next.18
-
e9a1537
Thanks @segunadebayo! - BREAKING: Change signature ofuseRecipe
,useSlotRecipe
,createSlotRecipeContext
Before:
const { withProvider, withContext } = createSlotRecipeContext("accordion")
After:
const { withProvider, withContext } = createSlotRecipeContext({ key: "accordion", })
Before:
const recipe = useSlotRecipe("accordion")
After:
const recipe = useSlotRecipe({ key: "accordion" })
-
8b110da
Thanks @segunadebayo! - Support inlining recipe increateRecipeContext
andcreateSlotRecipeContext
for better DX when shipping libraries based on Chakra.This reduces the need for using the Chakra CLI to generate types for custom components.
- Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.17
- @chakra-ui/utils@3.0.0-next.17
-
#8740
d5a225f
Thanks @Pagebakers! - Use correct extension for ESM exports -
#8739
651561b
Thanks @Pagebakers! - Added /anatomy to exports -
Updated dependencies [
d5a225f
]:- @chakra-ui/hooks@3.0.0-next.16
- @chakra-ui/utils@3.0.0-next.16
e119ae9
Thanks @segunadebayo! - RenamemotionStyle
toanimationStyle
for better intuitiveness
-
87cf70c
Thanks @segunadebayo! - Revert text recipe to prevent color regressions -
Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.15
- @chakra-ui/utils@3.0.0-next.15
-
3908155
Thanks @segunadebayo! - RenamecreateStyleContext
tocreateSlotRecipeContext
-
952647a
Thanks @segunadebayo! - AddCardTitle
andCardDescription
components -
b6d1d0d
Thanks @segunadebayo! - Simplify spinner component to use less custom props.- Removed
emptyColor
, prefer to use--spinner-track-color
- Removed
speed
, prefer to useanimationDuration
- Removed
thickness
, prefer to useborderWidth
- Removed
- Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.14
- @chakra-ui/utils@3.0.0-next.14
3fc49ca
Thanks @segunadebayo! - Add support forFormatNumber
andFormatByte
components
bffb68f
Thanks @segunadebayo! - - Pagination: Fix issue page props were not forwarded correctly.- PinInput: Fix issue mask props were not forwarded correctly.
- Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.13
- @chakra-ui/utils@3.0.0-next.13
-
0ae054d
Thanks @segunadebayo! - Fix issue wherehideFrom
andhideBelow
doesn't show any autocompletions -
Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.12
- @chakra-ui/utils@3.0.0-next.12
-
e77a9b8
Thanks @segunadebayo! - - Add new Timeline component to presenting chronological information or activities.- Trim generated
className
in the DOM. - Add
neutral
status toAlert
component
- Trim generated
- Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.11
- @chakra-ui/utils@3.0.0-next.11
- Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.10
- @chakra-ui/utils@3.0.0-next.10
-
3ccbbdf
Thanks @segunadebayo! - ### Motion StylesAdd support for
motionStyle
props.The idea is to pair them with text styles and layer styles to create this three-part mixin that can make your styles a lot cleaner.
Motion styles focus solely on animations, allowing you to orchestrate animation properties.
import { defineMotionStyles } from "@chakra-ui/react" export const motionStyles = defineMotionStyles({ "slide-fade-in": { value: { transformOrigin: "var(--transform-origin)", animationDuration: "fast", "&[data-placement^=top]": { animationName: "slide-from-top, fade-in", }, "&[data-placement^=bottom]": { animationName: "slide-from-bottom, fade-in", }, "&[data-placement^=left]": { animationName: "slide-from-left, fade-in", }, "&[data-placement^=right]": { animationName: "slide-from-right, fade-in", }, }, }, })
Chakra new provides built-in keyframe animations that you can use to create your own motion styles.
Slide:
slide-from-top
,slide-from-bottom
,slide-from-left
,slide-from-right
,slide-to-top
,slide-to-bottom
,slide-to-left
,slide-to-right
Slide Full:
slide-from-top-full
,slide-from-bottom-full
,slide-from-left-full
,slide-from-right-full
,slide-to-top-full
,slide-to-bottom-full
,slide-to-left-full
,slide-to-right-full
Fade:
fade-in
,fade-out
Scale:
scale-in
,scale-out
You can compose these animations using the
animationName
property in your motion styles to create really cool animations. No JS required.<Box animationName="slide-from-top, fade-in" animationDuration="fast"> Slide from top and fade in </Box>
-
3ccbbdf
Thanks @segunadebayo! - Add support for built-in layer styles to help prototype faster with automatic dark mode. Paired withcolorPalette
, you can create beautiful designs with little code that adapts to dark mode automatically.Fill Layer Styles:
fill.muted
,fill.solid
,fill.surface
<Box layerStyle="fill.muted" colorPalette="red"> This is a subtle fill layer </Box>
Border Layer Styles:
outline.muted
,outline.solid
<Box layerStyle="outline.muted" colorPalette="red"> This is a subtle outline layer </Box>
Indicator Styles:
indicator.top
,indicator.end
,indicator.bottom
,indicator.start
<Box layerStyle="indicator.top" colorPalette="red"> This is a top indicator layer </Box>
Disabled Styles:
disabled
<Box _disabled={{ layerStyle: "disabled" }}>Disabled Button</Box>
You can combine these layer styles to create very complex designs with little code.
<Box layerStyle="fill.muted" _hover={{ layerStyle: "outline.solid" }} colorPalette="red" > This is a complex layer </Box>
-
c654ee3
Thanks @segunadebayo! - Improve performance of styled components to avoid unneeded re-renders. -
3ccbbdf
Thanks @segunadebayo! - RedesignStepper
component. It's now calledSteps
and manages the state internally, no need to useuseSteps
anymore.We've also improved the accessibility of the component by leveraging the tabs pattern and adding the required ARIA attributes.
<Steps.Root defaultIndex={0} count={2}> <Steps.List> <Steps.Item index={0}> <Steps.Trigger> <Steps.Title>Step 1</Steps.Title> </Steps.Trigger> <Steps.Separator /> </Steps.Item> <Steps.Item index={1}> <Steps.Trigger> <Steps.Title>Step 2</Steps.Title> </Steps.Trigger> <Steps.Separator /> </Steps.Item> </Steps.List> <Steps.Content index={0}>Step 1</Steps.Content> <Steps.Content index={1}>Step 2</Steps.Content> <Steps.CompleteContent>Complete</Steps.CompleteContent> </Steps.Root>
Using the CLI, you can also scaffold an already composed stepper component
chakra composition add steps
-
3ccbbdf
Thanks @segunadebayo! - Add support forfocusRing
andfocusRingColor
style props that allow to quickly style focus visible state of form controls.The focus ring values can be either
extend
orcontain
<Box asChild focusRing="extend" focusRingColor="pink.500"> <input type="text" /> </Box>
-
0a03bcc
Thanks @segunadebayo! - - Fix circular progress element types- Ensure consistent exports in components
-
#8617
7e9fbf0
Thanks @isBatak! - Refactor text-styles to use tokens instead of raw values. -
#8601
1867d66
Thanks @isBatak! - Fixblur
property token conversion to CSS variable. -
Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.9
- @chakra-ui/utils@3.0.0-next.9
-
32a454d
Thanks @segunadebayo! - Add missinguse client
directives to several components -
Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.8
- @chakra-ui/utils@3.0.0-next.8
4ff153f
Thanks @segunadebayo! - Speed up intellisence for style props, and add support forstrictTokens
in the CLI.
- Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.7
- @chakra-ui/utils@3.0.0-next.7
925cfd9
Thanks @segunadebayo! - Add ActionBar, Status, Rating, Pagination components
- Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.6
- @chakra-ui/utils@3.0.0-next.6
-
07b04b1
Thanks @segunadebayo! - - [NEW]: AddRatingGroup
,SegmentControl
- [NEW]: Add
EmptyState
component for empty states - [NEW]: Add
RadioCard
andCheckboxCard
components for card-based selection
- [NEW]: Add
-
#8568
5fd993b
Thanks @isBatak! - Add Collapsible recipe with default open/close animation -
43f2c7d
Thanks @segunadebayo! - - CheckboxCard [New]Add support for a new
CheckboxCard
component that can be used to render a card with a checkbox.<CheckboxCard.Root> <CheckboxCard.Control> <Stack gap="0" flex="1"> <CheckboxCard.Label>Checkbox</CheckboxCard.Label> <Text>Some description</Text> </Stack> <CheckboxCard.HiddenInput /> <CheckboxCard.Indicator /> </CheckboxCard.Control> </CheckboxCard.Root>
-
Checkmark [New]
Add new checkmark component for rendering a static checkmark icon with the
checked
,disabled
, andindeterminate
state baked in.
<Stack> <Checkmark /> <Checkmark checked /> <Checkmark indeterminate /> <Checkmark disabled /> <Checkmark checked disabled /> <Checkmark indeterminate disabled /> </Stack>
-
EmptyState [New]
Add new
EmptyState
component for rendering an empty state message with a title, description, and optional action button.
<EmptyState.Root> <EmptyState.Content> <EmptyState.Indicator> <HiTemplate /> </EmptyState.Indicator> <VStack textAlign="center"> <Text fontWeight="medium">No template found</Text> <Text fontSize="sm" color="fg.muted"> Try creating a new template with the button below </Text> </VStack> <Button variant="outline"> <HiPlus /> Create Template </Button> </EmptyState.Content> </EmptyState.Root>
-
-
#8575
d4522d9
Thanks @isBatak! - Align theme recipe name with panda -
#8569
eb26857
Thanks @isBatak! - Fix theboxSize
type to allow number values.
- Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.5
- @chakra-ui/utils@3.0.0-next.5
e4f2df0
Thanks @segunadebayo! - AddProse
component to help style markdown content.
-
#8475
9224f4e
Thanks @ryo-manba! - Add aria-current attribute to stepper -
Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.4
- @chakra-ui/utils@3.0.0-next.4
-
de9c0a0
Thanks @segunadebayo! - AddDataList
component -
763329e
Thanks @segunadebayo! - Add preset and preset-base entrypoints.- The
preset
entrypoint exposes the default theme and recipes for Chakra. - The
preset-base
entrypoint exposes the base utilities and conditions used internally.
- The
- Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.3
- @chakra-ui/utils@3.0.0-next.3
83366c4
Thanks @segunadebayo! - - Fix regression inmergeConfigs
- Decompose
Field
component - Refactor
Avatar
to use Ark UI - Refactor
Progress
to use Ark UI
- Decompose
- Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.2
- @chakra-ui/utils@3.0.0-next.2
548470d
Thanks @segunadebayo! - Add custom select from Ark UI and design recipe
-
c941971
Thanks @segunadebayo! - Convert Tabs component to use Ark UI -
Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.1
- @chakra-ui/utils@3.0.0-next.1
-
#8153
7b6e66a
Thanks @segunadebayo! - Prepares the ground for the next version Chakra that leverages Ark UI.User Facing
- Consolidate all component packages into a single package
- Remove all deprecated components and APIs
- Simplify the Changelogs for all v2 releases
Infrastructure
- Simplify the repo infrastructure and release process
- Migrate from
jest
tovitest
- Migrate from
tsup
to customrollup
setup for better bundling strategy
-
#8121
170198f
Thanks @kkieninger! - ### Fixed- Fix hard-coded z-index for Menu in favor of one defined from the theme
- Fix problem with leading and trailing spaces when getting initials for the Avatar component
- Suppress unnecessary re-renders of Checkbox and Radio component
- Add CSS
accentColor
property to style props - Add support for
asChild
in chakra factory - Export
toastStore
fromtoast
component - Upgrade
framer-motion
to allow for skipAnimations - Add component namespace to reduce imports and provide better composition
- Modal, Drawer: Add default
preserveScrollBarGap
Redesign the component themes and anatomy
-
#8393
623e558
Thanks @segunadebayo! - - Integrate Ark UI components to reduce maintenance surface.- Add
FileUpload
component - Remove
trigger=hover
in favor ofHoverCard
- Replace
Tooltip
,Popover
andHoverCard
with those from Ark UI
- Add
-
#8218
a89c598
Thanks @segunadebayo! - Add support for custom theme conditions or pseudo props viatheme.conditions
// theme.ts const theme = extendTheme({ conditions: { _closed: "[data-state='closed']", // pseudo prop }, })
This allows you to use the pseudo prop in your components
<Box data-state="closed" _closed={{ bg: "red.200" }}> This box is closed </Box>
For TypeScript users, you need to use the Chakra CLI to generate the types for your custom conditions.
pnpm chakra-cli tokens src/theme/index.ts
-
#8218
a89c598
Thanks @segunadebayo! - Add support for_open
and_closed
pseudo props for styling their respective selectors._open
:&[data-state=open], &[open]
_closed
:&[data-state=closed]
_groupOpen
:[data-group][data-state=open] &
_groupClosed
:[data-group][data-state=closed] &
Extend the existing pseudo props to support new selectors`
_placeholder
now supports&[data-placeholder]
_placeholderShow
now supports&[data-placeholder-shown]
_fullscreen
now supports&[data-fullscreen]
_empty
now supports&[data-empty]
_expanded
now supports&[data-state=expanded]
_checked
now supports&[data-state-checked]
- Updated dependencies []:
- @chakra-ui/hooks@3.0.0-next.0
- @chakra-ui/utils@3.0.0-next.0