@sb1/ffe-core 29.1.4 → 29.3.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/README.md CHANGED
@@ -14,9 +14,9 @@ npm install --save-dev less less-plugin-npm-import # less-plugin is optional,
14
14
 
15
15
  Full documentation on usage is available at:
16
16
 
17
- https://design.sparebank1.no/komponenter/typografi/
18
- https://design.sparebank1.no/profil/farger/
19
- https://design.sparebank1.no/profil/spacing/
17
+ * https://design.sparebank1.no/komponenter/typografi/
18
+ * https://design.sparebank1.no/profil/farger/
19
+ * https://design.sparebank1.no/profil/spacing/
20
20
 
21
21
  ```less
22
22
  /* Your project's main .less import file */
@@ -44,6 +44,14 @@ parts you require if you want:
44
44
  @import '~@sb1/ffe-core/less/accessibility';
45
45
  ```
46
46
 
47
+ ### Importing compiled CSS
48
+
49
+ If your project does not use Less, you can import the compiled styling:
50
+
51
+ ```css
52
+ @import '~@sb1/ffe-core/css/ffe.css';
53
+ ```
54
+
47
55
  ## Theming with CSS custom properties
48
56
 
49
57
  Theming of components is supported through a set of custom properties, defined in a `less/theme.less` file in every styling package. The properties in `ffe-core` constitute a base theme, which is in turn used as default values in other packages. You may override the properties in each individual package in order to customize a single component, or override the properties defined in `ffe-core` to customize a sitewide theme.
