@openeuropa/bcl-theme-default 1.8.2 → 1.9.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 (47) hide show
  1. package/bcl-builder.config.js +7 -2
  2. package/css/color-scheme.min.css +1 -1
  3. package/css/oe-bcl-ckeditor5.min.css +1 -1
  4. package/css/oe-bcl-ckeditor5.min.css.map +1 -1
  5. package/css/oe-bcl-default.css +1036 -308
  6. package/css/oe-bcl-default.css.map +1 -1
  7. package/css/oe-bcl-default.min.css +1 -1
  8. package/css/oe-bcl-default.min.css.map +1 -1
  9. package/js/oe-bcl-default.bundle.js +40 -5
  10. package/js/oe-bcl-default.bundle.js.map +1 -1
  11. package/js/oe-bcl-default.bundle.min.js +1 -1
  12. package/js/oe-bcl-default.bundle.min.js.map +1 -1
  13. package/js/oe-bcl-default.esm.js +40 -4
  14. package/js/oe-bcl-default.esm.js.map +1 -1
  15. package/js/oe-bcl-default.esm.min.js +1 -1
  16. package/js/oe-bcl-default.esm.min.js.map +1 -1
  17. package/js/oe-bcl-default.umd.js +40 -5
  18. package/js/oe-bcl-default.umd.js.map +1 -1
  19. package/js/oe-bcl-default.umd.min.js +1 -1
  20. package/js/oe-bcl-default.umd.min.js.map +1 -1
  21. package/js/slim-select-2/slimselect.min.js +1 -0
  22. package/js/slimselect.min.js +1 -1
  23. package/package.json +9 -8
  24. package/src/js/accordion-toggle/accordion-toggle.js +52 -0
  25. package/src/js/gallery/gallery.js +0 -2
  26. package/src/js/index.esm.js +2 -0
  27. package/src/js/index.umd.js +2 -0
  28. package/src/scss/_accordion.scss +7 -0
  29. package/src/scss/_badge.scss +2 -23
  30. package/src/scss/_button.scss +15 -0
  31. package/src/scss/_carousel.scss +15 -1
  32. package/src/scss/_footer.scss +20 -1
  33. package/src/scss/_header.scss +4 -10
  34. package/src/scss/_inpage-navigation.scss +69 -4
  35. package/src/scss/_input.scss +37 -4
  36. package/src/scss/_language-list.scss +11 -0
  37. package/src/scss/_multiselect-2.scss +552 -0
  38. package/src/scss/_multiselect.scss +2 -2
  39. package/src/scss/_pagination.scss +21 -5
  40. package/src/scss/_search-form.scss +4 -2
  41. package/src/scss/_tabs.scss +30 -0
  42. package/src/scss/base/_utilities.scss +14 -28
  43. package/src/scss/oe-bcl-default.scss +2 -0
  44. package/templates/bcl-accordion/accordion.html.twig +85 -46
  45. package/templates/bcl-carousel/carousel.html.twig +2 -2
  46. package/templates/bcl-header/header.html.twig +1 -0
  47. package/templates/bcl-inpage-navigation/inpage-navigation.html.twig +9 -1
