@skagerakenergi/design 0.8.0 → 0.10.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.
- package/INSTRUCTIONS.md +142 -3
- package/README.md +3 -0
- package/dist/brand/logo.css +117 -0
- package/dist/brand/skagerak.svg +14 -0
- package/dist/layout.css +21 -2
- package/package.json +3 -1
package/INSTRUCTIONS.md
CHANGED
|
@@ -930,6 +930,7 @@ Provides spacing utilities, breakpoint classes, responsive margins, an app shell
|
|
|
930
930
|
|
|
931
931
|
Implements the M3 navigation region + body region window split. Required whenever `se-nav-rail` is used.
|
|
932
932
|
|
|
933
|
+
**Pattern A — simple body** (content scrolls as one unit):
|
|
933
934
|
```html
|
|
934
935
|
<div class="se-app-shell">
|
|
935
936
|
<nav class="se-nav-rail" aria-label="Main navigation">…</nav>
|
|
@@ -937,12 +938,25 @@ Implements the M3 navigation region + body region window split. Required wheneve
|
|
|
937
938
|
</div>
|
|
938
939
|
```
|
|
939
940
|
|
|
941
|
+
**Pattern B — fixed header + scrollable content + fixed footer**:
|
|
942
|
+
```html
|
|
943
|
+
<div class="se-app-shell">
|
|
944
|
+
<nav class="se-nav-rail" aria-label="Main navigation">…</nav>
|
|
945
|
+
<div class="se-app-shell__body">
|
|
946
|
+
<header class="se-app-bar">…</header>
|
|
947
|
+
<main class="se-app-shell__content">…</main>
|
|
948
|
+
<footer class="se-toolbar se-toolbar--docked">…</footer>
|
|
949
|
+
</div>
|
|
950
|
+
</div>
|
|
951
|
+
```
|
|
952
|
+
|
|
940
953
|
| Class | Properties |
|
|
941
954
|
|-------|-----------|
|
|
942
|
-
| `.se-app-shell` | `display: flex; height: 100dvh; overflow: hidden` — height-constrained flex shell |
|
|
943
|
-
| `.se-app-shell__body` | `flex: 1 1 0; overflow-y: auto; min-width: 0` —
|
|
955
|
+
| `.se-app-shell` | `display: flex; height: 100dvh; overflow: hidden` — height-constrained row flex shell |
|
|
956
|
+
| `.se-app-shell__body` | `flex: 1 1 0; display: flex; flex-direction: column; overflow-y: auto; min-width: 0` — column flex body; scrolls all children when no `__content` child |
|
|
957
|
+
| `.se-app-shell__content` | `flex: 1 1 0; overflow-y: auto; min-width: 0` — scrollable middle region; use alongside a fixed header/footer |
|
|
944
958
|
|
|
945
|
-
The nav component occupies the left column at its own fixed width; the body fills the rest. On compact, hide the rail with `.se-show-medium` and the body spans full width automatically.
|
|
959
|
+
The nav component occupies the left column at its own fixed width; the body fills the rest. On compact, hide the rail with `.se-show-medium` and the body spans full width automatically. When `se-app-shell__content` is present, only the content scrolls — the header and footer are pinned at their natural heights.
|
|
946
960
|
|
|
947
961
|
#### Canonical layouts
|
|
948
962
|
|
|
@@ -1191,3 +1205,128 @@ When using the Figma MCP to generate code from designs:
|
|
|
1191
1205
|
</div>
|
|
1192
1206
|
</form>
|
|
1193
1207
|
```
|
|
1208
|
+
|
|
1209
|
+
---
|
|
1210
|
+
|
|
1211
|
+
## Brand components
|
|
1212
|
+
|
|
1213
|
+
Brand components are **not part of the M3 Design System**. They use Skagerak brand-palette custom properties (`--sk-*`) and never consume `--md-sys-*` tokens. They are shipped under the `brand/` path of the package.
|
|
1214
|
+
|
|
1215
|
+
---
|
|
1216
|
+
|
|
1217
|
+
## Logo (`brand/logo.css`)
|
|
1218
|
+
|
|
1219
|
+
Spec: `.specs/logo.md` · Brandmaster: https://cloud.brandmaster.com/point/no/skbc/component/default/33709
|
|
1220
|
+
|
|
1221
|
+
Self-contained, scalable Skagerak group logo. A single `font-size` on `.sk-logo` controls all internal proportions — emblem size, gap, and type — as `em`-based values. Clear-space (½ × symbol diameter) is applied automatically as `padding`.
|
|
1222
|
+
|
|
1223
|
+
### Import
|
|
1224
|
+
|
|
1225
|
+
```css
|
|
1226
|
+
@import '@skagerakenergi/design/brand/logo.css';
|
|
1227
|
+
```
|
|
1228
|
+
|
|
1229
|
+
### Font
|
|
1230
|
+
|
|
1231
|
+
The logo uses **Libre Franklin** (free substitute for Skagerak's licensed ITC Franklin Gothic corporate typeface). Load it before the logo CSS:
|
|
1232
|
+
|
|
1233
|
+
```html
|
|
1234
|
+
<link href="https://fonts.googleapis.com/css2?family=Libre+Franklin:wght@400;700&display=swap" rel="stylesheet">
|
|
1235
|
+
```
|
|
1236
|
+
|
|
1237
|
+
Fallback chain: `Libre Franklin` → `ITC Franklin Gothic` (if self-hosted) → `Arial` → `sans-serif`.
|
|
1238
|
+
|
|
1239
|
+
### Canonical markup
|
|
1240
|
+
|
|
1241
|
+
```html
|
|
1242
|
+
<!-- Horizontal (default): emblem left, text right -->
|
|
1243
|
+
<div class="sk-logo sk-logo--md">
|
|
1244
|
+
<img class="sk-logo__mark" src="skagerak.svg" alt="">
|
|
1245
|
+
<div class="sk-logo__text">
|
|
1246
|
+
<span class="sk-logo__brand">Skagerak</span>
|
|
1247
|
+
<span class="sk-logo__subsidiary">Energitjenester</span>
|
|
1248
|
+
</div>
|
|
1249
|
+
</div>
|
|
1250
|
+
|
|
1251
|
+
<!-- Stacked: emblem above, text centered -->
|
|
1252
|
+
<div class="sk-logo sk-logo--md sk-logo--stacked">
|
|
1253
|
+
<img class="sk-logo__mark" src="skagerak.svg" alt="">
|
|
1254
|
+
<div class="sk-logo__text">
|
|
1255
|
+
<span class="sk-logo__brand">Skagerak</span>
|
|
1256
|
+
<span class="sk-logo__subsidiary">Energitjenester</span>
|
|
1257
|
+
</div>
|
|
1258
|
+
</div>
|
|
1259
|
+
|
|
1260
|
+
<!-- Group mark (emblem only, no subsidiary) -->
|
|
1261
|
+
<div class="sk-logo sk-logo--md sk-logo--standalone">
|
|
1262
|
+
<img class="sk-logo__mark" src="skagerak.svg" alt="Skagerak Energi">
|
|
1263
|
+
<div class="sk-logo__text">
|
|
1264
|
+
<span class="sk-logo__brand">Skagerak</span>
|
|
1265
|
+
</div>
|
|
1266
|
+
</div>
|
|
1267
|
+
```
|
|
1268
|
+
|
|
1269
|
+
### Class API
|
|
1270
|
+
|
|
1271
|
+
| Class | Element | Description |
|
|
1272
|
+
|---|---|---|
|
|
1273
|
+
| `sk-logo` | Root `<div>` | Scaling anchor. Set `font-size` here. |
|
|
1274
|
+
| `sk-logo__mark` | `<img>` | Circular emblem. Always 2.8em × 2.8em. |
|
|
1275
|
+
| `sk-logo__text` | `<div>` | Wraps brand + subsidiary spans. |
|
|
1276
|
+
| `sk-logo__brand` | `<span>` | "Skagerak" — always present, title case, bold. |
|
|
1277
|
+
| `sk-logo__subsidiary` | `<span>` | Subsidiary name — optional. |
|
|
1278
|
+
|
|
1279
|
+
### Orientation modifiers
|
|
1280
|
+
|
|
1281
|
+
| Modifier | Description |
|
|
1282
|
+
|---|---|
|
|
1283
|
+
| `sk-logo--stacked` | Emblem centered above text block |
|
|
1284
|
+
| `sk-logo--standalone` | Emblem only — text block hidden |
|
|
1285
|
+
| `sk-logo--on-dark` | White text; emblem unchanged. Use on coloured/dark surfaces **inside a light-themed app**. Not needed when the M3 theme engine is already in dark mode (see below). |
|
|
1286
|
+
|
|
1287
|
+
> **M3 dark-mode integration** — The logo automatically uses white text in all three M3 dark contexts, with no extra class needed:
|
|
1288
|
+
> 1. **OS dark mode** — `@media (prefers-color-scheme: dark)`
|
|
1289
|
+
> 2. **M3 theme class** — `.dark`, `.dark-medium-contrast`, or `.dark-high-contrast` on any ancestor
|
|
1290
|
+
> 3. **Explicit override** — `.sk-logo--on-dark` (for a dark surface inside a light-themed app)
|
|
1291
|
+
|
|
1292
|
+
### Size modifiers
|
|
1293
|
+
|
|
1294
|
+
| Modifier | `font-size` |
|
|
1295
|
+
|---|---|
|
|
1296
|
+
| `sk-logo--xs` | 10px |
|
|
1297
|
+
| `sk-logo--sm` | 14px |
|
|
1298
|
+
| `sk-logo--md` | 18px |
|
|
1299
|
+
| `sk-logo--lg` | 24px |
|
|
1300
|
+
| `sk-logo--xl` | 36px |
|
|
1301
|
+
|
|
1302
|
+
Omit the size modifier to inherit `font-size` from the surrounding context.
|
|
1303
|
+
|
|
1304
|
+
### Custom properties
|
|
1305
|
+
|
|
1306
|
+
| Property | Default | Description |
|
|
1307
|
+
|---|---|---|
|
|
1308
|
+
| `--sk-logo-brand-color` | `#575756` | "Skagerak" wordmark text (Text Grey) |
|
|
1309
|
+
| `--sk-logo-subsidiary-color` | `#7a6f69` | Subsidiary name text (Secondary Grey) |
|
|
1310
|
+
| `--sk-logo-mark-filter` | `none` | Optional CSS filter override for the emblem (advanced use only; not used by any built-in modifier) |
|
|
1311
|
+
| `--sk-logo-clear-space` | `1.4em` | Padding on all sides — ½ × symbol diameter per brand guidelines |
|
|
1312
|
+
|
|
1313
|
+
### Subsidiary variants
|
|
1314
|
+
|
|
1315
|
+
| Subsidiary | `sk-logo__subsidiary` text |
|
|
1316
|
+
|---|---|
|
|
1317
|
+
| Skagerak Energitjenester | `Energitjenester` |
|
|
1318
|
+
| Skagerak Kraft | `Kraft` |
|
|
1319
|
+
| Skagerak Varme | `Varme` |
|
|
1320
|
+
| Skagerak Arena | `Arena` |
|
|
1321
|
+
| Group mark | Omit `sk-logo__subsidiary`; add `sk-logo--standalone` |
|
|
1322
|
+
|
|
1323
|
+
### Palette
|
|
1324
|
+
|
|
1325
|
+
| Name | Hex | Usage |
|
|
1326
|
+
|---|---|---|
|
|
1327
|
+
| Dark Grey | `#7a6f69` | All wordmark text — brand name and subsidiary (`--sk-logo-brand-color` + `--sk-logo-subsidiary-color` defaults) |
|
|
1328
|
+
| Statkraft Blue | `#00b0dc` | Primary brand accent |
|
|
1329
|
+
| Statkraft Blue 50 | `#80daf3` | Tint |
|
|
1330
|
+
| Statkraft Blue 15 | `#daf4fc` | Light tint |
|
|
1331
|
+
| Dark Blue | `#005088` | Deep accent |
|
|
1332
|
+
| Text Blue | `#008db6` | UI text on light backgrounds |
|
package/README.md
CHANGED
|
@@ -292,6 +292,9 @@ Loading indicator shape asset (avoids inlining the large SVG path data):
|
|
|
292
292
|
- `loading-indicator-shapes.svg` — import with `?raw` in Vite-based projects
|
|
293
293
|
- `loading-indicator-shapes.js` — ESM export (`loadingIndicatorShapesSvg: string`) for non-Vite environments
|
|
294
294
|
|
|
295
|
+
Brand components (not part of M3 — use Skagerak brand palette, no M3 tokens required):
|
|
296
|
+
- `brand/logo.css` — Skagerak group logo (`sk-logo`, `sk-logo__mark`, `sk-logo__brand`, `sk-logo__subsidiary`)
|
|
297
|
+
|
|
295
298
|
## Figma Code Connect
|
|
296
299
|
|
|
297
300
|
This project uses [Figma Code Connect](https://github.com/figma/code-connect) to link Figma component instances to the corresponding HTML/CSS snippets so designers see real code in the Figma Dev Mode inspector.
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/* ─────────────────────────────────────────────────────────────────
|
|
2
|
+
Skagerak Logo — standalone brand component
|
|
3
|
+
Not part of the M3 Design System. Does not consume M3 tokens.
|
|
4
|
+
Reference: .specs/logo.md
|
|
5
|
+
Brandmaster: https://cloud.brandmaster.com/point/no/skbc/component/default/33709
|
|
6
|
+
───────────────────────────────────────────────────────────────── */
|
|
7
|
+
|
|
8
|
+
.sk-logo {
|
|
9
|
+
/* ── Scaling anchor ───────────────────────────────────────────
|
|
10
|
+
Set font-size here (or on an ancestor) to resize everything.
|
|
11
|
+
All internal dimensions are em-based so the whole lockup —
|
|
12
|
+
emblem, gap, type — scales proportionally as one unit. */
|
|
13
|
+
font-size: inherit;
|
|
14
|
+
|
|
15
|
+
/* ── Clear-space ──────────────────────────────────────────────
|
|
16
|
+
Brand guidelines: ½ × symbol diameter (2.8em) = 1.4em.
|
|
17
|
+
Override --sk-logo-clear-space to adjust without touching
|
|
18
|
+
layout code. */
|
|
19
|
+
--sk-logo-clear-space: 1.4em;
|
|
20
|
+
padding: var(--sk-logo-clear-space);
|
|
21
|
+
|
|
22
|
+
display: inline-flex;
|
|
23
|
+
align-items: center;
|
|
24
|
+
gap: 0.6em;
|
|
25
|
+
|
|
26
|
+
/* ITC Franklin Gothic is the official Skagerak typeface (licensed).
|
|
27
|
+
Libre Franklin (Google Fonts, OFL) is the free web substitute.
|
|
28
|
+
Load: https://fonts.googleapis.com/css2?family=Libre+Franklin:wght@400;700&display=swap */
|
|
29
|
+
font-family: 'Libre Franklin', 'ITC Franklin Gothic', Arial, sans-serif;
|
|
30
|
+
line-height: 1.1;
|
|
31
|
+
white-space: nowrap;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* ── Emblem (circular Skagerak mark) ───────────────────────────── */
|
|
35
|
+
.sk-logo__mark {
|
|
36
|
+
display: block;
|
|
37
|
+
width: 2.8em;
|
|
38
|
+
height: 2.8em;
|
|
39
|
+
flex-shrink: 0;
|
|
40
|
+
object-fit: contain;
|
|
41
|
+
/* Override to apply monochrome filter on dark backgrounds:
|
|
42
|
+
--sk-logo-mark-filter: brightness(0) invert(1) */
|
|
43
|
+
filter: var(--sk-logo-mark-filter, none);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* ── Text block ────────────────────────────────────────────────── */
|
|
47
|
+
.sk-logo__text {
|
|
48
|
+
display: flex;
|
|
49
|
+
flex-direction: column;
|
|
50
|
+
gap: 0.05em;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* "Skagerak" — title case, bold */
|
|
54
|
+
.sk-logo__brand {
|
|
55
|
+
font-size: 1em;
|
|
56
|
+
font-weight: 700;
|
|
57
|
+
letter-spacing: 0.02em;
|
|
58
|
+
/* Title case — do NOT override with text-transform: uppercase */
|
|
59
|
+
color: var(--sk-logo-brand-color, #7a6f69);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/* Subsidiary name — "Energitjenester", "Kraft", etc. */
|
|
63
|
+
.sk-logo__subsidiary {
|
|
64
|
+
font-size: 0.85em;
|
|
65
|
+
font-weight: 400;
|
|
66
|
+
letter-spacing: 0.02em;
|
|
67
|
+
color: var(--sk-logo-subsidiary-color, #7a6f69);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/* ── Orientation modifiers ─────────────────────────────────────── */
|
|
71
|
+
|
|
72
|
+
/* Stacked: emblem centered above text block */
|
|
73
|
+
.sk-logo--stacked {
|
|
74
|
+
flex-direction: column;
|
|
75
|
+
align-items: center;
|
|
76
|
+
text-align: center;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/* Standalone: emblem only — used without a text block */
|
|
80
|
+
.sk-logo--standalone .sk-logo__text {
|
|
81
|
+
display: none;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/* On-dark: white text, emblem unchanged.
|
|
85
|
+
* Three equivalent ways to activate:
|
|
86
|
+
* 1. Automatic — OS is in dark mode (@media prefers-color-scheme: dark)
|
|
87
|
+
* 2. M3 theme class — an ancestor carries .dark / .dark-medium-contrast / .dark-high-contrast
|
|
88
|
+
* 3. Explicit modifier — .sk-logo--on-dark (for dark surfaces inside a light-themed app)
|
|
89
|
+
*/
|
|
90
|
+
|
|
91
|
+
/* 1 — OS dark mode */
|
|
92
|
+
@media (prefers-color-scheme: dark) {
|
|
93
|
+
.sk-logo {
|
|
94
|
+
--sk-logo-brand-color: #ffffff;
|
|
95
|
+
--sk-logo-subsidiary-color: #ffffff;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/* 2 — M3 theme class on any ancestor */
|
|
100
|
+
:is(.dark, .dark-medium-contrast, .dark-high-contrast) .sk-logo {
|
|
101
|
+
--sk-logo-brand-color: #ffffff;
|
|
102
|
+
--sk-logo-subsidiary-color: #ffffff;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* 3 — Explicit modifier (forced dark surface regardless of theme) */
|
|
106
|
+
.sk-logo--on-dark {
|
|
107
|
+
--sk-logo-brand-color: #ffffff;
|
|
108
|
+
--sk-logo-subsidiary-color: #ffffff;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/* ── Size presets ──────────────────────────────────────────────── */
|
|
112
|
+
/* All proportions remain identical — only the root size changes. */
|
|
113
|
+
.sk-logo--xs { font-size: 10px; }
|
|
114
|
+
.sk-logo--sm { font-size: 14px; }
|
|
115
|
+
.sk-logo--md { font-size: 18px; }
|
|
116
|
+
.sk-logo--lg { font-size: 24px; }
|
|
117
|
+
.sk-logo--xl { font-size: 36px; }
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<svg width="45" height="45" viewBox="0 0 45 45" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
2
|
+
<mask id="mask0_214_85" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="45" height="45">
|
|
3
|
+
<path d="M0.790588 22.4994C0.790588 34.6206 10.6318 44.4494 22.7706 44.4494C34.9118 44.4494 44.7518 34.6206 44.7518 22.4994C44.7518 10.3769 34.9118 0.550659 22.7706 0.550659C10.6318 0.550659 0.790588 10.3769 0.790588 22.4994Z" fill="white"/>
|
|
4
|
+
</mask>
|
|
5
|
+
<g mask="url(#mask0_214_85)">
|
|
6
|
+
<path d="M47.3269 -2.06018H-1.74673V47.0134H47.3269V-2.06018Z" fill="url(#pattern0_214_85)"/>
|
|
7
|
+
</g>
|
|
8
|
+
<defs>
|
|
9
|
+
<pattern id="pattern0_214_85" patternContentUnits="objectBoundingBox" width="1" height="1">
|
|
10
|
+
<use xlink:href="#image0_214_85" transform="scale(0.00609756)"/>
|
|
11
|
+
</pattern>
|
|
12
|
+
<image id="image0_214_85" width="164" height="164" preserveAspectRatio="none" xlink:href="data:image/png;base64,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"/>
|
|
13
|
+
</defs>
|
|
14
|
+
<script xmlns=""/></svg>
|
package/dist/layout.css
CHANGED
|
@@ -306,11 +306,21 @@
|
|
|
306
306
|
* height-constrained parent. Without this shell it collapses to zero height
|
|
307
307
|
* in normal document flow.
|
|
308
308
|
*
|
|
309
|
-
*
|
|
309
|
+
* Pattern A — simple body (content directly in __body, body scrolls):
|
|
310
310
|
* <div class="se-app-shell">
|
|
311
|
-
* <nav class="se-nav-rail"
|
|
311
|
+
* <nav class="se-nav-rail">…</nav>
|
|
312
312
|
* <main class="se-app-shell__body">…</main>
|
|
313
313
|
* </div>
|
|
314
|
+
*
|
|
315
|
+
* Pattern B — fixed header + scrollable content + fixed footer:
|
|
316
|
+
* <div class="se-app-shell">
|
|
317
|
+
* <nav class="se-nav-rail">…</nav>
|
|
318
|
+
* <div class="se-app-shell__body">
|
|
319
|
+
* <header class="se-app-bar">…</header>
|
|
320
|
+
* <main class="se-app-shell__content">…</main>
|
|
321
|
+
* <footer class="se-toolbar se-toolbar--docked">…</footer>
|
|
322
|
+
* </div>
|
|
323
|
+
* </div>
|
|
314
324
|
*/
|
|
315
325
|
.se-app-shell {
|
|
316
326
|
display: flex;
|
|
@@ -320,6 +330,15 @@
|
|
|
320
330
|
}
|
|
321
331
|
|
|
322
332
|
.se-app-shell__body {
|
|
333
|
+
flex: 1 1 0;
|
|
334
|
+
display: flex;
|
|
335
|
+
flex-direction: column;
|
|
336
|
+
overflow-y: auto; /* scrolls all children when no __content child is used */
|
|
337
|
+
min-width: 0;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
/* Scrollable middle region — use alongside a fixed header and/or footer */
|
|
341
|
+
.se-app-shell__content {
|
|
323
342
|
flex: 1 1 0;
|
|
324
343
|
overflow-y: auto;
|
|
325
344
|
min-width: 0;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skagerakenergi/design",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"author": "Chris Aurora Neumann Ruud <chrisauroraneumann.ruud@skagerakenergi.no>",
|
|
5
5
|
"description": "Skagerak Energi design system — M3 component library (CSS only)",
|
|
6
6
|
"type": "module",
|
|
@@ -44,6 +44,8 @@
|
|
|
44
44
|
"./loading-indicator-shapes.svg": "./dist/loading-indicator-shapes.svg",
|
|
45
45
|
"./loading-indicator-shapes.js": "./dist/loading-indicator-shapes.js",
|
|
46
46
|
"./layout.css": "./dist/layout.css",
|
|
47
|
+
"./brand/logo.css": "./dist/brand/logo.css",
|
|
48
|
+
"./brand/skagerak.svg": "./dist/brand/skagerak.svg",
|
|
47
49
|
"./index.css": "./dist/index.css"
|
|
48
50
|
},
|
|
49
51
|
"publishConfig": {
|