@umkmall/proto 0.1.0-heea0e2dbdd10 → 0.1.0-hf08301514059
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/umkmall-components.md +24 -16
- package/umkmall-prototype-starter.html +90 -23
- package/umkmall-rules.md +5 -5
- package/umkmall-starter-app.md +2 -2
- package/umkmall-starter.md +70 -11
- package/umkmall-tailwind.js +69 -5
- package/umkmall-tokens.css +61 -2
- package/umkmall-ui.js +27 -18
package/package.json
CHANGED
package/umkmall-components.md
CHANGED
|
@@ -10,9 +10,9 @@ UMKMall UI — 57 components, and the values each axis accepts.
|
|
|
10
10
|
Generated from packages/ui/src/contract/variants.ts. Do not hand-edit.
|
|
11
11
|
|
|
12
12
|
Button (Foundations)
|
|
13
|
-
type: primary | ghost | text
|
|
13
|
+
type: primary | ghost | outline | text
|
|
14
14
|
color: primary | light | danger | dark
|
|
15
|
-
size: large | medium | small | micro
|
|
15
|
+
size: large | medium | small | micro | compact
|
|
16
16
|
width: auto | full
|
|
17
17
|
booleans: disabled, isLoading
|
|
18
18
|
|
|
@@ -25,27 +25,27 @@ Alert (Feedback)
|
|
|
25
25
|
|
|
26
26
|
Badge (Content)
|
|
27
27
|
color: primary | warning | success | danger | light | bestseller | gradient
|
|
28
|
-
size: xlarge | medium | small | micro
|
|
28
|
+
size: xlarge | medium | small | micro | compact | compactTight
|
|
29
29
|
appearance: default | a2ui
|
|
30
30
|
booleans: showIconLeft, showIconRight
|
|
31
31
|
|
|
32
32
|
Chip (Content)
|
|
33
33
|
state: default | active
|
|
34
|
-
size: huge | xlarge | large | medium | small | micro
|
|
34
|
+
size: huge | xlarge | large | medium | small | micro | compact
|
|
35
35
|
appearance: default | a2ui
|
|
36
36
|
booleans: showIconLeft, showIconRight
|
|
37
37
|
|
|
38
38
|
TextField (Form)
|
|
39
|
-
size: large | small
|
|
40
|
-
appearance: default | a2ui
|
|
39
|
+
size: large | small | xsmall | compact
|
|
40
|
+
appearance: default | a2ui | bare
|
|
41
|
+
counterPlacement: below | inside
|
|
42
|
+
prefixPlacement: inside | outside
|
|
41
43
|
booleans: error, disabled
|
|
42
|
-
REQUIRED props (not axes): label
|
|
43
44
|
|
|
44
45
|
CheckBox (Form)
|
|
45
46
|
size: xlarge | large | medium | small
|
|
46
47
|
appearance: default | native
|
|
47
48
|
booleans: error, disabled, indeterminate
|
|
48
|
-
REQUIRED props (not axes): label
|
|
49
49
|
|
|
50
50
|
Radio (Form)
|
|
51
51
|
size: large | medium | small
|
|
@@ -64,6 +64,7 @@ Switch (Form)
|
|
|
64
64
|
|
|
65
65
|
Slider (Form)
|
|
66
66
|
size: large | small
|
|
67
|
+
appearance: default | scrubber
|
|
67
68
|
booleans: disabled
|
|
68
69
|
|
|
69
70
|
DateTimeInput (Form)
|
|
@@ -78,7 +79,7 @@ OtpInput (Form)
|
|
|
78
79
|
REQUIRED props (not axes): value, onChange
|
|
79
80
|
|
|
80
81
|
Tabs (Navigation)
|
|
81
|
-
size: large | small
|
|
82
|
+
size: large | small | xsmall
|
|
82
83
|
state: default | active
|
|
83
84
|
appearance: default | a2ui
|
|
84
85
|
booleans: showIconLeft, showNotif, showTitle
|
|
@@ -95,11 +96,11 @@ Skeleton (Feedback)
|
|
|
95
96
|
Text (Foundations)
|
|
96
97
|
role: display | h1 | h2 | h3 | h4 | h5 | h6 | paragraph | bodyLg | bodyMd | bodySm
|
|
97
98
|
weight: bold | semibold | medium | regular
|
|
98
|
-
color: primary | secondary | disable | invert | brand | success | error | warning
|
|
99
|
+
color: primary | secondary | disable | invert | brand | success | error | warning | muted
|
|
99
100
|
|
|
100
101
|
Icon (Foundations)
|
|
101
102
|
size: xs | sm | md | lg | xl
|
|
102
|
-
color: primary | secondary | disable | invert | brand | success | error | warning
|
|
103
|
+
color: primary | secondary | disable | invert | brand | success | error | warning | muted
|
|
103
104
|
REQUIRED props (not axes): name
|
|
104
105
|
|
|
105
106
|
Sidebar (Shell)
|
|
@@ -125,28 +126,33 @@ ChatComposerInput (Chat)
|
|
|
125
126
|
REQUIRED props (not axes): value, onValueChange, label
|
|
126
127
|
|
|
127
128
|
ChatDrawer (Chat)
|
|
128
|
-
variant: inherit | neutral | info | warning | danger
|
|
129
|
+
variant: inherit | neutral | info | warning | danger | floating
|
|
129
130
|
booleans: collapsed
|
|
130
131
|
|
|
131
132
|
ChatAttachment (Chat)
|
|
132
|
-
variant: image | file
|
|
133
|
+
variant: image | file | tile
|
|
134
|
+
size: default | large
|
|
133
135
|
booleans: showSize
|
|
134
136
|
REQUIRED props (not axes): name
|
|
135
137
|
|
|
136
138
|
ChatToolsButton (Chat)
|
|
137
139
|
state: default | active
|
|
140
|
+
size: compact | landing
|
|
138
141
|
REQUIRED props (not axes): label
|
|
139
142
|
|
|
140
143
|
ChatAttachmentButton (Chat)
|
|
141
144
|
state: default | active
|
|
145
|
+
size: compact | landing
|
|
142
146
|
REQUIRED props (not axes): label
|
|
143
147
|
|
|
144
148
|
ChatVoiceButton (Chat)
|
|
145
149
|
state: default | active
|
|
150
|
+
size: compact | landing
|
|
146
151
|
REQUIRED props (not axes): label
|
|
147
152
|
|
|
148
153
|
ChatSendButton (Chat)
|
|
149
154
|
state: send | stop | waiting
|
|
155
|
+
size: compact | landing
|
|
150
156
|
REQUIRED props (not axes): label
|
|
151
157
|
|
|
152
158
|
ChatSoundWave (Chat)
|
|
@@ -172,7 +178,7 @@ ChatMessageList (Chat)
|
|
|
172
178
|
density: compact | balanced | spacious
|
|
173
179
|
align: top | bottom
|
|
174
180
|
gap: none | 2xs | xs | sm | md | lg
|
|
175
|
-
booleans: streaming
|
|
181
|
+
booleans: streaming, flush
|
|
176
182
|
|
|
177
183
|
ChatThread (Chat)
|
|
178
184
|
|
|
@@ -188,7 +194,8 @@ ChatMessageTTSButton (Chat)
|
|
|
188
194
|
Dialog (Overlays)
|
|
189
195
|
size: small | medium | large | xlarge
|
|
190
196
|
side: none | left | right
|
|
191
|
-
|
|
197
|
+
rounded: default | lg
|
|
198
|
+
booleans: centered, fullHeight, keyboardAware, showCloseButton, dismissible, dismissOnOutsidePress, closeDisabled
|
|
192
199
|
REQUIRED props (not axes): open, onOpenChange
|
|
193
200
|
|
|
194
201
|
Menu (Overlays)
|
|
@@ -200,7 +207,7 @@ Popover (Overlays)
|
|
|
200
207
|
booleans: portal
|
|
201
208
|
|
|
202
209
|
Card (Content)
|
|
203
|
-
variant: elevated | outlined | plain
|
|
210
|
+
variant: elevated | outlined | plain | glass
|
|
204
211
|
padding: none | small | medium | large
|
|
205
212
|
appearance: default | a2ui | a2ui-hero
|
|
206
213
|
|
|
@@ -275,6 +282,7 @@ Toaster (Feedback)
|
|
|
275
282
|
Label (Form)
|
|
276
283
|
variant: default | error | success
|
|
277
284
|
size: sm | md | lg
|
|
285
|
+
look: default | field-large | field-small
|
|
278
286
|
booleans: required
|
|
279
287
|
|
|
280
288
|
TRAPS — each of these renders or ignores silently, with no error:
|
|
@@ -18,8 +18,8 @@ HOW TO USE THIS FILE
|
|
|
18
18
|
WHAT THIS FILE NEEDS FROM THE NETWORK
|
|
19
19
|
Four hosts, every time it is opened — not just the first time:
|
|
20
20
|
|
|
21
|
-
https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
22
|
-
https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
21
|
+
https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-hf08301514059/umkmall-tailwind.js
|
|
22
|
+
https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-hf08301514059/umkmall-ui.js
|
|
23
23
|
https://cdn.jsdelivr.net/npm/@babel/standalone@7.26.4/babel.min.js
|
|
24
24
|
— all on jsDelivr: the design system's assets (pinned) and the JSX compiler.
|
|
25
25
|
The token CSS is NOT fetched: it is inlined in the <style> below, because a claude.ai
|
|
@@ -33,7 +33,7 @@ WHAT THIS FILE NEEDS FROM THE NETWORK
|
|
|
33
33
|
|
|
34
34
|
YOU DO NOT HAVE TO START FROM THIS FILE
|
|
35
35
|
Four tags add UMKMall styling to a page you already have: the token CSS as a <link> to
|
|
36
|
-
https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
36
|
+
https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-hf08301514059/umkmall-tokens.css
|
|
37
37
|
then the Play CDN, the config and the bundle below. Keep the order — the config must come after
|
|
38
38
|
the Play CDN script, or the theme arrives too late and every class resolves to nothing.
|
|
39
39
|
|
|
@@ -41,9 +41,9 @@ UMKMall UI — 57 components, and the values each axis accepts.
|
|
|
41
41
|
Generated from packages/ui/src/contract/variants.ts. Do not hand-edit.
|
|
42
42
|
|
|
43
43
|
Button (Foundations)
|
|
44
|
-
type: primary | ghost | text
|
|
44
|
+
type: primary | ghost | outline | text
|
|
45
45
|
color: primary | light | danger | dark
|
|
46
|
-
size: large | medium | small | micro
|
|
46
|
+
size: large | medium | small | micro | compact
|
|
47
47
|
width: auto | full
|
|
48
48
|
booleans: disabled, isLoading
|
|
49
49
|
|
|
@@ -56,27 +56,27 @@ Alert (Feedback)
|
|
|
56
56
|
|
|
57
57
|
Badge (Content)
|
|
58
58
|
color: primary | warning | success | danger | light | bestseller | gradient
|
|
59
|
-
size: xlarge | medium | small | micro
|
|
59
|
+
size: xlarge | medium | small | micro | compact | compactTight
|
|
60
60
|
appearance: default | a2ui
|
|
61
61
|
booleans: showIconLeft, showIconRight
|
|
62
62
|
|
|
63
63
|
Chip (Content)
|
|
64
64
|
state: default | active
|
|
65
|
-
size: huge | xlarge | large | medium | small | micro
|
|
65
|
+
size: huge | xlarge | large | medium | small | micro | compact
|
|
66
66
|
appearance: default | a2ui
|
|
67
67
|
booleans: showIconLeft, showIconRight
|
|
68
68
|
|
|
69
69
|
TextField (Form)
|
|
70
|
-
size: large | small
|
|
71
|
-
appearance: default | a2ui
|
|
70
|
+
size: large | small | xsmall | compact
|
|
71
|
+
appearance: default | a2ui | bare
|
|
72
|
+
counterPlacement: below | inside
|
|
73
|
+
prefixPlacement: inside | outside
|
|
72
74
|
booleans: error, disabled
|
|
73
|
-
REQUIRED props (not axes): label
|
|
74
75
|
|
|
75
76
|
CheckBox (Form)
|
|
76
77
|
size: xlarge | large | medium | small
|
|
77
78
|
appearance: default | native
|
|
78
79
|
booleans: error, disabled, indeterminate
|
|
79
|
-
REQUIRED props (not axes): label
|
|
80
80
|
|
|
81
81
|
Radio (Form)
|
|
82
82
|
size: large | medium | small
|
|
@@ -95,6 +95,7 @@ Switch (Form)
|
|
|
95
95
|
|
|
96
96
|
Slider (Form)
|
|
97
97
|
size: large | small
|
|
98
|
+
appearance: default | scrubber
|
|
98
99
|
booleans: disabled
|
|
99
100
|
|
|
100
101
|
DateTimeInput (Form)
|
|
@@ -109,7 +110,7 @@ OtpInput (Form)
|
|
|
109
110
|
REQUIRED props (not axes): value, onChange
|
|
110
111
|
|
|
111
112
|
Tabs (Navigation)
|
|
112
|
-
size: large | small
|
|
113
|
+
size: large | small | xsmall
|
|
113
114
|
state: default | active
|
|
114
115
|
appearance: default | a2ui
|
|
115
116
|
booleans: showIconLeft, showNotif, showTitle
|
|
@@ -126,11 +127,11 @@ Skeleton (Feedback)
|
|
|
126
127
|
Text (Foundations)
|
|
127
128
|
role: display | h1 | h2 | h3 | h4 | h5 | h6 | paragraph | bodyLg | bodyMd | bodySm
|
|
128
129
|
weight: bold | semibold | medium | regular
|
|
129
|
-
color: primary | secondary | disable | invert | brand | success | error | warning
|
|
130
|
+
color: primary | secondary | disable | invert | brand | success | error | warning | muted
|
|
130
131
|
|
|
131
132
|
Icon (Foundations)
|
|
132
133
|
size: xs | sm | md | lg | xl
|
|
133
|
-
color: primary | secondary | disable | invert | brand | success | error | warning
|
|
134
|
+
color: primary | secondary | disable | invert | brand | success | error | warning | muted
|
|
134
135
|
REQUIRED props (not axes): name
|
|
135
136
|
|
|
136
137
|
Sidebar (Shell)
|
|
@@ -156,28 +157,33 @@ ChatComposerInput (Chat)
|
|
|
156
157
|
REQUIRED props (not axes): value, onValueChange, label
|
|
157
158
|
|
|
158
159
|
ChatDrawer (Chat)
|
|
159
|
-
variant: inherit | neutral | info | warning | danger
|
|
160
|
+
variant: inherit | neutral | info | warning | danger | floating
|
|
160
161
|
booleans: collapsed
|
|
161
162
|
|
|
162
163
|
ChatAttachment (Chat)
|
|
163
|
-
variant: image | file
|
|
164
|
+
variant: image | file | tile
|
|
165
|
+
size: default | large
|
|
164
166
|
booleans: showSize
|
|
165
167
|
REQUIRED props (not axes): name
|
|
166
168
|
|
|
167
169
|
ChatToolsButton (Chat)
|
|
168
170
|
state: default | active
|
|
171
|
+
size: compact | landing
|
|
169
172
|
REQUIRED props (not axes): label
|
|
170
173
|
|
|
171
174
|
ChatAttachmentButton (Chat)
|
|
172
175
|
state: default | active
|
|
176
|
+
size: compact | landing
|
|
173
177
|
REQUIRED props (not axes): label
|
|
174
178
|
|
|
175
179
|
ChatVoiceButton (Chat)
|
|
176
180
|
state: default | active
|
|
181
|
+
size: compact | landing
|
|
177
182
|
REQUIRED props (not axes): label
|
|
178
183
|
|
|
179
184
|
ChatSendButton (Chat)
|
|
180
185
|
state: send | stop | waiting
|
|
186
|
+
size: compact | landing
|
|
181
187
|
REQUIRED props (not axes): label
|
|
182
188
|
|
|
183
189
|
ChatSoundWave (Chat)
|
|
@@ -203,7 +209,7 @@ ChatMessageList (Chat)
|
|
|
203
209
|
density: compact | balanced | spacious
|
|
204
210
|
align: top | bottom
|
|
205
211
|
gap: none | 2xs | xs | sm | md | lg
|
|
206
|
-
booleans: streaming
|
|
212
|
+
booleans: streaming, flush
|
|
207
213
|
|
|
208
214
|
ChatThread (Chat)
|
|
209
215
|
|
|
@@ -219,7 +225,8 @@ ChatMessageTTSButton (Chat)
|
|
|
219
225
|
Dialog (Overlays)
|
|
220
226
|
size: small | medium | large | xlarge
|
|
221
227
|
side: none | left | right
|
|
222
|
-
|
|
228
|
+
rounded: default | lg
|
|
229
|
+
booleans: centered, fullHeight, keyboardAware, showCloseButton, dismissible, dismissOnOutsidePress, closeDisabled
|
|
223
230
|
REQUIRED props (not axes): open, onOpenChange
|
|
224
231
|
|
|
225
232
|
Menu (Overlays)
|
|
@@ -231,7 +238,7 @@ Popover (Overlays)
|
|
|
231
238
|
booleans: portal
|
|
232
239
|
|
|
233
240
|
Card (Content)
|
|
234
|
-
variant: elevated | outlined | plain
|
|
241
|
+
variant: elevated | outlined | plain | glass
|
|
235
242
|
padding: none | small | medium | large
|
|
236
243
|
appearance: default | a2ui | a2ui-hero
|
|
237
244
|
|
|
@@ -306,6 +313,7 @@ Toaster (Feedback)
|
|
|
306
313
|
Label (Form)
|
|
307
314
|
variant: default | error | success
|
|
308
315
|
size: sm | md | lg
|
|
316
|
+
look: default | field-large | field-small
|
|
309
317
|
booleans: required
|
|
310
318
|
|
|
311
319
|
TRAPS — each of these renders or ignores silently, with no error:
|
|
@@ -442,6 +450,7 @@ TRAPS — each of these renders or ignores silently, with no error:
|
|
|
442
450
|
--text-default-success: 14 160 110;
|
|
443
451
|
--text-default-error: 219 0 0;
|
|
444
452
|
--text-default-warning: 245 158 11;
|
|
453
|
+
--text-default-muted: 49 77 105;
|
|
445
454
|
--text-hover-primary: 3 32 61;
|
|
446
455
|
--text-hover-secondary: 97 118 140;
|
|
447
456
|
--text-hover-invert: 246 246 246;
|
|
@@ -460,7 +469,7 @@ TRAPS — each of these renders or ignores silently, with no error:
|
|
|
460
469
|
--text-focus-invert: 255 255 255;
|
|
461
470
|
--text-focus-brand: 0 116 231;
|
|
462
471
|
--text-focus-success: 14 160 110;
|
|
463
|
-
--text-focus-error:
|
|
472
|
+
--text-focus-error: 219 0 0;
|
|
464
473
|
--text-focus-warning: 245 158 11;
|
|
465
474
|
--text-disable-primary: 195 203 211;
|
|
466
475
|
--text-disable-brand: 150 198 245;
|
|
@@ -468,6 +477,15 @@ TRAPS — each of these renders or ignores silently, with no error:
|
|
|
468
477
|
--text-disable-error: 245 150 150;
|
|
469
478
|
--text-disable-warning: 253 228 152;
|
|
470
479
|
--text-disable-invert: 49 77 105;
|
|
480
|
+
--text-chip-price: 138 74 0;
|
|
481
|
+
--text-chip-free: 0 88 71;
|
|
482
|
+
--text-tile-blue: 0 116 231;
|
|
483
|
+
--text-tile-green: 14 160 110;
|
|
484
|
+
--text-tile-yellow: 179 116 0;
|
|
485
|
+
--text-tile-red: 219 0 0;
|
|
486
|
+
--text-tile-purple: 91 69 194;
|
|
487
|
+
--text-tile-orange: 201 98 10;
|
|
488
|
+
--text-coin-default: 240 138 28;
|
|
471
489
|
--icon-default-primary: 4 38 72;
|
|
472
490
|
--icon-default-secondary: 147 162 176;
|
|
473
491
|
--icon-default-invert: 255 255 255;
|
|
@@ -493,7 +511,7 @@ TRAPS — each of these renders or ignores silently, with no error:
|
|
|
493
511
|
--icon-focus-invert: 255 255 255;
|
|
494
512
|
--icon-focus-brand: 0 116 231;
|
|
495
513
|
--icon-focus-success: 14 160 110;
|
|
496
|
-
--icon-focus-error:
|
|
514
|
+
--icon-focus-error: 219 0 0;
|
|
497
515
|
--icon-focus-warning: 245 158 11;
|
|
498
516
|
--icon-disable-primary: 195 203 211;
|
|
499
517
|
--icon-disable-brand: 150 198 245;
|
|
@@ -501,6 +519,13 @@ TRAPS — each of these renders or ignores silently, with no error:
|
|
|
501
519
|
--icon-disable-error: 245 150 150;
|
|
502
520
|
--icon-disable-warning: 253 228 152;
|
|
503
521
|
--icon-disable-invert: 49 77 105;
|
|
522
|
+
--icon-tile-blue: 0 116 231;
|
|
523
|
+
--icon-tile-green: 14 160 110;
|
|
524
|
+
--icon-tile-yellow: 179 116 0;
|
|
525
|
+
--icon-tile-red: 219 0 0;
|
|
526
|
+
--icon-tile-purple: 91 69 194;
|
|
527
|
+
--icon-tile-orange: 201 98 10;
|
|
528
|
+
--icon-coin-default: 240 138 28;
|
|
504
529
|
--surface-default-primary: 255 255 255;
|
|
505
530
|
--surface-default-secondary: 246 246 246;
|
|
506
531
|
--surface-default-invert: 0 0 0;
|
|
@@ -546,8 +571,21 @@ TRAPS — each of these renders or ignores silently, with no error:
|
|
|
546
571
|
--surface-gradient-yellow-end: 172 111 8;
|
|
547
572
|
--surface-gradient-callout-start: 0 81 162;
|
|
548
573
|
--surface-gradient-callout-end: 8 118 96;
|
|
574
|
+
--surface-glass-default: 255 255 255;
|
|
575
|
+
--surface-glass-strong: 255 255 255;
|
|
576
|
+
--surface-page-mesh: 247 250 253;
|
|
577
|
+
--surface-tile-blue: 240 247 255;
|
|
578
|
+
--surface-tile-green: 236 253 247;
|
|
579
|
+
--surface-tile-yellow: 255 248 230;
|
|
580
|
+
--surface-tile-red: 255 243 243;
|
|
581
|
+
--surface-tile-purple: 239 235 252;
|
|
582
|
+
--surface-tile-orange: 255 240 227;
|
|
583
|
+
--surface-chip-price: 255 248 230;
|
|
584
|
+
--surface-chip-free: 236 253 247;
|
|
585
|
+
--surface-badge-promo: 231 0 0;
|
|
549
586
|
--surface-hover-neutral: 247 248 250;
|
|
550
587
|
--surface-selected-hover: 227 239 252;
|
|
588
|
+
--surface-default-subtle: 249 250 251;
|
|
551
589
|
--border-default-primary: 240 240 240;
|
|
552
590
|
--border-default-invert: 195 203 211;
|
|
553
591
|
--border-default-brand: 0 116 231;
|
|
@@ -580,6 +618,7 @@ TRAPS — each of these renders or ignores silently, with no error:
|
|
|
580
618
|
--border-disable-error: 245 150 150;
|
|
581
619
|
--border-disable-warning: 253 228 152;
|
|
582
620
|
--border-disable-invert: 49 77 105;
|
|
621
|
+
--border-glass-default: 255 255 255;
|
|
583
622
|
--radius-null: 0;
|
|
584
623
|
--radius-xs: 4;
|
|
585
624
|
--radius-sm: 6;
|
|
@@ -615,6 +654,8 @@ TRAPS — each of these renders or ignores silently, with no error:
|
|
|
615
654
|
--shadow-position-md: 4;
|
|
616
655
|
--shadow-position-lg: 8;
|
|
617
656
|
--shadow-position-xl: 12;
|
|
657
|
+
--shadow-nav: 0 10px 30px 0 #0426481f;
|
|
658
|
+
--shadow-float: 0 20px 50px 0 #04264847;
|
|
618
659
|
--shadow-5-pct: 0 4px 12px 0 #0000000d;
|
|
619
660
|
--shadow-card: 0 2px 8px 0 #0000001a;
|
|
620
661
|
--shadow-10-pct: 0 4px 16px 0 #0000001a;
|
|
@@ -626,6 +667,32 @@ TRAPS — each of these renders or ignores silently, with no error:
|
|
|
626
667
|
--border-width-sm: 1;
|
|
627
668
|
--border-width-md: 2;
|
|
628
669
|
--border-width-l: 4;
|
|
670
|
+
--glow-mesh-blue: 3 114 229;
|
|
671
|
+
--glow-mesh-green: 30 198 141;
|
|
672
|
+
--glow-mesh-sky: 150 198 245;
|
|
673
|
+
--glow-mesh-mint: 28 198 142;
|
|
674
|
+
--blur-glass: 18;
|
|
675
|
+
--motion-duration-press: 120;
|
|
676
|
+
--motion-duration-fast: 180;
|
|
677
|
+
--motion-duration-base: 280;
|
|
678
|
+
--motion-duration-slow: 380;
|
|
679
|
+
--motion-easing-standard: cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
680
|
+
--motion-easing-exit: cubic-bezier(0.4, 0, 1, 1);
|
|
681
|
+
--motion-spring-press-damping: 18;
|
|
682
|
+
--motion-spring-press-stiffness: 320;
|
|
683
|
+
--motion-spring-sheet-damping: 22;
|
|
684
|
+
--motion-spring-sheet-stiffness: 220;
|
|
685
|
+
--motion-stagger-step: 40;
|
|
686
|
+
--motion-stagger-max: 8;
|
|
687
|
+
--motion-distance-enter: 12;
|
|
688
|
+
--motion-distance-sidebar: 24;
|
|
689
|
+
--motion-distance-label: 6;
|
|
690
|
+
--motion-delay-label: 100;
|
|
691
|
+
--motion-scale-press-default: 0.97;
|
|
692
|
+
--motion-scale-press-card: 0.98;
|
|
693
|
+
--motion-scale-press-icon: 0.92;
|
|
694
|
+
--motion-scale-pop-squash: 0.82;
|
|
695
|
+
--motion-scale-pop-overshoot: 1.14;
|
|
629
696
|
--callout-default-surface: 240 247 255;
|
|
630
697
|
--callout-default-border: 0 116 231;
|
|
631
698
|
--callout-default-text: 0 81 162;
|
|
@@ -736,8 +803,8 @@ TRAPS — each of these renders or ignores silently, with no error:
|
|
|
736
803
|
body { color: rgb(var(--text-default-primary)); }
|
|
737
804
|
</style>
|
|
738
805
|
<script src="https://cdn.tailwindcss.com"></script>
|
|
739
|
-
<script src="https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
740
|
-
<script src="https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
806
|
+
<script src="https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-hf08301514059/umkmall-tailwind.js"></script>
|
|
807
|
+
<script src="https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-hf08301514059/umkmall-ui.js"></script>
|
|
741
808
|
<script src="https://cdn.jsdelivr.net/npm/@babel/standalone@7.26.4/babel.min.js"></script>
|
|
742
809
|
</head>
|
|
743
810
|
<body class="bg-default-primary text-default-primary">
|
package/umkmall-rules.md
CHANGED
|
@@ -29,10 +29,10 @@ When I answer, build the whole thing in one file and hand it back.
|
|
|
29
29
|
Each of these is plain markdown, published for you rather than for a person.
|
|
30
30
|
Fetch them if you have web access; they are always current.
|
|
31
31
|
|
|
32
|
-
the whole starter, in a code block https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
33
|
-
the demo block on its own https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
34
|
-
the component vocabulary https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
35
|
-
the starter as a raw .html file https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
32
|
+
the whole starter, in a code block https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-hf08301514059/umkmall-starter.md
|
|
33
|
+
the demo block on its own https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-hf08301514059/umkmall-starter-app.md
|
|
34
|
+
the component vocabulary https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-hf08301514059/umkmall-components.md
|
|
35
|
+
the starter as a raw .html file https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-hf08301514059/umkmall-prototype-starter.html
|
|
36
36
|
|
|
37
37
|
TAKE THE FIRST ONE. It is the entire working file — <head>, mount node and a
|
|
38
38
|
demo that already renders a chat room — inside a single fenced block, so you
|
|
@@ -150,7 +150,7 @@ THE COMPONENT LIST
|
|
|
150
150
|
Not written here. It is a published file, always current, and it carries each
|
|
151
151
|
component's axes AND the props it will not render without:
|
|
152
152
|
|
|
153
|
-
https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
153
|
+
https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-hf08301514059/umkmall-components.md
|
|
154
154
|
|
|
155
155
|
Fetch it, or ask me to paste it. Do not work from memory of another design
|
|
156
156
|
system — an invented axis value renders unstyled with no error, and a missing
|
package/umkmall-starter-app.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# UMKMall prototyping starter — the editable block
|
|
2
2
|
|
|
3
|
-
This is the `<script type="text/babel">` block from [the starter](https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
3
|
+
This is the `<script type="text/babel">` block from [the starter](https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-hf08301514059/umkmall-prototype-starter.html), on its own
|
|
4
4
|
so it can be read or pasted without the surrounding HTML.
|
|
5
5
|
|
|
6
6
|
It renders a working chat room: a header, the journey's progress rail and quota meters, a
|
|
7
7
|
scrolling transcript and a pinned composer. Edit the part between the `REPLACE THIS` and
|
|
8
8
|
`end of the part you replace` markers; keep the shell around it.
|
|
9
9
|
|
|
10
|
-
The `<head>` it needs is in the starter, or in section 3 of [the prompt](https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
10
|
+
The `<head>` it needs is in the starter, or in section 3 of [the prompt](https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-hf08301514059/umkmall-rules.md).
|
|
11
11
|
|
|
12
12
|
```jsx
|
|
13
13
|
/*
|
package/umkmall-starter.md
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
The starter in a code block, so it can be read without fetching HTML. Save it as `.html` and
|
|
4
4
|
open it; there is no build step and no install.
|
|
5
5
|
|
|
6
|
-
It is the same file as [the raw starter](https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
6
|
+
It is the same file as [the raw starter](https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-hf08301514059/umkmall-prototype-starter.html) with one deliberate difference: the
|
|
7
7
|
`.html` carries the whole component list inside a comment in its `<head>`, and here that is
|
|
8
|
-
replaced by a link to [the same list](https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
8
|
+
replaced by a link to [the same list](https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-hf08301514059/umkmall-components.md). Nothing else differs, and nothing the
|
|
9
9
|
page needs to run is in the part that was swapped.
|
|
10
10
|
|
|
11
11
|
**Take the `<head>` exactly as it is.** Its tags load in one order that works: the config
|
|
@@ -14,7 +14,7 @@ CDN the global does not exist and after it the theme arrives too late — every
|
|
|
14
14
|
class then resolves to nothing, with no error. Edit only the `<script type="text/babel">`
|
|
15
15
|
block at the bottom.
|
|
16
16
|
|
|
17
|
-
The component list is not inline here; it is [its own file](https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
17
|
+
The component list is not inline here; it is [its own file](https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-hf08301514059/umkmall-components.md).
|
|
18
18
|
|
|
19
19
|
````html
|
|
20
20
|
<!doctype html>
|
|
@@ -37,8 +37,8 @@ HOW TO USE THIS FILE
|
|
|
37
37
|
WHAT THIS FILE NEEDS FROM THE NETWORK
|
|
38
38
|
Four hosts, every time it is opened — not just the first time:
|
|
39
39
|
|
|
40
|
-
https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
41
|
-
https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
40
|
+
https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-hf08301514059/umkmall-tailwind.js
|
|
41
|
+
https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-hf08301514059/umkmall-ui.js
|
|
42
42
|
https://cdn.jsdelivr.net/npm/@babel/standalone@7.26.4/babel.min.js
|
|
43
43
|
— all on jsDelivr: the design system's assets (pinned) and the JSX compiler.
|
|
44
44
|
The token CSS is NOT fetched: it is inlined in the <style> below, because a claude.ai
|
|
@@ -52,14 +52,14 @@ WHAT THIS FILE NEEDS FROM THE NETWORK
|
|
|
52
52
|
|
|
53
53
|
YOU DO NOT HAVE TO START FROM THIS FILE
|
|
54
54
|
Four tags add UMKMall styling to a page you already have: the token CSS as a <link> to
|
|
55
|
-
https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
55
|
+
https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-hf08301514059/umkmall-tokens.css
|
|
56
56
|
then the Play CDN, the config and the bundle below. Keep the order — the config must come after
|
|
57
57
|
the Play CDN script, or the theme arrives too late and every class resolves to nothing.
|
|
58
58
|
|
|
59
59
|
THE COMPONENT LIST IS NOT IN THIS FILE.
|
|
60
60
|
It is published separately, and it is always current:
|
|
61
61
|
|
|
62
|
-
https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
62
|
+
https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-hf08301514059/umkmall-components.md
|
|
63
63
|
|
|
64
64
|
It carries every component, its axes, and the props it will not render without.
|
|
65
65
|
-->
|
|
@@ -187,6 +187,7 @@ It carries every component, its axes, and the props it will not render without.
|
|
|
187
187
|
--text-default-success: 14 160 110;
|
|
188
188
|
--text-default-error: 219 0 0;
|
|
189
189
|
--text-default-warning: 245 158 11;
|
|
190
|
+
--text-default-muted: 49 77 105;
|
|
190
191
|
--text-hover-primary: 3 32 61;
|
|
191
192
|
--text-hover-secondary: 97 118 140;
|
|
192
193
|
--text-hover-invert: 246 246 246;
|
|
@@ -205,7 +206,7 @@ It carries every component, its axes, and the props it will not render without.
|
|
|
205
206
|
--text-focus-invert: 255 255 255;
|
|
206
207
|
--text-focus-brand: 0 116 231;
|
|
207
208
|
--text-focus-success: 14 160 110;
|
|
208
|
-
--text-focus-error:
|
|
209
|
+
--text-focus-error: 219 0 0;
|
|
209
210
|
--text-focus-warning: 245 158 11;
|
|
210
211
|
--text-disable-primary: 195 203 211;
|
|
211
212
|
--text-disable-brand: 150 198 245;
|
|
@@ -213,6 +214,15 @@ It carries every component, its axes, and the props it will not render without.
|
|
|
213
214
|
--text-disable-error: 245 150 150;
|
|
214
215
|
--text-disable-warning: 253 228 152;
|
|
215
216
|
--text-disable-invert: 49 77 105;
|
|
217
|
+
--text-chip-price: 138 74 0;
|
|
218
|
+
--text-chip-free: 0 88 71;
|
|
219
|
+
--text-tile-blue: 0 116 231;
|
|
220
|
+
--text-tile-green: 14 160 110;
|
|
221
|
+
--text-tile-yellow: 179 116 0;
|
|
222
|
+
--text-tile-red: 219 0 0;
|
|
223
|
+
--text-tile-purple: 91 69 194;
|
|
224
|
+
--text-tile-orange: 201 98 10;
|
|
225
|
+
--text-coin-default: 240 138 28;
|
|
216
226
|
--icon-default-primary: 4 38 72;
|
|
217
227
|
--icon-default-secondary: 147 162 176;
|
|
218
228
|
--icon-default-invert: 255 255 255;
|
|
@@ -238,7 +248,7 @@ It carries every component, its axes, and the props it will not render without.
|
|
|
238
248
|
--icon-focus-invert: 255 255 255;
|
|
239
249
|
--icon-focus-brand: 0 116 231;
|
|
240
250
|
--icon-focus-success: 14 160 110;
|
|
241
|
-
--icon-focus-error:
|
|
251
|
+
--icon-focus-error: 219 0 0;
|
|
242
252
|
--icon-focus-warning: 245 158 11;
|
|
243
253
|
--icon-disable-primary: 195 203 211;
|
|
244
254
|
--icon-disable-brand: 150 198 245;
|
|
@@ -246,6 +256,13 @@ It carries every component, its axes, and the props it will not render without.
|
|
|
246
256
|
--icon-disable-error: 245 150 150;
|
|
247
257
|
--icon-disable-warning: 253 228 152;
|
|
248
258
|
--icon-disable-invert: 49 77 105;
|
|
259
|
+
--icon-tile-blue: 0 116 231;
|
|
260
|
+
--icon-tile-green: 14 160 110;
|
|
261
|
+
--icon-tile-yellow: 179 116 0;
|
|
262
|
+
--icon-tile-red: 219 0 0;
|
|
263
|
+
--icon-tile-purple: 91 69 194;
|
|
264
|
+
--icon-tile-orange: 201 98 10;
|
|
265
|
+
--icon-coin-default: 240 138 28;
|
|
249
266
|
--surface-default-primary: 255 255 255;
|
|
250
267
|
--surface-default-secondary: 246 246 246;
|
|
251
268
|
--surface-default-invert: 0 0 0;
|
|
@@ -291,8 +308,21 @@ It carries every component, its axes, and the props it will not render without.
|
|
|
291
308
|
--surface-gradient-yellow-end: 172 111 8;
|
|
292
309
|
--surface-gradient-callout-start: 0 81 162;
|
|
293
310
|
--surface-gradient-callout-end: 8 118 96;
|
|
311
|
+
--surface-glass-default: 255 255 255;
|
|
312
|
+
--surface-glass-strong: 255 255 255;
|
|
313
|
+
--surface-page-mesh: 247 250 253;
|
|
314
|
+
--surface-tile-blue: 240 247 255;
|
|
315
|
+
--surface-tile-green: 236 253 247;
|
|
316
|
+
--surface-tile-yellow: 255 248 230;
|
|
317
|
+
--surface-tile-red: 255 243 243;
|
|
318
|
+
--surface-tile-purple: 239 235 252;
|
|
319
|
+
--surface-tile-orange: 255 240 227;
|
|
320
|
+
--surface-chip-price: 255 248 230;
|
|
321
|
+
--surface-chip-free: 236 253 247;
|
|
322
|
+
--surface-badge-promo: 231 0 0;
|
|
294
323
|
--surface-hover-neutral: 247 248 250;
|
|
295
324
|
--surface-selected-hover: 227 239 252;
|
|
325
|
+
--surface-default-subtle: 249 250 251;
|
|
296
326
|
--border-default-primary: 240 240 240;
|
|
297
327
|
--border-default-invert: 195 203 211;
|
|
298
328
|
--border-default-brand: 0 116 231;
|
|
@@ -325,6 +355,7 @@ It carries every component, its axes, and the props it will not render without.
|
|
|
325
355
|
--border-disable-error: 245 150 150;
|
|
326
356
|
--border-disable-warning: 253 228 152;
|
|
327
357
|
--border-disable-invert: 49 77 105;
|
|
358
|
+
--border-glass-default: 255 255 255;
|
|
328
359
|
--radius-null: 0;
|
|
329
360
|
--radius-xs: 4;
|
|
330
361
|
--radius-sm: 6;
|
|
@@ -360,6 +391,8 @@ It carries every component, its axes, and the props it will not render without.
|
|
|
360
391
|
--shadow-position-md: 4;
|
|
361
392
|
--shadow-position-lg: 8;
|
|
362
393
|
--shadow-position-xl: 12;
|
|
394
|
+
--shadow-nav: 0 10px 30px 0 #0426481f;
|
|
395
|
+
--shadow-float: 0 20px 50px 0 #04264847;
|
|
363
396
|
--shadow-5-pct: 0 4px 12px 0 #0000000d;
|
|
364
397
|
--shadow-card: 0 2px 8px 0 #0000001a;
|
|
365
398
|
--shadow-10-pct: 0 4px 16px 0 #0000001a;
|
|
@@ -371,6 +404,32 @@ It carries every component, its axes, and the props it will not render without.
|
|
|
371
404
|
--border-width-sm: 1;
|
|
372
405
|
--border-width-md: 2;
|
|
373
406
|
--border-width-l: 4;
|
|
407
|
+
--glow-mesh-blue: 3 114 229;
|
|
408
|
+
--glow-mesh-green: 30 198 141;
|
|
409
|
+
--glow-mesh-sky: 150 198 245;
|
|
410
|
+
--glow-mesh-mint: 28 198 142;
|
|
411
|
+
--blur-glass: 18;
|
|
412
|
+
--motion-duration-press: 120;
|
|
413
|
+
--motion-duration-fast: 180;
|
|
414
|
+
--motion-duration-base: 280;
|
|
415
|
+
--motion-duration-slow: 380;
|
|
416
|
+
--motion-easing-standard: cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
417
|
+
--motion-easing-exit: cubic-bezier(0.4, 0, 1, 1);
|
|
418
|
+
--motion-spring-press-damping: 18;
|
|
419
|
+
--motion-spring-press-stiffness: 320;
|
|
420
|
+
--motion-spring-sheet-damping: 22;
|
|
421
|
+
--motion-spring-sheet-stiffness: 220;
|
|
422
|
+
--motion-stagger-step: 40;
|
|
423
|
+
--motion-stagger-max: 8;
|
|
424
|
+
--motion-distance-enter: 12;
|
|
425
|
+
--motion-distance-sidebar: 24;
|
|
426
|
+
--motion-distance-label: 6;
|
|
427
|
+
--motion-delay-label: 100;
|
|
428
|
+
--motion-scale-press-default: 0.97;
|
|
429
|
+
--motion-scale-press-card: 0.98;
|
|
430
|
+
--motion-scale-press-icon: 0.92;
|
|
431
|
+
--motion-scale-pop-squash: 0.82;
|
|
432
|
+
--motion-scale-pop-overshoot: 1.14;
|
|
374
433
|
--callout-default-surface: 240 247 255;
|
|
375
434
|
--callout-default-border: 0 116 231;
|
|
376
435
|
--callout-default-text: 0 81 162;
|
|
@@ -481,8 +540,8 @@ It carries every component, its axes, and the props it will not render without.
|
|
|
481
540
|
body { color: rgb(var(--text-default-primary)); }
|
|
482
541
|
</style>
|
|
483
542
|
<script src="https://cdn.tailwindcss.com"></script>
|
|
484
|
-
<script src="https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
485
|
-
<script src="https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
543
|
+
<script src="https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-hf08301514059/umkmall-tailwind.js"></script>
|
|
544
|
+
<script src="https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-hf08301514059/umkmall-ui.js"></script>
|
|
486
545
|
<script src="https://cdn.jsdelivr.net/npm/@babel/standalone@7.26.4/babel.min.js"></script>
|
|
487
546
|
</head>
|
|
488
547
|
<body class="bg-default-primary text-default-primary">
|