@umkmall/proto 0.1.0-h726308542f5a → 0.1.0-ha04bbbde2f13
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 +34 -7
- package/umkmall-prototype-starter.html +125 -96
- package/umkmall-rules.md +5 -5
- package/umkmall-starter-app.md +2 -2
- package/umkmall-starter.md +95 -93
- package/umkmall-tailwind.js +77 -54
- package/umkmall-tokens.css +86 -84
- package/umkmall-ui.js +31 -18
package/package.json
CHANGED
package/umkmall-components.md
CHANGED
|
@@ -6,7 +6,7 @@ Every component below is published on `window.UmkmallUI` by the browser bundle.
|
|
|
6
6
|
axis values listed, and pass every REQUIRED prop an entry names.
|
|
7
7
|
|
|
8
8
|
```
|
|
9
|
-
UMKMall UI —
|
|
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)
|
|
@@ -21,32 +21,42 @@ Alert (Feedback)
|
|
|
21
21
|
function: success | info | warning | danger
|
|
22
22
|
size: large | medium | small
|
|
23
23
|
treatment: full | accent | coach | banner
|
|
24
|
+
appearance: default | a2ui
|
|
24
25
|
|
|
25
26
|
Badge (Content)
|
|
26
27
|
color: primary | warning | success | danger | light | bestseller | gradient
|
|
27
28
|
size: xlarge | medium | small | micro
|
|
29
|
+
appearance: default | a2ui
|
|
28
30
|
booleans: showIconLeft, showIconRight
|
|
29
31
|
|
|
30
32
|
Chip (Content)
|
|
31
33
|
state: default | active
|
|
32
34
|
size: huge | xlarge | large | medium | small | micro
|
|
35
|
+
appearance: default | a2ui
|
|
33
36
|
booleans: showIconLeft, showIconRight
|
|
34
37
|
|
|
35
38
|
TextField (Form)
|
|
36
|
-
size: large | small
|
|
39
|
+
size: large | small | xsmall
|
|
40
|
+
appearance: default | a2ui | bare
|
|
41
|
+
counterPlacement: below | inside
|
|
42
|
+
prefixPlacement: inside | outside
|
|
37
43
|
booleans: error, disabled
|
|
38
|
-
REQUIRED props (not axes): label
|
|
39
44
|
|
|
40
45
|
CheckBox (Form)
|
|
41
46
|
size: xlarge | large | medium | small
|
|
47
|
+
appearance: default | native
|
|
42
48
|
booleans: error, disabled, indeterminate
|
|
43
|
-
REQUIRED props (not axes): label
|
|
44
49
|
|
|
45
50
|
Radio (Form)
|
|
46
51
|
size: large | medium | small
|
|
47
52
|
booleans: error, disabled
|
|
48
53
|
REQUIRED props (not axes): label
|
|
49
54
|
|
|
55
|
+
SegmentedControl (Form)
|
|
56
|
+
size: medium | small
|
|
57
|
+
booleans: disabled
|
|
58
|
+
REQUIRED props (not axes): options, value, onChange
|
|
59
|
+
|
|
50
60
|
Switch (Form)
|
|
51
61
|
size: large | medium | small
|
|
52
62
|
booleans: disabled, loading
|
|
@@ -59,6 +69,7 @@ Slider (Form)
|
|
|
59
69
|
DateTimeInput (Form)
|
|
60
70
|
size: large | small
|
|
61
71
|
selection: single | range
|
|
72
|
+
appearance: default | a2ui
|
|
62
73
|
booleans: error, disabled, withTime, portal
|
|
63
74
|
|
|
64
75
|
OtpInput (Form)
|
|
@@ -67,8 +78,9 @@ OtpInput (Form)
|
|
|
67
78
|
REQUIRED props (not axes): value, onChange
|
|
68
79
|
|
|
69
80
|
Tabs (Navigation)
|
|
70
|
-
size: large | small
|
|
81
|
+
size: large | small | xsmall
|
|
71
82
|
state: default | active
|
|
83
|
+
appearance: default | a2ui
|
|
72
84
|
booleans: showIconLeft, showNotif, showTitle
|
|
73
85
|
|
|
74
86
|
Tooltip (Feedback)
|
|
@@ -117,24 +129,29 @@ ChatDrawer (Chat)
|
|
|
117
129
|
booleans: collapsed
|
|
118
130
|
|
|
119
131
|
ChatAttachment (Chat)
|
|
120
|
-
variant: image | file
|
|
132
|
+
variant: image | file | tile
|
|
133
|
+
size: default | large
|
|
121
134
|
booleans: showSize
|
|
122
135
|
REQUIRED props (not axes): name
|
|
123
136
|
|
|
124
137
|
ChatToolsButton (Chat)
|
|
125
138
|
state: default | active
|
|
139
|
+
size: compact | landing
|
|
126
140
|
REQUIRED props (not axes): label
|
|
127
141
|
|
|
128
142
|
ChatAttachmentButton (Chat)
|
|
129
143
|
state: default | active
|
|
144
|
+
size: compact | landing
|
|
130
145
|
REQUIRED props (not axes): label
|
|
131
146
|
|
|
132
147
|
ChatVoiceButton (Chat)
|
|
133
148
|
state: default | active
|
|
149
|
+
size: compact | landing
|
|
134
150
|
REQUIRED props (not axes): label
|
|
135
151
|
|
|
136
152
|
ChatSendButton (Chat)
|
|
137
153
|
state: send | stop | waiting
|
|
154
|
+
size: compact | landing
|
|
138
155
|
REQUIRED props (not axes): label
|
|
139
156
|
|
|
140
157
|
ChatSoundWave (Chat)
|
|
@@ -176,7 +193,7 @@ ChatMessageTTSButton (Chat)
|
|
|
176
193
|
Dialog (Overlays)
|
|
177
194
|
size: small | medium | large | xlarge
|
|
178
195
|
side: none | left | right
|
|
179
|
-
booleans: centered, showCloseButton
|
|
196
|
+
booleans: centered, showCloseButton, dismissible, closeDisabled
|
|
180
197
|
REQUIRED props (not axes): open, onOpenChange
|
|
181
198
|
|
|
182
199
|
Menu (Overlays)
|
|
@@ -190,31 +207,37 @@ Popover (Overlays)
|
|
|
190
207
|
Card (Content)
|
|
191
208
|
variant: elevated | outlined | plain
|
|
192
209
|
padding: none | small | medium | large
|
|
210
|
+
appearance: default | a2ui | a2ui-hero
|
|
193
211
|
|
|
194
212
|
Divider (Content)
|
|
195
213
|
variant: default | dashed
|
|
196
214
|
orientation: horizontal | vertical
|
|
215
|
+
appearance: default | a2ui
|
|
197
216
|
|
|
198
217
|
List (Content)
|
|
199
218
|
|
|
200
219
|
Disclosure (Content)
|
|
220
|
+
appearance: default | a2ui
|
|
201
221
|
REQUIRED props (not axes): title
|
|
202
222
|
|
|
203
223
|
Image (Content)
|
|
204
224
|
type: thumbnail | banner | natural | avatar
|
|
205
225
|
size: regular | small | blog
|
|
226
|
+
appearance: default | a2ui
|
|
206
227
|
booleans: hover
|
|
207
228
|
|
|
208
229
|
SelectionCard (Form)
|
|
209
230
|
size: large | small
|
|
210
231
|
state: default | selected | disabled
|
|
211
232
|
layout: row | tile
|
|
233
|
+
appearance: default | choice
|
|
212
234
|
REQUIRED props (not axes): options
|
|
213
235
|
|
|
214
236
|
Upload (Form)
|
|
215
237
|
size: large | small
|
|
216
238
|
status: default | filled | error | disabled | busy
|
|
217
239
|
border: solid | dashed
|
|
240
|
+
appearance: default | a2ui
|
|
218
241
|
|
|
219
242
|
Select (Form)
|
|
220
243
|
size: large | small
|
|
@@ -224,6 +247,7 @@ Select (Form)
|
|
|
224
247
|
|
|
225
248
|
CodeBlock (Content)
|
|
226
249
|
size: large | small
|
|
250
|
+
appearance: default | a2ui
|
|
227
251
|
|
|
228
252
|
Stepper (Navigation)
|
|
229
253
|
position: first | middle | last
|
|
@@ -233,10 +257,12 @@ Stepper (Navigation)
|
|
|
233
257
|
|
|
234
258
|
Pagination (Navigation)
|
|
235
259
|
size: large | small
|
|
260
|
+
density: compact | comfortable
|
|
236
261
|
booleans: disabled
|
|
237
262
|
REQUIRED props (not axes): page, onPageChange
|
|
238
263
|
|
|
239
264
|
Table (Content)
|
|
265
|
+
density: compact | comfortable
|
|
240
266
|
booleans: loading, serverSide, hidePagination, fixedLayout, noBorder, slimScrollbar
|
|
241
267
|
|
|
242
268
|
Spinner (Feedback)
|
|
@@ -254,6 +280,7 @@ Toaster (Feedback)
|
|
|
254
280
|
Label (Form)
|
|
255
281
|
variant: default | error | success
|
|
256
282
|
size: sm | md | lg
|
|
283
|
+
look: default | field-large | field-small
|
|
257
284
|
booleans: required
|
|
258
285
|
|
|
259
286
|
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-ha04bbbde2f13/umkmall-tailwind.js
|
|
22
|
+
https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-ha04bbbde2f13/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,11 +33,11 @@ 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-ha04bbbde2f13/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
|
|
|
40
|
-
UMKMall UI —
|
|
40
|
+
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)
|
|
@@ -52,32 +52,42 @@ Alert (Feedback)
|
|
|
52
52
|
function: success | info | warning | danger
|
|
53
53
|
size: large | medium | small
|
|
54
54
|
treatment: full | accent | coach | banner
|
|
55
|
+
appearance: default | a2ui
|
|
55
56
|
|
|
56
57
|
Badge (Content)
|
|
57
58
|
color: primary | warning | success | danger | light | bestseller | gradient
|
|
58
59
|
size: xlarge | medium | small | micro
|
|
60
|
+
appearance: default | a2ui
|
|
59
61
|
booleans: showIconLeft, showIconRight
|
|
60
62
|
|
|
61
63
|
Chip (Content)
|
|
62
64
|
state: default | active
|
|
63
65
|
size: huge | xlarge | large | medium | small | micro
|
|
66
|
+
appearance: default | a2ui
|
|
64
67
|
booleans: showIconLeft, showIconRight
|
|
65
68
|
|
|
66
69
|
TextField (Form)
|
|
67
|
-
size: large | small
|
|
70
|
+
size: large | small | xsmall
|
|
71
|
+
appearance: default | a2ui | bare
|
|
72
|
+
counterPlacement: below | inside
|
|
73
|
+
prefixPlacement: inside | outside
|
|
68
74
|
booleans: error, disabled
|
|
69
|
-
REQUIRED props (not axes): label
|
|
70
75
|
|
|
71
76
|
CheckBox (Form)
|
|
72
77
|
size: xlarge | large | medium | small
|
|
78
|
+
appearance: default | native
|
|
73
79
|
booleans: error, disabled, indeterminate
|
|
74
|
-
REQUIRED props (not axes): label
|
|
75
80
|
|
|
76
81
|
Radio (Form)
|
|
77
82
|
size: large | medium | small
|
|
78
83
|
booleans: error, disabled
|
|
79
84
|
REQUIRED props (not axes): label
|
|
80
85
|
|
|
86
|
+
SegmentedControl (Form)
|
|
87
|
+
size: medium | small
|
|
88
|
+
booleans: disabled
|
|
89
|
+
REQUIRED props (not axes): options, value, onChange
|
|
90
|
+
|
|
81
91
|
Switch (Form)
|
|
82
92
|
size: large | medium | small
|
|
83
93
|
booleans: disabled, loading
|
|
@@ -90,6 +100,7 @@ Slider (Form)
|
|
|
90
100
|
DateTimeInput (Form)
|
|
91
101
|
size: large | small
|
|
92
102
|
selection: single | range
|
|
103
|
+
appearance: default | a2ui
|
|
93
104
|
booleans: error, disabled, withTime, portal
|
|
94
105
|
|
|
95
106
|
OtpInput (Form)
|
|
@@ -98,8 +109,9 @@ OtpInput (Form)
|
|
|
98
109
|
REQUIRED props (not axes): value, onChange
|
|
99
110
|
|
|
100
111
|
Tabs (Navigation)
|
|
101
|
-
size: large | small
|
|
112
|
+
size: large | small | xsmall
|
|
102
113
|
state: default | active
|
|
114
|
+
appearance: default | a2ui
|
|
103
115
|
booleans: showIconLeft, showNotif, showTitle
|
|
104
116
|
|
|
105
117
|
Tooltip (Feedback)
|
|
@@ -148,24 +160,29 @@ ChatDrawer (Chat)
|
|
|
148
160
|
booleans: collapsed
|
|
149
161
|
|
|
150
162
|
ChatAttachment (Chat)
|
|
151
|
-
variant: image | file
|
|
163
|
+
variant: image | file | tile
|
|
164
|
+
size: default | large
|
|
152
165
|
booleans: showSize
|
|
153
166
|
REQUIRED props (not axes): name
|
|
154
167
|
|
|
155
168
|
ChatToolsButton (Chat)
|
|
156
169
|
state: default | active
|
|
170
|
+
size: compact | landing
|
|
157
171
|
REQUIRED props (not axes): label
|
|
158
172
|
|
|
159
173
|
ChatAttachmentButton (Chat)
|
|
160
174
|
state: default | active
|
|
175
|
+
size: compact | landing
|
|
161
176
|
REQUIRED props (not axes): label
|
|
162
177
|
|
|
163
178
|
ChatVoiceButton (Chat)
|
|
164
179
|
state: default | active
|
|
180
|
+
size: compact | landing
|
|
165
181
|
REQUIRED props (not axes): label
|
|
166
182
|
|
|
167
183
|
ChatSendButton (Chat)
|
|
168
184
|
state: send | stop | waiting
|
|
185
|
+
size: compact | landing
|
|
169
186
|
REQUIRED props (not axes): label
|
|
170
187
|
|
|
171
188
|
ChatSoundWave (Chat)
|
|
@@ -207,7 +224,7 @@ ChatMessageTTSButton (Chat)
|
|
|
207
224
|
Dialog (Overlays)
|
|
208
225
|
size: small | medium | large | xlarge
|
|
209
226
|
side: none | left | right
|
|
210
|
-
booleans: centered, showCloseButton
|
|
227
|
+
booleans: centered, showCloseButton, dismissible, closeDisabled
|
|
211
228
|
REQUIRED props (not axes): open, onOpenChange
|
|
212
229
|
|
|
213
230
|
Menu (Overlays)
|
|
@@ -221,31 +238,37 @@ Popover (Overlays)
|
|
|
221
238
|
Card (Content)
|
|
222
239
|
variant: elevated | outlined | plain
|
|
223
240
|
padding: none | small | medium | large
|
|
241
|
+
appearance: default | a2ui | a2ui-hero
|
|
224
242
|
|
|
225
243
|
Divider (Content)
|
|
226
244
|
variant: default | dashed
|
|
227
245
|
orientation: horizontal | vertical
|
|
246
|
+
appearance: default | a2ui
|
|
228
247
|
|
|
229
248
|
List (Content)
|
|
230
249
|
|
|
231
250
|
Disclosure (Content)
|
|
251
|
+
appearance: default | a2ui
|
|
232
252
|
REQUIRED props (not axes): title
|
|
233
253
|
|
|
234
254
|
Image (Content)
|
|
235
255
|
type: thumbnail | banner | natural | avatar
|
|
236
256
|
size: regular | small | blog
|
|
257
|
+
appearance: default | a2ui
|
|
237
258
|
booleans: hover
|
|
238
259
|
|
|
239
260
|
SelectionCard (Form)
|
|
240
261
|
size: large | small
|
|
241
262
|
state: default | selected | disabled
|
|
242
263
|
layout: row | tile
|
|
264
|
+
appearance: default | choice
|
|
243
265
|
REQUIRED props (not axes): options
|
|
244
266
|
|
|
245
267
|
Upload (Form)
|
|
246
268
|
size: large | small
|
|
247
269
|
status: default | filled | error | disabled | busy
|
|
248
270
|
border: solid | dashed
|
|
271
|
+
appearance: default | a2ui
|
|
249
272
|
|
|
250
273
|
Select (Form)
|
|
251
274
|
size: large | small
|
|
@@ -255,6 +278,7 @@ Select (Form)
|
|
|
255
278
|
|
|
256
279
|
CodeBlock (Content)
|
|
257
280
|
size: large | small
|
|
281
|
+
appearance: default | a2ui
|
|
258
282
|
|
|
259
283
|
Stepper (Navigation)
|
|
260
284
|
position: first | middle | last
|
|
@@ -264,10 +288,12 @@ Stepper (Navigation)
|
|
|
264
288
|
|
|
265
289
|
Pagination (Navigation)
|
|
266
290
|
size: large | small
|
|
291
|
+
density: compact | comfortable
|
|
267
292
|
booleans: disabled
|
|
268
293
|
REQUIRED props (not axes): page, onPageChange
|
|
269
294
|
|
|
270
295
|
Table (Content)
|
|
296
|
+
density: compact | comfortable
|
|
271
297
|
booleans: loading, serverSide, hidePagination, fixedLayout, noBorder, slimScrollbar
|
|
272
298
|
|
|
273
299
|
Spinner (Feedback)
|
|
@@ -285,6 +311,7 @@ Toaster (Feedback)
|
|
|
285
311
|
Label (Form)
|
|
286
312
|
variant: default | error | success
|
|
287
313
|
size: sm | md | lg
|
|
314
|
+
look: default | field-large | field-small
|
|
288
315
|
booleans: required
|
|
289
316
|
|
|
290
317
|
TRAPS — each of these renders or ignores silently, with no error:
|
|
@@ -326,6 +353,7 @@ TRAPS — each of these renders or ignores silently, with no error:
|
|
|
326
353
|
--red-r600: 124 0 0;
|
|
327
354
|
--red-r500: 162 0 0;
|
|
328
355
|
--red-r400: 231 0 0;
|
|
356
|
+
--red-r450: 219 0 0;
|
|
329
357
|
--red-r300: 235 43 43;
|
|
330
358
|
--red-r200: 241 107 107;
|
|
331
359
|
--red-r100: 245 150 150;
|
|
@@ -418,7 +446,7 @@ TRAPS — each of these renders or ignores silently, with no error:
|
|
|
418
446
|
--text-default-invert: 255 255 255;
|
|
419
447
|
--text-default-brand: 0 116 231;
|
|
420
448
|
--text-default-success: 14 160 110;
|
|
421
|
-
--text-default-error:
|
|
449
|
+
--text-default-error: 219 0 0;
|
|
422
450
|
--text-default-warning: 245 158 11;
|
|
423
451
|
--text-hover-primary: 3 32 61;
|
|
424
452
|
--text-hover-secondary: 97 118 140;
|
|
@@ -438,7 +466,7 @@ TRAPS — each of these renders or ignores silently, with no error:
|
|
|
438
466
|
--text-focus-invert: 255 255 255;
|
|
439
467
|
--text-focus-brand: 0 116 231;
|
|
440
468
|
--text-focus-success: 14 160 110;
|
|
441
|
-
--text-focus-error:
|
|
469
|
+
--text-focus-error: 219 0 0;
|
|
442
470
|
--text-focus-warning: 245 158 11;
|
|
443
471
|
--text-disable-primary: 195 203 211;
|
|
444
472
|
--text-disable-brand: 150 198 245;
|
|
@@ -451,7 +479,7 @@ TRAPS — each of these renders or ignores silently, with no error:
|
|
|
451
479
|
--icon-default-invert: 255 255 255;
|
|
452
480
|
--icon-default-brand: 0 116 231;
|
|
453
481
|
--icon-default-success: 14 160 110;
|
|
454
|
-
--icon-default-error:
|
|
482
|
+
--icon-default-error: 219 0 0;
|
|
455
483
|
--icon-default-warning: 245 158 11;
|
|
456
484
|
--icon-hover-primary: 3 32 61;
|
|
457
485
|
--icon-hover-secondary: 97 118 140;
|
|
@@ -471,7 +499,7 @@ TRAPS — each of these renders or ignores silently, with no error:
|
|
|
471
499
|
--icon-focus-invert: 255 255 255;
|
|
472
500
|
--icon-focus-brand: 0 116 231;
|
|
473
501
|
--icon-focus-success: 14 160 110;
|
|
474
|
-
--icon-focus-error:
|
|
502
|
+
--icon-focus-error: 219 0 0;
|
|
475
503
|
--icon-focus-warning: 245 158 11;
|
|
476
504
|
--icon-disable-primary: 195 203 211;
|
|
477
505
|
--icon-disable-brand: 150 198 245;
|
|
@@ -526,6 +554,7 @@ TRAPS — each of these renders or ignores silently, with no error:
|
|
|
526
554
|
--surface-gradient-callout-end: 8 118 96;
|
|
527
555
|
--surface-hover-neutral: 247 248 250;
|
|
528
556
|
--surface-selected-hover: 227 239 252;
|
|
557
|
+
--surface-default-subtle: 249 250 251;
|
|
529
558
|
--border-default-primary: 240 240 240;
|
|
530
559
|
--border-default-invert: 195 203 211;
|
|
531
560
|
--border-default-brand: 0 116 231;
|
|
@@ -620,86 +649,86 @@ TRAPS — each of these renders or ignores silently, with no error:
|
|
|
620
649
|
--callout-neg-border: 231 0 0;
|
|
621
650
|
--callout-neg-text: 4 38 72;
|
|
622
651
|
--focus-halo: 150 198 245;
|
|
623
|
-
--typography-mobile-display-bold: 700
|
|
624
|
-
--typography-mobile-display-semibold: 600
|
|
625
|
-
--typography-mobile-h1-bold: 700
|
|
626
|
-
--typography-mobile-h1-semibold: 600
|
|
627
|
-
--typography-mobile-h2-bold: 700
|
|
628
|
-
--typography-mobile-h2-semibold: 600
|
|
629
|
-
--typography-mobile-h2-medium: 500
|
|
630
|
-
--typography-mobile-h2-regular: 400
|
|
631
|
-
--typography-mobile-h3-bold: 700
|
|
632
|
-
--typography-mobile-h3-semibold: 600
|
|
633
|
-
--typography-mobile-h3-medium: 500
|
|
634
|
-
--typography-mobile-h3-regular: 400
|
|
635
|
-
--typography-mobile-h4-bold: 700
|
|
636
|
-
--typography-mobile-h4-semibold: 600
|
|
637
|
-
--typography-mobile-h4-medium: 500
|
|
638
|
-
--typography-mobile-h4-regular: 400
|
|
639
|
-
--typography-mobile-h5-bold: 700
|
|
640
|
-
--typography-mobile-h5-semibold: 600
|
|
641
|
-
--typography-mobile-h5-medium: 500
|
|
642
|
-
--typography-mobile-h5-regular: 400
|
|
643
|
-
--typography-mobile-h6-bold: 700
|
|
644
|
-
--typography-mobile-h6-semibold: 600
|
|
645
|
-
--typography-mobile-h6-medium: 500
|
|
646
|
-
--typography-mobile-h6-regular: 400
|
|
647
|
-
--typography-mobile-paragraph-bold: 700
|
|
648
|
-
--typography-mobile-paragraph-semibold: 600
|
|
649
|
-
--typography-mobile-paragraph-medium: 500
|
|
650
|
-
--typography-mobile-paragraph-regular: 400
|
|
651
|
-
--typography-mobile-body-lg-bold: 700
|
|
652
|
-
--typography-mobile-body-lg-semibold: 600
|
|
653
|
-
--typography-mobile-body-lg-medium: 500
|
|
654
|
-
--typography-mobile-body-lg-regular: 400
|
|
655
|
-
--typography-mobile-body-md-bold: 700
|
|
656
|
-
--typography-mobile-body-md-semibold: 600
|
|
657
|
-
--typography-mobile-body-md-medium: 500
|
|
658
|
-
--typography-mobile-body-md-regular: 400
|
|
659
|
-
--typography-mobile-body-sm-bold: 700
|
|
660
|
-
--typography-mobile-body-sm-semibold: 600
|
|
661
|
-
--typography-mobile-body-sm-medium: 500
|
|
662
|
-
--typography-mobile-body-sm-regular: 400
|
|
663
|
-
--typography-desktop-display-bold: 700
|
|
664
|
-
--typography-desktop-display-semibold: 600
|
|
665
|
-
--typography-desktop-h1-bold: 700
|
|
666
|
-
--typography-desktop-h1-semibold: 600
|
|
667
|
-
--typography-desktop-h2-bold: 700
|
|
668
|
-
--typography-desktop-h2-semibold: 600
|
|
669
|
-
--typography-desktop-h2-medium: 500
|
|
670
|
-
--typography-desktop-h2-regular: 400
|
|
671
|
-
--typography-desktop-h3-bold: 700
|
|
672
|
-
--typography-desktop-h3-semibold: 600
|
|
673
|
-
--typography-desktop-h3-medium: 500
|
|
674
|
-
--typography-desktop-h3-regular: 400
|
|
675
|
-
--typography-desktop-h4-bold: 700
|
|
676
|
-
--typography-desktop-h4-semibold: 600
|
|
677
|
-
--typography-desktop-h4-medium: 500
|
|
678
|
-
--typography-desktop-h4-regular: 400
|
|
679
|
-
--typography-desktop-h5-bold: 700
|
|
680
|
-
--typography-desktop-h5-semibold: 600
|
|
681
|
-
--typography-desktop-h5-medium: 500
|
|
682
|
-
--typography-desktop-h5-regular: 400
|
|
683
|
-
--typography-desktop-h6-bold: 700
|
|
684
|
-
--typography-desktop-h6-semibold: 600
|
|
685
|
-
--typography-desktop-h6-medium: 500
|
|
686
|
-
--typography-desktop-h6-regular: 400
|
|
687
|
-
--typography-desktop-paragraph-bold: 700
|
|
688
|
-
--typography-desktop-paragraph-semibold: 600
|
|
689
|
-
--typography-desktop-paragraph-medium: 500
|
|
690
|
-
--typography-desktop-paragraph-regular: 400
|
|
691
|
-
--typography-desktop-body-lg-bold: 700
|
|
692
|
-
--typography-desktop-body-lg-semibold: 600
|
|
693
|
-
--typography-desktop-body-lg-medium: 500
|
|
694
|
-
--typography-desktop-body-lg-regular: 400
|
|
695
|
-
--typography-desktop-body-md-bold: 700
|
|
696
|
-
--typography-desktop-body-md-semibold: 600
|
|
697
|
-
--typography-desktop-body-md-medium: 500
|
|
698
|
-
--typography-desktop-body-md-regular: 400
|
|
699
|
-
--typography-desktop-body-sm-bold: 700
|
|
700
|
-
--typography-desktop-body-sm-semibold: 600
|
|
701
|
-
--typography-desktop-body-sm-medium: 500
|
|
702
|
-
--typography-desktop-body-sm-regular: 400
|
|
652
|
+
--typography-mobile-display-bold: 700 calc(2.25rem * var(--ds-text-scale, 1))/calc(2.5rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
653
|
+
--typography-mobile-display-semibold: 600 calc(2.25rem * var(--ds-text-scale, 1))/calc(2.5rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
654
|
+
--typography-mobile-h1-bold: 700 calc(1.75rem * var(--ds-text-scale, 1))/calc(2rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
655
|
+
--typography-mobile-h1-semibold: 600 calc(1.75rem * var(--ds-text-scale, 1))/calc(2rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
656
|
+
--typography-mobile-h2-bold: 700 calc(1.5rem * var(--ds-text-scale, 1))/calc(1.75rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
657
|
+
--typography-mobile-h2-semibold: 600 calc(1.5rem * var(--ds-text-scale, 1))/calc(1.75rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
658
|
+
--typography-mobile-h2-medium: 500 calc(1.5rem * var(--ds-text-scale, 1))/calc(1.75rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
659
|
+
--typography-mobile-h2-regular: 400 calc(1.5rem * var(--ds-text-scale, 1))/calc(1.75rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
660
|
+
--typography-mobile-h3-bold: 700 calc(1.25rem * var(--ds-text-scale, 1))/calc(1.625rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
661
|
+
--typography-mobile-h3-semibold: 600 calc(1.25rem * var(--ds-text-scale, 1))/calc(1.625rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
662
|
+
--typography-mobile-h3-medium: 500 calc(1.25rem * var(--ds-text-scale, 1))/calc(1.625rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
663
|
+
--typography-mobile-h3-regular: 400 calc(1.25rem * var(--ds-text-scale, 1))/calc(1.625rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
664
|
+
--typography-mobile-h4-bold: 700 calc(1.25rem * var(--ds-text-scale, 1))/calc(1.625rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
665
|
+
--typography-mobile-h4-semibold: 600 calc(1.25rem * var(--ds-text-scale, 1))/calc(1.625rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
666
|
+
--typography-mobile-h4-medium: 500 calc(1.25rem * var(--ds-text-scale, 1))/calc(1.625rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
667
|
+
--typography-mobile-h4-regular: 400 calc(1.25rem * var(--ds-text-scale, 1))/calc(1.625rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
668
|
+
--typography-mobile-h5-bold: 700 calc(1.125rem * var(--ds-text-scale, 1))/calc(1.5rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
669
|
+
--typography-mobile-h5-semibold: 600 calc(1.125rem * var(--ds-text-scale, 1))/calc(1.5rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
670
|
+
--typography-mobile-h5-medium: 500 calc(1.125rem * var(--ds-text-scale, 1))/calc(1.5rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
671
|
+
--typography-mobile-h5-regular: 400 calc(1.125rem * var(--ds-text-scale, 1))/calc(1.5rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
672
|
+
--typography-mobile-h6-bold: 700 calc(1rem * var(--ds-text-scale, 1))/calc(1.5rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
673
|
+
--typography-mobile-h6-semibold: 600 calc(1rem * var(--ds-text-scale, 1))/calc(1.5rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
674
|
+
--typography-mobile-h6-medium: 500 calc(1rem * var(--ds-text-scale, 1))/calc(1.5rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
675
|
+
--typography-mobile-h6-regular: 400 calc(1rem * var(--ds-text-scale, 1))/calc(1.5rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
676
|
+
--typography-mobile-paragraph-bold: 700 calc(0.875rem * var(--ds-text-scale, 1))/calc(1.25rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
677
|
+
--typography-mobile-paragraph-semibold: 600 calc(0.875rem * var(--ds-text-scale, 1))/calc(1.25rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
678
|
+
--typography-mobile-paragraph-medium: 500 calc(0.875rem * var(--ds-text-scale, 1))/calc(1.25rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
679
|
+
--typography-mobile-paragraph-regular: 400 calc(0.875rem * var(--ds-text-scale, 1))/calc(1.25rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
680
|
+
--typography-mobile-body-lg-bold: 700 calc(0.75rem * var(--ds-text-scale, 1))/calc(1.125rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
681
|
+
--typography-mobile-body-lg-semibold: 600 calc(0.75rem * var(--ds-text-scale, 1))/calc(1.125rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
682
|
+
--typography-mobile-body-lg-medium: 500 calc(0.75rem * var(--ds-text-scale, 1))/calc(1.125rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
683
|
+
--typography-mobile-body-lg-regular: 400 calc(0.75rem * var(--ds-text-scale, 1))/calc(1.125rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
684
|
+
--typography-mobile-body-md-bold: 700 calc(0.625rem * var(--ds-text-scale, 1))/calc(1rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
685
|
+
--typography-mobile-body-md-semibold: 600 calc(0.625rem * var(--ds-text-scale, 1))/calc(1rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
686
|
+
--typography-mobile-body-md-medium: 500 calc(0.625rem * var(--ds-text-scale, 1))/calc(1rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
687
|
+
--typography-mobile-body-md-regular: 400 calc(0.625rem * var(--ds-text-scale, 1))/calc(1rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
688
|
+
--typography-mobile-body-sm-bold: 700 calc(0.5rem * var(--ds-text-scale, 1))/calc(0.875rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
689
|
+
--typography-mobile-body-sm-semibold: 600 calc(0.5rem * var(--ds-text-scale, 1))/calc(0.875rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
690
|
+
--typography-mobile-body-sm-medium: 500 calc(0.5rem * var(--ds-text-scale, 1))/calc(0.875rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
691
|
+
--typography-mobile-body-sm-regular: 400 calc(0.5rem * var(--ds-text-scale, 1))/calc(0.875rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
692
|
+
--typography-desktop-display-bold: 700 calc(3.5rem * var(--ds-text-scale, 1))/calc(4rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
693
|
+
--typography-desktop-display-semibold: 600 calc(3.5rem * var(--ds-text-scale, 1))/calc(4rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
694
|
+
--typography-desktop-h1-bold: 700 calc(2.5rem * var(--ds-text-scale, 1))/calc(3rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
695
|
+
--typography-desktop-h1-semibold: 600 calc(2.5rem * var(--ds-text-scale, 1))/calc(3rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
696
|
+
--typography-desktop-h2-bold: 700 calc(2rem * var(--ds-text-scale, 1))/calc(2.5rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
697
|
+
--typography-desktop-h2-semibold: 600 calc(2rem * var(--ds-text-scale, 1))/calc(2.5rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
698
|
+
--typography-desktop-h2-medium: 500 calc(2rem * var(--ds-text-scale, 1))/calc(2.5rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
699
|
+
--typography-desktop-h2-regular: 400 calc(2rem * var(--ds-text-scale, 1))/calc(2.5rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
700
|
+
--typography-desktop-h3-bold: 700 calc(1.75rem * var(--ds-text-scale, 1))/calc(2.25rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
701
|
+
--typography-desktop-h3-semibold: 600 calc(1.75rem * var(--ds-text-scale, 1))/calc(2.25rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
702
|
+
--typography-desktop-h3-medium: 500 calc(1.75rem * var(--ds-text-scale, 1))/calc(2.25rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
703
|
+
--typography-desktop-h3-regular: 400 calc(1.75rem * var(--ds-text-scale, 1))/calc(2.25rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
704
|
+
--typography-desktop-h4-bold: 700 calc(1.5rem * var(--ds-text-scale, 1))/calc(2rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
705
|
+
--typography-desktop-h4-semibold: 600 calc(1.5rem * var(--ds-text-scale, 1))/calc(2rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
706
|
+
--typography-desktop-h4-medium: 500 calc(1.5rem * var(--ds-text-scale, 1))/calc(2rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
707
|
+
--typography-desktop-h4-regular: 400 calc(1.5rem * var(--ds-text-scale, 1))/calc(2rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
708
|
+
--typography-desktop-h5-bold: 700 calc(1.25rem * var(--ds-text-scale, 1))/calc(1.75rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
709
|
+
--typography-desktop-h5-semibold: 600 calc(1.25rem * var(--ds-text-scale, 1))/calc(1.75rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
710
|
+
--typography-desktop-h5-medium: 500 calc(1.25rem * var(--ds-text-scale, 1))/calc(1.75rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
711
|
+
--typography-desktop-h5-regular: 400 calc(1.25rem * var(--ds-text-scale, 1))/calc(1.75rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
712
|
+
--typography-desktop-h6-bold: 700 calc(1.125rem * var(--ds-text-scale, 1))/calc(1.75rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
713
|
+
--typography-desktop-h6-semibold: 600 calc(1.125rem * var(--ds-text-scale, 1))/calc(1.75rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
714
|
+
--typography-desktop-h6-medium: 500 calc(1.125rem * var(--ds-text-scale, 1))/calc(1.75rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
715
|
+
--typography-desktop-h6-regular: 400 calc(1.125rem * var(--ds-text-scale, 1))/calc(1.75rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
716
|
+
--typography-desktop-paragraph-bold: 700 calc(1rem * var(--ds-text-scale, 1))/calc(1.5rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
717
|
+
--typography-desktop-paragraph-semibold: 600 calc(1rem * var(--ds-text-scale, 1))/calc(1.5rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
718
|
+
--typography-desktop-paragraph-medium: 500 calc(1rem * var(--ds-text-scale, 1))/calc(1.5rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
719
|
+
--typography-desktop-paragraph-regular: 400 calc(1rem * var(--ds-text-scale, 1))/calc(1.5rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
720
|
+
--typography-desktop-body-lg-bold: 700 calc(0.875rem * var(--ds-text-scale, 1))/calc(1.25rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
721
|
+
--typography-desktop-body-lg-semibold: 600 calc(0.875rem * var(--ds-text-scale, 1))/calc(1.25rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
722
|
+
--typography-desktop-body-lg-medium: 500 calc(0.875rem * var(--ds-text-scale, 1))/calc(1.25rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
723
|
+
--typography-desktop-body-lg-regular: 400 calc(0.875rem * var(--ds-text-scale, 1))/calc(1.25rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
724
|
+
--typography-desktop-body-md-bold: 700 calc(0.75rem * var(--ds-text-scale, 1))/calc(1.125rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
725
|
+
--typography-desktop-body-md-semibold: 600 calc(0.75rem * var(--ds-text-scale, 1))/calc(1.125rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
726
|
+
--typography-desktop-body-md-medium: 500 calc(0.75rem * var(--ds-text-scale, 1))/calc(1.125rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
727
|
+
--typography-desktop-body-md-regular: 400 calc(0.75rem * var(--ds-text-scale, 1))/calc(1.125rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
728
|
+
--typography-desktop-body-sm-bold: 700 calc(0.625rem * var(--ds-text-scale, 1))/calc(1rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
729
|
+
--typography-desktop-body-sm-semibold: 600 calc(0.625rem * var(--ds-text-scale, 1))/calc(1rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
730
|
+
--typography-desktop-body-sm-medium: 500 calc(0.625rem * var(--ds-text-scale, 1))/calc(1rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
731
|
+
--typography-desktop-body-sm-regular: 400 calc(0.625rem * var(--ds-text-scale, 1))/calc(1rem * var(--ds-text-scale, 1)) 'Be Vietnam Pro';
|
|
703
732
|
--elevation-overlay: 99999;
|
|
704
733
|
}
|
|
705
734
|
|
|
@@ -714,8 +743,8 @@ TRAPS — each of these renders or ignores silently, with no error:
|
|
|
714
743
|
body { color: rgb(var(--text-default-primary)); }
|
|
715
744
|
</style>
|
|
716
745
|
<script src="https://cdn.tailwindcss.com"></script>
|
|
717
|
-
<script src="https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
718
|
-
<script src="https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-
|
|
746
|
+
<script src="https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-ha04bbbde2f13/umkmall-tailwind.js"></script>
|
|
747
|
+
<script src="https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-ha04bbbde2f13/umkmall-ui.js"></script>
|
|
719
748
|
<script src="https://cdn.jsdelivr.net/npm/@babel/standalone@7.26.4/babel.min.js"></script>
|
|
720
749
|
</head>
|
|
721
750
|
<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-ha04bbbde2f13/umkmall-starter.md
|
|
33
|
+
the demo block on its own https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-ha04bbbde2f13/umkmall-starter-app.md
|
|
34
|
+
the component vocabulary https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-ha04bbbde2f13/umkmall-components.md
|
|
35
|
+
the starter as a raw .html file https://cdn.jsdelivr.net/npm/@umkmall/proto@0.1.0-ha04bbbde2f13/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-ha04bbbde2f13/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
|