elixir-toolkit-theme 1.22.0 → 1.23.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/footer.html +25 -2
  3. data/_includes/section-navigation-tiles-simple.html +3 -0
  4. data/_includes/section-navigation-tiles.html +2 -2
  5. data/_includes/topnav.html +9 -1
  6. data/_sass/_variables.scss +1 -0
  7. data/_sass/bootstrap/_accordion.scss +56 -25
  8. data/_sass/bootstrap/_alert.scss +18 -4
  9. data/_sass/bootstrap/_badge.scss +14 -5
  10. data/_sass/bootstrap/_breadcrumb.scss +22 -10
  11. data/_sass/bootstrap/_button-group.scss +4 -1
  12. data/_sass/bootstrap/_buttons.scss +125 -29
  13. data/_sass/bootstrap/_card.scss +55 -37
  14. data/_sass/bootstrap/_carousel.scss +0 -3
  15. data/_sass/bootstrap/_close.scss +1 -1
  16. data/_sass/bootstrap/_containers.scss +1 -1
  17. data/_sass/bootstrap/_dropdown.scss +85 -76
  18. data/_sass/bootstrap/_functions.scss +9 -9
  19. data/_sass/bootstrap/_grid.scss +3 -3
  20. data/_sass/bootstrap/_helpers.scss +1 -0
  21. data/_sass/bootstrap/_list-group.scss +48 -30
  22. data/_sass/bootstrap/_maps.scss +54 -0
  23. data/_sass/bootstrap/_modal.scss +71 -43
  24. data/_sass/bootstrap/_nav.scss +53 -20
  25. data/_sass/bootstrap/_navbar.scss +93 -150
  26. data/_sass/bootstrap/_offcanvas.scss +120 -59
  27. data/_sass/bootstrap/_pagination.scss +66 -21
  28. data/_sass/bootstrap/_placeholders.scss +1 -1
  29. data/_sass/bootstrap/_popover.scss +90 -52
  30. data/_sass/bootstrap/_progress.scss +20 -9
  31. data/_sass/bootstrap/_reboot.scss +25 -40
  32. data/_sass/bootstrap/_root.scss +40 -21
  33. data/_sass/bootstrap/_spinners.scss +38 -22
  34. data/_sass/bootstrap/_tables.scss +32 -23
  35. data/_sass/bootstrap/_toasts.scss +38 -16
  36. data/_sass/bootstrap/_tooltip.scss +61 -56
  37. data/_sass/bootstrap/_type.scss +2 -0
  38. data/_sass/bootstrap/_utilities.scss +43 -26
  39. data/_sass/bootstrap/_variables.scss +128 -135
  40. data/_sass/bootstrap/bootstrap-grid.scss +3 -6
  41. data/_sass/bootstrap/bootstrap-reboot.scss +3 -7
  42. data/_sass/bootstrap/bootstrap-utilities.scss +6 -6
  43. data/_sass/bootstrap/bootstrap.scss +4 -6
  44. data/_sass/bootstrap/forms/_floating-labels.scss +15 -3
  45. data/_sass/bootstrap/forms/_form-check.scss +28 -5
  46. data/_sass/bootstrap/forms/_form-control.scss +12 -37
  47. data/_sass/bootstrap/forms/_form-select.scss +0 -1
  48. data/_sass/bootstrap/forms/_input-group.scss +19 -8
  49. data/_sass/bootstrap/helpers/_color-bg.scss +10 -0
  50. data/_sass/bootstrap/helpers/_colored-links.scss +2 -2
  51. data/_sass/bootstrap/helpers/_position.scss +7 -1
  52. data/_sass/bootstrap/helpers/_ratio.scss +2 -2
  53. data/_sass/bootstrap/helpers/_vr.scss +1 -1
  54. data/_sass/bootstrap/mixins/_alert.scss +7 -3
  55. data/_sass/bootstrap/mixins/_banner.scss +9 -0
  56. data/_sass/bootstrap/mixins/_breakpoints.scss +8 -8
  57. data/_sass/bootstrap/mixins/_buttons.scss +32 -95
  58. data/_sass/bootstrap/mixins/_container.scss +4 -2
  59. data/_sass/bootstrap/mixins/_forms.scss +18 -10
  60. data/_sass/bootstrap/mixins/_gradients.scss +1 -1
  61. data/_sass/bootstrap/mixins/_grid.scss +12 -12
  62. data/_sass/bootstrap/mixins/_pagination.scss +4 -25
  63. data/_sass/bootstrap/mixins/_reset-text.scss +1 -1
  64. data/_sass/bootstrap/mixins/_table-variants.scss +12 -9
  65. data/_sass/bootstrap/mixins/_utilities.scss +13 -5
  66. data/assets/css/main.scss +22 -3
  67. data/assets/img/ett_compact_logo_bw.svg +22 -0
  68. data/assets/js/bootstrap.bundle.min.js +3 -3
  69. data/assets/js/bootstrap.bundle.min.js.map +1 -1
  70. metadata +6 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 032ea43d4f95971dd6ab880ca40d68a27cfeee11f97beaae7ef9a92c4098f533
