GradientPicker

See the WordPress Storybook for more detailed, interactive documentation.

GradientPicker is a React component that renders a color gradient picker to
define a multi step gradient. There’s either a linear or a radial type
available.

import { useState } from 'react';
import { GradientPicker } from '@wordpress/components';

const MyGradientPicker = () => {
  const [ gradient, setGradient ] = useState( null );

  return (
    <GradientPicker
      value={ gradient }
      onChange={ ( currentGradient ) => setGradient( currentGradient ) }
      gradients={ [
        {
          name: 'JShine',
          gradient:
            'linear-gradient(135deg,#12c2e9 0%,#c471ed 50%,#f64f59 100%)',
          slug: 'jshine',
        },
        {
          name: 'Moonlit Asteroid',
          gradient:
            'linear-gradient(135deg,#0F2027 0%, #203A43 0%, #2c5364 100%)',
          slug: 'moonlit-asteroid',
        },
        {
          name: 'Rastafarie',
          gradient:
            'linear-gradient(135deg,#1E9600 0%, #FFF200 0%, #FF0000 100%)',
          slug: 'rastafari',
        },
      ] }
    />
  );
};

Props

__experimentalIsRenderedInSidebar

  • Type: boolean
  • Required: No
  • Default: false

Whether this is rendered in the sidebar.

asButtons

  • Type: boolean
  • Required: No
  • Default: false

Whether the control should present as a set of buttons,
each with its own tab stop.

aria-label

  • Type: string
  • Required: No

A label to identify the purpose of the control.

aria-labelledby

  • Type: string
  • Required: No

An ID of an element to provide a label for the control.

className

  • Type: string
  • Required: No

The class name added to the wrapper.

clearable

  • Type: boolean
  • Required: No
  • Default: true

Whether the palette should have a clearing button or not.

disableCustomGradients

  • Type: boolean
  • Required: No
  • Default: false

If true, the gradient picker will not be displayed and only defined
gradients from gradients will be shown.

enableAlpha

  • Type: boolean
  • Required: No
  • Default: true

Whether to enable alpha transparency options in the picker.

gradients

  • Type: GradientsProp
  • Required: No
  • Default: []

An array of objects as predefined gradients displayed above the gradient
selector. Alternatively, if there are multiple sets (or ‘origins’) of
gradients, you can pass an array of objects each with a name and a
gradients array which will in turn contain the predefined gradient objects.

headingLevel

  • Type: 1 | 2 | 3 | 4 | 5 | 6 | "1" | "2" | "3" | "4" | ...
  • Required: No
  • Default: 2

The heading level. Only applies in cases where gradients are provided
from multiple origins (i.e. when the array passed as the gradients prop
contains two or more items).

loop

  • Type: boolean
  • Required: No
  • Default: true

Prevents keyboard interaction from wrapping around.
Only used when asButtons is not true.

onChange

  • Type: (currentGradient: string) => void
  • Required: Yes

The function called when a new gradient has been defined. It is passed to
the currentGradient as an argument.

value

  • Type: string
  • Required: No
  • Default: 'linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)'

The current value of the gradient. Pass a css gradient string (See default value for example).
Optionally pass in a null value to specify no gradient is currently selected.