@cloudgrid-io/ui 0.5.0 → 0.6.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.
@@ -1138,5 +1138,58 @@
1138
1138
  }
1139
1139
  }
1140
1140
  }
1141
+ },
1142
+ "indicator": {
1143
+ "$description": "indicator + chrome: taken from the Console so the system holds every value in\none place, 2026-08-24 (#96).\n\nPENDING A DESIGNER. These are adopted as-is, not designed. They are here so the\nConsole can stop carrying private copies and so there is a single thing to edit;\nthe values themselves are the Console's current ones and are expected to change.\nMeasurements are recorded beside each so the decision is informed rather than\ninherited.",
1144
+ "volt": {
1145
+ "$value": "#b6ff2e",
1146
+ "$type": "color",
1147
+ "$description": "The live/current INDICATOR — the dot in its halo, and the brand mark. Never\ndecorative, never a fill.\n\nMEASURED 1.21:1 on white, which is below every bar there is. It works on the\npanel (4.82:1) and on ink (13.13:1); on the page ground it reads only because\nit is paired with the ring and, in a pill, with volt-ink. Recorded rather than\nsilently corrected: darkening it would change the Console's appearance, which\nis a design decision and not a contrast fix.\n\nNote it is a SECOND lime beside --cg-secondary (#b6de68), 36 dE away. Which one\nthe brand owns is the open question here.\n\nIt is also a second LIVE. state.online (#00a05c) is the same idea in the state\nscale, and EntityStatus (#116) already paints the live dot with it. They are not\ninterchangeable at any bar — online is 3.40:1 on white, volt is 1.21:1 — so a\nsurface must not swap one for the other on the assumption that both mean\n'serving'. Which name the brand keeps for live belongs to the same open question,\nand until it is answered volt is the Console's brand mark and online is the\nentity's state.",
1148
+ "$extensions": {
1149
+ "io.cloudgrid": {
1150
+ "css": "--cg-volt"
1151
+ }
1152
+ }
1153
+ },
1154
+ "volt-ring": {
1155
+ "$value": "rgba(182, 255, 46, 0.32)",
1156
+ "$type": "color",
1157
+ "$description": "The halo behind a volt dot. Its job is to make the dot findable on a light ground, which is what carries the 1.21:1 above.",
1158
+ "$extensions": {
1159
+ "io.cloudgrid": {
1160
+ "css": "--cg-volt-ring"
1161
+ }
1162
+ }
1163
+ },
1164
+ "volt-ink": {
1165
+ "$value": "#243d00",
1166
+ "$type": "color",
1167
+ "$description": "Text and glyphs ON volt. 9.95:1 against it — the one part of the volt family that\nis comfortably legible.\n\nThis is NOT the state -ink that EntityStatus (#116) says the library lacks. That\nnote wants a foreground for the WORD on a state chip, and the arrangement it\nshipped instead — dot carries the colour, word is text-ink — already measures\n14.33:1 on online-fill, against 10.86:1 for this olive. volt-ink is tuned to volt\nand belongs to volt. Adding a state -ink is still a brand decision and still\nopen.",
1168
+ "$extensions": {
1169
+ "io.cloudgrid": {
1170
+ "css": "--cg-volt-ink"
1171
+ }
1172
+ }
1173
+ },
1174
+ "scrim": {
1175
+ "$value": "rgba(34, 34, 34, 0.4)",
1176
+ "$type": "color",
1177
+ "$description": "The wash behind a modal or overlay. Uses the BRAND ink (#222222) rather than the\nConsole's (#16181d) — a scrim sits above content and belongs to the system, not\nto one surface's ink scale.\n\nDoes NOT flip per surface, deliberately: it composites over whatever is beneath\nit, so a panel-scoped override would darken a scrim that is already dark.",
1178
+ "$extensions": {
1179
+ "io.cloudgrid": {
1180
+ "css": "--cg-scrim"
1181
+ }
1182
+ }
1183
+ },
1184
+ "hover": {
1185
+ "$value": "rgba(34, 34, 34, 0.045)",
1186
+ "$type": "color",
1187
+ "$description": "The wash under a hovered row or control. The system had no hover token; components were each inventing one.",
1188
+ "$extensions": {
1189
+ "io.cloudgrid": {
1190
+ "css": "--cg-hover"
1191
+ }
1192
+ }
1193
+ }
1141
1194
  }
1142
1195
  }