4
- data.tar.gz: 435d45b9b94719ec9ae35861810a1132ef8392ade862e4e028c09791b6528761
3
+ metadata.gz: e7c7dba8eaa7c94e093f9e33e43b1b6cec0e2bd4475beef5daa659e56a612bca
4
+ data.tar.gz: 699e822493ae2c7e496d8ecaeb53960d738203926047545a0ddeaf7576dede28
5
5
  SHA512:
6
- metadata.gz: b090f9d55545f07aa6ed45634a64b583cfe677826fea2be4b622dc6fdd7933c96b05b94aed47690b98de9cc05af31bc7b686e38988e123d7453dbe282e2b626d
7
- data.tar.gz: 1dc1bd3d28ca86e2cbf348b80d245f7b297ce6e70de07251fec854388bcea78b0e538065ae1d5a9f07efa4e5f6445eeb785eac291cbb36379070c3e3d80a7cf7
6
+ metadata.gz: 6ebb5fa836f5e3d74070188ab12555131975af0a235b77e8d4a896b2d69cc5d3a3b7097cc87c3a1b27fbdaba90e4328aaf2b96346b1696f9022fc6de260a9a25
7
+ data.tar.gz: d79865c2e207841211f4cac88a823aab578f22163a2368b196c813e3d441818e6694b9205478d1f0e4760829a2831165cb220a5aa60c29d614b215347fd3bcb5
@@ -41,9 +41,32 @@
41
41
  <div class="copyright p-4">
42
42
  <div class="container d-flex justify-content-between flex-column flex-lg-row">
43
43
  {%- unless site.data.footer.copyright == nil %}
44
- <div class="d-flex align-items-center mb-3 mb-lg-0">{{ site.data.footer.copyright | markdownify }}</div>
44
+ <div class="d-flex align-items-center mb-3 mb-lg-0 mx-auto mx-lg-0 text-center">{{ site.data.footer.copyright | markdownify }}</div>
45
45
  {%- endunless %}
46
- <div class="d-flex align-items-center ms-0 ms-lg-4"><a class="text-nowrap" href="https://elixir-belgium.github.io/elixir-toolkit-theme">Powered by <img alt="ELIXIR Toolkit Logo" width="30px" src="{{'assets/img/ett_compact_logo.svg' | relative_url}}"></a></div>
46
+ <div class="d-flex align-items-center mx-auto ms-lg-4 me-lg-0">
47
+ <a id="ett-logo" class="text-nowrap" href="https://elixir-belgium.github.io/elixir-toolkit-theme">Built with
48
+ <svg data-name="ETT logo" xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 77.2 77.12">
49
+ <defs>
50
+ <style>
51
+ .cls-2,
52
+ .cls-3 {
53
+ fill: #fff;
54
+ pointer-events: none;
55
+ }
56
+
57
+ .cls-2 {
58
+ opacity: 0.18;
59
+ }
60
+ </style>
61
+ </defs>
62
+ <g>
63
+ <circle class="cls-1" cx="38.56" cy="38.56" r="38.56" />
64
+ <path class="cls-2" d="M9,48.08a44.19,44.19,0,0,0,4.68,19.84A38.56,38.56,0,1,0,55.16,3.72c-.59,0-1.19-.05-1.79-.05A44.4,44.4,0,0,0,9,48.08Z" />
65
+ <path class="cls-3" d="M54,20.52H13.64a.85.85,0,0,0-.84.85v34a.84.84,0,0,0,.84.84H30a.84.84,0,0,0,.85-.84V51.16a.85.85,0,0,0-.85-.85H20.07a.85.85,0,0,1-.85-.85V42a.85.85,0,0,1,.85-.84h8.66a.85.85,0,0,0,.85-.85V36.06a.85.85,0,0,0-.85-.85H20.07a.85.85,0,0,1-.85-.84V27.29a.85.85,0,0,1,.85-.85H38.26a.85.85,0,0,1,.85.85V55.38a.84.84,0,0,0,.85.84h4.73a.84.84,0,0,0,.85-.84V27.29a.85.85,0,0,1,.84-.85H61.27a.85.85,0,0,1,.84.85V55.38a.84.84,0,0,0,.85.84h4.73a.84.84,0,0,0,.85-.84V27.29a.85.85,0,0,1,.85-.85h6.77a.84.84,0,0,0,.84-.85V21.37a.84.84,0,0,0-.84-.85Z" />
66
+ </g>
67
+ </svg>
68
+ </a>
69
+ </div>
47
70
  </div>
