@sps-woodland/tokens

中文文档
8.56.21发布于 2026/11/02UNLICENSEDTypeScriptESM + CJS

SPS设计系统设计令牌

中文使用文档
文档目录7 节
  1. 什么是设计标记?
  2. 这个包是如何工作的
  3. 格式
  4. JavaScript /打印稿
  5. CSS
  6. 香草精
  7. 萨斯

@sps-woodland /令牌

SPS林地设计系统设计令牌

  1. 什么是设计标记?
  2. 这个包是如何工作的
  3. 可用的格式
    1. JavaScript /打印稿
    2. CSS
    3. 香草精
    4. 萨斯

什么是设计标记?

设计令牌是设计系统的基本要素。它们是设计决策的记录——字体大小、间距值、边框半径等——以人类和机器都可读的格式记录。它们是生成可消费工件的唯一来源,例如CSS类、设计工具的调色板或用于移动应用程序开发的XML文件。

这个包是如何工作的

令牌源文件位于 src/tokens 目录中。为了从中生成消耗品,我们使用了一个叫做 风格的字典,由亚马逊开发。Style Dictionary配置位于包的根目录, config.js。Style Dictionary自带许多可以生成的内置格式,您也可以轻松添加自己的格式。在 src/formats 您将找到我们创建的自定义格式。

Style Dictionary还有一个“转换”的概念,它适用于标记值。例如,您可能希望在源文件中使用十六进制定义颜色,但在生成的消耗品中输出hsla格式。每种格式都有一组默认的转换。在我们的例子中,我们正在修改我们使用的自定义转换组,将源中的大小值作为像素处理,并将其转换为输出中的rem。 (默认是将大小标记的值视为rem并简单地附加 "rem" 为它们提供输出。)

此外,我们还有 香草精洒 其中没有生成定义它们的文件,但是该文件导入了一个生成的文件,该文件在对象中包含令牌,该对象的形状根据洒定义的需要进行了定制。

这意味着构建过程按照特定顺序遵循一系列阶段:

  1. 运行 style-dictionary build 从令牌源文件生成文件。非typescript输出进入 lib 从git中排除,TS输出到 src 并且是忠诚的。
  2. 运行 vite build 提供的TypeScript导出 src/index.ts 成 lib.
  3. 运行 tsc 使用标记只发出要生成的声明 .d.ts 文件 lib 对于使用TypeScript的消费者来说。

格式

JavaScript /打印稿

对于JS/TS代码,我们导出一个简单的令牌值对象,以及它的TypeScript类型。

import { tokens } from "@sps-woodland/tokens";

console.log(tokens.size.spacing.lg); // "2rem"

CSS

提供了两个CSS文件:一个文件将令牌声明为 CSS自定义属性另一个定义了实用程序类来应用它们。实用程序类是使用自定义属性定义的,因此如果希望使用这些属性,则必须包含这两个文件。

// in index.tsx or App.tsx for your application
import "@sps-woodland/tokens/lib/css/tokens.css";
import "@sps-woodland/tokens/lib/css/utils.css";
/* usage in CSS */
.some-element {
  color: var(--color-blue-medium);
}
// usage in JSX
<div className="mt-sm type-body-md">...</div>

可用的实用程序类

  • 的颜色, .COLOR-VARIANT,如。 .purple-dark 或者 .grey-medium-light
  • 背景颜色,如 .bg-COLOR-VARIANT,如。 .bg-blue-light
  • bootstrap风格的边距和间距类,如 .PREFIX-SIZE,在那里 PREFIX 要么是 m 保证金或 p 用于填充,可选后跟 t/b/l/r 上/下/左/右或 x/y 对于x(左+右)/y(上+下)。例如:
    • .my-sm = margin- y, small (margin-top和margin-bottom的间距较小)
    • .p-md = padding medium(中等间距的填充)
    • .ml-xs =左边距,特别小
  • 字体粗细(.fw-normal 和 .fw-bold)
  • 字体大小+行高组合,例如: .type-body-md 对于中等体型, .type-title-lg 适用于大标题字体等。
  • 字体大小和行高,例如: .fs-body-sm 对于小字体, .lh-title-sm 对于小标题行高度等。

香草精

SPS未来UI样式的工具是 香草精,因此我们提供我们的设计令牌为 洒.

要使它们工作,你需要在你的索引或主应用组件中导入与它们一起的CSS文件:

import "@sps-woodland/tokens/lib/vanilla-extract/style.css";

然后,在你的 .css.ts 文件,你可以导入我们的sprinkles,并根据上面的sprinkles文档链接使用它们。

import { style } from "@vanilla-extract/css";
import { sprinkles, rem } from "@sps-woodland/tokens";

export const fooClass = sprinkles({
  color: "blue-medium",
  marginTop: "md",
});

// or with additional custom styles - again, see the vanilla-extract docs
export const barClass = style([
  sprinkles({
    color: "red-dark",
    type: "title-xl",
  }),
  /* We also export this utility function for your custom style
   * definitions in vanilla-extract. It will find all the pixel values
   * within and convert them to rem. */
  rem({
    maxWidth: "200px",
  }),
]);

萨斯

Sass的消耗品本质上与CSS相同。有一个文件是用于令牌的Sass变量,还有一个文件是使用这些变量定义的实用程序类。

// in your root scss file
@import "@sps-woodland/tokens/lib/scss/tokens";
@import "@sps-woodland/tokens/lib/scss/utils";

版本与发布记录

@sps-woodland/tokens 共发布 457 个版本,首次发布于 2023/01/04;过去 12 个月发布了 137 个版本。

版本发布日期距今
8.56.21latest2026/11/02今天
0.0.0-20261102.125400-5ba06bda0rc2026/11/02今天
0.0.0-20261029.210602-4f1f878c52026/10/304 天前
0.0.0-20261028.134446-0e0de448b2026/10/285 天前
8.56.202026/10/286 天前
0.0.0-20261028.060008-920d0837e2026/10/286 天前

关于 @sps-woodland/tokens 的常见问题

@sps-woodland/tokens 是什么?

SPS设计系统设计令牌

如何安装 @sps-woodland/tokens?

在项目目录运行 npm install @sps-woodland/tokens,或使用 pnpm add / yarn add / bun add。

@sps-woodland/tokens 支持 TypeScript 吗?

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

@sps-woodland/tokens 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@sps-woodland/tokens 可以商用吗?

@sps-woodland/tokens 使用 UNLICENSED 许可。作者声明为 UNLICENSED,即不授予公开使用许可(与公共领域的 Unlicense 不同)。使用前需获得作者授权。以上为概括,不构成法律意见,请以许可原文为准。

@sps-woodland/tokens 还在维护吗?

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