- 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.subtle
,fill.solid
,fill.surface
<Box layerStyle="fill.subtle" colorPalette="red"> This is a subtle fill layer </Box>
Border Layer Styles:
outline.subtle
,outline.solid
<Box layerStyle="outline.subtle" colorPalette="red"> This is a subtle outline layer </Box>
Ghost:
ghost.subtle
,ghost.solid
<Box layerStyle="ghost.subtle" colorPalette="red"> This is a subtle ghost 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.subtle" _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