@klodd/ds 4.5.1 → 5.0.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.
@@ -1,27 +1,55 @@
1
1
  /* ================================================================
2
2
  components/progress.css
3
- Linjär progress-indikator. Status-modifiers for fargning.
3
+ THE bar-komponent (v5.0.0, ADR 0022). Linjär progress-indikator
4
+ med status-modifiers + token-binding för app-specifika kategori-färger.
5
+
6
+ Konsoliderad i v5.0.0 efter Calle's beslut: "Kor en version som har
7
+ en style. Eventuellt kan vi bygga pa den och gora varianter av den.
8
+ Men alla andra kan bytas mot den, eller tas bort och bara visa
9
+ siffra eller inget alls." Tidigare 6 bar-komponenter (hbar, split-
10
+ bar, column-bar, dual-bar, colored-bar, progress) raderade utom
11
+ progress. Apparna migrerade till denna OR till sifferdisplay
12
+ (kv-list / inline-text).
4
13
 
5
14
  Blocks:
6
- .progress - track (wrapper)
15
+ .progress - track (wrapper, fyll-bar background)
7
16
 
8
17
  Element:
9
18
  .progress__bar - fyllning (alltid DOM-child av .progress)
10
19
 
11
- Modifiers:
12
- .progress__bar --success/-warning/-danger
20
+ Modifiers (status-färg på __bar):
21
+ .progress__bar--success
22
+ .progress__bar--warning
23
+ .progress__bar--danger
24
+
25
+ Storlek-modifiers på .progress (track-thickness):
26
+ .progress--thin - 4px (mindre, för tighta layout-kontexter)
27
+ (default) - 6px (standard)
28
+ .progress--thick - 12px (större, för fokuserade visualiseringar)
29
+
30
+ Token-binding för app-specifika kategori-färger:
31
+ <div class="progress">
32
+ <div class="progress__bar cat-mat" data-bar-width="73%"></div>
33
+ </div>
34
+ .cat-mat sätter --bar-accent (definierad i app-domain-CSS).
35
+ .progress__bar prefererar --bar-accent över default --bar-fill-color.
36
+
37
+ Multi-instance composition (var split-bar):
38
+ För segment/staplad användning, lägg flera .progress side-by-side
39
+ inom flex-container ELLER använd inline siffror i kv-list.
40
+
41
+ Vertikal användning (var column-bar):
42
+ För historik-jämförelse, använd kv-list med tabular-nums för
43
+ numerisk presentation. Ingen vertikal-modifier - data är tydligare
44
+ som siffror för historik (Calle 2026-05-14).
13
45
 
14
46
  Bredd via CSP-safe pattern (bar-styles.js applicerar style.width
15
- fran data-bar-width vid runtime):
47
+ från data-bar-width vid runtime):
16
48
  <div class="progress">
17
49
  <div class="progress__bar progress__bar--warning"
18
50
  data-bar-width="73%"></div>
19
51
  </div>
20
52
 
21
- Sprint 4 (3.8.0): .progress-bar omdopt till BEM-element .progress__bar
22
- per kvalitetsbar regel 1 (BEM-konvention). 0 produktions-templates
23
- paverkades - .progress-bar fanns bara i design-showcase.
24
-
25
53
  Respekterar prefers-reduced-motion (transition tas bort).
26
54
  ================================================================ */
27
55
  .progress {
@@ -35,16 +63,21 @@
35
63
  overflow: hidden;
36
64
  }
37
65
 
66
+ .progress--thin { height: var(--space-4); }
67
+ .progress--thick { height: 12px; }
68
+
38
69
  .progress__bar {
39
70
  height: 100%;
40
- background: var(--bar-fill-color);
71
+ /* v5.0.0 (ADR 0022): --bar-accent-binding for app-domain-kategorier.
72
+ Default --bar-fill-color (=--accent-9) om bindning saknas. App-
73
+ domain CSS satter --bar-accent via wrapper-klass (.cat-mat etc). */
74
+ background: var(--bar-accent, var(--bar-fill-color));
41
75
  border-radius: var(--bar-fill-radius);
42
- transition: width var(--dur-base) var(--ease-out);
76
+ transition: var(--bar-fill-transition);
43
77
  }
