@canonical/ds-types

中文文档
0.45.0发布于 2026/10/23LGPL-3.0TypeScriptES Module零依赖构建来源已验证近 30 天下载 1万

普拉格马的种类和相关类型的公用事业.

中文使用文档
文档目录5 节
  1. 安装
  2. 修饰家庭
  3. 使用量
  4. 运行时间常数
  5. 设计系统本体学

@ 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">);

设计系统本体学

本套件中定义的修饰家族来源于 设计系统本体学. 本体论提供了修饰者存在的权威规格及其语义意义. 修改型家庭的改变应源于本体学,并推广到这一套方案,以保持设计规格与执行的一致性.

版本与发布记录

@canonical/ds-types 共发布 37 个版本,首次发布于 2026/02/06;过去 12 个月发布了 37 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.45.0latest2026/10/2317 天前
0.44.12026/10/081 个月前
0.44.02026/10/051 个月前
0.43.02026/10/011 个月前
0.42.02026/09/281 个月前
0.40.02026/09/211 个月前

其他发布通道:a → 0.12.0-experimental.0。

关于 @canonical/ds-types 的常见问题

@canonical/ds-types 是什么?

普拉格马的种类和相关类型的公用事业.

如何安装 @canonical/ds-types?

在项目目录运行 npm install @canonical/ds-types,或使用 pnpm add / yarn add / bun add。

@canonical/ds-types 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@canonical/ds-types 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@canonical/ds-types 可以商用吗?

@canonical/ds-types 使用 LGPL-3.0 许可。弱 Copyleft:作为库被调用时通常不要求开源你自己的代码,但修改库本身需以 LGPL 开源;前端打包合并后的适用边界存在不同理解。以上为概括,不构成法律意见,请以许可原文为准。

@canonical/ds-types 的下载量有多少?

根据 npm 官方下载统计,@canonical/ds-types 在 2026/10/09 – 2026/11/07 这 30 天内被下载 10,371 次,日均约 346 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@canonical/ds-types 还在维护吗?

最新版本 0.45.0 发布于 2026/10/23(17 天前);至今共发布 37 个版本,其中过去 12 个月发布了 37 个;首次发布于 2026/02/06。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。