@eeacms/volto-eea-design-system 1.18.3 → 1.20.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.
Files changed (37) hide show
  1. package/CHANGELOG.md +82 -19
  2. package/RELEASE.md +14 -14
  3. package/package.json +3 -3
  4. package/src/ui/Card/Card.stories.jsx +104 -50
  5. package/src/ui/Card/Card.stories.test.jsx +196 -0
  6. package/src/ui/Footer/FooterSites.jsx +2 -2
  7. package/src/ui/Header/Header.stories.js +14 -10
  8. package/src/ui/Tab/Tab.stories.js +21 -5
  9. package/src/ui/Tab/Tab.stories.test.js +10 -0
  10. package/theme/themes/eea/collections/breadcrumb.overrides +4 -3
  11. package/theme/themes/eea/collections/menu.overrides +201 -15
  12. package/theme/themes/eea/collections/menu.variables +43 -28
  13. package/theme/themes/eea/collections/message.overrides +1 -1
  14. package/theme/themes/eea/collections/table.overrides +9 -15
  15. package/theme/themes/eea/elements/button.overrides +2 -2
  16. package/theme/themes/eea/elements/container.overrides +39 -34
  17. package/theme/themes/eea/elements/divider.overrides +13 -9
  18. package/theme/themes/eea/elements/image.overrides +5 -6
  19. package/theme/themes/eea/elements/label.overrides +16 -16
  20. package/theme/themes/eea/elements/list.overrides +3 -1
  21. package/theme/themes/eea/elements/segment.overrides +4 -4
  22. package/theme/themes/eea/extras/custom.overrides +43 -22
  23. package/theme/themes/eea/extras/header.variables +1 -1
  24. package/theme/themes/eea/globals/site.overrides +63 -35
  25. package/theme/themes/eea/globals/site.variables +2 -5
  26. package/theme/themes/eea/modules/accordion.overrides +36 -24
  27. package/theme/themes/eea/modules/accordion.variables +4 -4
  28. package/theme/themes/eea/modules/checkbox.overrides +2 -2
  29. package/theme/themes/eea/modules/modal.overrides +2 -2
  30. package/theme/themes/eea/modules/search.overrides +4 -0
  31. package/theme/themes/eea/modules/tab.overrides +6 -12
  32. package/theme/themes/eea/modules/tab.variables +2 -1
  33. package/theme/themes/eea/tokens/colors.less +2 -2
  34. package/theme/themes/eea/views/card.overrides +49 -35
  35. package/theme/themes/eea/views/card.variables +5 -0
  36. package/theme/themes/eea/views/item.overrides +15 -13
  37. package/theme/themes/eea/views/statistic.overrides +13 -3
@@ -5,19 +5,19 @@
5
5
  /* Avoid long links from spilling outside of card body area */
6
6
  .ui.cards > .card > .extra,
7
7
  .ui.card > .extra {
8
- font-size: @extraLinkFontSize;
9
- word-break: @extraLinkWordBreak;
10
8
  display: flex;
11
9
  flex-wrap: wrap;
12
10
  justify-content: var(--text-align, @extraJustifyContent);
11
+ font-size: @extraLinkFontSize;
12
+ word-break: @extraLinkWordBreak;
13
13
  }
14
14
 
15
15
  /* Cards must have same height */
16
16
  .ui.card {
17
17
  height: 100%;
18
- text-align: var(--text-align, @cardTextAlign);
19
18
  background-color: var(--card-background-color, @background);
20
19
  color: var(--card-text-color, @cardColor);
20
+ text-align: var(--text-align, @cardTextAlign);
21
21
  }
22
22
 
23
23
  .card .meta .date {
@@ -35,32 +35,38 @@
35
35
  }
36
36
  }
37
37
 
