bootstrap 5.2.2 → 5.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +61 -0
  3. data/CHANGELOG.md +4 -0
  4. data/Gemfile +1 -0
  5. data/README.md +9 -3
  6. data/Rakefile +17 -4
  7. data/assets/javascripts/bootstrap/alert.js +22 -32
  8. data/assets/javascripts/bootstrap/base-component.js +22 -38
  9. data/assets/javascripts/bootstrap/button.js +19 -22
  10. data/assets/javascripts/bootstrap/carousel.js +52 -135
  11. data/assets/javascripts/bootstrap/collapse.js +40 -102
  12. data/assets/javascripts/bootstrap/dom/data.js +8 -12
  13. data/assets/javascripts/bootstrap/dom/event-handler.js +19 -66
  14. data/assets/javascripts/bootstrap/dom/manipulator.js +4 -17
  15. data/assets/javascripts/bootstrap/dom/selector-engine.js +42 -24
  16. data/assets/javascripts/bootstrap/dropdown.js +74 -145
  17. data/assets/javascripts/bootstrap/modal.js +53 -133
  18. data/assets/javascripts/bootstrap/offcanvas.js +50 -102
  19. data/assets/javascripts/bootstrap/popover.js +23 -29
  20. data/assets/javascripts/bootstrap/scrollspy.js +53 -90
  21. data/assets/javascripts/bootstrap/tab.js +63 -112
  22. data/assets/javascripts/bootstrap/toast.js +31 -73
  23. data/assets/javascripts/bootstrap/tooltip.js +80 -191
  24. data/assets/javascripts/bootstrap/util/backdrop.js +27 -54
  25. data/assets/javascripts/bootstrap/util/component-functions.js +13 -18
  26. data/assets/javascripts/bootstrap/util/config.js +15 -27
  27. data/assets/javascripts/bootstrap/util/focustrap.js +19 -36
  28. data/assets/javascripts/bootstrap/util/index.js +42 -112
  29. data/assets/javascripts/bootstrap/util/sanitizer.js +33 -42
  30. data/assets/javascripts/bootstrap/util/scrollbar.js +24 -50
  31. data/assets/javascripts/bootstrap/util/swipe.js +27 -48
  32. data/assets/javascripts/bootstrap/util/template-factory.js +25 -52
  33. data/assets/javascripts/bootstrap-sprockets.js +8 -8
  34. data/assets/javascripts/bootstrap.js +686 -1450
  35. data/assets/javascripts/bootstrap.min.js +3 -3
  36. data/assets/stylesheets/_bootstrap-grid.scss +1 -3
  37. data/assets/stylesheets/_bootstrap-reboot.scss +1 -0
  38. data/assets/stylesheets/_bootstrap-utilities.scss +19 -0
  39. data/assets/stylesheets/_bootstrap.scss +1 -0
  40. data/assets/stylesheets/bootstrap/_accordion.scss +20 -11
  41. data/assets/stylesheets/bootstrap/_alert.scss +8 -11
  42. data/assets/stylesheets/bootstrap/_button-group.scss +2 -2
  43. data/assets/stylesheets/bootstrap/_buttons.scss +12 -3
  44. data/assets/stylesheets/bootstrap/_card.scss +5 -0
  45. data/assets/stylesheets/bootstrap/_carousel.scss +22 -15
  46. data/assets/stylesheets/bootstrap/_close.scss +32 -9
  47. data/assets/stylesheets/bootstrap/_dropdown.scss +1 -0
  48. data/assets/stylesheets/bootstrap/_functions.scss +2 -2
  49. data/assets/stylesheets/bootstrap/_grid.scss +6 -0
  50. data/assets/stylesheets/bootstrap/_helpers.scss +2 -0
  51. data/assets/stylesheets/bootstrap/_list-group.scss +12 -7
  52. data/assets/stylesheets/bootstrap/_maps.scss +120 -0
  53. data/assets/stylesheets/bootstrap/_mixins.scss +1 -2
  54. data/assets/stylesheets/bootstrap/_modal.scss +0 -1
  55. data/assets/stylesheets/bootstrap/_nav.scss +42 -17
  56. data/assets/stylesheets/bootstrap/_navbar.scss +15 -4
  57. data/assets/stylesheets/bootstrap/_offcanvas.scss +5 -6
  58. data/assets/stylesheets/bootstrap/_pagination.scss +1 -1
  59. data/assets/stylesheets/bootstrap/_progress.scss +10 -1
  60. data/assets/stylesheets/bootstrap/_reboot.scss +8 -7
  61. data/assets/stylesheets/bootstrap/_root.scss +124 -10
  62. data/assets/stylesheets/bootstrap/_tables.scss +19 -12
  63. data/assets/stylesheets/bootstrap/_tooltip.scss +4 -5
  64. data/assets/stylesheets/bootstrap/_utilities.scss +175 -16
  65. data/assets/stylesheets/bootstrap/_variables-dark.scss +87 -0
  66. data/assets/stylesheets/bootstrap/_variables.scss +289 -172
  67. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +23 -3
  68. data/assets/stylesheets/bootstrap/forms/_form-check.scss +27 -13
  69. data/assets/stylesheets/bootstrap/forms/_form-control.scss +24 -4
  70. data/assets/stylesheets/bootstrap/forms/_form-range.scss +3 -3
  71. data/assets/stylesheets/bootstrap/forms/_form-select.scss +12 -3
  72. data/assets/stylesheets/bootstrap/forms/_input-group.scss +1 -1
  73. data/assets/stylesheets/bootstrap/helpers/_color-bg.scss +1 -4
  74. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +20 -2
  75. data/assets/stylesheets/bootstrap/helpers/_focus-ring.scss +5 -0
  76. data/assets/stylesheets/bootstrap/helpers/_icon-link.scss +25 -0
  77. data/assets/stylesheets/bootstrap/helpers/_vr.scss +1 -1
  78. data/assets/stylesheets/bootstrap/mixins/_alert.scss +4 -1
  79. data/assets/stylesheets/bootstrap/mixins/_banner.scss +2 -4
  80. data/assets/stylesheets/bootstrap/mixins/_caret.scss +30 -25
  81. data/assets/stylesheets/bootstrap/mixins/_color-mode.scss +21 -0
  82. data/assets/stylesheets/bootstrap/mixins/_forms.scss +20 -9
  83. data/assets/stylesheets/bootstrap/mixins/_grid.scss +2 -2
  84. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +2 -0
  85. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +1 -1
  86. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +5 -1
  87. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +23 -29
  88. data/bootstrap.gemspec +4 -3
  89. data/lib/bootstrap/engine.rb +17 -1
  90. data/lib/bootstrap/version.rb +2 -2
  91. data/tasks/updater/js.rb +1 -1
  92. data/tasks/updater/network.rb +2 -2
  93. data/tasks/updater/scss.rb +2 -2
  94. data/test/gemfiles/rails_4_2.gemfile +2 -1
  95. data/test/gemfiles/rails_5_0.gemfile +1 -1
  96. data/test/gemfiles/rails_5_1.gemfile +1 -1
  97. data/test/gemfiles/rails_5_2.gemfile +8 -0
  98. data/test/gemfiles/rails_6_0.gemfile +1 -0
  99. data/test/gemfiles/rails_6_1.gemfile +1 -0
  100. data/test/gemfiles/rails_7_0_dartsass.gemfile +8 -0
  101. data/test/gemfiles/rails_7_0_sassc.gemfile +8 -0
  102. data/test/test_helper.rb +3 -2
  103. metadata +42 -18
  104. data/.travis.yml +0 -32
  105. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +0 -15
