- 前端
- UI组件
【免费下载链接】fast
The adaptive interface system for modern web experiences.
ComponentStateColorPalette是@microsoft/fast-colors(FAST 自适应性界面系统的一部分,当前仓库为 gh_mirrors/fa/fast)提供的颜色工具类之一,用于为 UI 组件创建颜色调色板。本文围绕该类的构造函数 API 展开,完整解析其签名、可选的ComponentStateColorPaletteConfig配置对象、baseColor与steps两个关键配置项,以及输出的palette(ColorRGBA64[])属性。阅读完本文,你将掌握如何在 1.x API 体系中实例化ComponentStateColorPalette、正确构造其配置与颜色参数,并为组件状态生成可落地的调色板数据。
ComponentStateColorPalette 在 fast-colors 中的定位
在 fast-colors API 总览中,ComponentStateColorPalette被描述为 "Creates a color palette for UI components",是模块中与组件场景直接相关的类之一。与之相邻的还有通用的 ColorPalette("Generates a color palette")、ColorRGBA64、ColorScale等类,以及generateScaledPalettes、generateOffCenterPalette等调色板生成函数。
从 API 结构看,ComponentStateColorPalette与通用ColorPalette的分工可以理解为:通用调色板类面向任意颜色集合的生成,而ComponentStateColorPalette则面向"UI 组件"这一具体使用场景,通过一个以基准色为核心的配置对象驱动调色板创建。
适用前提:本文所述 API 均来自当前仓库中 sites/website/src/docs/1.x/api/ 目录下由 API Documenter 自动生成的 1.x 版本 API 文档,签名以文档为准。
构造函数签名与参数解析
在 ComponentStateColorPalette.(constructor) 文档中,构造函数签名如下:
constructor(config?: ComponentStateColorPaletteConfig);要点:
config是可选参数,类型为 ComponentStateColorPaletteConfig;- 不传参数(
new ComponentStateColorPalette())在签名上完全合法,此时将使用类内部的默认配置(该类公开了一个静态属性defaultPaletteConfig,详见下文); - 传参时只需提供一个普通对象字面量,因为配置接口的字段均为可选。
官方文档给出的参数表如下:
| 参数 | 类型 | 说明 |
|---|---|---|
| config | ComponentStateColorPaletteConfig | 调色板配置对象 |
配置对象 ComponentStateColorPaletteConfig 详解
ComponentStateColorPaletteConfig 接口的文档描述为 "Configuration for ComponentStateColorPalette",即该类的专属配置。它只有两个可选字段:
| 属性 | 类型 | 说明 |
|---|---|---|
| baseColor | ColorRGBA64 | 用于创建调色板的基准颜色 |
| steps | number | 调色板中的颜色步数 |
对应签名(均为可选属性):
export interface ComponentStateColorPaletteConfig { baseColor?: ColorRGBA64; steps?: number; }两个配置项各自的含义与使用注意点:
- baseColor:调色板的"锚点"颜色,后续所有调色板颜色均围绕它展开。它的类型是
ColorRGBA64,而不是字符串或#RRGGBB十六进制文本,因此在传值时需要先构造颜色对象(参见下文 ColorRGBA64 小节)。 - steps:调色板包含的颜色数量(步数)。文档仅将其标注为 "The number of steps in the palette",未在 1.x 文档中给出默认数值;当省略时,从 API 设计可以推断会回退到类的默认配置。
类的成员与默认配置
ComponentStateColorPalette 类文档展示了该类的完整公开表面:
export declare class ComponentStateColorPalette| 成员 | 修饰符 | 类型 | 说明 |
|---|---|---|---|
| (constructor)(config) | — | — | 构造该类的新实例 |
| defaultPaletteConfig | static readonly | ComponentStateColorPaletteConfig | 默认调色板配置 |
| palette | — | ColorRGBA64[] | 生成后的调色板颜色数组 |
其中两个成员与构造函数直接相关:
static readonly defaultPaletteConfig: ComponentStateColorPaletteConfig:静态只读的默认配置,供未提供 config 时的回退使用,也可以作为自定义配置的"基线",例如读取其字段后局部覆盖再传给构造函数。palette: ColorRGBA64[]:构造完成后,生成结果保存在该实例属性中,是一个ColorRGBA64数组,按 steps 对应的数量依次排列。
准备基准颜色:ColorRGBA64
由于baseColor的类型是 ColorRGBA64,在实例化调色板前需要先理解这个颜色类。文档描述其为 "A RGBA color with 64 bit channels",即每个通道用 64 位精度表示。
构造函数签名与示例(取自 ColorRGBA64 文档):
new ColorRGBA64(1, 0, 0, 1) // red参数顺序为(red, green, blue, alpha),均为 number 类型的通道值(从示例看取值为 0~1 之间的归一化值)。实例上公开了r、g、b、a四个通道属性,以及一组实用的转换方法:
toStringHexRGB():输出#RRGGBB格式字符串;toStringHexARGB():输出#AARRGGBB格式字符串;toStringHexRGBA():输出#RRGGBBAA格式字符串;toStringWebRGB():输出rgb(0xRR, 0xGG, 0xBB)格式字符串;toStringWebRGBA():输出rgba(0xRR, 0xGG, 0xBB, a)格式字符串;clamp():返回各通道值被钳制到 0~1 之间的新ColorRGBA64实例;roundToPrecision(precision):按指定精度四舍五入;equalValue(rhs):判断两个颜色是否相等;fromObject(data)(静态):从ColorRGBA64Config构造颜色实例;toObject():将实例转换为ColorRGBA64Config对象。
这些方法让调色板输出可以直接序列化为 CSS 可用的颜色字符串,便于写入样式表或日志验证。
完整使用示例
综合以上 API,一个典型的实例化流程如下(所有调用均基于文档确认的公开 API):
import { ComponentStateColorPalette, ColorRGBA64, } from "@microsoft/fast-colors"; // 1. 构造基准颜色(归一化 RGBA 通道值) const baseColor: ColorRGBA64 = new ColorRGBA64(0.13, 0.55, 0.94, 1); // 2. 组装可选配置对象(两个字段均可省略) const config = { baseColor, steps: 9, }; // 3. 实例化:config 为可选参数 const palette = new ComponentStateColorPalette(config); // 4. 读取生成的调色板并序列化 palette.palette.forEach((color: ColorRGBA64, index: number) => { console.log(index, color.toStringHexRGB()); });注意事项:
config完全可省略(new ComponentStateColorPalette()),此时由类的静态默认配置defaultPaletteConfig兜底;- 若只配置
baseColor而省略steps,或反之,其余字段沿用默认值; - 调色板结果不会从构造函数返回值获得,而是通过实例属性
palette访问; - 对生成结果做 CSS 输出时,推荐使用
toStringHexRGB()或toStringWebRGBA(),它们直接产出可粘贴的样式字符串。
相关 API 导航
围绕构造函数及其配置,以下 API 文档值得一并查阅(均位于 sites/website/src/docs/1.x/api/):
- ComponentStateColorPalette 类总览
- ComponentStateColorPaletteConfig 配置接口
- baseColor 属性
- steps 属性
- palette 属性
- defaultPaletteConfig 静态属性
- ColorRGBA64 颜色类
- fast-colors 模块 API 总览
小结
ComponentStateColorPalette的构造函数是整个类的入口:通过一个可选的ComponentStateColorPaletteConfig(baseColor+steps)驱动调色板生成,结果存于palette实例属性中,并以ColorRGBA64数组的形式对外暴露。掌握构造函数签名、配置字段与ColorRGBA64的构造/序列化方法,即可在 FAST 1.x 的 fast-colors 体系中为组件状态快速产出可复用的颜色调色板。
- 前端
- UI组件
【免费下载链接】fast
The adaptive interface system for modern web experiences.
相关推荐
FAST 组件状态调色板(ComponentStateColorPalette)完全指南:基于 @microsoft/fast-colors 为 UI 组件生成可控色板
FAST 组件状态调色板(ComponentStateColorPalette)完全指南:基于 @microsoft/fast colors 为 UI 组件生成
前端UI组件@microsoft/fast-colors 1.x rescale() 函数详解:将一组颜色外推为更大调色板的工具
@microsoft/fast colors 1.x rescale 函数详解:将一组颜色外推为更大调色板的工具 本篇基于 FAST 1.x 版本 @micro
前端UI组件FAST 1.x @microsoft/fast-colors 的 quantizeHistogram() 函数详解:直方图量化与调色板提取的核心 API
FAST 1.x @microsoft/fast colors 的 quantizeHistogram 函数详解:直方图量化与调色板提取的核心 API quan
前端UI组件
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考