38
- .ui.card img, img.ui.image {
38
+ .ui.card img,
39
+ img.ui.image {
39
40
  object-fit: var(--image-object-fit, @imageObjectFit);
40
41
  object-position: var(--image-object-position, @imageObjectPosition);
41
42
  }
42
43
 
43
-
44
44
  .ui.cards > .card > .content > *:not(:last-child),
45
45
  .ui.card > .content > *:not(:last-child) {
46
46
  margin-bottom: @cardContentMarginBottom;
47
47
  }
48
48
 
49
+ .ui.card .event-date {
50
+ display: @eventDateDisplay;
51
+ flex-direction: @eventDateFlexDirection;
52
+ align-items: @eventDateAlign;
53
+ }
54
+
49
55
  .ui.card .meta {
50
56
  display: flex;
51
- justify-content: var(--justify-content, @metaJustifyContent);
52
57
  width: 100%;
58
+ justify-content: var(--justify-content, @metaJustifyContent);
53
59
  }
54
60
 
55
-
56
61
  .ui.card .meta > .category {
57
62
  font-size: @metaFontSize;
58
63
  }
59
64
 
60
65
  // add bottom margin also when meta isn't inside .content
61
66
  //
62
- .ui.cards > .card .meta, .ui.card .meta {
63
- margin-bottom: @rem-space-4;
67
+ .ui.cards > .card .meta,
68
+ .ui.card .meta {
69
+ margin-bottom: @rem-space-4;
64
70
  }
65
71
 
66
72
  .ui.card .extra.content a:not(.ui) {
@@ -103,7 +109,7 @@
103
109
  *******************************/
104
110
  .card.has--theme--secondary,
105
111
  .card.secondary {
106
- --card-background-color: @secondaryCardBackground;
112
+ --card-background-color: @secondaryCardBackground;
107
113
  --card-text-color: @secondaryCardColor;
108
114
  }
109
115
  /* Inverted */
@@ -118,14 +124,14 @@
118
124
  *******************************/
119
125
  .card.has--theme--tertiary,
120
126
  .card.tertiary {
121
- --card-background-color: @tertiaryCardBackground;
127
+ --card-background-color: @tertiaryCardBackground;
122
128
  --card-text-color: @tertiaryCardColor;
123
129
  }
124
130
  /* Inverted */
125
131
  .card.has--theme--tertiary.has--inverted--true,
126
132
  .card.tertiary.inverted {
127
- --card-background-color: @invertedTertiaryCardBackgroundColor;
128
- --card-text-color: @invertedTertiaryCardColor;
133
+ --card-background-color: @invertedTertiaryCardBackgroundColor;
134
+ --card-text-color: @invertedTertiaryCardColor;
129
135
  }
130
136
 
131
137
  /*******************************
@@ -139,6 +145,7 @@
139
145
  --card-image-width: @roundedImageWidth;
140
146
  --card-image-height: @roundedImageHeight;
141
147
  }
148
+
142
149
  .ui.card.rounded {
143
150
  padding: @roundedCardPadding;
144
151
  border: none;
@@ -146,7 +153,6 @@
146
153
  .image {
147
154
  display: flex;
148
155
  justify-content: @roundedImageJustifyContent;
149
-
150
156
  }
151
157
 
152
158
  img {
@@ -267,21 +273,20 @@
267
273
  background: transparent;
268
274
  }
269
275
 
270
-
271
276
  .card .gradient {
272
- display: flex;
273
- align-items: flex-end;
274
277
  position: absolute;
275
278
  bottom: 0;
279
+ display: flex;
276
280
  width: 100%;
277
281
  height: 100%;
282
+ align-items: flex-end;
278
283
  padding: @imageTitlePadding;
279
284
  .image-overlay-gradient();
280
285
  }
281
286
 
282
287
  .gradient .header {
283
- font-size: var(--image-header-font-size, @imageTitleMobileFontSize);
284
288
  color: @imageTitleColor;
289
+ font-size: var(--image-header-font-size, @imageTitleMobileFontSize);
285
290
  font-weight: @imageTitleFontWeight;
286
291
  line-height: @imageTitleLineHeight;
287
292
  }
@@ -290,6 +295,7 @@
290
295
  .card .gradient {
291
296
  padding-block: @imageTitlePaddingBlock;
292
297
  }
298
+
293
299
  .gradient .header {
294
300
  --image-header-font-size: @imageTitleFontSize;
295
301
  }
@@ -329,7 +335,9 @@
329
335
  padding: @carouselButtonPadding;
330
336
  margin: @carouselButtonMargin;
331
337
 
332
- .active, &:focus, &:hover {
338
+ .active,
339
+ &:focus,
340
+ &:hover {
333
341
  background: transparent;
334
342
  }
335
343
 
@@ -338,16 +346,17 @@
338
346
  }
339
347
 
340
348
  .icon {
349
+ width: auto;
350
+ padding-top: @carouselButtonPaddingTop;
341
351
  color: @carouselButtonIconColor;
342
352
  font-size: @carouselButtonIconFontSize;
343
353
  opacity: @carouselButtonIconOpacity;
344
- padding-top: @carouselButtonPaddingTop;
345
- width: auto;
346
354
  }
347
355
  }
348
356
 
349
357
  .cards-carousel .slider-arrow {
350
358
  position: absolute;
359
+ z-index: 1; // make arrows clickable even on events page with right column
351
360
  top: 50%;
352
361
  bottom: auto;
353
362
  padding: 0;
@@ -356,7 +365,6 @@
356
365
  cursor: pointer;
357
366
  outline: none;
358
367
  transform: translate(0, -50%);
359
- z-index: 1; // make arrows clickable even on events page with right column
360
368
  }
361
369
 
362
370
  .cards-carousel .slider-arrow.slick-disabled {
@@ -383,21 +391,22 @@
383
391
  .cards-carousel .slick-dots li button:before {
384
392
  content: none;
385
393
  }
394
+
386
395
  .cards-carousel .slick-dots li .slick-dot-icon:before {
387
- background-color: @carouselDotsBackgroundColor;
388
- color: transparent;
389
- border: @carouselDotsBorder;
390
- border-radius: @carouselDotsBorderRadius;
391
- opacity: @carouselDotsOpacity;
392
- width: @mobileCarouselDotsWidth;
393
- height: @mobileCarouselDotsHeight;
394
396
  position: absolute;
395
397
  top: 0;
396
398
  left: 0;
399
+ width: @mobileCarouselDotsWidth;
400
+ height: @mobileCarouselDotsHeight;
401
+ border: @carouselDotsBorder;
402
+ background-color: @carouselDotsBackgroundColor;
403
+ border-radius: @carouselDotsBorderRadius;
404
+ color: transparent;
397
405
  content: '•';
398
- text-align: center;
399
406
  -webkit-font-smoothing: antialiased;
400
407
  -moz-osx-font-smoothing: grayscale;
408
+ opacity: @carouselDotsOpacity;
409
+ text-align: center;
401
410
  }
402
411
 
403
412
  .cards-carousel .slick-dots li.slick-active .slick-dot-icon:before {
@@ -416,7 +425,6 @@
416
425
  width: @mobileCarouselDotsButtonWidth;
417
426
  height: @mobileCarouselDotsButtonHeight;
418
427
  }
419
-
420
428
  }
421
429
 
422
430
  /*******************************
@@ -425,13 +433,16 @@
425
433
 
426
434
  .ui.card.icon {
427
435
  padding-top: @iconCardPaddingTop;
436
+
428
437
  .content {
429
438
  border-top: none;
439
+
430
440
  .header {
431
- word-break: break-word;
432
441
  font-size: @iconCardHeaderFontSize;
442
+ word-break: break-word;
433
443
  }
434
444
  }
445
+
435
446
  .icon {
436
447
  margin: auto;
437
448
  }
@@ -451,8 +462,8 @@
451
462
  @media only screen and (min-width: @tabletBreakpoint) and (max-width: @largestTabletScreen) {
452
463
  .ui.grid > .column.grid-block-teaser,
453
464
  .ui.grid > .row > .column.grid-block-teaser {
454
- padding-left: @tabletTeaserCardPaddingInline;
455
465
  padding-right: @tabletTeaserCardPaddingInline;
466
+ padding-left: @tabletTeaserCardPaddingInline;
456
467
  }
457
468
 
458
469
  .grid-block-teaser .ui.card {
@@ -477,7 +488,7 @@
477
488
 
478
489
  // Meta align fix
479
490
  .ui.card.u-card .meta:after {
480
- content: none;
491
+ content: none;
481
492
  }
482
493
 
483
494
  /*******************************
@@ -486,5 +497,8 @@
486
497
  .imageCard-items {
487
498
  display: grid;
488
499
  gap: @imageCardItemsGap;
489
- grid-template-columns: repeat(auto-fit,minmax(@imageCardItemsGridMin, @imageCardItemsGridMax));
500
+ grid-template-columns: repeat(
501
+ auto-fit,
502
+ minmax(@imageCardItemsGridMin, @imageCardItemsGridMax)
503
+ );
490
504
  }
@@ -128,6 +128,11 @@
128
128
  @descriptionDistance: 0;
129
129
  @descriptionColor: inherit;
130
130
 
131
+ /* Dates */
132
+ @eventDateDisplay: flex;
133
+ @eventDateFlexDirection: row;
134
+ @eventDateAlign: center;
135
+
131
136
  /* Content Image */
132
137
  @contentImageWidth: '';
133
138
  @contentImageVerticalAlign: middle;
@@ -57,14 +57,14 @@
57
57
  }
58
58
 
59
59
  .description {
60
- color: @defaultItemColor;
61
- font-size: @mobileDefaultItemDescriptionFontSize;
62
- font-weight: @defaultItemDescriptionFontWeight;
63
60
  display: -webkit-box;
64
61
  overflow: hidden;
65
62
  -webkit-box-orient: vertical;
66
- text-overflow: ellipsis;
63
+ color: @defaultItemColor;
64
+ font-size: @mobileDefaultItemDescriptionFontSize;
65
+ font-weight: @defaultItemDescriptionFontWeight;
67
66
  -webkit-line-clamp: @defaultItemDescriptionLineClamp;
67
+ text-overflow: ellipsis;
68
68
  }
69
69
  }
70
70
  }
