@klodd/ds 3.4.0 → 3.4.2

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/SKILL.md CHANGED
@@ -27,9 +27,15 @@ Denna Skill fångar både reglerna ("vad") och resonemanget ("varför").
27
27
  </locked_rules>
28
28
 
29
29
  ## Apps och theming
30
- - `data-app="jubb"` → Blue accent (Radix Blue Dark), Mauve neutral
30
+ - `data-app="jubb"` → Blue accent (Radix Blue Dark), Blue-tonad bakgrund
31
31
  - `data-app="ekonom"` → Plum accent (Radix Plum Dark), Plum-tonad bakgrund
32
- - Ny app: lägg till ramp i 00-primitives.css + 5-raders apps/foo.css
32
+ - Ny app: lägg till ramp i 00-primitives.css + apps/foo.css med accent-
33
+ overrides (obligatoriskt, 5 rader) + valfria surface/text-overrides
34
+ (15-40 rader totalt om appen ska ha distinkt bakgrundston)
35
+ - **Surface-raised-konvention**: alla Klodd-appar sätter
36
+ `--surface-raised: var(--<color>-2)` - kort och paneler ligger på
37
+ samma yta som default-sektioner men distinkt mot page-bakgrunden
38
+ (color-1). Gäller alla nuvarande och framtida appar.
33
39
 
34
40
  ## Besluts-records
35
41
  - `references/04-locked-decisions/` — låsta beslut. Förklara, ändra inte.
@@ -49,8 +55,25 @@ cd ~/dev/Jubb && npm install @klodd/ds@latest && npm run build:ds
49
55
  cd ~/dev/Ekonom && npm install @klodd/ds@latest && npm run build:ds
