vanilla-framework 4.13.0 → 4.15.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.
@@ -0,0 +1,121 @@
1
+ @mixin vf-p-navigation-reduced {
2
+ .p-navigation--reduced {
3
+ // height of reduced navigation calculated from line height and padding
4
+ $reduced-nav-height: calc(map-get($line-heights, x-small) + 2 * $spv--small);
5
+
6
+ background-color: $colors--theme--background-alt;
7
+ position: relative;
8
+ z-index: 99; // display above sticky top navigation, but below modals/overlays
9
+
10
+ // LOGO OVERRIDES FOR REDUCED NAVIGATION
11
+
12
+ // orange logo tag is hidden in reduced navigation
13
+ .p-navigation__tagged-logo {
14
+ .p-navigation__logo-tag {
15
+ display: none;
16
+ }
17
+
18
+ @media (min-width: $breakpoint-navigation-threshold) {
19
+ // on large screens align the logo with the grid start
20
+ .p-navigation__link {
21
+ padding-left: 0;
22
+ }
23
+ }
24
+ }
25
+
26
+ // reduced nav logo text uses default font size (on small screens)
27
+ .p-navigation__logo-title {
28
+ color: $colors--theme--text-muted;
29
+ font-size: #{map-get($font-sizes, default)}rem;
30
+ font-weight: $font-weight-regular-text;
31
+ }
32
+
33
+ // reduced padding on small screens
34
+ .p-navigation__link {
35
+ padding-bottom: $spv--medium;
36
+ padding-top: $spv--medium;
37
+ }
38
+
39
+ // links in the banner (Menu toggle, search toggle) use muted text colour
40
+ .p-navigation__banner .p-navigation__link {
41
+ color: $colors--theme--text-muted;
42
+ }
43
+
44
+ // REDUCED SIZE OF NAVIGATION ON LARGE SCREENS
45
+ @media (min-width: $breakpoint-navigation-threshold) {
46
+ // adjust font size for reduced nav on large screens
47
+ .p-navigation__link,
48
+ .p-navigation__logo-title {
49
+ color: $colors--theme--text-muted;
50
+ font-size: #{map-get($font-sizes, small)}rem;
51
+ line-height: map-get($line-heights, x-small);
52
+ }
53
+
54
+ .p-navigation__link {
55
+ padding-bottom: $spv--small;
56
+ padding-top: $spv--small;
57
+ }
58
+
59
+ .p-navigation__item--dropdown-toggle .p-navigation__link {
60
+ &::after {
61
+ @include vf-icon-chevron-muted;
62
+ top: $spv--small;
63
+ }
64
+ }
65
+
66
+ .p-navigation__item--dropdown-toggle.is-active {
67
+ background-color: $colors--theme--background-default;
68
+
69
+ .p-navigation__link {
70
+ color: $colors--theme--text-default;
71
+ }
72
+
73
+ .p-navigation__link::after {
74
+ @include vf-icon-chevron-themed;
75
+ }
76
+ }
77
+
78
+ .p-navigation__link--search-toggle {
79
+ &::after {
80
+ @include vf-icon-search-muted;
81
+ }
82
+ }
83
+ }
84
+
85
+ // SEARCH IN REDUCED NAVIGATION
86
+
87
+ .p-navigation__link--search-toggle {
88
+ // use muted icon to align with text colour
89
+ &::after {
90
+ @include vf-icon-search-muted;
91
+ top: calc($spv--medium + map-get($nudges, x-small));
92
+ }
93
+
94
+ // search label is always hidden in reduced navigation
95
+ .p-navigation__search-label {
96
+ display: none;
97
+ }
98
+
99
+ @media (min-width: $breakpoint-navigation-threshold) {
100
+ &::after {
101
+ top: $spv--small;
102
+ }
103
+ }
104
+ }
105
+
106
+ @media (min-width: $breakpoint-navigation-threshold) {
107
+ &.has-search-open {
108
+ // make sure reduced navigation items remain visible when search is open
109
+ // both classes needed for specificity
110
+ .p-navigation__nav .p-navigation__items {
111
+ display: inline-flex;
112
+ }
113
+
114
+ // position the search under the reduced navigation
115
+ .p-navigation__search {
116
+ top: $reduced-nav-height;
117
+ }
118
+ }
119
+ }
120
+ }
121
+ }
@@ -1,15 +1,14 @@
1
1
  @import 'settings';
