ColorInput
Capture color from user
Source
LLM docs
Docs
Package
Usage
ColorInput component supports Input and Input.Wrapper component features and all input element props. The ColorInput documentation does not include all features supported by the component – see the Input documentation to learn about all available features.
Input description
Loading state
Set loading prop to display a loading indicator. By default, the loader is displayed on the right side of the input.
You can change the position with the loadingPosition prop to 'left' or 'right'. This is useful for async operations like API calls, searches, or validations:
Controlled
Formats
The component supports hex, hexa, rgb, rgba, hsl and hsla color formats. The slider to change opacity is displayed only for hexa, rgba and hsla formats:
Preserve invalid input
By default, ColorInput will revert the value on blur to the last known valid value.
To change this behavior and keep the invalid value, set fixOnBlur={false}:
onChangeEnd
onChangeEnd is called when the user stops dragging the slider or changes the input value.
It is useful when you need to update the color only when the user has finished interacting with the component:
Change end value: #FFFFFF
Disable free input
To disable free input, set the disallowInput prop:
With swatches
You can add any amount of predefined color swatches:
By default, there will be 7 swatches per row. You can change this with the swatchesPerRow prop,
like in the ColorPicker component:
If you need to restrict color picking to certain colors – disable the color picker and disallow free input:
Close dropdown on color swatch click
To close the dropdown when one of the color swatches is clicked, set the closeOnColorSwatchClick prop:
Hide dropdown
To hide the dropdown, set withPicker={false}:
Eye dropper
By default, if the EyeDropper API
is available, the eye dropper icon will be displayed at the right section of the input.
To disable it, set withEyeDropper={false}:
Change eye dropper icon
You can replace the eye dropper icon with any React node using the eyeDropperIcon prop:
Left and right sections
ColorInput supports leftSection and rightSection props. These sections are rendered with absolute positioning inside the input wrapper. You can use them to display icons, input controls, or any other elements.
You can use the following props to control sections styles and content:
rightSection/leftSection– React node to render on the corresponding side of inputrightSectionWidth/leftSectionWidth– controls the width of the right section and padding on the corresponding side of the input. By default, it is controlled by the componentsizeprop.rightSectionPointerEvents/leftSectionPointerEvents– controls thepointer-eventsproperty of the section. If you want to render a non-interactive element, set it tononeto pass clicks through to the input.
Note that by default, ColorPicker has a color preview in the left section and an eye dropper button
in the right section. You can replace these elements with any React node using the leftSection
and rightSection props:
Error state
Invalid name
Disabled state
Read only
Styles API
ColorInput supports the Styles API; you can add styles to any inner element of the component with the classNames prop. Follow the Styles API documentation to learn more.
Description
Error
Component Styles API
Hover over selectors to highlight corresponding elements
Get element ref
Accessibility
If ColorInput is used without the label prop, it will not be announced properly by screen readers:
Set aria-label to make the input accessible. In this case the label will not be visible, but screen readers will announce it:
If the label prop is set, the input will be accessible and it is not required to set aria-label: