@klodd/ds 3.9.0 → 3.9.1

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
@@ -7,7 +7,7 @@ description: Design memory for the @klodd/ds shared design system across all Klo
7
7
 
8
8
  ## Vad detta är
9
9
  Gemensamt designsystem på npm (`@klodd/ds@3.x`). Tre-lagers tokens,
10
- 34+ komponenter (sheet-content tillagd v3.5.1), konsumeras av Jubb
10
+ 37+ komponenter (sheet-content tillagd v3.5.1), konsumeras av Jubb
11
11
  och Ekonom. Fler appar planerade.
12
12
  Denna Skill fångar både reglerna ("vad") och resonemanget ("varför").
13
13
 
@@ -108,38 +108,4 @@ En källa, alla projekt ser samma skill automatiskt. Ändringar i
108
108
  `~/dev/klodd-ds/SKILL.md`, `POLICY.md` eller `references/` syns
109
109
  omedelbart i nästa CC-session - ingen synk-fas behövs.
110
110
 
111
- Updated: 2026-05-09 (matchar @klodd/ds 3.5.4 - sprint C fas 1+2: ny
112
- sheet-content.css-komponent (24 BEM-klasser för Sprint-65-pattern),
113
- foreman-typografi-utokning (.text-caption/-tiny/-num/-num--display/-positive/-warning),
114
- btn-modifiers (--block, --add), .heading (17px medium tight), och utokningar
115
- i panel/setting-row/chip.
116
- v3.5.2 rattade .panel--attention__pill (felaktig BEM) till .panel__pill +
117
- context-styling via .panel--attention .panel__pill.
118
- v3.5.3 lagger till .heading-utan-N (17px) for dialog-titlar och sheet-rubriker.
119
- v3.5.4 (Sprint D-3) introducerar --fs-16 token (16px) for iOS-anti-zoom
120
- pa inputs och applicerar pa inline-edit__input. Token ar dokumenterad
121
- som BARA for input-element - vanlig text anvander fortfarande 15 eller 17.
122
- v3.5.5 (Sprint E) konsoliderar :focus-visible over 7 komponenter (chip,
123
- list-row, tab-bar, nav, swipe-stack, inline-edit) - 11 nya selectorer
124
- fick outline 2px solid var(--border-focus) med outline-offset 2px. Plus
125
- .tab outline-offset normaliserad 1px->2px. input.css och .inline-edit__input
126
- ar dokumenterade undantag som behaller :focus (text-input-konvention).
127
- v3.5.6 (Sprint F) konsoliderar BEM over 5 komponenter (card, dropdown,
128
- hero-roll, overlay, nav) - 23 flat-hyphen element-klasser konverterade
129
- till .block__element-syntax. Inkluderar JS-koordinering pa hero-roll,
130
- sheet-drag, turbo-nav, nav-optimistic dar querySelector/classList
131
- adresserar de bytta klasserna. .bottom-nav-item.active konverterad till
132
- BEM-modifier .bottom-nav__item--active. tooltip-wrapper bevarad som
133
- compound block per references/03-quality-bar.md regel 1.
134
- v3.5.7 (Sprint G) uppdaterar hub-card.css med Ekonoms tightare design
135
- (padding 14/16, border-radius 14, hub-list gap 10, active scale 0.985)
136
- nar Ekonoms LEGACY-version raderades. Sprint G hanterade aven domain-CSS
137
- BEM-migration i app-repos (icke-paket-fil) - 4 tier: A=dead-code-radering
138
- (14 klasser), B=paket-dubblett-radering (.hub-card + .hub-list ur Ekonoms
139
- LEGACY), C=BEM-byten (9 block-grupper: amort-bar, cat-tx-stack, cat-row,
140
- cat-list-row state-modifiers, sub-row state-modifiers, job-card, hero-amount-card,
141
- source-bar, score-bar), D=compound-block-undantag (cat-bar/equity-bar/
142
- budget-bar/hbar/cat-tx). Plus base.css Sprint F-miss fixad (bottom-nav-item,
143
- sheet-handle som descendant-selektorer i touch-cleanup + press-feedback).
144
- Jubb fick paritet med Ekonom: bundles/jubb.css + jubb-domain.css scaffold.
145
- Sprint C fas 2 template-migration pagaar.)
111
+ Updated: 2026-05-10 (matchar @klodd/ds 3.9.0)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@klodd/ds",
3
- "version": "3.9.0",
3
+ "version": "3.9.1",
4
4
  "description": "Klodd Design System - shared tokens, typography, components and JS for Jubb, Ekonom, and future apps. v3.5.3 (2026-05-09): tillagg .heading (17px medium tight) i base/typography.css for dialog-titlar och sheet-rubriker. Tackar luckan mellan .heading-2 (18px) och .heading-3 (15px) - matchar Ekonoms gamla .heading-class.",
