@fylgja/props-builder

中文文档
2.3.0发布于 2026/10/15MITES Module零依赖构建来源已验证近 30 天下载 3.8万

从 JavaScript 对象中不费力地生成 Design Tokens (CSS自定义属性).

中文使用文档
文档目录6 节
  1. 安装
  2. 使用量
  3. 基本使用 JavaScript
  4. 输出格式
  5. 设计托肯斯2025.10
  6. 从设计托肯斯到CSS

Fylgja - 推进器构建器

NPM version NPM Downloads License

Fylgja Propals 构建器简化了 Design Tokens (CSS自定义属性)的创建 通过将JavaScript对象或JSON文件转换为CSS变量或其他符号格式.

这个工具可以使您轻松地构建全面的 Design Token 设置 .

安装

您可以通过 npm 或其他基于节点的软件包管理器如 pnpm 或 bun 安装 Fylgja Props 构建器 :

npm install @fylgja/props-builder

使用量

基本使用 JavaScript

将道具Builder 函数导入您的节点. js 脚本 :

import { propsBuilder } from "@fylgja/props-builder";

然后,根据您的配置使用它生成输出文件 :

import { propsBuilder } from "@fylgja/props-builder";

propsBuilder(
  props, // Required: JavaScript object containing your design tokens.
  filename, // Required: Name of the output file.
  {
    parseAs: "auto", // Optional: Specifies the output format. Defaults to "auto".
    writeToFile: true, // Optional: If false, outputs the generated content to the console. Defaults to true.
    selector: ":where(:root)", // Optional: CSS selector for custom property declarations (CSS output only).
    wrapper: "", // Optional: Wrapper for design system-specific formatting (e.g., Figma).
    name: "Design Tokens", // Optional: Name of the Design Tokens Resolver (dtcg output only).
    description: "", // Optional: Description of the Design Tokens Resolver (dtcg output only).
    inputTypeTokens: false, // Optional: Set to true if the input `props` are in a design token format. Defaults to false.
    inputTypeSyntax: "default", // Optional: Specifies the syntax of the input tokens if `inputTypeTokens` is true.
    stripPrefix: "", // Optional: Dot/dash separated key path (or array of keys) to unwrap, dropping wrapping keys (e.g. "tokens.values").
    rename: null, // Optional: Map of `{ [currentKey]: newKey }` applied recursively, to align naming (e.g. `{ colors: "color" }`).
  },
);

就基本用途而言 props 财务报告和审定财务报表 filename 论据是必要的.

可选参数为先进的情景提供了灵活性.

import { propsBuilder } from "@fylgja/props-builder";

propsBuilder(
  {
    color: {
      red: "#f00",
      green: "#0f0",
      blue: "#00f",
    },
  },
  "output.css",
);

这将生成输出.cs,其内容如下:

:where(:root) {
  --color-red: #f00;
  --color-green: #0f0;
  --color-blue: #00f;
}

此示例显示一个简单 JavaScript 对象的简单用例 .

输出格式

输出格式取自文件名, 除非 parseAs 已经设定.

文件名parseAs产出
*.csscssCSS 自定义属性
*.scssscssSCSS 变量
*.js, (中文(简体) ), *.mjs, (中文(简体) ), *.cjs, (中文(简体) ), *.jsonmjs, (中文(简体) ), cjs, (中文(简体) ), json道具现在
*.resolver.jsondtcg设计 Tokens Resolutionr (2025. 10)
*tokens.jsontokens设计 Tokens(语法草案)
*figma-tokens.jsonfigma图片
*style-dictionary-tokens.jsonstyle-dictionary样式词典符号
css-jitJIT 工具的平面对象, 如 jit- props

设计托肯斯2025.10

这个 dtcg 输出跟随 设计托肯斯2025.10规格。 。 。 . 值被转换成打入符值,例如. 0.5rem 变成一个 dimension 符号 { "value": 0.5, "unit": "rem" }, (中文(简体) ), 财务报告和审定财务报表 var(--shadow-color) 变成一个 {shadow-color.$root} 参考文献.

propsBuilder(props, "tokens/fylgja.resolver.json", { name: "Fylgja" });

所有符号都用一个单一的解析器文档进行。 暗模式值( R)@media:dark)被排除在外.