2
2
 
3
3
  $lightness-threshold: 70;
4
- $navigation-logo-tag-width: 1.313rem; // 21px when 1rem is 16px
5
- $navigation-logo-tag-height: 2rem;
6
- $navigation-logo-tag-height-desktop: 2.3rem;
7
- $navigation-logo-banner-height: 3rem; // legacy logo height (small and medium screens)
8
- $navigation-logo-banner-height-desktop: 3.5rem; // legacy logo height (on large screens)
4
+ $navigation-logo-tag-width: 1.375rem; // 22px when 1rem is 16px
5
+ $navigation-logo-tag-height: 2.375rem; // 38px when 1rem is 16px
6
+ $navigation-logo-banner-height: 3.5rem; // legacy logo height (on large screens)
9
7
  $navigation-logo-size: 1rem;
10
- $navigation-logo-padding: calc(1.5rem + 0.19rem); // ~27px to align better with logos as originally designed in SVG
8
+ $navigation-logo-padding: calc(1.5rem + 0.1rem); // ~25.6px to align better with logos as originally designed in SVG
11
9
  $sph-navigation-link: 0.3rem;
12
- $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
10
+ $spv-navigation-logo-bottom-position: 0.25rem; // 4px when 1rem is 16px
11
+ $navigation-height: calc(map-get($line-heights, default-text) + 2 * $spv--large); // navigation bar height based on line height and paddings
13
12
 
14
13
  @mixin vf-p-navigation {
15
14
  // placeholders
@@ -140,8 +139,10 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
140
139
  }
141
140
 
142
141
  .p-navigation,
