# 自定义主题

背景知识

First UI 默认提供了一套主题,并使用 SCSS 变量 来实现定制主题,如果不熟悉SCSS,请自行了解,避免许多不必要的困扰。

很多组件都提供了props属性来修改颜色以及大小等,SCSS 变量 优先级要小于props属性传值,可理解为默认值配置,当传入其他值时优先使用传入的值。

# 样式变量

First UI 主题的 SCSS 变量 写在 组件目录 / fui-theme/ 目录下的 fui-theme.scss 文件中。
/*
  FirstUI组件内置的基础变量【注意:需要全局引入或写入根目录uni.scss中才有效】
  1.如果你是组件使用者,你可以通过修改这些变量的值来定制自己的组件主题,实现自定义主题功能
  2.如果全局修改需要在项目根目录下App.vue文件中引入此scss文件
  3.如果组件中有props属性是针对颜色设置(默认为空值),则优先级:props变量(如果有传值)> 全局主题色
  注意:建议在 uni.scss 中引入,App.uvue中引入可能无法替换组件内!default变量值
*/

/* 行为相关颜色 */
$fui-color-primary: #465CFF;
$fui-color-success: #09BE4F;
$fui-color-warning: #FFB703;
$fui-color-danger: #FF2B2B;
$fui-color-purple: #6831FF;

/* 文字基本颜色、其他辅助色 */
/* 用于重量级文字信息、标题 */
$fui-color-title: #181818;
/* 用于普通级段落信息、引导词 */
$fui-color-section: #333333;
/* 用于次要标题内容 */
$fui-color-subtitle: #7F7F7F;
/* 用于底部标签、描述、次要文字信息 */
$fui-color-label: #B2B2B2;
/* 用于辅助、次要信息、禁用文字等。如:待输入状态描述文字,已点击按钮文字 */
$fui-color-minor: #CCCCCC;
$fui-color-white: #FFFFFF;
/* 链接颜色 */
$fui-color-link: #465CFF;


/* 背景颜色 */
$fui-bg-color: #FFFFFF;
/* 页面背景底色 */
$fui-bg-color-grey: #F1F4FA;
/* 内容模块底色 */
$fui-bg-color-content: #F8F8F8;
$fui-bg-color-red: rgba(255, 43, 43, .05);
$fui-bg-color-yellow: rgba(255, 183, 3, .1);
$fui-bg-color-purple: rgba(104, 49, 255, .05);
$fui-bg-color-green: rgba(9, 190, 79, .05);
/* 点击背景色 */
$fui-bg-color-hover: rgba(0, 0, 0, 0.2);
/* 遮罩颜色 */
$fui-bg-color-mask: rgba(0, 0, 0, 0.6);


/* 边框颜色 */
$fui-color-border: #EEEEEE;

/* 输入框等placeholder字体颜色 */
$fui-placeholder-color:#CCCCCC;

/* 阴影颜色 */
$fui-color-shadow: rgba(2, 4, 38, 0.05);

/* 禁用态的透明度 */
$fui-opacity-disabled: 0.5;

/* 头像尺寸 */
$fui-img-size-sm: 64rpx;
$fui-img-size-middle: 96rpx;
$fui-img-size-lg: 128rpx;

/* 图片尺寸 */
$fui-img-sm: 60rpx;
$fui-img-base: 120rpx;
$fui-img-lg: 240rpx;

/* Border Radius */
$fui-border-radius-sm: 16rpx;
$fui-border-radius-base: 24rpx;
$fui-border-radius-lg: 48rpx;

/* 水平间距 */
$fui-spacing-row-sm: 16rpx;
$fui-spacing-row-base: 24rpx;
$fui-spacing-row-lg: 32rpx;

/* 垂直间距 */
$fui-spacing-col-sm: 8rpx;
$fui-spacing-col-base: 16rpx;
$fui-spacing-col-lg: 24rpx;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84

# 定制方法

全局引入
新建scss文件或者在项目根目录 uni.scss 文件中写入对应变量以及值。
/**
 * 如果是自定scss文件,需要在 uni.scss 中引入。注意:App.uvue中引入可能不生效!
 * 特别说明:以下theme.scss中内容就是上方变量内容,避免直接修改 fui-theme.scss文件,不利于迭代!
 */
@import "@/自定义路径/.../theme.scss";
1
2
3
4
5
Last Updated: 1/23/2024, 3:28:41 PM