Skip to main content

定制 Token

sacss/
├── less/ # 存放 LESS Mixin 的文件夹
│   ├── SACSS.less # 帮助创建 sacss 的辅助 LESS Mixin
│   ├── WidthPrefix.less # 为核心代码添加自定义前缀
│   └── Helpers.less # 独立于 sacss 之外的常用辅助 Mixin
├── sass/ # 存放 LESS Mixin 的文件夹
│   ├── SACSS.scss # 帮助创建 sacss 的辅助 SASS Mixin
│   ├── WidthPrefix.scss # 为核心代码添加自定义前缀
│   └── Helpers.scss # 独立于 sacss 之外的常用辅助 mixin
└── index.css # 所有项目基本相同的核心代码(只推荐定制,命名前缀);

lesssass 拥有完全相同的文件和 API,只是语法不一样的实现而已。

核心代码 sacss/index.css 里面存放的基本都是布局相关的代码。仅有纯黑和纯白两个颜色,甚至连常用的 font-size 相关的代码都不包含。

原因在于不同的设计师对于不同的项目,拥有着不同的设计规范,我们建议结合项目进行定制

SACSS API#

名称解释示例
前缀class name 前缀'_'
属性名完整的 Style 属性'font-size'
属性缩写基于命名规则的属性缩写'fs'
值列表需要连续输出的值列表8,16,24
单位所有的值会和单位进行乘法运算(为空表示不需要单位)1px
@import 'sacss/less/SACSS';
@prefix: ''; // class name 前缀
@unit: 1px; // 单位换算表达式
#SACSS('属性名'; '@{prefix}属性缩写'; '值列表'; @unit);

对于缩写的命名规则,请点击这里

@import 'sacss/less/SACSS';
@prefix: '';
@prefix_: '_';
@unit_px: 1px;
@unit_rem: (1/16*1rem); // 注意 less 中这里需要括号
#SACSS('margin-top'; '@{prefix}mt'; 8, 16, 24; @unit_px);
#SACSS('margin-right'; '@{prefix}mr'; 8, 16, 14; @unit_px);
#SACSS('margin-bottom'; '@{prefix_}mb'; 8, 16, 24; @unit_rem);
#SACSS('margin-left'; '@{prefix_}ml'; 8, 16, 24; @unit_rem);

这个与 SACSS 的同名方法,只是为了更加简单直观的创建 output 中的 CSS 代码。

如果你觉得手写这部分 CSS 毫无压力,也完全可以自己手写。

单位换算#

@import 'sacss/less/SACSS';
// px
#SACSS('margin-top'; 'mt'; 8, 16; 1px);
// rem
#SACSS('margin-bottom'; 'mb'; 8, 16; (1/16*1rem));
// Empty
#SACSS('font-weight'; 'fw'; 100,200,300,400;);

如果需要单位基于 rem 的换算,可填写 1/16*1rem

SACSS 方法只适用于数字类型的值使用。

比如 font-weight:bold; 不能使用 SACSS 创建,而 font-weight:400; 可以。

项目示例#

  • A 项目设计规范:所有间距,字号都必须是 4 的倍数,主色为红色;
  • B 项目设计规范:所有间距,字号都必须是 5 的倍数,主色为蓝色;
/* 所有间距,字号都必须是 4 的倍数; */
@import 'sacss/less/SACSS';
// 所有的 ClassName 都会添加这个前缀(但不推荐添加前缀)
@prefix: '';
// 单位换算表达式
@unit: 1px;
// margin
#SACSS('margin-top'; '@{prefix}mt'; 8, 16; @unit);
#SACSS('margin-right'; '@{prefix}mr'; 8, 16; @unit);
#SACSS('margin-bottom'; '@{prefix}mb'; 8, 16; @unit);
#SACSS('margin-left'; '@{prefix}ml'; 8, 16; @unit);
// padding
#SACSS('padding-top'; '@{prefix}pt'; 8, 16; @unit);
#SACSS('padding-right'; '@{prefix}pr'; 8, 16; @unit);
#SACSS('padding-bottom'; '@{prefix}pb'; 8, 16; @unit);
#SACSS('padding-left'; '@{prefix}pl'; 8, 16; @unit);
// font
#SACSS('font-size'; '@{prefix}fs'; 12, 16; @unit);
#SACSS('line-height'; '@{prefix}lh'; 16, 24; @unit);
// Color
.c_primary{ color: red; }
.bc_primary{ background-color: red; }
/* 其它自定义代码 */

哪些需要定制#

  • margin: 缩写 m
  • padding: 缩写 p
  • font-size: 缩写 fs
  • line-height: 缩写 lh
  • color: 缩写 c_
  • background-color: 缩写 bc_
  • 以及你和设计师沟通下来的 Token(你和设计师之间的约定)