跳到主要内容
menumenu tanreiexpand_morecontrasttranslate
tanreiexpand_more
开始使用WebReactSwiftUIJetpack ComposeFlutterReact Native预设你自己的设计系统与 AI 代理一起使用 Tanrei品牌设计令牌设计系统与定制Theme Studio颜色字体排印图标形状层级动效交互状态行为布局无障碍文字颜色令牌字阶令牌形状令牌层级令牌动效令牌状态令牌间距与度量令牌组件按钮主操作按钮分段按钮按钮组带菜单的按钮工具栏复制按钮复选框单选按钮开关纸片(Chip)菜单滑块滑块字段日历DateTimePicker字段组单选组复选框组下拉选择框下拉选择字段菜单栏文件上传文件选择器 进阶放置区文本输入框 进阶文本字段纸片字段字段组合框 进阶组合框字段数字输入框 进阶数字字段颜色输入框 进阶颜色字段一次性验证码输入框 进阶一次性验证码字段嵌入式文本输入框 进阶聊天输入栏卡片分隔线模态层 进阶对话框列表列表行底部面板侧边面板轮播代码块表格弹出框步骤折叠面板描述列表图示应用外壳页头树视图时间线图片预览调整手柄可调整大小的框滚动区域徽标进度指示器计量条数字滚动器加载指示器消息条(Snackbar)工具提示键盘快捷键标签(Tag)行内代码提示块(Callout)头像空状态标签组(Tag group)骨架屏文件项色块跑马灯文本标签页标签页视图应用栏导航栏导航抽屉搜索链接分页上一页/下一页链接步骤条面包屑目录链接卡片FAB 菜单状态Tanrei 是如何构建的参与贡献许可与致谢
首页开始使用预设

预设

用内置的某个预设来绘制你的产品:一个样式表和一个属性、它所需的字体、它包含的组件;也可以只把预设中的一个组件引入你自己的系统。

content_copy以 Markdown 格式查看

Tanrei 内置默认系统 tanrei 和三个预设:m3-like、m3-expressive-like 和 cupertino。预设是一个设计系统层,和你自己会编写的层一样:它把另一个设计系统的值赋给 Tanrei 的组件,并决定自己包含哪些组件、以及组件 variant 的哪些值。你可以直接使用它,也可以把它作为你自己的设计系统的起点。

在 Web 上使用预设

  1. 先加载令牌,再加载预设的样式表。预设的令牌在设置了它的属性的范围内生效。

    import '@tanrei/web/tokens.css';
    import '@tanrei/web/systems/m3-like.css';
  2. 在 <html> 或页面的任意部分上设置属性:一个页面上可以同时存在多个系统。

    <html data-tanrei-system="m3-like">
  3. 用预设的入口代替 @tanrei/web 来注册组件。它只注册该预设包含的组件。

    import '@tanrei/web/m3-like';
  4. 按照令牌使用的字体族名称加载它的字体,见下文。Tanrei 不附带字体文件:参见字体。

预设包含的内容列在它的组件清单 @tanrei/web/systems/<id>.components.json 中,编辑器和编码代理会读取它。在本站,在组件列表旁边或侧边栏顶部选择一个设计系统,列表就只显示该系统包含的组件。

预设一览

下面每个预设的信息都读取自它的层、解析后的令牌和组件清单。

m3-like

样式表
@tanrei/web/systems/m3-like.css
属性
data-tanrei-system="m3-like"
组件
96 个,由 @tanrei/web/m3-like 注册
正文
Roboto, system-ui, sans-serif — 加载 Roboto (@fontsource-variable/roboto)
代码
Roboto Mono, ui-monospace, monospace — 加载 Roboto Mono (@fontsource-variable/roboto-mono)
图标
Material Symbols Outlined — 加载 Material Symbols Outlined (@fontsource-variable/material-symbols-outlined)
默认系统没有的
FAB menu, Segmented button
此系统没有的
无
排除的变体值
filled: Navigation bar · tonal: Tabs

生成自 tokens/systems/m3-like.system.json, tokens/generated/m3-like/components.json

m3-expressive-like

样式表
@tanrei/web/systems/m3-expressive-like.css
属性
data-tanrei-system="m3-expressive-like"
组件
96 个,由 @tanrei/web/m3-expressive-like 注册
正文
Roboto, system-ui, sans-serif — 加载 Roboto (@fontsource-variable/roboto)
代码
Roboto Mono, ui-monospace, monospace — 加载 Roboto Mono (@fontsource-variable/roboto-mono)
图标
Material Symbols Outlined — 加载 Material Symbols Outlined (@fontsource-variable/material-symbols-outlined)
默认系统没有的
FAB menu, Segmented button
此系统没有的
无
排除的变体值
filled: Navigation bar · tonal: Tabs

生成自 tokens/systems/m3-expressive-like.system.json, tokens/generated/m3-expressive-like/components.json

cupertino

样式表
@tanrei/web/systems/cupertino.css
属性
data-tanrei-system="cupertino"
组件
95 个,由 @tanrei/web/cupertino 注册
正文
-apple-system, BlinkMacSystemFont, system-ui, Inter, sans-serif — 加载 Inter (@fontsource-variable/inter)
代码
ui-monospace, SF Mono, Menlo, monospace — 使用平台自带的字体
图标
Material Symbols Rounded — 加载 Material Symbols Rounded (@fontsource-variable/material-symbols-rounded)
默认系统没有的
Segmented button
此系统没有的
FAB menu(请改用 Main action button, Bottom sheet)
排除的变体值
filled: Navigation bar

生成自 tokens/systems/cupertino.system.json, tokens/generated/cupertino/components.json

把预设中的一个组件引入你自己的系统

预设中有而默认系统中没有的组件(例如 m3-like 的 FAB 菜单,或分段按钮),基于默认系统的产品同样可以使用。编写一个继承 tanrei 的层,在其中引入该组件,并导入它自己的模块。这样该组件会用你的系统的令牌绘制:它的令牌引用你的系统的令牌,因此这样引入的 FAB 菜单与产品的其他部分外观一致,预设的值一个也不会带进来。

  1. 在你的层(design/acme.system.json;参见你自己的设计系统)中引入该组件。位于预设层中的组件要用 from 指明那个层;默认系统排除在外的组件只写名称。

    {
      "id": "acme",
      "extends": "tanrei",
      "components": {
        "include": [{ "name": "fab-menu", "from": "m3-like" }, "segmented-button"]
      }
    }
  2. 构建。npx tanrei build 会写出你的系统的样式表(其中包含被引入组件的令牌,值取自你的系统)以及列出这些组件的组件清单。

  3. 加载你的样式表,设置你的属性,并注册默认系统的组件和你引入的组件。

    import '@tanrei/web/tokens.css';
    import './styles/acme.css';
    import '@tanrei/web';
    import '@tanrei/web/components/fab-menu';
    import '@tanrei/web/components/segmented-button';
    <html data-tanrei-system="acme">

在不包含某个组件的系统下使用它时,它仍会被绘制,并在开发构建的控制台中提示这一点。每个组件的页面都会说明哪些系统包含它,以及其他系统改用什么。