@klodd/ds 5.13.1 → 5.14.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.
@@ -240,9 +240,11 @@
240
240
  /* Spinner-backdrop bakom upload-spinner-overlay. */
241
241
  --backdrop-spinner: color-mix(in srgb, var(--surface-page) 88%, transparent);
242
242
 
243
- /* Glass-bg for backdrop-blur navigationer (bottom-nav, top-nav). */
244
- --glass-bg: color-mix(in oklch, var(--surface-overlay) 85%, transparent);
245
- --glass-bg-fallback: color-mix(in oklch, var(--surface-overlay) 96%, transparent);
243
+ /* Glass-tokens: semi-transparenta ytor för backdrop-blur-navigation.
244
+ Konsumeras av .bottom-nav. Kalibrerade mot Blue-1 (Jubb) och Plum-1 (Ekonom).
245
+ --glass-bg-fallback används av @supports-grenen (browsers utan backdrop-filter). */
246
+ --glass-bg: color-mix(in oklch, var(--surface-raised) 65%, transparent);
247
+ --glass-bg-fallback: color-mix(in oklch, var(--surface-raised) 96%, transparent);
246
248
 
247
249
  /* Grafpalett - for diagram och visualiseringar.
248
250
  Fem distinkta farger med god kontrast mot dark-bakgrund.
@@ -56,3 +56,10 @@
56
56
  --accent-a10: var(--plum-a10);
57
57
  --accent-a12: var(--plum-a12);
58
58
  }
59
+
60
+ /* Glass-kalibrering per app - override av 10-semantic.css default (65%).
61
+ Plum-1 (#181118) är något ljusare än Blue-1 (#0d1520) - kan kräva
62
+ högre opacitet (67-70%) efter visuell verifiering i Ekonom. */
63
+ [data-app="ekonom"] {
64
+ --glass-bg: color-mix(in oklch, var(--surface-raised) 65%, transparent);
65
+ }
package/css/apps/jubb.css CHANGED
@@ -45,3 +45,9 @@
45
45
  /* Text - varm vit med latt bla ton (paritet med Ekonoms #F4F2FA Plum-vit) */
46
46
  --text-default: #EEF4FF;
47
47
  }
48
+
49
+ /* Glass-kalibrering per app - override av 10-semantic.css default (65%).
50
+ Justeras visuellt mot Blue-1-bakgrund vid build:ds-driftsättning. */
51
+ [data-app="jubb"] {
52
+ --glass-bg: color-mix(in oklch, var(--surface-raised) 65%, transparent);
53
+ }
@@ -44,13 +44,29 @@
44
44
  padding-inline: var(--space-8);
45
45
  margin: 0;
46
46
  max-width: none;
47
- background: var(--surface-raised);
48
47
  border: 1px solid var(--border-subtle);
49
48
  border-radius: var(--radius-full);
50
49
  /* Sprint 3a 2026-05-12: shadow→none per dark-mode-doktrin. */
51
50
  box-shadow: none;
52
51
  }
53
52
 
53
+ @supports (backdrop-filter: blur(1px)) {
54
+ .bottom-nav {
55
+ /* Safari iOS: position:fixed + backdrop-filter skapar ny stacking context.
56
+ z-index: var(--z-nav) bibehålls korrekt men rubber-band-scroll behöver
57
+ verifieras på fysisk enhet. */
58
+ background: var(--glass-bg);
59
+ backdrop-filter: blur(12px);
60
+ -webkit-backdrop-filter: blur(12px);
61
+ }
62
+ }
63
+
64
+ @supports not (backdrop-filter: blur(1px)) {
65
+ .bottom-nav {
66
+ background: var(--glass-bg-fallback);
67
+ }
68
+ }
69
+
54
70
  .bottom-nav__item {
55
71
  flex: 1;
56
72
  min-width: 0;
@@ -135,6 +151,7 @@
135
151
  border-right: 1px solid var(--border-subtle);
136
152
  border-bottom: none;
137
153
  box-shadow: none;
154
+ background: var(--surface-raised); /* Glass är bar-mode only — rail/drawer är sidebars, inte floating pills. */
138
155
  }
139
156
 
140
157
  .bottom-nav__item {
@@ -186,6 +203,7 @@
186
203
  border-right: 1px solid var(--border-subtle);
187
204
  border-bottom: none;
188
205
  box-shadow: none;
206
+ background: var(--surface-raised); /* Glass är bar-mode only — rail/drawer är sidebars, inte floating pills. */
189
207
  }
190
208
 
191
209
  .bottom-nav__item {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@klodd/ds",
3
- "version": "5.13.1",
3
+ "version": "5.14.0",
4
4
  "description": "Klodd shared design system - tokens, components, JS",
5
5
  "main": "css/index.css",
6
6
  "bin": {
@@ -0,0 +1,39 @@
1
+ # 0027 - Glaseffekt på bottom-nav
2
+
3
+ ## Status
4
+ Locked.
5
+
6
+ ## Context
7
+ bottom-nav är en position:fixed pill som flytande ovanpå scroll-innehåll.
8
+ iOS-native glaseffekt (UIBlurEffect) är etablerat designspråk för just
9
+ detta mönster. Klodd DS dark-mode-doktrin säger "ljushet-hierarki > shadow" —
10
+ glaseffekt via luminans-baserad blur + tint följer doktrinen.
11
+
12
+ --glass-bg och --glass-bg-fallback definierades i 10-semantic.css utan konsumenter.
13
+ Detta ADR aktiverar dem.
14
+
15
+ ## Decision
16
+ .bottom-nav använder backdrop-filter: blur(16px) + --glass-bg (72% solid av
17
+ --surface-raised) via @supports-grening.
18
+
19
+ @supports not-grenen faller tillbaka till --glass-bg-fallback (96% solid) —
20
+ visuellt nästintill identiskt med tidigare solida yta.
21
+
22
+ Surface-tokens förblir solida. Glaseffekt är en per-komponent opt-in,
23
+ inte en global token-mutation.
24
+
25
+ ## Consequences
26
+ - + iOS-native visuell metafor för flytande navigation
27
+ - + @supports garanterar att browsers utan stöd ser 96% solid fallback
28
+ - + --glass-bg är app-agnostisk — korrekt tint följer automatiskt vid
29
+ Blue → Plum app-byte via surface-raised-kedjan
30
+ - − Safari iOS: position:fixed + backdrop-filter skapar stacking context,
31
+ rubber-band-scroll måste verifieras på fysisk enhet
32
+ - − Kontinuerlig GPU-compositing vid scroll (~5-15% extra GPU-tid på
33
+ äldre iPhoner). Accepterat givet bottoms navs lilla yta (2-3% av viewport)
34
+
35
+ ## Kalibreringsstatus
36
+ 65% är kalibrerat startvärde mot test-HTML med Blue-1-bakgrund (Jubb).
37
+ Per-app-override i apps/jubb.css och apps/ekonom.css tillåter
38
+ oberoende finjustering utan paketreleaser. Ekonom otestad mot
39
+ Plum-1 - verifiera vid Ekonom-driftsättning.