Allows the user to pick a color from a list of pre-defined color entries.
Import
import { ColorPalette } from '@wordpress/components';
Examples
Default
const Default = () => {
const [ color, setColor ] = useState< string | undefined >( value );
const [ slug, setSlug ] = useState< string | undefined >( selectedSlug );
return (
<ColorPalette
colors={[
{ name: 'Red', color: '#f00' },
{ name: 'White', color: '#fff' },
{ name: 'Blue', color: '#00f' },
]}
value={ color }
selectedSlug={ slug }
onChange={ ( newColor, index, newSlug ) => {
setColor( newColor );
setSlug( newSlug );
onChange?.( newColor, index, newSlug );
} } />
);
};
Initial Value
const InitialValue = () => {
const [ color, setColor ] = useState< string | undefined >( value );
const [ slug, setSlug ] = useState< string | undefined >( selectedSlug );
return (
<ColorPalette
colors={[
{ name: 'Red', color: '#f00' },
{ name: 'White', color: '#fff' },
{ name: 'Blue', color: '#00f' },
]}
value={ color }
selectedSlug={ slug }
onChange={ ( newColor, index, newSlug ) => {
setColor( newColor );
setSlug( newSlug );
onChange?.( newColor, index, newSlug );
} } />
);
};
Multiple Origins
const MultipleOrigins = () => {
const [ color, setColor ] = useState< string | undefined >( value );
const [ slug, setSlug ] = useState< string | undefined >( selectedSlug );
return (
<ColorPalette
colors={[
{
name: 'Primary colors',
colors: [
{ name: 'Red', color: '#f00' },
{ name: 'Yellow', color: '#ff0' },
{ name: 'Blue', color: '#00f' },
],
},
{
name: 'Secondary colors',
colors: [
{ name: 'Orange', color: '#f60' },
{ name: 'Green', color: '#0f0' },
{ name: 'Purple', color: '#60f' },
],
},
]}
value={ color }
selectedSlug={ slug }
onChange={ ( newColor, index, newSlug ) => {
setColor( newColor );
setSlug( newSlug );
onChange?.( newColor, index, newSlug );
} } />
);
};
Duplicate Colors
const DuplicateColors = () => {
const [ color, setColor ] = useState< string | undefined >( value );
const [ slug, setSlug ] = useState< string | undefined >( selectedSlug );
return (
<ColorPalette
colors={[
{ name: 'Dark Background', slug: 'dark-background', color: '#000' },
{ name: 'Dark Text', slug: 'dark-text', color: '#000' },
{ name: 'Brand', slug: 'brand', color: '#0073aa' },
]}
value={ color }
selectedSlug={ slug }
onChange={ ( newColor, index, newSlug ) => {
setColor( newColor );
setSlug( newSlug );
onChange?.( newColor, index, newSlug );
} } />
);
};
CSS Variables
const CSSVariables = () => <div
style={ {
'--red': '#f00',
'--yellow': '#ff0',
'--blue': '#00f',
} }>
<Template
colors={[
{ name: 'Red', color: 'var(--red)' },
{ name: 'Yellow', color: 'var(--yellow)' },
{ name: 'Blue', color: 'var(--blue)' },
]} />
</div>;