@cloudgrid-io/ui 0.0.2 → 0.2.0
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/README.md +109 -0
- package/dist/blocks/agent-prompt.d.ts +37 -0
- package/dist/blocks/agent-prompt.d.ts.map +1 -0
- package/dist/blocks/agent-prompt.js +53 -0
- package/dist/blocks/agent-prompt.js.map +1 -0
- package/dist/blocks/card-grid.d.ts +38 -0
- package/dist/blocks/card-grid.d.ts.map +1 -0
- package/dist/blocks/card-grid.js +32 -0
- package/dist/blocks/card-grid.js.map +1 -0
- package/dist/blocks/compare-table.d.ts +13 -0
- package/dist/blocks/compare-table.d.ts.map +1 -0
- package/dist/blocks/compare-table.js +55 -0
- package/dist/blocks/compare-table.js.map +1 -0
- package/dist/blocks/creation-tile.d.ts +57 -0
- package/dist/blocks/creation-tile.d.ts.map +1 -0
- package/dist/blocks/creation-tile.js +32 -0
- package/dist/blocks/creation-tile.js.map +1 -0
- package/dist/blocks/cta-banner.d.ts +31 -0
- package/dist/blocks/cta-banner.d.ts.map +1 -0
- package/dist/blocks/cta-banner.js +31 -0
- package/dist/blocks/cta-banner.js.map +1 -0
- package/dist/blocks/drop-zone.d.ts +54 -0
- package/dist/blocks/drop-zone.d.ts.map +1 -0
- package/dist/blocks/drop-zone.js +121 -0
- package/dist/blocks/drop-zone.js.map +1 -0
- package/dist/blocks/feature-cells.d.ts +46 -0
- package/dist/blocks/feature-cells.d.ts.map +1 -0
- package/dist/blocks/feature-cells.js +46 -0
- package/dist/blocks/feature-cells.js.map +1 -0
- package/dist/blocks/hub-index.d.ts +55 -0
- package/dist/blocks/hub-index.d.ts.map +1 -0
- package/dist/blocks/hub-index.js +22 -0
- package/dist/blocks/hub-index.js.map +1 -0
- package/dist/blocks/logo.d.ts +24 -0
- package/dist/blocks/logo.d.ts.map +1 -0
- package/dist/blocks/logo.js +34 -0
- package/dist/blocks/logo.js.map +1 -0
- package/dist/blocks/option-card.d.ts +31 -0
- package/dist/blocks/option-card.d.ts.map +1 -0
- package/dist/blocks/option-card.js +32 -0
- package/dist/blocks/option-card.js.map +1 -0
- package/dist/blocks/page-heading.d.ts +33 -0
- package/dist/blocks/page-heading.d.ts.map +1 -0
- package/dist/blocks/page-heading.js +30 -0
- package/dist/blocks/page-heading.js.map +1 -0
- package/dist/blocks/plug-method.d.ts +76 -0
- package/dist/blocks/plug-method.d.ts.map +1 -0
- package/dist/blocks/plug-method.js +30 -0
- package/dist/blocks/plug-method.js.map +1 -0
- package/dist/blocks/pricing-tier-cards.d.ts +47 -0
- package/dist/blocks/pricing-tier-cards.d.ts.map +1 -0
- package/dist/blocks/pricing-tier-cards.js +12 -0
- package/dist/blocks/pricing-tier-cards.js.map +1 -0
- package/dist/blocks/pricing-tiers.d.ts +29 -0
- package/dist/blocks/pricing-tiers.d.ts.map +1 -0
- package/dist/blocks/pricing-tiers.js +30 -0
- package/dist/blocks/pricing-tiers.js.map +1 -0
- package/dist/blocks/quote.d.ts +27 -0
- package/dist/blocks/quote.d.ts.map +1 -0
- package/dist/blocks/quote.js +28 -0
- package/dist/blocks/quote.js.map +1 -0
- package/dist/blocks/rich-text.d.ts +38 -0
- package/dist/blocks/rich-text.d.ts.map +1 -0
- package/dist/blocks/rich-text.js +39 -0
- package/dist/blocks/rich-text.js.map +1 -0
- package/dist/blocks/stage-panel.d.ts +5 -0
- package/dist/blocks/stage-panel.d.ts.map +1 -0
- package/dist/blocks/stage-panel.js +30 -0
- package/dist/blocks/stage-panel.js.map +1 -0
- package/dist/blocks/step-item.d.ts +24 -0
- package/dist/blocks/step-item.d.ts.map +1 -0
- package/dist/blocks/step-item.js +34 -0
- package/dist/blocks/step-item.js.map +1 -0
- package/dist/blocks/tool-logo.d.ts +15 -0
- package/dist/blocks/tool-logo.d.ts.map +1 -0
- package/dist/blocks/tool-logo.js +59 -0
- package/dist/blocks/tool-logo.js.map +1 -0
- package/dist/blocks/tool-marks.d.ts +120 -0
- package/dist/blocks/tool-marks.d.ts.map +1 -0
- package/dist/blocks/tool-marks.js +94 -0
- package/dist/blocks/tool-marks.js.map +1 -0
- package/dist/index.d.ts +45 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +63 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/cloudgrid-cn.d.ts +65 -0
- package/dist/lib/cloudgrid-cn.d.ts.map +1 -0
- package/dist/lib/cloudgrid-cn.js +90 -0
- package/dist/lib/cloudgrid-cn.js.map +1 -0
- package/dist/tokens/base.json +119 -38
- package/dist/tokens/surface-ink.json +63 -0
- package/dist/tokens/surface-panel.json +63 -0
- package/dist/tokens.css +115 -19
- package/dist/tokens.json +20 -2
- package/dist/ui/accordion.d.ts +7 -0
- package/dist/ui/accordion.d.ts.map +1 -0
- package/dist/ui/accordion.js +19 -0
- package/dist/ui/accordion.js.map +1 -0
- package/dist/ui/badge.d.ts +8 -0
- package/dist/ui/badge.d.ts.map +1 -0
- package/dist/ui/badge.js +34 -0
- package/dist/ui/badge.js.map +1 -0
- package/dist/ui/button.d.ts +9 -0
- package/dist/ui/button.d.ts.map +1 -0
- package/dist/ui/button.js +35 -0
- package/dist/ui/button.js.map +1 -0
- package/dist/ui/card.d.ts +12 -0
- package/dist/ui/card.d.ts.map +1 -0
- package/dist/ui/card.js +26 -0
- package/dist/ui/card.js.map +1 -0
- package/dist/ui/carousel.d.ts +37 -0
- package/dist/ui/carousel.d.ts.map +1 -0
- package/dist/ui/carousel.js +34 -0
- package/dist/ui/carousel.js.map +1 -0
- package/dist/ui/checkbox.d.ts +4 -0
- package/dist/ui/checkbox.d.ts.map +1 -0
- package/dist/ui/checkbox.js +10 -0
- package/dist/ui/checkbox.js.map +1 -0
- package/dist/ui/code-block.d.ts +9 -0
- package/dist/ui/code-block.d.ts.map +1 -0
- package/dist/ui/code-block.js +57 -0
- package/dist/ui/code-block.js.map +1 -0
- package/dist/ui/combobox.d.ts +25 -0
- package/dist/ui/combobox.d.ts.map +1 -0
- package/dist/ui/combobox.js +59 -0
- package/dist/ui/combobox.js.map +1 -0
- package/dist/ui/dialog.d.ts +18 -0
- package/dist/ui/dialog.d.ts.map +1 -0
- package/dist/ui/dialog.js +39 -0
- package/dist/ui/dialog.js.map +1 -0
- package/dist/ui/dropdown-menu.d.ts +30 -0
- package/dist/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/ui/dropdown-menu.js +53 -0
- package/dist/ui/dropdown-menu.js.map +1 -0
- package/dist/ui/input-group.d.ts +19 -0
- package/dist/ui/input-group.d.ts.map +1 -0
- package/dist/ui/input-group.js +59 -0
- package/dist/ui/input-group.js.map +1 -0
- package/dist/ui/input.d.ts +4 -0
- package/dist/ui/input.d.ts.map +1 -0
- package/dist/ui/input.js +9 -0
- package/dist/ui/input.js.map +1 -0
- package/dist/ui/number-field.d.ts +10 -0
- package/dist/ui/number-field.d.ts.map +1 -0
- package/dist/ui/number-field.js +39 -0
- package/dist/ui/number-field.js.map +1 -0
- package/dist/ui/panel.d.ts +36 -0
- package/dist/ui/panel.d.ts.map +1 -0
- package/dist/ui/panel.js +39 -0
- package/dist/ui/panel.js.map +1 -0
- package/dist/ui/select.d.ts +16 -0
- package/dist/ui/select.d.ts.map +1 -0
- package/dist/ui/select.js +36 -0
- package/dist/ui/select.js.map +1 -0
- package/dist/ui/separator.d.ts +4 -0
- package/dist/ui/separator.d.ts.map +1 -0
- package/dist/ui/separator.js +9 -0
- package/dist/ui/separator.js.map +1 -0
- package/dist/ui/skeleton.d.ts +3 -0
- package/dist/ui/skeleton.d.ts.map +1 -0
- package/dist/ui/skeleton.js +7 -0
- package/dist/ui/skeleton.js.map +1 -0
- package/dist/ui/sonner.d.ts +4 -0
- package/dist/ui/sonner.d.ts.map +1 -0
- package/dist/ui/sonner.js +36 -0
- package/dist/ui/sonner.js.map +1 -0
- package/dist/ui/switch.d.ts +6 -0
- package/dist/ui/switch.d.ts.map +1 -0
- package/dist/ui/switch.js +9 -0
- package/dist/ui/switch.js.map +1 -0
- package/dist/ui/table.d.ts +11 -0
- package/dist/ui/table.d.ts.map +1 -0
- package/dist/ui/table.js +30 -0
- package/dist/ui/table.js.map +1 -0
- package/dist/ui/tabs.d.ts +11 -0
- package/dist/ui/tabs.d.ts.map +1 -0
- package/dist/ui/tabs.js +38 -0
- package/dist/ui/tabs.js.map +1 -0
- package/dist/ui/textarea.d.ts +4 -0
- package/dist/ui/textarea.d.ts.map +1 -0
- package/dist/ui/textarea.js +8 -0
- package/dist/ui/textarea.js.map +1 -0
- package/dist/ui/tooltip.d.ts +8 -0
- package/dist/ui/tooltip.d.ts.map +1 -0
- package/dist/ui/tooltip.js +37 -0
- package/dist/ui/tooltip.js.map +1 -0
- package/package.json +42 -8
package/dist/tokens/base.json
CHANGED
|
@@ -51,6 +51,68 @@
|
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
},
|
|
54
|
+
"state": {
|
|
55
|
+
"$description": "state: what an entity IS, not what it means editorially.\n\nAdopted from the Console rather than invented, 2026-08-24 (#96). The Console\nhad already chosen and contrast-tested these — --color-live and\n--color-attention — while the brand carried no state colour at all beyond the\ndanger placeholder. Taking its values means the Console's appearance does not\nchange when it starts consuming this package, and the two stop disagreeing\nabout what 'live' looks like.\n\nEach carries per-surface values in surface-panel and surface-ink, for the same\nreason danger does: measured against all three grounds, no single value works.\nThe live green is 1.72:1 on the purple panel, and the brand's own lime is\n1.54:1 on white. A flat value would be invisible somewhere.\n\nNo --cg-offline-fill, deliberately. Measured, the pair does not work: the\nmuted neutral on a neutral tint is 2.90:1, under the 3:1 bar for a dot or a\nborder. Rather than invent a value to satisfy the ratio, an unplugged chip\nuses the existing surface-card ground with border-control, and --cg-offline\nis the dot on that ground, where it measures 3.28:1. Absence of state should\nnot need a colour of its own.",
|
|
56
|
+
"online": {
|
|
57
|
+
"$value": "#00a05c",
|
|
58
|
+
"$type": "color",
|
|
59
|
+
"$description": "Serving. From the Console's --color-live. 3.40:1 on white — clears the 3:1 bar for an indicator, which is all this is ever used as. Never body text on white.",
|
|
60
|
+
"$extensions": {
|
|
61
|
+
"io.cloudgrid": {
|
|
62
|
+
"css": "--cg-online"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"offline": {
|
|
67
|
+
"$value": "{neutrals.neutral-500}",
|
|
68
|
+
"$description": "Unplugged. Deliberately the existing muted neutral rather than a new colour — an entity that is off should recede, not signal. 3.28:1 on white.",
|
|
69
|
+
"$extensions": {
|
|
70
|
+
"io.cloudgrid": {
|
|
71
|
+
"css": "--cg-offline"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"expired": {
|
|
76
|
+
"$value": "#b0662a",
|
|
77
|
+
"$type": "color",
|
|
78
|
+
"$description": "Past its 30-day life and no longer served. From the Console's --color-attention. 4.39:1 on white. Amber rather than red: expiry is the documented default for a drop, not a fault.",
|
|
79
|
+
"$extensions": {
|
|
80
|
+
"io.cloudgrid": {
|
|
81
|
+
"css": "--cg-expired"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"online-fill": {
|
|
86
|
+
"$value": "#e6f7ef",
|
|
87
|
+
"$type": "color",
|
|
88
|
+
"$description": "From the Console's --color-live-fill. --cg-online measures 3.06:1 on it.",
|
|
89
|
+
"$extensions": {
|
|
90
|
+
"io.cloudgrid": {
|
|
91
|
+
"css": "--cg-online-fill"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"expired-fill": {
|
|
96
|
+
"$value": "#fdf3e0",
|
|
97
|
+
"$type": "color",
|
|
98
|
+
"$description": "From the Console's --color-attention-fill. --cg-expired measures 3.99:1 on it.",
|
|
99
|
+
"$extensions": {
|
|
100
|
+
"io.cloudgrid": {
|
|
101
|
+
"css": "--cg-expired-fill"
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
"danger-fill": {
|
|
106
|
+
"$value": "#fceded",
|
|
107
|
+
"$type": "color",
|
|
108
|
+
"$description": "From the Console's --color-error-fill. --cg-danger measures 3.72:1 on it. danger had no fill before; a chip needs one.",
|
|
109
|
+
"$extensions": {
|
|
110
|
+
"io.cloudgrid": {
|
|
111
|
+
"css": "--cg-danger-fill"
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
},
|
|
54
116
|
"brand-derived": {
|
|
55
117
|
"$description": "brand derived (interaction only)",
|
|
56
118
|
"primary-press": {
|
|
@@ -101,64 +163,71 @@
|
|
|
101
163
|
}
|
|
102
164
|
},
|
|
103
165
|
"lavender-50": {
|
|
104
|
-
"$value": "#f2f1f7
|
|
166
|
+
"$value": "#f2f1f7",
|
|
167
|
+
"$type": "color",
|
|
168
|
+
"$description": "SOURCE: alternate page wash",
|
|
105
169
|
"$extensions": {
|
|
106
170
|
"io.cloudgrid": {
|
|
107
|
-
"raw": true,
|
|
108
171
|
"css": "--cg-lavender-50"
|
|
109
172
|
}
|
|
110
173
|
}
|
|
111
174
|
},
|
|
112
175
|
"neutral-100": {
|
|
113
|
-
"$value": "#f1f1f1
|
|
176
|
+
"$value": "#f1f1f1",
|
|
177
|
+
"$type": "color",
|
|
178
|
+
"$description": "SOURCE: hairline / card border",
|
|
114
179
|
"$extensions": {
|
|
115
180
|
"io.cloudgrid": {
|
|
116
|
-
"raw": true,
|
|
117
181
|
"css": "--cg-neutral-100"
|
|
118
182
|
}
|
|
119
183
|
}
|
|
120
184
|
},
|
|
121
185
|
"neutral-200": {
|
|
122
|
-
"$value": "#e3e3e3
|
|
186
|
+
"$value": "#e3e3e3",
|
|
187
|
+
"$type": "color",
|
|
188
|
+
"$description": "SOURCE: control border, inactive pill fill",
|
|
123
189
|
"$extensions": {
|
|
124
190
|
"io.cloudgrid": {
|
|
125
|
-
"raw": true,
|
|
126
191
|
"css": "--cg-neutral-200"
|
|
127
192
|
}
|
|
128
193
|
}
|
|
129
194
|
},
|
|
130
195
|
"neutral-400": {
|
|
131
|
-
"$value": "#acacac
|
|
196
|
+
"$value": "#acacac",
|
|
197
|
+
"$type": "color",
|
|
198
|
+
"$description": "SOURCE: placeholder",
|
|
132
199
|
"$extensions": {
|
|
133
200
|
"io.cloudgrid": {
|
|
134
|
-
"raw": true,
|
|
135
201
|
"css": "--cg-neutral-400"
|
|
136
202
|
}
|
|
137
203
|
}
|
|
138
204
|
},
|
|
139
205
|
"neutral-500": {
|
|
140
|
-
"$value": "#8e8e8e
|
|
206
|
+
"$value": "#8e8e8e",
|
|
207
|
+
"$type": "color",
|
|
208
|
+
"$description": "SOURCE: footer text",
|
|
141
209
|
"$extensions": {
|
|
142
210
|
"io.cloudgrid": {
|
|
143
|
-
"raw": true,
|
|
144
211
|
"css": "--cg-neutral-500"
|
|
145
212
|
}
|
|
146
213
|
}
|
|
147
214
|
},
|
|
148
215
|
"neutral-700": {
|
|
149
|
-
"$value": "#595959
|
|
216
|
+
"$value": "#595959",
|
|
217
|
+
"$type": "color",
|
|
218
|
+
"$description": "SOURCE: legal / secondary text",
|
|
150
219
|
"$extensions": {
|
|
151
220
|
"io.cloudgrid": {
|
|
152
|
-
"raw": true,
|
|
153
221
|
"css": "--cg-neutral-700"
|
|
154
222
|
}
|
|
155
223
|
}
|
|
156
224
|
},
|
|
157
225
|
"neutral-900": {
|
|
158
|
-
"$value": "#222222
|
|
226
|
+
"$value": "#222222",
|
|
227
|
+
"$type": "color",
|
|
228
|
+
"$description": "SOURCE: ink",
|
|
159
229
|
"$extensions": {
|
|
160
230
|
"io.cloudgrid": {
|
|
161
|
-
"raw": true,
|
|
162
231
|
"css": "--cg-neutral-900"
|
|
163
232
|
}
|
|
164
233
|
}
|
|
@@ -448,10 +517,11 @@
|
|
|
448
517
|
}
|
|
449
518
|
},
|
|
450
519
|
"display-md": {
|
|
451
|
-
"$value": "38px
|
|
520
|
+
"$value": "38px",
|
|
521
|
+
"$type": "dimension",
|
|
522
|
+
"$description": "SOURCE: onboarding H1 (was 42px)",
|
|
452
523
|
"$extensions": {
|
|
453
524
|
"io.cloudgrid": {
|
|
454
|
-
"raw": true,
|
|
455
525
|
"css": "--cg-display-md"
|
|
456
526
|
}
|
|
457
527
|
}
|
|
@@ -495,19 +565,21 @@
|
|
|
495
565
|
}
|
|
496
566
|
},
|
|
497
567
|
"heading-md": {
|
|
498
|
-
"$value": "20px
|
|
568
|
+
"$value": "20px",
|
|
569
|
+
"$type": "dimension",
|
|
570
|
+
"$description": "SOURCE: card title",
|
|
499
571
|
"$extensions": {
|
|
500
572
|
"io.cloudgrid": {
|
|
501
|
-
"raw": true,
|
|
502
573
|
"css": "--cg-heading-md"
|
|
503
574
|
}
|
|
504
575
|
}
|
|
505
576
|
},
|
|
506
577
|
"heading-sm": {
|
|
507
|
-
"$value": "17px
|
|
578
|
+
"$value": "17px",
|
|
579
|
+
"$type": "dimension",
|
|
580
|
+
"$description": "SOURCE: step title",
|
|
508
581
|
"$extensions": {
|
|
509
582
|
"io.cloudgrid": {
|
|
510
|
-
"raw": true,
|
|
511
583
|
"css": "--cg-heading-sm"
|
|
512
584
|
}
|
|
513
585
|
}
|
|
@@ -522,37 +594,41 @@
|
|
|
522
594
|
}
|
|
523
595
|
},
|
|
524
596
|
"body-lg": {
|
|
525
|
-
"$value": "19px
|
|
597
|
+
"$value": "19px",
|
|
598
|
+
"$type": "dimension",
|
|
599
|
+
"$description": "SOURCE: H1 subline",
|
|
526
600
|
"$extensions": {
|
|
527
601
|
"io.cloudgrid": {
|
|
528
|
-
"raw": true,
|
|
529
602
|
"css": "--cg-body-lg"
|
|
530
603
|
}
|
|
531
604
|
}
|
|
532
605
|
},
|
|
533
606
|
"body-md": {
|
|
534
|
-
"$value": "16px
|
|
607
|
+
"$value": "16px",
|
|
608
|
+
"$type": "dimension",
|
|
609
|
+
"$description": "SOURCE: default UI text",
|
|
535
610
|
"$extensions": {
|
|
536
611
|
"io.cloudgrid": {
|
|
537
|
-
"raw": true,
|
|
538
612
|
"css": "--cg-body-md"
|
|
539
613
|
}
|
|
540
614
|
}
|
|
541
615
|
},
|
|
542
616
|
"body-sm": {
|
|
543
|
-
"$value": "15px
|
|
617
|
+
"$value": "15px",
|
|
618
|
+
"$type": "dimension",
|
|
619
|
+
"$description": "SOURCE: card body, legal",
|
|
544
620
|
"$extensions": {
|
|
545
621
|
"io.cloudgrid": {
|
|
546
|
-
"raw": true,
|
|
547
622
|
"css": "--cg-body-sm"
|
|
548
623
|
}
|
|
549
624
|
}
|
|
550
625
|
},
|
|
551
626
|
"caption": {
|
|
552
|
-
"$value": "13px
|
|
627
|
+
"$value": "13px",
|
|
628
|
+
"$type": "dimension",
|
|
629
|
+
"$description": "SOURCE: footer, helper",
|
|
553
630
|
"$extensions": {
|
|
554
631
|
"io.cloudgrid": {
|
|
555
|
-
"raw": true,
|
|
556
632
|
"css": "--cg-caption"
|
|
557
633
|
}
|
|
558
634
|
}
|
|
@@ -734,10 +810,11 @@
|
|
|
734
810
|
}
|
|
735
811
|
},
|
|
736
812
|
"column-wide": {
|
|
737
|
-
"$value": "920px
|
|
813
|
+
"$value": "920px",
|
|
814
|
+
"$type": "dimension",
|
|
815
|
+
"$description": "SOURCE 844px; widened 2026-08-06 with the container",
|
|
738
816
|
"$extensions": {
|
|
739
817
|
"io.cloudgrid": {
|
|
740
|
-
"raw": true,
|
|
741
818
|
"css": "--cg-column-wide"
|
|
742
819
|
}
|
|
743
820
|
}
|
|
@@ -845,37 +922,41 @@
|
|
|
845
922
|
}
|
|
846
923
|
},
|
|
847
924
|
"radius-md": {
|
|
848
|
-
"$value": "12px
|
|
925
|
+
"$value": "12px",
|
|
926
|
+
"$type": "dimension",
|
|
927
|
+
"$description": "SOURCE: code block, OTP cell",
|
|
849
928
|
"$extensions": {
|
|
850
929
|
"io.cloudgrid": {
|
|
851
|
-
"raw": true,
|
|
852
930
|
"css": "--cg-radius-md"
|
|
853
931
|
}
|
|
854
932
|
}
|
|
855
933
|
},
|
|
856
934
|
"radius-lg": {
|
|
857
|
-
"$value": "14px
|
|
935
|
+
"$value": "14px",
|
|
936
|
+
"$type": "dimension",
|
|
937
|
+
"$description": "SOURCE: provider button, input, tool card",
|
|
858
938
|
"$extensions": {
|
|
859
939
|
"io.cloudgrid": {
|
|
860
|
-
"raw": true,
|
|
861
940
|
"css": "--cg-radius-lg"
|
|
862
941
|
}
|
|
863
942
|
}
|
|
864
943
|
},
|
|
865
944
|
"radius-xl": {
|
|
866
|
-
"$value": "16px
|
|
945
|
+
"$value": "16px",
|
|
946
|
+
"$type": "dimension",
|
|
947
|
+
"$description": "SOURCE: option card",
|
|
867
948
|
"$extensions": {
|
|
868
949
|
"io.cloudgrid": {
|
|
869
|
-
"raw": true,
|
|
870
950
|
"css": "--cg-radius-xl"
|
|
871
951
|
}
|
|
872
952
|
}
|
|
873
953
|
},
|
|
874
954
|
"radius-2xl": {
|
|
875
|
-
"$value": "24px
|
|
955
|
+
"$value": "24px",
|
|
956
|
+
"$type": "dimension",
|
|
957
|
+
"$description": "SOURCE: full-bleed purple panel",
|
|
876
958
|
"$extensions": {
|
|
877
959
|
"io.cloudgrid": {
|
|
878
|
-
"raw": true,
|
|
879
960
|
"css": "--cg-radius-2xl"
|
|
880
961
|
}
|
|
881
962
|
}
|
|
@@ -132,5 +132,68 @@
|
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
|
+
},
|
|
136
|
+
"state": {
|
|
137
|
+
"$description": "state: the per-surface values for online/offline/expired. Same necessity as danger — measured, not assumed.",
|
|
138
|
+
"online": {
|
|
139
|
+
"$value": "#5FD99A",
|
|
140
|
+
"$type": "color",
|
|
141
|
+
"$description": "9.00:1 on #222. Ink has headroom, so this stays a recognisable green rather than washing to mint.",
|
|
142
|
+
"$extensions": {
|
|
143
|
+
"io.cloudgrid": {
|
|
144
|
+
"css": "--cg-online"
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
"offline": {
|
|
149
|
+
"$value": "#9A9A9A",
|
|
150
|
+
"$type": "color",
|
|
151
|
+
"$description": "5.65:1. Still the quiet one, lifted just enough to read.",
|
|
152
|
+
"$extensions": {
|
|
153
|
+
"io.cloudgrid": {
|
|
154
|
+
"css": "--cg-offline"
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
"expired": {
|
|
159
|
+
"$value": "#F0B45E",
|
|
160
|
+
"$type": "color",
|
|
161
|
+
"$description": "8.63:1. Keeps the amber legible without turning yellow.",
|
|
162
|
+
"$extensions": {
|
|
163
|
+
"io.cloudgrid": {
|
|
164
|
+
"css": "--cg-expired"
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
"online-fill": {
|
|
169
|
+
"$value": "rgba(255, 255, 255, 0.08)",
|
|
170
|
+
"$type": "color",
|
|
171
|
+
"$description": "Translucent white; the ink foreground measures 7.04:1 on it.",
|
|
172
|
+
"$extensions": {
|
|
173
|
+
"io.cloudgrid": {
|
|
174
|
+
"css": "--cg-online-fill"
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
"expired-fill": {
|
|
179
|
+
"$value": "rgba(255, 255, 255, 0.08)",
|
|
180
|
+
"$type": "color",
|
|
181
|
+
"$description": "Translucent white; the ink foreground measures 6.76:1 on it.",
|
|
182
|
+
"$extensions": {
|
|
183
|
+
"io.cloudgrid": {
|
|
184
|
+
"css": "--cg-expired-fill"
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
"danger-fill": {
|
|
189
|
+
"$value": "rgba(255, 255, 255, 0.08)",
|
|
190
|
+
"$type": "color",
|
|
191
|
+
"$description": "Translucent white; the ink foreground measures 5.45:1 on it.",
|
|
192
|
+
"$extensions": {
|
|
193
|
+
"io.cloudgrid": {
|
|
194
|
+
"css": "--cg-danger-fill"
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
135
198
|
}
|
|
136
199
|
}
|
|
@@ -116,5 +116,68 @@
|
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
|
+
},
|
|
120
|
+
"state": {
|
|
121
|
+
"$description": "state: the per-surface values for online/offline/expired. Same necessity as danger — measured, not assumed.",
|
|
122
|
+
"online": {
|
|
123
|
+
"$value": "#C8F5DC",
|
|
124
|
+
"$type": "color",
|
|
125
|
+
"$description": "4.88:1 on the purple. The source green is 1.72:1 here — invisible, same class as the danger override.",
|
|
126
|
+
"$extensions": {
|
|
127
|
+
"io.cloudgrid": {
|
|
128
|
+
"css": "--cg-online"
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
"offline": {
|
|
133
|
+
"$value": "#D9D4FB",
|
|
134
|
+
"$type": "color",
|
|
135
|
+
"$description": "4.11:1. A desaturated lavender so 'off' still recedes against the panel instead of reading as another state.",
|
|
136
|
+
"$extensions": {
|
|
137
|
+
"io.cloudgrid": {
|
|
138
|
+
"css": "--cg-offline"
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
"expired": {
|
|
143
|
+
"$value": "#FFE2B8",
|
|
144
|
+
"$type": "color",
|
|
145
|
+
"$description": "4.68:1. The amber as a tint; the source value is 1.38:1 on this ground.",
|
|
146
|
+
"$extensions": {
|
|
147
|
+
"io.cloudgrid": {
|
|
148
|
+
"css": "--cg-expired"
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
"online-fill": {
|
|
153
|
+
"$value": "rgba(255, 255, 255, 0.16)",
|
|
154
|
+
"$type": "color",
|
|
155
|
+
"$description": "Translucent white rather than a tint; the panel foreground measures 3.62:1 on it.",
|
|
156
|
+
"$extensions": {
|
|
157
|
+
"io.cloudgrid": {
|
|
158
|
+
"css": "--cg-online-fill"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
"expired-fill": {
|
|
163
|
+
"$value": "rgba(255, 255, 255, 0.16)",
|
|
164
|
+
"$type": "color",
|
|
165
|
+
"$description": "Translucent white rather than a tint; the panel foreground measures 3.47:1 on it.",
|
|
166
|
+
"$extensions": {
|
|
167
|
+
"io.cloudgrid": {
|
|
168
|
+
"css": "--cg-expired-fill"
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
"danger-fill": {
|
|
173
|
+
"$value": "rgba(255, 255, 255, 0.16)",
|
|
174
|
+
"$type": "color",
|
|
175
|
+
"$description": "Translucent white rather than a tint; the panel foreground measures 3.35:1 on it.",
|
|
176
|
+
"$extensions": {
|
|
177
|
+
"io.cloudgrid": {
|
|
178
|
+
"css": "--cg-danger-fill"
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
119
182
|
}
|
|
120
183
|
}
|
package/dist/tokens.css
CHANGED
|
@@ -73,6 +73,46 @@
|
|
|
73
73
|
brand pass can darken it; that is a decision, not a tidy-up. */
|
|
74
74
|
--cg-danger: #E53935;
|
|
75
75
|
|
|
76
|
+
/* ---- state ----
|
|
77
|
+
state: what an entity IS, not what it means editorially.
|
|
78
|
+
|
|
79
|
+
Adopted from the Console rather than invented, 2026-08-24 (#96). The Console
|
|
80
|
+
had already chosen and contrast-tested these — --color-live and
|
|
81
|
+
--color-attention — while the brand carried no state colour at all beyond the
|
|
82
|
+
danger placeholder. Taking its values means the Console's appearance does not
|
|
83
|
+
change when it starts consuming this package, and the two stop disagreeing
|
|
84
|
+
about what 'live' looks like.
|
|
85
|
+
|
|
86
|
+
Each carries per-surface values in surface-panel and surface-ink, for the same
|
|
87
|
+
reason danger does: measured against all three grounds, no single value works.
|
|
88
|
+
The live green is 1.72:1 on the purple panel, and the brand's own lime is
|
|
89
|
+
1.54:1 on white. A flat value would be invisible somewhere.
|
|
90
|
+
|
|
91
|
+
No --cg-offline-fill, deliberately. Measured, the pair does not work: the
|
|
92
|
+
muted neutral on a neutral tint is 2.90:1, under the 3:1 bar for a dot or a
|
|
93
|
+
border. Rather than invent a value to satisfy the ratio, an unplugged chip
|
|
94
|
+
uses the existing surface-card ground with border-control, and --cg-offline
|
|
95
|
+
is the dot on that ground, where it measures 3.28:1. Absence of state should
|
|
96
|
+
not need a colour of its own. */
|
|
97
|
+
/*
|
|
98
|
+
Serving. From the Console's --color-live. 3.40:1 on white — clears the 3:1 bar for an indicator, which is all this is ever used as. Never body text on white. */
|
|
99
|
+
--cg-online: #00a05c;
|
|
100
|
+
/*
|
|
101
|
+
Unplugged. Deliberately the existing muted neutral rather than a new colour — an entity that is off should recede, not signal. 3.28:1 on white. */
|
|
102
|
+
--cg-offline: var(--cg-neutral-500);
|
|
103
|
+
/*
|
|
104
|
+
Past its 30-day life and no longer served. From the Console's --color-attention. 4.39:1 on white. Amber rather than red: expiry is the documented default for a drop, not a fault. */
|
|
105
|
+
--cg-expired: #b0662a;
|
|
106
|
+
/*
|
|
107
|
+
From the Console's --color-live-fill. --cg-online measures 3.06:1 on it. */
|
|
108
|
+
--cg-online-fill: #e6f7ef;
|
|
109
|
+
/*
|
|
110
|
+
From the Console's --color-attention-fill. --cg-expired measures 3.99:1 on it. */
|
|
111
|
+
--cg-expired-fill: #fdf3e0;
|
|
112
|
+
/*
|
|
113
|
+
From the Console's --color-error-fill. --cg-danger measures 3.72:1 on it. danger had no fill before; a chip needs one. */
|
|
114
|
+
--cg-danger-fill: #fceded;
|
|
115
|
+
|
|
76
116
|
/* ---- brand-derived ----
|
|
77
117
|
brand derived (interaction only) */
|
|
78
118
|
--cg-primary-press: #4b39db;
|
|
@@ -82,13 +122,20 @@
|
|
|
82
122
|
|
|
83
123
|
/* ---- neutrals ---- */
|
|
84
124
|
--cg-neutral-0: #ffffff;
|
|
85
|
-
|
|
86
|
-
--cg-
|
|
87
|
-
|
|
88
|
-
--cg-neutral-
|
|
89
|
-
|
|
90
|
-
--cg-neutral-
|
|
91
|
-
|
|
125
|
+
/* SOURCE: alternate page wash */
|
|
126
|
+
--cg-lavender-50: #f2f1f7;
|
|
127
|
+
/* SOURCE: hairline / card border */
|
|
128
|
+
--cg-neutral-100: #f1f1f1;
|
|
129
|
+
/* SOURCE: control border, inactive pill fill */
|
|
130
|
+
--cg-neutral-200: #e3e3e3;
|
|
131
|
+
/* SOURCE: placeholder */
|
|
132
|
+
--cg-neutral-400: #acacac;
|
|
133
|
+
/* SOURCE: footer text */
|
|
134
|
+
--cg-neutral-500: #8e8e8e;
|
|
135
|
+
/* SOURCE: legal / secondary text */
|
|
136
|
+
--cg-neutral-700: #595959;
|
|
137
|
+
/* SOURCE: ink */
|
|
138
|
+
--cg-neutral-900: #222222;
|
|
92
139
|
|
|
93
140
|
/* ---- semantic-surfaces ---- */
|
|
94
141
|
--cg-surface-page: var(--cg-neutral-0);
|
|
@@ -144,20 +191,27 @@
|
|
|
144
191
|
dominant). The SOURCE values were xl 64 / lg 48 / md 42 / sm 32. */
|
|
145
192
|
--cg-display-xl: 56px;
|
|
146
193
|
--cg-display-lg: 44px;
|
|
147
|
-
|
|
194
|
+
/* SOURCE: onboarding H1 (was 42px) */
|
|
195
|
+
--cg-display-md: 38px;
|
|
148
196
|
--cg-display-sm: 30px;
|
|
149
197
|
--cg-display-line: 1.06;
|
|
150
198
|
--cg-display-tracking: 0.012em;
|
|
151
199
|
|
|
152
200
|
/* ---- manrope-ramp ---- */
|
|
153
201
|
--cg-heading-lg: 24px;
|
|
154
|
-
|
|
155
|
-
--cg-heading-
|
|
202
|
+
/* SOURCE: card title */
|
|
203
|
+
--cg-heading-md: 20px;
|
|
204
|
+
/* SOURCE: step title */
|
|
205
|
+
--cg-heading-sm: 17px;
|
|
156
206
|
--cg-heading-line: 1.3;
|
|
157
|
-
|
|
158
|
-
--cg-body-
|
|
159
|
-
|
|
160
|
-
--cg-
|
|
207
|
+
/* SOURCE: H1 subline */
|
|
208
|
+
--cg-body-lg: 19px;
|
|
209
|
+
/* SOURCE: default UI text */
|
|
210
|
+
--cg-body-md: 16px;
|
|
211
|
+
/* SOURCE: card body, legal */
|
|
212
|
+
--cg-body-sm: 15px;
|
|
213
|
+
/* SOURCE: footer, helper */
|
|
214
|
+
--cg-caption: 13px;
|
|
161
215
|
--cg-body-line: 1.5;
|
|
162
216
|
--cg-body-tracking: 0em;
|
|
163
217
|
--cg-mono-size: 14px;
|
|
@@ -183,7 +237,8 @@
|
|
|
183
237
|
/* ---- layout ----
|
|
184
238
|
layout (SOURCE measurements from the 1440px frames) */
|
|
185
239
|
--cg-column-form: 414px;
|
|
186
|
-
|
|
240
|
+
/* SOURCE 844px; widened 2026-08-06 with the container */
|
|
241
|
+
--cg-column-wide: 920px;
|
|
187
242
|
--cg-page-pad: 32px;
|
|
188
243
|
--cg-header-height: 90px;
|
|
189
244
|
--cg-footer-height: 64px;
|
|
@@ -201,10 +256,14 @@
|
|
|
201
256
|
/* ---- corners ---- */
|
|
202
257
|
--cg-radius-xs: 8px;
|
|
203
258
|
--cg-radius-sm: 10px;
|
|
204
|
-
|
|
205
|
-
--cg-radius-
|
|
206
|
-
|
|
207
|
-
--cg-radius-
|
|
259
|
+
/* SOURCE: code block, OTP cell */
|
|
260
|
+
--cg-radius-md: 12px;
|
|
261
|
+
/* SOURCE: provider button, input, tool card */
|
|
262
|
+
--cg-radius-lg: 14px;
|
|
263
|
+
/* SOURCE: option card */
|
|
264
|
+
--cg-radius-xl: 16px;
|
|
265
|
+
/* SOURCE: full-bleed purple panel */
|
|
266
|
+
--cg-radius-2xl: 24px;
|
|
208
267
|
--cg-radius-pill: 999px;
|
|
209
268
|
--cg-border-width: 1px;
|
|
210
269
|
--cg-border-width-strong: 1.5px;
|
|
@@ -256,6 +315,27 @@
|
|
|
256
315
|
Same class as #41. This tint is derived from it and measures 4.52:1, so it
|
|
257
316
|
clears AA for body text as well as the 3:1 UI bar. */
|
|
258
317
|
--cg-danger: #FFDAD6;
|
|
318
|
+
|
|
319
|
+
/* ---- state ----
|
|
320
|
+
state: the per-surface values for online/offline/expired. Same necessity as danger — measured, not assumed. */
|
|
321
|
+
/*
|
|
322
|
+
4.88:1 on the purple. The source green is 1.72:1 here — invisible, same class as the danger override. */
|
|
323
|
+
--cg-online: #C8F5DC;
|
|
324
|
+
/*
|
|
325
|
+
4.11:1. A desaturated lavender so 'off' still recedes against the panel instead of reading as another state. */
|
|
326
|
+
--cg-offline: #D9D4FB;
|
|
327
|
+
/*
|
|
328
|
+
4.68:1. The amber as a tint; the source value is 1.38:1 on this ground. */
|
|
329
|
+
--cg-expired: #FFE2B8;
|
|
330
|
+
/*
|
|
331
|
+
Translucent white rather than a tint; the panel foreground measures 3.62:1 on it. */
|
|
332
|
+
--cg-online-fill: rgba(255, 255, 255, 0.16);
|
|
333
|
+
/*
|
|
334
|
+
Translucent white rather than a tint; the panel foreground measures 3.47:1 on it. */
|
|
335
|
+
--cg-expired-fill: rgba(255, 255, 255, 0.16);
|
|
336
|
+
/*
|
|
337
|
+
Translucent white rather than a tint; the panel foreground measures 3.35:1 on it. */
|
|
338
|
+
--cg-danger-fill: rgba(255, 255, 255, 0.16);
|
|
259
339
|
}
|
|
260
340
|
|
|
261
341
|
[data-cg-surface='ink'] {
|
|
@@ -286,4 +366,20 @@
|
|
|
286
366
|
than washing out to pink: 6.97:1 against #222, comfortably past AA for body
|
|
287
367
|
text. The source red would have managed only 3.76:1 here. */
|
|
288
368
|
--cg-danger: #FF8A80;
|
|
369
|
+
|
|
370
|
+
/* ---- state ----
|
|
371
|
+
state: the per-surface values for online/offline/expired. Same necessity as danger — measured, not assumed. */
|
|
372
|
+
/*
|
|
373
|
+
9.00:1 on #222. Ink has headroom, so this stays a recognisable green rather than washing to mint. */
|
|
374
|
+
--cg-online: #5FD99A;
|
|
375
|
+
/* 5.65:1. Still the quiet one, lifted just enough to read. */
|
|
376
|
+
--cg-offline: #9A9A9A;
|
|
377
|
+
/* 8.63:1. Keeps the amber legible without turning yellow. */
|
|
378
|
+
--cg-expired: #F0B45E;
|
|
379
|
+
/* Translucent white; the ink foreground measures 7.04:1 on it. */
|
|
380
|
+
--cg-online-fill: rgba(255, 255, 255, 0.08);
|
|
381
|
+
/* Translucent white; the ink foreground measures 6.76:1 on it. */
|
|
382
|
+
--cg-expired-fill: rgba(255, 255, 255, 0.08);
|
|
383
|
+
/* Translucent white; the ink foreground measures 5.45:1 on it. */
|
|
384
|
+
--cg-danger-fill: rgba(255, 255, 255, 0.08);
|
|
289
385
|
}
|