paraqeet 1.1.0 → 2.0.4

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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +1 -1
  4. data/_includes/icon.html +10 -19
  5. data/_sass/_highlight.scss +85 -64
  6. data/_sass/bootstrap/_accordion.scss +10 -15
  7. data/_sass/bootstrap/_button-group.scss +8 -3
  8. data/_sass/bootstrap/_buttons.scss +9 -0
  9. data/_sass/bootstrap/_card.scss +1 -2
  10. data/_sass/bootstrap/_carousel.scss +17 -35
  11. data/_sass/bootstrap/_close.scss +9 -6
  12. data/_sass/bootstrap/_functions.scss +1 -1
  13. data/_sass/bootstrap/_list-group.scss +27 -25
  14. data/_sass/bootstrap/_modal.scss +6 -3
  15. data/_sass/bootstrap/_nav.scss +1 -1
  16. data/_sass/bootstrap/_navbar.scss +1 -1
  17. data/_sass/bootstrap/_offcanvas.scss +2 -1
  18. data/_sass/bootstrap/_pagination.scss +1 -1
  19. data/_sass/bootstrap/_progress.scss +1 -1
  20. data/_sass/bootstrap/_reboot.scss +1 -1
  21. data/_sass/bootstrap/_tables.scss +1 -1
  22. data/_sass/bootstrap/_type.scss +1 -1
  23. data/_sass/bootstrap/_variables-dark.scss +17 -2
  24. data/_sass/bootstrap/_variables.scss +21 -15
  25. data/_sass/bootstrap/forms/_floating-labels.scss +18 -16
  26. data/_sass/bootstrap/forms/_form-check.scss +1 -1
  27. data/_sass/bootstrap/forms/_input-group.scss +1 -1
  28. data/_sass/bootstrap/mixins/_banner.scss +2 -2
  29. data/_sass/bootstrap/mixins/_forms.scss +12 -2
  30. data/_sass/bootstrap/mixins/_grid.scss +2 -2
  31. data/_sass/bootstrap/mixins/_visually-hidden.scss +1 -1
  32. data/_sass/bootstrap/tests/mixins/_auto-import-of-variables-dark.test.scss +7 -0
  33. data/_sass/bootstrap/tests/mixins/_utilities.test.scss +1 -1
  34. data/assets/js/bootstrap.bundle.js +17 -20
  35. data/assets/js/bootstrap.bundle.js.map +1 -1
  36. data/assets/js/bootstrap.bundle.min.js +3 -3
  37. data/assets/js/bootstrap.bundle.min.js.map +1 -1
  38. data/assets/js/bootstrap.esm.js +17 -18
  39. data/assets/js/bootstrap.esm.js.map +1 -1
  40. data/assets/js/bootstrap.esm.min.js +3 -3
  41. data/assets/js/bootstrap.esm.min.js.map +1 -1
  42. data/assets/js/bootstrap.js +17 -18
  43. data/assets/js/bootstrap.js.map +1 -1
  44. data/assets/js/bootstrap.min.js +3 -3
  45. data/assets/js/bootstrap.min.js.map +1 -1
  46. metadata +6 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d93e27cea052ab9ee046c37a363011c872b15e64c004f71990619fbac02526cf
4
- data.tar.gz: 5c6758016517e65ca6f0ec32ca7cb0f9ebcc179a568ed58e4ec3d421ac28955b
3
+ metadata.gz: '0394544ac0cc07e4e6bf453ffd724fff0e2bf6ea87078c4cfb56b6ef481e2043'
4
+ data.tar.gz: 43977f3d0f8cb11fadd831c83c98e1a1a1d5c2ccf0d6853d7bdc47cd45f8ba70
5
5
  SHA512:
6
- metadata.gz: e40547161b374a367492663e61018f4c824d506f3c8fc867a06fec8c40fa75e2eba7851034d5df55ec8da0af83015daa949328c7001c3f8521e26fa5eecc55f5
7
- data.tar.gz: 7d8fd21d7033fd20a5604e2adca7289dd208959eae1c75597ccbbc3a2f31ae51c21bddd47508b29d0f14fab2b53b61c14fdf27c23fa0e0c18c2839df456881e6
6
+ metadata.gz: 025e72e4aca102c737df837ebbf53bb722b2b95fc97b82f62343a3b7fa4a7efce6691e62d9a0c79d9bad5afe2aa04012983e88938d262e876339fc13be7cb3a8
7
+ data.tar.gz: 46d271ee78862c06c3917857095f62d2204e97f0ced7527bbbfd598e90864655275cb9b2e9e99d5f08b5d82dda8e544361d4dd042420133bd07bf0b61245861f
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2024 Signified
3
+ Copyright (c) 2025 Signified
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Paraqeet
2
2
 
