Flow

from WeChat Ads Design.

Flow 是一个基于原子类的流动组件,你只需关心各断点下的样式,Flow 会帮助你让它们在断点间平滑地过渡,以实现这样的效果。
断点 1
屏幕宽度
px
字体大小
px
断点 2
屏幕宽度
px
字体大小
px
  • 1. 此页面既是流动数值的动态计算器,同时也通过图表和代码来演示这个组件的具体行为,设计师可以通过图表查看各断点的流动数值,开发者可以通过代码来理解原理;
  • 2. <Flow />是一个基于原子类的 React 组件,在运行时处理包含断点的类名,然后动态加入新的样式,完成流动;
  • * 此示例使用字体大小演示流动关系,实际上任何 CSS 属性都可以尝试流动的思路;
断点
屏幕宽度
字体大小
断点 1
断点 1
320 px
20 px
断点 1
375 px
20 px
断点 1
480 px
20 px
断点 1
568 px
23 px
断点 2
断点 2
768 px
30 px
断点 2
960 px
30 px
断点 2
1024 px
30 px
断点 2
1280 px
30 px
断点 2
1440 px
30 px
断点 2
1600 px
30 px
组件使用JSX
<Flow
  as="div"
  className="500:text-20 700:text-30"
>
  ...
</Flow>
渲染结果HTML
<div className="font-size_20-30_500-700">
  ...
</div>
相关样式CSS
.font-size_20-30_500-700 {
  font-size: clamp(20px, 5vw - 5px, 30px);
}
在只有两个断点的情况下,<Flow />会直接以新的类名替换两个断点类名,因使用 clamp就可以完成流动的效果。
aragakey@qq.com