跳到主要内容
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 中,动效解释完一次变化,就立刻退场。其中大部分只是一层用 200 到 250 毫秒淡入的状态层。

两类运动

动效令牌按两个维度组织成弹簧:

  • 空间(spatial)弹簧负责移动物体或改变其大小。它们可以略微过冲,就像实物停稳前的那一下。
  • 效果(effects)弹簧负责改变颜色和不透明度。它们从不过冲,因为会回弹的颜色看起来像是出了故障。

每一类都分为 fast、default 和 slow。具备真实弹簧动画的平台使用刚度和阻尼值;CSS 则使用与它们一同保存的时长和 cubic-bezier 近似曲线。

共有两套方案。standard 是默认方案,接近临界阻尼。expressive 是一个附加的层,为想要更多弹性的产品提供。

时长与缓动

对于不使用弹簧的过渡,另外提供固定的时长和缓动曲线。

变化的种类 参考值
状态变化(悬停、按下、选中) 200–250ms
元素进入 300–400ms,界面越大越长
大范围的展开 最长 800ms,各项之间错开 100ms
任何元素离开 比进入时更快
令牌 值 曲线
--tanrei-sys-motion-easing-emphasized-accelerate cubic-bezier(0.3, 0, 0.8, 0.15)
--tanrei-sys-motion-easing-emphasized-decelerate cubic-bezier(0.05, 0.7, 0.1, 1)
--tanrei-sys-motion-easing-enter cubic-bezier(0.2, 0, 0, 1)
--tanrei-sys-motion-easing-exit cubic-bezier(0.3, 0, 1, 1)
--tanrei-sys-motion-easing-linear cubic-bezier(0, 0, 1, 1)
--tanrei-sys-motion-easing-spatial cubic-bezier(0.2, 0, 0, 1)
--tanrei-sys-motion-easing-standard cubic-bezier(0.2, 0, 0, 1)
--tanrei-sys-motion-easing-standard-accelerate cubic-bezier(0.3, 0, 1, 1)
--tanrei-sys-motion-easing-standard-decelerate cubic-bezier(0, 0, 0, 1)
--tanrei-sys-motion-easing-state cubic-bezier(0.2, 0, 0, 1)

生成自 design/tokens/tanrei.light.tokens.json, tokens/sys/motion.tokens.json

不动的东西

  • 焦点环立即出现。 键盘用户需要马上看到自己所在的位置,而不是等一段动画播完。
  • 默认没有涟漪。 按下反馈就是状态层;涟漪是主题层面的可选项,而不是基线。

减弱动态效果

每个实现都必须遵循平台的“减弱动态效果”设置。在该设置下,空间上的运动会被移除,或替换为短暂的交叉淡化,并且没有任何循环播放的动画。这是每个组件“完成定义”的一部分,而不是锦上添花。

所有的值都列在动效令牌参考中。