50
56
  ```
51
57
 
58
+ ## CLI-kommandon
59
+
60
+ ```bash
61
+ # Synka paketets CSS och JS till app-repot
62
+ npm run build:ds # kör npx @klodd/ds sync internt
63
+
64
+ # Verifiera att committade filer matchar paketet (kör i CI)
65
+ npx @klodd/ds verify
66
+
67
+ # Generera startlista för SW PRECACHE_URLS
68
+ npx @klodd/ds precache
69
+ ```
70
+
71
+ Kör verify efter varje build:ds för att bekräfta att ingen drift uppstått.
72
+ GitHub Action `Design System Verify` i båda app-repos kör detta automatiskt
73
+ på push och PR.
74
+
52
75
  ## När du är osäker
53
76
  Läs relevant ADR. Täcks frågan inte av något ADR — flagga det explicit:
54
77
  "Jag ser inget beslut på detta — ska vi skapa ett i references/05-open-decisions/?"
55
78
 
56
- Updated: 2026-05-07 (matchar @klodd/ds 3.2.0)
79
+ Updated: 2026-05-08 (matchar @klodd/ds 3.4.1)
@@ -22,11 +22,16 @@
22
22
 
23
23
  /* Surface - varm plum-tonad bakgrund istallet for Mauve-neutral.
24
24
  Plum-1 (#181118) ar nastan lika mork som Mauve-1 men med plum-
25
- ton. --surface-raised har en mellanton mellan plum-2 och plum-3
26
- for synlig kort-elevation utan att vara for ljus. */
25
+ ton.
26
+
27
+ Konvention: --surface-raised = appens <color>-2. Galler alla
28
+ Klodd-appar (Jubb -> blue-2, Ekonom -> plum-2). Korten ligger
29
+ subtilt over page-bakgrunden utan att bli for ljus. Tidigare
30
+ anvande Ekonom --plum-2-5 (mellanvarde) - nu linjerat med
31
+ samma regel som Jubb. */
27
32
  --surface-page: var(--plum-1); /* #181118 */
28
33
  --surface-default: var(--plum-2); /* #201320 */
29
- --surface-raised: var(--plum-2-5); /* mellanniva plum-2/plum-3 */
34
+ --surface-raised: var(--plum-2); /* #201320 - kort, paneler */
30
35
  --surface-overlay: var(--plum-3); /* #351a35 */
31
36
  --surface-hover: var(--plum-3);
32
37
  --surface-active: var(--plum-4);
package/css/apps/jubb.css CHANGED
@@ -18,14 +18,20 @@
18
18
  Tidigare arvde apparna default Mauve-skala for surface - nu far
19
19
  bagge appar app-specifik surface-tone som matchar accent.
20
20
 
21
+ Konvention: --surface-raised = appens <color>-2. Galler alla
22
+ Klodd-appar (Jubb -> blue-2, Ekonom -> plum-2). Denna lagger
23
+ korten subtilt over page-bakgrunden (color-1) utan att bli
24
+ for ljus.
25
+
21
26
  Blue-1 (#0d1520) ar morkast - sidans bakgrund.
22
- Blue-2 (#111927) - sektioner, nav, tab-bar.
23
- Blue-3 (#0d2847) - kort, paneler (raised).
27
+ Blue-2 (#111927) - sektioner, nav, tab-bar OCH kort (raised).
28
+ Blue-3 (#0d2847) - inte langre raised, frigjord for ev. framtida
29
+ niva mellan raised och overlay.
24
30
  Blue-4 (#003362) - modaler, popovers (overlay).
25
31
  Blue-5 (#004074) - active-state. */
26
32
  --surface-page: var(--blue-1);
27
33
  --surface-default: var(--blue-2);
28
- --surface-raised: var(--blue-3);
34
+ --surface-raised: var(--blue-2);
29
35
  --surface-overlay: var(--blue-4);
30
36
  --surface-hover: var(--blue-4);
31
37
  --surface-active: var(--blue-5);
@@ -1,8 +1,6 @@
1
- /* Inter font (Linear-stack) - laddas fran Google Fonts om enheten
2
- saknar den. CSP-kraven i app-repona inkluderar redan
3
- fonts.googleapis.com (style-src) och fonts.gstatic.com (font-src).
4
- 400 = --fw-regular, 500 = --fw-medium per font-weight-policy. */
5
- @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500&display=swap');
1
+ /* Inter laddas INTE via Google Fonts (render-blocking, medvetet borttaget).
2
+ * Stacken faller tillbaka pa SF Pro Display pa iOS och system-ui pa ovriga.
3
+ * Se --font-sans i 00-primitives.css. */
6
4
 
7
5
 
8
6
  /* ================================================================
package/js/hero-roll.js CHANGED
@@ -17,7 +17,8 @@
17
17
  marker. Animation kor vid forsta page-load efter att PWA/tab
18
18
  stangts helt. Sprint D3:s `body[data-first-load]` (cookie-baserad)
19
19
  fungerar bara for helt nya anvandare; J.5-trigger fungerar for
20
- return-anvandare som har `ekonom_seen`-cookie satt sedan tidigare.
20
+ return-anvandare som har appens first-load-cookie (satts av servern)
21
+ sedan tidigare.
21
22
  2. Manadsbyte via < / > i manads-pillen pa /avstamning
22
23
 
23
24
  Sprint J.4 (CE-rapport: 000 kr syns lite val lange + hela processen
@@ -58,10 +59,9 @@
58
59
  // Sprint J.5: sessionStorage-marker for fresh-session-detektering.
59
60
  // sessionStorage rensas vid PWA-stangning/tab-close, persisterar
60
61
  // mellan reloads/nav inom samma session.
61
- // Delad sessionStorage-key for hero-roll. Bytt fran ekonom_hero_session
62
- // 2026-05-08 nar komponenten porterades tillbaka till Ekonom som shared-
63
- // system. Befintliga session-markers fran gamla nyckeln tappar persist
64
- // engang per anvandare - ny markering satts vid nasta kallstart.
62
+ // Nyckel: ds_hero_session (app-agnostisk). Delad mellan alla appar
63
+ // som anvander @klodd/ds sa samma session-marker fungerar oavsett
64
+ // vilken app som kor.
65
65
  const SESSION_KEY = 'ds_hero_session';
66
66
 
67
67
  let hasRunInitial = false;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@klodd/ds",
3
- "version": "3.4.0",
4
- "description": "Klodd Design System - shared tokens, typography, components and JS for Jubb, Ekonom, and future apps. v3.4 inkluderar sync/verify/precache CLI sa app-repona inte langre handhaller egna build-script.",
3
+ "version": "3.4.2",
4
+ "description": "Klodd Design System - shared tokens, typography, components and JS for Jubb, Ekonom, and future apps. v3.4 inkluderar sync/verify/precache CLI sa app-repona inte langre handhaller egna build-script. v3.4.1 tar bort Google Fonts @import + gor hero-roll-kommentarer app-agnostiska. v3.4.2 etablerar surface-raised = <color>-2-konvention for kort/paneler i alla appar.",
5
5
  "main": "css/index.css",
6
6
  "bin": {
7
7
  "klodd-ds": "./bin/klodd-ds.js"
@@ -1,7 +1,8 @@
1
1
  # 0004 - Halsomentorn legacy-CSS i Ekonom
2
2
 
3
3
  ## Status
4
- Pending. Lag prioritet.
4
+ Closed - Halsomentorn arkiverat. `ds/halsomentorn.css` behalls i Ekonom
5
+ tills Halsomentorn-projektet eventuellt ateruptas. Ingen action kravs.
5
6
 
6
7
  ## Context
7
8
  Ekonoms `app/static/css/ds/halsomentorn.css` ar 1783 rader CSS som
@@ -0,0 +1,73 @@
1
+ # 0008 - Legacy token-migration och `ds/components.css`-radering - v4.0.0
2
+
3
+ ## Status
4
+ Pending. Trigger: innan tredje app borjar anvanda `@klodd/ds`.
5
+
6
+ ## Context
7
+ `10-semantic.css` har en LEGACY ALIASES-sektion (rad 412-506) som
8
+ holds gamla token-namn vid liv sedan migrationen pabarjades:
9
+ `--accent`, `--accent-dim`, `--accent-link*`, `--bg-base`, `--bg-surface`,
10
+ `--card-bg-elevated`, `--surface-medium`, `--surface-subtle`,
11
+ `--negative-dim`, `--positive-dim`, `--shadow-float`, samt 9 radius-
12
+ aliaser. Sektionen ar 100 rader och har funnits over ett halvar.
13
+
14
+ Parallellt korr `ds/components.css` (flat-format, ~60 KB) sida vid
15
+ sida med `ds/components/<X>.css` (BEM, paket-konvention). Bagge
16
+ laddas i bagge appars main.css. DESIGN_TOKENS_GUIDE.md sektion 7
17
+ dokumenterar konflikten och saver "migration sker per sida" - men
18
+ ingen migration har skett pa manader.
19
+
20
+ Audit 2026-05-08 bekraftade att Jubb-domain CSS (`jubb-theme.css`,
21
+ `triage-v2.css`, `ds/base.css`) hanger fast i legacy-tokens, och
22
+ samma migrations-skuld finns i Ekonom (tx-row, kategori-tokens,
23
+ profile-edit). Det ar ingen lokal Jubb-fraga - det ar paketets
24
+ kostnad.
25
+
26
+ ### Konsekvens av att leva i halv-tillstand
27
+
28
+ - Varje ny komponent maste valja: gamla namnet eller nya namnet?
29
+ Folk valjer fel halften av gangerna.
30
+ - Ny utvecklare (eller LLM) maste lara sig bagge systemen for att
31
+ lasa koden. Cognitive overhead vid varje touch.
32
+ - Specen i DESIGN_TOKENS_GUIDE.md saver "5-raders apps/jubb.css" men
33
+ paketet har 36 rader. Specen ar inte sanning.
34
+ - Migrations-skulden vaxer linjart med antal call-sites och antal
35
+ appar.
36
+
37
+ ## Decision
38
+ Gor en fullstandig **lock-sprint** innan tredje app laggs till:
39
+
40
+ 1. Migrera ALLA call-sites till nya semantic token-namn
41
+ (`--accent` -> `--accent-9` eller `--accent-text`, `--bg-base`
42
+ -> `--surface-page`, `--surface-medium` -> `--surface-default`,
43
+ `--card-bg-elevated` -> `--surface-raised` etc).
44
+ 2. Radera LEGACY ALIASES-sektionen ur `10-semantic.css`.
45
+ 3. Migrera ALLA flat-komponenter (`.btn`, `.card`, `.panel`, `.tx-row`
46
+ etc) till BEM (`.btn`, `.btn--primary`, `.card`, `.card--interactive`).
47
+ 4. Radera `ds/components.css` (flat-versionen) ur bagge app-repos.
48
+ 5. Bumpa till `@klodd/ds@4.0.0` (breaking).
49
+
50
+ ## Consequences
51
+ - **+** Slut pa dubbla mentala modeller. En standard.
52
+ - **+** Spec stammer med implementationen.
53
+ - **+** Tredje app:s onboarding gar mot ett moget system.
54
+ - **+** `npx @klodd/ds verify` (3.4.0+) detekterar drift mekaniskt.
55
+ - **-** Stor sprint - kraver dedikerad bandbredd (uppskattning: 2-3
56
+ arbetsdagar plus visuell QA per app).
57
+ - **-** Risk for visuell regression vid migration. Kraver `/design`-
58
+ styleguide-jamforelse fore/efter pa bagge appar.
59
+
60
+ ## Pending decision criteria
61
+ - Tidpunkt: omedelbart innan tredje app (Margevo eller annan)
62
+ borjar anvanda paketet. Att vanta langre forharder skulden;
63
+ att hasta forskuggar appar som redan ar i prod.
64
+ - Vem kor sprinten: Calle ensam eller med assistent CC?
65
+ - Om CC: ska den ha access till bagge app-repos under sprinten?
66
+
67
+ ## Notes
68
+ - Audit 2026-05-08 (av CC) identifierade root-causes och rekommenderade
69
+ steg 1-3 (CLI-konsolidering) NU och steg 4 (denna migration) "nar
70
+ bandbredd finns".
71
+ - Steg 1-3 ar implementerade i v3.4.0 (sync/verify/precache CLI).
72
+ - v3.4.0 ar lokalt locked - drift detekteras av CI-job i bagge appar.
73
+ Det ar plattformen som later denna lock-sprint hallas i kontroll.