@@ -149,6 +149,7 @@
149
149
  // Stackable items that have image above content
150
150
  .ui.items.row .item.stackable {
151
151
  display: grid;
152
+ justify-content: center; // center text with icon
152
153
 
153
154
  .image,
154
155
  i.icon {
@@ -156,8 +157,8 @@
156
157
  }
157
158
 
158
159
  .content {
159
- padding-left: @stackableContentPaddingLeft;
160
160
  padding-top: @stackableContentPaddingTop;
161
+ padding-left: @stackableContentPaddingLeft;
161
162
  }
162
163
  }
163
164
 
@@ -172,28 +173,27 @@
172
173
  }
173
174
  }
174
175
 
175
- .flex-items-wrapper.items-2-columns .flex-item {
176
+ .flex-items-wrapper .flex-item {
176
177
  width: var(--flex-item-width, 100%);
177
178
  }
178
179
  @media only screen and (min-width: @tabletBreakpoint) {
179
- .flex-items-wrapper.items-2-columns .flex-item {
180
+ .flex-items-wrapper.items-2-columns .flex-item {
180
181
  --flex-item-width: calc(@width / 2 - 1%);
181
182
  }
182
183
 
183
184
  .flex-items-wrapper.items-3-columns .flex-item {
184
- --flex-item-width: calc(@width / 3);
185
+ --flex-item-width: calc(@width / 3 - 1%);
185
186
  }
186
187
 
187
188
  .flex-items-wrapper.items-4-columns .flex-item {
188
- --flex-item-width: calc(@width / 4);
189
+ --flex-item-width: calc(@width / 4 - 1%);
189
190
  }
190
191
 
191
192
  .flex-items-wrapper.items-5-columns .flex-item {
192
- --flex-item-width: calc(@width / 5);
193
+ --flex-item-width: calc(@width / 5 - 1%);
193
194
  }
194
195
  }
195
196
 
196
-
197
197
  @media only screen and (max-width: @largestMobileScreen) {
198
198
  .ui.items.row > .item {
199
199
  flex-direction: row;
@@ -224,6 +224,7 @@
224
224
  }
225
225
  }
226
226
  }
227
+
227
228
  .ui.items.row > .item {
228
229
  margin: @tabletRowItemMargin;
229
230
  }
@@ -253,6 +254,7 @@
253
254
  }
