@kitconcept/volto-light-theme 6.0.0-alpha.9 → 6.0.1

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 (98) hide show
  1. package/.changelog.draft +2 -7
  2. package/CHANGELOG.md +221 -0
  3. package/README.md +6 -5
  4. package/locales/de/LC_MESSAGES/volto.po +171 -38
  5. package/locales/en/LC_MESSAGES/volto.po +170 -37
  6. package/locales/es/LC_MESSAGES/volto.po +171 -38
  7. package/locales/eu/LC_MESSAGES/volto.po +171 -38
  8. package/locales/pt_BR/volto.po +171 -38
  9. package/locales/volto.pot +171 -38
  10. package/package.json +15 -6
  11. package/src/components/Blocks/EventMetadata/View.jsx +32 -26
  12. package/src/components/Blocks/Listing/DefaultTemplate.jsx +19 -14
  13. package/src/components/Blocks/Listing/GridTemplate.jsx +9 -12
  14. package/src/components/Blocks/Listing/SummaryTemplate.jsx +9 -7
  15. package/src/components/Blocks/Teaser/DefaultBody.jsx +93 -0
  16. package/src/components/Footer/ColumnLinks.tsx +35 -0
  17. package/src/components/Footer/Footer.tsx +32 -0
  18. package/src/components/Footer/slots/Colophon.tsx +24 -0
  19. package/src/components/Footer/slots/Copyright.tsx +65 -0
  20. package/src/components/Footer/slots/CoreFooter.tsx +82 -0
  21. package/src/components/Footer/slots/FollowUsLogoAndLinks.tsx +80 -0
  22. package/src/components/Footer/slots/FooterLogos.tsx +44 -0
  23. package/src/components/Header/Header.tsx +257 -0
  24. package/src/components/Logo/Logo.tsx +85 -0
  25. package/src/components/{Footer/FooterLogos.tsx → LogosContainer/LogosContainer.tsx} +16 -36
  26. package/src/components/MobileNavigation/MobileNavigation.jsx +53 -18
  27. package/src/components/Navigation/Navigation.jsx +14 -3
  28. package/src/components/SearchWidget/IntranetSearchWidget.jsx +32 -5
  29. package/src/components/SearchWidget/SearchWidget.jsx +1 -1
  30. package/src/components/StickyMenu/StickyMenu.tsx +36 -0
  31. package/src/components/Summary/DefaultSummary.jsx +16 -0
  32. package/src/components/Summary/EventSummary.jsx +38 -0
  33. package/src/components/Summary/FileSummary.jsx +24 -0
  34. package/src/components/Summary/NewsItemSummary.jsx +40 -0
  35. package/src/components/Tags/Tags.jsx +46 -0
  36. package/src/components/Theme/EventView.jsx +19 -25
  37. package/src/components/Theme/NewsItemView.jsx +13 -9
  38. package/src/components/Theming/Theming.tsx +20 -17
  39. package/src/components/Widgets/{BlockAlignmentWidget.tsx → BlockAlignment.tsx} +9 -2
  40. package/src/components/Widgets/{BlockWidthWidget.tsx → BlockWidth.tsx} +10 -3
  41. package/src/components/Widgets/BlocksObject.tsx +353 -0
  42. package/src/components/Widgets/{ButtonsWidget.tsx → Buttons.tsx} +45 -4
  43. package/src/components/Widgets/ColorContrastChecker.tsx +117 -0
  44. package/src/components/Widgets/ColorPicker.tsx +59 -0
  45. package/src/components/Widgets/{ColorPickerWidget.tsx → ColorSwatch.tsx} +5 -5
  46. package/src/components/Widgets/ObjectList.tsx +342 -0
  47. package/src/components/Widgets/{ThemingColorPicker.tsx → RACThemingColorPicker.tsx} +4 -0
  48. package/src/components/Widgets/{SizeWidget.tsx → Size.tsx} +9 -2
  49. package/src/components/Widgets/ThemeColorSwatch.tsx +17 -0
  50. package/src/components/Widgets/schema/footerLinksSchema.ts +64 -0
  51. package/src/components/Widgets/schema/footerLogosSchema.ts +98 -0
  52. package/src/components/Widgets/schema/headerActionsSchema.ts +64 -0
  53. package/src/components/Widgets/schema/iconLinkListSchema.ts +98 -0
  54. package/src/config/blocks.tsx +37 -17
  55. package/src/config/settings.ts +54 -12
  56. package/src/config/slots.ts +36 -1
  57. package/src/config/summary.ts +24 -0
  58. package/src/config/widgets.ts +57 -23
  59. package/src/customizations/volto/components/manage/Blocks/Teaser/DefaultBody.jsx +8 -0
  60. package/src/customizations/volto/components/theme/Tags/Tags.jsx +11 -0
  61. package/src/customizations/volto/components/theme/View/RenderBlocks.jsx +2 -1
  62. package/src/helpers/DndSortableList.tsx +138 -0
  63. package/src/helpers/dates.js +22 -0
  64. package/src/helpers/doesNodeContainClick.js +64 -0
  65. package/src/helpers/useLiveData.ts +29 -0
  66. package/src/index.ts +31 -2
  67. package/src/primitives/IconLinkList.tsx +69 -0
  68. package/src/primitives/LinkList.tsx +35 -0
  69. package/src/theme/_bgcolor-blocks-layout.scss +50 -12
  70. package/src/theme/_content.scss +6 -0
  71. package/src/theme/_footer.scss +294 -41
  72. package/src/theme/_header.scss +132 -19
  73. package/src/theme/_layout.scss +11 -1
  74. package/src/theme/_sitemap.scss +4 -0
  75. package/src/theme/_utils.scss +14 -1
  76. package/src/theme/_variables.scss +12 -3
  77. package/src/theme/_widgets.scss +100 -9
  78. package/src/theme/blocks/_eventMetadata.scss +5 -2
  79. package/src/theme/blocks/_grid.scss +3 -3
  80. package/src/theme/blocks/_highlight.scss +17 -44
  81. package/src/theme/blocks/_listing.scss +25 -16
  82. package/src/theme/blocks/_maps.scss +3 -3
  83. package/src/theme/blocks/_slider.scss +5 -1
  84. package/src/theme/main.scss +1 -0
  85. package/src/theme/sticky-menu.scss +50 -0
  86. package/src/types.d.ts +102 -0
  87. package/tsconfig.json +1 -1
  88. package/src/components/Footer/Footer.jsx +0 -115
  89. package/src/components/Footer/FooterLinks.tsx +0 -57
  90. package/src/components/Header/Header.jsx +0 -161
  91. package/src/components/Logo/Logo.jsx +0 -51
  92. package/src/components/Widgets/AlignWidget.jsx +0 -80
  93. package/src/components/Widgets/BackgroundColorWidget.tsx +0 -17
  94. package/src/components/Widgets/BlocksObjectWidget.tsx +0 -333
  95. package/src/components/Widgets/FooterLinksWidget.tsx +0 -106
  96. package/src/components/Widgets/FooterLogosWidget.tsx +0 -120
  97. package/src/static/container-query-polyfill.modern.js +0 -1
  98. package/src/types/index.d.ts +0 -1