package/css/ffe.css ADDED
@@ -0,0 +1,1022 @@
1
+ /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
2
+
3
+ /* Document
4
+ ========================================================================== */
5
+
6
+ /**
7
+ * 1. Correct the line height in all browsers.
8
+ * 2. Prevent adjustments of font size after orientation changes in iOS.
9
+ */
10
+
11
+ html,
12
+ :host {
13
+ line-height: 1.15; /* 1 */
14
+ -webkit-text-size-adjust: 100%;
15
+ -moz-text-size-adjust: 100%;
16
+ -ms-text-size-adjust: 100%;
17
+ text-size-adjust: 100%; /* 2 */
18
+ }
19
+
20
+ /* Sections
21
+ ========================================================================== */
22
+
23
+ /**
24
+ * Remove the margin in all browsers.
25
+ */
26
+
27
+ body {
28
+ margin: 0;
29
+ }
30
+
31
+ /**
32
+ * Render the `main` element consistently in IE.
33
+ */
34
+
35
+ main {
36
+ display: block;
37
+ }
38
+
39
+ /**
40
+ * Correct the font size and margin on `h1` elements within `section` and
41
+ * `article` contexts in Chrome, Firefox, and Safari.
42
+ */
43
+
44
+ h1 {
45
+ font-size: 2em;
46
+ margin: 0.67em 0;
47
+ }
48
+
49
+ /* Grouping content
50
+ ========================================================================== */
51
+
52
+ /**
53
+ * 1. Add the correct box sizing in Firefox.
54
+ * 2. Show the overflow in Edge and IE.
55
+ */
56
+
57
+ hr {
58
+ -webkit-box-sizing: content-box;
59
+ box-sizing: content-box; /* 1 */
60
+ height: 0; /* 1 */
61
+ overflow: visible; /* 2 */
62
+ }
63
+
64
+ /**
65
+ * 1. Correct the inheritance and scaling of font size in all browsers.
66
+ * 2. Correct the odd `em` font sizing in all browsers.
67
+ */
68
+
69
+ pre {
70
+ font-family: monospace; /* 1 */
71
+ font-size: 1em; /* 2 */
72
+ }
73
+
74
+ /* Text-level semantics
75
+ ========================================================================== */
76
+
77
+ /**
78
+ * Remove the gray background on active links in IE 10.
79
+ */
80
+
81
+ a {
82
+ background-color: transparent;
83
+ }
84
+
85
+ /**
86
+ * 1. Remove the bottom border in Chrome 57-
87
+ * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
88
+ */
89
+
90
+ abbr[title] {
91
+ border-bottom: none; /* 1 */
92
+ text-decoration: underline; /* 2 */
93
+ -webkit-text-decoration: underline dotted;
94
+ text-decoration: underline dotted; /* 2 */
95
+ }
96
+
97
+ /**
98
+ * Add the correct font weight in Chrome, Edge, and Safari.
99
+ */
100
+
101
+ b,
102
+ strong {
103
+ font-weight: bolder;
104
+ }
105
+
106
+ /**
107
+ * 1. Correct the inheritance and scaling of font size in all browsers.
108
+ * 2. Correct the odd `em` font sizing in all browsers.
109
+ */
110
+
111
+ code,
112
+ kbd,
113
+ samp {
114
+ font-family: monospace; /* 1 */
115
+ font-size: 1em; /* 2 */
116
+ }
117
+
118
+ /**
119
+ * Add the correct font size in all browsers.
120
+ */
121
+
122
+ small {
123
+ font-size: 80%;
124
+ }
125
+
126
+ /**
127
+ * Prevent `sub` and `sup` elements from affecting the line height in
128
+ * all browsers.
129
+ */
130
+
131
+ sub,
132
+ sup {
133
+ font-size: 75%;
134
+ line-height: 0;
135
+ position: relative;
136
+ vertical-align: baseline;
137
+ }
138
+
139
+ sub {
140
+ bottom: -0.25em;
141
+ }
142
+
143
+ sup {
144
+ top: -0.5em;
145
+ }
146
+
147
+ /* Embedded content
148
+ ========================================================================== */
149
+
150
+ /**
151
+ * Remove the border on images inside links in IE 10.
152
+ */
153
+
154
+ img {
155
+ border-style: none;
156
+ }
157
+
158
+ /* Forms
159
+ ========================================================================== */
160
+
161
+ /**
162
+ * 1. Change the font styles in all browsers.
163
+ * 2. Remove the margin in Firefox and Safari.
164
+ */
165
+
166
+ button,
167
+ input,
168
+ optgroup,
169
+ select,
170
+ textarea {
171
+ font-family: inherit; /* 1 */
172
+ font-size: 100%; /* 1 */
173
+ line-height: 1.15; /* 1 */
174
+ margin: 0; /* 2 */
175
+ }
176
+
177
+ /**
178
+ * Show the overflow in IE.
179
+ * 1. Show the overflow in Edge.
180
+ */
181
+
182
+ button,
183
+ input {
184
+ /* 1 */
185
+ overflow: visible;
186
+ }
187
+
188
+ /**
189
+ * Remove the inheritance of text transform in Edge, Firefox, and IE.
190
+ * 1. Remove the inheritance of text transform in Firefox.
191
+ */
192
+
193
+ button,
194
+ select {
195
+ /* 1 */
196
+ text-transform: none;
197
+ }
198
+
199
+ /**
200
+ * Correct the inability to style clickable types in iOS and Safari.
201
+ */
202
+
203
+ button,
204
+ [type='button'],
205
+ [type='reset'],
206
+ [type='submit'] {
207
+ -webkit-appearance: button;
208
+ -moz-appearance: button;
209
+ appearance: button;
210
+ }
211
+
212
+ /**
213
+ * Remove the inner border and padding in Firefox.
214
+ */
215
+
216
+ button::-moz-focus-inner,
217
+ [type='button']::-moz-focus-inner,
218
+ [type='reset']::-moz-focus-inner,
219
+ [type='submit']::-moz-focus-inner {
220
+ border-style: none;
221
+ padding: 0;
222
+ }
223
+
224
+ /**
225
+ * Restore the focus styles unset by the previous rule.
226
+ */
227
+
228
+ button:-moz-focusring,
229
+ [type='button']:-moz-focusring,
230
+ [type='reset']:-moz-focusring,
231
+ [type='submit']:-moz-focusring {
232
+ outline: 1px dotted ButtonText;
233
+ }
234
+
235
+ /**
236
+ * Correct the padding in Firefox.
237
+ */
238
+
239
+ fieldset {
240
+ padding: 0.35em 0.75em 0.625em;
241
+ }
242
+
243
+ /**
244
+ * 1. Correct the text wrapping in Edge and IE.
245
+ * 2. Correct the color inheritance from `fieldset` elements in IE.
246
+ * 3. Remove the padding so developers are not caught out when they zero out
247
+ * `fieldset` elements in all browsers.
248
+ */
249
+
250
+ legend {
251
+ -webkit-box-sizing: border-box;
252
+ box-sizing: border-box; /* 1 */
253
+ color: inherit; /* 2 */
254
+ display: table; /* 1 */
255
+ max-width: 100%; /* 1 */
256
+ padding: 0; /* 3 */
257
+ white-space: normal; /* 1 */
258
+ }
259
+
260
+ /**
261
+ * Add the correct vertical alignment in Chrome, Firefox, and Opera.
262
+ */
263
+
264
+ progress {
265
+ vertical-align: baseline;
266
+ }
267
+
268
+ /**
269
+ * Remove the default vertical scrollbar in IE 10+.
270
+ */
271
+
272
+ textarea {
273
+ overflow: auto;
274
+ }
275
+
276
+ /**
277
+ * 1. Add the correct box sizing in IE 10.
278
+ * 2. Remove the padding in IE 10.
279
+ */
280
+
281
+ [type='checkbox'],
282
+ [type='radio'] {
283
+ -webkit-box-sizing: border-box;
284
+ box-sizing: border-box; /* 1 */
285
+ padding: 0; /* 2 */
286
+ }
287
+
288
+ /**
289
+ * Correct the cursor style of increment and decrement buttons in Chrome.
290
+ */
291
+
292
+ [type='number']::-webkit-inner-spin-button,
293
+ [type='number']::-webkit-outer-spin-button {
294
+ height: auto;
295
+ }
296
+
297
+ /**
298
+ * 1. Correct the odd appearance in Chrome and Safari.
299
+ * 2. Correct the outline style in Safari.
300
+ */
301
+
302
+ [type='search'] {
303
+ -webkit-appearance: textfield;
304
+ -moz-appearance: textfield;
305
+ appearance: textfield; /* 1 */
306
+ outline-offset: -2px; /* 2 */
307
+ }
308
+
309
+ /**
310
+ * Remove the inner padding in Chrome and Safari on macOS.
311
+ */
312
+
313
+ [type='search']::-webkit-search-decoration {
314
+ -webkit-appearance: none;
315
+ appearance: none;
316
+ }
317
+
318
+ /**
319
+ * 1. Correct the inability to style clickable types in iOS and Safari.
320
+ * 2. Change font properties to `inherit` in Safari.
321
+ */
322
+
323
+ ::-webkit-file-upload-button {
324
+ -webkit-appearance: button;
325
+ appearance: button; /* 1 */
326
+ font: inherit; /* 2 */
327
+ }
328
+
329
+ /* Interactive
330
+ ========================================================================== */
331
+
332
+ /*
333
+ * Add the correct display in Edge, IE 10+, and Firefox.
334
+ */
335
+
336
+ details {
337
+ display: block;
338
+ }
339
+
340
+ /*
341
+ * Add the correct display in all browsers.
342
+ */
343
+
344
+ summary {
345
+ display: list-item;
346
+ }
347
+
348
+ /* Misc
349
+ ========================================================================== */
350
+
351
+ /**
352
+ * Add the correct display in IE 10+.
353
+ */
354
+
355
+ template {
356
+ display: none;
357
+ }
358
+
359
+ /**
360
+ * Add the correct display in IE 10.
361
+ */
362
+
363
+ [hidden] {
364
+ display: none;
365
+ }
366
+
367
+ /* GAB: Use border-box: http://www.paulirish.com/2012/box-sizing-border-box-ftw/ */
368
+ html,
369
+ :host {
370
+ -webkit-box-sizing: border-box;
371
+ box-sizing: border-box;
372
+ font-size: 100%;
373
+ /* 16 px base in most browsers */
374
+ }
375
+ *,
376
+ *::before,
377
+ *::after {
378
+ -webkit-box-sizing: inherit;
379
+ box-sizing: inherit;
380
+ }
381
+ /* stylelint-disable */
382
+ @supports (font: -apple-system-body) {
383
+ :root:has(.native),
384
+ :host:has(.native) {
385
+ /* must be DIRECTLY applied to the html element */
386
+ font: -apple-system-body;
387
+ }
388
+ }
389
+ /**
390
+ * These variables are intended to support theming of components. Override any value to create your own look and feel.
391
+ */
392
+ :root,
393
+ :host {
394
+ /** Primærpalett */
395
+ --ffe-farge-fjell: #002776;
396
+ --ffe-farge-fjell-70: #4d689f;
397
+ --ffe-farge-fjell-30: #b3bed6;
398
+ --ffe-farge-vann: #005aa4;
399
+ --ffe-farge-vann-70: #4d8cbf;
400
+ --ffe-farge-vann-30: #b3cee4;
401
+ --ffe-farge-sand: #f8e9dd;
402
+ --ffe-farge-sand-70: #faf0e7;
403
+ --ffe-farge-sand-30: #fdf8f5;
404
+ --ffe-farge-frost: #7eb5d2;
405
+ --ffe-farge-frost-70: #a5cbe0;
406
+ --ffe-farge-frost-30: #d8e9f2;
407
+ --ffe-farge-syrin: #d3d3ea;
408
+ --ffe-farge-syrin-70: #e0e0f0;
409
+ --ffe-farge-syrin-30: #f2f2f9;
410
+ /** Støttefarger */
411
+ --ffe-farge-myrull: #fae4e0;
412
+ --ffe-farge-myrull-70: #fcece9;
413
+ --ffe-farge-myrull-30: #fef7f6;
414
+ --ffe-farge-villblomst: #ee8d9c;
415
+ --ffe-farge-villblomst-70: #f3afba;
416
+ --ffe-farge-villblomst-30: #fadde1;
417
+ --ffe-farge-nordlys: #33af85;
418
+ --ffe-farge-nordlys-70: #70c7aa;
419
+ --ffe-farge-nordlys-30: #c2e7da;
420
+ --ffe-farge-lyng: #873953;
421
+ --ffe-farge-lyng-70: #ab7487;
422
+ --ffe-farge-lyng-30: #dbc4cb;
423
+ --ffe-farge-baer: #db3335;
424
+ --ffe-farge-baer-70: #e67072;
425
+ --ffe-farge-baer-30: #f4c2c2;
426
+ --ffe-farge-skog: #00754e;
427
+ --ffe-farge-skog-70: #4d9e83;
428
+ --ffe-farge-skog-30: #b3d6ca;
429
+ --ffe-farge-multe: #f8b181;
430
+ --ffe-farge-multe-70: #fac8a7;
431
+ --ffe-farge-multe-30: #fde8d9;
432
+ --ffe-farge-sol: #dc8000;
433
+ --ffe-farge-sol-70: #e7a64d;
434
+ --ffe-farge-sol-30: #f5d9b3;
435
+ /** Nøytrale farger */
436
+ --ffe-farge-natt: #001032;
437
+ --ffe-farge-svart: #020a0a;
438
+ --ffe-farge-koksgraa: #323232;
439
+ --ffe-farge-moerkgraa: #676767;
440
+ --ffe-farge-graa: #adadad;
441
+ --ffe-farge-lysgraa: #d8d8d8;
442
+ --ffe-farge-moerkvarmgraa: #848383;
443
+ --ffe-farge-varmgraa: #9b9797;
444
+ --ffe-farge-lysvarmgraa: #d7d2cb;
445
+ --ffe-farge-hvit: #fff;
446
+ /** Font sizes */
447
+ --ffe-fontsize-body-text: 1rem;
448
+ --ffe-fontsize-small-text: 0.875rem;
449
+ --ffe-fontsize-micro-text: 0.75rem;
450
+ --ffe-fontsize-lead-paragraph: 1.125rem;
451
+ --ffe-fontsize-sub-lead-paragraph: 1.063rem;
452
+ --ffe-fontsize-h1: 1.75rem;
453
+ --ffe-fontsize-h2: 1.5rem;
454
+ --ffe-fontsize-h3: 1.25rem;
455
+ --ffe-fontsize-h4: 1.125rem;
456
+ --ffe-fontsize-h5: 1.0625rem;
457
+ --ffe-fontsize-h6: 1rem;
458
+ --ffe-fontsize-form-input: 1rem;
459
+ --ffe-fontsize-form-dropdown: 1rem;
460
+ --ffe-fontsize-button: 1rem;
461
+ /** Breakpoints */
462
+ --breakpoint-sm: 480px;
463
+ --breakpoint-md: 768px;
464
+ --breakpoint-lg: 1024px;
465
+ --breakpoint-xl: 1280px;
466
+ /** Dimensions */
467
+ --app-width: 1280px;
468
+ --app-width-min: 320px;
469
+ --app-margin: 20px;
470
+ /** Motion */
471
+ --ffe-ease-in-out-back: cubic-bezier(0.46, -0.265, 0.48, 1.38);
472
+ --ffe-ease: cubic-bezier(0.25, 0.1, 0.25, 1);
473
+ --ffe-transition-duration: 0.2s;
474
+ /** Spacing */
475
+ --ffe-spacing: 8px;
476
+ --ffe-spacing-2xs: 4px;
477
+ --ffe-spacing-xs: 8px;
478
+ --ffe-spacing-sm: 16px;
479
+ --ffe-spacing-md: 24px;
480
+ --ffe-spacing-lg: 32px;
481
+ --ffe-spacing-xl: 40px;
482
+ --ffe-spacing-2xl: 48px;
483
+ --ffe-spacing-3xl: 64px;
484
+ --ffe-spacing-4xl: 80px;
485
+ --ffe-spacing-5xl: 160px;
486
+ /** Theme base colors */
487
+ /* Links, buttons and similar */
488
+ --ffe-g-primary-color: var(--ffe-farge-vann);
489
+ /* Headings, labels, hover, etc */
490
+ --ffe-g-secondary-color: var(--ffe-farge-fjell);
491
+ /* Error messages, invalid inputs, etc */
492
+ --ffe-g-error-color: var(--ffe-farge-baer);
493
+ /** Theme borders */
494
+ /* Form element borders */
495
+ --ffe-g-border-color: var(--ffe-farge-varmgraa);
496
+ --ffe-g-border-radius: 8px;
497
+ --ffe-g-border-width: 1px;
498
+ --ffe-g-border-width-focus: 2px;
499
+ /** Fonts */
500
+ /* Default font */
501
+ --ffe-g-font: 'SpareBank1-regular', arial, sans-serif;
502
+ /* h1 - h2 */
503
+ --ffe-g-font-heading: 'SpareBank1-title-medium', arial, sans-serif;
504
+ /* h3 - h6 */
505
+ --ffe-g-font-heading-small: 'SpareBank1-medium', arial, sans-serif;
506
+ /* Bold text */
507
+ --ffe-g-font-strong: 'SpareBank1-medium', arial, sans-serif;
508
+ /* Emphasized text */
509
+ --ffe-g-font-italic: 'SpareBank1-italic', arial, sans-serif;
510
+ /** Typography */
511
+ /* Default body text color */
512
+ --ffe-g-text-color: var(--ffe-farge-svart);
513
+ /* Lead paragraph */
514
+ --ffe-g-lead-color: var(--ffe-farge-fjell);
515
+ /* Headings */
516
+ --ffe-g-heading-color: var(--ffe-farge-fjell);
517
+ /* Links */
518
+ --ffe-g-link-color: var(--ffe-farge-vann);
519
+ --ffe-g-link-color-hover: var(--ffe-farge-fjell);
520
+ --ffe-g-link-color-visited: var(--ffe-farge-lyng);
521
+ --ffe-g-link-icon-color-hover: var(--ffe-farge-natt);
522
+ --ffe-g-link-icon-color-focus: var(--ffe-farge-vann);
523
+ }
524
+ @media (min-width: 480px) {
525
+ :root,
526
+ :host {
527
+ --ffe-fontsize-lead-paragraph: 1.5rem;
528
+ --ffe-fontsize-sub-lead-paragraph: 1.125rem;
529
+ --ffe-fontsize-h1: 2.5rem;
530
+ --ffe-fontsize-h2: 2rem;
531
+ --ffe-fontsize-h3: 1.688rem;
532
+ --ffe-fontsize-h4: 1.375rem;
533
+ --ffe-fontsize-h5: 1.125rem;
534
+ }
535
+ }
536
+ @media (min-width: 1024px) {
537
+ :root,
538
+ :host {
539
+ --ffe-fontsize-h1: 2.875rem;
540
+ --ffe-fontsize-h2: 2.25rem;
541
+ --ffe-fontsize-h3: 1.75rem;
542
+ }
543
+ }
544
+ @media (prefers-color-scheme: dark) {
545
+ :root .regard-color-scheme-preference,
546
+ :host .regard-color-scheme-preference {
547
+ --ffe-g-primary-color: var(--ffe-farge-vann-70);
548
+ --ffe-g-secondary-color: var(--ffe-farge-vann-70);
549
+ --ffe-g-border-color: var(--ffe-farge-graa);
550
+ --ffe-g-text-color: var(--ffe-farge-lysgraa);
551
+ --ffe-g-lead-color: var(--ffe-farge-vann-70);
552
+ --ffe-g-heading-color: var(--ffe-farge-vann-70);
553
+ --ffe-g-link-color: var(--ffe-farge-vann-70);
554
+ --ffe-g-link-color-hover: var(--ffe-farge-vann-30);
555
+ --ffe-g-link-color-visited: var(--ffe-farge-lyng-70);
556
+ --ffe-g-link-icon-color-hover: var(--ffe-farge-vann-30);
557
+ --ffe-g-link-icon-color-focus: var(--ffe-farge-hvit);
558
+ }
559
+ }
560
+ .ffe-h1 {
561
+ line-height: 2.25rem;
562
+ font-size: var(--ffe-fontsize-h1);
563
+ }
564
+ .ffe-h2 {
565
+ line-height: 1.75rem;
566
+ font-size: var(--ffe-fontsize-h2);
567
+ }
568
+ .ffe-h3 {
569
+ line-height: 1.5rem;
570
+ font-size: var(--ffe-fontsize-h3);
571
+ }
572
+ .ffe-h4 {
573
+ line-height: 1.5rem;
574
+ font-size: var(--ffe-fontsize-h4);
575
+ }
576
+ .ffe-h5 {
577
+ line-height: 1.25rem;
578
+ font-size: var(--ffe-fontsize-h5);
579
+ }
580
+ .ffe-h6 {
581
+ line-height: 1.25rem;
582
+ font-size: var(--ffe-fontsize-h6);
583
+ }
584
+ .ffe-small-text,
585
+ .ffe-micro-text {
586
+ color: var(--ffe-g-text-color);
587
+ font-family: var(--ffe-g-font);
588
+ font-weight: normal;
589
+ font-variant-numeric: tabular-nums;
590
+ line-height: 1.25rem;
591
+ margin: 0;
592
+ }
593
+ .ffe-small-text {
594
+ font-size: var(--ffe-fontsize-small-text);
595
+ }
596
+ .ffe-micro-text {
597
+ font-size: var(--ffe-fontsize-micro-text);
598
+ }
599
+ .ffe-micro-text--strong {
600
+ font-family: var(--ffe-g-font-strong);
601
+ }
602
+ .ffe-h1,
603
+ .ffe-h2,
604
+ .ffe-h3,
605
+ .ffe-h4,
606
+ .ffe-h5,
607
+ .ffe-h6 {
608
+ color: var(--ffe-g-heading-color);
609
+ font-weight: normal;
610
+ margin-bottom: var(--ffe-spacing-xs);
611
+ margin-top: 0;
612
+ text-wrap: balance;
613
+ overflow-wrap: anywhere;
614
+ }
615
+ .ffe-h1--error,
616
+ .ffe-h2--error,
617
+ .ffe-h3--error,
618
+ .ffe-h4--error,
619
+ .ffe-h5--error,
620
+ .ffe-h6--error {
621
+ color: var(--ffe-g-error-color);
622
+ }
623
+ .ffe-h1--inline,
624
+ .ffe-h2--inline,
625
+ .ffe-h3--inline,
626
+ .ffe-h4--inline,
627
+ .ffe-h5--inline,
628
+ .ffe-h6--inline {
629
+ display: inline-block;
630
+ }
631
+ .ffe-h1--no-margin,
632
+ .ffe-h2--no-margin,
633
+ .ffe-h3--no-margin,
634
+ .ffe-h4--no-margin,
635
+ .ffe-h5--no-margin,
636
+ .ffe-h6--no-margin {
637
+ margin: 0;
638
+ }
639
+ .ffe-h1--with-border,
640
+ .ffe-h2--with-border,
641
+ .ffe-h3--with-border,
642
+ .ffe-h4--with-border,
643
+ .ffe-h5--with-border,
644
+ .ffe-h6--with-border {
645
+ border-bottom: 1px solid var(--ffe-farge-lysgraa);
646
+ padding-bottom: var(--ffe-spacing-xs);
647
+ }
648
+ @media (prefers-color-scheme: dark) {
649
+ .regard-color-scheme-preference .ffe-h1--with-border,
650
+ .regard-color-scheme-preference .ffe-h2--with-border,
651
+ .regard-color-scheme-preference .ffe-h3--with-border,
652
+ .regard-color-scheme-preference .ffe-h4--with-border,
653
+ .regard-color-scheme-preference .ffe-h5--with-border,
654
+ .regard-color-scheme-preference .ffe-h6--with-border {
655
+ border-color: var(--ffe-farge-graa);
656
+ }
657
+ }
658
+ .ffe-h1--no-underline,
659
+ .ffe-h2--no-underline,
660
+ .ffe-h3--no-underline,
661
+ .ffe-h4--no-underline,
662
+ .ffe-h5--no-underline,
663
+ .ffe-h6--no-underline {
664
+ text-decoration: none;
665
+ }
666
+ .ffe-h1--text-center,
667
+ .ffe-h2--text-center,
668
+ .ffe-h3--text-center,
669
+ .ffe-h4--text-center,
670
+ .ffe-h5--text-center,
671
+ .ffe-h6--text-center {
672
+ text-align: center;
673
+ }
674
+ .ffe-h1,
675
+ .ffe-h2 {
676
+ font-family: var(--ffe-g-font-heading);
677
+ }
678
+ .ffe-h3,
679
+ .ffe-h4,
680
+ .ffe-h5,
681
+ .ffe-h6 {
682
+ font-family: var(--ffe-g-font-heading-small);
683
+ font-variant-numeric: tabular-nums;
684
+ }
685
+ .ffe-body-text {
686
+ color: var(--ffe-g-text-color);
687
+ font-family: var(--ffe-g-font);
688
+ font-variant-numeric: tabular-nums;
689
+ line-height: 1.5rem;
690
+ font-size: var(--ffe-fontsize-body-text);
691
+ }
692
+ .ffe-body-paragraph {
693
+ font-family: var(--ffe-g-font);
694
+ font-variant-numeric: tabular-nums;
695
+ margin-bottom: 1em;
696
+ margin-top: 0;
697
+ line-height: 1.5rem;
698
+ color: var(--ffe-g-text-color);
699
+ text-wrap: pretty;
700
+ }
701
+ .ffe-body-paragraph--text-center {
702
+ text-align: center;
703
+ }
704
+ .ffe-body-paragraph--text-left {
705
+ text-align: left;
706
+ }
707
+ .ffe-body-paragraph--no-margin {
708
+ margin: 0;
709
+ }
710
+ .ffe-lead-paragraph,
711
+ .ffe-sub-lead-paragraph {
712
+ font-family: var(--ffe-g-font);
713
+ font-variant-numeric: tabular-nums;
714
+ margin-top: 0;
715
+ margin-bottom: 1em;
716
+ text-wrap: pretty;
717
+ }
718
+ .ffe-lead-paragraph {
719
+ color: var(--ffe-g-lead-color);
720
+ line-height: 1.5rem;
721
+ font-size: var(--ffe-fontsize-lead-paragraph);
722
+ }
723
+ .ffe-sub-lead-paragraph {
724
+ color: var(--ffe-g-text-color);
725
+ line-height: 1.5rem;
726
+ font-size: var(--ffe-fontsize-sub-lead-paragraph);
727
+ }
728
+ .ffe-link-text {
729
+ border-bottom: 1px solid var(--ffe-g-link-color);
730
+ color: var(--ffe-g-link-color);
731
+ cursor: pointer;
732
+ text-decoration: none;
733
+ word-wrap: break-all;
734
+ line-height: 1em;
735
+ -webkit-transition: all var(--ffe-transition-duration) var(--ffe-ease);
736
+ -o-transition: all var(--ffe-transition-duration) var(--ffe-ease);
737
+ transition: all var(--ffe-transition-duration) var(--ffe-ease);
738
+ }
739
+ @media (hover: hover) and (pointer: fine) {
740
+ .ffe-link-text:hover {
741
+ border-bottom-color: var(--ffe-g-link-color-hover);
742
+ color: var(--ffe-g-link-color-hover);
743
+ text-decoration: none;
744
+ }
745
+ }
746
+ .ffe-link-text:visited {
747
+ border-bottom-color: var(--ffe-g-link-color-visited);
748
+ color: var(--ffe-g-link-color-visited);
749
+ text-decoration: none;
750
+ }
751
+ .ffe-link-text--no-underline {
752
+ border-bottom: none;
753
+ }
754
+ .ffe-link-text:focus {
755
+ border-color: var(--ffe-farge-hvit);
756
+ color: var(--ffe-farge-hvit);
757
+ border-radius: 1px;
758
+ background-color: var(--ffe-g-link-color);
759
+ -webkit-box-shadow: 0 0 0 2px var(--ffe-g-link-color);
760
+ box-shadow: 0 0 0 2px var(--ffe-g-link-color);
761
+ outline: none;
762
+ }
763
+ @media (prefers-color-scheme: dark) {
764
+ .regard-color-scheme-preference .ffe-link-text:focus {
765
+ border-color: var(--ffe-farge-svart) !important;
766
+ color: var(--ffe-farge-svart) !important;
767
+ }
768
+ }
769
+ .ffe-link-icon {
770
+ fill: var(--ffe-g-link-color);
771
+ display: -webkit-inline-box;
772
+ display: -ms-inline-flexbox;
773
+ display: inline-flex;
774
+ border-radius: 1.5rem;
775
+ border: 2px solid transparent;
776
+ outline: 0;
777
+ padding: var(--ffe-spacing-2xs);
778
+ }
779
+ @media (hover: hover) and (pointer: fine) {
780
+ .ffe-link-icon:hover {
781
+ fill: var(--ffe-g-link-icon-color-hover);
782
+ }
783
+ }
784
+ .ffe-link-icon:focus {
785
+ -webkit-box-shadow: 0 0 0 2px var(--ffe-g-link-icon-color-focus);
786
+ box-shadow: 0 0 0 2px var(--ffe-g-link-icon-color-focus);
787
+ }
788
+ .ffe-divider-line {
789
+ border: none;
790
+ border-bottom: solid 1px var(--ffe-farge-lysgraa);
791
+ padding-top: 1px;
792
+ padding-bottom: 1px;
793
+ width: 100%;
794
+ }
795
+ @media (prefers-color-scheme: dark) {
796
+ .regard-color-scheme-preference .ffe-divider-line {
797
+ border-color: var(--ffe-farge-graa);
798
+ }
799
+ }
800
+ .ffe-strong-text {
801
+ font-family: var(--ffe-g-font-strong);
802
+ font-variant-numeric: tabular-nums;
803
+ font-weight: normal;
804
+ }
805
+ .ffe-em-text {
806
+ font-family: var(--ffe-g-font-italic);
807
+ font-variant-numeric: tabular-nums;
808
+ font-weight: normal;
809
+ font-style: normal;
810
+ }
811
+ .ffe-pre-text {
812
+ background-color: var(--ffe-farge-sand-70);
813
+ font-family: consolas, menlo, monaco, monospace;
814
+ margin: 0;
815
+ text-align: left;
816
+ }
817
+ @media (prefers-color-scheme: dark) {
818
+ .regard-color-scheme-preference .ffe-pre-text {
819
+ background-color: var(--ffe-farge-koksgraa);
820
+ }
821
+ }
822
+ .ffe-inline-separator {
823
+ margin: 0 4px;
824
+ }
825
+ @media (min-width: 480px) {
826
+ .ffe-h1 {
827
+ line-height: 3.5rem;
828
+ }
829
+ .ffe-h2 {
830
+ line-height: 2.75rem;
831
+ }
832
+ .ffe-h3 {
833
+ line-height: 2.25rem;
834
+ }
835
+ .ffe-h4 {
836
+ line-height: 1.75rem;
837
+ }
838
+ .ffe-h5 {
839
+ line-height: 1.5rem;
840
+ }
841
+ .ffe-h6 {
842
+ line-height: 1.25rem;
843
+ }
844
+ .ffe-h1,
845
+ .ffe-h2,
846
+ .ffe-h3,
847
+ .ffe-h4,
848
+ .ffe-h5,
849
+ .ffe-h6 {
850
+ margin-bottom: var(--ffe-spacing-sm);
851
+ }
852
+ .ffe-h1--no-margin,
853
+ .ffe-h2--no-margin,
854
+ .ffe-h3--no-margin,
855
+ .ffe-h4--no-margin,
856
+ .ffe-h5--no-margin,
857
+ .ffe-h6--no-margin {
858
+ margin: 0;
859
+ }
860
+ .ffe-lead-paragraph {
861
+ line-height: 2rem;
862
+ }
863
+ .ffe-sub-lead-paragraph {
864
+ line-height: 1.75rem;
865
+ }
866
+ .ffe-body-text,
867
+ .ffe-body-paragraph {
868
+ line-height: 1.5rem;
869
+ }
870
+ .ffe-small-text {
871
+ line-height: 1.25rem;
872
+ }
873
+ .ffe-micro-text {
874
+ line-height: 1.25rem;
875
+ }
876
+ }
877
+ @media (min-width: 1024px) {
878
+ .ffe-h1,
879
+ .ffe-h2,
880
+ .ffe-h3,
881
+ .ffe-h4,
882
+ .ffe-h5,
883
+ .ffe-h6 {
884
+ margin-bottom: var(--ffe-spacing-md);
885
+ }
886
+ .ffe-h1--no-margin,
887
+ .ffe-h2--no-margin,
888
+ .ffe-h3--no-margin,
889
+ .ffe-h4--no-margin,
890
+ .ffe-h5--no-margin,
891
+ .ffe-h6--no-margin {
892
+ margin: 0;
893
+ }
894
+ }
895
+ .ffe-body-text,
896
+ .ffe-body-paragraph,
897
+ .ffe-lead-paragraph,
898
+ .ffe-sub-lead-paragraph,
899
+ .ffe-link-text,
900
+ .ffe-strong-text,
901
+ .ffe-em-text,
902
+ .ffe-pre-text,
903
+ .ffe-small-text,
904
+ .ffe-micro-text {
905
+ overflow-wrap: anywhere;
906
+ }
907
+ .ffe-body {
908
+ --color: var(--ffe-g-text-color);
909
+ --background-color: var(--ffe-farge-hvit);
910
+ background-color: var(--background-color);
911
+ color: var(--color);
912
+ font-family: var(--ffe-g-font);
913
+ font-variant-numeric: tabular-nums;
914
+ }
915
+ @media (prefers-color-scheme: dark) {
916
+ .ffe-body.regard-color-scheme-preference {
917
+ --color: var(--ffe-farge-lysgraa);
918
+ --background-color: var(--ffe-farge-svart);
919
+ }
920
+ }
921
+ .ffe-body strong {
922
+ font-family: var(--ffe-g-font-strong);
923
+ font-weight: normal;
924
+ }
925
+ .ffe-body small {
926
+ font-size: var(--ffe-fontsize-small-text);
927
+ }
928
+ .ffe-body em {
929
+ font-family: var(--ffe-g-font-italic);
930
+ font-weight: normal;
931
+ font-style: normal;
932
+ }
933
+ .ffe-body pre {
934
+ font-family: consolas, menlo, monaco, monospace;
935
+ }
936
+ /* visually hides, but allows screen readers to see content */
937
+ .ffe-screenreader-only {
938
+ border: 0;
939
+ clip: rect(0, 0, 0, 0);
940
+ height: 1px;
941
+ margin: -1px;
942
+ overflow: hidden;
943
+ padding: 0;
944
+ position: absolute !important;
945
+ width: 1px;
946
+ }
947
+ .ffe-wave {
948
+ position: relative;
949
+ width: 100%;
950
+ }
951
+ .ffe-wave__content {
952
+ position: absolute;
953
+ z-index: 1;
954
+ width: 100%;
955
+ }
956
+ .ffe-wave__wave {
957
+ -webkit-mask-repeat: repeat-x;
958
+ mask-repeat: repeat-x;
959
+ min-height: 60px;
960
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 479.9 60' style='enable-background:new 0 0 479.9 148' xml:space='preserve'%3E%3Cpath d='M0 530V0c60.7 0 91.6 13.8 121.4 27.1 30.4 13.6 59.1 26.4 118.1 26.4s87.7-12.8 118.1-26.4C387.4 13.8 418.2 0 478.9 0s91.6 13.8 121.4 27.1c30.4 13.6 59.1 26.4 118.1 26.4s87.7-12.8 118.1-26.4C866.3 13.8 897.1 0 957.8 0s91.6 13.8 121.4 27.1c30.4 13.6 59.1 26.4 118.1 26.4s87.7-12.8 118.1-26.4C1345.2 13.8 1376 0 1436.7 0c60.7 0 91.6 13.8 121.4 27.1 30.4 13.6 59.1 26.4 118.1 26.4s87.7-12.8 118.1-26.4C1824.1 13.8 1854.9 0 1915.7 0v530'/%3E%3C/svg%3E");
961
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 479.9 60' style='enable-background:new 0 0 479.9 148' xml:space='preserve'%3E%3Cpath d='M0 530V0c60.7 0 91.6 13.8 121.4 27.1 30.4 13.6 59.1 26.4 118.1 26.4s87.7-12.8 118.1-26.4C387.4 13.8 418.2 0 478.9 0s91.6 13.8 121.4 27.1c30.4 13.6 59.1 26.4 118.1 26.4s87.7-12.8 118.1-26.4C866.3 13.8 897.1 0 957.8 0s91.6 13.8 121.4 27.1c30.4 13.6 59.1 26.4 118.1 26.4s87.7-12.8 118.1-26.4C1345.2 13.8 1376 0 1436.7 0c60.7 0 91.6 13.8 121.4 27.1 30.4 13.6 59.1 26.4 118.1 26.4s87.7-12.8 118.1-26.4C1824.1 13.8 1854.9 0 1915.7 0v530'/%3E%3C/svg%3E");
962
+ -webkit-mask-size: 480px;
963
+ mask-size: 480px;
964
+ }
965
+ @media (min-width: 480px) {
966
+ .ffe-wave__wave {
967
+ min-height: 119px;
968
+ -webkit-mask-position: 812px;
969
+ mask-position: 812px;
970
+ -webkit-mask-size: 950px;
971
+ mask-size: 950px;
972
+ }
973
+ }
974
+ @media (min-width: 1024px) {
975
+ .ffe-wave__wave {
976
+ min-height: 250px;
977
+ -webkit-mask-position: 1931px;
978
+ mask-position: 1931px;
979
+ -webkit-mask-size: 2004px;
980
+ mask-size: 2004px;
981
+ }
982
+ }
983
+ .ffe-wave__wave--flip {
984
+ rotate: 180deg;
985
+ }
986
+ .ffe-wave--bg-hvit {
987
+ background-color: var(--ffe-farge-hvit);
988
+ }
989
+ .ffe-wave--bg-frost-30 {
990
+ background-color: #d8e9f2;
991
+ }
992
+ .ffe-wave--bg-sand-30 {
993
+ background-color: #fdf8f5;
994
+ }
995
+ .ffe-wave--bg-sand-70 {
996
+ background-color: #faf0e7;
997
+ }
998
+ .ffe-wave--bg-syrin-30 {
999
+ background-color: #f2f2f9;
1000
+ }
1001
+ .ffe-wave--bg-syrin-70 {
1002
+ background-color: #e0e0f0;
1003
+ }
1004
+ .ffe-wave--bg-vann {
1005
+ background-color: #005aa4;
1006
+ }
1007
+ .ffe-wave--bg-vann-30 {
1008
+ background-color: #b3cee4;
1009
+ }
1010
+ .ffe-wave--bg-fjell {
1011
+ background-color: #002776;
1012
+ }
1013
+ @media (prefers-color-scheme: dark) {
1014
+ .regard-color-scheme-preference .ffe-wave--dm-bg-svart {
1015
+ background-color: var(--ffe-farge-svart);
1016
+ }
1017
+ }
1018
+ @media (prefers-color-scheme: dark) {
1019
+ .regard-color-scheme-preference .ffe-wave--dm-bg-natt {
1020
+ background-color: #001032;
1021
+ }
1022
+ }
@@ -1 +1 @@
1
- {"root":["../gen-src/index.ts"],"version":"5.6.3"}
1
+ {"root":["../gen-src/index.ts"],"version":"5.7.3"}
package/less/theme.less CHANGED
@@ -1,3 +1,5 @@
1
+ @import (reference) 'breakpoints';
2
+
1
3
  /**
2
4
  * These variables are intended to support theming of components. Override any value to create your own look and feel.
3
5
  */