254
255
  }
255
256
  }
257
+
256
258
  .ui.items.row > .item {
257
259
  margin: @desktopRowItemMargin;
258
260
  }
@@ -269,8 +271,7 @@
269
271
 
270
272
  .ui.items > .item {
271
273
  &.primary,
272
- > .icon.primary
273
- {
274
+ > .icon.primary {
274
275
  color: @primaryColor;
275
276
  }
276
277
 
@@ -278,6 +279,7 @@
278
279
  > .icon.secondary {
279
280
  color: @secondaryColor;
280
281
  }
282
+
281
283
  &.tertiary,
282
284
  > .icon.tertiary {
283
285
  color: @tertiaryColor;
@@ -16,6 +16,7 @@
16
16
  /* Custom statistic variations & text wrap */
17
17
  .ui.statistics .ui.statistic {
18
18
  max-width: min-content;
19
+
19
20
  .value,
20
21
  .label,
21
22
  .slate {
@@ -28,9 +29,18 @@
28
29
  .label,
29
30
  .slate {
30
31
  min-width: @statisticContentMinWidth;
31
- &.primary { color: @primaryColor; }
32
- &.secondary { color: @secondaryColor; }
33
- &.tertiary { color: @tertiaryColor; }
32
+
33
+ &.primary {
34
+ color: @primaryColor;
35
+ }
36
+
37
+ &.secondary {
38
+ color: @secondaryColor;
39
+ }
40
+
41
+ &.tertiary {
42
+ color: @tertiaryColor;
43
+ }
34
44
  }
35
45
  }
36
46