@orianatech/pire 0.10.0 → 0.11.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.
@@ -47,7 +47,40 @@
47
47
  --status-informative-fg:var(--blue-70);--status-informative-bg:var(--blue-10);--status-informative-border:var(--blue-30);
48
48
  --status-neutral-fg:var(--gray-70);--status-neutral-bg:var(--gray-10);--status-neutral-border:var(--gray-30);
49
49
 
50
- /* --- Data visualisation: ordered, colour-blind safe sequence ----------- */
51
- --viz-1:var(--blue-60);--viz-2:var(--teal-50);--viz-3:var(--purple-50);--viz-4:var(--amber-50);
52
- --viz-5:var(--blue-30);--viz-6:var(--gray-60);
50
+ /* --- Data visualisation ------------------------------------------------
51
+ A ramp of its own, kept apart from the semantic ramps on purpose: a series
52
+ colour must never be mistakable for a status colour, and the status steps are
53
+ already spoken for by positive / critical / negative.
54
+
55
+ Two steps per hue. -50 is the light-surface step, -40 the lighter dark-surface
56
+ one, because the two surfaces do not accept the same lightness — light takes
57
+ L 0.43-0.77, dark takes L 0.48-0.67 — so no single value can serve both. That
58
+ is why --viz-1..6 are re-pointed per theme in themes.css rather than fixed
59
+ here, and it is the reason this ramp exists at all.
60
+
61
+ Every step is validated against the real surfaces (#ffffff and #19222b) on
62
+ lightness, chroma, colour-blind separation, normal-vision separation and
63
+ contrast. The previous sequence — blue-60, teal-50, purple-50, amber-50,
64
+ blue-30, gray-60 — failed both: teal-50, blue-30 and gray-60 sat below the
65
+ chroma floor and read as grey, blue-30 held only 1.99:1 against white, and
66
+ blue-60 and purple-50 dropped under 2.5:1 on the dark surface. */
67
+ --viz-blue-50:#436cc8;--viz-blue-40:#5d83d4;
68
+ --viz-rust-50:#b94739;--viz-rust-40:#c86556;
69
+ --viz-cyan-50:#0083ad;--viz-cyan-40:#0097bc;
70
+ --viz-gold-50:#936b00;--viz-gold-40:#a58100;
71
+ --viz-violet-50:#9750a7;--viz-violet-40:#a86ab6;
72
+ --viz-jade-50:#008c64;--viz-jade-40:#009f7a;
73
+
74
+ /* Slot order is part of the result, not presentation: colour-blind separation is
75
+ measured between *adjacent* slots, and these six in a different order fall to
76
+ ΔE 1.6. Assign series in this order, and never cycle past --viz-6. */
77
+ --viz-1:var(--viz-blue-50);--viz-2:var(--viz-rust-50);--viz-3:var(--viz-cyan-50);
78
+ --viz-4:var(--viz-gold-50);--viz-5:var(--viz-violet-50);--viz-6:var(--viz-jade-50);
79
+
80
+ /* Everything past the sixth series. Deliberately a neutral: a seventh hue would
81
+ imply an identity the eye cannot reliably recover, so the tail folds into one
82
+ "other" bucket instead. */
83
+ --viz-other:var(--gray-40);
84
+ /* Grid and axis rules — recessive by design, so the data sits in front of them. */
85
+ --viz-grid:var(--gray-20);--viz-axis:var(--gray-30);
53
86
  }
@@ -18,6 +18,12 @@
18
18
  --status-negative-fg:var(--red-30);--status-negative-bg:#331416;--status-negative-border:var(--red-50);
19
19
  --status-informative-fg:var(--blue-30);--status-informative-bg:var(--blue-90);--status-informative-border:var(--blue-50);
20
20
  --status-neutral-fg:var(--gray-30);--status-neutral-bg:var(--gray-80);--status-neutral-border:var(--gray-70);
21
+ /* Series colours are re-pointed, not inverted: the -40 steps are their own
22
+ validated values against #19222b. Keep the slots in the same hue order as
23
+ light, so a series that is rust in one theme is rust in the other. */
24
+ --viz-1:var(--viz-blue-40);--viz-2:var(--viz-rust-40);--viz-3:var(--viz-cyan-40);
25
+ --viz-4:var(--viz-gold-40);--viz-5:var(--viz-violet-40);--viz-6:var(--viz-jade-40);
26
+ --viz-other:var(--gray-50);--viz-grid:#28333d;--viz-axis:var(--gray-70);
21
27
  }
22
28
  /* Accessibility scope: 3:1 non-text contrast on every control edge */
23
29
  [data-contrast="high"]{--border-subtle:var(--gray-50);--border-default:var(--gray-70);--border-field:var(--gray-80);--text-secondary:var(--gray-80)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orianatech/pire",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "Oriana Pire Design System — React components for ERP interfaces, built on React Aria.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {