@erst-vg/vg-design-wrapper 1.0.3

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 (179) hide show
  1. package/README.md +2 -0
  2. package/dist/src/App.vue.d.ts +2 -0
  3. package/dist/src/VgDesign.vue.d.ts +6 -0
  4. package/dist/src/components/VgAccordion.vue.d.ts +67 -0
  5. package/dist/src/components/VgButton.vue.d.ts +25 -0
  6. package/dist/src/components/VgButtons.vue.d.ts +2 -0
  7. package/dist/src/components/VgCard.vue.d.ts +76 -0
  8. package/dist/src/components/VgCardGroup.vue.d.ts +25 -0
  9. package/dist/src/components/VgDesignWrapper.vue.d.ts +11 -0
  10. package/dist/src/components/VgIcon.vue.d.ts +31 -0
  11. package/dist/src/components/VgListe.vue.d.ts +56 -0
  12. package/dist/src/components/VgListeCard.vue.d.ts +33 -0
  13. package/dist/src/components/VgPagination.vue.d.ts +24 -0
  14. package/dist/src/index.d.ts +11 -0
  15. package/dist/src/main.d.ts +0 -0
  16. package/dist/src/utils/tekstnoegle-util.d.ts +2 -0
  17. package/dist/tests/helpers.d.ts +0 -0
  18. package/dist/tests/mocks.d.ts +1 -0
  19. package/dist/tests/unit/components/VgAccordion.spec.d.ts +1 -0
  20. package/dist/tests/unit/components/VgButton.spec.d.ts +1 -0
  21. package/dist/tests/unit/components/VgButtons.spec.d.ts +1 -0
  22. package/dist/tests/unit/components/VgCard.spec.d.ts +1 -0
  23. package/dist/tests/unit/components/VgCardGroup.spec.d.ts +1 -0
  24. package/dist/tests/unit/components/VgDesignWrapper.spec.d.ts +1 -0
  25. package/dist/tests/unit/components/VgIcon.spec.d.ts +1 -0
  26. package/dist/tests/unit/components/VgListe.spec.d.ts +1 -0
  27. package/dist/tests/unit/components/VgListeCard.spec.d.ts +1 -0
  28. package/dist/tests/unit/components/VgPagination.spec.d.ts +1 -0
  29. package/dist/tests/unit/utils/tekstnoegle-util.spec.d.ts +1 -0
  30. package/dist/vg-design-wrapper.js +2601 -0
  31. package/dist/vg-design-wrapper.umd.cjs +120 -0
  32. package/dist/vite.config.d.ts +2 -0
  33. package/package.json +89 -0
  34. package/src/assets/icons/abonnementFilled.svg +5 -0
  35. package/src/assets/icons/abonnementOutline.svg +5 -0
  36. package/src/assets/icons/accordion.svg +3 -0
  37. package/src/assets/icons/accordionClose.svg +3 -0
  38. package/src/assets/icons/accordionCloseOld.svg +7 -0
  39. package/src/assets/icons/accordionOpen.svg +3 -0
  40. package/src/assets/icons/accordionOpenOld.svg +7 -0
  41. package/src/assets/icons/accountCircle.svg +3 -0
  42. package/src/assets/icons/add.svg +6 -0
  43. package/src/assets/icons/addBig.svg +6 -0
  44. package/src/assets/icons/afpublicer.svg +3 -0
  45. package/src/assets/icons/anchorlink.svg +3 -0
  46. package/src/assets/icons/anchormenuer.svg +3 -0
  47. package/src/assets/icons/angleArrowDown.svg +3 -0
  48. package/src/assets/icons/angleArrowUp.svg +3 -0
  49. package/src/assets/icons/ansoegninger.svg +7 -0
  50. package/src/assets/icons/applikationer.svg +3 -0
  51. package/src/assets/icons/arrowLeft.svg +3 -0
  52. package/src/assets/icons/arrowRight.svg +3 -0
  53. package/src/assets/icons/bell.svg +3 -0
  54. package/src/assets/icons/bellAlarmFilled.svg +3 -0
  55. package/src/assets/icons/bellAlarmOutline.svg +3 -0
  56. package/src/assets/icons/bellOvercrossed.svg +3 -0
  57. package/src/assets/icons/beskedcenter.svg +3 -0
  58. package/src/assets/icons/billede.svg +3 -0
  59. package/src/assets/icons/bogmaerker.svg +3 -0
  60. package/src/assets/icons/bookmarkFilled.svg +3 -0
  61. package/src/assets/icons/bookmarkOutline.svg +3 -0
  62. package/src/assets/icons/breadcrumbArrow.svg +3 -0
  63. package/src/assets/icons/calendar.svg +3 -0
  64. package/src/assets/icons/calendarOutline.svg +3 -0
  65. package/src/assets/icons/callToAction.svg +3 -0
  66. package/src/assets/icons/card.svg +3 -0
  67. package/src/assets/icons/carouselArrowLeft.svg +3 -0
  68. package/src/assets/icons/carouselArrowRight.svg +3 -0
  69. package/src/assets/icons/category.svg +3 -0
  70. package/src/assets/icons/check.svg +3 -0
  71. package/src/assets/icons/chevronLeft.svg +3 -0
  72. package/src/assets/icons/circularArrow.svg +3 -0
  73. package/src/assets/icons/close.svg +3 -0
  74. package/src/assets/icons/closeCircleOutline.svg +3 -0
  75. package/src/assets/icons/closeCirleFilled.svg +3 -0
  76. package/src/assets/icons/copyLink.svg +3 -0
  77. package/src/assets/icons/datahub.svg +3 -0
  78. package/src/assets/icons/deleteOutline.svg +4 -0
  79. package/src/assets/icons/deltagelsesgange.svg +3 -0
  80. package/src/assets/icons/dots.svg +5 -0
  81. package/src/assets/icons/dotsHorizontal.svg +3 -0
  82. package/src/assets/icons/doubleArrow.svg +3 -0
  83. package/src/assets/icons/downRightArrow.svg +3 -0
  84. package/src/assets/icons/download.svg +3 -0
  85. package/src/assets/icons/draggable.svg +5 -0
  86. package/src/assets/icons/email.svg +5 -0
  87. package/src/assets/icons/emner.svg +3 -0
  88. package/src/assets/icons/envelopeFilled.svg +3 -0
  89. package/src/assets/icons/envelopeOutline.svg +5 -0
  90. package/src/assets/icons/error.svg +3 -0
  91. package/src/assets/icons/eyeHide.svg +3 -0
  92. package/src/assets/icons/file.svg +6 -0
  93. package/src/assets/icons/filter.svg +3 -0
  94. package/src/assets/icons/filter2.svg +20 -0
  95. package/src/assets/icons/graph.svg +3 -0
  96. package/src/assets/icons/helpCircleOutline.svg +6 -0
  97. package/src/assets/icons/hero.svg +3 -0
  98. package/src/assets/icons/highlightArrow.svg +3 -0
  99. package/src/assets/icons/history.svg +3 -0
  100. package/src/assets/icons/home.svg +5 -0
  101. package/src/assets/icons/image.svg +5 -0
  102. package/src/assets/icons/indsaet.svg +3 -0
  103. package/src/assets/icons/indstillinger.svg +3 -0
  104. package/src/assets/icons/info.svg +5 -0
  105. package/src/assets/icons/infobox.svg +3 -0
  106. package/src/assets/icons/knap.svg +3 -0
  107. package/src/assets/icons/kontaktformular.svg +3 -0
  108. package/src/assets/icons/kopi.svg +3 -0
  109. package/src/assets/icons/leftUpCurvedArrow.svg +3 -0
  110. package/src/assets/icons/letter.svg +3 -0
  111. package/src/assets/icons/link.svg +3 -0
  112. package/src/assets/icons/linkboks.svg +5 -0
  113. package/src/assets/icons/linkedin.svg +5 -0
  114. package/src/assets/icons/liste.svg +3 -0
  115. package/src/assets/icons/listecard.svg +3 -0
  116. package/src/assets/icons/loading.svg +3 -0
  117. package/src/assets/icons/location.svg +3 -0
  118. package/src/assets/icons/lock.svg +7 -0
  119. package/src/assets/icons/loginbanner.svg +3 -0
  120. package/src/assets/icons/magnify.svg +3 -0
  121. package/src/assets/icons/magnifyBig.svg +3 -0
  122. package/src/assets/icons/map.svg +3 -0
  123. package/src/assets/icons/menu.svg +3 -0
  124. package/src/assets/icons/menuDown.svg +3 -0
  125. package/src/assets/icons/menuUp.svg +3 -0
  126. package/src/assets/icons/minus.svg +3 -0
  127. package/src/assets/icons/notVerified.svg +3 -0
  128. package/src/assets/icons/notes.svg +5 -0
  129. package/src/assets/icons/online.svg +3 -0
  130. package/src/assets/icons/openInNew.svg +3 -0
  131. package/src/assets/icons/paere.svg +8 -0
  132. package/src/assets/icons/paginationChevronLeft.svg +4 -0
  133. package/src/assets/icons/paginationChevronRight.svg +4 -0
  134. package/src/assets/icons/paginationFirstPage.svg +4 -0
  135. package/src/assets/icons/paginationLastPage.svg +4 -0
  136. package/src/assets/icons/partnergruppe.svg +5 -0
  137. package/src/assets/icons/pause.svg +3 -0
  138. package/src/assets/icons/pdfDownload.svg +3 -0
  139. package/src/assets/icons/pencil.svg +3 -0
  140. package/src/assets/icons/pencilOutline.svg +3 -0
  141. package/src/assets/icons/people.svg +5 -0
  142. package/src/assets/icons/phone.svg +5 -0
  143. package/src/assets/icons/play.svg +5 -0
  144. package/src/assets/icons/playVideo.svg +5 -0
  145. package/src/assets/icons/plus.svg +3 -0
  146. package/src/assets/icons/praedefineretSoegning.svg +3 -0
  147. package/src/assets/icons/quote.svg +3 -0
  148. package/src/assets/icons/redaktion.svg +3 -0
  149. package/src/assets/icons/remove.svg +3 -0
  150. package/src/assets/icons/removeRedEyeOutline.svg +3 -0
  151. package/src/assets/icons/richtext.svg +3 -0
  152. package/src/assets/icons/roundCheckmark.svg +3 -0
  153. package/src/assets/icons/save.svg +3 -0
  154. package/src/assets/icons/sektionsoverskrift.svg +5 -0
  155. package/src/assets/icons/showMoreArrow.svg +1 -0
  156. package/src/assets/icons/starFilled.svg +3 -0
  157. package/src/assets/icons/starOutline.svg +3 -0
  158. package/src/assets/icons/tag.svg +3 -0
  159. package/src/assets/icons/teaser.svg +3 -0
  160. package/src/assets/icons/teaserbillede.svg +3 -0
  161. package/src/assets/icons/tekstgruppe.svg +3 -0
  162. package/src/assets/icons/time.svg +7 -0
  163. package/src/assets/icons/trashCan.svg +3 -0
  164. package/src/assets/icons/udvidedeCardgruppe.svg +3 -0
  165. package/src/assets/icons/unlock.svg +3 -0
  166. package/src/assets/icons/verified.svg +3 -0
  167. package/src/assets/icons/video.svg +3 -0
  168. package/src/assets/icons/zoom.svg +3 -0
  169. package/src/styles/custom/_vgAccordion.scss +14 -0
  170. package/src/styles/custom/_vgCard.scss +15 -0
  171. package/src/styles/custom/_vgIcon.scss +3 -0
  172. package/src/styles/custom/_vgListe.scss +3 -0
  173. package/src/styles/vg/_vg-colors.scss +204 -0
  174. package/src/styles/vg/accordion/_vg-accordion.scss +98 -0
  175. package/src/styles/vg/buttons/_vg-buttons.scss +324 -0
  176. package/src/styles/vg/card/_vg-cardText.scss +74 -0
  177. package/src/styles/vg/card/_vg-udvidedecardgrupper.scss +441 -0
  178. package/src/styles/vg/mixins/_vg-mediaquery-helpers.scss +135 -0
  179. package/src/styles/vg/pagination/_vg-pagination.scss +67 -0