3
- Paraqeet is a [Jekyll](https://jekyllrb.com/) theme for building websites using [Bootstrap](https://getbootstrap.com/) - the most popular HTML, CSS, and JS library in the world. Paraqeet comes pre-loaded with the latest versions of Bootstrap and [Bootstrap Icons](https://icons.getbootstrap.com/), as well as built-in CSS theme support for [Rouge](http://rouge.jneen.net/) - Jekyll's default code syntax highlighter.
3
+ Paraqeet is a Jekyll theme for building websites using Bootstrap - the most popular HTML, CSS, and JS library in the world. Paraqeet comes pre-loaded with the latest versions of Bootstrap and Bootstrap Icons - the official open source SVG icon library for Bootstrap, as well as built-in Sass support for Rouge - Jekylls default code syntax highlighter.
4
4
 
5
5
  ## Installation and Usage
6
6
 
data/_includes/icon.html CHANGED
@@ -1,46 +1,37 @@
1
+ {%- assign icon = nil -%}
2
+
1
3
  {%- assign name = include.name | downcase -%}
2
4
  {%- assign type = 'font' -%}
3
5
  {%- assign size = 16 -%}
4
- {%- assign width = size -%}
5
- {%- assign height = size -%}
6
- {%- assign class = nil -%}
7
- {%- assign style = nil -%}
8
-
9
- {%- assign icon = nil -%}
6
+ {%- assign class = 'bi bi-' | append: name -%}
10
7
 
11
8
  {%- assign title = name | replace: '-', ' ' | capitalize | escape -%}
9
+ {%- assign path = '/assets/bootstrap-icons/' | relative_url -%}
12
10
 
13
11
  {%- if include.type -%}
14
12
  {%- assign type = include.type | downcase -%}
15
13
  {%- endif -%}
16
14
 
17
15
  {%- if include.size -%}
18
- {%- assign width = include.size -%}
19
- {%- assign height = include.size -%}
20
- {%- endif -%}
21
-
22
- {%- if include.width -%}
23
- {%- assign width = include.width -%}
16
+ {%- assign size = include.size -%}
24
17
  {%- endif -%}
25
18
 
26
- {%- if include.height -%}
27
- {%- assign height = include.height -%}
19
+ {%- if include.class -%}
20
+ {%- assign class = class | append: ' ' | append: include.class -%}
28
21
  {%- endif -%}
29
22
 
30
23
  {%- case type -%}
31
24
  {%- when 'font' -%}
32
25
  {%- capture icon -%}
33
- <i class="bi-{{- name -}}{% if include.class %} {{ include.class }}{% endif %}" role="img" aria-label="{{- title -}}"{% if include.style %} style="{{ include.style }}"{% endif %}></i>
26
+ <i aria-label="{{- title -}}" role="img" class="{{- class -}}"></i>
34
27
  {%- endcapture -%}
35
28
  {%- when 'image' -%}
36
- {%- assign image = '/assets/bootstrap-icons/' | append: name | append: '.svg' -%}
37
29
  {%- capture icon -%}
38
- <img{% if include.class %} class="{{ include.class }}"{% endif %} src="{{- image | relative_url -}}" alt="{{- title -}}" width="{{- width -}}" height="{{- height -}}"{% if include.style %} style="{{ include.style }}"{% endif %}>
30
+ <img alt="{{- title -}}" role="img" class="{{- class -}}" width="{{- size -}}" height="{{- size -}}" src="{{- path -}}{{- name -}}.svg">
39
31
  {%- endcapture -%}
40
32
  {%- when 'sprite' -%}
41
- {%- assign image = '/assets/bootstrap-icons/bootstrap-icons.svg#' | append: name -%}
42
33
  {%- capture icon -%}
43
- <svg class="bi{% if include.class %} {{ include.class }}{% endif %}" width="{{- width -}}" height="{{- height -}}" fill="currentColor" role="img" aria-label="{{- title -}}"{% if include.style %} style="{{ include.style }}"{% endif %}><use xlink:href="{{- image | relative_url -}}"/></svg>
34
+ <svg aria-label="{{- title -}}" role="img" focusable="false" class="{{- class -}}" width="{{- size -}}" height="{{- size -}}" fill="currentColor"><use xlink:href="{{- path -}}bootstrap-icons.svg#{{- name -}}"/></svg>
44
35
  {%- endcapture -%}
45
36
  {%- endcase -%}
46
37
 
@@ -1,20 +1,41 @@
1
+ :root,
2
+ [data-bs-theme="light"] {
3
+ --base00: #{$light};
4
+ --base01: #{$pre-color};
5
+ --base02: #{$text-muted};
6
+ --base03: #{$gray-400};
7
+ --base04: #{$blue-400};
8
+ --base05: #{$indigo-400};
9
+ --base06: #{$purple-400};
10
+ --base07: #{$pink-400};
11
+ --base08: #{$red-400};
12
+ --base09: #{$orange-400};
13
+ --base10: #{$yellow-100};
14
+ --base11: #{$green-400};
15
+ }
16
+
17
+ @include color-mode(dark, true) {
18
+ --base00: #{$black};
19
+ }
20
+
1
21
  .highlight {
2
22
 
3
- width: 100%;
23
+ & {
24
+ width: 100%;
25
+ margin: 0;
26
+ padding: 0;
27
+ background-color: var(--base00);
28
+ border-radius: $border-radius;
29
+ }
4
30
 
5
31
  * {
6
32
  font-size: $font-size-sm;
7
33
  }
8
34
 
9
- margin: 0;
10
- padding: 0;
11
- background-color: $light;
12
- border-radius: $border-radius;
13
-
14
35
  pre {
15
36
  margin: 0;
16
37
  padding: $spacer;
17
- color: $pre-color;
38
+ color: var(--base01);
18
39
  }
19
40
 
20
41
  td {
@@ -28,33 +49,7 @@
28
49
  .lineno {
29
50
  padding: 0 $spacer 0 0;
30
51
  text-align: right;
31
- color: $text-muted;
32
- }
33
-
34
- .hll {
35
- background-color: $yellow-100;
36
- }
37
-
38
- .c,
39
- .ch,
40
- .cm,
41
- .cpf,
42
- .c1,
43
- .cs,
44
- .k,
45
- .kc,
46
- .kd,
47
- .kn,
48
- .kp,
49
- .kr,
50
- .nb,
51
- .nt,
52
- .sx,
53
- .bp,
54
- .gi,
55
- .na,
56
- .nl {
57
- color: $green-400;
52
+ color: var(--base02);
58
53
  }
59
54
 
60
55
  .o,
@@ -68,12 +63,37 @@
68
63
  .go,
69
64
  .ni,
70
65
  .w {
71
- color: $gray-400;
66
+ color: var(--base03);
72
67
  }
73
68
 
74
- .cp,
75
- .se {
76
- color: $orange-400;
69
+ .gh,
70
+ .gp,
71
+ .gt,
72
+ .nc,
73
+ .nf,
74
+ .nn,
75
+ .fm,
76
+ .nv,
77
+ .ss,
78
+ .vc,
79
+ .vg,
80
+ .vi,
81
+ .vm {
82
+ color: var(--base04);
83
+ }
84
+
85
+ .nd,
86
+ .ow {
87
+ color: var(--base05);
88
+ }
89
+
90
+ .gu {
91
+ color: var(--base06);
92
+ }
93
+
94
+ .si,
95
+ .sr {
96
+ color: var(--base07);
77
97
  }
78
98
 
79
99
  .gd,
@@ -90,37 +110,38 @@
90
110
  .s1,
91
111
  .no,
92
112
  .ne {
93
- color: $red-400;
113
+ color: var(--base08);
94
114
  }
95
115
 
96
- .gh,
97
- .gp,
98
- .gt,
99
- .nc,
100
- .nf,
101
- .nn,
102
- .fm,
103
- .nv,
104
- .ss,
105
- .vc,
106
- .vg,
107
- .vi,
108
- .vm {
109
- color: $blue-400;
110
- }
111
-
112
- .gu {
113
- color: $purple-400;
116
+ .cp,
117
+ .se {
118
+ color: var(--base09);
114
119
  }
115
120
 
116
- .nd,
117
- .ow {
118
- color: $indigo-400;
121
+ .hll {
122
+ background-color: var(--base10);
119
123
  }
120
124
 
121
- .si,
122
- .sr {
123
- color: $pink-400;
125
+ .c,
126
+ .ch,
127
+ .cm,
128
+ .cpf,
129
+ .c1,
130
+ .cs,
131
+ .k,
132
+ .kc,
133
+ .kd,
134
+ .kn,
135
+ .kp,
136
+ .kr,
137
+ .nb,
138
+ .nt,
139
+ .sx,
140
+ .bp,
141
+ .gi,
142
+ .na,
143
+ .nl {
144
+ color: var(--base11);
124
145
  }
125
146
 
126
147
  .k,
@@ -155,7 +176,7 @@
155
176
  }
156
177
 
157
178
  .err {
158
- border: 1px solid $red-400;
179
+ border: 1px solid var(--base08);
159
180
  }
160
181
 
161
182
  }
@@ -20,7 +20,6 @@
20
20
  --#{$prefix}accordion-btn-icon-transform: #{$accordion-icon-transform};
21
21
  --#{$prefix}accordion-btn-icon-transition: #{$accordion-icon-transition};
22
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
23
  --#{$prefix}accordion-btn-focus-box-shadow: #{$accordion-button-focus-box-shadow};
25
24
  --#{$prefix}accordion-body-padding-x: #{$accordion-body-padding-x};
26
25
  --#{$prefix}accordion-body-padding-y: #{$accordion-body-padding-y};
@@ -74,7 +73,6 @@
74
73
 
75
74
  &:focus {
76
75
  z-index: 3;
77
- border-color: var(--#{$prefix}accordion-btn-focus-border-color);
78
76
  outline: 0;
79
77
  box-shadow: var(--#{$prefix}accordion-btn-focus-box-shadow);
80
78
  }
@@ -92,7 +90,7 @@
92
90
  &:first-of-type {
93
91
  @include border-top-radius(var(--#{$prefix}accordion-border-radius));
94
92
 
95
- .accordion-button {
93
+ > .accordion-header .accordion-button {
96
94
  @include border-top-radius(var(--#{$prefix}accordion-inner-border-radius));
97
95
  }
98
96
  }
@@ -105,13 +103,13 @@
105
103
  &:last-of-type {
106
104
  @include border-bottom-radius(var(--#{$prefix}accordion-border-radius));
107
105
 
108
- .accordion-button {
106
+ > .accordion-header .accordion-button {
109
107
  &.collapsed {
110
108
  @include border-bottom-radius(var(--#{$prefix}accordion-inner-border-radius));
111
109
  }
112
110
  }
113
111
 
114
- .accordion-collapse {
112
+ > .accordion-collapse {
115
113
  @include border-bottom-radius(var(--#{$prefix}accordion-border-radius));
116
114
  }
117
115
  }
@@ -127,11 +125,7 @@
127
125
  // Remove borders and border-radius to keep accordion items edge-to-edge.
128
126
 
129
127
  .accordion-flush {
130
- .accordion-collapse {
131
- border-width: 0;
132
- }
133
-
134
- .accordion-item {
128
+ > .accordion-item {
135
129
  border-right: 0;
136
130
  border-left: 0;
137
131
  @include border-radius(0);
@@ -139,12 +133,13 @@
139
133
  &:first-child { border-top: 0; }
140
134
  &:last-child { border-bottom: 0; }
141
135
 
142
- .accordion-button {
143
- &,
144
- &.collapsed {
145
- @include border-radius(0);
146
- }
136
+ // stylelint-disable selector-max-class
137
+ > .accordion-collapse,
138
+ > .accordion-header .accordion-button,
139
+ > .accordion-header .accordion-button.collapsed {
140
+ @include border-radius(0);
147
141
  }
142
+ // stylelint-enable selector-max-class
148
143
  }
149
144
  }
150
145
 
@@ -39,7 +39,7 @@
39
39
  // Prevent double borders when buttons are next to each other
40
40
  > :not(.btn-check:first-child) + .btn,
41
41
  > .btn-group:not(:first-child) {
42
- margin-left: calc(#{$btn-border-width} * -1); // stylelint-disable-line function-disallowed-list
42
+ margin-left: calc(-1 * #{$btn-border-width}); // stylelint-disable-line function-disallowed-list
43
43
  }
44
44
 
45
45
  // Reset rounded corners
@@ -126,7 +126,7 @@
126
126
 
127
127
  > .btn:not(:first-child),
128
128
  > .btn-group:not(:first-child) {
129
- margin-top: calc(#{$btn-border-width} * -1); // stylelint-disable-line function-disallowed-list
129
+ margin-top: calc(-1 * #{$btn-border-width}); // stylelint-disable-line function-disallowed-list
130
130
  }
131
131
 
132
132
  // Reset rounded corners
@@ -135,7 +135,12 @@
135
135
  @include border-bottom-radius(0);
136
136
  }
137
137
 
138
- > .btn ~ .btn,
138
+ // The top radius should be 0 if the button is:
139
+ // - the "third or more" child
140
+ // - the second child and the previous element isn't `.btn-check` (making it the first child visually)
141
+ // - part of a btn-group which isn't the first child
142
+ > .btn:nth-child(n + 3),
143
+ > :not(.btn-check) + .btn,
139
144
  > .btn-group:not(:first-child) > .btn {
140
145
  @include border-top-radius(0);
141
146
  }
@@ -100,6 +100,15 @@
100
100
  }
101
101
  }
102
102
 
103
+ .btn-check:checked:focus-visible + & {
104
+ // Avoid using mixin so we can pass custom focus shadow properly
105
+ @if $enable-shadows {
106
+ box-shadow: var(--#{$prefix}btn-active-shadow), var(--#{$prefix}btn-focus-box-shadow);
107
+ } @else {
108
+ box-shadow: var(--#{$prefix}btn-focus-box-shadow);
109
+ }
110
+ }
111
+
103
112
  &:disabled,
104
113
  &.disabled,
105
114
  fieldset:disabled & {
@@ -193,8 +193,7 @@
193
193
  // The child selector allows nested `.card` within `.card-group`
194
194
  // to display properly.
195
195
  > .card {
196
- // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
197
- flex: 1 0 0%;
196
+ flex: 1 0 0;
198
197
  margin-bottom: 0;
199
198
 
200
199
  + .card {
@@ -99,6 +99,7 @@
99
99
  color: $carousel-control-color;
100
100
  text-align: center;
101
101
  background: none;
102
+ filter: var(--#{$prefix}carousel-control-icon-filter);
102
103
  border: 0;
103
104
  opacity: $carousel-control-opacity;
104
105
  @include transition($carousel-control-transition);
@@ -132,19 +133,11 @@
132
133
  background-size: 100% 100%;
133
134
  }
134
135
 
135
- /* rtl:options: {
136
- "autoRename": true,
137
- "stringMap":[ {
138
- "name" : "prev-next",
139
- "search" : "prev",
140
- "replace" : "next"
141
- } ]
142
- } */
143
136
  .carousel-control-prev-icon {
144
- background-image: escape-svg($carousel-control-prev-icon-bg);
137
+ background-image: escape-svg($carousel-control-prev-icon-bg) #{"/*rtl:" + escape-svg($carousel-control-next-icon-bg) + "*/"};
145
138
  }
146
139
  .carousel-control-next-icon {
147
- background-image: escape-svg($carousel-control-next-icon-bg);
140
+ background-image: escape-svg($carousel-control-next-icon-bg) #{"/*rtl:" + escape-svg($carousel-control-prev-icon-bg) + "*/"};
148
141
  }
149
142
 
150
143
  // Optional indicator pips/controls
@@ -176,7 +169,7 @@
176
169
  margin-left: $carousel-indicator-spacer;
177
170
  text-indent: -999px;
178
171
  cursor: pointer;
179
- background-color: $carousel-indicator-active-bg;
172
+ background-color: var(--#{$prefix}carousel-indicator-active-bg);
180
173
  background-clip: padding-box;
181
174
  border: 0;
182
175
  // Use transparent borders to increase the hit area by 10px on top and bottom.
@@ -203,42 +196,31 @@
203
196
  left: (100% - $carousel-caption-width) * .5;
204
197
  padding-top: $carousel-caption-padding-y;
205
198
  padding-bottom: $carousel-caption-padding-y;
206
- color: $carousel-caption-color;
199
+ color: var(--#{$prefix}carousel-caption-color);
207
200
  text-align: center;
208
201
  }
209
202
 
210
203
  // Dark mode carousel
211
204
 
212
205
  @mixin carousel-dark() {
213
- .carousel-control-prev-icon,
214
- .carousel-control-next-icon {
215
- filter: $carousel-dark-control-icon-filter;
216
- }
217
-
218
- .carousel-indicators [data-bs-target] {
219
- background-color: $carousel-dark-indicator-active-bg;
220
- }
221
-
222
- .carousel-caption {
223
- color: $carousel-dark-caption-color;
224
- }
206
+ --#{$prefix}carousel-indicator-active-bg: #{$carousel-indicator-active-bg-dark};
207
+ --#{$prefix}carousel-caption-color: #{$carousel-caption-color-dark};
208
+ --#{$prefix}carousel-control-icon-filter: #{$carousel-control-icon-filter-dark};
225
209
  }
226
210
 
227
211
  .carousel-dark {
228
212
  @include carousel-dark();
229
213
  }
230
214
 
215
+ :root,
216
+ [data-bs-theme="light"] {
217
+ --#{$prefix}carousel-indicator-active-bg: #{$carousel-indicator-active-bg};
218
+ --#{$prefix}carousel-caption-color: #{$carousel-caption-color};
219
+ --#{$prefix}carousel-control-icon-filter: #{$carousel-control-icon-filter};
220
+ }
221
+
231
222
  @if $enable-dark-mode {
232
- @include color-mode(dark) {
233
- @if $color-mode-type == "media-query" {
234
- .carousel {
235
- @include carousel-dark();
236
- }
237
- } @else {
238
- .carousel,
239
- &.carousel {
240
- @include carousel-dark();
241
- }
242
- }
223
+ @include color-mode(dark, true) {
224
+ @include carousel-dark();
243
225
  }
244
226
  }
@@ -12,7 +12,6 @@
12
12
  --#{$prefix}btn-close-focus-shadow: #{$btn-close-focus-shadow};
13
13
  --#{$prefix}btn-close-focus-opacity: #{$btn-close-focus-opacity};
14
14
  --#{$prefix}btn-close-disabled-opacity: #{$btn-close-disabled-opacity};
15
- --#{$prefix}btn-close-white-filter: #{$btn-close-white-filter};
16
15
  // scss-docs-end close-css-vars
17
16
 
18
17
  box-sizing: content-box;
@@ -21,6 +20,7 @@
21
20
  padding: $btn-close-padding-y $btn-close-padding-x;
22
21
  color: var(--#{$prefix}btn-close-color);
23
22
  background: transparent var(--#{$prefix}btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements
23
+ filter: var(--#{$prefix}btn-close-filter);
24
24
  border: 0; // for button elements
25
25
  @include border-radius();
26
26
  opacity: var(--#{$prefix}btn-close-opacity);
@@ -47,17 +47,20 @@
47
47
  }
48
48
 
49
49
  @mixin btn-close-white() {
50
- filter: var(--#{$prefix}btn-close-white-filter);
50
+ --#{$prefix}btn-close-filter: #{$btn-close-filter-dark};
51
51
  }
52
52
 
53
53
  .btn-close-white {
54
54
  @include btn-close-white();
55
55
  }
56
56
 
57
+ :root,
58
+ [data-bs-theme="light"] {
59
+ --#{$prefix}btn-close-filter: #{$btn-close-filter};
60
+ }
61
+
57
62
  @if $enable-dark-mode {
58
- @include color-mode(dark) {
59
- .btn-close {
60
- @include btn-close-white();
61
- }
63
+ @include color-mode(dark, true) {
64
+ @include btn-close-white();
62
65
  }
63
66
  }
@@ -177,7 +177,7 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003
177
177
  @return if($l1 > $l2, divide($l1 + .05, $l2 + .05), divide($l2 + .05, $l1 + .05));
178
178
  }
179
179
 
180
- // Return WCAG2.1 relative luminance
180
+ // Return WCAG2.2 relative luminance
181
181
  // See https://www.w3.org/TR/WCAG/#dfn-relative-luminance
182
182
  // See https://www.w3.org/TR/WCAG/#dfn-contrast-ratio
183
183
  @function luminance($color) {
@@ -43,31 +43,6 @@
43
43
  }
44
44
  }
45
45
 
46
- // Interactive list items
47
- //
48
- // Use anchor or button elements instead of `li`s or `div`s to create interactive
49
- // list items. Includes an extra `.active` modifier class for selected items.
50
-
51
- .list-group-item-action {
52
- width: 100%; // For `<button>`s (anchors become 100% by default though)
53
- color: var(--#{$prefix}list-group-action-color);
54
- text-align: inherit; // For `<button>`s (anchors inherit)
55
-
56
- // Hover state
57
- &:hover,
58
- &:focus {
59
- z-index: 1; // Place hover/focus items above their siblings for proper border styling
60
- color: var(--#{$prefix}list-group-action-hover-color);
61
- text-decoration: none;
62
- background-color: var(--#{$prefix}list-group-action-hover-bg);
63
- }
64
-
65
- &:active {
66
- color: var(--#{$prefix}list-group-action-active-color);
67
- background-color: var(--#{$prefix}list-group-action-active-bg);
68
- }
69
- }
70
-
71
46
  // Individual list items
72
47
  //
73
48
  // Use on `li`s or `div`s within the `.list-group` parent.
@@ -115,6 +90,33 @@
115
90
  }
116
91
  }
117
92
 
93
+ // Interactive list items
94
+ //
95
+ // Use anchor or button elements instead of `li`s or `div`s to create interactive
96
+ // list items. Includes an extra `.active` modifier class for selected items.
97
+
98
+ .list-group-item-action {
99
+ width: 100%; // For `<button>`s (anchors become 100% by default though)
100
+ color: var(--#{$prefix}list-group-action-color);
101
+ text-align: inherit; // For `<button>`s (anchors inherit)
102
+
103
+ &:not(.active) {
104
+ // Hover state
105
+ &:hover,
106
+ &:focus {
107
+ z-index: 1; // Place hover/focus items above their siblings for proper border styling
108
+ color: var(--#{$prefix}list-group-action-hover-color);
109
+ text-decoration: none;
110
+ background-color: var(--#{$prefix}list-group-action-hover-bg);
111
+ }
112
+
113
+ &:active {
114
+ color: var(--#{$prefix}list-group-action-active-color);
115
+ background-color: var(--#{$prefix}list-group-action-active-bg);
116
+ }
117
+ }
118
+ }
119
+
118
120
  // Horizontal
119
121
  //
120
122
  // Change the layout of list group items from vertical (default) to horizontal.
@@ -59,8 +59,8 @@
59
59
 
60
60
  // When fading in the modal, animate it to slide down
61
61
  .modal.fade & {
62
- @include transition($modal-transition);
63
62
  transform: $modal-fade-transform;
63
+ @include transition($modal-transition);
64
64
  }
65
65
  .modal.show & {
66
66
  transform: $modal-show-transform;
@@ -126,14 +126,17 @@
126
126
  display: flex;
127
127
  flex-shrink: 0;
128
128
  align-items: center;
129
- justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends
130
129
  padding: var(--#{$prefix}modal-header-padding);
131
130
  border-bottom: var(--#{$prefix}modal-header-border-width) solid var(--#{$prefix}modal-header-border-color);
132
131
  @include border-top-radius(var(--#{$prefix}modal-inner-border-radius));
133
132
 
134
133
  .btn-close {
135
134
  padding: calc(var(--#{$prefix}modal-header-padding-y) * .5) calc(var(--#{$prefix}modal-header-padding-x) * .5);
136
- margin: calc(-.5 * var(--#{$prefix}modal-header-padding-y)) calc(-.5 * var(--#{$prefix}modal-header-padding-x)) calc(-.5 * var(--#{$prefix}modal-header-padding-y)) auto;
135
+ // Split properties to avoid invalid calc() function if value is 0
136
+ margin-top: calc(-.5 * var(--#{$prefix}modal-header-padding-y));
137
+ margin-right: calc(-.5 * var(--#{$prefix}modal-header-padding-x));
138
+ margin-bottom: calc(-.5 * var(--#{$prefix}modal-header-padding-y));
139
+ margin-left: auto;
137
140
  }
138
141
  }
139
142
 
@@ -169,8 +169,8 @@
169
169
  .nav-justified {
170
170
  > .nav-link,
171
171
  .nav-item {
172
- flex-basis: 0;
173
172
  flex-grow: 1;
173
+ flex-basis: 0;
174
174
  text-align: center;
175
175
  }
176
176
  }
@@ -139,8 +139,8 @@
139
139
  // the default flexbox row orientation. Requires the use of `flex-wrap: wrap`
140
140
  // on the `.navbar` parent.
141
141
  .navbar-collapse {
142
- flex-basis: 100%;
143
142
  flex-grow: 1;
143
+ flex-basis: 100%;
144
144
  // For always expanded or extra full navbars, ensure content aligns itself
145
145
  // properly vertically. Can be easily overridden with flex utilities.
146
146
  align-items: center;