实现
# 实现
# 规范
stylelint + @modyqyw/fabric
# 工具 utils
- 使用 3 次或以上的代码段需要抽离成 函数 (opens new window),如
f-get-color。 - 样式不抽离成混合
mixin,方便stylelint校验、修正。
# 变量 variables
- 变量 (opens new window) 划分为初始变量
initial variables,衍生变量derived variables,布局变量layout variables和组件变量components variables。- 初始变量 - 能够明确初始值,且不依赖于其它变量的变量,如
$red。 - 衍生变量 - 依赖其它变量或会做其它处理的变量,如
$red-1。 - 布局变量 - 特殊的初始变量/衍生变量,包含页面布局变量和栅格系统变量,如
$container-font-family。 - 组件变量 - 特殊的初始变量/衍生变量,包括各组件使用的变量,如
$badge--padding-y-base。
- 初始变量 - 能够明确初始值,且不依赖于其它变量的变量,如
- 变量名没有包含 属性名 (opens new window) - 通用度较高的变量,如
$unit表示单位,$scale表示缩放倍数,它们在很多地方都被使用到了,不需要也不应该在变量名里包含属性名。 - 变量名包括
has- 控制某些类是否会被生成,如$has-dark控制是否生成暗黑模式相关的类,$has-red控制是否生成red相关的类。 - 变量名前缀是属性名或变量名包含属性名 - 和该属性相关的变量,如
$m-position和position相关。- 特别地,
$m-position-value这个 映射 (opens new window) 会用于top,right,bottom,left这四个属性上,但变量名没有包含属性。
- 特别地,
- 变量名前缀是
f-- 函数,如$f-get-color。 - 变量名前缀是
m-- 映射,如$m-position。- 当对应的属性不会混淆时,键可以是空字符串。特别地,考虑到语义化,多个相关属性可以同时拥有空字符串的键。
$m-font-family会生成唯一的.font*类,不会混淆,所以可以使用空字符串作为默认值的键,对应的类就是.font,表示要使用默认的字体族。background相关属性生成的.bg*类不唯一,但$m-background-color生成的.bg*类不会和其它的混淆,所以$m-background-color里面也可以使用空字符串作为默认值的键,对应的类就是.bg,表示要使用默认的背景色。.border*类由多个相关属性共享,但.border本身可以明确表达需要使用边框的意图,对应地可以在$m-border-color,$m-border-style,$m-border-width都使用空字符串作为默认值的键,对应的类就是.border,表示要使用默认的边框。
- 变量名前缀是
l-- 列表list(opens new window),只会用于百分比值的生成,如$l-width-denominator表示width相关的类会出现百分比的值,分数形式下的分母源于$l-width-denominator。 - 变量名后缀是
-default- 作为基准值、可以被直接使用的简单变量,如$line-height-default表示line-height的基准值。对于同一属性,变量名后缀是-base的变量和变量名后缀是-default的变量最多只能存在一个。 - 变量名后缀是
-base- 作为基准值、需要作简单处理(往往是增减差量,乘以缩放倍数和添加单位)才能被使用的简单变量,如$font-size-base。对于同一属性,变量名后缀是-base的变量和变量名后缀是-default的变量最多只能存在一个。 - 变量名后缀是
-diff- 用于生成映射初始值的变量,表示差量,直接被基准值加减,如$font-size-diff。 - 变量名后缀是
-min- 用于循环填充映射的变量,表示循环开始的值,如$font-size-min。 - 变量名后缀是
-max- 用于循环填充映射的变量,表示循环结束的值,如$font-size-max。 - 变量名后缀是
-step- 用于循环填充映射的变量,表示循环循环每次递增的值,如$font-size-step。 - 变量名后缀是
-reverse- 暗黑模式下使用的变量,如$red-reverse。 - 变量名后缀是
-has-1-real- 在$scale不为 1 时生成,填充到对应属性的映射里。 - 简单的固定值不需要写成变量,如
relative,auto,100。 - 为不会带来破坏性影响的变量添加
!default,允许修改默认值。但不会添加校验,如错误地自定义变量将使得库无法正常运作。
# 重置 reset
- 以微信小程序为基准,重置小程序默认的样式。
# 通用类 classes
- 提供定位类
positioning。 - 提供盒模型类
box-model。 - 提供排版类
typography。 - 提供视觉类
visual。 - 提供杂项类
misc。
# 布局类 layout
- 提供页面布局类
layout。 - 提供栅格系统类
grid。
# 组件类 components
- 提供徽标
.badge相关类。 - 提供按钮
.btn相关类。 - 提供卡片
.card相关类。 - 提供分割线
.divider相关类。 - 提供图标
.icon相关类。 - 提供输入框
.input相关类。 - 提供加载器
.loader相关类。 - 提供遮罩
.overlay相关类。 - 提倡组合形成更多的组件,比如
overlay和card组合可以作为modal使用。 - 如果使用组合实现提供的 8 个组件的样式将会大大增加代码量,所以单独出来供使用。