规格无法表达一些 CSS 值, 例如 calc(), (中文(简体) ), clamp(), (中文(简体) ), var() 在颜色内,或除 px 财务报告和审定财务报表 rem (或 ms 财务报告和审定财务报表 s 页:1. 警告和任何引用这些迹象的标志.

关于更高级的情景,包括如何使用不同的JSON文件格式,见下文"从设计托肯斯到CSS"部分.

从设计托肯斯到CSS

使用带有 JSON 文件的Propals 构建器是一个常用案例. 过程是直截了当的,根据您的 JSON 文件格式进行小调整.

1. 创建您的 Design Tokens 文件

您的JSON文件可以是一个简单的密钥值对象,也可以遵循像W3C Design Tokens spec或由Figma Tokens插件所导出的格式这样的标准格式.

2. 创建构建脚本

创建一个Node.js脚本(例如, build.js)读取您的令牌文件并运行构建器.

import { readFileSync } from "node:fs";
import { propsBuilder } from "@fylgja/props-builder";

// Read and parse the JSON file
const tokens = JSON.parse(readFileSync("path/to/your/tokens.json", "utf-8"));

// 👇 Configure the builder based on your token format
const options = {
  // inputTypeTokens: ...,
  // inputTypeSyntax: ...,
};

// Build the CSS file
propsBuilder(tokens, "tokens.css", options);

console.log("Successfully built tokens.css!");

3. 配置构建器

关键步骤是配置 options 对象基于您的 JSON 文件格式.

  • 对于一个简单,密钥值的JSON文件: 你不需要任何特别的选择 建造者默认处理.

    const options = {};
    
  • 对于一个W3C Design Tokens spec文件(包括2025.10和Resolter文件): 设定 inputTypeTokens 改为 true。 。 。 .

    const options = { inputTypeTokens: true };
    

    Design Tokens 2025.10 数值,如彩色对象或维度被转换为 CSS 值. 综合符号成为CSS的简称(border, (中文(简体) ), shadow, (中文(简体) ), transition,而渐变颜色停止), 除外 typography,它成为每个部分的自定义属性(例如. --heading-font-size) (中文(简体) ). 团体支助 $type 遗产, $root 标志,和 $extends。 。 。 . 两者 {token.path} 参考文献 $ref 贾森 支持同一文件中的指针.

    对于解析器文件,所有集按解析顺序合并,每个修改器使用其 default 上下文. A 类 $ref 不支持其它文件,而是先将这些文件合并为一个文档.

  • 对于 Figma Tokens 文件 : 设定 inputTypeTokens 改为 true 财务报告和审定财务报表 inputTypeSyntax 改为 'figma'。 。 。 .

    const options = {
      inputTypeTokens: true,
      inputTypeSyntax: "figma",
    };
    
  • 对于一个 Google Stitch Markdown 导出: 设定 inputTypeTokens 改为 true 财务报告和审定财务报表 inputTypeSyntax 改为 'stitch'。 。 。 . 传出原始 Markdown 文件内容( a string) 为 props,不是解析对象. 仅使用YAML前题,其中的每个密钥被转换为符号,只有已知的元数据密钥除外(name, (中文(简体) ), description) (中文(简体) ). 这个 colors 组自动更名为单数 color (除非 color 组已经存在).

    const options = {
      inputTypeTokens: true,
      inputTypeSyntax: "stitch",
    };
    

4. 运行构建脚本

最后,从终端运行您的脚本:

node build.js

这将生成一个 tokens.css 带有 CSS 自定义属性的文件.

版本与发布记录

@fylgja/props-builder 共发布 17 个版本,首次发布于 2022/06/05;过去 12 个月发布了 3 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.3.0latest2026/10/151 个月前
2.2.02026/07/064 个月前
2.1.12026/06/105 个月前
2.1.02025/08/211.2 年前
2.0.12025/07/191.3 年前
2.0.02025/03/171.7 年前

关于 @fylgja/props-builder 的常见问题

@fylgja/props-builder 是什么?

从 JavaScript 对象中不费力地生成 Design Tokens (CSS自定义属性).

如何安装 @fylgja/props-builder?

在项目目录运行 npm install @fylgja/props-builder,或使用 pnpm add / yarn add / bun add。

@fylgja/props-builder 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/fylgja__props-builder 是否存在。

@fylgja/props-builder 支持 ESM 还是 CommonJS?

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

@fylgja/props-builder 可以商用吗?

@fylgja/props-builder 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@fylgja/props-builder 的下载量有多少?

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

@fylgja/props-builder 还在维护吗?

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