@invana/styling 0.0.20 → 0.0.21

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": "@invana/styling",
3
- "version": "0.0.20",
3
+ "version": "0.0.21",
4
4
  "description": "Invana TailwindCSS 4 Design System - Reusable styling configuration",
5
5
  "homepage": "https://github.com/invana/design-kit#readme",
6
6
  "type": "module",
@@ -71,6 +71,14 @@
71
71
  "./themes/presets-base.css": {
72
72
  "style": "./src/themes/presets-base.css",
73
73
  "default": "./src/themes/presets-base.css"
74
+ },
75
+ "./themes/data-palette": {
76
+ "style": "./src/themes/data-palette.css",
77
+ "default": "./src/themes/data-palette.css"
78
+ },
79
+ "./themes/data-palette.css": {
80
+ "style": "./src/themes/data-palette.css",
81
+ "default": "./src/themes/data-palette.css"
74
82
  }
75
83
  },
76
84
  "files": [
package/src/index.css CHANGED
@@ -174,6 +174,53 @@
174
174
  -webkit-backdrop-filter: var(--glass-blur, none);
175
175
  }
176
176
 
177
+ /*
178
+ * Corner-bracket hover/focus affordance — drop `corner-hint` on a button,
179
+ * anchor, or list item directly (no wrapper element needed). Brackets float
180
+ * just outside the box and fade in on hover/focus, standing in for a solid
181
+ * highlight background.
182
+ */
183
+ @utility corner-hint {
184
+ position: relative;
185
+
186
+ &::before,
187
+ &::after {
188
+ content: "";
189
+ position: absolute;
190
+ inset: -6px;
191
+ pointer-events: none;
192
+ opacity: 0;
193
+ transform: scale(0.9);
194
+ transition: opacity 150ms ease-out, transform 150ms ease-out;
195
+ background-repeat: no-repeat;
196
+ background-image:
197
+ linear-gradient(hsl(var(--foreground) / 0.7), hsl(var(--foreground) / 0.7)),
198
+ linear-gradient(hsl(var(--foreground) / 0.7), hsl(var(--foreground) / 0.7)),
199
+ linear-gradient(hsl(var(--foreground) / 0.7), hsl(var(--foreground) / 0.7)),
200
+ linear-gradient(hsl(var(--foreground) / 0.7), hsl(var(--foreground) / 0.7));
201
+ }
202
+
203
+ &::before {
204
+ background-size: 10px 2px, 2px 10px, 10px 2px, 2px 10px;
205
+ background-position: top left, top left, top right, top right;
206
+ }
207
+
208
+ &::after {
209
+ background-size: 10px 2px, 2px 10px, 10px 2px, 2px 10px;
210
+ background-position: bottom left, bottom left, bottom right, bottom right;
211
+ }
212
+
213
+ &:hover::before,
214
+ &:hover::after,
215
+ &:focus-visible::before,
216
+ &:focus-visible::after,
217
+ &:focus-within::before,
218
+ &:focus-within::after {
219
+ opacity: 1;
220
+ transform: scale(1);
221
+ }
222
+ }
223
+
177
224
  @keyframes accordion-down {
178
225
  from {
179
226
  height: 0;
@@ -0,0 +1,72 @@
1
+ /*
2
+ * The categorical data palette.
3
+ *
4
+ * Node and edge types, chart series, legends and list dots all read this one
5
+ * scale, so a colour means the same thing wherever it appears — the dot beside
6
+ * `Observation` in a panel is the colour the canvas paints that node
7
+ * (design-kit-coverage.md D2).
8
+ *
9
+ * **Both modes are selected, not flipped.** The dark column is the same eight
10
+ * hues re-stepped for a dark surface. Validated with the dataviz validator
11
+ * against the kit's own card surfaces (`#fffdf7` light, `#1a1a1a` dark): the
12
+ * lightness band, chroma floor, adjacent-pair CVD separation and normal-vision
13
+ * floor all pass in both modes.
14
+ *
15
+ * Light mode carries a contrast WARN on aqua, yellow and magenta (below 3:1 on
16
+ * a near-white card). That is admissible **only** because every use in this
17
+ * system names the thing beside its swatch — a legend row has its type name, a
18
+ * chart series has a legend, a canvas node has its label. Colour is never the
19
+ * only carrier of identity here. Do not use these as a lone status colour, and
20
+ * do not put a value on a chart in series colour: text wears text tokens.
21
+ *
22
+ * Deliberately eight, in a fixed order. Slot 1 is the first series on every
23
+ * chart, not "whichever came back first from the query" — colour follows the
24
+ * entity, never its rank.
25
+ */
26
+
27
+ @theme {
28
+ /* Light — the default, matching the base tokens in index.css. */
29
+ --color-data-1: #2a78d6; /* blue */
30
+ --color-data-2: #eb6834; /* orange */
31
+ --color-data-3: #1baf7a; /* aqua */
32
+ --color-data-4: #eda100; /* yellow */
33
+ --color-data-5: #e87ba4; /* magenta */
34
+ --color-data-6: #008300; /* green */
35
+ --color-data-7: #4a3aa7; /* violet */
36
+ --color-data-8: #e34948; /* red */
37
+ }
38
+
39
+ /*
40
+ * Dark — every dark theme, whatever its brand accent. The data palette is not a
41
+ * brand palette: a chart series does not change hue because the shell went from
42
+ * Gold to Ocean, or the same data would look like different data.
43
+ */
44
+ [data-theme="default-dark"],
45
+ [data-theme="tailwind-dark"],
46
+ [data-theme="vite-dark"],
47
+ [data-theme="gold-dark"],
48
+ [data-theme="ocean-dark"],
49
+ [data-theme="forest-dark"],
50
+ [data-theme="rose-dark"],
51
+ [data-theme="minimal-dark"],
52
+ /* The generic hook every dark theme also stamps — this is what catches a theme
53
+ added after this file was written. The explicit ids above stay so the palette
54
+ works even where the class is not applied. */
55
+ .dark,
56
+ .theme-default-dark,
57
+ .theme-tailwind-dark,
58
+ .theme-vite-dark,
59
+ .theme-gold-dark,
60
+ .theme-ocean-dark,
61
+ .theme-forest-dark,
62
+ .theme-rose-dark,
63
+ .theme-minimal-dark {
64
+ --color-data-1: #3987e5;
65
+ --color-data-2: #d95926;
66
+ --color-data-3: #199e70;
67
+ --color-data-4: #c98500;
68
+ --color-data-5: #d55181;
69
+ --color-data-6: #008300;
70
+ --color-data-7: #9085e9;
71
+ --color-data-8: #e66767;
72
+ }