@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umkmall/proto",
3
- "version": "0.1.0-heea0e2dbdd10",
3
+ "version": "0.1.0-hf08301514059",
4
4
  "description": "UMKMall design-system assets and prototyping docs, served from jsDelivr. Generated — see README.",
5
5
  "license": "UNLICENSED",
6
6
  "files": [
@@ -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
- booleans: centered, showCloseButton
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-heea0e2dbdd10/umkmall-tailwind.js
22
- https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-heea0e2dbdd10/umkmall-ui.js
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-heea0e2dbdd10/umkmall-tokens.css
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
- booleans: centered, showCloseButton
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: 231 0 0;
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: 231 0 0;
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-heea0e2dbdd10/umkmall-tailwind.js"></script>
740
- <script src="https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-heea0e2dbdd10/umkmall-ui.js"></script>
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-heea0e2dbdd10/umkmall-starter.md
33
- the demo block on its own https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-heea0e2dbdd10/umkmall-starter-app.md
34
- the component vocabulary https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-heea0e2dbdd10/umkmall-components.md
35
- the starter as a raw .html file https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-heea0e2dbdd10/umkmall-prototype-starter.html
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-heea0e2dbdd10/umkmall-components.md
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
@@ -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-heea0e2dbdd10/umkmall-prototype-starter.html), on its own
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-heea0e2dbdd10/umkmall-rules.md).
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
  /*
@@ -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-heea0e2dbdd10/umkmall-prototype-starter.html) with one deliberate difference: the
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-heea0e2dbdd10/umkmall-components.md). Nothing else differs, and nothing the
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-heea0e2dbdd10/umkmall-components.md).
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-heea0e2dbdd10/umkmall-tailwind.js
41
- https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-heea0e2dbdd10/umkmall-ui.js
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-heea0e2dbdd10/umkmall-tokens.css
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-heea0e2dbdd10/umkmall-components.md
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: 231 0 0;
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: 231 0 0;
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-heea0e2dbdd10/umkmall-tailwind.js"></script>
485
- <script src="https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-heea0e2dbdd10/umkmall-ui.js"></script>
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">