@ canonical/ ds- 类型
Pragma设计系统中用于修饰家庭和组件道具的TypeScript类型.
安装
bun add @canonical/ds-types
修饰家庭
一个修饰家是一组相关的视觉变体,组件可以支持. 组件不接受外观道具的任意字符串,而是使用修饰家族类型,以确保类型安全并允许IDE自动完成.
该套件目前定义了两个修饰家族:
严重性 控制用于通信状态或重要性的基于意图的颜色:
neutral- 无具体意图的默认状态positive- 成功、确认或核准negative- 错误、危险或破坏性行动caution- 需要警告或注意information- 信息内容
重点 控制视觉突出 :
neutral- 标准列报highlighted- 增加视力重量muted- 降低视力重量accented- 品牌或口音彩色
使用量
导入 ModifierFamily 键入帮助并使用它来限制道具 :
import type { ModifierFamily } from "@canonical/ds-types";
interface ButtonProps {
appearance?: ModifierFamily<"severity">;
}
这个 ModifierFamily<"severity"> 类型解析到联盟 "neutral" | "positive" | "negative" | "caution" | "information"。TypeScript将在编译时拒绝无效值.
运行时间常数
对于您需要超度于选项或验证用户输入的个案,其运行时常数与运行时常数相同:
import { MODIFIER_FAMILIES } from "@canonical/ds-types";
// MODIFIER_FAMILIES.severity = ["neutral", "positive", "negative", "caution", "information"]
// MODIFIER_FAMILIES.emphasis = ["neutral", "highlighted", "muted", "accented"]
const isValidSeverity = (value: string): value is ModifierFamily<"severity"> =>
MODIFIER_FAMILIES.severity.includes(value as ModifierFamily<"severity">);
设计系统本体学
本套件中定义的修饰家族来源于 设计系统本体学. 本体论提供了修饰者存在的权威规格及其语义意义. 修改型家庭的改变应源于本体学,并推广到这一套方案,以保持设计规格与执行的一致性.