48
71
  </div>
49
72
  </footer>
@@ -1,10 +1,13 @@
1
1
  {%- assign allcountries = site.data.countries %}
2
+ {%- assign except = include.except | split: ", " %}
2
3
  <div class="row row-cols-1 row-cols-md-2 g-3 mb-5 navigation-tiles">
3
4
  {%- for current_page in site.pages | sorted %}
4
5
  {%- if current_page.title and current_page.search_exclude != true and current_page.type == include.type %}
6
+ {%- unless except contains current_page.name %}
5
7
  <div class="col d-grid">
6
8
  <a role="button" class="btn bg-light py-4 fs-3 hover-primary" href="{{ current_page.url | relative_url }}">{{current_page.title}}<span class="flag-icon ms-3 flag-icon-{{current_page.country_code | downcase }}"></span></a>
7
9
  </div>
10
+ {% endunless %}
8
11
  {%- endif %}
9
12
  {%- endfor %}
10
13
  </div>
@@ -1,4 +1,4 @@
1
- {%- unless include.affiliations == nil and include.search == nil and include.related_pages == nil %}
1
+ {%- unless include.affiliations == nil and include.search == nil %}
2
2
  {%- assign allcountries = site.data.countries %}
3
3
  {%- for current_page in site.pages | sorted %}
4
4
  {%- if current_page.affiliations and current_page.search_exclude != true and current_page.type == include.type %}
@@ -147,7 +147,7 @@
147
147
  {%- if country_link %}
148
148
  <a role="button" href="{{country_link.url | relative_url}}" data-bs-toggle="tooltip" title="{{allcountries[country]}}" class="btn btn-sm bg-white hover-primary">
149
149
  {%- else %}
150
- <a role="button" data-bs-toggle="tooltip" title="{{allcountries[country]}}" class="btn btn-sm bg-white hover-primary disabled" aria-disabled="true">
150
+ <a role="button" data-bs-toggle="tooltip" title="{{allcountries[country]}}" class="btn btn-sm bg-white hover-primary disabled border-white" aria-disabled="true">
151
151
  {%- endif %}
152
152
  <div class="d-block h-24px">
153
153
  <span class="flag-icon flag-icon-{{affiliation | downcase}} align-items-center"></span>
@@ -58,7 +58,15 @@
58
58
  {%- endif %}
59
59
  {%- if site.theme_variables.topnav.github or site.theme_variables.topnav.github == nil %}
60
60
  <li class="nav-item ms-0 ms-lg-3 mt-2 mt-lg-0">
61
- <a class="nav-link ps-2 d-flex align-items-center" href="{{site.github.repository_url}}"><i class="fa-brands fa-github me-2"></i>{{site.theme_variables.git_host | default: 'GitHub' }}</a>
61
+ <a class="nav-link ps-2 d-flex align-items-center" href="{{site.github.repository_url}}">
62
+ {%- assign git_host = site.theme_variables.git_host | downcase %}
63
+ {%- if git_host == 'gitlab' %}
64
+ <i class="fa-brands fa-gitlab me-2"></i>
65
+ {%- else %}
66
+ <i class="fa-brands fa-github me-2"></i>
67
+ {%- endif %}
68
+ {{site.theme_variables.git_host | default: 'GitHub' }}
69
+ </a>
62
70
  </li>
63
71
  {%- endif %}
64
72
  {%- unless include.search == false %}
@@ -68,3 +68,4 @@ $footer-color: $dark;
68
68
  $footer-link-color: $dark;
69
69
  $footer-link-color-hover: $primary;
70
70
  $footer-copyright-bg: $gray-200;
71
+ $footer-ett: $dark;
@@ -2,43 +2,70 @@
2
2
  // Base styles
3
3
  //
4
4
 
