@sb1/ffe-cards 20.2.3 → 20.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
@@ -24,6 +24,14 @@ Or pick just the ones you need from these:
24
24
  @import 'path/to/node_modules/@sb1/ffe-cards/less/image-card';
25
25
  ```
26
26
 
27
+ ### Importing compiled CSS
28
+
29
+ If your project does not use Less, you can import the compiled styling:
30
+
31
+ ```css
32
+ @import '~@sb1/ffe-cards/css/cards.css';
33
+ ```
34
+
27
35
  See also `@sb1/ffe-cards-react`.
28
36
 
29
37
  ## Theming with CSS custom properties
package/css/cards.css ADDED
@@ -0,0 +1,894 @@
1
+ :root,
2
+ :host {
3
+ --ffe-v-cards-common-text-color: var(--ffe-g-text-color);
4
+ --ffe-v-cards-common-card-background-color: var(--ffe-farge-hvit);
5
+ --ffe-v-cards-common-card-border-color: transparent;
6
+ --ffe-v-cards-common-card-box-shadow-color: var(--ffe-farge-graa);
7
+ --ffe-v-cards-common-card-box-shadow: 0 1px 4px 0 var(--ffe-v-cards-common-card-box-shadow-color);
8
+ --ffe-v-cards-common-card-border-radius: 16px;
9
+ --ffe-v-cards-clickabe-card-link-visited-color: inherit;
10
+ --ffe-v-cards-subtext-color: var(--ffe-farge-moerkgraa);
11
+ --ffe-v-cards-border-hover-color: var(--ffe-farge-vann);
12
+ --ffe-v-cards-stippled-border-color: var(--ffe-farge-vann);
13
+ --ffe-v-cards-icon-color: var(--ffe-farge-fjell);
14
+ --ffe-v-cards-image-card-border: none;
15
+ --ffe-v-cards-common-group-card-border: none;
16
+ --ffe-v-cards-common-group-card-separation-border-color: var(--ffe-farge-lysgraa);
17
+ --ffe-v-group-card-footer-background-color: var(--ffe-farge-syrin-30);
18
+ }
19
+ @media (prefers-color-scheme: dark) {
20
+ :root .regard-color-scheme-preference,
21
+ :host .regard-color-scheme-preference {
22
+ --ffe-v-cards-common-text-color: var(--ffe-farge-hvit);
23
+ --ffe-v-cards-common-card-background-color: var(--ffe-farge-svart);
24
+ --ffe-v-cards-common-card-border-color: var(--ffe-farge-koksgraa);
25
+ --ffe-v-cards-common-card-box-shadow: none;
26
+ --ffe-v-cards-clickabe-card-link-visited-color: var(--ffe-farge-hvit);
27
+ --ffe-v-cards-subtext-color: var(--ffe-farge-graa);
28
+ --ffe-v-cards-border-hover-color: var(--ffe-g-primary-color);
29
+ --ffe-v-cards-stippled-border-color: var(--ffe-farge-vann-70);
30
+ --ffe-v-cards-icon-color: var(--ffe-farge-vann-70);
31
+ --ffe-v-cards-image-card-border: 1px solid var(--ffe-farge-koksgraa);
32
+ --ffe-v-cards-common-group-card-border: 1px solid var(--ffe-farge-moerkgraa);
33
+ --ffe-v-cards-common-group-card-separation-border-color: var(--ffe-farge-moerkgraa);
34
+ --ffe-v-group-card-footer-background-color: var(--ffe-farge-koksgraa);
35
+ }
36
+ }
37
+ .ffe-card-base {
38
+ background: var(--ffe-v-cards-common-card-background-color);
39
+ -webkit-box-shadow: var(--ffe-v-cards-common-card-box-shadow);
40
+ box-shadow: var(--ffe-v-cards-common-card-box-shadow);
41
+ margin: 0 0 var(--ffe-spacing-xs);
42
+ border: 2px solid var(--ffe-v-cards-common-card-border-color);
43
+ border-radius: var(--ffe-v-cards-common-card-border-radius);
44
+ -webkit-transition: all var(--ffe-transition-duration) var(--ffe-ease);
45
+ -o-transition: all var(--ffe-transition-duration) var(--ffe-ease);
46
+ transition: all var(--ffe-transition-duration) var(--ffe-ease);
47
+ outline: none;
48
+ width: 100%;
49
+ text-decoration: none;
50
+ padding: var(--ffe-spacing-sm);
51
+ -webkit-box-shadow: none;
52
+ box-shadow: none;
53
+ }
54
+ @media (min-width: 768px) {
55
+ .ffe-card-base {
56
+ margin-bottom: var(--ffe-spacing-md);
57
+ }
58
+ }
59
+ @media (hover: hover) and (pointer: fine) {
60
+ .ffe-card-base--clickable:hover {
61
+ cursor: pointer;
62
+ border-color: var(--ffe-g-primary-color);
63
+ }
64
+ .ffe-card-base--clickable:hover :where(
65
+ .ffe-card-body__card-name,
66
+ .ffe-card-body__title,
67
+ .ffe-card-body__subtext,
68
+ .ffe-card-body__text
69
+ ):has(.ffe-card__action) {
70
+ text-decoration: underline;
71
+ }
72
+ }
73
+ .ffe-card-base--clickable:focus-within {
74
+ border-color: var(--ffe-g-primary-color);
75
+ -webkit-box-shadow: 0 0 0 2px var(--ffe-g-primary-color);
76
+ box-shadow: 0 0 0 2px var(--ffe-g-primary-color);
77
+ }
78
+ .ffe-card-base--clickable:focus-within :where(
79
+ .ffe-card-body__card-name,
80
+ .ffe-card-body__title,
81
+ .ffe-card-body__subtext,
82
+ .ffe-card-body__text
83
+ ):has(.ffe-card__action) {
84
+ text-decoration: underline;
85
+ }
86
+ .ffe-card-base--clickable button.ffe-card__action--raw {
87
+ background: none;
88
+ color: inherit;
89
+ border: none;
90
+ padding: 0;
91
+ font: inherit;
92
+ cursor: pointer;
93
+ outline: inherit;
94
+ }
95
+ .ffe-card-base--clickable a.ffe-card__action--raw {
96
+ color: inherit;
97
+ text-decoration: inherit;
98
+ outline: inherit;
99
+ }
100
+ .ffe-card-base--clickable .ffe-card__action--raw:visited {
101
+ color: var(--ffe-v-cards-clickabe-card-link-visited-color);
102
+ }
103
+ .ffe-card-base--no-padding {
104
+ padding: 0;
105
+ }
106
+ .ffe-card-base--bg-sand-30 {
107
+ --ffe-v-cards-common-card-background-color: var(--ffe-farge-sand-30);
108
+ }
109
+ .ffe-card-base--bg-sand-70 {
110
+ --ffe-v-cards-common-card-background-color: var(--ffe-farge-sand-70);
111
+ }
112
+ .ffe-card-base--bg-frost-30 {
113
+ --ffe-v-cards-common-card-background-color: var(--ffe-farge-frost-30);
114
+ }
115
+ .ffe-card-base--bg-syrin-30 {
116
+ --ffe-v-cards-common-card-background-color: var(--ffe-farge-syrin-30);
117
+ }
118
+ .ffe-card-base--bg-syrin-70 {
119
+ --ffe-v-cards-common-card-background-color: var(--ffe-farge-syrin-70);
120
+ }
121
+ .ffe-card-base--shadow {
122
+ -webkit-box-shadow: var(--ffe-v-cards-common-card-box-shadow);
123
+ box-shadow: var(--ffe-v-cards-common-card-box-shadow);
124
+ }
125
+ .ffe-card-base--no-margin {
126
+ margin: 0;
127
+ }
128
+ .ffe-card-base--text-center {
129
+ text-align: center;
130
+ }
131
+ @media (prefers-color-scheme: dark) {
132
+ .regard-color-scheme-preference .ffe-card-base--dm-bg-svart {
133
+ --ffe-v-cards-common-card-background-color: var(--ffe-farge-svart);
134
+ }
135
+ .regard-color-scheme-preference .ffe-card-base--dm-bg-natt {
136
+ --ffe-v-cards-common-card-background-color: var(--ffe-farge-natt);
137
+ }
138
+ .regard-color-scheme-preference .ffe-card-base--dm-bg-koksgraa {
139
+ --ffe-v-cards-common-card-background-color: var(--ffe-farge-koksgraa);
140
+ }
141
+ }
142
+ .ffe-card-body__title {
143
+ line-height: 1.25rem;font-size: var(--ffe-fontsize-h5);
144
+ }
145
+ .ffe-card-body__subtext {
146
+ color: var(--ffe-g-text-color);font-family: var(--ffe-g-font);font-weight: normal;font-variant-numeric: tabular-nums;line-height: 1.25rem;margin: 0;
147
+ }
148
+ .ffe-card-body__subtext {
149
+ font-size: var(--ffe-fontsize-small-text);
150
+ }
151
+ .ffe-card-body__title {
152
+ color: var(--ffe-g-heading-color);font-weight: normal;margin-bottom: var(--ffe-spacing-xs);margin-top: 0;text-wrap: balance;overflow-wrap: anywhere;
153
+ }
154
+ .ffe-card-body__title {
155
+ font-family: var(--ffe-g-font-heading-small);font-variant-numeric: tabular-nums;
156
+ }
157
+ @media (min-width: 480px) {
158
+ .ffe-card-body__title {
159
+ line-height: 1.5rem;
160
+ }
161
+ .ffe-card-body__title {
162
+ margin-bottom: var(--ffe-spacing-sm);
163
+ }
164
+ .ffe-card-body__subtext {
165
+ line-height: 1.25rem;
166
+ }
167
+ }
168
+ @media (min-width: 1024px) {
169
+ .ffe-card-body__title {
170
+ margin-bottom: var(--ffe-spacing-md);
171
+ }
172
+ }
173
+ .ffe-card-body__subtext {
174
+ overflow-wrap: anywhere;
175
+ }
176
+ .ffe-card-body__card-name {
177
+ margin: 0 0 var(--ffe-spacing-2xs) 0;
178
+ }
179
+ .ffe-card-body__text {
180
+ margin: var(--ffe-spacing-2xs) 0 0 0;
181
+ }
182
+ .ffe-card-body__subtext {
183
+ color: var(--ffe-v-cards-subtext-color);
184
+ margin: var(--ffe-spacing-2xs) 0 0 0;
185
+ }
186
+ .ffe-card-body__title {
187
+ margin: 0;
188
+ }
189
+ .ffe-card-body__title--overflow-ellipsis {
190
+ -o-text-overflow: ellipsis;
191
+ text-overflow: ellipsis;
192
+ white-space: nowrap;
193
+ overflow: hidden;
194
+ }
195
+ :where(
196
+ .ffe-card-body__card-name,
197
+ .ffe-card-body__text,
198
+ .ffe-card-body__subtext,
199
+ .ffe-card-body__title
200
+ ) {
201
+ overflow-wrap: anywhere;
202
+ }
203
+ .ffe-text-card {
204
+ background: var(--ffe-v-cards-common-card-background-color);
205
+ -webkit-box-shadow: var(--ffe-v-cards-common-card-box-shadow);
206
+ box-shadow: var(--ffe-v-cards-common-card-box-shadow);
207
+ margin: 0 0 var(--ffe-spacing-xs);
208
+ border: 2px solid var(--ffe-v-cards-common-card-border-color);
209
+ border-radius: var(--ffe-v-cards-common-card-border-radius);
210
+ -webkit-transition: all var(--ffe-transition-duration) var(--ffe-ease);
211
+ -o-transition: all var(--ffe-transition-duration) var(--ffe-ease);
212
+ transition: all var(--ffe-transition-duration) var(--ffe-ease);
213
+ outline: none;
214
+ width: 100%;
215
+ text-decoration: none;
216
+ display: -webkit-box;
217
+ display: -ms-flexbox;
218
+ display: flex;
219
+ padding: var(--ffe-spacing-sm) var(--ffe-spacing-lg);
220
+ -webkit-box-orient: vertical;
221
+ -webkit-box-direction: normal;
222
+ -ms-flex-flow: column nowrap;
223
+ flex-flow: column nowrap;
224
+ text-align: center;
225
+ overflow: hidden;
226
+ min-height: auto;
227
+ }
228
+ @media (min-width: 768px) {
229
+ .ffe-text-card {
230
+ margin-bottom: var(--ffe-spacing-md);
231
+ }
232
+ }
233
+ @media (hover: hover) and (pointer: fine) {
234
+ .ffe-text-card--clickable:hover {
235
+ cursor: pointer;
236
+ border-color: var(--ffe-g-primary-color);
237
+ }
238
+ .ffe-text-card--clickable:hover :where(
239
+ .ffe-card-body__card-name,
240
+ .ffe-card-body__title,
241
+ .ffe-card-body__subtext,
242
+ .ffe-card-body__text
243
+ ):has(.ffe-card__action) {
244
+ text-decoration: underline;
245
+ }
246
+ }
247
+ .ffe-text-card--clickable:focus-within {
248
+ border-color: var(--ffe-g-primary-color);
249
+ -webkit-box-shadow: 0 0 0 2px var(--ffe-g-primary-color);
250
+ box-shadow: 0 0 0 2px var(--ffe-g-primary-color);
251
+ }
252
+ .ffe-text-card--clickable:focus-within :where(
253
+ .ffe-card-body__card-name,
254
+ .ffe-card-body__title,
255
+ .ffe-card-body__subtext,
256
+ .ffe-card-body__text
257
+ ):has(.ffe-card__action) {
258
+ text-decoration: underline;
259
+ }
260
+ .ffe-text-card--clickable button.ffe-card__action--raw {
261
+ background: none;
262
+ color: inherit;
263
+ border: none;
264
+ padding: 0;
265
+ font: inherit;
266
+ cursor: pointer;
267
+ outline: inherit;
268
+ }
269
+ .ffe-text-card--clickable a.ffe-card__action--raw {
270
+ color: inherit;
271
+ text-decoration: inherit;
272
+ outline: inherit;
273
+ }
274
+ .ffe-text-card--clickable .ffe-card__action--raw:visited {
275
+ color: var(--ffe-v-cards-clickabe-card-link-visited-color);
276
+ }
277
+ .ffe-text-card--no-margin {
278
+ margin: 0;
279
+ }
280
+ @media (min-width: 768px) {
281
+ .ffe-text-card {
282
+ min-height: 100px;
283
+ }
284
+ }
285
+ .ffe-text-card--left-align {
286
+ text-align: left;
287
+ }
288
+ .ffe-icon-card {
289
+ background: var(--ffe-v-cards-common-card-background-color);
290
+ -webkit-box-shadow: var(--ffe-v-cards-common-card-box-shadow);
291
+ box-shadow: var(--ffe-v-cards-common-card-box-shadow);
292
+ margin: 0 0 var(--ffe-spacing-xs);
293
+ border: 2px solid var(--ffe-v-cards-common-card-border-color);
294
+ border-radius: var(--ffe-v-cards-common-card-border-radius);
295
+ -webkit-transition: all var(--ffe-transition-duration) var(--ffe-ease);
296
+ -o-transition: all var(--ffe-transition-duration) var(--ffe-ease);
297
+ transition: all var(--ffe-transition-duration) var(--ffe-ease);
298
+ outline: none;
299
+ width: 100%;
300
+ text-decoration: none;
301
+ display: grid;
302
+ grid-template-columns: auto 1fr;
303
+ -webkit-box-align: center;
304
+ -ms-flex-align: center;
305
+ align-items: center;
306
+ padding: var(--ffe-spacing-md);
307
+ gap: var(--ffe-spacing-sm);
308
+ }
309
+ @media (min-width: 768px) {
310
+ .ffe-icon-card {
311
+ margin-bottom: var(--ffe-spacing-md);
312
+ }
313
+ }
314
+ @media (hover: hover) and (pointer: fine) {
315
+ .ffe-icon-card--clickable:hover {
316
+ cursor: pointer;
317
+ border-color: var(--ffe-g-primary-color);
318
+ }
319
+ .ffe-icon-card--clickable:hover :where(
320
+ .ffe-card-body__card-name,
321
+ .ffe-card-body__title,
322
+ .ffe-card-body__subtext,
323
+ .ffe-card-body__text
324
+ ):has(.ffe-card__action) {
325
+ text-decoration: underline;
326
+ }
327
+ }
328
+ .ffe-icon-card--clickable:focus-within {
329
+ border-color: var(--ffe-g-primary-color);
330
+ -webkit-box-shadow: 0 0 0 2px var(--ffe-g-primary-color);
331
+ box-shadow: 0 0 0 2px var(--ffe-g-primary-color);
332
+ }
333
+ .ffe-icon-card--clickable:focus-within :where(
334
+ .ffe-card-body__card-name,
335
+ .ffe-card-body__title,
336
+ .ffe-card-body__subtext,
337
+ .ffe-card-body__text
338
+ ):has(.ffe-card__action) {
339
+ text-decoration: underline;
340
+ }
341
+ .ffe-icon-card--clickable button.ffe-card__action--raw {
342
+ background: none;
343
+ color: inherit;
344
+ border: none;
345
+ padding: 0;
346
+ font: inherit;
347
+ cursor: pointer;
348
+ outline: inherit;
349
+ }
350
+ .ffe-icon-card--clickable a.ffe-card__action--raw {
351
+ color: inherit;
352
+ text-decoration: inherit;
353
+ outline: inherit;
354
+ }
355
+ .ffe-icon-card--clickable .ffe-card__action--raw:visited {
356
+ color: var(--ffe-v-cards-clickabe-card-link-visited-color);
357
+ }
358
+ .ffe-icon-card--no-margin {
359
+ margin: 0;
360
+ }
361
+ .ffe-icon-card--right {
362
+ grid-template-columns: 1fr auto;
363
+ -webkit-box-pack: justify;
364
+ -ms-flex-pack: justify;
365
+ justify-content: space-between;
366
+ }
367
+ @media (min-width: 768px) {
368
+ .ffe-icon-card {
369
+ gap: var(--ffe-spacing-md);
370
+ }
371
+ .ffe-icon-card--condensed {
372
+ gap: var(--ffe-spacing-sm);
373
+ }
374
+ }
375
+ .ffe-icon-card .ffe-icon-card__icon {
376
+ color: var(--ffe-v-cards-icon-color);
377
+ }
378
+ .ffe-icon-card--condensed {
379
+ padding: var(--ffe-spacing-sm);
380
+ }
381
+ .ffe-illustration-card {
382
+ background: var(--ffe-v-cards-common-card-background-color);
383
+ -webkit-box-shadow: var(--ffe-v-cards-common-card-box-shadow);
384
+ box-shadow: var(--ffe-v-cards-common-card-box-shadow);
385
+ margin: 0 0 var(--ffe-spacing-xs);
386
+ border: 2px solid var(--ffe-v-cards-common-card-border-color);
387
+ border-radius: var(--ffe-v-cards-common-card-border-radius);
388
+ -webkit-transition: all var(--ffe-transition-duration) var(--ffe-ease);
389
+ -o-transition: all var(--ffe-transition-duration) var(--ffe-ease);
390
+ transition: all var(--ffe-transition-duration) var(--ffe-ease);
391
+ outline: none;
392
+ width: 100%;
393
+ text-decoration: none;
394
+ display: grid;
395
+ grid-template-columns: auto 1fr;
396
+ -webkit-column-gap: var(--ffe-spacing-md);
397
+ -moz-column-gap: var(--ffe-spacing-md);
398
+ column-gap: var(--ffe-spacing-md);
399
+ padding: var(--ffe-spacing-md);
400
+ -webkit-box-align: center;
401
+ -ms-flex-align: center;
402
+ align-items: center;
403
+ }
404
+ @media (min-width: 768px) {
405
+ .ffe-illustration-card {
406
+ margin-bottom: var(--ffe-spacing-md);
407
+ }
408
+ }
409
+ @media (hover: hover) and (pointer: fine) {
410
+ .ffe-illustration-card--clickable:hover {
411
+ cursor: pointer;
412
+ border-color: var(--ffe-g-primary-color);
413
+ }
414
+ .ffe-illustration-card--clickable:hover :where(
415
+ .ffe-card-body__card-name,
416
+ .ffe-card-body__title,
417
+ .ffe-card-body__subtext,
418
+ .ffe-card-body__text
419
+ ):has(.ffe-card__action) {
420
+ text-decoration: underline;
421
+ }
422
+ }
423
+ .ffe-illustration-card--clickable:focus-within {
424
+ border-color: var(--ffe-g-primary-color);
425
+ -webkit-box-shadow: 0 0 0 2px var(--ffe-g-primary-color);
426
+ box-shadow: 0 0 0 2px var(--ffe-g-primary-color);
427
+ }
428
+ .ffe-illustration-card--clickable:focus-within :where(
429
+ .ffe-card-body__card-name,
430
+ .ffe-card-body__title,
431
+ .ffe-card-body__subtext,
432
+ .ffe-card-body__text
433
+ ):has(.ffe-card__action) {
434
+ text-decoration: underline;
435
+ }
436
+ .ffe-illustration-card--clickable button.ffe-card__action--raw {
437
+ background: none;
438
+ color: inherit;
439
+ border: none;
440
+ padding: 0;
441
+ font: inherit;
442
+ cursor: pointer;
443
+ outline: inherit;
444
+ }
445
+ .ffe-illustration-card--clickable a.ffe-card__action--raw {
446
+ color: inherit;
447
+ text-decoration: inherit;
448
+ outline: inherit;
449
+ }
450
+ .ffe-illustration-card--clickable .ffe-card__action--raw:visited {
451
+ color: var(--ffe-v-cards-clickabe-card-link-visited-color);
452
+ }
453
+ .ffe-illustration-card--no-margin {
454
+ margin: 0;
455
+ }
456
+ .ffe-illustration-card--condensed {
457
+ -webkit-column-gap: var(--ffe-spacing-sm);
458
+ -moz-column-gap: var(--ffe-spacing-sm);
459
+ column-gap: var(--ffe-spacing-sm);
460
+ padding: var(--ffe-spacing-sm);
461
+ }
462
+ .ffe-illustration-card--right {
463
+ grid-template-columns: 1fr auto;
464
+ -webkit-box-pack: justify;
465
+ -ms-flex-pack: justify;
466
+ justify-content: space-between;
467
+ }
468
+ .ffe-image-card {
469
+ background: var(--ffe-v-cards-common-card-background-color);
470
+ -webkit-box-shadow: var(--ffe-v-cards-common-card-box-shadow);
471
+ box-shadow: var(--ffe-v-cards-common-card-box-shadow);
472
+ margin: 0 0 var(--ffe-spacing-xs);
473
+ border: 2px solid var(--ffe-v-cards-common-card-border-color);
474
+ border-radius: var(--ffe-v-cards-common-card-border-radius);
475
+ -webkit-transition: all var(--ffe-transition-duration) var(--ffe-ease);
476
+ -o-transition: all var(--ffe-transition-duration) var(--ffe-ease);
477
+ transition: all var(--ffe-transition-duration) var(--ffe-ease);
478
+ outline: none;
479
+ width: 100%;
480
+ text-decoration: none;
481
+ --border-color: transparent;
482
+ display: -webkit-box;
483
+ display: -ms-flexbox;
484
+ display: flex;
485
+ padding: 0;
486
+ max-width: 290px;
487
+ border: var(--ffe-v-cards-image-card-border);
488
+ -webkit-box-orient: vertical;
489
+ -webkit-box-direction: normal;
490
+ -ms-flex-flow: column nowrap;
491
+ flex-flow: column nowrap;
492
+ }
493
+ @media (min-width: 768px) {
494
+ .ffe-image-card {
495
+ margin-bottom: var(--ffe-spacing-md);
496
+ }
497
+ }
498
+ @media (hover: hover) and (pointer: fine) {
499
+ .ffe-image-card--clickable:hover {
500
+ cursor: pointer;
501
+ border-color: var(--ffe-g-primary-color);
502
+ }
503
+ .ffe-image-card--clickable:hover :where(
504
+ .ffe-card-body__card-name,
505
+ .ffe-card-body__title,
506
+ .ffe-card-body__subtext,
507
+ .ffe-card-body__text
508
+ ):has(.ffe-card__action) {
509
+ text-decoration: underline;
510
+ }
511
+ }
512
+ .ffe-image-card--clickable:focus-within {
513
+ border-color: var(--ffe-g-primary-color);
514
+ -webkit-box-shadow: 0 0 0 2px var(--ffe-g-primary-color);
515
+ box-shadow: 0 0 0 2px var(--ffe-g-primary-color);
516
+ }
517
+ .ffe-image-card--clickable:focus-within :where(
518
+ .ffe-card-body__card-name,
519
+ .ffe-card-body__title,
520
+ .ffe-card-body__subtext,
521
+ .ffe-card-body__text
522
+ ):has(.ffe-card__action) {
523
+ text-decoration: underline;
524
+ }
525
+ .ffe-image-card--clickable button.ffe-card__action--raw {
526
+ background: none;
527
+ color: inherit;
528
+ border: none;
529
+ padding: 0;
530
+ font: inherit;
531
+ cursor: pointer;
532
+ outline: inherit;
533
+ }
534
+ .ffe-image-card--clickable a.ffe-card__action--raw {
535
+ color: inherit;
536
+ text-decoration: inherit;
537
+ outline: inherit;
538
+ }
539
+ .ffe-image-card--clickable .ffe-card__action--raw:visited {
540
+ color: var(--ffe-v-cards-clickabe-card-link-visited-color);
541
+ }
542
+ .ffe-image-card--no-margin {
543
+ margin: 0;
544
+ }
545
+ .ffe-image-card .ffe-image-card__image-overlay,
546
+ .ffe-image-card .ffe-image-card__body {
547
+ border-color: var(--border-color);
548
+ }
549
+ .ffe-image-card:has(.ffe-card__action:active, .ffe-card__action:focus) {
550
+ --border-color: var(--ffe-v-cards-border-hover-color);
551
+ }
552
+ @media (hover: hover) and (pointer: fine) {
553
+ .ffe-image-card:has(.ffe-card__action):hover {
554
+ --border-color: var(--ffe-v-cards-border-hover-color);
555
+ }
556
+ }
557
+ .ffe-image-card__image-container {
558
+ max-height: 160px;
559
+ position: relative;
560
+ overflow: hidden;
561
+ border-top-left-radius: var(--ffe-v-cards-common-card-border-radius);
562
+ border-top-right-radius: var(--ffe-v-cards-common-card-border-radius);
563
+ }
564
+ .ffe-image-card__image {
565
+ max-width: 100%;
566
+ }
567
+ .ffe-image-card__image-overlay,
568
+ .ffe-image-card__body {
569
+ width: 100%;
570
+ overflow: hidden;
571
+ border: 2px solid transparent;
572
+ -webkit-transition: border-color var(--ffe-transition-duration);
573
+ -o-transition: border-color var(--ffe-transition-duration);
574
+ transition: border-color var(--ffe-transition-duration);
575
+ }
576
+ .ffe-image-card__image-overlay {
577
+ z-index: 10;
578
+ height: 100%;
579
+ border-bottom: 0;
580
+ border-top-left-radius: var(--ffe-v-cards-common-card-border-radius);
581
+ border-top-right-radius: var(--ffe-v-cards-common-card-border-radius);
582
+ position: absolute;
583
+ }
584
+ .ffe-image-card__body {
585
+ text-align: center;
586
+ padding: var(--ffe-spacing-sm) var(--ffe-spacing-sm) var(--ffe-spacing-xs) var(--ffe-spacing-sm);
587
+ border-top: 0;
588
+ border-bottom-left-radius: var(--ffe-v-cards-common-card-border-radius);
589
+ border-bottom-right-radius: var(--ffe-v-cards-common-card-border-radius);
590
+ min-height: 200px;
591
+ }
592
+ @media (min-width: 768px) {
593
+ .ffe-image-card .ffe-image-card__icon {
594
+ margin: 0 var(--ffe-spacing-md) 0;
595
+ }
596
+ }
597
+ @media (min-width: 1024px) {
598
+ .ffe-image-card .ffe-image-card__icon {
599
+ margin: 0 var(--ffe-spacing-lg) 0 var(--ffe-spacing-xs);
600
+ }
601
+ }
602
+ .ffe-stippled-card {
603
+ background: var(--ffe-v-cards-common-card-background-color);
604
+ -webkit-box-shadow: var(--ffe-v-cards-common-card-box-shadow);
605
+ box-shadow: var(--ffe-v-cards-common-card-box-shadow);
606
+ margin: 0 0 var(--ffe-spacing-xs);
607
+ border: 2px solid var(--ffe-v-cards-common-card-border-color);
608
+ border-radius: var(--ffe-v-cards-common-card-border-radius);
609
+ -webkit-transition: all var(--ffe-transition-duration) var(--ffe-ease);
610
+ -o-transition: all var(--ffe-transition-duration) var(--ffe-ease);
611
+ transition: all var(--ffe-transition-duration) var(--ffe-ease);
612
+ outline: none;
613
+ width: 100%;
614
+ text-decoration: none;
615
+ background: transparent;
616
+ border: 2px dashed var(--ffe-v-cards-stippled-border-color);
617
+ -webkit-box-shadow: none;
618
+ box-shadow: none;
619
+ display: grid;
620
+ grid-template-columns: auto 1fr;
621
+ -webkit-box-align: center;
622
+ -ms-flex-align: center;
623
+ align-items: center;
624
+ padding: var(--ffe-spacing-md);
625
+ gap: var(--ffe-spacing-md);
626
+ }
627
+ @media (min-width: 768px) {
628
+ .ffe-stippled-card {
629
+ margin-bottom: var(--ffe-spacing-md);
630
+ }
631
+ }
632
+ @media (hover: hover) and (pointer: fine) {
633
+ .ffe-stippled-card--clickable:hover {
634
+ cursor: pointer;
635
+ border-color: var(--ffe-g-primary-color);
636
+ }
637
+ .ffe-stippled-card--clickable:hover :where(
638
+ .ffe-card-body__card-name,
639
+ .ffe-card-body__title,
640
+ .ffe-card-body__subtext,
641
+ .ffe-card-body__text
642
+ ):has(.ffe-card__action) {
643
+ text-decoration: underline;
644
+ }
645
+ }
646
+ .ffe-stippled-card--clickable:focus-within {
647
+ border-color: var(--ffe-g-primary-color);
648
+ -webkit-box-shadow: 0 0 0 2px var(--ffe-g-primary-color);
649
+ box-shadow: 0 0 0 2px var(--ffe-g-primary-color);
650
+ }
651
+ .ffe-stippled-card--clickable:focus-within :where(
652
+ .ffe-card-body__card-name,
653
+ .ffe-card-body__title,
654
+ .ffe-card-body__subtext,
655
+ .ffe-card-body__text
656
+ ):has(.ffe-card__action) {
657
+ text-decoration: underline;
658
+ }
659
+ .ffe-stippled-card--clickable button.ffe-card__action--raw {
660
+ background: none;
661
+ color: inherit;
662
+ border: none;
663
+ padding: 0;
664
+ font: inherit;
665
+ cursor: pointer;
666
+ outline: inherit;
667
+ }
668
+ .ffe-stippled-card--clickable a.ffe-card__action--raw {
669
+ color: inherit;
670
+ text-decoration: inherit;
671
+ outline: inherit;
672
+ }
673
+ .ffe-stippled-card--clickable .ffe-card__action--raw:visited {
674
+ color: var(--ffe-v-cards-clickabe-card-link-visited-color);
675
+ }
676
+ .ffe-stippled-card--clickable:focus-within {
677
+ border-style: solid;
678
+ }
679
+ @media (hover: hover) and (pointer: fine) {
680
+ .ffe-stippled-card--clickable:hover {
681
+ border-style: solid;
682
+ }
683
+ }
684
+ .ffe-stippled-card--no-margin {
685
+ margin: 0;
686
+ }
687
+ .ffe-stippled-card__img--icon {
688
+ margin: 0 var(--ffe-spacing-md);
689
+ }
690
+ .ffe-stippled-card--condensed {
691
+ padding: var(--ffe-spacing-sm);
692
+ gap: var(--ffe-spacing-sm);
693
+ }
694
+ .ffe-stippled-card--condensed .ffe-stippled-card__img--icon {
695
+ margin: 0;
696
+ }
697
+ .ffe-stippled-card .ffe-icons {
698
+ color: var(--ffe-v-cards-icon-color);
699
+ }
700
+ .ffe-group-card {
701
+ background: var(--ffe-v-cards-common-card-background-color);
702
+ -webkit-box-shadow: var(--ffe-v-cards-common-card-box-shadow);
703
+ box-shadow: var(--ffe-v-cards-common-card-box-shadow);
704
+ margin: 0 0 var(--ffe-spacing-xs);
705
+ border: 2px solid var(--ffe-v-cards-common-card-border-color);
706
+ border-radius: var(--ffe-v-cards-common-card-border-radius);
707
+ -webkit-transition: all var(--ffe-transition-duration) var(--ffe-ease);
708
+ -o-transition: all var(--ffe-transition-duration) var(--ffe-ease);
709
+ transition: all var(--ffe-transition-duration) var(--ffe-ease);
710
+ outline: none;
711
+ width: 100%;
712
+ text-decoration: none;
713
+ position: relative;
714
+ border: var(--ffe-v-cards-common-group-card-border);
715
+ -webkit-box-shadow: none;
716
+ box-shadow: none;
717
+ }
718
+ @media (min-width: 768px) {
719
+ .ffe-group-card {
720
+ margin-bottom: var(--ffe-spacing-md);
721
+ }
722
+ }
723
+ .ffe-group-card--bg-sand-30 {
724
+ --ffe-v-cards-common-card-background-color: var(--ffe-farge-sand-30);
725
+ }
726
+ .ffe-group-card--bg-sand-70 {
727
+ --ffe-v-cards-common-card-background-color: var(--ffe-farge-sand-70);
728
+ }
729
+ .ffe-group-card--bg-frost-30 {
730
+ --ffe-v-cards-common-card-background-color: var(--ffe-farge-frost-30);
731
+ }
732
+ .ffe-group-card--bg-syrin-30 {
733
+ --ffe-v-cards-common-card-background-color: var(--ffe-farge-syrin-30);
734
+ }
735
+ .ffe-group-card--bg-syrin-70 {
736
+ --ffe-v-cards-common-card-background-color: var(--ffe-farge-syrin-70);
737
+ }
738
+ .ffe-group-card--shadow {
739
+ -webkit-box-shadow: var(--ffe-v-cards-common-card-box-shadow);
740
+ box-shadow: var(--ffe-v-cards-common-card-box-shadow);
741
+ }
742
+ .ffe-group-card--no-margin {
743
+ margin: 0;
744
+ }
745
+ .ffe-group-card > :first-child {
746
+ border-radius: var(--ffe-v-cards-common-card-border-radius) var(--ffe-v-cards-common-card-border-radius) 0 0;
747
+ }
748
+ .ffe-group-card > :last-child {
749
+ border-radius: 0 0 var(--ffe-v-cards-common-card-border-radius) var(--ffe-v-cards-common-card-border-radius);
750
+ border-bottom-color: transparent;
751
+ }
752
+ .ffe-group-card > :first-child:last-child {
753
+ border-radius: var(--ffe-v-cards-common-card-border-radius);
754
+ }
755
+ .ffe-group-card__title :where(.ffe-h1, .ffe-h2, .ffe-h3, .ffe-h4, .ffe-h5, .ffe-h6) {
756
+ margin-bottom: 0;
757
+ }
758
+ .ffe-group-card__element {
759
+ padding: var(--ffe-spacing-md);
760
+ }
761
+ .ffe-group-card__footer {
762
+ background-color: var(--ffe-v-group-card-footer-background-color);
763
+ display: -webkit-box;
764
+ display: -ms-flexbox;
765
+ display: flex;
766
+ -webkit-box-pack: center;
767
+ -ms-flex-pack: center;
768
+ justify-content: center;
769
+ -webkit-box-align: center;
770
+ -ms-flex-align: center;
771
+ align-items: center;
772
+ }
773
+ .ffe-group-card__title,
774
+ .ffe-group-card__footer {
775
+ padding: var(--ffe-spacing-sm) var(--ffe-spacing-md);
776
+ }
777
+ .ffe-group-card__title,
778
+ .ffe-group-card__element,
779
+ .ffe-group-card__footer {
780
+ border: 1px solid transparent;
781
+ margin: 0;
782
+ -webkit-transition: all var(--ffe-transition-duration) var(--ffe-ease);
783
+ -o-transition: all var(--ffe-transition-duration) var(--ffe-ease);
784
+ transition: all var(--ffe-transition-duration) var(--ffe-ease);
785
+ position: relative;
786
+ z-index: 0;
787
+ }
788
+ .ffe-group-card__title--no-padding,
789
+ .ffe-group-card__element--no-padding,
790
+ .ffe-group-card__footer--no-padding {
791
+ padding: 0;
792
+ }
793
+ @media (hover: hover) and (pointer: fine) {
794
+ .ffe-group-card__title--clickable:hover,
795
+ .ffe-group-card__element--clickable:hover,
796
+ .ffe-group-card__footer--clickable:hover {
797
+ cursor: pointer;
798
+ border-color: var(--ffe-g-primary-color);
799
+ }
800
+ .ffe-group-card__title--clickable:hover :where(
801
+ .ffe-card-body__card-name,
802
+ .ffe-card-body__title,
803
+ .ffe-card-body__subtext,
804
+ .ffe-card-body__text
805
+ ):has(.ffe-card__action),
806
+ .ffe-group-card__element--clickable:hover :where(
807
+ .ffe-card-body__card-name,
808
+ .ffe-card-body__title,
809
+ .ffe-card-body__subtext,
810
+ .ffe-card-body__text
811
+ ):has(.ffe-card__action),
812
+ .ffe-group-card__footer--clickable:hover :where(
813
+ .ffe-card-body__card-name,
814
+ .ffe-card-body__title,
815
+ .ffe-card-body__subtext,
816
+ .ffe-card-body__text
817
+ ):has(.ffe-card__action) {
818
+ text-decoration: underline;
819
+ }
820
+ }
821
+ .ffe-group-card__title--clickable:focus-within,
822
+ .ffe-group-card__element--clickable:focus-within,
823
+ .ffe-group-card__footer--clickable:focus-within {
824
+ border-color: var(--ffe-g-primary-color);
825
+ -webkit-box-shadow: 0 0 0 2px var(--ffe-g-primary-color);
826
+ box-shadow: 0 0 0 2px var(--ffe-g-primary-color);
827
+ }
828
+ .ffe-group-card__title--clickable:focus-within :where(
829
+ .ffe-card-body__card-name,
830
+ .ffe-card-body__title,
831
+ .ffe-card-body__subtext,
832
+ .ffe-card-body__text
833
+ ):has(.ffe-card__action),
834
+ .ffe-group-card__element--clickable:focus-within :where(
835
+ .ffe-card-body__card-name,
836
+ .ffe-card-body__title,
837
+ .ffe-card-body__subtext,
838
+ .ffe-card-body__text
839
+ ):has(.ffe-card__action),
840
+ .ffe-group-card__footer--clickable:focus-within :where(
841
+ .ffe-card-body__card-name,
842
+ .ffe-card-body__title,
843
+ .ffe-card-body__subtext,
844
+ .ffe-card-body__text
845
+ ):has(.ffe-card__action) {
846
+ text-decoration: underline;
847
+ }
848
+ .ffe-group-card__title--clickable button.ffe-card__action--raw,
849
+ .ffe-group-card__element--clickable button.ffe-card__action--raw,
850
+ .ffe-group-card__footer--clickable button.ffe-card__action--raw {
851
+ background: none;
852
+ color: inherit;
853
+ border: none;
854
+ padding: 0;
855
+ font: inherit;
856
+ cursor: pointer;
857
+ outline: inherit;
858
+ }
859
+ .ffe-group-card__title--clickable a.ffe-card__action--raw,
860
+ .ffe-group-card__element--clickable a.ffe-card__action--raw,
861
+ .ffe-group-card__footer--clickable a.ffe-card__action--raw {
862
+ color: inherit;
863
+ text-decoration: inherit;
864
+ outline: inherit;
865
+ }
866
+ .ffe-group-card__title--clickable .ffe-card__action--raw:visited,
867
+ .ffe-group-card__element--clickable .ffe-card__action--raw:visited,
868
+ .ffe-group-card__footer--clickable .ffe-card__action--raw:visited {
869
+ color: var(--ffe-v-cards-clickabe-card-link-visited-color);
870
+ }
871
+ .ffe-group-card__title:focus-within,
872
+ .ffe-group-card__element:focus-within,
873
+ .ffe-group-card__footer:focus-within {
874
+ z-index: 1;
875
+ }
876
+ .ffe-group-card__title,
877
+ .ffe-group-card__element {
878
+ border-bottom-color: var(--ffe-v-cards-common-group-card-separation-border-color);
879
+ }
880
+ .ffe-group-card__title--no-separator,
881
+ .ffe-group-card__element--no-separator {
882
+ border-bottom-color: transparent;
883
+ }
884
+ @media (prefers-color-scheme: dark) {
885
+ .regard-color-scheme-preference .ffe-group-card--dm-bg-svart {
886
+ --ffe-v-cards-common-card-background-color: var(--ffe-farge-svart);
887
+ }
888
+ .regard-color-scheme-preference .ffe-group-card--dm-bg-natt {
889
+ --ffe-v-cards-common-card-background-color: var(--ffe-farge-natt);
890
+ }
891
+ .regard-color-scheme-preference .ffe-group-card--dm-bg-koksgraa {
892
+ --ffe-v-cards-common-card-background-color: var(--ffe-farge-koksgraa);
893
+ }
894
+ }
@@ -1,3 +1,5 @@
1
+ @import (reference) '@sb1/ffe-core/less/breakpoints';
2
+
1
3
  .common-card-styling() {
2
4
  background: var(--ffe-v-cards-common-card-background-color);
3
5
  box-shadow: var(--ffe-v-cards-common-card-box-shadow);
@@ -1,3 +1,5 @@
1
+ @import (reference) '@sb1/ffe-core/less/typography';
2
+
1
3
  .ffe-card-body {
2
4
  &__card-name {
3
5
  margin: 0 0 var(--ffe-spacing-2xs) 0;
@@ -1,3 +1,4 @@
1
+ @import (reference) '@sb1/ffe-core/less/breakpoints';
1
2
  @import 'common-card-styling';
2
3
  @import 'components';
3
4
 
@@ -1,3 +1,4 @@
1
+ @import (reference) '@sb1/ffe-core/less/breakpoints';
1
2
  @import 'common-card-styling';
2
3
  @import 'components';
3
4
 
@@ -1,3 +1,4 @@
1
+ @import (reference) '@sb1/ffe-core/less/breakpoints';
1
2
  @import 'common-card-styling';
2
3
  @import 'components';
3
4
 
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@sb1/ffe-cards",
3
- "version": "20.2.3",
3
+ "version": "20.3.0",
4
4
  "description": "Kort for bruk i oversikter",
5
5
  "license": "MIT",
6
6
  "author": "SpareBank 1",
7
7
  "files": [
8
- "less"
8
+ "less",
9
+ "css"
9
10
  ],
10
11
  "repository": {
11
12
  "type": "git",
@@ -13,10 +14,11 @@
13
14
  },
14
15
  "scripts": {
15
16
  "lint": "ffe-buildtool stylelint less/*.less",
16
- "test": "npm run lint"
17
+ "test": "npm run lint",
18
+ "build": "lessc less/cards.less css/cards.css --autoprefix"
17
19
  },
18
20
  "dependencies": {
19
- "@sb1/ffe-core": "^29.1.4"
21
+ "@sb1/ffe-core": "^29.2.0"
20
22
  },
21
23
  "devDependencies": {
22
24
  "@sb1/ffe-buildtool": "^0.9.0"
@@ -24,5 +26,5 @@
24
26
  "publishConfig": {
25
27
  "access": "public"
26
28
  },
27
- "gitHead": "d27089e01efb5feed58df9f4acd48981a8dd9e6f"
29
+ "gitHead": "55ee3d40abaef9433c55aa993889e67c3f5c5abd"
28
30
  }