@@ -0,0 +1,552 @@
1
+ /* stylelint-disable selector-no-qualifying-type,
2
+ selector-max-class, selector-max-compound-selectors,
3
+ no-descending-specificity,
4
+ function-calc-no-unspaced-operator,
5
+ declaration-block-no-shorthand-property-overrides,
6
+ */
7
+
8
+ :root {
9
+ // Colors
10
+ --ss-bg-color: #ffffff;
11
+ --ss-font-color: #4d4d4d;
12
+ --ss-font-placeholder-color: #8d8d8d;
13
+ --ss-disabled-color: #dcdee2;
14
+ --ss-border-color: #dcdee2;
15
+ --ss-highlight-color: #fffb8c;
16
+ --ss-success-color: #00b755;
17
+ --ss-error-color: #dc3545;
18
+ --ss-focus-color: #5897fb;
19
+
20
+ // Heights
21
+ --ss-main-height: 38px;
22
+ --ss-content-height: 300px;
23
+
24
+ // Spacing
25
+ --ss-spacing-l: 7px;
26
+ --ss-spacing-m: 5px;
27
+ --ss-spacing-s: 3px;
28
+
29
+ // Misc
30
+ --ss-animation-timing: 0.2s;
31
+ --ss-border-radius: 0.375rem;
32
+ }
33
+
34
+ // Animation keyframes
35
+ @keyframes ss-valueIn {
36
+ 0% {
37
+ transform: scale(0);
38
+ opacity: 0;
39
+ }
40
+ 100% {
41
+ transform: scale(1);
42
+ opacity: 1;
43
+ }
44
+ }
45
+ @keyframes ss-valueOut {
46
+ 0% {
47
+ transform: scale(1);
48
+ opacity: 1;
49
+ }
50
+ 100% {
51
+ transform: scale(0);
52
+ opacity: 0;
53
+ }
54
+ }
55
+
56
+ // Misc classes
57
+ .ss-hide {
58
+ display: none !important;
59
+ }
60
+
61
+ // Main container
62
+ .ss-main.ss-2 {
63
+ display: flex;
64
+ flex-direction: row;
65
+ position: relative;
66
+ user-select: none;
67
+ color: var(--ss-font-color);
68
+ width: 100%;
69
+ padding: 0.075rem 0 0.075rem 0.3rem;
70
+ cursor: pointer;
71
+ border: 1px solid var(--ss-border-color);
72
+ border-radius: var(--ss-border-radius);
73
+ background-color: var(--ss-bg-color);
74
+ outline: 0;
75
+ box-sizing: border-box;
76
+ transition: background-color var(--ss-animation-timing);
77
+ overflow: hidden;
78
+ min-height: 38px;
79
+
80
+ &:focus {
81
+ box-shadow: 0 0 5px var(--ss-focus-color);
82
+ }
83
+
84
+ &.form-select {
85
+ background: none;
86
+ padding: 0.075rem 0 0.075rem 0.3rem;
87
+ }
88
+
89
+ &.ss-disabled {
90
+ background-color: var(--ss-disabled-color);
91
+ cursor: not-allowed;
92
+
93
+ .ss-values {
94
+ .ss-disabled {
95
+ color: var(--ss-font-color);
96
+ }
97
+
98
+ .ss-value {
99
+ .ss-value-delete {
100
+ cursor: not-allowed;
101
+ }
102
+ }
103
+ }
104
+ }
105
+
106
+ &.ss-open-above {
107
+ border-top-left-radius: 0px;
108
+ border-top-right-radius: 0px;
109
+ }
110
+ &.ss-open-below {
111
+ border-bottom-left-radius: 0px;
112
+ border-bottom-right-radius: 0px;
113
+ }
114
+
115
+ .ss-values {
116
+ display: inline-flex;
117
+ flex-wrap: wrap;
118
+ gap: var(--ss-spacing-m);
119
+ flex: 1 1 100%;
120
+
121
+ .ss-placeholder {
122
+ display: flex;
123
+ padding: var(--ss-spacing-s) var(--ss-spacing-m) var(--ss-spacing-s)
124
+ var(--ss-spacing-m);
125
+ margin: auto 0px auto 0px;
126
+ line-height: 1em;
127
+ align-items: center;
128
+ width: 100%;
129
+ color: var(--ss-font-placeholder-color);
130
+ overflow: hidden;
131
+ text-overflow: ellipsis;
132
+ white-space: nowrap;
133
+ }
134
+
135
+ // Max is used to display max number of values
136
+ .ss-max {
137
+ display: flex;
138
+ user-select: none;
139
+ align-items: center;
140
+ width: fit-content;
141
+ font-size: 12px;
142
+ color: var(--ss-bg-color);
143
+ line-height: 1;
144
+ padding: var(--ss-spacing-s) var(--ss-spacing-m);
145
+ background-color: $primary;
146
+ border-radius: var(--ss-border-radius);
147
+ }
148
+
149
+ // Used for single select selected value
150
+ .ss-single {
151
+ display: flex;
152
+ margin: auto 0px auto var(--ss-spacing-s);
153
+ }
154
+
155
+ // Used for the selected values
156
+ .ss-value {
157
+ display: flex;
158
+ user-select: none;
159
+ align-items: center;
160
+ width: fit-content;
161
+ background-color: $primary;
162
+ border-radius: var(--ss-border-radius);
163
+ animation-name: ss-valueIn;
164
+ animation-duration: var(--ss-animation-timing);
165
+ animation-timing-function: ease-out;
166
+ animation-fill-mode: both;
167
+ margin: 3px 5px 3px 0;
168
+ padding: 0.35em 1.25rem 0.35em 0.65em;
169
+
170
+ &.ss-value-out {
171
+ animation-name: ss-valueOut;
172
+ animation-duration: var(--ss-animation-timing);
173
+ animation-timing-function: ease-out;
174
+ }
175
+
176
+ .ss-value-text {
177
+ color: var(--ss-bg-color);
178
+ line-height: 1;
179
+ margin-right: 5px;
180
+ }
181
+
182
+ .ss-value-delete {
183
+ font-size: 0;
184
+ &:after {
185
+ background-image: url("data:image/svg+xml,%3Csvg width='16' height='17' viewBox='0 0 16 17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M16 8.5C16 12.9183 12.4183 16.5 8 16.5C3.58172 16.5 0 12.9183 0 8.5C0 4.08172 3.58172 0.5 8 0.5C12.4183 0.5 16 4.08172 16 8.5ZM5.35355 5.14645C5.15829 4.95118 4.84171 4.95118 4.64645 5.14645C4.45118 5.34171 4.45118 5.65829 4.64645 5.85355L7.29289 8.5L4.64645 11.1464C4.45118 11.3417 4.45118 11.6583 4.64645 11.8536C4.84171 12.0488 5.15829 12.0488 5.35355 11.8536L8 9.20711L10.6464 11.8536C10.8417 12.0488 11.1583 12.0488 11.3536 11.8536C11.5488 11.6583 11.5488 11.3417 11.3536 11.1464L8.70711 8.5L11.3536 5.85355C11.5488 5.65829 11.5488 5.34171 11.3536 5.14645C11.1583 4.95118 10.8417 4.95118 10.6464 5.14645L8 7.79289L5.35355 5.14645Z' fill='%23F8F9FA'/%3E%3C/svg%3E%0A");
186
+ background-repeat: no-repeat;
187
+ content: "";
188
+ display: inline-block;
189
+ height: 1rem;
190
+ transform: scale(0.8) translateY(50%);
191
+ width: 1rem;
192
+ padding: 15px;
193
+ background-position: 50%;
194
+ border-radius: 50%;
195
+ position: absolute;
196
+ right: 0;
197
+ bottom: calc(50% - 3px);
198
+ }
199
+ &:focus-visible {
200
+ &:after {
201
+ outline: 2px solid $white;
202
+ outline-offset: -6px;
203
+ }
204
+ }
205
+ }
206
+ }
207
+ }
208
+
209
+ .ss-deselect {
210
+ flex: 0 1 auto;
211
+ display: flex;
212
+ align-items: center;
213
+ justify-content: center;
214
+ width: fit-content;
215
+ height: auto;
216
+ padding: 0 var(--ss-spacing-m) 0 var(--ss-spacing-m);
217
+
218
+ svg {
219
+ width: 8px;
220
+ height: 8px;
221
+
222
+ path {
223
+ fill: none;
224
+ stroke: var(--ss-font-color);
225
+ stroke-width: 20;
226
+ stroke-linecap: round;
227
+ stroke-linejoin: round;
228
+ }
229
+ }
230
+ }
231
+
232
+ .ss-arrow {
233
+ flex: 0 1 auto;
234
+ display: flex;
235
+ align-items: center;
236
+ justify-content: flex-end;
237
+ width: 12px;
238
+ height: 12px;
239
+ margin: auto var(--ss-spacing-m) auto var(--ss-spacing-m);
240
+
241
+ path {
242
+ fill: none;
243
+ stroke: var(--ss-font-color);
244
+ stroke-width: 18;
245
+ stroke-linecap: round;
246
+ stroke-linejoin: round;
247
+ transition-timing-function: ease-out;
248
+ transition: var(--ss-animation-timing);
249
+ }
250
+ }
251
+ }
252
+
253
+ // Content container
254
+ .ss-content.ss-content-2 {
255
+ position: absolute; // default position
256
+ display: flex;
257
+ height: auto;
258
+ flex-direction: column;
259
+ width: auto;
260
+ max-height: var(--ss-content-height);
261
+ box-sizing: border-box;
262
+ border: solid 1px var(--ss-border-color);
263
+ background-color: var(--ss-bg-color);
264
+ transition:
265
+ transform var(--ss-animation-timing),
266
+ opacity var(--ss-animation-timing);
267
+ opacity: 0;
268
+ transform: scaleY(0);
269
+ transform-origin: center top;
270
+ overflow: hidden;
271
+ z-index: 10000;
272
+
273
+ &.form-select {
274
+ padding: 0;
275
+ background: var(--ss-bg-color);
276
+ }
277
+
278
+ &.ss-relative {
279
+ position: relative;
280
+ height: 100%;
281
+ }
282
+
283
+ &.ss-fixed {
284
+ position: fixed;
285
+ }
286
+
287
+ &.ss-open-above {
288
+ flex-direction: column-reverse;
289
+ opacity: 1;
290
+ transform: scaleY(1);
291
+ transform-origin: center bottom;
292
+ border-top-left-radius: var(--ss-border-radius);
293
+ border-top-right-radius: var(--ss-border-radius);
294
+ }
295
+
296
+ &.ss-open-below {
297
+ opacity: 1;
298
+ transform: scaleY(1);
299
+ transform-origin: center top;
300
+ border-bottom-left-radius: var(--ss-border-radius);
301
+ border-bottom-right-radius: var(--ss-border-radius);
302
+ }
303
+
304
+ .ss-search {
305
+ flex: 0 1 auto;
306
+ display: flex;
307
+ flex-direction: row;
308
+ padding: var(--ss-spacing-l) var(--ss-spacing-l) var(--ss-spacing-m)
309
+ var(--ss-spacing-l);
310
+
311
+ input {
312
+ display: inline-flex;
313
+ font-size: inherit;
314
+ line-height: inherit;
315
+ flex: 1 1 auto;
316
+ width: 100%;
317
+ min-width: 0px;
318
+ padding: var(--ss-spacing-m) var(--ss-spacing-l);
319
+ margin: 0;
320
+ border: 1px solid var(--ss-border-color);
321
+ border-radius: var(--ss-border-radius);
322
+ background-color: var(--ss-bg-color);
323
+ outline: 0;
324
+ text-align: left;
325
+ box-sizing: border-box;
326
+
327
+ &::placeholder {
328
+ color: var(--ss-font-placeholder-color);
329
+ vertical-align: middle;
330
+ }
331
+
332
+ &:focus {
333
+ box-shadow: 0 0 5px var(--ss-focus-color);
334
+ }
335
+ }
336
+
337
+ .ss-addable {
338
+ display: inline-flex;
339
+ justify-content: center;
340
+ align-items: center;
341
+ cursor: pointer;
342
+ flex: 0 0 auto;
343
+ height: auto;
344
+ margin: 0 0 0 var(--ss-spacing-m);
345
+ border: 1px solid var(--ss-border-color);
346
+ border-radius: var(--ss-border-radius);
347
+
348
+ svg {
349
+ display: flex;
350
+ align-items: center;
351
+ justify-content: flex-end;
352
+ flex: 0 1 auto;
353
+ width: 12px;
354
+ height: 12px;
355
+ margin: auto var(--ss-spacing-m) auto var(--ss-spacing-m);
356
+
357
+ path {
358
+ fill: none;
359
+ stroke: var(--ss-font-color);
360
+ stroke-width: 18;
361
+ stroke-linecap: round;
362
+ stroke-linejoin: round;
363
+ }
364
+ }
365
+ }
366
+ }
367
+
368
+ .ss-list {
369
+ flex: 1 1 auto;
370
+ height: auto;
371
+ overflow-x: hidden;
372
+ overflow-y: auto;
373
+
374
+ .ss-error {
375
+ color: var(--ss-error-color);
376
+ padding: var(--ss-spacing-l);
377
+ }
378
+
379
+ .ss-searching {
380
+ color: var(--ss-font-color);
381
+ padding: var(--ss-spacing-l);
382
+ }
383
+
384
+ .ss-optgroup {
385
+ // If optgroup has close, hide all options
386
+ &.ss-close {
387
+ .ss-option {
388
+ display: none !important;
389
+ }
390
+ }
391
+
392
+ .ss-optgroup-label {
393
+ display: flex;
394
+ flex-direction: row;
395
+ align-items: center;
396
+ justify-content: space-between;
397
+ padding: var(--ss-spacing-m) var(--ss-spacing-l) var(--ss-spacing-m)
398
+ var(--ss-spacing-l);
399
+
400
+ .ss-optgroup-label-text {
401
+ flex: 1 1 auto;
402
+ font-weight: bold;
403
+ color: var(--ss-font-color);
404
+ }
405
+
406
+ // If optgroup has arrow, make label clickable
407
+ &:has(.ss-arrow) {
408
+ cursor: pointer;
409
+ }
410
+
411
+ .ss-optgroup-actions {
412
+ flex: 0 1 auto;
413
+ display: flex;
414
+ flex-direction: row;
415
+ align-items: center;
416
+ justify-content: center;
417
+ gap: var(--ss-spacing-m);
418
+
419
+ .ss-selectall {
420
+ flex: 0 0 auto;
421
+ display: flex;
422
+ flex-direction: row;
423
+ cursor: pointer;
424
+
425
+ &:hover {
426
+ opacity: 0.5;
427
+ }
428
+
429
+ &.ss-selected {
430
+ svg {
431
+ path {
432
+ stroke: var(--ss-error-color);
433
+ }
434
+ }
435
+ }
436
+
437
+ span {
438
+ flex: 0 1 auto;
439
+ display: flex;
440
+ align-items: center;
441
+ justify-content: center;
442
+ font-size: calc(100% * 0.6);
443
+ text-align: center;
444
+ padding: 0 var(--ss-spacing-s) 0 0;
445
+ }
446
+
447
+ svg {
448
+ flex: 0 1 auto;
449
+ width: 13px;
450
+ height: 13px;
451
+
452
+ path {
453
+ fill: none;
454
+ stroke: var(--ss-success-color);
455
+ stroke-linecap: round;
456
+ stroke-linejoin: round;
457
+ }
458
+
459
+ &:first-child {
460
+ stroke-width: 5;
461
+ }
462
+ &:last-child {
463
+ stroke-width: 11;
464
+ }
465
+ }
466
+ }
467
+
468
+ .ss-closable {
469
+ flex: 0 1 auto;
470
+ display: flex;
471
+ flex-direction: row;
472
+ cursor: pointer;
473
+
474
+ .ss-arrow {
475
+ flex: 1 1 auto;
476
+ width: 10px;
477
+ height: 10px;
478
+
479
+ path {
480
+ fill: none;
481
+ stroke: var(--ss-font-color);
482
+ stroke-width: 18;
483
+ stroke-linecap: round;
484
+ stroke-linejoin: round;
485
+ transition-timing-function: ease-out;
486
+ transition: var(--ss-animation-timing);
487
+ }
488
+ }
489
+ }
490
+ }
491
+ }
492
+
493
+ .ss-option {
494
+ padding: var(--ss-spacing-s) var(--ss-spacing-s) var(--ss-spacing-s)
495
+ calc(var(--ss-spacing-l) * 3);
496
+ }
497
+ }
498
+
499
+ .ss-option {
500
+ display: block; // Important for text with mark element highlight
501
+ padding: var(--ss-spacing-m) var(--ss-spacing-l) var(--ss-spacing-m)
502
+ var(--ss-spacing-l);
503
+ white-space: normal;
504
+ color: var(--ss-font-color);
505
+ cursor: pointer;
506
+ user-select: none;
507
+
508
+ &:hover {
509
+ color: var(--ss-bg-color);
510
+ background-color: $primary;
511
+ }
512
+
513
+ &.ss-highlighted,
514
+ &:not(.ss-disabled).ss-selected {
515
+ color: var(--ss-bg-color);
516
+ background-color: $primary;
517
+ }
518
+
519
+ &.ss-disabled {
520
+ cursor: not-allowed;
521
+ background-color: var(--ss-disabled-color);
522
+
523
+ &:hover {
524
+ color: var(--ss-font-color);
525
+ }
526
+ }
527
+
528
+ // Sub div wrapper for highlighting text
529
+ .ss-search-highlight {
530
+ display: inline-block;
531
+ background-color: var(--ss-highlight-color);
532
+ }
533
+ }
534
+ }
535
+ }
536
+
537
+ .ss-main.multi-select.is-invalid,
538
+ .was-validated .multi-select:invalid + .ss-main.multi-select {
539
+ border-color: $danger;
540
+ background-position: right 1.5rem center;
541
+ background-repeat: no-repeat;
542
+ background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
543
+ background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM8 4C7.46459 4 7.04623 4.46229 7.0995 4.99504L7.45025 8.50248C7.47849 8.78492 7.71616 9 8 9C8.28384 9 8.52151 8.78492 8.54975 8.50248L8.9005 4.99504C8.95377 4.46228 8.53541 4 8 4ZM8.00154 10C7.44926 10 7.00154 10.4477 7.00154 11C7.00154 11.5523 7.44926 12 8.00154 12C8.55383 12 9.00154 11.5523 9.00154 11C9.00154 10.4477 8.55383 10 8.00154 10Z' fill='%23D72E3D'/%3E%3C/svg%3E%0A");
544
+ }
545
+ .ss-main.multi-select.is-valid,
546
+ .was-validated .multi-select:valid + .ss-main.multi-select {
547
+ border-color: $success;
548
+ background-position: right 1.5rem center;
549
+ background-repeat: no-repeat;
550
+ background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
551
+ background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM12.0303 4.96967C11.7374 4.67678 11.2626 4.67678 10.9697 4.96967C10.9626 4.97674 10.9559 4.98424 10.9498 4.9921L7.4774 9.41674L5.38388 7.32322C5.09098 7.03033 4.61611 7.03033 4.32322 7.32322C4.03032 7.61612 4.03032 8.09099 4.32322 8.38388L6.96966 11.0303C7.26256 11.3232 7.73743 11.3232 8.03032 11.0303C8.03685 11.0238 8.043 11.0169 8.04876 11.0097L12.041 6.01947C12.3232 5.72582 12.3196 5.25897 12.0303 4.96967Z' fill='%2328A745'/%3E%3C/svg%3E%0A");
552
+ }
@@ -31,7 +31,7 @@ select.multi-select {
31
31
  opacity: 0;
32
32
  }