5
+ .accordion {
6
+ // scss-docs-start accordion-css-vars
7
+ --#{$prefix}accordion-color: #{$accordion-color};
8
+ --#{$prefix}accordion-bg: #{$accordion-bg};
9
+ --#{$prefix}accordion-transition: #{$accordion-transition};
10
+ --#{$prefix}accordion-border-color: #{$accordion-border-color};
11
+ --#{$prefix}accordion-border-width: #{$accordion-border-width};
12
+ --#{$prefix}accordion-border-radius: #{$accordion-border-radius};
13
+ --#{$prefix}accordion-inner-border-radius: #{$accordion-inner-border-radius};
14
+ --#{$prefix}accordion-btn-padding-x: #{$accordion-button-padding-x};
15
+ --#{$prefix}accordion-btn-padding-y: #{$accordion-button-padding-y};
16
+ --#{$prefix}accordion-btn-color: #{$accordion-button-color};
17
+ --#{$prefix}accordion-btn-bg: #{$accordion-button-bg};
18
+ --#{$prefix}accordion-btn-icon: #{escape-svg($accordion-button-icon)};
19
+ --#{$prefix}accordion-btn-icon-width: #{$accordion-icon-width};
20
+ --#{$prefix}accordion-btn-icon-transform: #{$accordion-icon-transform};
21
+ --#{$prefix}accordion-btn-icon-transition: #{$accordion-icon-transition};
22
+ --#{$prefix}accordion-btn-active-icon: #{escape-svg($accordion-button-active-icon)};
23
+ --#{$prefix}accordion-btn-focus-border-color: #{$accordion-button-focus-border-color};
24
+ --#{$prefix}accordion-btn-focus-box-shadow: #{$accordion-button-focus-box-shadow};
25
+ --#{$prefix}accordion-body-padding-x: #{$accordion-body-padding-x};
26
+ --#{$prefix}accordion-body-padding-y: #{$accordion-body-padding-y};
27
+ --#{$prefix}accordion-active-color: #{$accordion-button-active-color};
28
+ --#{$prefix}accordion-active-bg: #{$accordion-button-active-bg};
29
+ // scss-docs-end accordion-css-vars
30
+ }
31
+
5
32
  .accordion-button {
6
33
  position: relative;
7
34
  display: flex;
8
35
  align-items: center;
9
36
  width: 100%;
10
- padding: $accordion-button-padding-y $accordion-button-padding-x;
37
+ padding: var(--#{$prefix}accordion-btn-padding-y) var(--#{$prefix}accordion-btn-padding-x);
11
38
  @include font-size($font-size-base);
12
- color: $accordion-button-color;
39
+ color: var(--#{$prefix}accordion-btn-color);
13
40
  text-align: left; // Reset button style
14
- background-color: $accordion-button-bg;
41
+ background-color: var(--#{$prefix}accordion-btn-bg);
15
42
  border: 0;
16
43
  @include border-radius(0);
17
44
  overflow-anchor: none;
18
- @include transition($accordion-transition);
45
+ @include transition(var(--#{$prefix}accordion-transition));
19
46
 
20
47
  &:not(.collapsed) {
21
- color: $accordion-button-active-color;
22
- background-color: $accordion-button-active-bg;
23
- box-shadow: inset 0 ($accordion-border-width * -1) 0 $accordion-border-color;
48
+ color: var(--#{$prefix}accordion-active-color);
49
+ background-color: var(--#{$prefix}accordion-active-bg);
50
+ box-shadow: inset 0 calc(-1 * var(--#{$prefix}accordion-border-width)) 0 var(--#{$prefix}accordion-border-color); // stylelint-disable-line function-disallowed-list
24
51
 
25
52
  &::after {
26
- background-image: escape-svg($accordion-button-active-icon);
27
- transform: $accordion-icon-transform;
53
+ background-image: var(--#{$prefix}accordion-btn-active-icon);
54
+ transform: var(--#{$prefix}accordion-btn-icon-transform);
28
55
  }
29
56
  }
30
57
 
31
58
  // Accordion icon
32
59
  &::after {
33
60
  flex-shrink: 0;
34
- width: $accordion-icon-width;
35
- height: $accordion-icon-width;
61
+ width: var(--#{$prefix}accordion-btn-icon-width);
62
+ height: var(--#{$prefix}accordion-btn-icon-width);
36
63
  margin-left: auto;
37
64
  content: "";
38
- background-image: escape-svg($accordion-button-icon);
65
+ background-image: var(--#{$prefix}accordion-btn-icon);
39
66
  background-repeat: no-repeat;
40
- background-size: $accordion-icon-width;
41
- @include transition($accordion-icon-transition);
67
+ background-size: var(--#{$prefix}accordion-btn-icon-width);
68
+ @include transition(var(--#{$prefix}accordion-btn-icon-transition));
42
69
  }
43
70
 
44
71
  &:hover {
@@ -47,9 +74,9 @@
47
74
 
48
75
  &:focus {
49
76
  z-index: 3;
50
- border-color: $accordion-button-focus-border-color;
77
+ border-color: var(--#{$prefix}accordion-btn-focus-border-color);
51
78
  outline: 0;
52
- box-shadow: $accordion-button-focus-box-shadow;
79
+ box-shadow: var(--#{$prefix}accordion-btn-focus-box-shadow);
53
80
  }
54
81
  }
55
82
 
@@ -58,14 +85,15 @@
58
85
  }
59
86
 
60
87
  .accordion-item {
61
- background-color: $accordion-bg;
62
- border: $accordion-border-width solid $accordion-border-color;
88
+ color: var(--#{$prefix}accordion-color);
89
+ background-color: var(--#{$prefix}accordion-bg);
90
+ border: var(--#{$prefix}accordion-border-width) solid var(--#{$prefix}accordion-border-color);
63
91
 
64
92
  &:first-of-type {
65
- @include border-top-radius($accordion-border-radius);
93
+ @include border-top-radius(var(--#{$prefix}accordion-border-radius));
66
94
 
67
95
  .accordion-button {
68
- @include border-top-radius($accordion-inner-border-radius);
96
+ @include border-top-radius(var(--#{$prefix}accordion-inner-border-radius));
69
97
  }
70
98
  }
71
99
 
@@ -75,22 +103,22 @@
75
103
 
76
104
  // Only set a border-radius on the last item if the accordion is collapsed
77
105
  &:last-of-type {
78
- @include border-bottom-radius($accordion-border-radius);
106
+ @include border-bottom-radius(var(--#{$prefix}accordion-border-radius));
79
107
 
80
108
  .accordion-button {
81
109
  &.collapsed {
82
- @include border-bottom-radius($accordion-inner-border-radius);
110
+ @include border-bottom-radius(var(--#{$prefix}accordion-inner-border-radius));
83
111
  }
84
112
  }
85
113
 
86
114
  .accordion-collapse {
87
- @include border-bottom-radius($accordion-border-radius);
115
+ @include border-bottom-radius(var(--#{$prefix}accordion-border-radius));
88
116
  }
89
117
  }
90
118
  }
91
119
 
92
120
  .accordion-body {
93
- padding: $accordion-body-padding-y $accordion-body-padding-x;
121
+ padding: var(--#{$prefix}accordion-body-padding-y) var(--#{$prefix}accordion-body-padding-x);
94
122
  }
95
123
 
96
124
 
@@ -112,7 +140,10 @@
112
140
  &:last-child { border-bottom: 0; }
113
141
 
114
142
  .accordion-button {
115
- @include border-radius(0);
143
+ &,
144
+ &.collapsed {
145
+ @include border-radius(0);
146
+ }
116
147
  }
117
148
  }
118
149
  }
@@ -3,11 +3,24 @@
3
3
  //
4
4
 
5
5
  .alert {
6
+ // scss-docs-start alert-css-vars
7
+ --#{$prefix}alert-bg: transparent;
8
+ --#{$prefix}alert-padding-x: #{$alert-padding-x};
9
+ --#{$prefix}alert-padding-y: #{$alert-padding-y};
10
+ --#{$prefix}alert-margin-bottom: #{$alert-margin-bottom};
11
+ --#{$prefix}alert-color: inherit;
12
+ --#{$prefix}alert-border-color: transparent;
13
+ --#{$prefix}alert-border: #{$alert-border-width} solid var(--#{$prefix}alert-border-color);
14
+ --#{$prefix}alert-border-radius: #{$alert-border-radius};
15
+ // scss-docs-end alert-css-vars
16
+
6
17
  position: relative;
7
- padding: $alert-padding-y $alert-padding-x;
8
- margin-bottom: $alert-margin-bottom;
9
- border: $alert-border-width solid transparent;
10
- @include border-radius($alert-border-radius);
18
+ padding: var(--#{$prefix}alert-padding-y) var(--#{$prefix}alert-padding-x);
19
+ margin-bottom: var(--#{$prefix}alert-margin-bottom);
20
+ color: var(--#{$prefix}alert-color);
21
+ background-color: var(--#{$prefix}alert-bg);
22
+ border: var(--#{$prefix}alert-border);
23
+ @include border-radius(var(--#{$prefix}alert-border-radius));
11
24
  }
12
25
 
13
26
  // Headings for larger alerts
@@ -47,6 +60,7 @@
47
60
  $alert-background: shift-color($value, $alert-bg-scale);
48
61
  $alert-border: shift-color($value, $alert-border-scale);
49
62
  $alert-color: shift-color($value, $alert-color-scale);
63
+
50
64
  @if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) {
51
65
  $alert-color: mix($value, color-contrast($alert-background), abs($alert-color-scale));
52
66
  }
@@ -4,16 +4,25 @@
4
4
  // `background-color`.
5
5
 
6
6
  .badge {
7
+ // scss-docs-start badge-css-vars
8
+ --#{$prefix}badge-padding-x: #{$badge-padding-x};
9
+ --#{$prefix}badge-padding-y: #{$badge-padding-y};
10
+ @include rfs($badge-font-size, --#{$prefix}badge-font-size);
11
+ --#{$prefix}badge-font-weight: #{$badge-font-weight};
12
+ --#{$prefix}badge-color: #{$badge-color};
13
+ --#{$prefix}badge-border-radius: #{$badge-border-radius};
14
+ // scss-docs-end badge-css-vars
15
+
7
16
  display: inline-block;
8
- padding: $badge-padding-y $badge-padding-x;
9
- @include font-size($badge-font-size);
10
- font-weight: $badge-font-weight;
17
+ padding: var(--#{$prefix}badge-padding-y) var(--#{$prefix}badge-padding-x);
18
+ @include font-size(var(--#{$prefix}badge-font-size));
19
+ font-weight: var(--#{$prefix}badge-font-weight);
11
20
  line-height: 1;
12
- color: $badge-color;
21
+ color: var(--#{$prefix}badge-color);
13
22
  text-align: center;
14
23
  white-space: nowrap;
15
24
  vertical-align: baseline;
16
- @include border-radius($badge-border-radius);
25
+ @include border-radius(var(--#{$prefix}badge-border-radius));
17
26
  @include gradient-bg();
18
27
 
19
28
  // Empty badges collapse automatically
@@ -1,28 +1,40 @@
1
1
  .breadcrumb {
2
+ // scss-docs-start breadcrumb-css-vars
3
+ --#{$prefix}breadcrumb-padding-x: #{$breadcrumb-padding-x};
4
+ --#{$prefix}breadcrumb-padding-y: #{$breadcrumb-padding-y};
5
+ --#{$prefix}breadcrumb-margin-bottom: #{$breadcrumb-margin-bottom};
6
+ @include rfs($breadcrumb-font-size, --#{$prefix}breadcrumb-font-size);
7
+ --#{$prefix}breadcrumb-bg: #{$breadcrumb-bg};
8
+ --#{$prefix}breadcrumb-border-radius: #{$breadcrumb-border-radius};
9
+ --#{$prefix}breadcrumb-divider-color: #{$breadcrumb-divider-color};
10
+ --#{$prefix}breadcrumb-item-padding-x: #{$breadcrumb-item-padding-x};
11
+ --#{$prefix}breadcrumb-item-active-color: #{$breadcrumb-active-color};
12
+ // scss-docs-end breadcrumb-css-vars
13
+
2
14
  display: flex;
3
15
  flex-wrap: wrap;
4
- padding: $breadcrumb-padding-y $breadcrumb-padding-x;
5
- margin-bottom: $breadcrumb-margin-bottom;
6
- @include font-size($breadcrumb-font-size);
16
+ padding: var(--#{$prefix}breadcrumb-padding-y) var(--#{$prefix}breadcrumb-padding-x);
17
+ margin-bottom: var(--#{$prefix}breadcrumb-margin-bottom);
18
+ @include font-size(var(--#{$prefix}breadcrumb-font-size));
7
19
  list-style: none;
8
- background-color: $breadcrumb-bg;
9
- @include border-radius($breadcrumb-border-radius);
20
+ background-color: var(--#{$prefix}breadcrumb-bg);
21
+ @include border-radius(var(--#{$prefix}breadcrumb-border-radius));
10
22
  }
11
23
 
12
24
  .breadcrumb-item {
13
25
  // The separator between breadcrumbs (by default, a forward-slash: "/")
14
26
  + .breadcrumb-item {
15
- padding-left: $breadcrumb-item-padding-x;
27
+ padding-left: var(--#{$prefix}breadcrumb-item-padding-x);
16
28
 
17
29
  &::before {
18
30
  float: left; // Suppress inline spacings and underlining of the separator
19
- padding-right: $breadcrumb-item-padding-x;
20
- color: $breadcrumb-divider-color;
21
- content: var(--#{$variable-prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)) #{"/* rtl:"} var(--#{$variable-prefix}breadcrumb-divider, escape-svg($breadcrumb-divider-flipped)) #{"*/"};
31
+ padding-right: var(--#{$prefix}breadcrumb-item-padding-x);
32
+ color: var(--#{$prefix}breadcrumb-divider-color);
33
+ content: var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)) #{"/* rtl:"} var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider-flipped)) #{"*/"};
22
34
  }
23
35
  }
24
36
 
25
37
  &.active {
26
- color: $breadcrumb-active-color;
38
+ color: var(--#{$prefix}breadcrumb-item-active-color);
27
39
  }
28
40
  }
@@ -34,14 +34,17 @@
34
34
  }
35
35
 
36
36
  .btn-group {
37
+ @include border-radius($btn-border-radius);
38
+
37
39
  // Prevent double borders when buttons are next to each other
38
- > .btn:not(:first-child),
40
+ > :not(.btn-check:first-child) + .btn,
39
41
  > .btn-group:not(:first-child) {
40
42
  margin-left: -$btn-border-width;
41
43
  }
42
44
 
43
45
  // Reset rounded corners
44
46
  > .btn:not(:last-child):not(.dropdown-toggle),
47
+ > .btn.dropdown-toggle-split:first-child,
45
48
  > .btn-group:not(:last-child) > .btn {
46
49
  @include border-end-radius(0);
47
50
  }
@@ -3,49 +3,112 @@
3
3
  //
4
4
 
5
5
  .btn {
6
+ // scss-docs-start btn-css-vars
7
+ --#{$prefix}btn-padding-x: #{$btn-padding-x};
8
+ --#{$prefix}btn-padding-y: #{$btn-padding-y};
9
+ --#{$prefix}btn-font-family: #{$btn-font-family};
10
+ @include rfs($btn-font-size, --#{$prefix}btn-font-size);
11
+ --#{$prefix}btn-font-weight: #{$btn-font-weight};
12
+ --#{$prefix}btn-line-height: #{$btn-line-height};
13
+ --#{$prefix}btn-color: #{$body-color};
14
+ --#{$prefix}btn-bg: transparent;
15
+ --#{$prefix}btn-border-width: #{$btn-border-width};
16
+ --#{$prefix}btn-border-color: transparent;
17
+ --#{$prefix}btn-border-radius: #{$btn-border-radius};
18
+ --#{$prefix}btn-hover-border-color: transparent;
19
+ --#{$prefix}btn-box-shadow: #{$btn-box-shadow};
20
+ --#{$prefix}btn-disabled-opacity: #{$btn-disabled-opacity};
21
+ --#{$prefix}btn-focus-box-shadow: 0 0 0 #{$btn-focus-width} rgba(var(--#{$prefix}btn-focus-shadow-rgb), .5);
22
+ // scss-docs-end btn-css-vars
23
+
6
24
  display: inline-block;
7
- font-family: $btn-font-family;
8
- font-weight: $btn-font-weight;
9
- line-height: $btn-line-height;
10
- color: $body-color;
25
+ padding: var(--#{$prefix}btn-padding-y) var(--#{$prefix}btn-padding-x);
26
+ font-family: var(--#{$prefix}btn-font-family);
27
+ @include font-size(var(--#{$prefix}btn-font-size));
28
+ font-weight: var(--#{$prefix}btn-font-weight);
29
+ line-height: var(--#{$prefix}btn-line-height);
30
+ color: var(--#{$prefix}btn-color);
11
31
  text-align: center;
12
32
  text-decoration: if($link-decoration == none, null, none);
13
33
  white-space: $btn-white-space;
14
34
  vertical-align: middle;
15
35
  cursor: if($enable-button-pointers, pointer, null);
16
36
  user-select: none;
17
- background-color: transparent;
18
- border: $btn-border-width solid transparent;
19
- @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-border-radius);
37
+ border: var(--#{$prefix}btn-border-width) solid var(--#{$prefix}btn-border-color);
38
+ @include border-radius(var(--#{$prefix}btn-border-radius));
39
+ @include gradient-bg(var(--#{$prefix}btn-bg));
40
+ @include box-shadow(var(--#{$prefix}btn-box-shadow));
20
41
  @include transition($btn-transition);
21
42
 
22
43
  &:hover {
23
- color: $body-color;
44
+ color: var(--#{$prefix}btn-hover-color);
24
45
  text-decoration: if($link-hover-decoration == underline, none, null);
46
+ background-color: var(--#{$prefix}btn-hover-bg);
47
+ border-color: var(--#{$prefix}btn-hover-border-color);
48
+ }
49
+
50
+ .btn-check + &:hover {
51
+ // override for the checkbox/radio buttons
52
+ color: var(--#{$prefix}btn-color);
53
+ background-color: var(--#{$prefix}btn-bg);
54
+ border-color: var(--#{$prefix}btn-border-color);
25
55
  }
26
56
 
27
- .btn-check:focus + &,
28
- &:focus {
57
+ &:focus-visible {
58
+ color: var(--#{$prefix}btn-hover-color);
59
+ @include gradient-bg(var(--#{$prefix}btn-hover-bg));
60
+ border-color: var(--#{$prefix}btn-hover-border-color);
29
61
  outline: 0;
30
- box-shadow: $btn-focus-box-shadow;
62
+ // Avoid using mixin so we can pass custom focus shadow properly
63
+ @if $enable-shadows {
64
+ box-shadow: var(--#{$prefix}btn-box-shadow), var(--#{$prefix}btn-focus-box-shadow);
65
+ } @else {
66
+ box-shadow: var(--#{$prefix}btn-focus-box-shadow);
67
+ }
31
68
  }
32
69
 
33
- .btn-check:checked + &,
34
- .btn-check:active + &,
35
- &:active,
36
- &.active {
37
- @include box-shadow($btn-active-box-shadow);
70
+ .btn-check:focus-visible + & {
71
+ border-color: var(--#{$prefix}btn-hover-border-color);
72
+ outline: 0;
73
+ // Avoid using mixin so we can pass custom focus shadow properly
74
+ @if $enable-shadows {
75
+ box-shadow: var(--#{$prefix}btn-box-shadow), var(--#{$prefix}btn-focus-box-shadow);
76
+ } @else {
77
+ box-shadow: var(--#{$prefix}btn-focus-box-shadow);
78
+ }
79
+ }
38
80
 
39
- &:focus {
40
- @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);
81
+ .btn-check:checked + &,
82
+ :not(.btn-check) + &:active,
83
+ &:first-child:active,
84
+ &.active,
85
+ &.show {
86
+ color: var(--#{$prefix}btn-active-color);
87
+ background-color: var(--#{$prefix}btn-active-bg);
88
+ // Remove CSS gradients if they're enabled
89
+ background-image: if($enable-gradients, none, null);
90
+ border-color: var(--#{$prefix}btn-active-border-color);
91
+ @include box-shadow(var(--#{$prefix}btn-active-shadow));
92
+
93
+ &:focus-visible {
94
+ // Avoid using mixin so we can pass custom focus shadow properly
95
+ @if $enable-shadows {
96
+ box-shadow: var(--#{$prefix}btn-active-shadow), var(--#{$prefix}btn-focus-box-shadow);
97
+ } @else {
98
+ box-shadow: var(--#{$prefix}btn-focus-box-shadow);
99
+ }
41
100
  }
42
101
  }
43
102
 
44
103
  &:disabled,
45
104
  &.disabled,
46
105
  fieldset:disabled & {
106
+ color: var(--#{$prefix}btn-disabled-color);
47
107
  pointer-events: none;
48
- opacity: $btn-disabled-opacity;
108
+ background-color: var(--#{$prefix}btn-disabled-bg);
109
+ background-image: if($enable-gradients, none, null);
110
+ border-color: var(--#{$prefix}btn-disabled-border-color);
111
+ opacity: var(--#{$prefix}btn-disabled-opacity);
49
112
  @include box-shadow(none);
50
113
  }
51
114
  }
@@ -58,7 +121,27 @@
58
121
  // scss-docs-start btn-variant-loops
59
122
  @each $color, $value in $theme-colors {
60
123
  .btn-#{$color} {
61
- @include button-variant($value, $value);
124
+ @if $color == "light" {
125
+ @include button-variant(
126
+ $value,
127
+ $value,
128
+ $hover-background: shade-color($value, $btn-hover-bg-shade-amount),
129
+ $hover-border: shade-color($value, $btn-hover-border-shade-amount),
130
+ $active-background: shade-color($value, $btn-active-bg-shade-amount),
131
+ $active-border: shade-color($value, $btn-active-border-shade-amount)
132
+ );
133
+ } @else if $color == "dark" {
134
+ @include button-variant(
135
+ $value,
136
+ $value,
137
+ $hover-background: tint-color($value, $btn-hover-bg-tint-amount),
138
+ $hover-border: tint-color($value, $btn-hover-border-tint-amount),
139
+ $active-background: tint-color($value, $btn-active-bg-tint-amount),
140
+ $active-border: tint-color($value, $btn-active-border-tint-amount)
141
+ );
142
+ } @else {
143
+ @include button-variant($value, $value);
144
+ }
62
145
  }
63
146
  }
64
147
 
@@ -76,22 +159,35 @@
76
159
 
77
160
  // Make a button look and behave like a link
78
161
  .btn-link {
79
- font-weight: $font-weight-normal;
80
- color: $btn-link-color;
162
+ --#{$prefix}btn-font-weight: #{$font-weight-normal};
163
+ --#{$prefix}btn-color: #{$btn-link-color};
164
+ --#{$prefix}btn-bg: transparent;
165
+ --#{$prefix}btn-border-color: transparent;
166
+ --#{$prefix}btn-hover-color: #{$btn-link-hover-color};
167
+ --#{$prefix}btn-hover-border-color: transparent;
168
+ --#{$prefix}btn-active-color: #{$btn-link-hover-color};
169
+ --#{$prefix}btn-active-border-color: transparent;
170
+ --#{$prefix}btn-disabled-color: #{$btn-link-disabled-color};
171
+ --#{$prefix}btn-disabled-border-color: transparent;
172
+ --#{$prefix}btn-box-shadow: none;
173
+ --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix(color-contrast($primary), $primary, 15%))};
174
+
81
175
  text-decoration: $link-decoration;
176
+ @if $enable-gradients {
177
+ background-image: none;
178
+ }
82
179
 
83
- &:hover {
84
- color: $btn-link-hover-color;
180
+ &:hover,
181
+ &:focus-visible {
85
182
  text-decoration: $link-hover-decoration;
86
183
  }
87
184
 
88
- &:focus {
89
- text-decoration: $link-hover-decoration;
185
+ &:focus-visible {
186
+ color: var(--#{$prefix}btn-color);
90
187
  }
91
188
 
92
- &:disabled,
93
- &.disabled {
94
- color: $btn-link-disabled-color;
189
+ &:hover {
190
+ color: var(--#{$prefix}btn-hover-color);
95
191
  }
96
192
 
97
193
  // No need for an active state here