44
78
 
45
79
  /* Progress-specifika status-modifiers behaller --bg-X (solid status-bg-
46
- tema istallet for --positive/--warning/--negative som ar text-color-
47
- varianter). Medvetet annorlunda fran hbar/split-bar/dual-bar. */
80
+ tema). Override:ar --bar-accent-binding nar applicerad. */
48
81
  .progress__bar--success { background: var(--bg-success); }
49
82
  .progress__bar--warning { background: var(--bg-warning); }
50
83
  .progress__bar--danger { background: var(--bg-danger); }
package/css/index.css CHANGED
@@ -47,8 +47,10 @@
47
47
  @import './components/form.css';
48
48
  @import './components/setting-row.css';
49
49
  @import './components/collapsible.css';
50
- @import './components/hbar.css';
51
- @import './components/split-bar.css';
50
+ /* hbar.css + split-bar.css RADERADE v5.0.0 (ADR 0022) - .progress
51
+ med composition-pattern (label utanfor + .progress) ersatter hbar.
52
+ split-bar ersatt av kv-list (siffror) eller flera .progress
53
+ side-by-side. */
52
54
  @import './components/hero.css';
53
55
  @import './components/chip.css';
54
56
  @import './components/avatar.css';
@@ -64,7 +66,8 @@
64
66
 
65
67
  /* v3.1.0 - generic kategori-monster (token-binding via app-domain-CSS) */
66
68
  @import './components/colored-row.css';
67
- @import './components/colored-bar.css';
69
+ /* colored-bar.css RADERAD v5.0.0 (ADR 0022) - .progress aterkonsolidering
70
+ ovanfor inkorporerar --bar-accent-binding. */
68
71
 
69
72
  /* v3.5.1 - sheet-content (sprint-65 form-monster, generiska BEM-namn) */
70
73
  @import './components/sheet-content.css';
@@ -82,5 +85,7 @@
82
85
  @import './components/icon-circle.css';
83
86
  @import './components/expandable-row.css';
84
87
  @import './components/item-stack.css';