@@ -1,4 +1,5 @@
1
- :root {
1
+ :root,
2
+ [data-bs-theme="light"] {
2
3
  // Note: Custom variable values only support SassScript inside `#{}`.
3
4
 
4
5
  // Colors
@@ -21,10 +22,20 @@
21
22
  --#{$prefix}#{$color}-rgb: #{$value};
22
23
  }
23
24
 
25
+ @each $color, $value in $theme-colors-text {
26
+ --#{$prefix}#{$color}-text-emphasis: #{$value};
27
+ }
28
+
29
+ @each $color, $value in $theme-colors-bg-subtle {
30
+ --#{$prefix}#{$color}-bg-subtle: #{$value};
31
+ }
32
+
33
+ @each $color, $value in $theme-colors-border-subtle {
34
+ --#{$prefix}#{$color}-border-subtle: #{$value};
35
+ }
36
+
24
37
  --#{$prefix}white-rgb: #{to-rgb($white)};
25
38
  --#{$prefix}black-rgb: #{to-rgb($black)};
26
- --#{$prefix}body-color-rgb: #{to-rgb($body-color)};
27
- --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};
28
39
 
29
40
  // Fonts
30
41
 
@@ -39,17 +50,50 @@
39
50
  @if $font-size-root != null {
40
51
  --#{$prefix}root-font-size: #{$font-size-root};
41
52
  }
