@elasticias/ui 1.0.31 → 1.0.32

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": "@elasticias/ui",
3
- "version": "1.0.31",
3
+ "version": "1.0.32",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.0.0",
6
6
  "@angular/core": "^21.0.0",
@@ -119,6 +119,22 @@
119
119
  --text-soft: var(--ink-400);
120
120
  --ink-active: var(--ink-900);
121
121
 
122
+ /* The module rail is the shell's deepest chrome, and it is dark in BOTH
123
+ themes on purpose: it anchors the app rather than tracking the page.
124
+
125
+ It used to paint `--ink-active` on `--paper`. Both of those flip, so the
126
+ rail was a dark strip on a light app in light mode and a WHITE strip on a
127
+ dark app in dark mode — while its icons still hardcoded white, which
128
+ measured 1.03:1. The ink ramp itself is theme-independent (`--ink-900` is
129
+ #0f1115 under both `:root` and `.p-dark`); only the `--ink-active` alias
130
+ flips. Naming the ramp step directly is what makes the rail hold still. */
131
+ --rail-bg: var(--ink-900);
132
+ --rail-fg: #fff;
133
+ --rail-fg-mute: rgba(255, 255, 255, 0.6);
134
+ --rail-rule: rgba(255, 255, 255, 0.08);
135
+ --rail-hover: rgba(255, 255, 255, 0.08);
136
+ --rail-active: rgba(255, 255, 255, 0.12);
137
+
122
138
  /* `--ink-soft` is not a ramp step and was never defined anywhere; it is an
123
139
  alias, added because eight call sites across three files already name it
124
140
  as `var(--ink-soft, #64748b)`. Undefined, every one of them fell through
@@ -192,6 +208,14 @@
192
208
  --text-mute: var(--ink-400);
193
209
  --text-soft: var(--ink-500);
194
210
  --ink-active: var(--ink-50);
211
+
212
+ /* The page is already `--ink-900` here, so the rail goes one step deeper to
213
+ stay a surface of its own instead of merging into the canvas. In light
214
+ mode the rail is far darker than the page; this keeps that relationship
215
+ rather than the literal colour. Everything painted on it stays white, so
216
+ only the ground is restated. */
217
+ --rail-bg: #08090c;
218
+
195
219
  /* Status pairs. Without these a chip kept its light pastel ground on a dark
196
220
  page — the one place the dark theme visibly fell apart, because chips are
197
221
  the densest colour in any list.
@@ -734,7 +734,12 @@
734
734
  }
735
735
 
736
736
  .popover .preset.active .hint {
737
- color: rgba(255, 255, 255, 0.7);
737
+ /* The active preset inverts against the page: its ground is `--ink-active`
738
+ and its ink `--paper`, and both flip together, so the pair stays readable
739
+ in either theme. This hint has to ride that inversion rather than assume
740
+ the ground is dark — hardcoded white measured 1.04:1 on the light ground
741
+ the token resolves to in dark mode. */
742
+ color: color-mix(in srgb, var(--paper) 70%, transparent);
738
743
  }
739
744
 
740
745
  .f-pill.has-pop {
@@ -1093,11 +1098,15 @@
1093
1098
  }
1094
1099
 
1095
1100
  .bulk .count {
1096
- color: rgba(255, 255, 255, 0.7);
1101
+ /* `.bulk` inverts against the page (`--ink-active` ground, `--paper` ink),
1102
+ and both flip together. The count has to ride that inversion; hardcoded
1103
+ white read as white-on-white once the ground resolved light in dark mode.
1104
+ Same for the buttons below, whose scrims were white-on-white too. */
1105
+ color: color-mix(in srgb, var(--paper) 70%, transparent);
1097
1106
  }
1098
1107
 
1099
1108
  .bulk .btn {
1100
- background: rgba(255, 255, 255, 0.1);
1109
+ background: color-mix(in srgb, var(--paper) 10%, transparent);
1101
1110
  color: var(--paper);
1102
1111
  border: 0;
1103
1112
  min-height: 28px;
@@ -1106,7 +1115,7 @@
1106
1115
  }
1107
1116
 
1108
1117
  .bulk .btn:hover {
1109
- background: rgba(255, 255, 255, 0.2);
1118
+ background: color-mix(in srgb, var(--paper) 20%, transparent);
1110
1119
  }
1111
1120
 
1112
1121
  /* ──────────── EMPTY STATE ──────────────────────────────────────── */
@@ -2045,7 +2054,10 @@
2045
2054
  }
2046
2055
 
2047
2056
  .dp__preset.active .hint {
2048
- color: rgba(255, 255, 255, 0.7);
2057
+ /* Rides the active preset's inversion, same as `.popover .preset.active
2058
+ .hint`. The two lists are styled separately and carried the same
2059
+ hardcoded white, so they broke in dark mode together. */
2060
+ color: color-mix(in srgb, var(--paper) 70%, transparent);
2049
2061
  }
2050
2062
 
2051
2063
  .dp__preset.muted {