#figma #tokens #css #json #style #outputs #features

app tokenparser

将Figma Tokens JSON转换为CSS

4个版本

0.2.2 2022年11月5日
0.2.1 2022年11月5日
0.2.0 2022年11月5日
0.1.0 2022年11月5日

2255Web编程

MIT 许可证

16KB
302

令牌解析器

消费Figma Tokens JSON文件,并输出CSS。

例如,您可以将Figma Tokens同步功能与GitHub仓库挂钩,然后让figma-token-parser在GH操作中运行。然后,在每次更新时,都会将更新的CSS文件输出到特定的位置。这将使您能够更新Figma中的样式,从UI推送更改,并将更新自动传播到您的实时网站/应用程序/等等。

该项目目前处于超级WIP状态,可能不会为您工作。它仅保证与Figma Tokens Pro一起工作,并且如果您使用“多个文件”选项将令牌拆分为目录中的单独json文件而不是一个巨大的json文件,则它将正常工作。它目前完全依赖于FT的主题功能,并且只有一个命令,它会为Figma Tokens设置中的每个主题导出一个CSS文件。我计划在未来添加更多功能,以允许更可配置的输出,或者将所有令牌导出到一个CSS文件中的选项(包括通过类名保留主题支持的命名空间值 - 请参阅下面的TODO。)

安装

yarn add -D figma-token-parser
## or
yarn global add figma-token-parser

您也可以通过Cargo安装此软件包

cargo install tokenparser

用法

# Below are the default values for the args, 
# you can pass no args or use the dir and out args to suit your environment
tokenparser --dir ./tokens --out ./build

定义 [WIP]

主题

多个集合的令牌集合,共同组成一个可以序列化为CSS或JSON的主题。

令牌集

一个包含所有逻辑上属于一起的令牌集合。Figma令牌中的组织方式由用户决定。

令牌

单个令牌值,其形状如下

struct TokenDefinition {
	/// The value, even numeric values are given as a string by Figma Tokens
    value: String,
	/// What type of value is this? Color, BorderRadius, FontFamily, etc. (Key is `type` in raw data, but aliased to `kind` for Rust.)
    kind: String,
	id: String, // <--- We add these last two based on the object property names to help with lookups.
	name: String, //
}

TODO

  • 支持如果Figma Tokens设置为导出一个大文件而不是拆分为文件和目录。
  • 支持没有主题,只有令牌集的用户。(以下内容可以帮助解决这个问题,如果我们能够分别输出集合,我们可以更改主题输出,使默认情况下,所有集合都获得自己的CSS文件,而主题输出仅使用@import将相关集合包含在一个文件中。)
  • 设计一种方法来分别输出源集和启用集。我们还将跟踪已处理的源集,以确保只处理一次(多个主题可能使用相同的源集)。同时考虑一种索引文件,该文件使用@import按主题导入所有单独的集,并可选择包含所有,通过类名命名空间在:root
  • 支持JSON导出。

依赖项

~3.5–6MB
~104K SLoC