42
- --#{$prefix}body-font-family: #{$font-family-base};
53
+ --#{$prefix}body-font-family: #{inspect($font-family-base)};
43
54
  @include rfs($font-size-base, --#{$prefix}body-font-size);
44
55
  --#{$prefix}body-font-weight: #{$font-weight-base};
45
56
  --#{$prefix}body-line-height: #{$line-height-base};
46
- --#{$prefix}body-color: #{$body-color};
47
57
  @if $body-text-align != null {
48
58
  --#{$prefix}body-text-align: #{$body-text-align};
49
59
  }
60
+
61
+ --#{$prefix}body-color: #{$body-color};
62
+ --#{$prefix}body-color-rgb: #{to-rgb($body-color)};
50
63
  --#{$prefix}body-bg: #{$body-bg};
64
+ --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};
65
+
66
+ --#{$prefix}emphasis-color: #{$body-emphasis-color};
67
+ --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color)};
68
+
69
+ --#{$prefix}secondary-color: #{$body-secondary-color};
70
+ --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color)};
71
+ --#{$prefix}secondary-bg: #{$body-secondary-bg};
72
+ --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg)};
73
+
74
+ --#{$prefix}tertiary-color: #{$body-tertiary-color};
75
+ --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color)};
76
+ --#{$prefix}tertiary-bg: #{$body-tertiary-bg};
77
+ --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg)};
51
78
  // scss-docs-end root-body-variables
52
79
 
80
+ --#{$prefix}heading-color: #{$headings-color};
81
+
82
+ --#{$prefix}link-color: #{$link-color};
83
+ --#{$prefix}link-color-rgb: #{to-rgb($link-color)};
84
+ --#{$prefix}link-decoration: #{$link-decoration};
85
+
86
+ --#{$prefix}link-hover-color: #{$link-hover-color};
87
+ --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color)};
88
+
89
+ @if $link-hover-decoration != null {
90
+ --#{$prefix}link-hover-decoration: #{$link-hover-decoration};
91
+ }
92
+
93
+ --#{$prefix}code-color: #{$code-color};
94
+ --#{$prefix}highlight-color: #{$mark-color};
95
+ --#{$prefix}highlight-bg: #{$mark-bg};
96
+
53
97
  // scss-docs-start root-border-var
54
98
  --#{$prefix}border-width: #{$border-width};
55
99
  --#{$prefix}border-style: #{$border-style};
@@ -60,14 +104,84 @@
60
104
  --#{$prefix}border-radius-sm: #{$border-radius-sm};
61
105
  --#{$prefix}border-radius-lg: #{$border-radius-lg};
62
106
  --#{$prefix}border-radius-xl: #{$border-radius-xl};
63
- --#{$prefix}border-radius-2xl: #{$border-radius-2xl};
107
+ --#{$prefix}border-radius-xxl: #{$border-radius-xxl};
108
+ --#{$prefix}border-radius-2xl: var(--#{$prefix}border-radius-xxl); // Deprecated in v5.3.0 for consistency
64
109
  --#{$prefix}border-radius-pill: #{$border-radius-pill};
65
110
  // scss-docs-end root-border-var
66
111
 
67
- --#{$prefix}link-color: #{$link-color};
68
- --#{$prefix}link-hover-color: #{$link-hover-color};
112
+ --#{$prefix}box-shadow: #{$box-shadow};
113
+ --#{$prefix}box-shadow-sm: #{$box-shadow-sm};
114
+ --#{$prefix}box-shadow-lg: #{$box-shadow-lg};
115
+ --#{$prefix}box-shadow-inset: #{$box-shadow-inset};
69
116
 
70
- --#{$prefix}code-color: #{$code-color};
117
+ // Focus styles
118
+ // scss-docs-start root-focus-variables
119
+ --#{$prefix}focus-ring-width: #{$focus-ring-width};
120
+ --#{$prefix}focus-ring-opacity: #{$focus-ring-opacity};
121
+ --#{$prefix}focus-ring-color: #{$focus-ring-color};
122
+ // scss-docs-end root-focus-variables
71
123
 
