设计变量

大约 4 分钟

设计变量

B+ Design 提供了一套完整的 CSS 设计变量(Design Token),覆盖颜色、圆角、字体等基础样式,便于在业务中统一使用和主题定制。

使用方式

CSS 变量

引入组件库样式后,所有 --fs-* 变量自动挂载在 :root,CSS/Less/SCSS 均可直接使用:

.my-element {
  color: var(--fs-blue-base);
  border-radius: var(--fs-radius-base);
  font-size: var(--fs-font-base);
}

Less 变量

组件库构建产物中包含完整的 Less 变量文件,路径为 @fs/smart-design/dist/styles/settings/

方式一:按需引入

在需要使用的 .less 文件顶部手动引入:

// 只引入颜色变量
@import '@fs/smart-design/dist/styles/settings/color.less';

// 或引入全部变量(颜色、圆角、间距等)
@import '@fs/smart-design/dist/styles/settings/var.less';

.my-button {
  background: @blue-base;
  border-radius: @border-radius-base;
  color: @grey-1;
}

方式二:Vite 全局注入(推荐)

在项目 vite.config.ts 中配置一次,所有 .less 文件无需单独引入即可使用变量:

// vite.config.ts
import path from 'path'

export default defineConfig({
  css: {
    preprocessorOptions: {
      less: {
        // 使用 (reference) 只导入变量定义,不输出多余 CSS
        modifyVars: {
          hack: `true; @import (reference) "${path.resolve('node_modules/@fs/smart-design/dist/styles/settings/var.less')}";`,
        },
        javascriptEnabled: true,
      },
    },
  },
})

配置后直接使用,无需任何 import:

.my-element {
  color: @blue-base;
  background: @buleGrey-base-2;
}

变量类型

变量类型说明
颜色主题色、功能色、中性色
圆角基础圆角、按钮圆角、卡片圆角
间距内边距、外边距尺度
阴影层级阴影
字体字号、字重、行高

颜色变量

主题色(Blue)

错误色(Red)

警告色(Orange)

成功色(Green)

扩展色(Cyan)

扩展色(Lime)

扩展色(Pink)

扩展色(Purple)

品牌中性灰(BlueGrey)

中性灰(Grey)

圆角变量

变量名默认值说明
--fs-radius-base3px基础圆角
@border-radius-base3px组件浮层圆角(按钮、输入框等)

间距变量

变量名默认值说明
--fs-len-base8px基础间距单位
@input-padding-vertical-base6px输入框垂直内边距(中)
@input-padding-horizontal-base8px输入框水平内边距(中)
@input-padding-vertical-lg10px输入框垂直内边距(大)
@input-padding-horizontal-lg8px输入框水平内边距(大)
@input-padding-vertical-sm2px输入框垂直内边距(小)
@input-padding-horizontal-sm8px输入框水平内边距(小)
@table-padding-vertical24px表格垂直内边距(默认)
@table-padding-horizontal16px表格水平内边距(默认)
@table-padding-vertical-md16px表格垂直内边距(中)
@table-padding-horizontal-md16px表格水平内边距(中)
@table-padding-vertical-sm8px表格垂直内边距(小)
@table-padding-horizontal-sm16px表格水平内边距(小)
@list-item-padding16px 0列表项内边距(默认)
@list-item-padding-sm8px 0列表项内边距(小)
@list-item-padding-lg24px 0列表项内边距(大)
@list-item-meta-avatar-margin-right12px列表项头像右外边距
@divider-text-padding8px分割线文字内边距
@divider-vertical-gutter16px垂直分割线间距
@breadcrumb-separator-margin0 8px面包屑分隔符外边距
@message-notice-content-padding12px 16px全局提示内边距
@notification-padding-vertical24px通知框垂直内边距
@notification-padding-horizontal24px通知框水平内边距
@alert-with-description-padding-vertical8px带描述警告框垂直内边距

阴影变量

变量名默认值说明
@box-shadow-base0px 4px 12px 1px rgba(88, 98, 110, 0.14)基础阴影(默认浮层)
@shadow-20px 4px 12px 1px rgba(88, 98, 110, 0.14)二级阴影
@shadow-1-up0 -6px 14px 2px rgba(88, 98, 110, 0.18)向上阴影
@shadow-1-down0 6px 14px 2px rgba(88, 98, 110, 0.18)向下阴影
@shadow-1-left-6px 0 14px 2px rgba(88, 98, 110, 0.18)向左阴影
@shadow-1-right6px 0 14px 2px rgba(88, 98, 110, 0.18)向右阴影

字体变量

变量名默认值说明
--fs-font-base14px基础字号(CSS 变量)
@font-size-base12px全局主字号
@line-height-base1.5基础行高
@heading-color#333标题文字颜色
@text-color#333主文本颜色
@text-color-secondary#666次文本颜色
@disabled-color#bbbbbb失效状态文字颜色
@drawer-title-font-size16px抽屉标题字号
@drawer-title-line-height24px抽屉标题行高
@steps-title-line-height24px步骤条标题行高
@steps-icon-font-size16px步骤条图标字号
@avatar-font-size-base16px头像文字字号(默认)
@avatar-font-size-lg32px头像文字字号(大)
@avatar-font-size-sm14px头像文字字号(小)
@avatar-font-size-mini12px头像文字字号(迷你)
上次编辑于:
贡献者: noah.su