@@ -213,5 +213,18 @@
213
213
  }
214
214
  }
215
215
  }
216
+ },
217
+ "indicator": {
218
+ "$description": "indicator + chrome: only hover flips. A dark wash is invisible on a dark ground.",
219
+ "hover": {
220
+ "$value": "rgba(255, 255, 255, 0.06)",
221
+ "$type": "color",
222
+ "$description": "Translucent white — the base wash is a dark ink and would not register on the ink ground.",
223
+ "$extensions": {
224
+ "io.cloudgrid": {
225
+ "css": "--cg-hover"
226
+ }
227
+ }
228
+ }
216
229
  }
217
230
  }
@@ -197,5 +197,18 @@
197
197
  }
198
198
  }
199
199
  }
200
+ },
201
+ "indicator": {
202
+ "$description": "indicator + chrome: only hover flips. A dark wash is invisible on a dark ground.",
203
+ "hover": {
204
+ "$value": "rgba(255, 255, 255, 0.10)",
205
+ "$type": "color",
206
+ "$description": "Translucent white — the base wash is a dark ink and would not register on the panel ground.",
207
+ "$extensions": {
208
+ "io.cloudgrid": {
209
+ "css": "--cg-hover"
210
+ }
211
+ }
212
+ }
200
213
  }
201
214
  }
package/dist/tokens.css CHANGED
@@ -302,6 +302,62 @@
302
302
  --cg-transition-control: background-color var(--cg-duration) var(--cg-ease-out), border-color var(--cg-duration) var(--cg-ease-out), color var(--cg-duration) var(--cg-ease-out), box-shadow var(--cg-duration) var(--cg-ease-out);
303
303
  --cg-lift-hover: translateY(-1px);
304
304
  --cg-press-scale: 0.985;
305
+
306
+ /* ---- indicator ----
307
+ indicator + chrome: taken from the Console so the system holds every value in
308
+ one place, 2026-08-24 (#96).
309
+
310
+ PENDING A DESIGNER. These are adopted as-is, not designed. They are here so the
311
+ Console can stop carrying private copies and so there is a single thing to edit;
312
+ the values themselves are the Console's current ones and are expected to change.
313
+ Measurements are recorded beside each so the decision is informed rather than
314
+ inherited. */
315
+ /*
316
+ The live/current INDICATOR — the dot in its halo, and the brand mark. Never
317
+ decorative, never a fill.
318
+
319
+ MEASURED 1.21:1 on white, which is below every bar there is. It works on the
320
+ panel (4.82:1) and on ink (13.13:1); on the page ground it reads only because
321
+ it is paired with the ring and, in a pill, with volt-ink. Recorded rather than
322
+ silently corrected: darkening it would change the Console's appearance, which
323
+ is a design decision and not a contrast fix.
324
+
325
+ Note it is a SECOND lime beside --cg-secondary (#b6de68), 36 dE away. Which one
326
+ the brand owns is the open question here.
327
+
328
+ It is also a second LIVE. state.online (#00a05c) is the same idea in the state
329
+ scale, and EntityStatus (#116) already paints the live dot with it. They are not
330
+ interchangeable at any bar — online is 3.40:1 on white, volt is 1.21:1 — so a
331
+ surface must not swap one for the other on the assumption that both mean
332
+ 'serving'. Which name the brand keeps for live belongs to the same open question,
333
+ and until it is answered volt is the Console's brand mark and online is the
334
+ entity's state. */
335
+ --cg-volt: #b6ff2e;
336
+ /*
337
+ The halo behind a volt dot. Its job is to make the dot findable on a light ground, which is what carries the 1.21:1 above. */
338
+ --cg-volt-ring: rgba(182, 255, 46, 0.32);
339
+ /*
340
+ Text and glyphs ON volt. 9.95:1 against it — the one part of the volt family that
341
+ is comfortably legible.
342
+
343
+ This is NOT the state -ink that EntityStatus (#116) says the library lacks. That
344
+ note wants a foreground for the WORD on a state chip, and the arrangement it
345
+ shipped instead — dot carries the colour, word is text-ink — already measures
346
+ 14.33:1 on online-fill, against 10.86:1 for this olive. volt-ink is tuned to volt
347
+ and belongs to volt. Adding a state -ink is still a brand decision and still
348
+ open. */
349
+ --cg-volt-ink: #243d00;
350
+ /*
351
+ The wash behind a modal or overlay. Uses the BRAND ink (#222222) rather than the
352
+ Console's (#16181d) — a scrim sits above content and belongs to the system, not
353
+ to one surface's ink scale.
354
+
355
+ Does NOT flip per surface, deliberately: it composites over whatever is beneath
356
+ it, so a panel-scoped override would darken a scrim that is already dark. */
357
+ --cg-scrim: rgba(34, 34, 34, 0.4);
358
+ /*
359
+ The wash under a hovered row or control. The system had no hover token; components were each inventing one. */
360
+ --cg-hover: rgba(34, 34, 34, 0.045);
305
361
  }