72
- --#{$prefix}highlight-bg: #{$mark-bg};
124
+ // scss-docs-start root-form-validation-variables
125
+ --#{$prefix}form-valid-color: #{$form-valid-color};
126
+ --#{$prefix}form-valid-border-color: #{$form-valid-border-color};
127
+ --#{$prefix}form-invalid-color: #{$form-invalid-color};
128
+ --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color};
129
+ // scss-docs-end root-form-validation-variables
130
+ }
131
+
132
+ @if $enable-dark-mode {
133
+ @include color-mode(dark, true) {
134
+ color-scheme: dark;
135
+
136
+ // scss-docs-start root-dark-mode-vars
137
+ --#{$prefix}body-color: #{$body-color-dark};
138
+ --#{$prefix}body-color-rgb: #{to-rgb($body-color-dark)};
139
+ --#{$prefix}body-bg: #{$body-bg-dark};
140
+ --#{$prefix}body-bg-rgb: #{to-rgb($body-bg-dark)};
141
+
142
+ --#{$prefix}emphasis-color: #{$body-emphasis-color-dark};
143
+ --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color-dark)};
144
+
145
+ --#{$prefix}secondary-color: #{$body-secondary-color-dark};
146
+ --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color-dark)};
147
+ --#{$prefix}secondary-bg: #{$body-secondary-bg-dark};
148
+ --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg-dark)};
149
+
150
+ --#{$prefix}tertiary-color: #{$body-tertiary-color-dark};
151
+ --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color-dark)};
152
+ --#{$prefix}tertiary-bg: #{$body-tertiary-bg-dark};
153
+ --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg-dark)};
154
+
155
+ @each $color, $value in $theme-colors-text-dark {
156
+ --#{$prefix}#{$color}-text-emphasis: #{$value};
157
+ }
158
+
159
+ @each $color, $value in $theme-colors-bg-subtle-dark {
160
+ --#{$prefix}#{$color}-bg-subtle: #{$value};
161
+ }
162
+
163
+ @each $color, $value in $theme-colors-border-subtle-dark {
164
+ --#{$prefix}#{$color}-border-subtle: #{$value};
165
+ }
166
+
167
+ --#{$prefix}heading-color: #{$headings-color-dark};
168
+
169
+ --#{$prefix}link-color: #{$link-color-dark};
170
+ --#{$prefix}link-hover-color: #{$link-hover-color-dark};
171
+ --#{$prefix}link-color-rgb: #{to-rgb($link-color-dark)};
172
+ --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color-dark)};
173
+
174
+ --#{$prefix}code-color: #{$code-color-dark};
175
+ --#{$prefix}highlight-color: #{$mark-color-dark};
176
+ --#{$prefix}highlight-bg: #{$mark-bg-dark};
177
+
178
+ --#{$prefix}border-color: #{$border-color-dark};
179
+ --#{$prefix}border-color-translucent: #{$border-color-translucent-dark};
180
+
181
+ --#{$prefix}form-valid-color: #{$form-valid-color-dark};
182
+ --#{$prefix}form-valid-border-color: #{$form-valid-border-color-dark};
183
+ --#{$prefix}form-invalid-color: #{$form-invalid-color-dark};
184
+ --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color-dark};
185
+ // scss-docs-end root-dark-mode-vars
186
+ }
73
187
  }
@@ -3,6 +3,12 @@
3
3
  //
4
4
 