33
33
 
34
- .ss-main.multi-select {
34
+ .ss-main.multi-select.ss-1 {
35
35
  padding: 0;
36
36
  &.form-select.is-invalid,
37
37
  &.form-select.is-valid {
@@ -145,7 +145,7 @@ select.multi-select {
145
145
  }
146
146
 
147
147
  @include media-breakpoint-up(md) {
148
- .ss-main.multi-select {
148
+ .ss-main.ss-1.multi-select {
149
149
  .ss-multi-selected {
150
150
  padding: map-get($multiselect-spacers, "select-spacer-md") 0
151
151
  map-get($multiselect-spacers, "select-spacer-md")
@@ -1,9 +1,25 @@
1
+ /* stylelint-disable no-descending-specificity */
1
2
  .pagination {
2
- .page-link {
3
- // fix icons vertical alignment
4
- display: flex;
5
- height: 100%;
6
- align-items: center;
3
+ .page-item {
4
+ .page-link {
5
+ // Align icons vertically and focus styling
6
+ display: flex;
7
+ height: 100%;
8
+ align-items: center;
9
+ &:focus-visible {
10
+ box-shadow: none;
11
+ outline: 2px solid $primary;
12
+ outline-offset: -3px;
13
+ }
14
+ }
15
+
16
+ &:not(.active) .page-link:focus-visible {
17
+ background: transparent;
18
+ }
19
+
20
+ &.active .page-link:focus-visible {
21
+ outline-color: $white;
22
+ }
7
23
  }
8
24
  }
9
25
 
@@ -4,8 +4,10 @@
4
4
  $search-spacers: (
5
5
  "icon-spacer-left": map-get($spacers, 3),
6
6
  "icon-spacer-top": math.div(($form-select-height - map-get($icon, "xs")), 2),
7
- "icon-spacer-top-md":
8
- math.div(($form-select-height-md - map-get($icon, "xs")), 2),
7
+ "icon-spacer-top-md": math.div(
8
+ ($form-select-height-md - map-get($icon, "xs")),
9
+ 2
10
+ ),
9
11
  "submit-spacer-right": map-get($spacers, 3),
10
12
  );
11
13
 
@@ -1,3 +1,4 @@
1
+ // stylelint-disable no-descending-specificity
1
2
  .nav {
2
3
  &.bcl__nav {
3
4
  border: none;
@@ -9,6 +10,10 @@
9
10
  &:hover {
10
11
  background: rgba($primary, 0.3);
11
12
  }
13
+ &:focus-visible {
14
+ border-radius: 4px;
15
+ outline-offset: -2px;
16
+ }
12
17
  &.disabled {
13
18
  color: $gray-600;
14
19
  }
@@ -19,12 +24,37 @@
19
24
  border-right: none;
20
25
  border-bottom: map-get($border-widths, 2) solid $primary;
21
26
  border-left: none;
27
+ &:focus-visible {
28
+ outline-color: $primary;
29
+ }
22
30
  }
23
31
  }
24
32
  }
25
33
  &.bg-gray {
26
34
  background: $gray-200;
27
35
  }
36
+ .nav-link {
37
+ &:focus-visible {
38
+ outline: 2px solid $primary;
39
+ outline-offset: -2px;
40
+ border-radius: 4px;
41
+ }
42
+ }
43
+ &.nav-pills {
44
+ .nav-link.active {
45
+ outline-color: $white;
46
+ outline-offset: -3px;
47
+ }
48
+ }
49
+ &.nav-tabs {
50
+ .nav-link.active {
51
+ &:focus-visible {
52
+ border-radius: 4px;
53
+ outline: 2px solid $primary;
54
+ outline-offset: -2px;
55
+ }
56
+ }
57
+ }
28
58
  }
29
59
 
30
60
  @include media-breakpoint-down(md) {