@klodd/ds 3.5.3 → 3.5.5
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 +9 -1
- package/css/00-primitives.css +4 -0
- package/css/components/chip.css +20 -0
- package/css/components/inline-edit.css +10 -1
- package/css/components/input.css +12 -0
- package/css/components/list-row.css +5 -0
- package/css/components/nav.css +11 -1
- package/css/components/swipe-stack.css +10 -0
- package/css/components/tab-bar.css +5 -0
- package/package.json +1 -1
- package/references/03-quality-bar.md +7 -0
- package/references/04-locked-decisions/0009-no-flat-components-css.md +28 -0
- package/references/05-open-decisions/0007-banner-body-migration.md +47 -0
- package/references/05-open-decisions/0008-hbar-migration-ekonom.md +61 -0
- package/references/05-open-decisions/0009-ekonom-css-legacy-cleanup.md +63 -0
package/SKILL.md
CHANGED
|
@@ -97,7 +97,7 @@ En källa, alla projekt ser samma skill automatiskt. Ändringar i
|
|
|
97
97
|
`~/dev/klodd-ds/SKILL.md`, `POLICY.md` eller `references/` syns
|
|
98
98
|
omedelbart i nästa CC-session - ingen synk-fas behövs.
|
|
99
99
|
|
|
100
|
-
Updated: 2026-05-09 (matchar @klodd/ds 3.5.
|
|
100
|
+
Updated: 2026-05-09 (matchar @klodd/ds 3.5.4 - sprint C fas 1+2: ny
|
|
101
101
|
sheet-content.css-komponent (24 BEM-klasser för Sprint-65-pattern),
|
|
102
102
|
foreman-typografi-utokning (.text-caption/-tiny/-num/-num--display/-positive/-warning),
|
|
103
103
|
btn-modifiers (--block, --add), .heading (17px medium tight), och utokningar
|
|
@@ -105,4 +105,12 @@ i panel/setting-row/chip.
|
|
|
105
105
|
v3.5.2 rattade .panel--attention__pill (felaktig BEM) till .panel__pill +
|
|
106
106
|
context-styling via .panel--attention .panel__pill.
|
|
107
107
|
v3.5.3 lagger till .heading-utan-N (17px) for dialog-titlar och sheet-rubriker.
|
|
108
|
+
v3.5.4 (Sprint D-3) introducerar --fs-16 token (16px) for iOS-anti-zoom
|
|
109
|
+
pa inputs och applicerar pa inline-edit__input. Token ar dokumenterad
|
|
110
|
+
som BARA for input-element - vanlig text anvander fortfarande 15 eller 17.
|
|
111
|
+
v3.5.5 (Sprint E) konsoliderar :focus-visible over 7 komponenter (chip,
|
|
112
|
+
list-row, tab-bar, nav, swipe-stack, inline-edit) - 11 nya selectorer
|
|
113
|
+
fick outline 2px solid var(--border-focus) med outline-offset 2px. Plus
|
|
114
|
+
.tab outline-offset normaliserad 1px->2px. input.css och .inline-edit__input
|
|
115
|
+
ar dokumenterade undantag som behaller :focus (text-input-konvention).
|
|
108
116
|
Sprint C fas 2 template-migration pagaar.)
|
package/css/00-primitives.css
CHANGED
|
@@ -222,6 +222,10 @@
|
|
|
222
222
|
--fs-13: 13px;
|
|
223
223
|
--fs-14: 14px;
|
|
224
224
|
--fs-15: 15px;
|
|
225
|
+
/* --fs-16 ar BARA for input-element (anti iOS auto-zoom). Apple HIG
|
|
226
|
+
hoppar over 16 i UI-text-storlekar - anvand 15 eller 17 for vanlig
|
|
227
|
+
text. */
|
|
228
|
+
--fs-16: 16px;
|
|
225
229
|
--fs-17: 17px;
|
|
226
230
|
--fs-18: 18px;
|
|
227
231
|
--fs-20: 20px;
|
package/css/components/chip.css
CHANGED
|
@@ -101,6 +101,11 @@
|
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
+
.chip-list__delete:focus-visible {
|
|
105
|
+
outline: 2px solid var(--border-focus);
|
|
106
|
+
outline-offset: 2px;
|
|
107
|
+
}
|
|
108
|
+
|
|
104
109
|
.chip-list__add {
|
|
105
110
|
background: transparent;
|
|
106
111
|
border-style: dashed;
|
|
@@ -120,6 +125,11 @@
|
|
|
120
125
|
}
|
|
121
126
|
}
|
|
122
127
|
|
|
128
|
+
.chip-list__add:focus-visible {
|
|
129
|
+
outline: 2px solid var(--border-focus);
|
|
130
|
+
outline-offset: 2px;
|
|
131
|
+
}
|
|
132
|
+
|
|
123
133
|
|
|
124
134
|
/* ================================================================
|
|
125
135
|
==== BRAND-PILL
|
|
@@ -245,6 +255,11 @@
|
|
|
245
255
|
.install-chip__install:hover { background: var(--accent-10); }
|
|
246
256
|
}
|
|
247
257
|
|
|
258
|
+
.install-chip__install:focus-visible {
|
|
259
|
+
outline: 2px solid var(--border-focus);
|
|
260
|
+
outline-offset: 2px;
|
|
261
|
+
}
|
|
262
|
+
|
|
248
263
|
.install-chip__dismiss {
|
|
249
264
|
background: transparent;
|
|
250
265
|
border: none;
|
|
@@ -261,6 +276,11 @@
|
|
|
261
276
|
.install-chip__dismiss:hover { color: var(--text-default); }
|
|
262
277
|
}
|
|
263
278
|
|
|
279
|
+
.install-chip__dismiss:focus-visible {
|
|
280
|
+
outline: 2px solid var(--border-focus);
|
|
281
|
+
outline-offset: 2px;
|
|
282
|
+
}
|
|
283
|
+
|
|
264
284
|
@keyframes install-chip-up {
|
|
265
285
|
from { transform: translateY(calc(100% + 100px)); opacity: 0; }
|
|
266
286
|
to { transform: translateY(0); opacity: 1; }
|
|
@@ -41,6 +41,11 @@
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
+
.inline-edit__btn:focus-visible {
|
|
45
|
+
outline: 2px solid var(--border-focus);
|
|
46
|
+
outline-offset: 2px;
|
|
47
|
+
}
|
|
48
|
+
|
|
44
49
|
.inline-edit__form {
|
|
45
50
|
display: inline-flex;
|
|
46
51
|
align-items: center;
|
|
@@ -64,10 +69,14 @@
|
|
|
64
69
|
border-radius: var(--radius-8);
|
|
65
70
|
color: var(--text-default);
|
|
66
71
|
font-family: inherit;
|
|
67
|
-
font-size:
|
|
72
|
+
font-size: var(--fs-16);
|
|
68
73
|
outline: none;
|
|
69
74
|
}
|
|
70
75
|
|
|
76
|
+
/* :focus (INTE :focus-visible) - text-input-undantag analogt med
|
|
77
|
+
input.css. Anvandare klickar/touchar inputen och forvantar sig
|
|
78
|
+
visuell feedback oavsett input-method. Border + box-shadow ar
|
|
79
|
+
integrerad i input-utseendet. */
|
|
71
80
|
.inline-edit__input:focus {
|
|
72
81
|
border-color: var(--accent-9);
|
|
73
82
|
box-shadow: 0 0 0 3px var(--accent-a3);
|
package/css/components/input.css
CHANGED
|
@@ -61,6 +61,18 @@
|
|
|
61
61
|
/* ================================================================
|
|
62
62
|
==== STATES
|
|
63
63
|
================================================================ */
|
|
64
|
+
|
|
65
|
+
/* Inputs anvander :focus (INTE :focus-visible) som dokumenterat
|
|
66
|
+
undantag fran paketets generella focus-visible-monster.
|
|
67
|
+
|
|
68
|
+
Skal: text-inputs ar specialfall - anvandare klickar/touchar dem
|
|
69
|
+
och forvantar sig visuell feedback oavsett input-method (mus eller
|
|
70
|
+
tangentbord). Att gomma fokus-ring vid mus-klick (vilket
|
|
71
|
+
:focus-visible skulle gora) kan forvirra anvandare om vilket falt
|
|
72
|
+
som ar aktivt. Konvention foljer Radix UI, MUI, shadcn etc.
|
|
73
|
+
|
|
74
|
+
Fokus-feedback ar border-color + box-shadow ring (inte outline) -
|
|
75
|
+
integrerad i input-utseendet snarare an "added on top". */
|
|
64
76
|
.input:focus,
|
|
65
77
|
.textarea:focus,
|
|
66
78
|
.select:focus {
|
package/css/components/nav.css
CHANGED
|
@@ -56,6 +56,11 @@
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
+
.bottom-nav-item:focus-visible {
|
|
60
|
+
outline: 2px solid var(--border-focus);
|
|
61
|
+
outline-offset: 2px;
|
|
62
|
+
}
|
|
63
|
+
|
|
59
64
|
.bottom-nav-item.active {
|
|
60
65
|
color: var(--accent-text);
|
|
61
66
|
}
|
|
@@ -141,6 +146,11 @@
|
|
|
141
146
|
}
|
|
142
147
|
}
|
|
143
148
|
|
|
149
|
+
.topbar-action:focus-visible {
|
|
150
|
+
outline: 2px solid var(--border-focus);
|
|
151
|
+
outline-offset: 2px;
|
|
152
|
+
}
|
|
153
|
+
|
|
144
154
|
|
|
145
155
|
/* ================================================================
|
|
146
156
|
==== TAB-BAR (inline tabs i panel)
|
|
@@ -188,5 +198,5 @@
|
|
|
188
198
|
|
|
189
199
|
.tab:focus-visible {
|
|
190
200
|
outline: 2px solid var(--border-focus);
|
|
191
|
-
outline-offset:
|
|
201
|
+
outline-offset: 2px;
|
|
192
202
|
}
|
|
@@ -47,6 +47,11 @@
|
|
|
47
47
|
|
|
48
48
|
.swipe-card:active { cursor: grabbing; }
|
|
49
49
|
|
|
50
|
+
.swipe-card:focus-visible {
|
|
51
|
+
outline: 2px solid var(--border-focus);
|
|
52
|
+
outline-offset: 2px;
|
|
53
|
+
}
|
|
54
|
+
|
|
50
55
|
.swipe-card--back {
|
|
51
56
|
transform: scale(0.96);
|
|
52
57
|
opacity: 0.85;
|
|
@@ -154,6 +159,11 @@
|
|
|
154
159
|
transition: transform var(--press-in-duration) var(--press-in-easing);
|
|
155
160
|
}
|
|
156
161
|
|
|
162
|
+
.swipe-action-btn:focus-visible {
|
|
163
|
+
outline: 2px solid var(--border-focus);
|
|
164
|
+
outline-offset: 2px;
|
|
165
|
+
}
|
|
166
|
+
|
|
157
167
|
.swipe-action-btn--save { color: var(--positive); }
|
|
158
168
|
.swipe-action-btn--dismiss { color: var(--negative); }
|
|
159
169
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@klodd/ds",
|
|
3
|
-
"version": "3.5.
|
|
3
|
+
"version": "3.5.5",
|
|
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": {
|
|
@@ -62,6 +62,13 @@ Lista over absoluta krav som inte ska brytas. Varje krav har konkret
|
|
|
62
62
|
- ALDRIG `rgba(0, 0, 0, 0.4)` - anvand `color-mix(in oklch, ...)` eller
|
|
63
63
|
semantic alpha-token
|
|
64
64
|
|
|
65
|
+
**Scope:**
|
|
66
|
+
Galler komponenter i `components/*.css` och per-app domain-filer
|
|
67
|
+
(`X-domain.css`, `X.css`). Galler INTE `apps/X.css` - den filen ar
|
|
68
|
+
per definition det lager som haller app-specifika ravarden och
|
|
69
|
+
far referera primitives eller explicita hex-varden for app-karaktar
|
|
70
|
+
som saknar Radix-ekvivalent.
|
|
71
|
+
|
|
65
72
|
**Varfor:**
|
|
66
73
|
- Single source of truth: andring i 00-primitives.css landar omedelbart
|
|
67
74
|
i alla komponenter
|
|
@@ -51,6 +51,34 @@ element) lever i en tydligt namngiven domain-fil:
|
|
|
51
51
|
- Ny komponent kräver `@import` i alla konsumerande appars `main.css`.
|
|
52
52
|
Acceptabelt - paketet listar komponenter i README.
|
|
53
53
|
|
|
54
|
+
## Skärpning (2026-05-09)
|
|
55
|
+
|
|
56
|
+
`ekonom-domain.css` (och motsvarande per-app domain-filer) håller
|
|
57
|
+
bara data: kategoritokens, färgvärden, app-specifika värden. Aldrig
|
|
58
|
+
strukturella mönster. All struktur som kan återanvändas av en annan
|
|
59
|
+
app går in i paketet med generiska namn. Detta beslutades och
|
|
60
|
+
genomfördes i Sprint C 2026-05-09 (358 dash→BEM-substitueringar,
|
|
61
|
+
@klodd/ds 3.5.1-3.5.3).
|
|
62
|
+
|
|
63
|
+
Ekonom-flödet i Sprint C:
|
|
64
|
+
|
|
65
|
+
1. **Fas 1 paket-utvidgning** (3.5.1-3.5.3): 37 nya generiska klasser
|
|
66
|
+
till paketet - hela `sheet-content.css` (24 BEM-klasser för
|
|
67
|
+
bottom-sheet-form-pattern), `.text-caption/-tiny/-num/-num--display/
|
|
68
|
+
-positive/-warning` foreman-typografi, `.btn--block/--add` modifiers,
|
|
69
|
+
utökningar i panel/setting-row/chip, och `.heading` (17px) för
|
|
70
|
+
dialog-titlar.
|
|
71
|
+
2. **Fas 2 template-migration**: 21 templates fick dash → BEM-
|
|
72
|
+
substitueringar. _sheet_macros.html-makron migrerade samtidigt så
|
|
73
|
+
alla konsumenter (5 templates) fick BEM-rendering.
|
|
74
|
+
3. **Cleanup**: components.css (2089 rader) raderad helt. Återstående
|
|
75
|
+
18 aktivt använda klasser utan paket-equivalent (kv-list-family,
|
|
76
|
+
btn-copy/-bank, bank-row-icon, profile-panel-centered, rule-arrow/
|
|
77
|
+
-cat, offline-*, onboarding-container, btn--positive, topbar-logo)
|
|
78
|
+
lyfta till `ekonom.css` LEGACY-sektion. Dessa är kandidater för
|
|
79
|
+
framtida paket-inkludering om de visar sig generaliserbara - se
|
|
80
|
+
öppet beslut 0009 i `references/05-open-decisions/`.
|
|
81
|
+
|
|
54
82
|
## Migration (genomförd 2026-05-08)
|
|
55
83
|
|
|
56
84
|
Båda repos genomgick **selector-för-selector-radering**, inte big-bang:
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# 0007 - .banner-body migration i sync_result.html
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
Pending, låg prioritet.
|
|
5
|
+
|
|
6
|
+
## Context
|
|
7
|
+
|
|
8
|
+
`app/templates/sync_result.html` använder `.banner-body` på två rader
|
|
9
|
+
(line 29, 36) som child-element i banner-strukturen:
|
|
10
|
+
|
|
11
|
+
```html
|
|
12
|
+
<div class="banner banner--positive">
|
|
13
|
+
<div class="banner__content">
|
|
14
|
+
<div class="banner__title">Synk klar</div>
|
|
15
|
+
<div class="banner-body">{{ map_stats.new }} nya transaktioner...</div>
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
`.banner-body` är **odefinierad** i både `@klodd/ds`-paketet och
|
|
21
|
+
Ekonoms ekonom.css/ekonom-domain.css. Klassen har ingen styling -
|
|
22
|
+
elementet ärver bara från `.banner__content`-parent.
|
|
23
|
+
|
|
24
|
+
Paketets `banner.css` har redan `.banner__sub` som är den BEM-korrekta
|
|
25
|
+
formen för secondary banner-text (12px text-subtle).
|
|
26
|
+
|
|
27
|
+
## Beslut behövs
|
|
28
|
+
|
|
29
|
+
`.banner-body` → `.banner__sub` mekanisk substitution. Visuellt
|
|
30
|
+
innebär det att texten får 12px text-subtle-styling istället för
|
|
31
|
+
default body-styling (subtil förändring, knappast märkbar i banner-
|
|
32
|
+
context där text redan är komprimerat).
|
|
33
|
+
|
|
34
|
+
Inkluderades inte i Sprint C 2026-05-08 rename-map. Två förekomster
|
|
35
|
+
i en enda template, lågprio.
|
|
36
|
+
|
|
37
|
+
## Trigger
|
|
38
|
+
|
|
39
|
+
Migrera nästa gång sync_result.html ändras ändå (sprint som rör
|
|
40
|
+
sync-flödet eller banner-utseendet generellt). Mekanisk perl-
|
|
41
|
+
substitution `s/\bbanner-body\b/banner__sub/g`.
|
|
42
|
+
|
|
43
|
+
## References
|
|
44
|
+
|
|
45
|
+
- Sprint C fas 2 batch 2.5 commit `1dc3aec` - notering om dödklassen
|
|
46
|
+
- Ekonom `app/templates/sync_result.html:29,36`
|
|
47
|
+
- `@klodd/ds/css/components/banner.css` - `.banner__sub`-definition
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# 0008 - .hbar-* dash → BEM-migration i Ekonom
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
Pending, låg prioritet.
|
|
5
|
+
|
|
6
|
+
## Context
|
|
7
|
+
|
|
8
|
+
`app/templates/upload_preview.html` använder dash-form `.hbar-*`-
|
|
9
|
+
klasser för horisontell bar-chart i CSV-import-flödet:
|
|
10
|
+
|
|
11
|
+
```html
|
|
12
|
+
<div class="hbar-item">
|
|
13
|
+
<div class="hbar-label">{{ g.label }}</div>
|
|
14
|
+
<div class="hbar-track">
|
|
15
|
+
<div class="hbar-fill" data-bar-width="..."></div>
|
|
16
|
+
</div>
|
|
17
|
+
<div class="hbar-value">{{ g.sum | sek_cost }} ({{ g.count }})</div>
|
|
18
|
+
</div>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Paketets `@klodd/ds/css/components/hbar.css` har BEM-formen redan:
|
|
22
|
+
`.hbar`, `.hbar__item`, `.hbar__track`, `.hbar__fill`, `.hbar__label`,
|
|
23
|
+
`.hbar__value`, `.hbar__fill--positive/-warning/-negative`.
|
|
24
|
+
|
|
25
|
+
Dash-formen är definierad i `ekonom.css` ("CHARTS"-sektionen) som
|
|
26
|
+
parallell-styling till paketets BEM. Detta är **dubbel-styling** som
|
|
27
|
+
ADR 0009 förbjuder för komponent-CSS.
|
|
28
|
+
|
|
29
|
+
Inkluderades inte i Sprint C 2026-05-08 rename-map (sektion A
|
|
30
|
+
listade inte hbar-mappningar). Endast 1 template (upload_preview.html)
|
|
31
|
+
använder dash-formen.
|
|
32
|
+
|
|
33
|
+
## Beslut behövs
|
|
34
|
+
|
|
35
|
+
Mekanisk substitution:
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
.hbar-item → .hbar__item
|
|
39
|
+
.hbar-label → .hbar__label
|
|
40
|
+
.hbar-track → .hbar__track
|
|
41
|
+
.hbar-fill → .hbar__fill
|
|
42
|
+
.hbar-value → .hbar__value
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Plus radera dash-form-definitionerna ur `ekonom.css` CHARTS-sektionen
|
|
46
|
+
för att eliminera dubbel-styling och uppfylla ADR 0009 fullt ut.
|
|
47
|
+
|
|
48
|
+
## Trigger
|
|
49
|
+
|
|
50
|
+
Migrera nästa gång upload_preview.html ändras ändå (sprint som rör
|
|
51
|
+
CSV-import-flödet). Eller som del av nästa minor-version cleanup-
|
|
52
|
+
sprint.
|
|
53
|
+
|
|
54
|
+
## References
|
|
55
|
+
|
|
56
|
+
- Sprint C fas 2 batch 2.2 commit `b81f1e0` - notering om hbar-
|
|
57
|
+
klasser ej i scope
|
|
58
|
+
- Ekonom `app/templates/upload_preview.html:43-51`
|
|
59
|
+
- Ekonom `app/static/css/ds/ekonom.css` CHARTS-sektion
|
|
60
|
+
- `@klodd/ds/css/components/hbar.css` - BEM-definition
|
|
61
|
+
- ADR 0009 - locked decision om inga dubbel-stylings
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# 0009 - ekonom.css LEGACY-sektion cleanup
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
Pending, medel prioritet.
|
|
5
|
+
|
|
6
|
+
## Context
|
|
7
|
+
|
|
8
|
+
`app/static/css/ds/ekonom.css` har en LEGACY-sektion (~200 rader,
|
|
9
|
+
18 klasser) som lyftes från `components.css` i Sprint C cleanup
|
|
10
|
+
(2026-05-09, commit `5bbe44e`). Klasserna är aktivt använda i
|
|
11
|
+
templates men saknade paket-ekvivalent vid Sprint C-tidpunkten.
|
|
12
|
+
|
|
13
|
+
Klasser i LEGACY-sektionen:
|
|
14
|
+
|
|
15
|
+
| Klass | Användning | Generaliserbar? |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| `.topbar-logo` | 11 templates - app-namn i topbar | Ja, paketet har redan `.topbar-back/-title/-action` men inte `-logo` |
|
|
18
|
+
| `.kv-list` family (.kv-list, .kv-strong, .kv-sub, .kv-divider) | 6 förekomster /avstamning + bolan | Ja, generic key-value-list-pattern |
|
|
19
|
+
| `.kv-budget-row, .kv-budget-header, .kv-budget-body` | 3 förekomster /avstamning | Möjligen - collapsible-row med metric-burndown |
|
|
20
|
+
| `.btn-copy, .btn-bank` | 2 unika /avstamning + bolan | Tveksamt - Klarna-stil specifik. Kan ev. lyftas som `.btn--icon-circle` med modifier |
|
|
21
|
+
| `.btn--positive` | 1 review_queue.html | Ja, paketet har `.btn--primary/-secondary/-ghost/-danger` men inte `-positive` (skulle komplettera variant-set) |
|
|
22
|
+
| `.bank-row-icon` | 1 /installningar/data | Möjligen - generic "status-icon-leading-element" pattern |
|
|
23
|
+
| `.profile-panel-centered` | 1 /jag | Tveksamt - Ekonom-specifik panel-layout |
|
|
24
|
+
| `.rule-arrow, .rule-cat` | 1 /installningar/auto-kategorisering | Tveksamt - regel-rad-styling (keyword → kategori) |
|
|
25
|
+
| `.offline-wrap, .offline-icon, .offline-title, .offline-text` | 1 offline.html | Ja, generic offline-page-pattern (fits paketets hub-card-style empty-state) |
|
|
26
|
+
| `.onboarding-container` | 2 onboarding-templates | Ja, generic max-width-form-container pattern |
|
|
27
|
+
|
|
28
|
+
Sektionen är tydligt markerad som "LEGACY (Sprint C cleanup,
|
|
29
|
+
2026-05-09)" i `ekonom.css` och kommer rivas successivt när
|
|
30
|
+
respektive klass:
|
|
31
|
+
- (a) lyfts till paketet med generiska namn (struktur)
|
|
32
|
+
- (b) eller raderas tillsammans med template-redesign
|
|
33
|
+
|
|
34
|
+
## Beslut behövs
|
|
35
|
+
|
|
36
|
+
Granska varje klass i tabellen ovan vid nästa paket-minor-version och
|
|
37
|
+
fatta beslut: lyft till paketet eller stanna i ekonom.css.
|
|
38
|
+
|
|
39
|
+
**Prioritering vid lyft:**
|
|
40
|
+
|
|
41
|
+
1. **Hög** (generic + multi-template): `.topbar-logo`, `.kv-list`-
|
|
42
|
+
family, `.offline-*`, `.onboarding-container`
|
|
43
|
+
2. **Medel** (generic + low-impact): `.btn--positive`,
|
|
44
|
+
`.bank-row-icon`
|
|
45
|
+
3. **Låg** (tveksam generaliserbarhet): `.btn-copy/.btn-bank`,
|
|
46
|
+
`.profile-panel-centered`, `.rule-arrow/.rule-cat`,
|
|
47
|
+
`.kv-budget-*`
|
|
48
|
+
|
|
49
|
+
## Trigger
|
|
50
|
+
|
|
51
|
+
Nästa paket-minor-version (3.6.0). Vid det tillfället - granska
|
|
52
|
+
LEGACY-sektionen och lyft de generaliserbara klasserna med generiska
|
|
53
|
+
namn.
|
|
54
|
+
|
|
55
|
+
## References
|
|
56
|
+
|
|
57
|
+
- Sprint C cleanup-commit `5bbe44e` (Ekonom) - components.css raderad,
|
|
58
|
+
LEGACY-sektion etablerad i ekonom.css
|
|
59
|
+
- ADR 0009 (locked) "Skärpning 2026-05-09" - stadgar att struktur
|
|
60
|
+
går till paketet, ekonom-domain håller bara data
|
|
61
|
+
- `~/dev/Ekonom/app/static/css/ds/ekonom.css` - LEGACY-sektionen
|
|
62
|
+
börjar efter logout-row-blocket
|
|
63
|
+
- @klodd/ds 3.5.3 (current) - inte uppdaterad med dessa klasser
|