Interactivity
JSX style props to enhance interactivity on an element
Accent Color
Use the accentColor prop to set the accent color for browser generated
user-interface controls.
// hardcoded
<label>
<chakra.input type="checkbox" accentColor="#3b82f6" />
</label>
// token value
<label>
<chakra.input type="checkbox" accentColor="blue.500" />
</label>| Prop | CSS Property | Token Category |
|---|---|---|
accentColor | accent-color | colors |
Appearance
Use the appearance prop to set the appearance of an element.
<chakra.select appearance="none">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</chakra.select>| Prop | CSS Property | Token Category |
|---|---|---|
appearance | appearance | - |
Caret Color
Use the caretColor prop to set the color of the text cursor (caret) in an
input or textarea
// hardcoded
<chakra.input caretColor="#3b82f6" />
// token value
<chakra.input caretColor="blue.500" />| Prop | CSS Property | Token Category |
|---|---|---|
caretColor | caret-color | colors |
Cursor
Use the cursor prop to set the mouse cursor image to show when the mouse
pointer is over an element.
<Box cursor="pointer" />| Prop | CSS Property | Token Category |
|---|---|---|
cursor | cursor | - |
Pointer Events
Use the pointerEvents prop to control how pointer events are handled on an
element.
<Box pointerEvents="none">Can't click me</Box>| Prop | CSS Property | Token Category |
|---|---|---|
pointerEvents | pointer-events | - |
Resize
Use the resize prop to control whether an element is resizable, and if so, in
which directions.
<chakra.textarea resize="both" />
<chakra.textarea resize="horizontal" />
<chakra.textarea resize="vertical" />| Prop | CSS Property | Token Category |
|---|---|---|
resize | resize | - |
Scrollbar
Use the scrollbar prop to customize the appearance of scrollbars.
<Box scrollbar="hidden" maxH="100px" overflowY="auto">
Scrollbar hidden
</Box>Scroll Behavior
Use the scrollBehavior prop to set the behavior for a scrolling box when
scrolling is triggered by the navigation or JavaScript code.
<Box maxH="100px" overflowY="auto" scrollBehavior="smooth">
<div>Scroll me</div>
</Box>| Prop | CSS Property | Token Category |
|---|---|---|
scrollBehavior | scroll-behavior | - |
Scroll Margin
Use the scrollMargin* prop to set margins around scroll containers.
<Box maxH="100px" overflowY="auto" scrollMarginY="2">
Scrollbar Container with block padding
</Box>| Prop | CSS Property | Token Category |
|---|---|---|
scrollMarginX ,scrollMarginInline | scroll-margin-inline | spacing |
scrollMarginInlineStart | scroll-margin-inline-start | spacing |
scrollMarginInlineEnd | scroll-margin-inline-end | spacing |
scrollMarginY , scrollMarginBlock | scroll-margin-block | spacing |
scrollMarginBlockStart | scroll-margin-block-start | spacing |
scrollMarginBlockEnd | scroll-margin-block-end | spacing |
scrollMarginLeft | scroll-margin-left | spacing |
scrollMarginRight | scroll-margin-right | spacing |
scrollMarginTop | scroll-margin-top | spacing |
scrollMarginBottom | scroll-margin-bottom | spacing |
Scroll Padding
Use the scrollPadding* prop to set padding inside scroll containers.
<Box maxH="100px" overflowY="auto" scrollPaddingY="2">
Scrollbar Container with block padding
</Box>| Prop | CSS Property | Token Category |
|---|---|---|
scrollPaddingX , scrollPaddingInline | scroll-padding-inline | spacing |
scrollPaddingInlineStart | scroll-padding-inline-start | spacing |
scrollPaddingInlineEnd | scroll-padding-inline-end | spacing |
scrollPaddingY , scrollPaddingBlock | scroll-padding-block | spacing |
scrollPaddingBlockStart | scroll-padding-block-start | spacing |
scrollPaddingBlockEnd | scroll-padding-block-end | spacing |
scrollPaddingLeft | scroll-padding-left | spacing |
scrollPaddingRight | scroll-padding-right | spacing |
scrollPaddingTop | scroll-padding-top | spacing |
scrollPaddingBottom | scroll-padding-bottom | spacing |
Scroll Snap Margin
Use the scrollSnapMargin* prop to set margins around scroll containers.
<Box maxH="100px" overflowY="auto" scrollSnapMarginY="2">
Scrollbar Container with block padding
</Box>| Prop | CSS Property | Token Category |
|---|---|---|
scrollSnapMargin | scroll-margin | spacing |
scrollSnapMarginTop | scroll-margin-top | spacing |
scrollSnapMarginBottom | scroll-margin-bottom | spacing |
scrollSnapMarginLeft | scroll-margin-left | spacing |
scrollSnapMarginRight | scroll-margin-right | spacing |
Scroll Snap Type
Use the scrollSnapType prop to control how strictly snap points are enforced
in a scroll container.
<Box maxH="100px" overflowY="auto" scrollSnapType="x">
Scroll container with x snap type
</Box>| Value | |
|---|---|
none | none |
x | x var(--scroll-snap-strictness) |
y | y var(--scroll-snap-strictness) |
both | both var(--scroll-snap-strictness) |
Scroll Snap Strictness
Use the scrollSnapStrictness prop to set the scroll snap strictness of an
element. This requires scrollSnapType to be set to x,y or both.
It's values can be mandatory or proximity values, and maps to
var(--scroll-snap-strictness).
<Box maxH="100px" overflowY="auto" scrollSnapStrictness="proximity">
<Box>Item 1</Box>
<Box>Item 2</Box>
</Box>| Prop | CSS Property | Token Category |
|---|---|---|
scrollSnapStrictness | --scroll-snap-strictness | - |
Touch Action
Use the touchAction prop to control how an element's region can be manipulated
by a touchscreen user
<Box touchAction="none" />| Prop | CSS Property | Token Category |
|---|---|---|
touchAction | touch-action | - |
User Select
Use the userSelect prop to control whether the user can select text within an
element.
<Box userSelect="none">
<p>Can't Select me</p>
</Box>| Prop | CSS Property | Token Category |
|---|---|---|
userSelect | user-select | - |
Will Change
Use the willChange prop to hint browsers how an element's property is expected
to change.
<Box willChange="transform" />| Prop | CSS Property | Token Category |
|---|---|---|
willChange | will-change | - |