5
5
  "main": "css/index.css",
6
6
  "bin": {
@@ -162,12 +162,11 @@ För varje entry gäller:
162
162
  - **INTE:** Klickbart kort med rich content (anvand `.hub-card`)
163
163
 
164
164
  ### collapsible (`collapsible.css`)
165
- - **Blocks:** `.collapsible-card`
165
+ - **Blocks:** `.collapsible`
166
166
  - **Element:** `.collapsible__header`, `.collapsible__header-text`, `.collapsible__chev`, `.collapsible__body`
167
- - **States:** `[data-expanded]` pa `.collapsible-card`
167
+ - **States:** `[data-expanded]` pa `.collapsible`
168
168
  - **Anvand:** Panel som expanderar pa klick. JS togglar `data-expanded`
169
169
  - **INTE:** Modal-content (anvand `.dialog` eller `.sheet`)
170
- - **Special:** BEM-stam-mismatch - block heter `.collapsible-card` men element heter `.collapsible__X` (utan `-card`-suffix). Oppen punkt for rename, se sprint-rapport 2026-05-09.
171
170
 
172
171
  ### hbar (`hbar.css`)
173
172
  - **Blocks:** `.hbar`
@@ -354,4 +353,4 @@ Jubb, Ekonom, framtida appar foljer samma monster med sina egna tokens.
354
353
  - **`var(--gray-9)` i komponent-CSS.** Komponenter laser bara semantic.
355
354
  - **Egen .button-style.** Anvand `.btn` med modifier istallet.
356
355
  - **`font-weight: 700`.** Anvand `--fw-medium` (500). Display-siffror ar dokumenterat undantag.
357
- - **Anta att alla komponent-filer har ett root-block.** 17 av 35 komponent-filer har flera root-blocks - se regel 11 i `references/03-quality-bar.md`.
356
+ - **Anta att alla komponent-filer har ett root-block.** 17 av 37 komponent-filer har flera root-blocks - se regel 11 i `references/03-quality-bar.md`.
@@ -212,7 +212,7 @@ Varje interaktiv komponent SKA ha:
212
212
 
213
213
  ## 11. En fil kan innehalla flera root-blocks
214
214
 
215
- I 17 av 35 komponent-filer i paketet definieras flera root-blocks i
215
+ I 17 av 37 komponent-filer i paketet definieras flera root-blocks i
216
216
  samma fil (`form.css`, `nav.css`, `chip.css`, `swipe-stack.css`,
217
217
  `feedback.css`, `hub-card.css` m.fl.). Det ar en medveten konvention,
218
218
  inte ett undantag eller teknisk skuld.
@@ -0,0 +1,19 @@
1
+ # 0012 - Maskable PWA-ikoner
2
+
3
+ ## Status
4
+ Pending.
5
+
6
+ ## Context
7
+ Jubb och Ekonom har PWA-ikoner men saknar maskable-varianter med
8
+ safe-zone-padding. Utan maskable-ikoner riskerar ikonen att klippas
9
+ på Android-enheter med adaptiva ikoner.
10
+
11
+ SVG-källfiler är klara. Bakgrundsfärg ska vara steg 3 av respektive
12
+ apps accent-ramp (--accent-3: Blue-3 för Jubb, Plum-3 för Ekonom).
13
+
14
+ ## Återstår
15
+ - PNG-export med safe-zone-padding (72px ikon i 108px canvas)
16
+ - purpose="maskable" i web manifest för båda appar
17
+
18
+ ## Beroenden
19
+ Kräver designer-export. Inte en CC-uppgift förrän PNG-filer levereras.
@@ -0,0 +1,84 @@
1
+ # 0013 - Jubb kv-list template-migration
2
+
3
+ ## Status
4
+ Pending.
5
+
6
+ ## Context
7
+ Sprint 5 (3.9.0, MADR 0009) lyfte kv-list till @klodd/ds som BEM-
8
+ komponent (.kv-list, .kv-list__item, .kv-list__item--strong/-sub/
9
+ -divider/-budget). Ekonom-templates migrerades samtidigt.
10
+
11
+ Jubb fick inte motsvarande migration. Jubbs jubb.css behåller en
12
+ flat-namnskonvention (.kv-row, .kv-key, .kv-value) som 5 templates
13
+ beror på via 10 separata `<ul class="kv-list">`-instanser med ~40
14
+ individuella .kv-row/.kv-key/.kv-value-träffar:
15
+ - runs.html (2 listor)
16
+ - job_detail.html (1 lista)
17
+ - dashboard.html (1 lista)
18
+ - insights.html (4 listor)
19
+ - jobs_list.html (2 listor)
20
+
21
+ ## API-mismatch
22
+
23
+ Templates använder:
24
+
25
+ ```html
26
+ <ul class="kv-list">
27
+ <li class="kv-row">
28
+ <span class="kv-key">label</span>
29
+ <span class="kv-value">value</span>
30
+ </li>
31
+ </ul>
32
+ ```
33
+
34
+ Paketets API (kv-list.css 3.9.0):
35
+
36
+ ```html
37
+ <ul class="kv-list">
38
+ <li class="kv-list__item">
39
+ label
40
+ value
41
+ </li>
42
+ </ul>
43
+ ```
44
+
45
+ Paketets .kv-list__item har display: flex + justify-content:
46
+ space-between direkt på li-en. Två children placeras på vänster
47
+ och höger utan wrapper-spans. Jubbs nuvarande .kv-value bidrar
48
+ med color: var(--text-default), font-variant-numeric: tabular-nums
49
+ och inline-flex med gap som behöver återskapas i ny layout (möjliga
50
+ vägar: ny .kv-list__item--num-modifier i paketet, eller behåll en
51
+ lättviktig .kv-value-utility i Jubb).
52
+
53
+ ## Återstår
54
+
55
+ - HTML-migration i 5 templates: `<li class="kv-row">` blir
56
+ `<li class="kv-list__item">`
57
+ - Bedömning per template: droppa .kv-key/.kv-value-spans, eller
58
+ behåll dem för tabular-nums/color
59
+ - Visuell verifiering per vy efter migration (runs, job_detail,
60
+ dashboard, insights, jobs_list)
61
+ - Tester: kontrollera om pytest-asserts refererar kv-row/-key/-value
62
+ - Slutsteg: radera Jubbs lokala .kv-list, .kv-list li, .kv-row,
63
+ .kv-key, .kv-value ur jubb.css
64
+
65
+ ## Beroenden
66
+
67
+ - Visuell verifiering per vy via Chrome MCP eller dev-server
68
+ - Tester kan kräva uppdatering om kv-* selectors finns i pytest-asserts
69
+
70
+ ## Avvisade alternativ
71
+
72
+ Option C (lyft .kv-row/.kv-key/.kv-value till paketet som alias för
73
+ flat-konvention): avvisad per ADR 0009 (no-flat-components-css).
74
+ Sprint 5 MADR 0009 etablerade att Ekonoms ursprungliga flat-namn
75
+ ersätts med generaliserade BEM-namn (.kv-list__item) i paketet. Att
76
+ åter-introducera flat-namn skulle åter-öppna ADR 0009 utan ny
77
+ arkitektonisk motivering.
78
+
79
+ ## Sprint 6-leverabel
80
+
81
+ Sprint 6 fas 4 raderar dead kv-delar (.kv-list li.kv-strong/-sub/
82
+ -divider/-budget-row, .kv-budget-header, .kv-budget-body - 0
83
+ template-träffar) men behåller .kv-list, .kv-list li, .kv-row,
84
+ .kv-key, .kv-value tills denna MADR genomförs.