143
- .p-navigation--sliding {
142
+ .p-navigation--sliding,
143
+ .p-navigation--reduced {
144
144
  background-color: $colors--theme--background-default;
145
+ color: $colors--theme--text-default;
145
146
  display: flex;
146
147
  flex-direction: column;
147
148
  flex-shrink: 0;
@@ -154,6 +155,7 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
154
155
 
155
156
  // p-search-box overrides
156
157
  .p-search-box {
158
+ background-color: $colors--theme--background-default;
157
159
  flex: 1 0 auto;
158
160
  margin-left: map-get($grid-margin-widths, small);
159
161
  margin-right: map-get($grid-margin-widths, small);
@@ -228,6 +230,7 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
228
230
  // shift navigation items by the size of grid margin to align with grid
229
231
  .p-navigation__items:first-child {
230
232
  margin-left: calc(-1 * $sph--large);
233
+ width: calc(100% + $sph--large);
231
234
  }
232
235
 
233
236
  // on medium screen sizes (6 columns) use 2/4 column split
@@ -261,12 +264,33 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
261
264
 
262
265
  max-width: $nav-link-max-width;
263
266
  }
267
+
268
+ &.is-right-shifted {
269
+ margin-left: auto;
270
+ }
264
271
  }
265
272
 
266
273
  .p-navigation__link {
267
274
  @extend %navigation-link;
268
275
  }
269
276
 
277
+ .p-navigation__link--menu-toggle {
278
+ @extend %navigation-link;
279
+
280
+ &::after {
281
+ @extend %icon;
282
+ @include vf-icon-chevron-themed;
283
+ content: '';
284
+ display: inline-block;
285
+ height: 1rem;
286
+ width: 1rem;
287
+ }
288
+
289
+ .has-menu-open &::after {
290
+ transform: rotate(180deg);
291
+ }
292
+ }
293
+
270
294
  // navigation logo
271
295
  .p-navigation__banner {
272
296
  @extend %navigation-link-responsive-padding-left;
@@ -276,10 +300,12 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
276
300
  justify-content: space-between;
277
301
  padding-right: 0;
278
302
 
279
- .p-navigation__link {
303
+ .p-navigation__link,
304
+ .p-navigation__link--menu-toggle {
280
305
  // reset padding for navigation links in the navigation banner
281
306
  @extend %navigation-link-responsive-padding-horizontal;
282
- @extend %navigation-link-responsive-padding-vertical;
307
+ padding-bottom: $spv--large;
308
+ padding-top: $spv--large;
283
309
 
284
310
  // remove navigation separator for navigation links in the navigation banner
285
311
  &::before {
@@ -300,10 +326,6 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
300
326
  height: $navigation-logo-banner-height;
301
327
  margin: 0 $sph--large 0 0;
302
328
 
303
- @media (min-width: $breakpoint-navigation-threshold) {
304
- height: $navigation-logo-banner-height-desktop;
305
- }
306
-
307
329
  .p-navigation__item {
308
330
  @include vf-focus;
309
331
 
@@ -320,24 +342,20 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
320
342
  }
321
343
 
322
344
  .p-navigation__logo-tag {
345
+ align-items: flex-end;
323
346
  background-color: $color-ubuntu;
347
+ display: flex;
324
348
  height: $navigation-logo-tag-height;
349
+ justify-content: center;
325
350
  left: 0;
351
+ padding-bottom: $spv-navigation-logo-bottom-position;
326
352
  position: absolute;
327
353
  top: 0;
328
354
  width: $navigation-logo-tag-width;
329
-
330
- @media (min-width: $breakpoint-navigation-threshold) {
331
- height: $navigation-logo-tag-height-desktop;
332
- }
333
355
  }
334
356
 
335
357
  .p-navigation__logo-icon {
336
- bottom: $spv-navigation-logo-bottom-position;
337
358
  height: $navigation-logo-size;
338
- left: 50%;
339
- position: absolute;
340
- transform: translate(-50%, 0);
341
359
  width: $navigation-logo-size;
342
360
  }
343
361
 
@@ -391,6 +409,7 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
391
409
  display: flex;
392
410
  flex-wrap: wrap;
393
411
  margin-top: 0; // prevents bottom border of nav from moving 1px
412
+ position: static;
394
413
  }
395
414
  }
396
415
 
@@ -494,6 +513,15 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
494
513
  }
495
514
  }
496
515
 
516
+ // STICKY NAVIGATION
517
+ .p-navigation.is-sticky,
518
+ // cover both --sticky and --reduced navigation
519
+ [class^='p-navigation--'].is-sticky {
520
+ position: sticky;
521
+ top: 0;
522
+ z-index: 98; // show it above all other content, but below modal/overlays and reduced navigation
523
+ }
524
+
497
525
  // SEARCH
498
526
 
499
527
  // on mobile screens search box is visible inside of the mobile navigation dropdown
@@ -524,10 +552,9 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
524
552
 
525
553
  // show both label and icon on large screens
526
554
  @media (min-width: $breakpoint-large) {
527
- padding-left: $sph--large;
528
-
529
555
  .p-navigation__search-label {
530
556
  display: initial;
557
+ padding-left: $sph--large;
531
558
  }
532
559
  }
533
560
 
@@ -544,12 +571,8 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
544
571
  position: absolute;
545
572
  right: calc($sph--large / 2);
546
573
  text-indent: calc(100% + 10rem);
547
- top: calc($spv--medium + map-get($nudges, x-small));
574
+ top: calc($spv--large + map-get($nudges, x-small));
548
575
  width: map-get($icon-sizes, default);
549
-
550
- @media (min-width: $breakpoint-navigation-threshold) {
551
- top: calc($spv--large + map-get($nudges, x-small));
552
- }
553
576
  }
554
577
  }
555
578
 
@@ -589,10 +612,12 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
589
612
 
590
613
  // when navigation search is expanded
591
614
  .p-navigation.has-search-open,
