Color 颜色
类型定义
export type Color = PureColor | GradientColor;
export type PureColor = {
type: 'pure';
value?: string;
} & ColorBaseItem;
export type GradientColor = {
type: 'gradient';
gradientType: 'linear-gradient' | 'radial-gradient';
deg: number;
alpha: number;
valueList?: Array<GradientColorItem>;
};
export type GradientColorItem = {
percentPlus?: string | number;
pickerVisible?: boolean;
inst?: any;
id?: any;
} & ColorBaseItem;
export type ColorBaseItem = {
value?: string;
alpha?: any;
colorMode?: 'hex' | 'rgba';
};
类型分项说明
1. Color
(联合类型)
类型 | 描述 |
---|---|
PureColor | 纯色类型(如 #FF0000 )。 |
GradientColor | 渐变色类型(如线性渐变)。 |
2. PureColor
(纯色)
字段 | 类型 | 必选 | 描述 |
---|---|---|---|
type | 'pure' | 是 | 固定为 'pure' ,标识为纯色类型。 |
value | string | 否 | 颜色值(如 "#FF0000" 或 "rgba(255,0,0,0.5)" )。 |
继承字段 | ColorBaseItem | - | 包含 value 、alpha 、colorMode 等基础字段(见下方 ColorBaseItem )。 |
3. GradientColor
(渐变色)
字段 | 类型 | 必选 | 描述 |
---|---|---|---|
type | 'gradient' | 是 | 固定为 'gradient' ,标识为渐变色类型。 |
gradientType | 'linear-gradient' 或 'radial-gradient' | 是 | 渐变类型(线性或径向)。 |
deg | number | 是 | 渐变角度(仅线性渐变有效,单位为度)。 |
alpha | number | 是 | 整体透明度(0-100)。 |
valueList | Array<GradientColorItem> | 否 | 渐变色节点列表(见下方 GradientColorItem )。 |
继承字段 | ColorBaseItem | - | 包含 value 、alpha 、colorMode 等基础字段。 |
4. GradientColorItem
(渐变色节点)
字段 | 类型 | 必选 | 描述 |
---|---|---|---|
percentPlus | string 或 number | 否 | 渐变节点位置(如 "50%" 或 0.5 )。 |
pickerVisible | boolean | 否 | 是否显示颜色选择器(用于 UI 交互)。 |
inst | any | 否 | 内部实例引用(通常为框架或库内部使用)。 |
id | any | 否 | 节点唯一标识符。 |
继承字段 | ColorBaseItem | - | 包含 value 、alpha 、colorMode 等基础字段。 |
5. ColorBaseItem
(基础颜色属性)
字段 | 类型 | 必选 | 描述 |
---|---|---|---|
value | string | 否 | 颜色值(如 "#FF0000" 或 "rgba(255,0,0,0.5)" )。 |
alpha | any | 否 | 透明度(0-1 或动态值)。 |
colorMode | 'hex' 或 'rgba' | 否 | 颜色模式(十六进制或 RGBA)。 |
示例
纯色示例
const red: PureColor = {
type: 'pure',
value: '#FF0000',
colorMode: 'hex',
alpha: 50,
};
渐变色示例
const gradient: GradientColor = {
type: 'gradient',
gradientType: 'linear-gradient',
deg: 90,
alpha: 0.8,
valueList: [
{ value: '#FF0000', percentPlus: '0%' },
{ value: '#00FF00', percentPlus: '100%' },
],
};
注意事项
Color
的联合类型- 使用时需通过
type
字段区分具体类型('pure'
或'gradient'
)。
- 使用时需通过
- 透明度字段
alpha
在GradientColor
中为整体透明度,而在ColorBaseItem
中为单个颜色节点的透明度。
- 扩展性
- 可通过扩展
ColorBaseItem
或新增字段支持更复杂的颜色需求(如 HSL 模式)。
- 可通过扩展