@@ -135,7 +137,9 @@
135
137
 
136
138
  /* Form element borders */
137
139
  --ffe-g-border-color: var(--ffe-farge-varmgraa);
138
- --ffe-g-border-radius: 4px;
140
+ --ffe-g-border-radius: 8px;
141
+ --ffe-g-border-width: 1px;
142
+ --ffe-g-border-width-focus: 2px;
139
143
 
140
144
  /** Fonts */
141
145
 
package/less/waves.less CHANGED
@@ -1,3 +1,4 @@
1
+ @import (reference) 'breakpoints';
1
2
  @import 'colors';
2
3
 
3
4
  .ffe-wave {
@@ -1 +1 @@
1
- {"root":["../gen-src/index.ts"],"version":"5.6.3"}
1
+ {"root":["../gen-src/index.ts"],"version":"5.7.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sb1/ffe-core",
3
- "version": "29.1.4",
3
+ "version": "29.3.0",
4
4
  "description": "Rammeverk for Felles Front End",
5
5
  "license": "MIT",
6
6
  "author": "SpareBank 1",
@@ -23,7 +23,7 @@
23
23
  "lint": "ffe-buildtool stylelint less/*.less",
24
24
  "test": "npm run lint",
25
25
  "clean": "rm -rf css/ gen-src/ lib/",
26
- "build": "./scripts/build.js tokens.config.js && ./scripts/build-custom-mq.js less/breakpoints.less css/custom-media-queries.css && ffe-buildtool tsc"
26
+ "build": "./scripts/build.js tokens.config.js && ./scripts/build-custom-mq.js less/breakpoints.less css/custom-media-queries.css && ffe-buildtool tsc && lessc less/ffe.less css/ffe.css --autoprefix"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@sb1/ffe-buildtool": "^0.9.0",
@@ -34,5 +34,5 @@
34
34
  "publishConfig": {
35
35
  "access": "public"
36
36
  },
37
- "gitHead": "d27089e01efb5feed58df9f4acd48981a8dd9e6f"
37
+ "gitHead": "f474381dd349e5f8a64b9e6883aa9cb4a6d184d8"
38
38
  }
@@ -1 +1 @@
1
- {"root":["../gen-src/index.ts"],"version":"5.6.3"}
1
+ {"root":["../gen-src/index.ts"],"version":"5.7.3"}