UNPKG

6.35 kBSCSSView Raw
1@import "./_color";
2@import "../util/_function";
3
4////
5/// @module shadow: 阴影
6/// @category style
7////
8
9// Elevation & Shadow
10// 根据 Alibaba Base DPL(BASE DPL)设计规范实现
11// 在现实生活中,不同对象可以被堆积或粘贴起来,但是不能彼此交叉。对象自身塑造了自己的阴影并返回自己的光影。
12// 规则: x == y, 所有方向阴影的 blur 值, 透明度, 颜色都应该相同
13// -------------------------------
14
15// 变量: x, y, color, opacity, elevation
16// 常量: base(45度), top, right, bottom, left
17
18// ---------------- 阴影方向 ---------------- //
19
20/// Sides Base
21/// @type String
22$shadow-sides-base: "base" !default;
23/// Sides Up
24/// @type String
25$shadow-sides-up: "up" !default;
26/// Sides Right
27/// @type String
28$shadow-sides-right: "right" !default;
29/// Sides Down
30/// @type String
31$shadow-sides-down: "down" !default;
32/// Sides Left
33/// @type String
34$shadow-sides-left: "left" !default;
35
36// ---------------- 阴影距离 ----------------- //
37
38/// Distance 1x
39/// @type Number
40$shadow-distance-sd1: 1;
41/// Distance 2x
42/// @type Number
43$shadow-distance-sd2: 2;
44/// Distance 3x
45/// @type Number
46$shadow-distance-sd3: 3;
47
48/// Distance 1y
49/// @type Number
50$shadow-distance-sd1y: 1;
51/// Distance 2y
52/// @type Number
53$shadow-distance-sd2y: 2;
54/// Distance 3y
55/// @type Number
56$shadow-distance-sd3y: 3;
57
58// ---------------- 阴影透明度 ----------------- //
59
60/// Opacity 1
61/// @type Number
62$shadow-opacity-sd1: .12 !default;
63/// Opacity 2
64/// @type Number
65$shadow-opacity-sd2: .12 !default;
66/// Opacity 3
67/// @type Number
68$shadow-opacity-sd3: .12 !default;
69
70// ---------------- 阴影颜色 ----------------- //
71
72/// Color 1
73/// @type Color
74$shadow-color-sd1: $color-black !default;
75
76/// Color 2
77/// @type Color
78$shadow-color-sd2: $color-black !default;
79
80/// Color 3
81/// @type Color
82$shadow-color-sd3: $color-black !default;
83
84// 带透明度的颜色变量
85$shadow-color-opacity-sd1: rgba($shadow-color-sd1, $shadow-opacity-sd1) !default;
86$shadow-color-opacity-sd2: rgba($shadow-color-sd2, $shadow-opacity-sd2) !default;
87$shadow-color-opacity-sd3: rgba($shadow-color-sd3, $shadow-opacity-sd3) !default;
88
89// ------------------ 阴影羽化值 ---------------- //
90
91/// Blur 1
92/// @type Number
93$shadow-blur-sd1: 3 !default;
94
95/// Blur 2
96/// @type Number
97$shadow-blur-sd2: 4 !default;
98
99/// Blur 3
100/// @type Number
101$shadow-blur-sd3: 5 !default;
102
103// ------------------ 阴影扩散值 ---------------- //
104
105/// Spread 1
106/// @type Number
107$shadow-spread-sd1: 0 !default;
108
109/// Spread 2
110/// @type Number
111$shadow-spread-sd2: 0 !default;
112
113/// Spread 3
114/// @type Number
115$shadow-spread-sd3: 0 !default;
116
117// ------------------ Shadow Values ---------------- //
118
119/// shadow-zero
120/// @export
121/// @unconfigurable
122$shadow-zero: none;
123
124/// shadow-1
125/// @semantic 阴影1-右下
126/// @export
127/// @unconfigurable
128$shadow-1: shadow-maker($shadow-sides-base, $shadow-blur-sd1, $shadow-color-opacity-sd1, $shadow-distance-sd1, $shadow-distance-sd1y, $shadow-spread-sd1);
129
130/// shadow-1-up
131/// @semantic 阴影1-上
132/// @export
133/// @unconfigurable
134$shadow-1-up: shadow-maker($shadow-sides-up, $shadow-blur-sd1, $shadow-color-opacity-sd1, $shadow-distance-sd1, $shadow-distance-sd1y, $shadow-spread-sd1);
135
136/// shadow-1-right
137/// @semantic 阴影1-右
138/// @export
139/// @unconfigurable
140$shadow-1-right: shadow-maker($shadow-sides-right, $shadow-blur-sd1, $shadow-color-opacity-sd1, $shadow-distance-sd1, $shadow-distance-sd1y, $shadow-spread-sd1);
141
142/// shadow-1-down
143/// @semantic 阴影1-下
144/// @export
145/// @unconfigurable
146$shadow-1-down: shadow-maker($shadow-sides-down, $shadow-blur-sd1, $shadow-color-opacity-sd1, $shadow-distance-sd1, $shadow-distance-sd1y, $shadow-spread-sd1);
147
148/// shadow-1-left
149/// @semantic 阴影1-左
150/// @export
151/// @unconfigurable
152$shadow-1-left: shadow-maker($shadow-sides-left, $shadow-blur-sd1, $shadow-color-opacity-sd1, $shadow-distance-sd1, $shadow-distance-sd1y, $shadow-spread-sd1);
153
154/// shadow-2
155/// @semantic 阴影2-右下
156/// @export
157/// @unconfigurable
158$shadow-2: shadow-maker($shadow-sides-base, $shadow-blur-sd2, $shadow-color-opacity-sd2, $shadow-distance-sd2, $shadow-distance-sd2y, $shadow-spread-sd2);
159/// shadow-2-up
160/// @semantic 阴影2-上
161/// @export
162/// @unconfigurable
163$shadow-2-up: shadow-maker($shadow-sides-up, $shadow-blur-sd2, $shadow-color-opacity-sd2, $shadow-distance-sd2, $shadow-distance-sd2y, $shadow-spread-sd2);
164/// shadow-2-right
165/// @semantic 阴影2-右
166/// @export
167/// @unconfigurable
168$shadow-2-right: shadow-maker($shadow-sides-right, $shadow-blur-sd2, $shadow-color-opacity-sd2, $shadow-distance-sd2, $shadow-distance-sd2y, $shadow-spread-sd2);
169/// shadow-2-down
170/// @semantic 阴影2-下
171/// @export
172/// @unconfigurable
173$shadow-2-down: shadow-maker($shadow-sides-down, $shadow-blur-sd2, $shadow-color-opacity-sd2, $shadow-distance-sd2, $shadow-distance-sd2y, $shadow-spread-sd2);
174/// shadow-2-left
175/// @semantic 阴影2-左
176/// @export
177/// @unconfigurable
178$shadow-2-left: shadow-maker($shadow-sides-left, $shadow-blur-sd2, $shadow-color-opacity-sd2, $shadow-distance-sd2, $shadow-distance-sd2y, $shadow-spread-sd2);
179
180/// shadow-3
181/// @semantic 阴影3-右下
182/// @export
183/// @unconfigurable
184$shadow-3: shadow-maker($shadow-sides-base, $shadow-blur-sd3, $shadow-color-opacity-sd3, $shadow-distance-sd3, $shadow-distance-sd3y, $shadow-spread-sd3);
185/// shadow-3-up
186/// @semantic 阴影3-上
187/// @export
188/// @unconfigurable
189$shadow-3-up: shadow-maker($shadow-sides-up, $shadow-blur-sd3, $shadow-color-opacity-sd3, $shadow-distance-sd3, $shadow-distance-sd3y, $shadow-spread-sd3);
190/// shadow-3-right
191/// @semantic 阴影3-右
192/// @export
193/// @unconfigurable
194$shadow-3-right: shadow-maker($shadow-sides-right, $shadow-blur-sd3, $shadow-color-opacity-sd3, $shadow-distance-sd3, $shadow-distance-sd3y, $shadow-spread-sd3);
195/// shadow-3-down
196/// @semantic 阴影3-下
197/// @export
198/// @unconfigurable
199$shadow-3-down: shadow-maker($shadow-sides-down, $shadow-blur-sd3, $shadow-color-opacity-sd3, $shadow-distance-sd3, $shadow-distance-sd3y, $shadow-spread-sd3);
200/// shadow-3-left
201/// @semantic 阴影3-左
202/// @export
203/// @unconfigurable
204$shadow-3-left: shadow-maker($shadow-sides-left, $shadow-blur-sd3, $shadow-color-opacity-sd3, $shadow-distance-sd3, $shadow-distance-sd3y, $shadow-spread-sd3);
205
206// ----------- patch ----------- //
207$shadow-0: $shadow-zero;