@@ -0,0 +1,441 @@
1
+ .udvidet-cardgruppe {
2
+ &.white-text {
3
+ .udvidet-cardgruppe__titel {
4
+ color: $color-white !important;
5
+ }
6
+ }
7
+
8
+ .cardrow {
9
+ max-width: 1200px;
10
+
11
+ .udvidet-card-container {
12
+ height: 100%;
13
+ }
14
+
15
+ .udvidet-cardgruppe-card {
16
+ max-width: none;
17
+ background-color: transparent;
18
+ display: flex;
19
+ flex-direction: column;
20
+ box-shadow: none;
21
+ height: 100%;
22
+ text-decoration: none;
23
+
24
+ :deep(h2),
25
+ :deep(h3) {
26
+ line-height: 1.4;
27
+ transition: 100ms ease-in-out;
28
+ }
29
+
30
+ .card-picture {
31
+ background-position: center;
32
+ background-repeat: no-repeat;
33
+ background-size: cover;
34
+ padding-top: 66.66%;
35
+ width: 100%;
36
+
37
+ &.logo-picture {
38
+ position: relative;
39
+ padding-top: 50%;
40
+
41
+ .logo-picture-text {
42
+ position: absolute;
43
+ left: 50%;
44
+ top: 50%;
45
+ transform: translate(-50%, -50%);
46
+ text-align: center;
47
+ color: var(--site-primary-darker);
48
+ width: 100%;
49
+ max-height: 100%;
50
+ text-transform: uppercase;
51
+ overflow: hidden;
52
+ text-overflow: ellipsis;
53
+ }
54
+ }
55
+ }
56
+
57
+ .picture-container {
58
+ position: relative;
59
+
60
+ .card-badge,
61
+ :deep(.dato-badge) {
62
+ position: absolute;
63
+ bottom: 16px;
64
+ left: 16px;
65
+ margin-bottom: 0;
66
+ max-width: calc(100% - 32px);
67
+ }
68
+ }
69
+
70
+ .picture-empty {
71
+ position: relative;
72
+ padding-top: 66.66%;
73
+ width: 100%;
74
+
75
+ &.with-icon {
76
+ &:before {
77
+ content: '';
78
+ position: absolute;
79
+ left: 0;
80
+ top: 0;
81
+ height: 100%;
82
+ width: 100%;
83
+ opacity: 0.5;
84
+ box-shadow: inset 0 0 100px 0 rgba(0, 0, 0, 0.15);
85
+ background-color: $color-white;
86
+ }
87
+ }
88
+
89
+ .icon-svg {
90
+ position: absolute;
91
+ left: 50%;
92
+ top: 50%;
93
+ transform: translate(-50%, -50%);
94
+ height: 3em;
95
+ width: 3em;
96
+ color: var(--site-primary);
97
+ }
98
+ }
99
+
100
+ .udbyder-card,
101
+ .logo {
102
+ border: 1px solid $color-light-gray;
103
+
104
+ .card-picture {
105
+ background-size: contain;
106
+ padding-top: 50%;
107
+ }
108
+ }
109
+
110
+ .udbyder-card {
111
+ padding: 32px;
112
+ }
113
+
114
+ .logo {
115
+ padding: 30px 48px;
116
+
117
+ @include media-breakpoint-down(xs) {
118
+ padding: 16px;
119
+ }
120
+ }
121
+
122
+ .logo-title {
123
+ font-size: 1em;
124
+ color: $font-color;
125
+ overflow: hidden;
126
+ text-overflow: ellipsis;
127
+ }
128
+
129
+ .text-wrapper {
130
+ height: 100%;
131
+ padding: 24px 0;
132
+ display: flex;
133
+ flex-direction: column;
134
+ justify-content: space-between;
135
+ border-top: 1px solid $color-light-gray;
136
+
137
+ :deep() {
138
+ pre {
139
+ font-family: var(--site-secondary-font);
140
+ }
141
+
142
+ pre,
143
+ p:not(.h6) {
144
+ @include media-breakpoint-down(xs) {
145
+ font-size: 0.875em;
146
+ }
147
+ }
148
+
149
+ .line-limit {
150
+ -webkit-line-clamp: 3;
151
+ }
152
+ }
153
+ }
154
+
155
+ .bottom {
156
+ margin-top: auto;
157
+ }
158
+
159
+ .fremhaevet-link {
160
+ color: var(--link-color);
161
+ display: inline-block;
162
+ line-height: 1.5;
163
+ width: 100%;
164
+
165
+ &:visited {
166
+ color: var(--link-color);
167
+ }
168
+
169
+ @include media-breakpoint-down(xs) {
170
+ font-size: 0.925em;
171
+ }
172
+
173
+ span {
174
+ line-height: 1.5;
175
+ vertical-align: middle;
176
+ }
177
+
178
+ &.line-limit {
179
+ span {
180
+ display: -webkit-inline-box;
181
+ word-break: break-all;
182
+ overflow: hidden;
183
+ text-overflow: ellipsis;
184
+ -webkit-line-clamp: 1;
185
+ -webkit-box-orient: vertical;
186
+ max-width: calc(100% - 2em);
187
+ }
188
+ }
189
+
190
+ .external-link-icon {
191
+ height: 1.25em;
192
+ width: 1.25em;
193
+ }
194
+ }
195
+
196
+ &:hover {
197
+ cursor: pointer;
198
+
199
+ :deep(.card-titel) {
200
+ color: $font-color;
201
+ }
202
+
203
+ .fremhaevet-link span,
204
+ .logo-title {
205
+ text-decoration: underline;
206
+ }
207
+
208
+ .logo-title {
209
+ color: $color-blue-dark !important;
210
+ }
211
+
212
+ :deep(h2),
213
+ :deep(h3) {
214
+ color: $font-color;
215
+ }
216
+ }
217
+
218
+ &.liste-layout {
219
+ :deep(.card-titel) {
220
+ h3 {
221
+ overflow: hidden;
222
+ display: -webkit-box;
223
+ -webkit-line-clamp: 2;
224
+ -webkit-box-orient: vertical;
225
+ }
226
+ }
227
+
228
+ .text-wrapper {
229
+ border-top: none;
230
+ border-bottom: 1px solid $color-light-gray;
231
+
232
+ :deep() {
233
+ .line-limit {
234
+ -webkit-line-clamp: 2;
235
+ }
236
+ }
237
+ }
238
+ }
239
+
240
+ &.udvidet-card {
241
+ .text-wrapper {
242
+ display: block;
243
+ }
244
+ }
245
+ }
246
+
247
+ @include media-breakpoint-down(xs) {
248
+ .more-cols {
249
+ .udvidet-card {
250
+ display: flex;
251
+ flex-direction: row;
252
+ border-top: 1px solid $color-light-gray;
253
+ padding-top: 16px;
254
+
255
+ .picture-container {
256
+ width: 25%;
257
+
258
+ .picture-empty {
259
+ .icon-svg {
260
+ height: 1.5em;
261
+ width: 1.5em;
262
+ }
263
+ }
264
+ }
265
+
266
+ .text-wrapper {
267
+ width: 75%;
268
+ border-top: none;
269
+ padding-top: 0;
270
+ padding-bottom: 0;
271
+ padding-left: 8px;
272
+
273
+ .h4 {
274
+ font-size: 1em;
275
+ }
276
+
277
+ .fremhaevet-link {
278
+ display: none;
279
+ }
280
+
281
+ .bottom {
282
+ padding-top: 0 !important;
283
+ }
284
+ }
285
+
286
+ &.without-image {
287
+ .text-wrapper {
288
+ width: 100%;
289
+ }
290
+ }
291
+ }
292
+ }
293
+ }
294
+
295
+ .one-card {
296
+ margin-bottom: 0 !important;
297
+ padding-bottom: 24px;
298
+
299
+ @include media-breakpoint-up(sm) {
300
+ padding-bottom: 56px;
301
+
302
+ .udvidet-cardgruppe-card {
303
+ display: flex;
304
+ flex-direction: row;
305
+ align-items: center;
306
+
307
+ .picture-container {
308
+ width: calc(50% - 16px);
309
+ height: 100%;
310
+
311
+ .card-picture {
312
+ width: 100%;
313
+ height: 100%;
314
+ }
315
+ }
316
+
317
+ .text-wrapper {
318
+ width: calc(50% - 16px);
319
+ height: auto;
320
+ margin-top: 24px;
321
+ margin-bottom: 24px;
322
+ margin-left: 32px;
323
+ border-top: none;
324
+
325
+ :deep(.h4) {
326
+ font-size: 2.4rem;
327
+ }
328
+ }
329
+ }
330
+ }
331
+ }
332
+ }
333
+ }
334
+
335
+ .white-text {
336
+ .udvidet-cardgruppe,
337
+ .udvidet-cardgruppe-card {
338
+ :deep(.overskrift),
339
+ :deep(.label-container > p),
340
+ :deep(.link-show-profile),
341
+ :deep(.kontaktinformation *),
342
+ :deep(.ydelse-card-ikonsection-container),
343
+ :deep(.ydelse-card-adresse),
344
+ :deep(.site-tekst),
345
+ :deep(.icon-udbyder),
346
+ :deep(.icon-svg) {
347
+ color: $color-white !important;
348
+ }
349
+
350
+ .picture-empty {
351
+ .icon-svg {
352
+ color: $color-white !important;
353
+ }
354
+ }
355
+
356
+ p,
357
+ .h4,
358
+ .h6 {
359
+ color: $color-white !important;
360
+ }
361
+
362
+ .fremhaevet-link {
363
+ color: $color-white !important;
364
+
365
+ &:visited {
366
+ color: $color-white !important;
367
+ }
368
+
369
+ svg {
370
+ color: $color-white !important;
371
+ }
372
+ }
373
+
374
+ :deep(.dato-badge),
375
+ :deep(.card-badge) {
376
+ .icon-svg,
377
+ p {
378
+ color: var(--site-primary-darkest) !important;
379
+ }
380
+ }
381
+ }
382
+
383
+ .cardrow {
384
+ :deep(.info-container) {
385
+ // Rammer alt undtagen ikon og tekst i badge
386
+ *:not(.icon-svg, path, .month, .day, .badge-label) {
387
+ color: $color-white !important;
388
+ }
389
+ }
390
+
391
+ :deep(.udvidet-cardgruppe-card) {
392
+ .picture-empty {
393
+ .icon-svg {
394
+ color: $color-white;
395
+ }
396
+ }
397
+
398
+ p:not(.badge-label),
399
+ .h4,
400
+ .h6 {
401
+ color: $color-white !important;
402
+ }
403
+
404
+ &:hover {
405
+ :deep() {
406
+ color: $color-white;
407
+
408
+ h3 {
409
+ color: $color-white;
410
+ }
411
+ }
412
+ }
413
+ }
414
+ }
415
+
416
+ .udvidet-cardgruppe-card {
417
+ &:hover {
418
+ :deep() {
419
+ color: $color-white !important;
420
+
421
+ h3,
422
+ .card-titel {
423
+ color: $color-white !important;
424
+ }
425
+ }
426
+ }
427
+ }
428
+ }
429
+
430
+ .custom-site-color-0,
431
+ .custom-site-color-1 {
432
+ .udvidet-cardgruppe .cardrow .udvidet-cardgruppe-card {
433
+ &:hover {
434
+ :deep(h2),
435
+ :deep(h3),
436
+ :deep(.card-titel) {
437
+ color: var(--link-color);
438
+ }
439
+ }
440
+ }
441
+ }
@@ -0,0 +1,135 @@
1
+ // Grid breakpoints.. copied directly from FDS
2
+ $grid-xs: 0;
3
+ $grid-sm: 576px;
4
+ $grid-md: 768px;
5
+ $grid-lg: 992px;
6
+ $grid-xl: 1200px;
7
+ $grid-breakpoints: (
8
+ xs: $grid-xs,
9
+ sm: $grid-sm,
10
+ md: $grid-md,
11
+ lg: $grid-lg,
12
+ xl: $grid-xl
13
+ );
14
+ // Breakpoint viewport sizes and media queries.
15
+ //
16
+ // Breakpoints are defined as a map of (name: minimum width), order from small to large:
17
+ //
18
+ // (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)
19
+ //
20
+ // The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.
21
+
22
+ // Name of the next breakpoint, or null for the last breakpoint.
23
+ //
24
+ // >> breakpoint-next(sm)
25
+ // md
26
+ // >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
27
+ // md
28
+ // >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))
29
+ // md
30
+ @function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {
31
+ $n: index($breakpoint-names, $name);
32
+ @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);
33
+ }
34
+
35
+ // Minimum breakpoint width. Null for the smallest (first) breakpoint.
36
+ //
37
+ // >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
38
+ // 576px
39
+ @function breakpoint-min($name, $breakpoints: $grid-breakpoints) {
40
+ $min: map-get($breakpoints, $name);
41
+ @return if($min != 0, $min, null);
42
+ }
43
+
44
+ // Maximum breakpoint width. Null for the largest (last) breakpoint.
45
+ // The maximum value is calculated as the minimum of the next one less 0.1.
46
+ //
47
+ // >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
48
+ // 767px
49
+ @function breakpoint-max($name, $breakpoints: $grid-breakpoints) {
50
+ $next: breakpoint-next($name, $breakpoints);
51
+ @return if($next, breakpoint-min($next, $breakpoints) - 1px, null);
52
+ }
53
+
54
+ // Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.
55
+ // Useful for making responsive utilities.
56
+ //
57
+ // >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
58
+ // "" (Returns a blank string)
59
+ // >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
60
+ // "-sm"
61
+ @function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {
62
+ @return if(breakpoint-min($name, $breakpoints) == null, "", "-#{$name}");
63
+ }
64
+
65
+ // Media of at least the minimum breakpoint width. No query for the smallest breakpoint.
66
+ // Makes the @content apply to the given breakpoint and wider.
67
+ @mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {
68
+ $min: breakpoint-min($name, $breakpoints);
69
+ @if $min {
70
+ @media (min-width: $min) {
71
+ @content;
72
+ }
73
+ } @else {
74
+ @content;
75
+ }
76
+ }
77
+
78
+ // Media of at most the maximum breakpoint width. No query for the largest breakpoint.
79
+ // Makes the @content apply to the given breakpoint and narrower.
80
+ @mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {
81
+ $max: breakpoint-max($name, $breakpoints);
82
+ @if $max {
83
+ @media (max-width: $max) {
84
+ @content;
85
+ }
86
+ } @else {
87
+ @content;
88
+ }
89
+ }
90
+
91
+ // Media that spans multiple breakpoint widths.
92
+ // Makes the @content apply between the min and max breakpoints
93
+ @mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {
94
+ $min: breakpoint-min($lower, $breakpoints);
95
+ $max: breakpoint-max($upper, $breakpoints);
96
+
97
+ @if $min != null and $max != null {
98
+ @media (min-width: $min) and (max-width: $max) {
99
+ @content;
100
+ }
101
+ } @else if $max == null {
102
+ @include media-breakpoint-up($lower) {
103
+ @content;
104
+ }
105
+ } @else if $min == null {
106
+ @include media-breakpoint-down($upper) {
107
+ @content;
108
+ }
109
+ }
110
+ }
111
+
112
+ // Media between the breakpoint's minimum and maximum widths.
113
+ // No minimum for the smallest breakpoint, and no maximum for the largest one.
114
+ // Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.
115
+ @mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {
116
+ $min: breakpoint-min($name, $breakpoints);
117
+ $max: breakpoint-max($name, $breakpoints);
118
+
119
+ @if $min != null and $max != null {
120
+ @media (min-width: $min) and (max-width: $max) {
121
+ @content;
122
+ }
123
+ } @else if $max == null {
124
+ @include media-breakpoint-up($name) {
125
+ @content;
126
+ }
127
+ } @else if $min == null {
128
+ @include media-breakpoint-down($name) {
129
+ @content;
130
+ }
131
+ }
132
+ }
133
+ @mixin testmixin() {
134
+ background-color: yellow !important;
135
+ }
@@ -0,0 +1,67 @@
1
+ .pagination {
2
+ padding-top: 16px;
3
+ padding-bottom: 16px;
4
+ display: flex;
5
+ align-items: center;
6
+ justify-content: center;
7
+
8
+ .mobile {
9
+ button {
10
+ margin-top: 0px;
11
+ }
12
+ }
13
+
14
+ .button.button-pagination {
15
+ width: 48px;
16
+ height: 48px;
17
+ margin: 0 16px 0 0;
18
+ font-size: 1.25em;
19
+ font-weight: 600;
20
+ line-height: 1.6;
21
+ padding: 0;
22
+ color: black;
23
+ border: 2px solid $color-very-dark-gray;
24
+ background-color: unset;
25
+ border-radius: 24px;
26
+ text-align: center;
27
+ text-decoration: underline;
28
+
29
+ &:hover {
30
+ color: $color-black;
31
+ background-color: $color-white;
32
+ border-color: $color-very-dark-gray;
33
+ }
34
+
35
+ &.button-active {
36
+ text-decoration: none;
37
+ color: var(--button-color);
38
+ background-color: $color-very-dark-gray;
39
+ border-color: $color-very-dark-gray;
40
+ }
41
+ }
42
+
43
+ .button-link {
44
+ &:focus {
45
+ color: $color-black;
46
+ border-radius: 0;
47
+ }
48
+
49
+ &.hidden {
50
+ visibility: hidden;
51
+ }
52
+ }
53
+
54
+ .dots {
55
+ display: flex;
56
+ height: 48px;
57
+ margin-right: 16px;
58
+ font-size: 1em;
59
+ font-weight: normal;
60
+ align-items: center;
61
+ justify-content: center;
62
+ }
63
+
64
+ :last-child {
65
+ margin-right: 0 !important;
66
+ }
67
+ }