@seed-design/css 0.1.3 → 0.1.5

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.
@@ -0,0 +1,117 @@
1
+ .seed-menu-sheet__positioner {
2
+ position: fixed;
3
+ display: flex;
4
+ justify-content: center;
5
+ align-items: flex-end;
6
+ inset: 0;
7
+ overscroll-behavior-y: none;
8
+ --sheet-z-index: 2;
9
+ z-index: calc(var(--sheet-z-index) + var(--layer-index, 0));
10
+ }
11
+ .seed-menu-sheet__backdrop {
12
+ position: fixed;
13
+ inset: 0;
14
+ background: var(--seed-color-bg-overlay);
15
+ z-index: calc(var(--sheet-z-index) + var(--layer-index, 0));
16
+ }
17
+ .seed-menu-sheet__backdrop:not(:is([data-state="open"], [data-open])) {
18
+ animation: seed-exit;
19
+ animation-timing-function: var(--seed-timing-function-exit);
20
+ animation-duration: var(--seed-duration-d2);
21
+ animation-fill-mode: forwards;
22
+ --seed-exit-translate-x: 0;
23
+ --seed-exit-translate-y: 0;
24
+ --seed-exit-opacity: 0;
25
+ --seed-exit-scale: 1;
26
+ }
27
+ .seed-menu-sheet__backdrop:is([data-state="open"], [data-open]) {
28
+ animation: seed-enter;
29
+ animation-timing-function: var(--seed-timing-function-enter);
30
+ animation-duration: var(--seed-duration-d2);
31
+ --seed-enter-translate-x: 0;
32
+ --seed-enter-translate-y: 0;
33
+ --seed-enter-opacity: 0;
34
+ --seed-enter-scale: 1;
35
+ }
36
+ .seed-menu-sheet__content {
37
+ position: relative;
38
+ display: flex;
39
+ flex: 1;
40
+ flex-direction: column;
41
+ box-sizing: border-box;
42
+ word-break: break-all;
43
+ z-index: calc(var(--sheet-z-index) + var(--layer-index, 0));
44
+ background: var(--seed-color-bg-layer-floating);
45
+ padding-inline: var(--seed-dimension-spacing-x-global-gutter);
46
+ padding-block: var(--seed-dimension-x4);
47
+ border-top-left-radius: var(--seed-radius-r5);
48
+ border-top-right-radius: var(--seed-radius-r5);
49
+ }
50
+ .seed-menu-sheet__content:not(:is([data-state="open"], [data-open])) {
51
+ animation: seed-exit;
52
+ animation-timing-function: var(--seed-timing-function-exit);
53
+ animation-duration: var(--seed-duration-d4);
54
+ animation-fill-mode: forwards;
55
+ --seed-exit-translate-x: 0;
56
+ --seed-exit-translate-y: 100%;
57
+ --seed-exit-opacity: 1;
58
+ --seed-exit-scale: 1;
59
+ }
60
+ .seed-menu-sheet__content:is([data-state="open"], [data-open]) {
61
+ animation: seed-enter;
62
+ animation-timing-function: var(--seed-timing-function-enter-expressive);
63
+ animation-duration: var(--seed-duration-d6);
64
+ --seed-enter-translate-x: 0;
65
+ --seed-enter-translate-y: 100%;
66
+ --seed-enter-opacity: 1;
67
+ --seed-enter-scale: 1;
68
+ }
69
+ .seed-menu-sheet__header {
70
+ display: flex;
71
+ flex-direction: column;
72
+ align-items: center;
73
+ gap: var(--seed-dimension-x1);
74
+ padding-bottom: var(--seed-dimension-x4);
75
+ }
76
+ .seed-menu-sheet__title {
77
+ color: var(--seed-color-fg-neutral);
78
+ font-size: var(--seed-font-size-t6);
79
+ line-height: var(--seed-line-height-t6);
80
+ font-weight: var(--seed-font-weight-bold);
81
+ }
82
+ .seed-menu-sheet__list {
83
+ display: flex;
84
+ flex-direction: column;
85
+ align-items: stretch;
86
+ gap: var(--seed-dimension-x2_5);
87
+ }
88
+ .seed-menu-sheet__group {
89
+ display: flex;
90
+ flex-direction: column;
91
+ align-items: stretch;
92
+ overflow: hidden;
93
+ border-radius: var(--seed-radius-r4);
94
+ }
95
+ .seed-menu-sheet__footer {
96
+ display: flex;
97
+ flex-direction: column;
98
+ align-items: stretch;
99
+ padding-top: var(--seed-dimension-x2_5);
100
+ }
101
+ .seed-menu-sheet__closeButton {
102
+ display: flex;
103
+ align-items: center;
104
+ justify-content: center;
105
+ background-color: var(--seed-color-bg-neutral-weak);
106
+ min-height: 52px;
107
+ padding-inline: var(--seed-dimension-x5);
108
+ padding-block: var(--seed-dimension-x3_5);
109
+ border-radius: var(--seed-radius-r3);
110
+ color: var(--seed-color-fg-neutral);
111
+ font-size: var(--seed-font-size-t5);
112
+ line-height: var(--seed-line-height-t5);
113
+ font-weight: var(--seed-font-weight-medium);
114
+ }
115
+ .seed-menu-sheet__closeButton:is(:active, [data-active]) {
116
+ background-color: var(--seed-color-bg-neutral-weak-pressed);
117
+ }
@@ -0,0 +1,21 @@
1
+ declare interface MenuSheetVariant {
2
+
3
+ }
4
+
5
+ declare type MenuSheetVariantMap = {
6
+ [key in keyof MenuSheetVariant]: Array<MenuSheetVariant[key]>;
7
+ };
8
+
9
+ export declare type MenuSheetVariantProps = Partial<MenuSheetVariant>;
10
+
11
+ export declare type MenuSheetSlotName = "backdrop" | "positioner" | "content" | "header" | "title" | "list" | "group" | "footer" | "closeButton";
12
+
13
+ export declare const menuSheetVariantMap: MenuSheetVariantMap;
14
+
15
+ export declare const menuSheet: ((
16
+ props?: MenuSheetVariantProps,
17
+ ) => Record<MenuSheetSlotName, string>) & {
18
+ splitVariantProps: <T extends MenuSheetVariantProps>(
19
+ props: T,
20
+ ) => [MenuSheetVariantProps, Omit<T, keyof MenuSheetVariantProps>];
21
+ }
@@ -0,0 +1,64 @@
1
+ import './menu-sheet.css';
2
+ import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
3
+
4
+ const menuSheetSlotNames = [
5
+ [
6
+ "backdrop",
7
+ "seed-menu-sheet__backdrop"
8
+ ],
9
+ [
10
+ "positioner",
11
+ "seed-menu-sheet__positioner"
12
+ ],
13
+ [
14
+ "content",
15
+ "seed-menu-sheet__content"
16
+ ],
17
+ [
18
+ "header",
19
+ "seed-menu-sheet__header"
20
+ ],
21
+ [
22
+ "title",
23
+ "seed-menu-sheet__title"
24
+ ],
25
+ [
26
+ "list",
27
+ "seed-menu-sheet__list"
28
+ ],
29
+ [
30
+ "group",
31
+ "seed-menu-sheet__group"
32
+ ],
33
+ [
34
+ "footer",
35
+ "seed-menu-sheet__footer"
36
+ ],
37
+ [
38
+ "closeButton",
39
+ "seed-menu-sheet__closeButton"
40
+ ]
41
+ ];
42
+
43
+ const defaultVariant = {};
44
+
45
+ const compoundVariants = [];
46
+
47
+ export const menuSheetVariantMap = {};
48
+
49
+ export const menuSheetVariantKeys = Object.keys(menuSheetVariantMap);
50
+
51
+ export function menuSheet(props) {
52
+ return Object.fromEntries(
53
+ menuSheetSlotNames.map(([slot, className]) => {
54
+ return [
55
+ slot,
56
+ createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
57
+ ];
58
+ }),
59
+ );
60
+ }
61
+
62
+ Object.assign(menuSheet, { splitVariantProps: (props) => splitVariantProps(props, menuSheetVariantMap) });
63
+
64
+ // @recipe(seed): menu-sheet
@@ -0,0 +1,373 @@
1
+ export declare const vars: {
2
+ "base": {
3
+ "enabled": {
4
+ "root": {
5
+ "colorDuration": "var(--seed-duration-d4)",
6
+ "colorTimingFunction": "var(--seed-timing-function-easing)",
7
+ "cornerRadius": "var(--seed-radius-full)"
8
+ },
9
+ "prefixIcon": {
10
+ "paddingLeft": "var(--seed-dimension-x1_5)"
11
+ },
12
+ "prefixAvatar": {
13
+ "size": "var(--seed-dimension-x6)"
14
+ },
15
+ "suffixIcon": {
16
+ "paddingRight": "var(--seed-dimension-x1_5)"
17
+ },
18
+ "label": {
19
+ "fontWeight": "var(--seed-font-weight-medium)",
20
+ "paddingX": "var(--seed-dimension-x1_5)"
21
+ },
22
+ "icon": {
23
+ "color": "var(--seed-color-fg-neutral)"
24
+ }
25
+ }
26
+ },
27
+ "variantSolid": {
28
+ "enabled": {
29
+ "root": {
30
+ "color": "var(--seed-color-bg-neutral-weak)"
31
+ },
32
+ "label": {
33
+ "color": "var(--seed-color-fg-neutral)"
34
+ },
35
+ "prefixIcon": {
36
+ "color": "var(--seed-color-fg-neutral)"
37
+ },
38
+ "suffixIcon": {
39
+ "color": "var(--seed-color-fg-neutral)"
40
+ },
41
+ "icon": {
42
+ "color": "var(--seed-color-fg-neutral)"
43
+ }
44
+ },
45
+ "pressed": {
46
+ "root": {
47
+ "color": "var(--seed-color-bg-neutral-weak-pressed)"
48
+ },
49
+ "label": {
50
+ "color": "var(--seed-color-fg-neutral)"
51
+ },
52
+ "prefixIcon": {
53
+ "color": "var(--seed-color-fg-neutral)"
54
+ },
55
+ "suffixIcon": {
56
+ "color": "var(--seed-color-fg-neutral)"
57
+ },
58
+ "icon": {
59
+ "color": "var(--seed-color-fg-neutral)"
60
+ }
61
+ },
62
+ "disabled": {
63
+ "root": {
64
+ "opacity": "0.5"
65
+ }
66
+ },
67
+ "selected": {
68
+ "root": {
69
+ "color": "var(--seed-color-bg-neutral-inverted)"
70
+ },
71
+ "label": {
72
+ "color": "var(--seed-color-fg-neutral-inverted)"
73
+ },
74
+ "prefixIcon": {
75
+ "color": "var(--seed-color-fg-neutral-inverted)"
76
+ },
77
+ "suffixIcon": {
78
+ "color": "var(--seed-color-fg-neutral-inverted)"
79
+ },
80
+ "icon": {
81
+ "color": "var(--seed-color-fg-neutral-inverted)"
82
+ }
83
+ },
84
+ "selectedPressed": {
85
+ "root": {
86
+ "color": "var(--seed-color-bg-neutral-inverted-pressed)"
87
+ },
88
+ "label": {
89
+ "color": "var(--seed-color-fg-neutral-inverted)"
90
+ },
91
+ "prefixIcon": {
92
+ "color": "var(--seed-color-fg-neutral-inverted)"
93
+ },
94
+ "suffixIcon": {
95
+ "color": "var(--seed-color-fg-neutral-inverted)"
96
+ },
97
+ "icon": {
98
+ "color": "var(--seed-color-fg-neutral-inverted)"
99
+ }
100
+ },
101
+ "selectedDisabled": {
102
+ "root": {
103
+ "opacity": "0.5"
104
+ }
105
+ }
106
+ },
107
+ "variantOutlineStrong": {
108
+ "enabled": {
109
+ "root": {
110
+ "strokeColor": "var(--seed-color-stroke-neutral)",
111
+ "strokeWidth": "1px",
112
+ "color": "var(--seed-color-bg-layer-default)"
113
+ },
114
+ "label": {
115
+ "color": "var(--seed-color-fg-neutral)"
116
+ },
117
+ "prefixIcon": {
118
+ "color": "var(--seed-color-fg-neutral)"
119
+ },
120
+ "suffixIcon": {
121
+ "color": "var(--seed-color-fg-neutral)"
122
+ },
123
+ "icon": {
124
+ "color": "var(--seed-color-fg-neutral)"
125
+ }
126
+ },
127
+ "pressed": {
128
+ "root": {
129
+ "strokeColor": "var(--seed-color-stroke-neutral)",
130
+ "strokeWidth": "1px",
131
+ "color": "var(--seed-color-bg-layer-default-pressed)"
132
+ },
133
+ "label": {
134
+ "color": "var(--seed-color-fg-neutral)"
135
+ },
136
+ "prefixIcon": {
137
+ "color": "var(--seed-color-fg-neutral)"
138
+ },
139
+ "suffixIcon": {
140
+ "color": "var(--seed-color-fg-neutral)"
141
+ },
142
+ "icon": {
143
+ "color": "var(--seed-color-fg-neutral)"
144
+ }
145
+ },
146
+ "disabled": {
147
+ "root": {
148
+ "opacity": "0.5"
149
+ }
150
+ },
151
+ "selected": {
152
+ "root": {
153
+ "color": "var(--seed-color-bg-neutral-inverted)"
154
+ },
155
+ "label": {
156
+ "color": "var(--seed-color-fg-neutral-inverted)"
157
+ },
158
+ "prefixIcon": {
159
+ "color": "var(--seed-color-fg-neutral-inverted)"
160
+ },
161
+ "suffixIcon": {
162
+ "color": "var(--seed-color-fg-neutral-inverted)"
163
+ },
164
+ "icon": {
165
+ "color": "var(--seed-color-fg-neutral-inverted)"
166
+ }
167
+ },
168
+ "selectedPressed": {
169
+ "root": {
170
+ "color": "var(--seed-color-bg-neutral-inverted-pressed)"
171
+ },
172
+ "label": {
173
+ "color": "var(--seed-color-fg-neutral-inverted)"
174
+ },
175
+ "prefixIcon": {
176
+ "color": "var(--seed-color-fg-neutral-inverted)"
177
+ },
178
+ "suffixIcon": {
179
+ "color": "var(--seed-color-fg-neutral-inverted)"
180
+ },
181
+ "icon": {
182
+ "color": "var(--seed-color-fg-neutral-inverted)"
183
+ }
184
+ },
185
+ "selectedDisabled": {
186
+ "root": {
187
+ "opacity": "0.5"
188
+ }
189
+ }
190
+ },
191
+ "variantOutlineWeak": {
192
+ "enabled": {
193
+ "root": {
194
+ "strokeColor": "var(--seed-color-stroke-neutral)",
195
+ "strokeWidth": "1px",
196
+ "color": "var(--seed-color-bg-layer-default)"
197
+ },
198
+ "label": {
199
+ "color": "var(--seed-color-fg-neutral)"
200
+ },
201
+ "prefixIcon": {
202
+ "color": "var(--seed-color-fg-neutral)"
203
+ },
204
+ "suffixIcon": {
205
+ "color": "var(--seed-color-fg-neutral)"
206
+ },
207
+ "icon": {
208
+ "color": "var(--seed-color-fg-neutral)"
209
+ }
210
+ },
211
+ "pressed": {
212
+ "root": {
213
+ "strokeColor": "var(--seed-color-stroke-neutral)",
214
+ "strokeWidth": "1px",
215
+ "color": "var(--seed-color-bg-layer-default-pressed)"
216
+ },
217
+ "label": {
218
+ "color": "var(--seed-color-fg-neutral)"
219
+ },
220
+ "prefixIcon": {
221
+ "color": "var(--seed-color-fg-neutral)"
222
+ },
223
+ "suffixIcon": {
224
+ "color": "var(--seed-color-fg-neutral)"
225
+ },
226
+ "icon": {
227
+ "color": "var(--seed-color-fg-neutral)"
228
+ }
229
+ },
230
+ "disabled": {
231
+ "root": {
232
+ "opacity": "0.5"
233
+ }
234
+ },
235
+ "selected": {
236
+ "root": {
237
+ "strokeColor": "var(--seed-color-stroke-field-focused)",
238
+ "strokeWidth": "1px",
239
+ "color": "var(--seed-color-bg-neutral-weak)"
240
+ },
241
+ "label": {
242
+ "color": "var(--seed-color-fg-neutral)"
243
+ },
244
+ "prefixIcon": {
245
+ "color": "var(--seed-color-fg-neutral)"
246
+ },
247
+ "suffixIcon": {
248
+ "color": "var(--seed-color-fg-neutral)"
249
+ },
250
+ "icon": {
251
+ "color": "var(--seed-color-fg-neutral)"
252
+ }
253
+ },
254
+ "selectedPressed": {
255
+ "root": {
256
+ "strokeColor": "var(--seed-color-stroke-field-focused)",
257
+ "strokeWidth": "1px",
258
+ "color": "var(--seed-color-bg-neutral-weak-pressed)"
259
+ },
260
+ "label": {
261
+ "color": "var(--seed-color-fg-neutral)"
262
+ },
263
+ "prefixIcon": {
264
+ "color": "var(--seed-color-fg-neutral)"
265
+ },
266
+ "suffixIcon": {
267
+ "color": "var(--seed-color-fg-neutral)"
268
+ },
269
+ "icon": {
270
+ "color": "var(--seed-color-fg-neutral)"
271
+ }
272
+ },
273
+ "selectedDisabled": {
274
+ "root": {
275
+ "opacity": "0.5"
276
+ }
277
+ }
278
+ },
279
+ "sizeSmall": {
280
+ "enabled": {
281
+ "root": {
282
+ "height": "32px",
283
+ "paddingX": "var(--seed-dimension-x1_5)"
284
+ },
285
+ "label": {
286
+ "fontSize": "var(--seed-font-size-t4)",
287
+ "lineHeight": "var(--seed-line-height-t4)"
288
+ },
289
+ "prefixIcon": {
290
+ "size": "var(--seed-dimension-x3_5)"
291
+ },
292
+ "suffixIcon": {
293
+ "size": "var(--seed-dimension-x3_5)"
294
+ },
295
+ "prefixAvatar": {
296
+ "size": "var(--seed-dimension-x5)"
297
+ },
298
+ "icon": {
299
+ "size": "var(--seed-dimension-x3_5)"
300
+ }
301
+ }
302
+ },
303
+ "sizeMedium": {
304
+ "enabled": {
305
+ "root": {
306
+ "height": "36px",
307
+ "paddingX": "var(--seed-dimension-x2)"
308
+ },
309
+ "label": {
310
+ "fontSize": "var(--seed-font-size-t4)",
311
+ "lineHeight": "var(--seed-line-height-t4)"
312
+ },
313
+ "prefixIcon": {
314
+ "size": "var(--seed-dimension-x4)"
315
+ },
316
+ "suffixIcon": {
317
+ "size": "var(--seed-dimension-x3_5)"
318
+ },
319
+ "prefixAvatar": {
320
+ "size": "var(--seed-dimension-x6)"
321
+ },
322
+ "icon": {
323
+ "size": "var(--seed-dimension-x4)"
324
+ }
325
+ }
326
+ },
327
+ "sizeLarge": {
328
+ "enabled": {
329
+ "root": {
330
+ "height": "40px",
331
+ "paddingX": "var(--seed-dimension-x2_5)"
332
+ },
333
+ "label": {
334
+ "fontSize": "var(--seed-font-size-t4)",
335
+ "lineHeight": "var(--seed-line-height-t4)"
336
+ },
337
+ "prefixIcon": {
338
+ "size": "var(--seed-dimension-x4)",
339
+ "paddingLeft": "var(--seed-dimension-x1_5)"
340
+ },
341
+ "suffixIcon": {
342
+ "size": "var(--seed-dimension-x4)"
343
+ },
344
+ "prefixAvatar": {
345
+ "size": "var(--seed-dimension-x7)"
346
+ },
347
+ "icon": {
348
+ "size": "var(--seed-dimension-x4)"
349
+ }
350
+ }
351
+ },
352
+ "sizeSmallLayoutIconOnly": {
353
+ "enabled": {
354
+ "root": {
355
+ "minWidth": "var(--seed-dimension-x8)"
356
+ }
357
+ }
358
+ },
359
+ "sizeMediumLayoutIconOnly": {
360
+ "enabled": {
361
+ "root": {
362
+ "minWidth": "var(--seed-dimension-x9)"
363
+ }
364
+ }
365
+ },
366
+ "sizeLargeLayoutIconOnly": {
367
+ "enabled": {
368
+ "root": {
369
+ "minWidth": "var(--seed-dimension-x10)"
370
+ }
371
+ }
372
+ }
373
+ }