@ama-styling/style-dictionary

中文文档
15.2.4发布于 2026/11/05BSD-3-ClauseTypeScriptES Module构建来源已验证近 30 天下载 2.4万

样式词典软件包曝光模块和钩子

中文使用文档
文档目录15 节
  1. 说明
  2. 开始
  3. 增强
  4. 设计托肯扩展
  5. 可用的 Otter 扩展
  6. 模块
  7. 解析器
  8. 预处理器
  9. 变换
  10. 变形组
  11. 格式
  12. 登记程序
  13. 帮助者
  14. 高级
  15. 基本节点配置示例

Otter 样式词典

Super cute Otter!

此软件包是 Otter 框架模块。 。 。 .

说明

Stable Version Bundle Size

这个软件包暴露了一组 钩子 财务报告和审定财务报表 模块 联 合 国 样式词典 提高Tokens设计的能力.

开始

准备你的 样式词典 感谢命令:

ng add @ama-styling/style-dictionary

默认情况下, 命令会进行以下更新 :

  • 将 dev 依赖添加到 样式词典包。 。 。 .
  • 创建最小值 配置( mjs) cSS和元数据生成所需的配置文件.
  • 添加数据 generate:theme 财务报告和审定财务报表 generate:metadata 项目中的脚本 软件包.json。 。 。 .

然后您就可以根据您的项目规格定制此设置 :

增强

设计托肯扩展

这个 设计托肯斯 格式允许提供 $extensions 属性来增强它应用的托肯.
财产可直接适用于Token:

// colors.token.json
{
  "colors": {
    "primary": {
      "$value": "#000000",
      "$extensions": {
        "o3rPrivate": true
      }
    }
  }
}

或在一个专用 .extensions.json 文件( 当 ama/json-parser/扩展 解析器已装入 :

// color.token.json
{
  "colors": {
    "primary": {
      "$value": "#000000"
    }
  }
}
// custom.extensions.json
{
  "colors.primary": {
    "$description": "Primary private color",
    "$extensions": {
      "o3rPrivate": true
    }
  }
}

可用的 Otter 扩展

扩展类型说明需要的钩子
o3r 隐私boolean确定符号是否标为私有预处理器 : ama/预处理/扩展
主题 : ama/cs/可变
机会boolean确定是否在生成时将符号标记为重要预处理器 : ama/预处理/扩展
主题 : ama/cs/可变
o3rScope 选项string适用于生成变量的范围预处理器 : ama/预处理/扩展
主题 : ama/cs/可变
o3r 元数据CMS 元数据生成后应向元数据提供的额外信息预处理器 : ama/预处理/扩展
主题 : ama/json/元数据
o3r 单位string将指定单位的数值转换为新单位。 它会在未指定单位的"编号"型号符号上添加一个单位.
在复杂类型(如阴影,过渡等)的情况下,该单位会被应用于它们所包含的所有数字类型.
预处理器 : ama/预处理/扩展
变换 : 地图/转换/单位
o3rRRatio 数据number适用于上个数值的比率。 该比例将仅适用于"数"类型的符号,或像类型一样适用于"字符串"中确定的第一个数字.
对于复杂类型(如阴影,过渡等),该比率将适用于它们包含的所有数字类型.
预处理器 : ama/预处理/扩展
变换 : 地图/转换/比例
o3rexpect 覆盖boolean指出该标志预计将被外部规则所压倒预处理器 : ama/预处理/扩展

[尖叫声] 这个 需要的钩子 需要注册到 样式词典配置 以充分支持延期.

模块

解析器

名称匹配文件说明
ama/json-parser/一行端**/*.json允许 标记 在 JSON 文件中键入
ama/json-parser/扩展**/*.extensions.json解析包含的文件 $extensions 在设计托肯顶部应用的指令

预处理器

名称说明
ama/预处理/扩展添加支持的预处理器 $extensions 脚本中的指令(或专用) extensions.json 存档). 此预处理器对任何Otter钩是强制的.

变换

名称类型标准说明
地图/转换/比例valueo3rRatio 提供扩展名应用给定 o3rRatio 改为它所指的托肯(s)的数值.
地图/转换/单位valueo3rUnit 提供扩展名将它所指的托肯值的单位替换为所提供的 o3rUnit。 。 。 .

变形组

名称说明
ama/cs/建议扩展官员 CSS 变换组 通过添加 ama/transform/ratio 财务报告和审定财务报表 ama/transform/unit

格式

