Diez 开源项目教程

Diez 开源项目教程

diez The Design Token Framework — Adopt a unified design language across platforms, codebases, and teams diez 项目地址: https://gitcode.com/gh_mirrors/di/diez

1. 项目介绍

Diez 是一个开源的开发者工具包,用于构建和维护设计令牌(design tokens)的规模化应用。设计令牌是一组定义设计系统属性(如颜色、字体大小、间距等)的数据。Diez 支持将 styles 统一定义在一份文档中,然后编译并在 Swift、Objective-C、Kotlin、Java、TypeScript、JavaScript/JSON、CSS 或 SCSS 等多种编程语言和样式表中使用。

Diez 通过其编译器、框架、提取器和文档生成器等四个组成部分,帮助开发者减少在不同应用和网站中实现一致性视觉身份的成本。

2. 项目快速启动

首先,确保您的系统中已经安装了 Node.js 和 Yarn。然后,按照以下步骤创建并启动一个 Diez 项目:

# 创建一个新的 Diez 项目
yarn create diez

# 进入项目目录
cd my-diez-project

# 安装项目依赖
yarn install

# 编译 TypeScript 代码到目标平台
yarn build

# 运行开发服务器
yarn start

my-diez-project 目录中,您将看到一个基本的 Diez 项目结构,您可以开始编辑并添加自己的设计令牌。

3. 应用案例和最佳实践

基本示例

以下是一个基本的设计令牌定义示例:

// tokens.ts
const tokens = {
  // 主要类型和单色资产使用此颜色。
  foregroundColor: Color.hex('#AE0000'),
  // 应谨慎使用此颜色,因为它非常强烈。
  foregroundAccent: Color.hex('#FF0000'),
  //这是我们默认的背景或“画布”颜色。
  backgroundColor: Color.hex('#231020'),
};

编译后,您可以在 iOS 和 Android 的原生包中访问这些令牌,例如:

tokens.foregroundColor;

同时,Diez 也会生成 SCSS 变量,您可以在样式表中这样使用:

#some-element {
  background-color: $tokens-background-color;
}

语义化令牌示例

Diez 强力支持语义化令牌模式,即分离设计令牌的值和其语义用途。以下是一个例子:

// colors.ts
import { Color } from '@diez/prefabs';

export const rawColors = {
  tiger: Color.rgba(241, 93, 74, 1),
  marigold: Color.rgba(255, 172, 57, 1),
  clover: Color.rgba(163, 206, 50, 1),
  cyan: Color.rgba(4, 182, 203, 1),
};

export const semanticColors = {
  foreground: rawColors.tiger,
  foreground50: rawColors.tiger.lighten(0.5),
  background: rawColors.clover,
  background50: rawColors.clover.lighten(0.5),
};

嵌套与复用示例

以下示例展示了如何通过多个 prefab(如 TypographColor 和基本类型 number)自然组合来表示复杂的数据层次结构:

// typography.ts
import { Typograph } from '@diez/prefabs';
import { sizes } from './sizes';
import { semanticColors } from './colors';

export const typography = {
  heading1: new Typograph({
    color: semanticColors.foreground,
    font: fonts.PoppinsExtraBold.Regular,
    fontSize: sizes.xxl,
  }),
  heading2: new Typograph({
    color: semanticColors.foreground50,
    font: fonts.PoppinsExtraBold.Regular,
    fontSize: sizes.xl,
  }),
  body: new Typograph({
    color: semanticColors.foreground,
    font: shibuiFonts.Poppins.Regular,
    fontSize: sizes.sm,
  }),
};

4. 典型生态项目

Diez 的生态系统中有许多项目,它们可以帮助您进一步提高开发效率。以下是一些典型的生态项目:

  • Diez Extractor for Figma: 从 Figma 设计文件自动提取设计令牌代码。
  • Diez CLI: 命令行工具,用于与 Diez 项目交互,如生成文档、编译令牌等。
  • Diez Web Components: 一组基于 Web 组件的设计系统,可以与 Diez 令牌无缝工作。

通过结合这些生态项目,您可以构建一个更加高效和统一的设计到代码的工作流程。

diez The Design Token Framework — Adopt a unified design language across platforms, codebases, and teams diez 项目地址: https://gitcode.com/gh_mirrors/di/diez

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

娄祺杏Zebediah

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值