5
5
  .table {
6
+ // Reset needed for nesting tables
7
+ --#{$prefix}table-color-type: initial;
8
+ --#{$prefix}table-bg-type: initial;
9
+ --#{$prefix}table-color-state: initial;
10
+ --#{$prefix}table-bg-state: initial;
11
+ // End of reset
6
12
  --#{$prefix}table-color: #{$table-color};
7
13
  --#{$prefix}table-bg: #{$table-bg};
8
14
  --#{$prefix}table-border-color: #{$table-border-color};
@@ -16,7 +22,6 @@
16
22
 
17
23
  width: 100%;
18
24
  margin-bottom: $spacer;
19
- color: var(--#{$prefix}table-color);
20
25
  vertical-align: $table-cell-vertical-align;
21
26
  border-color: var(--#{$prefix}table-border-color);
22
27
 
@@ -27,9 +32,11 @@
27
32
  // stylelint-disable-next-line selector-max-universal
28
33
  > :not(caption) > * > * {
29
34
  padding: $table-cell-padding-y $table-cell-padding-x;
35
+ // Following the precept of cascades: https://codepen.io/miriamsuzanne/full/vYNgodb
36
+ color: var(--#{$prefix}table-color-state, var(--#{$prefix}table-color-type, var(--#{$prefix}table-color)));
30
37
  background-color: var(--#{$prefix}table-bg);
31
38
  border-bottom-width: $table-border-width;
32
- box-shadow: inset 0 0 0 9999px var(--#{$prefix}table-accent-bg);
39
+ box-shadow: inset 0 0 0 9999px var(--#{$prefix}table-bg-state, var(--#{$prefix}table-bg-type, var(--#{$prefix}table-accent-bg)));
33
40
  }
34
41
 
35
42
  > tbody {
@@ -42,7 +49,7 @@
42
49
  }
43
50
 
44
51
  .table-group-divider {
45
- border-top: ($table-border-width * 2) solid $table-group-separator-color;
52
+ border-top: calc(#{$table-border-width} * 2) solid $table-group-separator-color; // stylelint-disable-line function-disallowed-list
46
53
  }
47
54
 
48
55
  //
@@ -72,7 +79,7 @@
72
79
  //
73
80
  // When borders are added on all sides of the cells, the corners can render odd when
74
81
  // these borders do not have the same color or if they are semi-transparent.
75
- // Therefor we add top and border bottoms to the `tr`s and left and right borders
82
+ // Therefore we add top and border bottoms to the `tr`s and left and right borders
76
83
  // to the `td`s or `th`s
77
84
 
78
85
  .table-bordered {
@@ -104,16 +111,16 @@
104
111
  // For rows
105
112
  .table-striped {
106
113
  > tbody > tr:nth-of-type(#{$table-striped-order}) > * {
107
- --#{$prefix}table-accent-bg: var(--#{$prefix}table-striped-bg);
108
- color: var(--#{$prefix}table-striped-color);
114
+ --#{$prefix}table-color-type: var(--#{$prefix}table-striped-color);
115
+ --#{$prefix}table-bg-type: var(--#{$prefix}table-striped-bg);
109
116
  }
110
117
  }
111
118
 
112
119
  // For columns
113
120
  .table-striped-columns {
114
121
  > :not(caption) > tr > :nth-child(#{$table-striped-columns-order}) {
115
- --#{$prefix}table-accent-bg: var(--#{$prefix}table-striped-bg);
116
- color: var(--#{$prefix}table-striped-color);
122
+ --#{$prefix}table-color-type: var(--#{$prefix}table-striped-color);
123
+ --#{$prefix}table-bg-type: var(--#{$prefix}table-striped-bg);
117
124
  }
118
125
  }
119
126
 
@@ -122,8 +129,8 @@
122
129
  // The `.table-active` class can be added to highlight rows or cells
123
130
 
124
131
  .table-active {
125
- --#{$prefix}table-accent-bg: var(--#{$prefix}table-active-bg);
126
- color: var(--#{$prefix}table-active-color);
132
+ --#{$prefix}table-color-state: var(--#{$prefix}table-active-color);
133
+ --#{$prefix}table-bg-state: var(--#{$prefix}table-active-bg);
127
134
  }
128
135
 
129
136
  // Hover effect
@@ -132,8 +139,8 @@
132
139
 
133
140
  .table-hover {
134
141
  > tbody > tr:hover > * {
135
- --#{$prefix}table-accent-bg: var(--#{$prefix}table-hover-bg);
136
- color: var(--#{$prefix}table-hover-color);
142
+ --#{$prefix}table-color-state: var(--#{$prefix}table-hover-color);
143
+ --#{$prefix}table-bg-state: var(--#{$prefix}table-hover-bg);
137
144
  }
138
145
  }
139
146
 
@@ -17,7 +17,6 @@
17
17
 
18
18
  z-index: var(--#{$prefix}tooltip-zindex);
19
19
  display: block;
20
- padding: var(--#{$prefix}tooltip-arrow-height);
21
20
  margin: var(--#{$prefix}tooltip-margin);
22
21
  @include deprecate("`$tooltip-margin`", "v5", "v5.x", true);
23
22
  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
@@ -45,7 +44,7 @@
45
44
  }
46
45
 
47
46
  .bs-tooltip-top .tooltip-arrow {
48
- bottom: 0;
47
+ bottom: calc(-1 * var(--#{$prefix}tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list
49
48
 
50
49
  &::before {
51
50
  top: -1px;
@@ -56,7 +55,7 @@
56
55
 
57
56
  /* rtl:begin:ignore */
58
57
  .bs-tooltip-end .tooltip-arrow {
59
- left: 0;
58
+ left: calc(-1 * var(--#{$prefix}tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list
60
59
  width: var(--#{$prefix}tooltip-arrow-height);
61
60
  height: var(--#{$prefix}tooltip-arrow-width);
62
61
 
@@ -70,7 +69,7 @@
70
69
  /* rtl:end:ignore */
71
70
 
72
71
  .bs-tooltip-bottom .tooltip-arrow {
73
- top: 0;
72
+ top: calc(-1 * var(--#{$prefix}tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list
74
73
 
75
74
  &::before {
76
75
  bottom: -1px;
@@ -81,7 +80,7 @@
81
80
 
82
81
  /* rtl:begin:ignore */
83
82
  .bs-tooltip-start .tooltip-arrow {
84
- right: 0;
83
+ right: calc(-1 * var(--#{$prefix}tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list
85
84
  width: var(--#{$prefix}tooltip-arrow-height);
86
85
  height: var(--#{$prefix}tooltip-arrow-width);
87
86
 
@@ -22,6 +22,20 @@ $utilities: map-merge(
22
22
  )
23
23
  ),
24
24
  // scss-docs-end utils-float
25
+ // Object Fit utilities
26
+ // scss-docs-start utils-object-fit
27
+ "object-fit": (
28
+ responsive: true,
29
+ property: object-fit,
30
+ values: (
31
+ contain: contain,
32
+ cover: cover,
33
+ fill: fill,
34
+ scale: scale-down,
35
+ none: none,
36
+ )
37
+ ),
38
+ // scss-docs-end utils-object-fit
25
39
  // Opacity utilities
26
40
  // scss-docs-start utils-opacity
27
41
  "opacity": (
@@ -40,6 +54,14 @@ $utilities: map-merge(
40
54
  property: overflow,
41
55
  values: auto hidden visible scroll,
42
56
  ),
57
+ "overflow-x": (
58
+ property: overflow-x,
59
+ values: auto hidden visible scroll,
60
+ ),
61
+ "overflow-y": (
62
+ property: overflow-y,
63
+ values: auto hidden visible scroll,
64
+ ),
43
65
  // scss-docs-end utils-overflow
44
66
  // scss-docs-start utils-display
45
67
  "display": (
@@ -47,7 +69,7 @@ $utilities: map-merge(
47
69
  print: true,
48
70
  property: display,
49
71
  class: d,
50
- values: inline inline-block block grid table table-row table-cell flex inline-flex none
72
+ values: inline inline-block block grid inline-grid table table-row table-cell flex inline-flex none
51
73
  ),
52
74
  // scss-docs-end utils-display
53
75
  // scss-docs-start utils-shadow
@@ -55,13 +77,21 @@ $utilities: map-merge(
55
77
  property: box-shadow,
56
78
  class: shadow,
57
79
  values: (
58
- null: $box-shadow,
59
- sm: $box-shadow-sm,
60
- lg: $box-shadow-lg,
80
+ null: var(--#{$prefix}box-shadow),
81
+ sm: var(--#{$prefix}box-shadow-sm),
82
+ lg: var(--#{$prefix}box-shadow-lg),
61
83
  none: none,
62
84
  )
63
85
  ),
64
86
  // scss-docs-end utils-shadow
87
+ // scss-docs-start utils-focus-ring
88
+ "focus-ring": (
89
+ css-var: true,
90
+ css-variable-name: focus-ring-color,
91
+ class: focus-ring,
92
+ values: map-loop($theme-colors-rgb, rgba-css-var, "$key", "focus-ring")
93
+ ),
94
+ // scss-docs-end utils-focus-ring
65
95
  // scss-docs-start utils-position
66
96
  "position": (
67
97
  property: position,
@@ -141,9 +171,13 @@ $utilities: map-merge(
141
171
  ),
142
172
  values: $utilities-border-colors
143
173
  ),
174
+ "subtle-border-color": (
175
+ property: border-color,
176
+ class: border,
177
+ values: $utilities-border-subtle
178
+ ),
144
179
  "border-width": (
145
- css-var: true,
146
- css-variable-name: border-width,
180
+ property: border-width,
147
181
  class: border,
148
182
  values: $border-widths
149
183
  ),
@@ -450,6 +484,18 @@ $utilities: map-merge(
450
484
  class: gap,
451
485
  values: $spacers
452
486
  ),
487
+ "row-gap": (
488
+ responsive: true,
489
+ property: row-gap,
490
+ class: row-gap,
491
+ values: $spacers
492
+ ),
493
+ "column-gap": (
494
+ responsive: true,
495
+ property: column-gap,
496
+ class: column-gap,
497
+ values: $spacers
498
+ ),
453
499
  // scss-docs-end utils-spacing
454
500
  // Text
455
501
  // scss-docs-start utils-text
@@ -473,11 +519,12 @@ $utilities: map-merge(
473
519
  property: font-weight,
474
520
  class: fw,
475
521
  values: (
476
- light: $font-weight-light,
477
522
  lighter: $font-weight-lighter,
523
+ light: $font-weight-light,
478
524
  normal: $font-weight-normal,
479
- bold: $font-weight-bold,
525
+ medium: $font-weight-medium,
480
526
  semibold: $font-weight-semibold,
527
+ bold: $font-weight-bold,
481
528
  bolder: $font-weight-bolder
482
529
  )
483
530
  ),
@@ -535,9 +582,12 @@ $utilities: map-merge(
535
582
  values: map-merge(
536
583
  $utilities-text-colors,
537
584
  (
538
- "muted": $text-muted,
585
+ "muted": var(--#{$prefix}secondary-color), // deprecated
539
586
  "black-50": rgba($black, .5), // deprecated
540
587
  "white-50": rgba($white, .5), // deprecated
588
+ "body-secondary": var(--#{$prefix}secondary-color),
589
+ "body-tertiary": var(--#{$prefix}tertiary-color),
590
+ "body-emphasis": var(--#{$prefix}emphasis-color),
541
591
  "reset": inherit,
542
592
  )
543
593
  )
@@ -552,7 +602,62 @@ $utilities: map-merge(
552
602
  100: 1
553
603
  )
554
604
  ),
605
+ "text-color": (
606
+ property: color,
607
+ class: text,
608
+ values: $utilities-text-emphasis-colors
609
+ ),
555
610
  // scss-docs-end utils-color
611
+ // scss-docs-start utils-links
612
+ "link-opacity": (
613
+ css-var: true,
614
+ class: link-opacity,
615
+ state: hover,
616
+ values: (
617
+ 10: .1,
618
+ 25: .25,
619
+ 50: .5,
620
+ 75: .75,
621
+ 100: 1
622
+ )
623
+ ),
624
+ "link-offset": (
625
+ property: text-underline-offset,
626
+ class: link-offset,
627
+ state: hover,
628
+ values: (
629
+ 1: .125em,
630
+ 2: .25em,
631
+ 3: .375em,
632
+ )
633
+ ),
634
+ "link-underline": (
635
+ property: text-decoration-color,
636
+ class: link-underline,
637
+ local-vars: (
638
+ "link-underline-opacity": 1
639
+ ),
640
+ values: map-merge(
641
+ $utilities-links-underline,
642
+ (
643
+ null: rgba(var(--#{$prefix}link-color-rgb), var(--#{$prefix}link-underline-opacity, 1)),
644
+ )
645
+ )
646
+ ),
647
+ "link-underline-opacity": (
648
+ css-var: true,
649
+ class: link-underline-opacity,
650
+ state: hover,
651
+ values: (
652
+ 0: 0,
653
+ 10: .1,
654
+ 25: .25,
655
+ 50: .5,
656
+ 75: .75,
657
+ 100: 1
658
+ ),
659
+ ),
660
+ // scss-docs-end utils-links
556
661
  // scss-docs-start utils-bg-color
557
662
  "background-color": (
558
663
  property: background-color,
@@ -563,7 +668,9 @@ $utilities: map-merge(
563
668
  values: map-merge(
564
669
  $utilities-bg-colors,
565
670
  (
566
- "transparent": transparent
671
+ "transparent": transparent,
672
+ "body-secondary": rgba(var(--#{$prefix}secondary-bg-rgb), var(--#{$prefix}bg-opacity)),
673
+ "body-tertiary": rgba(var(--#{$prefix}tertiary-bg-rgb), var(--#{$prefix}bg-opacity)),
567
674
  )
568
675
  )
569
676
  ),
@@ -578,6 +685,11 @@ $utilities: map-merge(
578
685
  100: 1
579
686
  )
580
687
  ),
688
+ "subtle-background-color": (
689
+ property: background-color,
690
+ class: bg,
691
+ values: $utilities-bg-subtle
692
+ ),
581
693
  // scss-docs-end utils-bg-color
582
694
  "gradient": (
583
695
  property: background-image,
@@ -606,7 +718,7 @@ $utilities: map-merge(
606
718
  2: var(--#{$prefix}border-radius),
607
719
  3: var(--#{$prefix}border-radius-lg),
608
720
  4: var(--#{$prefix}border-radius-xl),
609
- 5: var(--#{$prefix}border-radius-2xl),
721
+ 5: var(--#{$prefix}border-radius-xxl),
610
722
  circle: 50%,
611
723
  pill: var(--#{$prefix}border-radius-pill)
612
724
  )
@@ -614,22 +726,62 @@ $utilities: map-merge(
614
726
  "rounded-top": (
615
727
  property: border-top-left-radius border-top-right-radius,
616
728
  class: rounded-top,
617
- values: (null: var(--#{$prefix}border-radius))
729
+ values: (
730
+ null: var(--#{$prefix}border-radius),
731
+ 0: 0,
732
+ 1: var(--#{$prefix}border-radius-sm),
733
+ 2: var(--#{$prefix}border-radius),
734
+ 3: var(--#{$prefix}border-radius-lg),
735
+ 4: var(--#{$prefix}border-radius-xl),
736
+ 5: var(--#{$prefix}border-radius-xxl),
737
+ circle: 50%,
738
+ pill: var(--#{$prefix}border-radius-pill)
739
+ )
618
740
  ),
619
741
  "rounded-end": (
620
742
  property: border-top-right-radius border-bottom-right-radius,
621
743
  class: rounded-end,
622
- values: (null: var(--#{$prefix}border-radius))
744
+ values: (
745
+ null: var(--#{$prefix}border-radius),
746
+ 0: 0,
747
+ 1: var(--#{$prefix}border-radius-sm),
748
+ 2: var(--#{$prefix}border-radius),
749
+ 3: var(--#{$prefix}border-radius-lg),
750
+ 4: var(--#{$prefix}border-radius-xl),
751
+ 5: var(--#{$prefix}border-radius-xxl),
752
+ circle: 50%,
753
+ pill: var(--#{$prefix}border-radius-pill)
754
+ )
623
755
  ),
624
756
  "rounded-bottom": (
625
757
  property: border-bottom-right-radius border-bottom-left-radius,
626
758
  class: rounded-bottom,
627
- values: (null: var(--#{$prefix}border-radius))
759
+ values: (
760
+ null: var(--#{$prefix}border-radius),
761
+ 0: 0,
762
+ 1: var(--#{$prefix}border-radius-sm),
763
+ 2: var(--#{$prefix}border-radius),
764
+ 3: var(--#{$prefix}border-radius-lg),
765
+ 4: var(--#{$prefix}border-radius-xl),
766
+ 5: var(--#{$prefix}border-radius-xxl),
767
+ circle: 50%,
768
+ pill: var(--#{$prefix}border-radius-pill)
769
+ )
628
770
  ),
629
771
  "rounded-start": (
630
772
  property: border-bottom-left-radius border-top-left-radius,
631
773
  class: rounded-start,
632
- values: (null: var(--#{$prefix}border-radius))
774
+ values: (
775
+ null: var(--#{$prefix}border-radius),
776
+ 0: 0,
777
+ 1: var(--#{$prefix}border-radius-sm),
778
+ 2: var(--#{$prefix}border-radius),
779
+ 3: var(--#{$prefix}border-radius-lg),
780
+ 4: var(--#{$prefix}border-radius-xl),
781
+ 5: var(--#{$prefix}border-radius-xxl),
782
+ circle: 50%,
783
+ pill: var(--#{$prefix}border-radius-pill)
784
+ )
633
785
  ),
634
786
  // scss-docs-end utils-border-radius
635
787
  // scss-docs-start utils-visibility
@@ -640,8 +792,15 @@ $utilities: map-merge(
640
792
  visible: visible,
641
793
  invisible: hidden,
642
794
  )
643
- )
795
+ ),
644
796
  // scss-docs-end utils-visibility
797
+ // scss-docs-start utils-zindex
798
+ "z-index": (
799
+ property: z-index,
800
+ class: z,
801
+ values: $zindex-levels,
802
+ )
803
+ // scss-docs-end utils-zindex
645
804
  ),
646
805
  $utilities
647
806
  );