zhangwencui
7 天以前 9af9d62696a57a8ac8603e41931afbe63ae05cb8
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
// 必须转发和使用 theme.scss
@forward './theme.scss';
@use './theme.scss' as *;
 
// ============================================
// 全局 SCSS 变量(建议直接复用,如有特殊设计需求可按需修改)
// ============================================
 
// 屏幕适配(设计稿基准 750rpx)
$screen-width: 750rpx;
$page-padding: 32rpx; // 页面左右安全边距
$page-spacing: 32rpx;
$max-content-width: 686rpx; // 750 - 32*2,内容最大宽度
 
// 间距(8px 网格系统)
$spacing-xs: 8rpx;
$spacing-sm: 16rpx;
$spacing-md: 24rpx;
$spacing-lg: 32rpx;
$spacing-xl: 48rpx;
 
// 圆角(语义化)
$radius-xs: 4rpx; // 小元素:标签、徽章
$radius-sm: 8rpx; // 卡片内小元素
$radius-md: 12rpx; // 常规卡片
$radius-lg: 16rpx; // 大卡片
$radius-xl: 20rpx; // 特大卡片
$radius-button: 48rpx; // 按钮专用(全圆角,符合主流小程序)
$radius-round: 999rpx; // 完全圆形
 
// 按钮高度(新增)
$button-height-sm: 64rpx; // 小按钮(次要操作)
$button-height-md: 80rpx; // 常规按钮(主流标准)
$button-height-lg: 96rpx; // 大按钮(主要操作、底部固定)
 
// 阴影(语义化)
$shadow-card: 0 2rpx 12rpx rgba(0, 0, 0, 0.08); // 卡片阴影
$shadow-card-hover: 0 4rpx 20rpx rgba(0, 0, 0, 0.12); // 卡片悬浮
$shadow-float: 0 4rpx 16rpx rgba(0, 0, 0, 0.1); // 浮层阴影(如筛选栏、底部操作栏)
$shadow-popup: 0 8rpx 32rpx rgba(0, 0, 0, 0.15); // 弹窗阴影
 
// 字体大小
$font-size-xs: 22rpx;
$font-size-sm: 24rpx;
$font-size-md: 28rpx;
$font-size-lg: 32rpx;
$font-size-xl: 36rpx;
$font-size-xxl: 40rpx;
 
// 行高
$line-height-tight: 1.3;
$line-height-normal: 1.5;
$line-height-loose: 1.8;
 
// 字重
$font-weight-normal: 400;
$font-weight-medium: 500;
$font-weight-semibold: 600;
$font-weight-bold: 700;
 
// 过渡动画
$transition-fast: 0.15s ease;
$transition-base: 0.25s ease;
$transition-slow: 0.35s ease;
 
// ============================================
// 常用 Mixin
// ============================================
// 单行文本省略
@mixin text-ellipsis {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
 
// 多行文本省略
@mixin text-ellipsis-multi($lines: 2) {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: $lines;
  overflow: hidden;
  text-overflow: ellipsis;
}
 
// 清除浮动
@mixin clearfix {
  &::after {
    content: '';
    display: table;
    clear: both;
  }
}
 
// 水平垂直居中
@mixin flex-center {
  display: flex;
  align-items: center;
  justify-content: center;
}
 
// 横向滚动容器(微信小程序兼容)
@mixin scroll-x-container {
  white-space: nowrap;
}
 
// 横向滚动子项(微信小程序兼容,必须配合 scroll-x-container 使用)
@mixin scroll-x-item($width) {
  display: inline-block;
  width: $width;
  vertical-align: top;
  white-space: normal; // 恢复子项内部换行
}
 
// Button 样式重置与保护
// 使用方法:@include button-reset;
@mixin button-reset {
  padding: 0;
  margin: 0;
  line-height: normal;
  text-align: inherit;
  white-space: nowrap; // 强制不换行
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box; // 关键:确保 padding 和 border 不会撑大尺寸
 
  &::after {
    border: none;
  }
}