85
- @import './components/column-bar.css';
86
- @import './components/dual-bar.css';
88
+ /* column-bar.css + dual-bar.css RADERADE v5.0.0 (ADR 0022) -
89
+ amorterings-historik visas som kv-list (siffror) istallet for
90
+ vertikala staplar; equity-split visas som tva .progress med
91
+ label-row ovan istallet for dual-bar. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@klodd/ds",
3
- "version": "4.5.1",
3
+ "version": "5.0.0",
4
4
  "description": "Klodd shared design system - tokens, components, JS",
5
5
  "main": "css/index.css",
6
6
  "bin": {
@@ -0,0 +1,147 @@
1
+ # 0022 - Progress = THE bar-komponent (radikal konsolidering)
2
+
3
+ ## Status
4
+ Locked. MAJOR version-bump (5.0.0) - breaking change.
5
+
6
+ ## Context
7
+
8
+ Audit 2026-05-14 (sen kvall, fas 4) inventerade 6 bar-komponenter:
9
+ progress, hbar, split-bar, column-bar, dual-bar, colored-bar. Alla
10
+ loste samma grundproblem (fyll-bar med procent) men med olika
11
+ template-strukturer for olika label-positioner och data-modeller.
12
+
13
+ ADR 0021 (v4.5.0) konsoliderade tokens. Men 6 komponent-namespaces
14
+ kvarstod. Calle's reaktion 2026-05-14: "Jag tycker att manga bars
15
+ ar riktigt markliga om jag ska vara arlig. Kor en version som har
16
+ en style och kan vara 14 progress kanner jag. Eventuellt kan vi bygga
17
+ pa den och gora varianter av den. Men alla andra kan bytas mot den,
18
+ eller tas bort och bara visa siffra eller inget alls."
19
+
20
+ Klar riktning: konsolidera radikalt. Behall .progress, eliminera
21
+ de andra 5.
22
+
23
+ ## Decision
24
+
25
+ **.progress ar THE bar-komponent.** Alla andra raderas. Templates
26
+ migreras till .progress + composition-pattern eller siffror i kv-list.
27
+
28
+ ### Komponent-stat efter
29
+
30
+ **Behalls:**
31
+ - `.progress` + `.progress__bar` (track + fill)
32
+ - Status-modifiers: `.progress__bar--success/--warning/--danger`
33
+ - **Nya storlek-modifiers:** `.progress--thin` (4px), default (6px),
34
+ `.progress--thick` (12px)
35
+ - **Ny token-binding:** `.progress__bar` lasr `--bar-accent` for
36
+ app-domain-kategori-farger (pattern fran ADR 0020)
37
+
38
+ **Raderas:**
39
+ - `.hbar` + element + modifiers
40
+ - `.split-bar` + element + modifiers
41
+ - `.column-bar` + `.column-bar-list` + element
42
+ - `.dual-bar` + element + modifiers
43
+ - `.colored-bar` + storlek/vertical-modifiers
44
+
45
+ ### Migration-mapping per anvandning
46
+
47
+ | Tidigare | Ny implementation | Anvand i |
48
+ |---|---|---|
49
+ | `.hbar` (kategori-utfall med label-rad) | `<div class="cat-bar-row">label + amount</div>` + `.progress` (composition) | kategorier.html, privat.html |
50
+ | `.split-bar` (multi-segment) | `<ul class="kv-list">` med siffror per segment | bolan.html (cost-segments), installningar/var_bostad.html (equity vs debt) |
51
+ | `.split-bar` (2-andelar) | `.progress` med 1 fill (visar primary-andel) | installningar/vart_hushall.html (split-pct) |
52
+ | `.column-bar` (vertikal historik) | `<ul class="kv-list">` med siffror per period | bolan.html (amorterings-historik) |
53
+ | `.dual-bar` (2 vardes med pct) | 2x `.progress` med label-row ovan vardera (composition) | bolan.html (amort vs apprec) |
54
+ | `.colored-bar` (standalone) | `.progress` med .cat-X-binding | aldrig anvant i prod |
55
+
56
+ Generaliserat composition-pattern for label-context:
57
+
58
+ ```html
59
+ <!-- ny "rich progress"-pattern (ersatter hbar) -->
60
+ <div>
61
+ <div class="cat-bar-row">
62
+ <span>{label}</span>
63
+ <span class="text-num ml-auto">{amount}</span>
64
+ </div>
65
+ <div class="progress">
66
+ <div class="progress__bar cat-mat" data-bar-width="{pct}%"></div>
67
+ </div>
68
+ </div>
69
+ ```
70
+
71
+ `.cat-bar-row` ar Ekonom-domain-utility i `ds/ekonom.css` (flex-row
72
+ med gap + align-items center). Andra appar definierar egen
73
+ label-row-pattern.
74
+
75
+ ### Numerisk presentation som default
76
+
77
+ Per Calle: "kan tas bort och bara visa siffra eller inget alls" -
78
+ visualisera siffror inte alltid bar. `.kv-list` (key-value-list)
79
+ ar default for tabular data. Bar BARA nar visuell jamforelse ger
80
+ mervarde (single-fill-progress, kategori-stack).
81
+
82
+ ## Konsekvenser
83
+
84
+ **Bra:**
85
+ - 6 -> 1 bar-komponent. Mental modell ar enkel: "vill du ha en bar?
86
+ anvand .progress".
87
+ - Nya komponenter (--thin/--thick/--bar-accent) ger flexibilitet
88
+ utan ny namespace.
89
+ - Templates blir tydligare (composition-pattern syns explicit).
90
+ - Paket-CSS minskar med ~200 rader (5 filer raderade).
91
+
92
+ **Trade-offs:**
93
+ - BREAKING MAJOR-bump 5.0.0. Alla appar maste migrera templates
94
+ parallellt med paket-bump.
95
+ - Multi-segment split-bar forsvinner som visuell pattern - bolan-
96
+ cost-segments visas nu som siffror (kv-list). Acceptabelt per
97
+ Calle's "siffror eller inget".
98
+ - Vertikal column-bar forsvinner som visuell pattern - amorterings-
99
+ historik visas nu som siffror (kv-list). Acceptabelt.
100
+ - dual-bar's "meta vid sidan"-layout forsvinner. Equity-split visas
101
+ nu som tva separata progress med label-row ovan. Tar mer vertikal
102
+ yta men ar tydligare.
103
+
104
+ ## Migration genomford 2026-05-14
105
+
106
+ **Klodd-ds v4.5.1 -> v5.0.0:**
107
+ - `progress.css` utokad: storlek-modifiers (--thin/--thick) +
108
+ `--bar-accent`-binding pa `__bar`
109
+ - 5 komponentfiler RADERADE: `hbar.css`, `split-bar.css`,
110
+ `column-bar.css`, `dual-bar.css`, `colored-bar.css`
111
+ - `index.css` uppdaterad
112
+
113
+ **Ekonom-templates migrerade (5 filer):**
114
+ - kategorier.html: hbar-loop -> cat-bar-row + progress
115
+ - privat.html: hbar-loop -> cat-bar-row + progress
116
+ - bolan.html: dual-bar -> 2x progress + label-row; split-bar -> kv-list;
117
+ column-bar (history) -> kv-list
118
+ - installningar/vart_hushall.html: split-bar -> progress (single fill)
119
+ - installningar/var_bostad.html: split-bar -> progress (--success)
120
+
121
+ **Ekonoms ds/ekonom.css:**
122
+ - `.cat-bar-list > .hbar` rule -> `> li`
123
+ - `.cat-bar-row` block tillagt (label-row composition-utility)
124
+
125
+ **Ekonoms /design:**
126
+ - Sektioner 22 (colored-bar), 25 (hbar), 32 (split-bar), 46 (column-bar),
127
+ 47 (dual-bar) RADERADE inklusive nav-rader
128
+ - Sektion 14 (Progress) UTOKAD med --thin/--thick/--bar-accent +
129
+ composition-pattern-demo
130
+ - Sektioner 55 + 57 (Local-wrappers, Cat-bindings) uppdaterade att
131
+ visa progress istallet for hbar
132
+
133
+ **Jubbs /design:**
134
+ - Samma 5 sektioner + nav-rader RADERADE (Jubb anvande inte de 5
135
+ i prod-templates - bara /design-styleguide)
136
+
137
+ ## References
138
+
139
+ - ADR 0017 (padding-skala-extended)
140
+ - ADR 0018 (outline-offset-list-rows)
141
+ - ADR 0019 (hero-amount-bem-canonical)
142
+ - ADR 0020 (domain-to-package-lift) - tidigare lift av Ekonom-domain
143
+ - ADR 0021 (bar-shared-tokens) - Steg 1 token-konsolidering
144
+ - Calle's beslut 2026-05-14 (sen kvall): "Kor en version som har en
145
+ style. Eventuellt kan vi bygga pa den och gora varianter av den.
146
+ Men alla andra kan bytas mot den, eller tas bort och bara visa
147
+ siffra eller inget alls."
@@ -1,46 +0,0 @@
1
- /* ================================================================
2
- components/colored-bar.css
3
- Generic horisontell stapel med accentfarg.
4
-
5
- Anvand for: budget-staplar, kategori-staplar, progress med
6
- semantisk farg
7
- Inte for: generisk progress utan kategori (anvand progress.css)
8
-
9
- Mont: app satter --bar-accent pa elementet eller via en
10
- wrapper-klass i app-domain-CSS:
11
-
12
- .my-category { --bar-accent: var(--my-token); }
13
-
14
- <div class="hbar__track">
15
- <div class="colored-bar my-category"></div>
16
- </div>
17
-
18
- Kombineras med .hbar__track for container-struktur. Paketet vet
19
- ingenting om kategorier - appen agar datan + bindningen.
20
- Se references/02-components.md "Kategori-monstret".
21
- ================================================================ */
22
- .colored-bar {
23
- /* v4.5.0 (ADR 0021): konsumerar shared --bar-fill-color istallet for
24
- direkt --accent-9. --bar-accent-binding bevaras for app-domain-tokens. */
25
- background: var(--bar-accent, var(--bar-fill-color));
26
- height: 100%;
27
- border-radius: var(--bar-fill-radius);
28
- transition: width var(--dur-base) var(--ease-out);
29
- }
30
-
31
- /* Storlekar */
32
- .colored-bar--sm { height: var(--space-6); }
33
- .colored-bar--md { height: var(--space-8); }
34
- .colored-bar--lg { height: var(--space-12); }
35
-
36
- /* Vertikal variant - used i charts/dashboards */
37
- .colored-bar--vertical {
38
- width: 100%;
39
- height: var(--bar-accent-height, 100%);
40
- border-radius: var(--radius-full);
41
- transition: height var(--dur-base) var(--ease-out);
42
- }
43
-
44
- @media (prefers-reduced-motion: reduce) {
45
- .colored-bar { transition: none; }
46
- }
@@ -1,78 +0,0 @@
1
- /* ================================================================
2
- components/column-bar.css
3
- Vertikal historik-stapel - en per period (manad, vecka). Visar
4
- tabular-value over baren + label under. Hojd baseras pa fill-
5
- percent (data-bar-height).
6
-
7
- Komplement till .hbar (horisontell). .hbar lampar single-bar med
8
- label+value-rad bredvid; .column-bar staplar manader-kolumner i
9
- en rad sa user kan jamfora over tid.
10
-
11
- Lyft fran Ekonom v4.4.0 (var .amort-bar, ADR 0020).
12
-
13
- Blocks:
14
- .column-bar-list - flex-wrapper for flera column-bars (height 160px)
15
- .column-bar - en kolumn (flex: 1)
16
-
17
- Element:
18
- .column-bar__value - tabular-amount over baren
19
- .column-bar__track - track-container (full kolumn-height)
20
- .column-bar__fill - faktisk faded fill (positive-color default)
21
- .column-bar__label - micro-label under baren
22
- ================================================================ */
23
- .column-bar-list {
24
- display: flex;
25
- gap: var(--space-10);
26
- align-items: flex-end;
27
- height: 160px;
28
- padding: var(--space-16) 0 0;
29
- }
30
-
31
- .column-bar {
32
- flex: 1;
33
- display: flex;
34
- flex-direction: column;
35
- align-items: center;
36
- gap: var(--space-6);
37
- height: 100%;
38
- justify-content: flex-end;
39
- }
40
-
41
- .column-bar__value {
42
- font-size: var(--fs-11);
43
- font-weight: var(--fw-medium);
44
- color: var(--text-subtle);
45
- font-variant-numeric: tabular-nums;
46
- }
47
-
48
- .column-bar__track {
49
- /* v4.5.0 (ADR 0021): per-komponent override av --bar-track-color
50
- (sunken vs default-active) och --bar-track-radius (4px vs full) -
51
- vertikal stapel skulle bli oval med radius-full. */
52
- --bar-track-color: var(--surface-sunken);
53
- --bar-track-radius: var(--radius-4);
54
- width: 100%;
55
- flex: 1;
56
- background: var(--bar-track-color);
57
- border-radius: var(--bar-track-radius);
58
- overflow: hidden;
59
- display: flex;
60
- align-items: flex-end;
61
- min-height: 0;
62
- }
63
-
64
- .column-bar__fill {
65
- width: 100%;
66
- background: var(--bar-fill-color-positive);
67
- border-radius: var(--radius-4);
68
- transition: var(--tr-height-slower);
69
- }
70
-
71
- .column-bar__label {
72
- font-size: var(--fs-11);
73
- color: var(--text-muted);
74
- }
75
-
76
- @media (prefers-reduced-motion: reduce) {
77
- .column-bar__fill { transition: none; }
78
- }
@@ -1,64 +0,0 @@
1
- /* ================================================================
2
- components/dual-bar.css
3
- Horisontell stapel med tva separata fills - en for varje delvarde
4
- (t.ex. amortering vs varde-okning). Skiljer sig fran .split-bar
5
- som ar ETT span med segment; .dual-bar har separata rows fr varje
6
- varde med egen meta-text.
7
-
8
- Typisk anvandning: bolane-formogenhet (amorterat belopp vs
9
- marknadsvarde-uppskattning), portfolio-fordelning, sparmal-progress.
10
-
11
- Lyft fran Ekonom v4.4.0 (var .equity-bar-row + .equity-amort/
12
- .equity-apprec, ADR 0020).
13
-
14
- Blocks:
15
- .dual-bar - rad med track + fill + meta-text
16
-
17
- Element:
18
- .dual-bar__track - track-container (height 12px)
19
- .dual-bar__fill - faktisk fill (positive default)
20
- .dual-bar__meta - hoger-stalld meta-text
21
-
22
- Modifiers:
23
- .dual-bar__fill--amort - positive-color (amortering)
24
- .dual-bar__fill--apprec - accent-color (uppskattning)
25
- ================================================================ */
26
- .dual-bar {
27
- display: flex;
28
- align-items: center;
29
- gap: var(--space-12);
30
- margin-bottom: var(--space-10);
31
- }
32
-
33
- .dual-bar__track {
34
- /* v4.5.0 (ADR 0021): per-komponent override av --bar-track-color
35
- (sunken vs default-active). */
36
- --bar-track-color: var(--surface-sunken);
37
- flex: 1;
38
- height: 12px;
39
- background: var(--bar-track-color);
40
- border-radius: var(--bar-track-radius);
41
- overflow: hidden;
42
- }
43
-
44
- .dual-bar__fill {
45
- height: 100%;
46
- border-radius: var(--bar-fill-radius);
47
- background: var(--bar-fill-color-positive);
48
- transition: var(--tr-width-slower);
49
- }
50
-
51
- .dual-bar__fill--amort { background: var(--bar-fill-color-positive); }
52
- .dual-bar__fill--apprec { background: var(--bar-fill-color); }
53
-
54
- .dual-bar__meta {
55
- display: flex;
56
- flex-direction: column;
57
- align-items: flex-end;
58
- min-width: 5.5rem;
59
- line-height: var(--lh-relaxed);
60
- }
61
-
62
- @media (prefers-reduced-motion: reduce) {
63
- .dual-bar__fill { transition: none; }
64
- }
@@ -1,69 +0,0 @@
1
- /* ================================================================
2
- components/hbar.css
3
- Horisontell bar - generic single-bar med label + value + track + fill.
4
- Anvands for kategori-utfall, score-distribution, kostnadsfordelningar.
5
-
6
- .hbar ar bas. .hbar__track ar fyllbar bakgrund. .hbar__fill ar
7
- det procent-fyllda overlayet. .hbar__label och .hbar__value ar
8
- text-element under/over baren.
9
-
10
- Bredd pa .hbar__fill satts via data-bar-width + bar-styles.js
11
- (CSP-safe). Manuell override-class kan ocksa anvandas (.hbar__fill-50).
12
- ================================================================ */
13
- .hbar {
14
- display: flex;
15
- flex-direction: column;
16
- gap: var(--space-6);
17
- margin-bottom: var(--space-12);
18
- }
19
-
20
- .hbar__item {
21
- display: flex;
22
- align-items: baseline;
23
- justify-content: space-between;
24
- gap: var(--space-10);
25
- }
26
-
27
- .hbar__label {
28
- font-size: var(--fs-13);
29
- color: var(--text-subtle);
30
- flex: 1;
31
- min-width: 0;
32
- }
33
-
34
- .hbar__value {
35
- font-size: var(--fs-13);
36
- font-weight: var(--fw-medium);
37
- color: var(--text-default);
38
- font-variant-numeric: tabular-nums;
39
- white-space: nowrap;
40
- flex-shrink: 0;
41
- }
42
-
43
- .hbar__track {
44
- width: 100%;
45
- height: var(--space-6);
46
- background: var(--bar-track-color);
47
- border-radius: var(--bar-track-radius);
48
- overflow: hidden;
49
- }
50
-
51
- .hbar__fill {
52
- height: 100%;
53
- /* v4.4.0 (ADR 0020): --bar-accent-binding for app-domain-kategorier.
54
- Default --bar-fill-color (=--accent-9) om bindning saknas. App-domain
55
- CSS satter --bar-accent via wrapper-klass: <div class="hbar__fill cat-mat">.
56
- v4.5.0 (ADR 0021): konsumerar shared --bar-fill-color istallet for
57
- direkt --accent-9. */
58
- background: var(--bar-accent, var(--bar-fill-color));
59
- border-radius: var(--bar-fill-radius);
60
- transition: var(--bar-fill-transition);
61
- }
62
-
63
- .hbar__fill--positive { background: var(--bar-fill-color-positive); }
64
- .hbar__fill--warning { background: var(--bar-fill-color-warning); }
65
- .hbar__fill--negative { background: var(--bar-fill-color-negative); }
66
-
67
- @media (prefers-reduced-motion: reduce) {
68
- .hbar__fill { transition: none; }
69
- }
@@ -1,55 +0,0 @@
1
- /* ================================================================
2
- components/split-bar.css
3
- Visuell proportionsbar dar tva eller flera segment delar baren.
4
- Anvands for cost-split (vem betalar), debt-vs-equity, time-allocation.
5
-
6
- Modell: .split-bar har N stycken .split-bar__segment som tillsammans
7
- fyller 100%. Brett valbart segment satts genom data-bar-width-pattern
8
- eller manuella width-classes.
9
- ================================================================ */
10
- .split-bar {
11
- display: flex;
12
- height: 8px;
13
- border-radius: var(--bar-track-radius);
14
- overflow: hidden;
15
- background: var(--bar-track-color);
16
- margin: var(--space-8) 0 var(--space-12);
17
- }
18
-
19
- .split-bar__segment {
20
- height: 100%;
21
- transition: var(--bar-fill-transition);
22
- }
23
-
24
- /* v4.5.0 (ADR 0021): segments konsumerar shared --bar-fill-color-X.
25
- --secondary anvander --text-disabled (gray-out-look, inte stadard-color). */
26
- .split-bar__segment--primary { background: var(--bar-fill-color); }
27
- .split-bar__segment--secondary { background: var(--text-disabled); flex: 1; }
28
- .split-bar__segment--positive { background: var(--bar-fill-color-positive); }
29
- .split-bar__segment--negative { background: var(--bar-fill-color-negative); }
30
- .split-bar__segment--warning { background: var(--bar-fill-color-warning); }
31
-
32
- .split-bar__label {
33
- font-size: var(--fs-13);
34
- color: var(--text-subtle);
35
- margin: 0 0 var(--space-6);
36
- line-height: var(--lh-snug);
37
- }
38
-
39
- .split-bar__label strong {
40
- color: var(--text-default);
41
- font-weight: var(--fw-medium);
42
- }
43
-
44
- .split-bar__labels {
45
- display: flex;
46
- justify-content: space-between;
47
- gap: var(--space-10);
48
- margin-top: var(--space-6);
49
- font-size: var(--fs-12);
50
- color: var(--text-subtle);
51
- }
52
-
53
- @media (prefers-reduced-motion: reduce) {
54
- .split-bar__segment { transition: none; }
55
- }