592
- .p-navigation--sliding.has-search-open {
615
+ .p-navigation--sliding.has-search-open,
616
+ .p-navigation--reduced.has-search-open {
593
617
  // make sure search in navigation renders on top of the overlay
594
618
  .p-navigation__nav {
595
619
  display: flex;
620
+ position: relative;
596
621
  z-index: 60;
597
622
  }
598
623
 
@@ -603,7 +628,14 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
603
628
 
604
629
  // show expanded search box
605
630
  .p-navigation__search {
631
+ background-color: $colors--theme--background-default;
606
632
  display: flex;
633
+ position: absolute;
634
+ width: 100%;
635
+
636
+ @media (min-width: $breakpoint-navigation-threshold) {
637
+ background-color: transparent;
638
+ }
607
639
  }
608
640
 
609
641
  // fade in search overlay
@@ -611,6 +643,11 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
611
643
  opacity: 0.5;
612
644
  pointer-events: all;
613
645
  }
646
+
647
+ // change search toggle icon to close icon
648
+ .p-navigation__link--search-toggle::after {
649
+ @include vf-icon-close-themed;
650
+ }
614
651
  }
615
652
 
616
653
  .p-navigation.has-menu-open {
@@ -692,6 +729,8 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
692
729
  }
693
730
 
694
731
  &.is-active {
732
+ background: $colors--theme--background-active;
733
+
695
734
  &::after {
696
735
  transform: rotate(0deg);
697
736
 
@@ -710,9 +749,56 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
710
749
  // increase padding to accommodate chevron icon
711
750
  padding-right: calc(2 * $sph--small + map-get($icon-sizes, default));
712
751
  }
752
+ }
713
753
 