@@ -1,37 +1,28 @@
1
1
  #footer {
2
- margin-top: $footer-vertical-spacing-top;
2
+ padding-top: $footer-vertical-spacing-top;
3
3
  text-align: center;
4
4
 
5
- ul.footer-logos {
6
- display: grid;
7
- align-items: center;
8
- justify-content: center;
9
- padding: $pre-footer-vertical-spacing 0;
10
- padding-left: 0;
11
- margin-top: 0;
12
- margin-bottom: $spacing-medium;
13
- gap: 60px 20px;
14
- grid-template-columns: repeat(auto-fit, minmax(175px, 1fr));
15
- list-style: none;
16
-
17
- &.l img {
18
- max-width: min(100%, 240px);
19
- max-height: 165px;
20
- }
5
+ .container {
6
+ padding: 0 1rem;
7
+ }
21
8
 
22
- &.s img {
23
- max-width: min(100%, 175px);
24
- max-height: 120px;
25
- }
9
+ .post-footer {
10
+ padding: $spacing-xlarge 2rem;
11
+ background: var(--footer-background);
12
+ color: var(--footer-foreground, $black);
13
+ font-size: 18px;
26
14
  }
27
15
 
28
16
  .footer {
29
- padding: 4.2rem 2rem;
30
- background-color: $lightgrey;
17
+ padding: $spacing-xlarge 2rem;
18
+ color: var(--footer-foreground, $black);
31
19
  font-size: 18px;
32
20
 
21
+ a {
22
+ color: var(--footer-foreground);
23
+ }
24
+
33
25
  a.powered-by {
34
- color: $blue-for-grey-contrast;
35
26
  font-size: 14px;
36
27
  }
37
28
  .footer-branding {
@@ -41,39 +32,301 @@
41
32
  .footer-message {
42
33
  font-weight: $bold;
43
34
  a {
44
- color: $blue-for-grey-contrast;
45
35
  font-weight: inherit;
46
36
  text-decoration: underline;
47
37
  }
48
38
  }
49
39
 
50
- ul {
40
+ .followus-and-links {
51
41
  display: flex;
52
- flex-wrap: wrap;
42
+ flex-direction: column;
43
+ align-items: center;
53
44
  justify-content: center;
54
- padding-left: 0;
55
- margin-top: 1.4rem;
56
- list-style: none;
45
+ }
46
+
47
+ .follow-us {
48
+ display: flex;
49
+ flex-direction: column;
50
+ justify-content: center;
51
+ text-align: center;
52
+ }
53
+
54
+ .footer-links {
55
+ ul {
56
+ justify-content: center;
57
+ }
58
+ }
59
+
60
+ .logo {
61
+ display: flex;
62
+ justify-content: center;
63
+ margin: 5rem 0 1.8rem 0;
64
+
65
+ a {
66
+ display: block;
67
+ max-width: 200px;
68
+ max-height: 80px;
69
+
70
+ img {
71
+ max-width: 100%;
72
+ height: auto;
73
+ }
74
+ }
75
+ }
57
76
 
58
- li {
59
- padding: 0 7px;
60
- font-size: 18px;
77
+ .footer-grid {
78
+ display: grid;
79
+ gap: 1rem;
80
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
81
+ text-align: left;
61
82
 
62
- a {
63
- color: $blue-for-grey-contrast;
83
+ h2 {
84
+ @include text-heading-h4();
85
+ margin-bottom: $spacing-small;
86
+ }
87
+
88
+ ul {
89
+ display: flex;
90
+ flex-direction: column;
91
+ padding-left: 0;
92
+ margin: 0;
93
+ list-style: none;
94
+
95
+ li {
96
+ padding: 0 7px;
97
+ font-size: 18px;
98
+
99
+ a {
100
+ text-decoration: underline;
101
+ }
102
+ }
103
+ }
104
+
105
+ .address-column {
106
+ justify-self: start;
107
+ @include body-text();
108
+
109
+ img {
110
+ margin-bottom: 38px;
111
+ }
112
+ }
113
+
114
+ @media only screen and (max-width: $largest-mobile-screen) {
115
+ gap: $spacing-xlarge;
116
+
117
+ text-align: center;
118
+
119
+ .address-column {
120
+ display: flex;
121
+ flex-direction: column;
122
+ align-items: center;
123
+ }
124
+
125
+ .address-column,
126
+ .column-left,
127
+ .column-middle,
128
+ .column-right {
129
+ justify-self: center;
64
130
  }
65
131
  }
66
132
  }
133
+ }
134
+
135
+ .follow-us-links-and-logo {
136
+ display: flex;
137
+ margin-bottom: 50px;
138
+
139
+ &.no-logo {
140
+ justify-content: center;
141
+
142
+ .followus-and-links {
143
+ display: flex;
144
+ flex-direction: column;
145
+ align-items: center;
146
+ justify-content: center;
147
+ }
148
+
149
+ .follow-us {
150
+ display: flex;
151
+ flex-direction: column;
152
+ justify-content: center;
153
+ text-align: center;
154
+ }
67
155
 
68
- ul.footer-links li {
69
- border-right: 1px solid #205c90;
70
- &:last-of-type {
71
- border: none;
156
+ .footer-links {
157
+ ul {
158
+ justify-content: center;
159
+ }
72
160
  }
73
161
  }
74
162
 
75
- .logo {
76
- margin: 5rem 0 1.8rem 0;
163
+ @media only screen and (max-width: $largest-mobile-screen) {
164
+ flex-direction: column;
165
+ align-items: center;
166
+
167
+ .followus-and-links {
168
+ display: flex;
169
+ flex-direction: column;
170
+ align-items: center;
171
+ justify-content: center;
172
+ }
173
+
174
+ .follow-us {
175
+ display: flex;
176
+ flex-direction: column;
177
+ justify-content: center;
178
+ text-align: center;
179
+ }
180
+
181
+ .footer-links {
182
+ ul {
183
+ justify-content: center;
184
+ }
185
+ }
186
+
187
+ .footer-logo {
188
+ padding-top: 50px;
189
+ margin: 0 auto;
190
+ span {
191
+ text-align: center;
192
+ }
193
+ }
194
+ }
195
+ }
196
+
197
+ .followus-and-links {
198
+ flex-direction: column;
199
+ }
200
+
201
+ .footer-links,
202
+ .follow-us {
203
+ ul {
204
+ display: flex;
205
+ padding-left: 0;
206
+ margin: 0;
207
+ list-style: none;
208
+ }
209
+ }
210
+
211
+ .follow-us {
212
+ margin-bottom: 50px;
213
+ text-align: left;
214
+
215
+ span {
216
+ @include headtitle2();
217
+ display: block;
218
+ margin-bottom: 50px;
219
+ text-transform: uppercase;
220
+ }
221
+
222
+ .image-wrapper {
223
+ line-height: 0;
224
+ }
225
+
226
+ li {
227
+ margin-right: 15px;
228
+ }
229
+
230
+ li span {
231
+ display: none;
232
+ }
233
+ }
234
+
235
+ .footer-links {
236
+ li {
237
+ position: relative;
238
+ padding: 0 8px;
239
+ @include add(size, xs);
240
+ @include add(height, s);
241
+
242
+ &:not(:last-child):after {
243
+ position: absolute;
244
+ right: -3px;
245
+ display: inline-block;
246
+ color: var(--footer-foreground, $black);
247
+ content: '|';
248
+ }
249
+
250
+ a {
251
+ @include add(size, xs);
252
+ @include add(height, s);
253
+ color: var(--footer-foreground);
254
+ }
255
+ }
256
+ }
257
+
258
+ .footer-logo {
259
+ min-width: 180px;
260
+ max-width: 240px;
261
+ height: auto;
262
+ margin-left: auto;
263
+
264
+ span {
265
+ display: block;
266
+ margin-bottom: 50px;
267
+ text-align: left;
268
+ text-transform: uppercase;
269
+ @include headtitle2();
270
+ }
271
+
272
+ img {
273
+ width: 100%;
274
+ }
275
+ }
276
+
277
+ .colophon {
278
+ @include add(size, xs);
279
+ @include add(height, s);
280
+ padding-bottom: $spacing-small;
281
+
282
+ a {
283
+ @include add(size, xs);
284
+ @include add(height, s);
285
+ color: var(--footer-foreground);
286
+ text-decoration: underline;
77
287
  }
288
+
289
+ img {
290
+ margin-top: 25px;
291
+ }
292
+
293
+ &:before {
294
+ display: block;
295
+ padding-top: 50px;
296
+ border-top: 1px solid var(--footer-foreground, $black);
297
+ content: '';
298
+ @include default-container-width();
299
+ }
300
+ }
301
+
302
+ .footer + .post-footer {
303
+ background-color: transparent;
304
+ }
305
+ }
306
+
307
+ ul.logos-container {
308
+ display: grid;
309
+ align-items: center;
310
+ justify-content: center;
311
+ padding: $pre-footer-vertical-spacing 0;
312
+ padding-left: 0;
313
+ margin-top: 0;
314
+ margin-bottom: $spacing-medium;
315
+ gap: 60px 20px;
316
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
317
+ list-style: none;
318
+
319
+ &.s {
320
+ grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
321
+ }
322
+
323
+ &.l img {
324
+ max-width: min(100%, 240px);
325
+ max-height: 165px;
326
+ }
327
+
328
+ &.s img {
329
+ max-width: min(100%, 175px);
330
+ max-height: 120px;
78
331
  }
79
332
  }
@@ -11,8 +11,29 @@
11
11
  padding-bottom: 35px;
12
12
 
13
13
  .logo {
14
+ max-width: 200px;
15
+ max-height: 80px;
14
16
  flex: 1 1 0;
15
17
  align-self: center;
18
+
19
+ a {
20
+ display: block;
21
+
22
+ img {
23
+ max-width: 100%;
24
+ height: auto;
25
+ }
26
+ }
27
+ }
28
+
29
+ .complementary-logo {
30
+ max-width: 200px;
31
+ max-height: 80px;
32
+
33
+ img {
34
+ max-width: 100%;
35
+ height: auto;
36
+ }
16
37
  }
17
38
 
18
39
  .navigation {
@@ -220,11 +241,21 @@
220
241
  justify-content: space-between;
221
242
  padding-top: 16px;
222
243
 
223
- .intranet {
244
+ .intranet-flag {
224
245
  padding: 10px $spacing-small;
246
+ border: none;
225
247
  margin-top: -16px;
226
- margin-left: 213px;
248
+ margin-left: 200px;
227
249
  background-color: $secondary-grey;
250
+
251
+ @media only screen and (max-width: $computer-breakpoint) {
252
+ margin-left: 150px;
253
+ }
254
+
255
+ @media only screen and (max-width: $tablet-breakpoint) {
256
+ margin-left: 125px;
257
+ }
258
+
228
259
  @media only screen and (max-width: $narrow-container-width) {
229
260
  margin-left: 0px;
230
261
  }
@@ -283,43 +314,123 @@
283
314
 
284
315
  .header-wrapper.intranet-header {
285
316
  .header {
286
- flex-direction: column;
287
-
288
317
  .logo-nav-wrapper {
289
- flex-wrap: wrap;
290
- justify-content: flex-start;
291
-
292
- .logo {
293
- flex: 0 1 auto;
294
- }
318
+ display: flex;
319
+ flex-direction: row;
320
+ align-items: center;
321
+ justify-content: space-between;
295
322
 
296
323
  @media only screen and (max-width: $narrow-container-width) {
297
324
  position: relative;
325
+ flex-wrap: wrap;
326
+ justify-content: space-between;
298
327
  }
299
328
 
300
329
  .mobile-nav.mobile.only {
301
330
  @media only screen and (max-width: $narrow-container-width) {
302
- position: absolute;
303
- top: 19px;
304
- right: 0;
331
+ display: flex;
332
+ flex: 0 1 130px;
333
+ flex-direction: row-reverse;
334
+ order: 2;
305
335
  }
306
336
 
307
337
  .menu-drawer {
308
338
  @media only screen and (max-width: $computer-breakpoint) {
309
339
  top: 210px;
340
+
341
+ .search-button {
342
+ display: none;
343
+ }
310
344
  }
311
345
  }
312
346
  }
347
+ .logo {
348
+ @media only screen and (max-width: $narrow-container-width) {
349
+ order: 0;
350
+ }
351
+ @media only screen and (max-width: $computer-breakpoint) {
352
+ flex: 0 1 130px;
353
+ }
354
+ }
313
355
  .navigation {
314
- flex-basis: 100%;
315
356
  margin: 29px auto 0 auto;
316
357
  }
317
358
  }
318
359
 
360
+ .navigation {
361
+ display: flex;
362
+ flex: 3.5 1 0;
363
+ align-self: center;
364
+ justify-content: center;
365
+ margin-bottom: 40px;
366
+
367
+ @media only screen and (max-width: $largest-mobile-screen) {
368
+ display: none;
369
+ }
370
+
371
+ .desktop.menu {
372
+ display: flex;
373
+ justify-content: flex-end;
374
+
375
+ a.item {
376
+ padding: 0 5px;
377
+ margin: 0 5px;
378
+ color: $black;
379
+ font-size: 18px;
380
+ font-weight: 600;
381
+ line-height: 24px;
382
+ text-align: center;
383
+ }
384
+ }
385
+
386
+ .mobile-menu {
387
+ .mobile-menu-nav {
388
+ > div {
389
+ display: flex;
390
+ flex-direction: column;
391
+ }
392
+
393
+ a.item {
394
+ width: 100%;
395
+ padding: 2rem 1.2rem 1.5rem 1.2rem;
396
+ color: $black;
397
+ font-size: 18px;
398
+
399
+ &.active {
400
+ border-bottom: 4px solid $black;
401
+ }
402
+ }
403
+ }
404
+ }
405
+ }
406
+
407
+ .complementary-logo {
408
+ display: flex;
409
+ max-width: 200px;
410
+ flex: 1 1 auto;
411
+ flex-direction: row-reverse;
412
+
413
+ @media only screen and (max-width: $computer-breakpoint) {
414
+ flex: 0 1 55px;
415
+ }
416
+
417
+ @media only screen and (max-width: $narrow-container-width) {
418
+ order: 1;
419
+ }
420
+ }
421
+
319
422
  .search-wrapper {
320
- flex: 0 1 auto;
423
+ display: flex;
424
+ max-width: 600px;
425
+ flex: 1 1 0;
321
426
  align-self: center;
322
- margin-left: 209px;
427
+ justify-content: center;
428
+
429
+ @media only screen and (max-width: $narrow-container-width) {
430
+ flex: 1 1 auto;
431
+ order: 3;
432
+ }
433
+
323
434
  @media only screen and (max-width: $narrow-container-width) {
324
435
  width: 100%;
325
436
  margin-left: 0%;
@@ -329,10 +440,11 @@
329
440
  width: 100%;
330
441
  border-bottom: 2px solid $secondary-grey;
331
442
  .field.searchbox {
443
+ padding-right: 1em;
332
444
  border: none;
333
445
 
334
446
  .ui.input input {
335
- width: 500px;
447
+ width: 90%;
336
448
 
337
449
  &::placeholder {
338
450
  color: #808080;
@@ -532,8 +644,9 @@ body.has-toolbar.has-sidebar {
532
644
  position: absolute;
533
645
  top: 27px;
534
646
  right: 75px;
647
+ display: grid;
648
+ padding: 0;
535
649
  border: 0;
536
- margin-left: 28px;
537
650
  color: $black;
538
651
  cursor: pointer;
539
652
  &:focus {
@@ -938,7 +1051,7 @@ body.has-toolbar.has-sidebar {
938
1051
 
939
1052
  .has-toolbar .menu-drawer,
940
1053
  .has-toolbar-collapsed .menu-drawer {
941
- top: 158px;
1054
+ top: 258px;
942
1055
  width: 100%;
943
1056
  height: calc(100vh - 158px);
944
1057
  }
@@ -72,8 +72,18 @@ html[style*='padding-right'] .sidebar-container {
72
72
  margin-right: 15px;
73
73
  }
74
74
 
75
+ // Set desktop flex direction starting at largest-mobile-screen to prevent layout from breaking at 768px with expanded toolbar.
76
+ body {
77
+ @media only screen and (min-width: $largest-mobile-screen) {
78
+ flex-direction: row;
79
+ }
80
+ }
81
+
75
82
  // We expect initially three main containers
76
83
  .header-wrapper {
84
+ // This is the pusher for the header under 1440px so over that is tight to the border
85
+ padding: 0 1em;
86
+
77
87
  .q.container,
78
88
  .a.container {
79
89
  @include container-preference-order(12);
@@ -129,7 +139,7 @@ footer {
129
139
 
130
140
  .header-wrapper .header {
131
141
  @include layout-container-width();
132
- @include adjustMarginsToContainer($layout-container-width);
142
+ // @include adjustMarginsToContainer($layout-container-width);
133
143
  }
134
144
 
135
145
  .breadcrumbs .breadcrumb {
@@ -1,6 +1,10 @@
1
1
  @use 'sass:map';
2
2
  .section-sitemap {
3
3
  #page-sitemap {
4
+ .q.container {
5
+ @include default-container-width();
6
+ }
7
+
4
8
  h1 {
5
9
  @include page-title();
6
10
  @include vertical-space-h1();
@@ -37,7 +37,20 @@
37
37
 
38
38
  @mixin default-aspect-ratio {
39
39
  height: auto; // needed width width, height props and aspect ratio
40
- aspect-ratio: $aspect-ratio;
40
+ aspect-ratio: var(--image-aspect-ratio, $aspect-ratio);
41
41
  object-fit: cover;
42
42
  object-position: top left;
43
43
  }
44
+
45
+ @mixin button-style {
46
+ padding: 7px 10px;
47
+ border: 2px solid var(--quanta-sapphire);
48
+ border-radius: 10px;
49
+ margin-bottom: 10px; // Covers long button texts
50
+ background-color: transparent;
51
+ color: var(--quanta-sapphire);
52
+ cursor: pointer;
53
+ font-size: 16px;
54
+ line-height: 0;
55
+ opacity: 0.8;
56
+ }
@@ -114,6 +114,11 @@ $secondary-grey: #ececec !default;
114
114
  syntax: '<color>';
115
115
  }
116
116
 
117
+ @property --image-aspect-ratio {
118
+ inherits: true;
119
+ syntax: '<number> | auto';
120
+ }
121
+
117
122
  :root {
118
123
  --background: initial;
119
124
  --text-color: initial;
@@ -424,8 +429,12 @@ $line-heights: (
424
429
  }
425
430
 
426
431
  @mixin external-link-icon() {
427
- display: inline;
428
- content: '\a0'
429
- url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-prefix='fas' data-icon='external-link-alt' class='svg-inline--fa fa-external-link-alt fa-w-16' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='11' height='11' %3E%3Cpath fill='%23007EB1' d='M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z'%3E%3C/path%3E%3C/svg%3E");
432
+ display: inline-block;
433
+ width: 11px;
434
+ height: 11px;
435
+ background-color: var(--link-foreground-color, #0070a2);
436
+ content: '';
437
+ mask: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-prefix='fas' data-icon='external-link-alt' class='svg-inline--fa fa-external-link-alt fa-w-16' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z'/%3E%3C/svg%3E")
438
+ no-repeat center;
430
439
  white-space: nowrap;
431
440
  }