@flyos/design-system 3.12.0 → 3.13.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/package.json
CHANGED
package/scss/_nova-tokens.scss
CHANGED
|
@@ -226,6 +226,33 @@ html.light-theme {
|
|
|
226
226
|
--w02: rgb(0 0 0 / 2.2%);
|
|
227
227
|
--w015: rgb(0 0 0 / 1.8%);
|
|
228
228
|
|
|
229
|
+
// ── Embedded-app plate ─────────────────────────────────────────────────────
|
|
230
|
+
// The three surface steps `_shell-embed-bridge.scss` hands to a feature app
|
|
231
|
+
// running inside a shell window (`--bg-2` / `--bg-hover` / `--bg-3`). They are
|
|
232
|
+
// a token, not a `--w*` pick, because the ramp is the WRONG family here and
|
|
233
|
+
// only this theme shows it.
|
|
234
|
+
|
|
235
|
+
// A `--w*` step is an ink wash on paper the theme already owns. An embedded
|
|
236
|
+
// app's paper is a TRANSLUCENT window plate over the user's wallpaper — in
|
|
237
|
+
// this theme `rgb(255 255 255 / 60%)`, which passes a great deal of the
|
|
238
|
+
// photograph through. Washing 3% black over that does not make a card: it
|
|
239
|
+
// makes a marginally darker patch of wallpaper, so the card edge disappears
|
|
240
|
+
// and every accent on it (icon tiles, chips, cover art) competes with whatever
|
|
241
|
+
// colour the photo happens to put behind it. Measured on the Help Center
|
|
242
|
+
// guide grid: `--bg-2` resolved to `rgba(0,0,0,0.03)` and the cards read as
|
|
243
|
+
// wallpaper. Dark mode never showed it because there a 3% WHITE lift sits on
|
|
244
|
+
// a near-opaque dark plate and reads immediately.
|
|
245
|
+
|
|
246
|
+
// So in this theme a lift moves TOWARD the paper's own colour — white — which
|
|
247
|
+
// both restores the card edge and gives the wallpaper less say in the app's
|
|
248
|
+
// palette. The dark block keeps the ramp: see the note there.
|
|
249
|
+
|
|
250
|
+
// Ordering is `plate < plate-hover < plate-raised`, mirroring the dark
|
|
251
|
+
// block's `--w03 < --w05 < --w06`.
|
|
252
|
+
--embed-plate: rgb(255 255 255 / 55%);
|
|
253
|
+
--embed-plate-hover: rgb(255 255 255 / 68%);
|
|
254
|
+
--embed-plate-raised: rgb(255 255 255 / 78%);
|
|
255
|
+
|
|
229
256
|
// ── Materials ──────────────────────────────────────────────────────────────
|
|
230
257
|
// Each material is a two-part token on purpose: a per-material alpha knob and
|
|
231
258
|
// a colour composed from it. `WallpaperGlassService` already samples the
|
|
@@ -423,6 +450,16 @@ html.dark-theme {
|
|
|
423
450
|
--w02: rgb(255 255 255 / 2%);
|
|
424
451
|
--w015: rgb(255 255 255 / 1.5%);
|
|
425
452
|
|
|
453
|
+
// ── Embedded-app plate ─────────────────────────────────────────────────────
|
|
454
|
+
// Aliases the ramp, deliberately. Here the window plate is a near-opaque dark
|
|
455
|
+
// material, so a white lift IS the canon lift (MainContent.dc.html: a `--w03`
|
|
456
|
+
// plate with `--w06` header bars and `--w05` row hover) and the wallpaper is
|
|
457
|
+
// already muted to the point where it cannot colour the app. The light block
|
|
458
|
+
// carries the rationale for why that reasoning does not survive the flip.
|
|
459
|
+
--embed-plate: var(--w03);
|
|
460
|
+
--embed-plate-hover: var(--w05);
|
|
461
|
+
--embed-plate-raised: var(--w06);
|
|
462
|
+
|
|
426
463
|
// ── Materials ──────────────────────────────────────────────────────────────
|
|
427
464
|
// Same two-part shape as the light block. The menu gradient stops are opaque
|
|
428
465
|
// in this theme (`#201f25` / `#1a191e`); they are expressed as alpha-1 rgb so
|
|
@@ -44,10 +44,19 @@
|
|
|
44
44
|
// side-by-side with the design shows. The ramp flips polarity per theme
|
|
45
45
|
// (white-lift on dark glass, ink-wash on light), which is also what the
|
|
46
46
|
// design's own components do — they never branch on theme.
|
|
47
|
+
|
|
48
|
+
// CORRECTED: the ramp step is right in DARK and wrong in LIGHT, so the three
|
|
49
|
+
// lifts now go through `--embed-plate*` (declared per theme in
|
|
50
|
+
// `_nova-tokens.scss`), which aliases the ramp in dark and moves toward the
|
|
51
|
+
// plate's own white in light. The reason is written at the light declaration:
|
|
52
|
+
// an ink wash on a 60%-white translucent plate is a darker patch of WALLPAPER,
|
|
53
|
+
// not a card, which is what made the Help Center guide grid read as a
|
|
54
|
+
// photograph in light mode while dark mode looked correct. Same shape of
|
|
55
|
+
// light-mode-only failure this whole file exists for.
|
|
47
56
|
--bg: transparent;
|
|
48
|
-
--bg-2: var(--
|
|
49
|
-
--bg-3: var(--
|
|
50
|
-
--bg-hover: var(--
|
|
57
|
+
--bg-2: var(--embed-plate);
|
|
58
|
+
--bg-3: var(--embed-plate-raised);
|
|
59
|
+
--bg-hover: var(--embed-plate-hover);
|
|
51
60
|
|
|
52
61
|
// Hairlines. `--line`/`--line-2` stay on the chrome separators (14% ≈ the
|
|
53
62
|
// design's `--w14` CONTROL border — FormField.dc.html inputs), which is the
|
|
@@ -69,33 +78,32 @@
|
|
|
69
78
|
|
|
70
79
|
// CONTRACT (`_app-surface-tokens.scss`): anything that redefines `--ink` MUST
|
|
71
80
|
// redefine `--on-ink`, and it must be OPAQUE. `--on-ink` labels a fill of
|
|
72
|
-
// `--ink` itself — the primary button.
|
|
73
|
-
|
|
74
|
-
//
|
|
75
|
-
//
|
|
76
|
-
//
|
|
81
|
+
// `--ink` itself — the primary button.
|
|
82
|
+
|
|
83
|
+
// THE FLIP THE NOTE BELOW WARNED ABOUT HAS LANDED, AND THIS LINE IS NOW THE
|
|
84
|
+
// FIX RATHER THAN THE PREDICTION. `--label-primary` is no longer white in both
|
|
85
|
+
// themes: `_theme-light.scss` carries `rgb(17 24 39 / 92%)` — dark ink — so
|
|
86
|
+
// the fixed dark literal this line used to hold made every
|
|
87
|
+
// `background: var(--ink); color: var(--on-ink)` pair DARK ON DARK in light
|
|
88
|
+
// mode. Measured live inside `.hc-shell` on `html.light-theme`: fill
|
|
89
|
+
// `rgba(17,24,39,0.92)` against label `oklch(0.18 0.005 250)` — about 1.05:1,
|
|
90
|
+
// the same ~1:1 pair this file has now shipped twice, in the opposite
|
|
91
|
+
// direction. The flip value is the one the note already named.
|
|
77
92
|
|
|
78
93
|
// `app-surface-conventions.spec.ts` can only police the DS token file itself;
|
|
79
94
|
// its doc says consumers that remap `--ink` "carry the same obligation".
|
|
80
95
|
// Routing every consumer through this mixin is how that obligation is met.
|
|
81
96
|
// (`app-surface-nova-bridge.spec.ts` extends that gate to THIS file.)
|
|
82
97
|
|
|
83
|
-
//
|
|
84
|
-
//
|
|
85
|
-
// the
|
|
86
|
-
//
|
|
87
|
-
//
|
|
88
|
-
//
|
|
89
|
-
//
|
|
90
|
-
//
|
|
91
|
-
|
|
92
|
-
// The flip value is `var(--check-ink)`: Nova's only counter-ink that flips the
|
|
93
|
-
// right way (`#fff` light, `#0f1013` dark), which is exactly "the ink on a
|
|
94
|
-
// plate that carries the theme's own primary ink". Do NOT reach for a `--w*`
|
|
95
|
-
// step — the ramp flips polarity (`--w95` is 95% black in light, 95% WHITE in
|
|
96
|
-
// dark), so no step is a counter-ink in both themes; and do NOT reach for
|
|
97
|
-
// `--on-accent`, which is `#fff` in both and therefore right only in light.
|
|
98
|
-
--on-ink: oklch(18% 0.005 250deg);
|
|
98
|
+
// `var(--check-ink)` is Nova's only counter-ink that flips the right way
|
|
99
|
+
// (`#fff` light, `#0f1013` dark), which is exactly "the ink on a plate that
|
|
100
|
+
// carries the theme's own primary ink". Do NOT reach for a `--w*` step — the
|
|
101
|
+
// ramp flips polarity (`--w95` is 95% black in light, 95% WHITE in dark), so
|
|
102
|
+
// no step is a counter-ink in both themes; and do NOT reach for `--on-accent`,
|
|
103
|
+
// which is `#fff` in both and therefore right only in light. Both values are
|
|
104
|
+
// opaque hex, which is the other half of the contract — a translucent label
|
|
105
|
+
// composites into its own fill and disappears.
|
|
106
|
+
--on-ink: var(--check-ink);
|
|
99
107
|
|
|
100
108
|
// `--ink-inverse` carries the SAME obligation as `--on-ink` and was missed.
|
|
101
109
|
|