名称选项说明
ama/cs/可变见 cs/可变选项Render CSS 变量块(基于 内建格式(a) 支持增加 Otter 扩展特性。 。 。 .
ama/json/元数据见 cs/可变选项 (适用于 defaultValue(中文(简体) )
- 说吧 保持隐私: 包括私有变量
Render CMS风格元数据(CSS变量及其相关的CMS集成定制属性).

登记程序

不同的钩/模块可以通过不同的钩/模块单独注册 注册... () 从 StyleDictionary 或全部同时与 register 函数如下:

import { register, baseConfig } from '@ama-styling/style-dictionary';

const sd = new StyleDictionary({
  ...baseConfig,
  // custom configs ...
});

register(sd); // Register all Otter modules

[大 为了能够使用任何所列模块/套接字,它们必须登记在 StyleDefinition 举个例子.

[TIP] 帮手 baseConfig 将为Otter扩展支持提供最小配置.

帮助者

增强和便利《公约》的配置 StyleDictionary 实例 @ama-styling/style-dictionary 揭露出一批帮手.

获取目标文件

这个 getTargetFiles 函数用于参数化基于 Design Token 生成的文件(遵循与 $extensions:

// Example to generate the `color-primary-**` variables in `my-color-primary.css`

import { getTargetFiles } from '@ama-styling/style-dictionary';

const rule = {
  'color.primary': 'my-color-primary.css'
};

// or `const rule = {color: {primary: 'my-color-primary.css'}}`
// or `const rule = {'color.primary': {$extensions: {o3rTargetFile: 'my-color-primary.css'}}}`
// or `const rule = {'color: {primary': {$extensions: {o3rTargetFile: 'my-color-primary.css'}}}}`

const sd = new StyleDictionary({
  //...
  plateforms: {
    css: {
      files: [
        ...getTargetFiles({ rule, { format: 'css', defaultFile: 'default-file.css' } })
      ]
    }
  }
});

register(sd); // Register all Otter modules

[注] 这个 format 选项将应用到提供给 getTargetFiles 函数(包括 defaultFile) (中文(简体) ). defaultFile 定义生成不匹配任何规则的变量的默认文件.

帮助函数 getTargetFiles 正在将过滤器注册到 StyleDictionary 带着独一无二的身份证.
此ID可检索如下:

import { getTargetFiles } from '@ama-styling/style-dictionary';

const sd = new StyleDictionary();
const files = getTargetFiles({ rules, { styleDictionary: sd } });

/**
 * Filter IDs registered in {@link sd} Style Dictionary instance
 * @type {string[]}
 **/
const filterIds = files.map(({ filter }) => filter);

高级

基本节点配置示例

// style-builder.mjs

import { register, getTargetFiles, baseConfiguration } from '@ama-styling/style-dictionary';
import StyleDictionary from 'style-dictionary';

// Rules to generate different CSS files according to Token name
const fileRules = {
  colors: 'style/colors.tokens.css',
  'components.panel': 'components/panel/panel.tokens.css'
}

const sd = new StyleDictionary({
  ...baseConfiguration, // Use basic Otter configuration setup
  usesDtcg: true, // Use Design Token Standard format

  source: ['tokens/*.tokens.json'], // Design Token files
  include: ['token.extensions.json'], // Custom extensions

  platforms: {
    // Generate CSS Files
    css: {
      options: {
        outputReferences: true // to output `--var: var(--other-var)` instead of the value of `--other-var`
      },
      transformGroup: 'ama/css/recommended',
      files: [
        ...getTargetFiles(fileRules, { format: 'css' }),
        // default CSS file where generate variables
        { destination: 'style/default.tokens.css', format: 'css' }
      ]
    },
    cms: {
      options: {
        outputReferences: true
      },
      transformGroup: 'ama/css/recommended',
      files: [
        { destination: 'style.metadata.json', format: 'ama/json/metadata' }
      ]
    }
  }
});

// Register otter hooks/modules
register(sd);

if (process.env.CSS_ONLY){
  sd.buildPlatform('css');
} else {
  sd.buildAllPlatforms();
}

可用以下命令运行 :

node ./style-builder.mjs

版本与发布记录

@ama-styling/style-dictionary 共发布 748 个版本,首次发布于 2025/06/20;过去 12 个月发布了 545 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
15.2.4latest2026/11/051 天前
15.4.0-prerelease.5prerelease2026/11/051 天前
15.2.32026/11/041 天前
15.4.0-prerelease.42026/11/041 天前
15.4.0-prerelease.32026/11/023 天前
15.4.0-prerelease.22026/11/023 天前

其他发布通道:next → 14.0.0-next.14,v13-updated → 13.5.13,v14-updated → 14.5.4,v15-updated → 15.1.3,rc → 15.3.0-rc.1,prerelease → 15.4.0-prerelease.5。

关于 @ama-styling/style-dictionary 的常见问题

@ama-styling/style-dictionary 是什么?

样式词典软件包曝光模块和钩子

如何安装 @ama-styling/style-dictionary?

在项目目录运行 npm install @ama-styling/style-dictionary,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:style-dictionary(^5.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@ama-styling/style-dictionary 支持 TypeScript 吗?

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

@ama-styling/style-dictionary 支持 ESM 还是 CommonJS?

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

@ama-styling/style-dictionary 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js ^22.22.3 || ^24.15.0 || ^26.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@ama-styling/style-dictionary 可以商用吗?

@ama-styling/style-dictionary 使用 BSD-3-Clause 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。另外不得用原作者名义为衍生产品背书。以上为概括,不构成法律意见,请以许可原文为准。

@ama-styling/style-dictionary 的下载量有多少?

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

@ama-styling/style-dictionary 还在维护吗?

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