查看 WordPress Storybook 以获取更详细、交互式的文档。
GradientPicker 是一个 React 组件,用于渲染颜色渐变选择器
以定义多步渐变。支持 线性(linear) 或 径向(radial) 类型。
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
是否将其渲染在侧边栏中。
aria-label
- Type:
string - Required: No
用于标识控件用途的标签。
aria-labelledby
- Type:
string - Required: No
用于为控件提供标签的元素 ID。
className
- Type:
string - Required: No
添加到包装器上的类名。
clearable
- Type:
boolean - Required: No
- Default:
true
调色板是否应包含清除按钮。
disableCustomGradients
- Type:
boolean - Required: No
- Default:
false
如果为 true,则不会显示渐变选择器,仅显示来自 gradients 的定义渐变。
enableAlpha
- Type:
boolean - Required: No
- Default:
true
是否在选择器中启用 Alpha 透明度选项。
gradients
- Type:
GradientsProp - Required: No
- Default:
[]
一个对象数组,作为预定义的渐变显示在渐变选择器上方。或者,如果有多个组(或“来源”)的渐变,您可以传递一个对象数组,每个对象包含一个 name 和一个 gradients 数组,后者将包含预定义的对象渐变。
headingLevel
- Type:
1 | 2 | 3 | 4 | 5 | 6 | "1" | "2" | "3" | "4" | ... - Required: No
- Default:
2
标题级别。仅在从多个来源提供渐变时适用(即当作为 gradients prop 传入的数组包含两个或更多项时)。
loop
- Type:
boolean - Required: No
- Default:
true
防止键盘交互循环回绕。
仅与 listbox 呈现方式一起使用。
onChange
- Type:
(currentGradient: string | undefined, index?: number | undefined, slug?: string | undefined) => void - Required: Yes
定义新渐变时调用的函数。它接收 currentGradient 作为参数。当选择预定义渐变时,第二个参数是其索引(对于多来源渐变,则是来源索引),第三个参数是其 slug。
presentation
- Type:
"listbox" | "toggle-buttons" | "command-buttons" - Required: No
- Default:
'listbox'
预定义渐变色块的行为及其对辅助技术的暴露方式。
listbox使用一个制表符停止和箭头键导航,并通过aria-selected暴露选择状态。toggle-buttons为每个色块提供一个制表符停止,并通过aria-pressed暴露选择状态。command-buttons为每个色块提供一个制表符停止,且不暴露选择状态。value和selectedSlug不会将预定义色块标记为选中,激活色块始终使用该色块调用onChange。value仍然控制自定义渐变选择器。
selectedSlug
- Type:
string - Required: No
当前选中的预定义渐变的 slug。
当设置为非空字符串时,选择由 slug 而非渐变值决定,这正确处理了共享相同渐变的调色板条目。在此模式下,slug 不匹配的条目即使其渐变值与 value 匹配也不会显示为选中状态。
空字符串被视为与 undefined 相同:选择回退到通过渐变值进行匹配。
value
- Type:
string | null - Required: No
- Default:
'linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)'
当前的渐变值。传递一个 CSS 渐变字符串(参见默认值示例)。
可选地传递 null 值以指定当前未选择任何渐变。