@cregis/tokens 1.0.7 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/desktop/color-definition.css +34 -0
- package/src/desktop/fragment/index.css +0 -1
- package/src/desktop/index.css +1 -0
- package/src/desktop/motion/base.css +64 -0
- package/src/desktop/motion/index.css +9 -1
- package/src/desktop/motion/recipe.css +108 -0
- package/src/desktop/motion/semantic.css +162 -0
- package/src/desktop/motion/utilities.css +15 -0
- package/src/desktop/size/blur.css +2 -2
- package/src/desktop/size/depth.css +2 -2
- package/src/mobile/size/depth.css +2 -2
- package/src/desktop/fragment/blur.css +0 -3
- package/src/desktop/motion/vars.css +0 -3
package/package.json
CHANGED
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
--event-focus: color(from var(--eds-base) display-p3 r g b / 0.07);
|
|
25
25
|
--event-focus-brand: color(from var(--eds-brand) display-p3 r g b / 1);
|
|
26
26
|
--event-focus-brand-weaken: color(from var(--eds-brand) display-p3 r g b / 0.2);
|
|
27
|
+
--event-focus-brand-subtle: color(from var(--eds-brand) display-p3 r g b / 0.12);
|
|
27
28
|
|
|
28
29
|
--status-disable-base: color(from var(--eds-base) display-p3 r g b / 0.2);
|
|
29
30
|
--status-disable-base-weaken: color(from var(--eds-base) display-p3 r g b / 0.05);
|
|
@@ -134,6 +135,17 @@
|
|
|
134
135
|
--stroke-same-white-secondary: color(from var(--eds-same-white) display-p3 r g b / 0.6);
|
|
135
136
|
--stroke-same-black-primary: color(from var(--eds-same-black) display-p3 r g b / 1);
|
|
136
137
|
--stroke-same-black-secondary: color(from var(--eds-same-black) display-p3 r g b / 0.6);
|
|
138
|
+
|
|
139
|
+
--aml-exposure-tone-1: color(display-p3 0.5373 0.7294 0.6039);
|
|
140
|
+
--aml-exposure-tone-2: color(display-p3 0.5608 0.7451 0.7137);
|
|
141
|
+
--aml-exposure-tone-3: color(display-p3 0.5725 0.7373 0.7529);
|
|
142
|
+
--aml-exposure-tone-4: color(display-p3 0.5804 0.7059 0.7608);
|
|
143
|
+
--aml-exposure-tone-5: color(display-p3 0.5882 0.6824 0.7647);
|
|
144
|
+
--aml-exposure-tone-6: color(display-p3 0.8078 0.6549 0.5765);
|
|
145
|
+
--aml-exposure-tone-7: color(display-p3 0.7765 0.5451 0.6275);
|
|
146
|
+
--aml-exposure-tone-8: color(display-p3 0.7569 0.5294 0.6941);
|
|
147
|
+
--aml-exposure-tone-9: color(display-p3 0.7373 0.5137 0.7412);
|
|
148
|
+
--aml-exposure-tone-10: color(display-p3 0.6627 0.502 0.7294);
|
|
137
149
|
}
|
|
138
150
|
|
|
139
151
|
.dark {
|
|
@@ -164,6 +176,17 @@
|
|
|
164
176
|
|
|
165
177
|
--stroke-outline-deep: color(from var(--eds-base) display-p3 r g b / 0.2);
|
|
166
178
|
--stroke-outline-subtle: color(from var(--eds-base) display-p3 r g b / 0.1);
|
|
179
|
+
|
|
180
|
+
--aml-exposure-tone-1: color(display-p3 0.3529 0.5647 0.4235);
|
|
181
|
+
--aml-exposure-tone-2: color(display-p3 0.2745 0.5608 0.4667);
|
|
182
|
+
--aml-exposure-tone-3: color(display-p3 0.2 0.549 0.5137);
|
|
183
|
+
--aml-exposure-tone-4: color(display-p3 0.1333 0.5373 0.5569);
|
|
184
|
+
--aml-exposure-tone-5: color(display-p3 0.1059 0.5255 0.5922);
|
|
185
|
+
--aml-exposure-tone-6: color(display-p3 0.6039 0.4118 0.3137);
|
|
186
|
+
--aml-exposure-tone-7: color(display-p3 0.6196 0.3922 0.3412);
|
|
187
|
+
--aml-exposure-tone-8: color(display-p3 0.6235 0.3765 0.3765);
|
|
188
|
+
--aml-exposure-tone-9: color(display-p3 0.6157 0.3647 0.4157);
|
|
189
|
+
--aml-exposure-tone-10: color(display-p3 0.5922 0.3608 0.4549);
|
|
167
190
|
}
|
|
168
191
|
|
|
169
192
|
@media (prefers-color-scheme: dark) {
|
|
@@ -195,5 +218,16 @@
|
|
|
195
218
|
|
|
196
219
|
--stroke-outline-deep: color(from var(--eds-base) display-p3 r g b / 0.2);
|
|
197
220
|
--stroke-outline-subtle: color(from var(--eds-base) display-p3 r g b / 0.1);
|
|
221
|
+
|
|
222
|
+
--aml-exposure-tone-1: color(display-p3 0.3529 0.5647 0.4235);
|
|
223
|
+
--aml-exposure-tone-2: color(display-p3 0.2745 0.5608 0.4667);
|
|
224
|
+
--aml-exposure-tone-3: color(display-p3 0.2 0.549 0.5137);
|
|
225
|
+
--aml-exposure-tone-4: color(display-p3 0.1333 0.5373 0.5569);
|
|
226
|
+
--aml-exposure-tone-5: color(display-p3 0.1059 0.5255 0.5922);
|
|
227
|
+
--aml-exposure-tone-6: color(display-p3 0.6039 0.4118 0.3137);
|
|
228
|
+
--aml-exposure-tone-7: color(display-p3 0.6196 0.3922 0.3412);
|
|
229
|
+
--aml-exposure-tone-8: color(display-p3 0.6235 0.3765 0.3765);
|
|
230
|
+
--aml-exposure-tone-9: color(display-p3 0.6157 0.3647 0.4157);
|
|
231
|
+
--aml-exposure-tone-10: color(display-p3 0.5922 0.3608 0.4549);
|
|
198
232
|
}
|
|
199
233
|
}
|
package/src/desktop/index.css
CHANGED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Do not edit directly, this file was auto-generated from Figma tokens.
|
|
3
|
+
* Motion System — base primitives (duration, easing, physical state).
|
|
4
|
+
* Source: spec/motion/base.json
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
:root, .desktopTokens {
|
|
8
|
+
|
|
9
|
+
/* Duration(时长阶梯 · --eds-motion-N) */
|
|
10
|
+
--eds-motion-0: 0ms;
|
|
11
|
+
--eds-motion-1: 100ms;
|
|
12
|
+
--eds-motion-2: 150ms;
|
|
13
|
+
--eds-motion-3: 200ms;
|
|
14
|
+
--eds-motion-4: 300ms;
|
|
15
|
+
--eds-motion-5: 600ms;
|
|
16
|
+
--eds-motion-6: 500ms;
|
|
17
|
+
--eds-motion-7: 700ms;
|
|
18
|
+
--eds-motion-8: 250ms;
|
|
19
|
+
--eds-motion-9: 350ms;
|
|
20
|
+
--eds-motion-10: 800ms;
|
|
21
|
+
--eds-motion-11: 2000ms;
|
|
22
|
+
--eds-motion-12: 180ms;
|
|
23
|
+
/* 0 = instant / focus / reduced-motion
|
|
24
|
+
* 4 = 默认 hover(300ms)
|
|
25
|
+
* 8 = Toggle / Tab 滑块(250ms)
|
|
26
|
+
* 12 = Layout Deform 内容 crossfade
|
|
27
|
+
* 10–11 = Spinner 周期
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
/* Easing(缓动曲线 · --eds-motion-ease-N) */
|
|
31
|
+
--eds-motion-ease-1: ease-in-out;
|
|
32
|
+
--eds-motion-ease-2: cubic-bezier(0.2, 0, 0, 1);
|
|
33
|
+
--eds-motion-ease-3: cubic-bezier(0.4, 0, 1, 1);
|
|
34
|
+
--eds-motion-ease-4: cubic-bezier(0.4, 0, 0.2, 1);
|
|
35
|
+
--eds-motion-ease-5: linear;
|
|
36
|
+
--eds-motion-ease-6: cubic-bezier(0.34, 1.4, 0.64, 1);
|
|
37
|
+
--eds-motion-ease-7: cubic-bezier(0.34, 1.45, 0.64, 1);
|
|
38
|
+
--eds-motion-ease-8: cubic-bezier(0.22, 1, 0.36, 1);
|
|
39
|
+
--eds-motion-ease-9: cubic-bezier(0.16, 1, 0.3, 1);
|
|
40
|
+
--eds-motion-ease-10: cubic-bezier(0.3, 0, 0.8, 0.15);
|
|
41
|
+
--eds-motion-ease-11: cubic-bezier(0.12, 0.8, 0.2, 1);
|
|
42
|
+
--eds-motion-ease-12: cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
43
|
+
/* ease-1 = 缓入缓出(对称 hover,默认)
|
|
44
|
+
* ease-4 = Material · ease-5 = 线性(Spinner)
|
|
45
|
+
* ease-6/7 = 弹性反馈 · ease-8 = 减速渐隐
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
/* Primitive State(物理量 — 无场景语义) */
|
|
49
|
+
--motion-opacity-hidden: 0;
|
|
50
|
+
--motion-opacity-visible: 1;
|
|
51
|
+
--motion-scale-small: 0.95;
|
|
52
|
+
--motion-scale-flotation-enter: 0.96; /* Flotation 入场 scale */
|
|
53
|
+
--motion-offset-small: var(--spacing-2); /* 8px · shift */
|
|
54
|
+
--motion-offset-nudge-y: calc(-1 * var(--spacing-1-5)); /* -6px · nudge(legacy) */
|
|
55
|
+
--motion-offset-flotation-y: calc(-1 * var(--spacing-2-5)); /* -10px · Flotation 入场 */
|
|
56
|
+
--motion-offset-page-enter-x: 100%; /* Motion Page Push · 新页从右侧进入 */
|
|
57
|
+
--motion-offset-page-leave-x: 18%; /* Motion Page Push · 旧页 parallax 后退 */
|
|
58
|
+
--motion-offset-page-content-enter: calc(var(--spacing-5) + var(--spacing-05)); /* 22px · Motion Page content parallax 进入 */
|
|
59
|
+
--motion-offset-page-content-leave: var(--spacing-2); /* 8px · Motion Page content parallax 离开 */
|
|
60
|
+
--motion-opacity-page-enter-from: 0.96; /* Motion Page Push · 新页起始 opacity */
|
|
61
|
+
--motion-opacity-page-leave-to: 0.94; /* Motion Page Push · 旧页结束 opacity */
|
|
62
|
+
--motion-offset-layout-deform-y: var(--spacing-2-5); /* 10px · Layout Deform 内容 vertical nudge(Popover crossfade) */
|
|
63
|
+
--motion-offset-page-content-y-pop: 0; /* Motion Page Pop · 内层 content 纵移;0 = 返回时不上下挪 */
|
|
64
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Do not edit directly, this file was auto-generated from Figma tokens.
|
|
3
|
+
* Motion System — recipes (duration + easing + property).
|
|
4
|
+
* Source: spec/motion/recipe.json
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
:root, .desktopTokens {
|
|
8
|
+
|
|
9
|
+
/* Duration Roles(物理时长角色 → eds-motion-N) */
|
|
10
|
+
--motion-duration-instant: var(--eds-motion-0); /* Focus / selected / reduced */
|
|
11
|
+
--motion-duration-micro: var(--eds-motion-1); /* Checkbox / toggle */
|
|
12
|
+
--motion-duration-fade: var(--eds-motion-2); /* Opacity / 虚线 */
|
|
13
|
+
--motion-duration-enter: var(--eds-motion-3); /* 浮层进入 */
|
|
14
|
+
--motion-duration-float: var(--eds-motion-4); /* 微浮动 / hover 反馈 */
|
|
15
|
+
--motion-duration-hover: var(--eds-motion-4); /* Hover paint(is-paint / is-paint-fade) */
|
|
16
|
+
--motion-duration-hover-asym: var(--eds-motion-5); /* 600ms · is-asym 入场(仅 motion-recipe-hover-asym) */
|
|
17
|
+
--motion-duration-shift: var(--eds-motion-4); /* Layout / Skid */
|
|
18
|
+
--motion-duration-emphasis: var(--eds-motion-5); /* 强调 / 大面板 */
|
|
19
|
+
--motion-duration-page: 460ms; /* Motion Page Push · 默认 page 时长 */
|
|
20
|
+
--motion-duration-page-pop: 400ms; /* Motion Page Pop */
|
|
21
|
+
--motion-duration-page-content: 420ms; /* Motion Page content parallax · Push */
|
|
22
|
+
--motion-duration-page-content-pop: 360ms; /* Motion Page content parallax · Pop */
|
|
23
|
+
--motion-duration-control: var(--eds-motion-8); /* Toggle / Tab 滑块 */
|
|
24
|
+
--motion-duration-feedback: var(--eds-motion-9); /* EndFeedback 圆环 */
|
|
25
|
+
--motion-duration-scroll-fade: var(--eds-motion-6); /* Nav 滚动遮罩 */
|
|
26
|
+
--motion-duration-spin: var(--eds-motion-10); /* Button spinner */
|
|
27
|
+
--motion-duration-spin-slow: var(--eds-motion-11); /* DataList spinner */
|
|
28
|
+
--motion-duration-layout-deform: var(--eds-motion-9); /* 350ms · Layout Deform shell(height / max-height) */
|
|
29
|
+
--motion-duration-layout-deform-content: var(--eds-motion-12); /* 180ms · Layout Deform 内容 crossfade */
|
|
30
|
+
--motion-delay-layout-deform-content-swap: 120ms; /* 内容淡出中途换页(与 shell morph 并行) */
|
|
31
|
+
--motion-delay-feedback-tick: var(--eds-motion-3); /* EndFeedback 勾号延迟 */
|
|
32
|
+
|
|
33
|
+
/* Easing Roles(物理缓动角色 → eds-motion-ease-N) */
|
|
34
|
+
--motion-easing-standard: var(--eds-motion-ease-1); /* 缓入缓出(默认) */
|
|
35
|
+
--motion-easing-enter: var(--eds-motion-ease-2); /* 进入 */
|
|
36
|
+
--motion-easing-exit: var(--eds-motion-ease-3); /* 离开 */
|
|
37
|
+
--motion-easing-product: var(--eds-motion-ease-4); /* Material */
|
|
38
|
+
--motion-easing-linear: var(--eds-motion-ease-5); /* Spinner 线性 */
|
|
39
|
+
--motion-easing-spring: var(--eds-motion-ease-6); /* 弹性反馈(圆环) */
|
|
40
|
+
--motion-easing-spring-emphasis: var(--eds-motion-ease-7); /* 弹性反馈(勾号) */
|
|
41
|
+
--motion-easing-decelerate: var(--eds-motion-ease-8); /* 减速渐隐 */
|
|
42
|
+
--motion-easing-float: var(--eds-motion-ease-8); /* 微浮动 */
|
|
43
|
+
--motion-easing-page-enter: var(--eds-motion-ease-9); /* Motion Page Push · 新页进入 */
|
|
44
|
+
--motion-easing-page-leave: var(--eds-motion-ease-10); /* Motion Page Push · 旧页后退 */
|
|
45
|
+
--motion-easing-page-content: var(--eds-motion-ease-11); /* Motion Page content parallax · Push */
|
|
46
|
+
--motion-easing-page-pop: var(--eds-motion-ease-12); /* Motion Page Pop */
|
|
47
|
+
|
|
48
|
+
/* Property Bundles(属性束 — EDS glue 拼装用) */
|
|
49
|
+
--motion-property-paint: background-color, color, border-color, box-shadow, opacity, outline-color, outline-offset, fill;
|
|
50
|
+
--motion-property-geometry: flex, max-width, width, min-width, max-height, transform, left, padding;
|
|
51
|
+
--motion-property-fade: opacity;
|
|
52
|
+
|
|
53
|
+
/* Recipes(duration + easing + property 组合) */
|
|
54
|
+
--motion-recipe-fade: opacity var(--motion-duration-fade) var(--motion-easing-standard);
|
|
55
|
+
--motion-recipe-enter: opacity var(--motion-duration-enter) var(--motion-easing-enter), transform var(--motion-duration-enter) var(--motion-easing-enter);
|
|
56
|
+
--motion-recipe-exit: opacity var(--motion-duration-enter) var(--motion-easing-exit), transform var(--motion-duration-enter) var(--motion-easing-exit);
|
|
57
|
+
--motion-recipe-nudge: opacity var(--motion-duration-float) var(--motion-easing-float), transform var(--motion-duration-float) var(--motion-easing-float);
|
|
58
|
+
--motion-recipe-flotation-enter: opacity var(--motion-duration-enter) var(--motion-easing-standard), transform var(--motion-duration-emphasis) var(--motion-easing-spring-emphasis); /* Flotation 非对称入场 · opacity 200ms + transform 400ms spring */
|
|
59
|
+
--motion-recipe-flotation-exit: opacity var(--motion-duration-enter) var(--motion-easing-exit), transform var(--motion-duration-float) var(--motion-easing-decelerate); /* Flotation 离场 · 无 spring overshoot */
|
|
60
|
+
--motion-recipe-nudge-opacity: opacity var(--motion-duration-float) var(--motion-easing-float);
|
|
61
|
+
--motion-recipe-control: transform var(--motion-duration-control) var(--motion-easing-product), width var(--motion-duration-control) var(--motion-easing-product);
|
|
62
|
+
--motion-recipe-hover: background-color var(--motion-duration-hover) var(--motion-easing-standard), color var(--motion-duration-hover) var(--motion-easing-standard), border-color var(--motion-duration-hover) var(--motion-easing-standard), box-shadow var(--motion-duration-hover) var(--motion-easing-standard), opacity var(--motion-duration-hover) var(--motion-easing-standard), outline-color var(--motion-duration-hover) var(--motion-easing-standard), outline-offset var(--motion-duration-hover) var(--motion-easing-standard);
|
|
63
|
+
--motion-recipe-hover-asym: background-color var(--motion-duration-hover-asym) var(--motion-easing-exit), color var(--motion-duration-hover-asym) var(--motion-easing-exit), border-color var(--motion-duration-hover-asym) var(--motion-easing-exit), box-shadow var(--motion-duration-hover-asym) var(--motion-easing-exit), opacity var(--motion-duration-hover-asym) var(--motion-easing-exit), outline-color var(--motion-duration-hover-asym) var(--motion-easing-exit), outline-offset var(--motion-duration-hover-asym) var(--motion-easing-exit), fill var(--motion-duration-hover-asym) var(--motion-easing-exit);
|
|
64
|
+
--motion-recipe-shift: flex var(--motion-duration-shift) var(--motion-easing-standard), max-width var(--motion-duration-shift) var(--motion-easing-standard), width var(--motion-duration-shift) var(--motion-easing-standard), min-width var(--motion-duration-shift) var(--motion-easing-standard), max-height var(--motion-duration-shift) var(--motion-easing-standard), transform var(--motion-duration-shift) var(--motion-easing-standard), left var(--motion-duration-shift) var(--motion-easing-standard), padding var(--motion-duration-shift) var(--motion-easing-standard);
|
|
65
|
+
--motion-recipe-scroll-fade: opacity var(--motion-duration-scroll-fade) var(--motion-easing-decelerate);
|
|
66
|
+
--motion-recipe-scroll-fade-background: background var(--motion-duration-scroll-fade) var(--motion-easing-decelerate);
|
|
67
|
+
--motion-recipe-float: opacity var(--motion-duration-hover) var(--motion-easing-standard), transform var(--motion-duration-hover) var(--motion-easing-standard);
|
|
68
|
+
--motion-recipe-page-push: opacity var(--motion-duration-page) var(--motion-easing-page-enter), transform var(--motion-duration-page) var(--motion-easing-page-enter); /* Motion Page semantic 默认 · idle / fallback */
|
|
69
|
+
--motion-recipe-page-enter-active: opacity var(--motion-duration-page) var(--motion-easing-page-enter), transform var(--motion-duration-page) var(--motion-easing-page-enter); /* Motion Page glue · forward enter-active */
|
|
70
|
+
--motion-recipe-page-leave-active-forward: opacity var(--motion-duration-page) var(--motion-easing-page-leave), transform var(--motion-duration-page) var(--motion-easing-page-leave); /* Motion Page glue · forward leave-active */
|
|
71
|
+
--motion-recipe-page-enter-active-pop: opacity var(--motion-duration-page-pop) var(--motion-easing-page-pop), transform var(--motion-duration-page-pop) var(--motion-easing-page-pop); /* Motion Page glue · backward enter-active */
|
|
72
|
+
--motion-recipe-page-leave-active-pop: opacity var(--motion-duration-page-pop) var(--motion-easing-page-pop), transform var(--motion-duration-page-pop) var(--motion-easing-page-pop); /* Motion Page glue · backward leave-active */
|
|
73
|
+
--motion-recipe-page-content-push: transform var(--motion-duration-page-content) var(--motion-easing-page-content); /* Motion Page glue · content parallax Push */
|
|
74
|
+
--motion-recipe-page-content-pop: transform var(--motion-duration-page-content-pop) var(--motion-easing-page-pop); /* Motion Page glue · content parallax Pop */
|
|
75
|
+
--motion-recipe-layout-deform-shell: height var(--motion-duration-layout-deform) var(--motion-easing-float), max-height var(--motion-duration-layout-deform) var(--motion-easing-float), width var(--motion-duration-layout-deform) var(--motion-easing-float), max-width var(--motion-duration-layout-deform) var(--motion-easing-float);
|
|
76
|
+
--motion-recipe-layout-deform-content: opacity var(--motion-duration-layout-deform-content) ease, transform var(--motion-duration-layout-deform) var(--motion-easing-float);
|
|
77
|
+
|
|
78
|
+
/* EDS Internal — shift 方向位移(AnchoredTooltip glue) */
|
|
79
|
+
--motion-displace-from-bottom: translateY(var(--motion-offset-small));
|
|
80
|
+
--motion-displace-from-top: translateY(calc(-1 * var(--motion-offset-small)));
|
|
81
|
+
--motion-displace-from-left: translateX(calc(-1 * var(--motion-offset-small)));
|
|
82
|
+
--motion-displace-from-right: translateX(var(--motion-offset-small));
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
@media (prefers-reduced-motion: reduce) {
|
|
86
|
+
:root, .desktopTokens {
|
|
87
|
+
--motion-duration-micro: var(--eds-motion-0);
|
|
88
|
+
--motion-duration-fade: var(--eds-motion-0);
|
|
89
|
+
--motion-duration-enter: var(--eds-motion-0);
|
|
90
|
+
--motion-duration-float: var(--eds-motion-0);
|
|
91
|
+
--motion-duration-hover: var(--eds-motion-0);
|
|
92
|
+
--motion-duration-hover-asym: var(--eds-motion-0);
|
|
93
|
+
--motion-duration-shift: var(--eds-motion-0);
|
|
94
|
+
--motion-duration-emphasis: var(--eds-motion-0);
|
|
95
|
+
--motion-duration-page: var(--eds-motion-0);
|
|
96
|
+
--motion-duration-page-pop: var(--eds-motion-0);
|
|
97
|
+
--motion-duration-page-content: var(--eds-motion-0);
|
|
98
|
+
--motion-duration-page-content-pop: var(--eds-motion-0);
|
|
99
|
+
--motion-duration-control: var(--eds-motion-0);
|
|
100
|
+
--motion-duration-feedback: var(--eds-motion-0);
|
|
101
|
+
--motion-duration-scroll-fade: var(--eds-motion-0);
|
|
102
|
+
--motion-duration-spin: var(--eds-motion-0);
|
|
103
|
+
--motion-duration-spin-slow: var(--eds-motion-0);
|
|
104
|
+
--motion-duration-layout-deform: var(--eds-motion-0);
|
|
105
|
+
--motion-duration-layout-deform-content: var(--eds-motion-0);
|
|
106
|
+
--motion-delay-feedback-tick: var(--eds-motion-0);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Do not edit directly, this file was auto-generated from Figma tokens.
|
|
3
|
+
* Motion System — semantic scenario classes.
|
|
4
|
+
* Source: spec/motion/semantic.json
|
|
5
|
+
* Motion semantic — Ease / Layout / Flotation / Deform / Page (.motion-ease + state · .motion-layout · .motion-flotation · .motion-deform · .motion-page).
|
|
6
|
+
* Recipes: @eds/desktop-tokens/motion/recipe
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/* ========================================
|
|
10
|
+
1 · Ease(缓入缓出 · 挂状态 modifier)
|
|
11
|
+
======================================== */
|
|
12
|
+
|
|
13
|
+
/* Ease — 基类(与 .is-paint-fade / .is-paint / .is-enter-only / .is-asym 组合) */
|
|
14
|
+
.motion-ease {
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/* a · paint + fade 对称入出 */
|
|
18
|
+
/* eds-hover-tooltip-trigger--focus */
|
|
19
|
+
.motion-ease.is-paint-fade {
|
|
20
|
+
transition: var(--motion-recipe-hover), var(--motion-recipe-fade);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/* b · paint 对称入出 */
|
|
24
|
+
.motion-ease.is-paint {
|
|
25
|
+
transition: var(--motion-recipe-hover);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* c · 仅入场 */
|
|
29
|
+
/* EgMotionHoverEnter · 仅 hover 入场 600ms;mouseleave / focus / active / 点按 无过渡 */
|
|
30
|
+
.motion-ease.is-enter-only {
|
|
31
|
+
transition: var(--motion-recipe-hover-asym);
|
|
32
|
+
transition-duration: 0ms;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.motion-ease.is-enter-only:focus,
|
|
36
|
+
.motion-ease.is-enter-only:focus-visible,
|
|
37
|
+
.motion-ease.is-enter-only:active {
|
|
38
|
+
transition: none;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.motion-ease.is-enter-only:hover:not(:active):not(:focus-visible) {
|
|
42
|
+
transition-duration: var(--motion-duration-hover-asym);
|
|
43
|
+
transition-timing-function: var(--motion-easing-enter);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* d · 悬浮入场(非对称 enter/exit) */
|
|
47
|
+
/* Detail 关闭按钮等 */
|
|
48
|
+
.motion-ease.is-asym {
|
|
49
|
+
transition: var(--motion-recipe-hover-asym);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.motion-ease.is-asym:hover,
|
|
53
|
+
.motion-ease.is-asym:focus-visible,
|
|
54
|
+
.motion-ease.is-asym:active {
|
|
55
|
+
transition-timing-function: var(--motion-easing-enter);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/* ========================================
|
|
59
|
+
2 · Layout(大位移动效)
|
|
60
|
+
======================================== */
|
|
61
|
+
|
|
62
|
+
/* 大位移 · Drawer / Panel 等 */
|
|
63
|
+
/* 默认自 bottom 入场;方向变体由 EDS glue 扩展 */
|
|
64
|
+
.motion-layout {
|
|
65
|
+
transition: var(--motion-recipe-enter);
|
|
66
|
+
opacity: var(--motion-opacity-hidden);
|
|
67
|
+
transform: translateY(var(--motion-offset-small));
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.motion-layout.is-active,
|
|
71
|
+
.is-active .motion-layout,
|
|
72
|
+
.glassMicroFloatHostActive .motion-layout,
|
|
73
|
+
.glassMicroFloatHostActive.motion-layout {
|
|
74
|
+
opacity: var(--motion-opacity-visible);
|
|
75
|
+
transform: translateY(0);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/* ========================================
|
|
79
|
+
3 · Flotation(微位移动效 · 浮层类)
|
|
80
|
+
======================================== */
|
|
81
|
+
|
|
82
|
+
/* Tooltip / Popover / Popup glass */
|
|
83
|
+
/* glass 挂 motion-flotation;host 挂 is-active / glassMicroFloatHostActive */
|
|
84
|
+
.motion-flotation {
|
|
85
|
+
transition: var(--motion-recipe-flotation-enter);
|
|
86
|
+
opacity: var(--motion-opacity-hidden);
|
|
87
|
+
transform: translateY(var(--motion-offset-flotation-y)) scale(var(--motion-scale-flotation-enter));
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.motion-flotation.is-active,
|
|
91
|
+
.is-active .motion-flotation,
|
|
92
|
+
.glassMicroFloatHostActive .motion-flotation,
|
|
93
|
+
.glassMicroFloatHostActive.motion-flotation {
|
|
94
|
+
opacity: var(--motion-opacity-visible);
|
|
95
|
+
transform: translateY(0) scale(1);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/* ========================================
|
|
99
|
+
4 · Deform(形变)
|
|
100
|
+
======================================== */
|
|
101
|
+
|
|
102
|
+
/* 控件形变 · Tab / Toggle */
|
|
103
|
+
/* 非 enter/leave · 组件自身控制 transform */
|
|
104
|
+
.motion-deform {
|
|
105
|
+
transition: var(--motion-recipe-control);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/* ========================================
|
|
109
|
+
5 · Page(页面切换)
|
|
110
|
+
======================================== */
|
|
111
|
+
|
|
112
|
+
/* 页面切换 · macOS Navigation Push / Pop */
|
|
113
|
+
/* Motion Page 体系:`.motion-page-stack` + `data-page-direction` + `.motion-layout-content` */
|
|
114
|
+
/* A→B 带返回的页面切换统一走 glue · `motionPageTransition.css` + `useMotionPageStack` */
|
|
115
|
+
.motion-page {
|
|
116
|
+
transition: var(--motion-recipe-page-push);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/* ========================================
|
|
120
|
+
6 · Layout Deform(布局形态 · 浮层容器尺寸 morph)
|
|
121
|
+
======================================== */
|
|
122
|
+
|
|
123
|
+
/* 布局形态 · Tooltip / Popover 多页容器尺寸变化 */
|
|
124
|
+
/* 浮层 shell:固定宽 + overflow hidden;A↔B 宽/高 morph 350ms · ease-8 */
|
|
125
|
+
/* 内层 content 挂 `.motion-layout-content` + `useMotionLayoutContentSwitch` */
|
|
126
|
+
.motion-layout-deform {
|
|
127
|
+
overflow: hidden;
|
|
128
|
+
transition: var(--motion-recipe-layout-deform-shell);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/* ========================================
|
|
132
|
+
7 · Layout Content(同壳内容切换 · crossfade)
|
|
133
|
+
======================================== */
|
|
134
|
+
|
|
135
|
+
/* 内容切换 · Detail Tab / Segmented / Popover 内页 */
|
|
136
|
+
/* 同壳换内容 · translateY(+offset) crossfade;无 shell morph 时单独使用 */
|
|
137
|
+
/* Glue:`.is-exiting` / `.is-entering` + `useMotionLayoutContentSwitch` · 120ms mid-swap */
|
|
138
|
+
/* Layout Deform / Motion Page 内层 content 亦挂本 class */
|
|
139
|
+
.motion-layout-content {
|
|
140
|
+
transition: var(--motion-recipe-layout-deform-content);
|
|
141
|
+
opacity: var(--motion-opacity-visible);
|
|
142
|
+
transform: translateY(0);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/* ========================================
|
|
146
|
+
Reduced Motion
|
|
147
|
+
======================================== */
|
|
148
|
+
|
|
149
|
+
@media (prefers-reduced-motion: reduce) {
|
|
150
|
+
.motion-ease.is-paint-fade,
|
|
151
|
+
.motion-ease.is-paint,
|
|
152
|
+
.motion-ease.is-enter-only,
|
|
153
|
+
.motion-ease.is-asym,
|
|
154
|
+
.motion-layout,
|
|
155
|
+
.motion-flotation,
|
|
156
|
+
.motion-deform,
|
|
157
|
+
.motion-page,
|
|
158
|
+
.motion-layout-deform,
|
|
159
|
+
.motion-layout-content {
|
|
160
|
+
transition: none !important;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Do not edit directly, this file was auto-generated from Figma tokens.
|
|
3
|
+
* Motion System — utility classes.
|
|
4
|
+
* Source: spec/motion/semantic.json
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* ========================================
|
|
8
|
+
Motion Utility Classes
|
|
9
|
+
======================================== */
|
|
10
|
+
|
|
11
|
+
/* None — 无过渡 */
|
|
12
|
+
/* Focus / Selected */
|
|
13
|
+
.motion-none {
|
|
14
|
+
transition: none;
|
|
15
|
+
}
|