714
- &:first-child .p-navigation__link::before {
715
- content: none;
754
+ .p-navigation--reduced .p-navigation__dropdown.is-full-width,
755
+ .p-navigation--sliding .p-navigation__dropdown.is-full-width {
756
+ .p-navigation__dropdown-content--full-width {
757
+ @extend %vf-has-box-shadow;
758
+ @include vf-transition(transform, snap);
759
+ background-color: $colors--theme--background-default;
760
+ border-top: 1px solid $colors--theme--border-default;
761
+ display: none; // hide on small screens
762
+ }
763
+
764
+ // on desktop display full width meganav dropdowns
765
+ @media (min-width: $breakpoint-navigation-threshold) {
766
+ background-color: $color-transparent;
767
+ box-shadow: none;
768
+ left: 0;
769
+ overflow: hidden;
770
+ position: absolute;
771
+ right: 0;
772
+
773
+ // hide mobile sliding menu on full width view
774
+ .p-navigation__dropdown-content--sliding {
775
+ display: none;
776
+ }
777
+
778
+ .p-navigation__dropdown-content--full-width {
779
+ display: block;
780
+ transform: translateY(0);
781
+ }
782
+ }
783
+
784
+ // collapsed dropdowns are animated off-screen
785
+ &.is-collapsed .p-navigation__dropdown-content--full-width {
786
+ transform: translateY(-101%);
787
+ }
788
+
789
+ // rows think they are nested (because they are inside of navigation row)
790
+ // we need to reset them back to original state
791
+ .row,
792
+ [class*='row--'] {
793
+ @extend %fixed-width-container--common-properties;
794
+ }
795
+ }
796
+
797
+ .p-navigation__dropdown-container {
798
+ display: none;
799
+
800
+ .p-navigation__item--dropdown-toggle.is-active & {
801
+ display: block;
716
802
  }
717
803
  }
718
804
 
@@ -749,13 +835,19 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
749
835
 
750
836
  $sliding-nav-animation-settings: map-get($animation-duration, brisk) ease;
751
837
 
752
- .p-navigation--sliding.has-menu-open {
838
+ .p-navigation--sliding.has-menu-open,
839
+ .p-navigation--reduced.has-menu-open {
840
+ box-shadow: $colors--theme--background-overlay 0px 0px 0px 100vh;
753
841
  height: 100vh;
754
842
  overflow-y: hidden;
843
+ position: fixed;
844
+ width: 100vw;
755
845
 
756
846
  @media (min-width: $breakpoint-navigation-threshold) {
757
847
  height: auto;
758
848
  overflow-y: visible;
849
+ position: relative;
850
+ width: auto;
759
851
  }
760
852
 
761
853
  .p-navigation__banner .p-navigation__items {
@@ -768,7 +860,7 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
768
860
  }
769
861
  .p-navigation__nav {
770
862
  display: block;
771
- height: 100vh;
863
+ height: calc(100vh - $navigation-height);
772
864
  overflow-x: hidden;
773
865
 
774
866
  .p-navigation__items {
@@ -792,14 +884,20 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
792
884
  }
793
885
 
794
886
  /* stylelint-disable max-nesting-depth -- allow deep nesting for sliding navigation */
795
- .p-navigation--sliding .p-navigation__dropdown {
887
+ .p-navigation--sliding .p-navigation__dropdown,
888
+ .p-navigation--reduced .p-navigation__dropdown {
796
889
  display: block;
797
- height: 100vh;
890
+ height: calc(100vh - $navigation-height);
798
891
  left: 100vw;
799
892
  position: absolute;
800
893
  top: 0;
801
894
  transition: transform $sliding-nav-animation-settings;
802
895
 
896
+ // set background of child elements to properly cover parent dropdown levels when scrolling
897
+ & > * {
898
+ background: $colors--theme--background-default;
899
+ }
900
+
803
901
  @media (min-width: $breakpoint-navigation-threshold) {
804
902
  display: none;
805
903
  height: auto;
@@ -808,8 +906,9 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
808
906
  top: unset;
809
907
  }
810
908
 
909
+ // overlay to create fade out effect on parent level
811
910
  &::before {
812
- box-shadow: -100vw 15px 0 15px black;
911
+ box-shadow: -100vw 0 0 0 $colors--light-theme--background-overlay;
813
912
  content: '';
814
913
  height: 100%;
815
914
  opacity: 0;
@@ -822,10 +921,14 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
822
921
  }
823
922
  }
824
923
 
924
+ &[aria-hidden='true'] {
925
+ overflow: hidden; // prevent scrolling when dropdown is off screen
926
+ }
927
+
825
928
  &[aria-hidden='false'],
826
929
  &:not([aria-hidden]) {
827
930
  &::before {
828
- @include vf-themed-property(opacity, 0.33, 0.75);
931
+ opacity: 1;
829
932
  }
830
933
 
831
934
  display: block;
@@ -847,7 +950,8 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
847
950
  }
848
951
  }
849
952
 
850
- .p-navigation--sliding .p-navigation__items {
953
+ .p-navigation--sliding .p-navigation__items,
954
+ .p-navigation--reduced .p-navigation__items {
851
955
  transition: transform $sliding-nav-animation-settings;
852
956
 
853
957
  &.is-active {
@@ -878,7 +982,32 @@ $spv-navigation-logo-bottom-position: 0.125rem; // 2px when 1rem is 16px
878
982
  }
879
983
  /* stylelint-enable max-nesting-depth */
880
984
 
881
- .p-navigation--sliding {
985
+ .p-navigation--sliding,
986
+ .p-navigation--reduced {
987
+ // FIXME
988
+ // We want to add some additional spacing on the bottom of the sliding dropdowns
989
+ // so that the last item is not directly at the bottom of the screen when scrolling,
990
+ // but because of the way it's currently implemented, the only way to achieve this
991
+ // is to add padding to the last item in the dropdown.
992
+ // This is a temporary solution until we can find a better way to implement this, but
993
+ // it may require bigger restructuring of the sliding navigation.
994
+
995
+ // top (1st) level navigation dropdown
996
+ .p-navigation__nav .p-navigation__items,
997
+ // 2nd level navigation dropdown (that has separate mobile and desktop versions)
998
+ .p-navigation__dropdown-content--sliding,
999
+ // further nested levels
1000
+ // (because of some weird style combination we have to select last child instead of adding padding on dropdown container itself)
1001
+ .p-navigation__dropdown > :last-child {
1002
+ // should be enough to make some space at the bottom
1003
+ // and workaround the issues of 100vh not taking address toolbar into account
1004
+ padding-bottom: 3rem;
1005
+
1006
+ @media (min-width: $breakpoint-navigation-threshold) {
1007
+ padding-bottom: 0;
1008
+ }
1009
+ }
1010
+
882
1011
  // Default positioning for nested dropdown buttons. Overridden by subsequent styles.
883
1012
  .p-navigation__item--dropdown-toggle {
884
1013
  position: initial;
@@ -13,7 +13,7 @@ $knob-size: $sp-unit * 2;
13
13
  position: absolute;
14
14
 
15
15
  &:checked + .p-switch__slider::before {
16
- border: $input-border-thickness solid $color-link;
16
+ border: $input-border-thickness solid $colors--theme--link-default;
17
17
  left: 50%;
18
18
  }
19
19
 
@@ -22,22 +22,22 @@ $knob-size: $sp-unit * 2;
22
22
  }
23
23
 
24
24
  &:checked + .p-switch__slider {
25
- background: $color-link;
25
+ background: $colors--theme--link-default;
26
26
  }
27
27
 
28
28
  &:focus {
29
29
  outline: none;
30
30
 
31
31
  + .p-switch__slider {
32
- outline: $bar-thickness solid $color-focus;
32
+ outline: $bar-thickness solid $colors--theme--focus;
33
33
  }
34
34
  }
35
35
  }
36
36
 
37
37
  .p-switch__slider {
38
- background: $color-mid-light;
38
+ background: $colors--theme--background-neutral-default;
39
39
  border-radius: $knob-size;
40
- box-shadow: inset 0 2px 5px 0 transparentize($color-dark, 0.8);
40
+ box-shadow: inset 0 2px 5px 0 transparentize($color-x-dark, 0.8);
41
41
  display: inline-block;
42
42
  height: $knob-size;
43
43
  margin: 0;
@@ -48,8 +48,8 @@ $knob-size: $sp-unit * 2;
48
48
  @extend %vf-has-box-shadow;
49
49
  @include vf-transition($duration: slow);
50
50
 
51
- background: $color-x-light;
52
- border: $input-border-thickness solid $color-mid-dark;
51
+ background: $colors--theme--background-default;
52
+ border: $input-border-thickness solid $colors--theme--background-neutral-default;
53
53
  border-radius: 50%;
54
54
  content: '';
55
55
  height: $knob-size;
@@ -29,18 +29,19 @@ $disabled-element-opacity: 0.33;
29
29
 
30
30
  $shadow-opacity: 0.2;
31
31
 
32
- // Link colors
32
+ // Link and focus colors
33
33
  $color-link: #06c !default;
34
34
  $color-link-visited: #7d42b8 !default;
35
35
  $color-focus: #2e96ff !default;
36
36
 
37
37
  $color-link-dark: #69c !default;
38
38
  $color-link-visited-dark: #a679d2 !default;
39
+ $color-focus-dark: #9cf !default;
39
40
 
40
41
  // Focus modifications to meet AA 3:1 contrast ratio against
41
- // button background for positive/negative buttons
42
+ // button background for positive buttons
42
43
  $color-focus-positive: #003008 !default;
43
- $color-focus-negative: #3b0006 !default;
44
+ $color-focus-positive-dark: #9cf !default;
44
45
 
45
46
  // Button background color changes
46
47
  $input-background-opacity-amount: 0.04;
@@ -88,9 +89,11 @@ $states: (
88
89
  // --text-disabled - dimmed version of default text color, to be used on disabled controls
89
90
  // --text-muted - muted version of default text color, to be used on elements with less prominence
90
91
  //
91
- // Link colors:
92
+ // Link and focus colors:
92
93
  // --link-default - default link color
93
94
  // --link-visited - visited link color
95
+ // --focus - focus highlight/outline color
96
+ // --positive-focus - focus highlight/outline color for positive buttons
94
97
  //
95
98
  // Background colors:
96
99
  // --background - default background color
@@ -111,6 +114,8 @@ $colors--light-theme--text-inactive: rgba($color-x-dark, $inactive-text-opacity-
111
114
 
112
115
  $colors--light-theme--link-default: $color-link !default;
113
116
  $colors--light-theme--link-visited: $color-link-visited !default;
117
+ $colors--light-theme--focus: $color-focus !default;
118
+ $colors--light-theme--positive-focus: $color-focus-positive !default;
114
119
 
115
120
  $colors--light-theme--background-default: #fff !default;
116
121
  $colors--light-theme--background-alt: #f7f7f7 !default;
@@ -170,6 +175,8 @@ $colors--dark-theme--text-inactive: rgba($colors--dark-theme--text-default, $ina
170
175
 
171
176
  $colors--dark-theme--link-default: $color-link-dark !default;
172
177
  $colors--dark-theme--link-visited: $color-link-visited-dark !default;
178
+ $colors--dark-theme--focus: $color-focus-dark !default;
179
+ $colors--dark-theme--positive-focus: $color-focus-positive-dark !default;
173
180
 
174
181
  $colors--dark-theme--background-default: #262626 !default;
175
182
  $colors--dark-theme--background-alt: #202020 !default;
@@ -236,6 +243,8 @@ $colors--theme--text-inactive: var(--vf-color-text-inactive);
236
243
 
237
244
  $colors--theme--link-default: var(--vf-color-link-default);
238
245
  $colors--theme--link-visited: var(--vf-color-link-visited);
246
+ $colors--theme--focus: var(--vf-color-focus);
247
+ $colors--theme--positive-focus: var(--vf-color-positive-focus);
239
248
 
240
249
  $colors--theme--background-default: var(--vf-color-background-default);
241
250
  $colors--theme--background-alt: var(--vf-color-background-alt);
@@ -290,6 +299,8 @@ $colors--theme--button-negative-text: var(--vf-color-button-negative-text);
290
299
 
291
300
  --vf-color-link-default: #{$colors--light-theme--link-default};
292
301
  --vf-color-link-visited: #{$colors--light-theme--link-visited};
302
+ --vf-color-focus: #{$colors--light-theme--focus};
303
+ --vf-color-positive-focus: #{$colors--light-theme--positive-focus};
293
304
 
294
305
  --vf-color-background-default: #{$colors--light-theme--background-default};
295
306
  --vf-color-background-alt: #{$colors--light-theme--background-alt};
@@ -344,6 +355,8 @@ $colors--theme--button-negative-text: var(--vf-color-button-negative-text);
344
355
 
345
356
  --vf-color-link-default: #{$colors--dark-theme--link-default};
346
357
  --vf-color-link-visited: #{$colors--dark-theme--link-visited};
358
+ --vf-color-focus: #{$colors--dark-theme--focus};
359
+ --vf-color-positive-focus: #{$colors--dark-theme--positive-focus};
347
360
 
348
361
  --vf-color-background-default: #{$colors--dark-theme--background-default};
349
362
  --vf-color-background-alt: #{$colors--dark-theme--background-alt};
@@ -396,7 +409,7 @@ $colors--theme--button-negative-text: var(--vf-color-button-negative-text);
396
409
 
397
410
  // SCSS variables need to be interpolated to work in CSS custom properties
398
411
  --vf-color-background-default: #{$color-paper};
399
- --vf-color-background-alt: #{$color-x-light};
412
+ --vf-color-background-alt: #{#ebebeb};
400
413
 
401
414
  --vf-color-background-inputs: #{$colors--paper-theme--background-inputs};
402
415
  --vf-color-background-active: #{$colors--paper-theme--background-active};
@@ -18,6 +18,7 @@ $font-sizes: (
18
18
  h3-mobile: 1.5,
19
19
  h4: 1.5,
20
20
  h4-mobile: 1.5,
21
+ default: 1,
21
22
  small: 0.875,
22
23
  x-small: 0.75,
23
24
  ) !default;