306
362
 
307
363
  [data-cg-surface='panel'] {
@@ -357,6 +413,12 @@
357
413
  /*
358
414
  Translucent white rather than a tint; the panel foreground measures 3.35:1 on it. */
359
415
  --cg-danger-fill: rgba(255, 255, 255, 0.16);
416
+
417
+ /* ---- indicator ----
418
+ indicator + chrome: only hover flips. A dark wash is invisible on a dark ground. */
419
+ /*
420
+ Translucent white — the base wash is a dark ink and would not register on the panel ground. */
421
+ --cg-hover: rgba(255, 255, 255, 0.10);
360
422
  }
361
423
 
362
424
  [data-cg-surface='ink'] {
@@ -409,4 +471,10 @@
409
471
  --cg-pending-fill: var(--cg-expired-fill);
410
472
  /* Translucent white; the ink foreground measures 5.45:1 on it. */
411
473
  --cg-danger-fill: rgba(255, 255, 255, 0.08);
474
+
475
+ /* ---- indicator ----
476
+ indicator + chrome: only hover flips. A dark wash is invisible on a dark ground. */
477
+ /*
478
+ Translucent white — the base wash is a dark ink and would not register on the ink ground. */
479
+ --cg-hover: rgba(255, 255, 255, 0.06);
412
480
  }
package/dist/tokens.json CHANGED
@@ -123,7 +123,12 @@
123
123
  "--cg-ease-in-out": "cubic-bezier(0.4, 0, 0.2, 1)",
124
124
  "--cg-transition-control": "background-color var(--cg-duration) var(--cg-ease-out), border-color var(--cg-duration) var(--cg-ease-out), color var(--cg-duration) var(--cg-ease-out), box-shadow var(--cg-duration) var(--cg-ease-out)",
125
125
  "--cg-lift-hover": "translateY(-1px)",
126
- "--cg-press-scale": "0.985"
126
+ "--cg-press-scale": "0.985",
127
+ "--cg-volt": "#b6ff2e",
128
+ "--cg-volt-ring": "rgba(182, 255, 46, 0.32)",
129
+ "--cg-volt-ink": "#243d00",
130
+ "--cg-scrim": "rgba(34, 34, 34, 0.4)",
131
+ "--cg-hover": "rgba(34, 34, 34, 0.045)"
127
132
  },
128
133
  "panel": {
129
134
  "--cg-text-primary": "#ffffff",
@@ -145,7 +150,8 @@
145
150
  "--cg-online-fill": "rgba(255, 255, 255, 0.16)",
146
151
  "--cg-expired-fill": "rgba(255, 255, 255, 0.16)",
147
152
  "--cg-pending-fill": "var(--cg-expired-fill)",
148
- "--cg-danger-fill": "rgba(255, 255, 255, 0.16)"
153
+ "--cg-danger-fill": "rgba(255, 255, 255, 0.16)",
154
+ "--cg-hover": "rgba(255, 255, 255, 0.10)"
149
155
  },
150
156
  "ink": {
151
157
  "--cg-text-primary": "#ffffff",
@@ -169,7 +175,8 @@
169
175
  "--cg-online-fill": "rgba(255, 255, 255, 0.08)",
170
176
  "--cg-expired-fill": "rgba(255, 255, 255, 0.08)",
171
177
  "--cg-pending-fill": "var(--cg-expired-fill)",
172
- "--cg-danger-fill": "rgba(255, 255, 255, 0.08)"
178
+ "--cg-danger-fill": "rgba(255, 255, 255, 0.08)",
179
+ "--cg-hover": "rgba(255, 255, 255, 0.06)"
173
180
  }
174
181
  }
175
182
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudgrid-io/ui",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "CloudGrid design system: React components, brand design tokens, Tailwind theme, self-hosted fonts.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/",