tabulator-tables 6.5.0 → 6.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/dist/js/tabulator.js +1 -1
  2. package/dist/js/tabulator.min.js +1 -1
  3. package/dist/js/tabulator_esm.js +1 -1
  4. package/dist/js/tabulator_esm.min.js +1 -1
  5. package/dist/js/tabulator_esm.min.mjs +1 -1
  6. package/dist/js/tabulator_esm.mjs +1 -1
  7. package/package.json +2 -1
  8. package/src/js/builds/esm.js +16 -0
  9. package/src/js/builds/jquery_wrapper.js +63 -0
  10. package/src/js/builds/usd.js +1 -0
  11. package/src/js/core/ColumnManager.js +789 -0
  12. package/src/js/core/CoreFeature.js +140 -0
  13. package/src/js/core/FooterManager.js +102 -0
  14. package/src/js/core/Module.js +140 -0
  15. package/src/js/core/RowManager.js +1140 -0
  16. package/src/js/core/Tabulator.js +928 -0
  17. package/src/js/core/TabulatorFull.js +21 -0
  18. package/src/js/core/cell/Cell.js +299 -0
  19. package/src/js/core/cell/CellComponent.js +79 -0
  20. package/src/js/core/column/Column.js +978 -0
  21. package/src/js/core/column/ColumnComponent.js +151 -0
  22. package/src/js/core/column/defaults/options.js +18 -0
  23. package/src/js/core/defaults/options.js +66 -0
  24. package/src/js/core/modules/core.js +3 -0
  25. package/src/js/core/modules/optional.js +37 -0
  26. package/src/js/core/rendering/Renderer.js +204 -0
  27. package/src/js/core/rendering/renderers/BasicHorizontal.js +27 -0
  28. package/src/js/core/rendering/renderers/BasicVertical.js +103 -0
  29. package/src/js/core/rendering/renderers/VirtualDomHorizontal.js +587 -0
  30. package/src/js/core/rendering/renderers/VirtualDomVertical.js +642 -0
  31. package/src/js/core/row/PseudoRow.js +47 -0
  32. package/src/js/core/row/Row.js +487 -0
  33. package/src/js/core/row/RowComponent.js +94 -0
  34. package/src/js/core/tools/Alert.js +66 -0
  35. package/src/js/core/tools/ComponentFunctionBinder.js +32 -0
  36. package/src/js/core/tools/DataLoader.js +128 -0
  37. package/src/js/core/tools/DependencyRegistry.js +82 -0
  38. package/src/js/core/tools/DeprecationAdvisor.js +51 -0
  39. package/src/js/core/tools/ExternalEventBus.js +105 -0
  40. package/src/js/core/tools/Helpers.js +66 -0
  41. package/src/js/core/tools/InteractionMonitor.js +329 -0
  42. package/src/js/core/tools/InternalEventBus.js +162 -0
  43. package/src/js/core/tools/ModuleBinder.js +153 -0
  44. package/src/js/core/tools/OptionsList.js +45 -0
  45. package/src/js/core/tools/Popup.js +317 -0
  46. package/src/js/core/tools/TableRegistry.js +65 -0
  47. package/src/js/modules/Accessor/Accessor.js +115 -0
  48. package/src/js/modules/Accessor/defaults/accessors.js +5 -0
  49. package/src/js/modules/Ajax/Ajax.js +142 -0
  50. package/src/js/modules/Ajax/defaults/config.js +3 -0
  51. package/src/js/modules/Ajax/defaults/contentTypeFormatters.js +45 -0
  52. package/src/js/modules/Ajax/defaults/loaderPromise.js +87 -0
  53. package/src/js/modules/Ajax/defaults/urlGenerator.js +44 -0
  54. package/src/js/modules/Clipboard/Clipboard.js +282 -0
  55. package/src/js/modules/Clipboard/defaults/pasteActions.js +11 -0
  56. package/src/js/modules/Clipboard/defaults/pasteParsers.js +75 -0
  57. package/src/js/modules/Clipboard/extensions/extensions.js +9 -0
  58. package/src/js/modules/Clipboard/extensions/keybindings/actions.js +9 -0
  59. package/src/js/modules/Clipboard/extensions/keybindings/bindings.js +3 -0
  60. package/src/js/modules/ColumnCalcs/CalcComponent.js +46 -0
  61. package/src/js/modules/ColumnCalcs/ColumnCalcs.js +586 -0
  62. package/src/js/modules/ColumnCalcs/defaults/calculations.js +93 -0
  63. package/src/js/modules/Comms/Comms.js +49 -0
  64. package/src/js/modules/DataTree/DataTree.js +620 -0
  65. package/src/js/modules/Download/Download.js +146 -0
  66. package/src/js/modules/Download/defaults/downloaders/csv.js +61 -0
  67. package/src/js/modules/Download/defaults/downloaders/html.js +5 -0
  68. package/src/js/modules/Download/defaults/downloaders/json.js +34 -0
  69. package/src/js/modules/Download/defaults/downloaders/jsonLines.js +32 -0
  70. package/src/js/modules/Download/defaults/downloaders/pdf.js +113 -0
  71. package/src/js/modules/Download/defaults/downloaders/xlsx.js +103 -0
  72. package/src/js/modules/Download/defaults/downloaders.js +15 -0
  73. package/src/js/modules/Edit/Edit.js +845 -0
  74. package/src/js/modules/Edit/List.js +1060 -0
  75. package/src/js/modules/Edit/defaults/editors/adaptable.js +37 -0
  76. package/src/js/modules/Edit/defaults/editors/date.js +144 -0
  77. package/src/js/modules/Edit/defaults/editors/datetime.js +131 -0
  78. package/src/js/modules/Edit/defaults/editors/input.js +77 -0
  79. package/src/js/modules/Edit/defaults/editors/list.js +7 -0
  80. package/src/js/modules/Edit/defaults/editors/number.js +110 -0
  81. package/src/js/modules/Edit/defaults/editors/progress.js +127 -0
  82. package/src/js/modules/Edit/defaults/editors/range.js +81 -0
  83. package/src/js/modules/Edit/defaults/editors/star.js +146 -0
  84. package/src/js/modules/Edit/defaults/editors/textarea.js +123 -0
  85. package/src/js/modules/Edit/defaults/editors/tickCross.js +95 -0
  86. package/src/js/modules/Edit/defaults/editors/time.js +132 -0
  87. package/src/js/modules/Edit/defaults/editors.js +27 -0
  88. package/src/js/modules/Edit/inputMask.js +74 -0
  89. package/src/js/modules/Export/Export.js +654 -0
  90. package/src/js/modules/Export/ExportColumn.js +9 -0
  91. package/src/js/modules/Export/ExportRow.js +8 -0
  92. package/src/js/modules/Export/defaults/columnLookups.js +3 -0
  93. package/src/js/modules/Export/defaults/rowLookups.js +18 -0
  94. package/src/js/modules/Filter/Filter.js +902 -0
  95. package/src/js/modules/Filter/defaults/filters.js +215 -0
  96. package/src/js/modules/Format/Format.js +200 -0
  97. package/src/js/modules/Format/defaults/formatters/adaptable.js +32 -0
  98. package/src/js/modules/Format/defaults/formatters/array.js +30 -0
  99. package/src/js/modules/Format/defaults/formatters/buttonCross.js +3 -0
  100. package/src/js/modules/Format/defaults/formatters/buttonTick.js +3 -0
  101. package/src/js/modules/Format/defaults/formatters/color.js +4 -0
  102. package/src/js/modules/Format/defaults/formatters/datetime.js +39 -0
  103. package/src/js/modules/Format/defaults/formatters/datetimediff.js +43 -0
  104. package/src/js/modules/Format/defaults/formatters/handle.js +4 -0
  105. package/src/js/modules/Format/defaults/formatters/html.js +3 -0
  106. package/src/js/modules/Format/defaults/formatters/image.js +40 -0
  107. package/src/js/modules/Format/defaults/formatters/json.js +12 -0
  108. package/src/js/modules/Format/defaults/formatters/link.js +82 -0
  109. package/src/js/modules/Format/defaults/formatters/lookup.js +10 -0
  110. package/src/js/modules/Format/defaults/formatters/money.js +44 -0
  111. package/src/js/modules/Format/defaults/formatters/plaintext.js +3 -0
  112. package/src/js/modules/Format/defaults/formatters/progress.js +133 -0
  113. package/src/js/modules/Format/defaults/formatters/rownum.js +14 -0
  114. package/src/js/modules/Format/defaults/formatters/star.js +38 -0
  115. package/src/js/modules/Format/defaults/formatters/textarea.js +4 -0
  116. package/src/js/modules/Format/defaults/formatters/tickCross.js +22 -0
  117. package/src/js/modules/Format/defaults/formatters/toggle.js +48 -0
  118. package/src/js/modules/Format/defaults/formatters/traffic.js +47 -0
  119. package/src/js/modules/Format/defaults/formatters.js +47 -0
  120. package/src/js/modules/FrozenColumns/FrozenColumns.js +302 -0
  121. package/src/js/modules/FrozenRows/FrozenRows.js +175 -0
  122. package/src/js/modules/GroupRows/Group.js +615 -0
  123. package/src/js/modules/GroupRows/GroupComponent.js +69 -0
  124. package/src/js/modules/GroupRows/GroupRows.js +636 -0
  125. package/src/js/modules/History/History.js +172 -0
  126. package/src/js/modules/History/defaults/redoers.js +31 -0
  127. package/src/js/modules/History/defaults/undoers.js +33 -0
  128. package/src/js/modules/History/extensions/extensions.js +9 -0
  129. package/src/js/modules/History/extensions/keybindings/actions.js +27 -0
  130. package/src/js/modules/History/extensions/keybindings/bindings.js +4 -0
  131. package/src/js/modules/HtmlTableImport/HtmlTableImport.js +180 -0
  132. package/src/js/modules/Import/Import.js +303 -0
  133. package/src/js/modules/Import/defaults/importers/array.js +3 -0
  134. package/src/js/modules/Import/defaults/importers/csv.js +61 -0
  135. package/src/js/modules/Import/defaults/importers/json.js +8 -0
  136. package/src/js/modules/Import/defaults/importers/xlsx.js +7 -0
  137. package/src/js/modules/Import/defaults/importers.js +11 -0
  138. package/src/js/modules/Interaction/Interaction.js +339 -0
  139. package/src/js/modules/Keybindings/Keybindings.js +198 -0
  140. package/src/js/modules/Keybindings/defaults/actions.js +90 -0
  141. package/src/js/modules/Keybindings/defaults/bindings.js +12 -0
  142. package/src/js/modules/Layout/Layout.js +66 -0
  143. package/src/js/modules/Layout/defaults/modes/fitColumns.js +171 -0
  144. package/src/js/modules/Layout/defaults/modes/fitData.js +10 -0
  145. package/src/js/modules/Layout/defaults/modes/fitDataGeneral.js +10 -0
  146. package/src/js/modules/Layout/defaults/modes/fitDataStretch.js +40 -0
  147. package/src/js/modules/Layout/defaults/modes.js +12 -0
  148. package/src/js/modules/Localize/Localize.js +184 -0
  149. package/src/js/modules/Localize/defaults/langs.js +37 -0
  150. package/src/js/modules/Menu/Menu.js +302 -0
  151. package/src/js/modules/MoveColumns/MoveColumns.js +311 -0
  152. package/src/js/modules/MoveRows/MoveRows.js +604 -0
  153. package/src/js/modules/MoveRows/defaults/receivers.js +30 -0
  154. package/src/js/modules/MoveRows/defaults/senders.js +5 -0
  155. package/src/js/modules/Mutator/Mutator.js +164 -0
  156. package/src/js/modules/Mutator/defaults/mutators.js +1 -0
  157. package/src/js/modules/Page/Page.js +891 -0
  158. package/src/js/modules/Page/defaults/pageCounters/pages.js +33 -0
  159. package/src/js/modules/Page/defaults/pageCounters/rows.js +40 -0
  160. package/src/js/modules/Page/defaults/pageCounters.js +8 -0
  161. package/src/js/modules/Persistence/Persistence.js +473 -0
  162. package/src/js/modules/Persistence/defaults/readers.js +29 -0
  163. package/src/js/modules/Persistence/defaults/writers.js +13 -0
  164. package/src/js/modules/Popup/Popup.js +227 -0
  165. package/src/js/modules/Print/Print.js +136 -0
  166. package/src/js/modules/ReactiveData/ReactiveData.js +416 -0
  167. package/src/js/modules/ResizeColumns/ResizeColumns.js +365 -0
  168. package/src/js/modules/ResizeRows/ResizeRows.js +145 -0
  169. package/src/js/modules/ResizeTable/ResizeTable.js +158 -0
  170. package/src/js/modules/ResponsiveLayout/ResponsiveLayout.js +354 -0
  171. package/src/js/modules/ResponsiveLayout/extensions/extensions.js +9 -0
  172. package/src/js/modules/ResponsiveLayout/extensions/formatters/responsiveCollapse.js +44 -0
  173. package/src/js/modules/SelectRange/Range.js +366 -0
  174. package/src/js/modules/SelectRange/RangeComponent.js +91 -0
  175. package/src/js/modules/SelectRange/SelectRange.js +993 -0
  176. package/src/js/modules/SelectRange/extensions/clipboard/pasteActions.js +45 -0
  177. package/src/js/modules/SelectRange/extensions/clipboard/pasteParsers.js +57 -0
  178. package/src/js/modules/SelectRange/extensions/export/columnLookups.js +11 -0
  179. package/src/js/modules/SelectRange/extensions/export/rowLookups.js +5 -0
  180. package/src/js/modules/SelectRange/extensions/extensions.js +21 -0
  181. package/src/js/modules/SelectRange/extensions/keybindings/actions.js +38 -0
  182. package/src/js/modules/SelectRange/extensions/keybindings/bindings.js +14 -0
  183. package/src/js/modules/SelectRow/SelectRow.js +499 -0
  184. package/src/js/modules/SelectRow/extensions/extensions.js +9 -0
  185. package/src/js/modules/SelectRow/extensions/formatters/rowSelection.js +60 -0
  186. package/src/js/modules/Sort/Sort.js +480 -0
  187. package/src/js/modules/Sort/defaults/sorters/alphanum.js +44 -0
  188. package/src/js/modules/Sort/defaults/sorters/array.js +82 -0
  189. package/src/js/modules/Sort/defaults/sorters/boolean.js +7 -0
  190. package/src/js/modules/Sort/defaults/sorters/date.js +10 -0
  191. package/src/js/modules/Sort/defaults/sorters/datetime.js +48 -0
  192. package/src/js/modules/Sort/defaults/sorters/exists.js +7 -0
  193. package/src/js/modules/Sort/defaults/sorters/number.js +40 -0
  194. package/src/js/modules/Sort/defaults/sorters/string.js +34 -0
  195. package/src/js/modules/Sort/defaults/sorters/time.js +10 -0
  196. package/src/js/modules/Sort/defaults/sorters.js +21 -0
  197. package/src/js/modules/Spreadsheet/GridCalculator.js +64 -0
  198. package/src/js/modules/Spreadsheet/Sheet.js +243 -0
  199. package/src/js/modules/Spreadsheet/SheetComponent.js +59 -0
  200. package/src/js/modules/Spreadsheet/Spreadsheet.js +309 -0
  201. package/src/js/modules/Tooltip/Tooltip.js +128 -0
  202. package/src/js/modules/Validate/Validate.js +303 -0
  203. package/src/js/modules/Validate/defaults/validators.js +150 -0
  204. package/src/scss/tabulator.scss +1693 -0
  205. package/src/scss/themes/bootstrap/tabulator_bootstrap3.scss +302 -0
  206. package/src/scss/themes/bootstrap/tabulator_bootstrap4.scss +589 -0
  207. package/src/scss/themes/bootstrap/tabulator_bootstrap5.scss +979 -0
  208. package/src/scss/themes/bootstrap/variables3.scss +872 -0
  209. package/src/scss/themes/bootstrap/variables4.scss +1059 -0
  210. package/src/scss/themes/bootstrap/variables5.scss +1967 -0
  211. package/src/scss/themes/bulma/tabulator_bulma.scss +316 -0
  212. package/src/scss/themes/bulma/variables.scss +198 -0
  213. package/src/scss/themes/materialize/tabulator_materialize.scss +318 -0
  214. package/src/scss/themes/materialize/variables.scss +71 -0
  215. package/src/scss/themes/semanticui/tabulator_semanticui.scss +623 -0
  216. package/src/scss/themes/semanticui/variables.scss +843 -0
  217. package/src/scss/themes/semanticui/variables_table.scss +248 -0
  218. package/src/scss/themes/tabulator_midnight.scss +235 -0
  219. package/src/scss/themes/tabulator_modern.scss +308 -0
  220. package/src/scss/themes/tabulator_simple.scss +143 -0
  221. package/src/scss/themes/tabulator_site.scss +267 -0
  222. package/src/scss/themes/tabulator_site_dark.scss +496 -0
@@ -0,0 +1,1967 @@
1
+ @use "sass:color";
2
+ @use "sass:math";
3
+ @use "sass:list";
4
+ @use "sass:map";
5
+ @use "sass:string";
6
+ @use "sass:meta";
7
+
8
+ // Bootstrap functions
9
+ //
10
+ // Utility mixins and functions for evaluating source code across our variables, maps, and mixins.
11
+
12
+ // Ascending
13
+ // Used to evaluate Sass maps like our grid breakpoints.
14
+ @mixin _assert-ascending($map, $map-name) {
15
+ $prev-key: null;
16
+ $prev-num: null;
17
+ @each $key, $num in $map {
18
+ @if $prev-num == null or math.unit($num) == "%" or math.unit($prev-num) == "%" {
19
+ // Do nothing
20
+ } @else if not math.compatible($prev-num, $num) {
21
+ @warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !";
22
+ } @else if $prev-num >= $num {
23
+ @warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !";
24
+ }
25
+ $prev-key: $key;
26
+ $prev-num: $num;
27
+ }
28
+ }
29
+
30
+ // Starts at zero
31
+ // Used to ensure the min-width of the lowest breakpoint starts at 0.
32
+ @mixin _assert-starts-at-zero($map, $map-name: "$grid-breakpoints") {
33
+ @if list.length($map) > 0 {
34
+ $values: map.values($map);
35
+ $first-value: list.nth($values, 1);
36
+ @if $first-value != 0 {
37
+ @warn "First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.";
38
+ }
39
+ }
40
+ }
41
+
42
+ // Colors
43
+ @function to-rgb($value) {
44
+ @return color.channel($value, "red", $space: rgb), color.channel($value, "green", $space: rgb), color.channel($value, "blue", $space: rgb);
45
+ }
46
+
47
+ // stylelint-disable scss/dollar-variable-pattern
48
+ @function rgba-css-var($identifier, $target) {
49
+ @if $identifier == "body" and $target == "bg" {
50
+ @return rgba(var(--#{$variable-prefix}#{$identifier}-bg-rgb), var(--#{$variable-prefix}#{$target}-opacity));
51
+ } @if $identifier == "body" and $target == "text" {
52
+ @return rgba(var(--#{$variable-prefix}#{$identifier}-color-rgb), var(--#{$variable-prefix}#{$target}-opacity));
53
+ } @else {
54
+ @return rgba(var(--#{$variable-prefix}#{$identifier}-rgb), var(--#{$variable-prefix}#{$target}-opacity));
55
+ }
56
+ }
57
+
58
+ @function map-loop($map, $func, $args...) {
59
+ $_map: ();
60
+
61
+ @each $key, $value in $map {
62
+ // allow to pass the $key and $value of the map as an function argument
63
+ $_args: ();
64
+ @each $arg in $args {
65
+ $_args: list.append($_args, if($arg == "$key", $key, if($arg == "$value", $value, $arg)));
66
+ }
67
+
68
+ $_map: map.merge($_map, ($key: meta.call(meta.get-function($func), $_args...)));
69
+ }
70
+
71
+ @return $_map;
72
+ }
73
+ // stylelint-enable scss/dollar-variable-pattern
74
+
75
+ @function varify($list) {
76
+ $result: null;
77
+ @each $entry in $list {
78
+ $result: list.append($result, var(--#{$variable-prefix}#{$entry}), space);
79
+ }
80
+ @return $result;
81
+ }
82
+
83
+ // Internal Bootstrap function to turn maps into its negative variant.
84
+ // It prefixes the keys with `n` and makes the value negative.
85
+ @function negativify-map($map) {
86
+ $result: ();
87
+ @each $key, $value in $map {
88
+ @if $key != 0 {
89
+ $result: map.merge($result, ("n" + $key: (-$value)));
90
+ }
91
+ }
92
+ @return $result;
93
+ }
94
+
95
+ // Get multiple keys from a sass map
96
+ @function map-get-multiple($map, $values) {
97
+ $result: ();
98
+ @each $key, $value in $map {
99
+ @if (index($values, $key) != null) {
100
+ $result: map.merge($result, ($key: $value));
101
+ }
102
+ }
103
+ @return $result;
104
+ }
105
+
106
+ // Merge multiple maps
107
+ @function map-merge-multiple($maps...) {
108
+ $merged-maps: ();
109
+
110
+ @each $map in $maps {
111
+ $merged-maps: map.merge($merged-maps, $map);
112
+ }
113
+ @return $merged-maps;
114
+ }
115
+
116
+ // Replace `$search` with `$replace` in `$string`
117
+ // Used on our SVG icon backgrounds for custom forms.
118
+ //
119
+ // @author Hugo Giraudel
120
+ // @param {String} $string - Initial string
121
+ // @param {String} $search - Substring to replace
122
+ // @param {String} $replace ('') - New value
123
+ // @return {String} - Updated string
124
+ @function str-replace($string, $search, $replace: "") {
125
+ $index: string.index($string, $search);
126
+
127
+ @if $index {
128
+ @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
129
+ }
130
+
131
+ @return $string;
132
+ }
133
+
134
+ // See https://codepen.io/kevinweber/pen/dXWoRw
135
+ //
136
+ // Requires the use of quotes around data URIs.
137
+
138
+ @function escape-svg($string) {
139
+ @if str-index($string, "data:image/svg+xml") {
140
+ @each $char, $encoded in $escaped-characters {
141
+ // Do not escape the url brackets
142
+ @if str-index($string, "url(") == 1 {
143
+ $string: url("#{str-replace(str-slice($string, 6, -3), $char, $encoded)}");
144
+ } @else {
145
+ $string: str-replace($string, $char, $encoded);
146
+ }
147
+ }
148
+ }
149
+
150
+ @return $string;
151
+ }
152
+
153
+ // Color contrast
154
+ // See https://github.com/twbs/bootstrap/pull/30168
155
+
156
+ // A list of pre-calculated numbers of pow(divide((divide($value, 255) + .055), 1.055), 2.4). (from 0 to 255)
157
+ // stylelint-disable-next-line scss/dollar-variable-default, scss/dollar-variable-pattern
158
+ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 .0033 .0037 .004 .0044 .0048 .0052 .0056 .006 .0065 .007 .0075 .008 .0086 .0091 .0097 .0103 .011 .0116 .0123 .013 .0137 .0144 .0152 .016 .0168 .0176 .0185 .0194 .0203 .0212 .0222 .0232 .0242 .0252 .0262 .0273 .0284 .0296 .0307 .0319 .0331 .0343 .0356 .0369 .0382 .0395 .0409 .0423 .0437 .0452 .0467 .0482 .0497 .0513 .0529 .0545 .0561 .0578 .0595 .0612 .063 .0648 .0666 .0685 .0704 .0723 .0742 .0762 .0782 .0802 .0823 .0844 .0865 .0887 .0908 .0931 .0953 .0976 .0999 .1022 .1046 .107 .1095 .1119 .1144 .117 .1195 .1221 .1248 .1274 .1301 .1329 .1356 .1384 .1413 .1441 .147 .15 .1529 .1559 .159 .162 .1651 .1683 .1714 .1746 .1779 .1812 .1845 .1878 .1912 .1946 .1981 .2016 .2051 .2086 .2122 .2159 .2195 .2232 .227 .2307 .2346 .2384 .2423 .2462 .2502 .2542 .2582 .2623 .2664 .2705 .2747 .2789 .2831 .2874 .2918 .2961 .3005 .305 .3095 .314 .3185 .3231 .3278 .3325 .3372 .3419 .3467 .3515 .3564 .3613 .3663 .3712 .3763 .3813 .3864 .3916 .3968 .402 .4072 .4125 .4179 .4233 .4287 .4342 .4397 .4452 .4508 .4564 .4621 .4678 .4735 .4793 .4851 .491 .4969 .5029 .5089 .5149 .521 .5271 .5333 .5395 .5457 .552 .5583 .5647 .5711 .5776 .5841 .5906 .5972 .6038 .6105 .6172 .624 .6308 .6376 .6445 .6514 .6584 .6654 .6724 .6795 .6867 .6939 .7011 .7084 .7157 .7231 .7305 .7379 .7454 .7529 .7605 .7682 .7758 .7835 .7913 .7991 .807 .8148 .8228 .8308 .8388 .8469 .855 .8632 .8714 .8796 .8879 .8963 .9047 .9131 .9216 .9301 .9387 .9473 .956 .9647 .9734 .9823 .9911 1;
159
+
160
+ @function color-contrast($background, $color-contrast-dark: $color-contrast-dark, $color-contrast-light: $color-contrast-light, $min-contrast-ratio: $min-contrast-ratio) {
161
+ $foregrounds: $color-contrast-light, $color-contrast-dark, $white, $black;
162
+ $max-ratio: 0;
163
+ $max-ratio-color: null;
164
+
165
+ @each $color in $foregrounds {
166
+ $contrast-ratio: contrast-ratio($background, $color);
167
+ @if $contrast-ratio > $min-contrast-ratio {
168
+ @return $color;
169
+ } @else if $contrast-ratio > $max-ratio {
170
+ $max-ratio: $contrast-ratio;
171
+ $max-ratio-color: $color;
172
+ }
173
+ }
174
+
175
+ @warn "Found no color leading to #{$min-contrast-ratio}:1 contrast ratio against #{$background}...";
176
+
177
+ @return $max-ratio-color;
178
+ }
179
+
180
+ @function contrast-ratio($background, $foreground: $color-contrast-light) {
181
+ $l1: luminance($background);
182
+ $l2: luminance(opaque($background, $foreground));
183
+
184
+ @return if($l1 > $l2, divide($l1 + .05, $l2 + .05), divide($l2 + .05, $l1 + .05));
185
+ }
186
+
187
+ // Return WCAG2.0 relative luminance
188
+ // See https://www.w3.org/WAI/GL/wiki/Relative_luminance
189
+ // See https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
190
+ @function luminance($color) {
191
+ $rgb: (
192
+ "r": red($color),
193
+ "g": green($color),
194
+ "b": blue($color)
195
+ );
196
+
197
+ @each $name, $value in $rgb {
198
+ $value: if(divide($value, 255) < .03928, divide(divide($value, 255), 12.92), nth($_luminance-list, $value + 1));
199
+ $rgb: map.merge($rgb, ($name: $value));
200
+ }
201
+
202
+ @return (map.get($rgb, "r") * .2126) + (map.get($rgb, "g") * .7152) + (map.get($rgb, "b") * .0722);
203
+ }
204
+
205
+ // Return opaque color
206
+ // opaque(#fff, rgba(0, 0, 0, .5)) => #808080
207
+ @function opaque($background, $foreground) {
208
+ @return color.mix(rgba($foreground, 1), $background, opacity($foreground) * 100);
209
+ }
210
+
211
+ // scss-docs-start color-functions
212
+ // Tint a color: mix a color with white
213
+ @function tint-color($color, $weight) {
214
+ @return color.mix(white, $color, $weight);
215
+ }
216
+
217
+ // Shade a color: mix a color with black
218
+ @function shade-color($color, $weight) {
219
+ @return color.mix(black, $color, $weight);
220
+ }
221
+
222
+ // Shade the color if the weight is positive, else tint it
223
+ @function shift-color($color, $weight) {
224
+ @return if($weight > 0, shade-color($color, $weight), tint-color($color, -$weight));
225
+ }
226
+ // scss-docs-end color-functions
227
+
228
+ // Return valid calc
229
+ @function add($value1, $value2, $return-calc: true) {
230
+ @if $value1 == null {
231
+ @return $value2;
232
+ }
233
+
234
+ @if $value2 == null {
235
+ @return $value1;
236
+ }
237
+
238
+ @if meta.type-of($value1) == number and meta.type-of($value2) == number and math.compatible($value1, $value2) {
239
+ @return $value1 + $value2;
240
+ }
241
+
242
+ @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + string.unquote(" + ") + $value2);
243
+ }
244
+
245
+ @function subtract($value1, $value2, $return-calc: true) {
246
+ @if $value1 == null and $value2 == null {
247
+ @return null;
248
+ }
249
+
250
+ @if $value1 == null {
251
+ @return -$value2;
252
+ }
253
+
254
+ @if $value2 == null {
255
+ @return $value1;
256
+ }
257
+
258
+ @if meta.type-of($value1) == number and meta.type-of($value2) == number and math.compatible($value1, $value2) {
259
+ @return $value1 - $value2;
260
+ }
261
+
262
+ @if meta.type-of($value2) != number {
263
+ $value2: string.unquote("(") + $value2 + string.unquote(")");
264
+ }
265
+
266
+ @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + string.unquote(" - ") + $value2);
267
+ }
268
+
269
+ @function divide($dividend, $divisor, $precision: 10) {
270
+ $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);
271
+ $dividend: abs($dividend);
272
+ $divisor: abs($divisor);
273
+ @if $dividend == 0 {
274
+ @return 0;
275
+ }
276
+ @if $divisor == 0 {
277
+ @error "Cannot divide by 0";
278
+ }
279
+ $remainder: $dividend;
280
+ $result: 0;
281
+ $factor: 10;
282
+ @while ($remainder > 0 and $precision >= 0) {
283
+ $quotient: 0;
284
+ @while ($remainder >= $divisor) {
285
+ $remainder: $remainder - $divisor;
286
+ $quotient: $quotient + 1;
287
+ }
288
+ $result: $result * 10 + $quotient;
289
+ $factor: $factor * .1;
290
+ $remainder: $remainder * 10;
291
+ $precision: $precision - 1;
292
+ @if ($precision < 0 and $remainder >= $divisor * 5) {
293
+ $result: $result + 1;
294
+ }
295
+ }
296
+ $result: $result * $factor * $sign;
297
+ $dividend-unit: math.unit($dividend);
298
+ $divisor-unit: math.unit($divisor);
299
+ $unit-map: (
300
+ "px": 1px,
301
+ "rem": 1rem,
302
+ "em": 1em,
303
+ "%": 1%
304
+ );
305
+ @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {
306
+ $result: $result * map-get($unit-map, $dividend-unit);
307
+ }
308
+ @return $result;
309
+ }
310
+
311
+
312
+
313
+
314
+
315
+ // Variables
316
+ //
317
+ // Variables should follow the `$component-state-property-size` formula for
318
+ // consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.
319
+
320
+ // Color system
321
+
322
+ // scss-docs-start gray-color-variables
323
+ $white: #fff !default;
324
+ $gray-100: #f8f9fa !default;
325
+ $gray-200: #e9ecef !default;
326
+ $gray-300: #dee2e6 !default;
327
+ $gray-400: #ced4da !default;
328
+ $gray-500: #adb5bd !default;
329
+ $gray-600: #6c757d !default;
330
+ $gray-700: #495057 !default;
331
+ $gray-800: #343a40 !default;
332
+ $gray-900: #212529 !default;
333
+ $black: #000 !default;
334
+ // scss-docs-end gray-color-variables
335
+
336
+ // fusv-disable
337
+ // scss-docs-start gray-colors-map
338
+ $grays: (
339
+ "100": $gray-100,
340
+ "200": $gray-200,
341
+ "300": $gray-300,
342
+ "400": $gray-400,
343
+ "500": $gray-500,
344
+ "600": $gray-600,
345
+ "700": $gray-700,
346
+ "800": $gray-800,
347
+ "900": $gray-900
348
+ ) !default;
349
+ // scss-docs-end gray-colors-map
350
+ // fusv-enable
351
+
352
+ // scss-docs-start color-variables
353
+ $blue: #0d6efd !default;
354
+ $indigo: #6610f2 !default;
355
+ $purple: #6f42c1 !default;
356
+ $pink: #d63384 !default;
357
+ $red: #dc3545 !default;
358
+ $orange: #fd7e14 !default;
359
+ $yellow: #ffc107 !default;
360
+ $green: #198754 !default;
361
+ $teal: #20c997 !default;
362
+ $cyan: #0dcaf0 !default;
363
+ // scss-docs-end color-variables
364
+
365
+ // scss-docs-start colors-map
366
+ $colors: (
367
+ "blue": $blue,
368
+ "indigo": $indigo,
369
+ "purple": $purple,
370
+ "pink": $pink,
371
+ "red": $red,
372
+ "orange": $orange,
373
+ "yellow": $yellow,
374
+ "green": $green,
375
+ "teal": $teal,
376
+ "cyan": $cyan,
377
+ "white": $white,
378
+ "gray": $gray-600,
379
+ "gray-dark": $gray-800
380
+ ) !default;
381
+ // scss-docs-end colors-map
382
+
383
+ // scss-docs-start theme-color-variables
384
+ $primary: $blue !default;
385
+ $secondary: $gray-600 !default;
386
+ $success: $green !default;
387
+ $info: $cyan !default;
388
+ $warning: $yellow !default;
389
+ $danger: $red !default;
390
+ $light: $gray-100 !default;
391
+ $dark: $gray-900 !default;
392
+ // scss-docs-end theme-color-variables
393
+
394
+ // scss-docs-start theme-colors-map
395
+ $theme-colors: (
396
+ "primary": $primary,
397
+ "secondary": $secondary,
398
+ "success": $success,
399
+ "info": $info,
400
+ "warning": $warning,
401
+ "danger": $danger,
402
+ "light": $light,
403
+ "dark": $dark
404
+ ) !default;
405
+ // scss-docs-end theme-colors-map
406
+
407
+ // scss-docs-start theme-colors-rgb
408
+ $theme-colors-rgb: map-loop($theme-colors, to-rgb, "$value") !default;
409
+ // scss-docs-end theme-colors-rgb
410
+
411
+ // The contrast ratio to reach against white, to determine if color changes from "light" to "dark". Acceptable values for WCAG 2.0 are 3, 4.5 and 7.
412
+ // See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast
413
+ $min-contrast-ratio: 4.5 !default;
414
+
415
+ // Customize the light and dark text colors for use in our color contrast function.
416
+ $color-contrast-dark: $black !default;
417
+ $color-contrast-light: $white !default;
418
+
419
+ // fusv-disable
420
+ $blue-100: tint-color($blue, 80%) !default;
421
+ $blue-200: tint-color($blue, 60%) !default;
422
+ $blue-300: tint-color($blue, 40%) !default;
423
+ $blue-400: tint-color($blue, 20%) !default;
424
+ $blue-500: $blue !default;
425
+ $blue-600: shade-color($blue, 20%) !default;
426
+ $blue-700: shade-color($blue, 40%) !default;
427
+ $blue-800: shade-color($blue, 60%) !default;
428
+ $blue-900: shade-color($blue, 80%) !default;
429
+
430
+ $indigo-100: tint-color($indigo, 80%) !default;
431
+ $indigo-200: tint-color($indigo, 60%) !default;
432
+ $indigo-300: tint-color($indigo, 40%) !default;
433
+ $indigo-400: tint-color($indigo, 20%) !default;
434
+ $indigo-500: $indigo !default;
435
+ $indigo-600: shade-color($indigo, 20%) !default;
436
+ $indigo-700: shade-color($indigo, 40%) !default;
437
+ $indigo-800: shade-color($indigo, 60%) !default;
438
+ $indigo-900: shade-color($indigo, 80%) !default;
439
+
440
+ $purple-100: tint-color($purple, 80%) !default;
441
+ $purple-200: tint-color($purple, 60%) !default;
442
+ $purple-300: tint-color($purple, 40%) !default;
443
+ $purple-400: tint-color($purple, 20%) !default;
444
+ $purple-500: $purple !default;
445
+ $purple-600: shade-color($purple, 20%) !default;
446
+ $purple-700: shade-color($purple, 40%) !default;
447
+ $purple-800: shade-color($purple, 60%) !default;
448
+ $purple-900: shade-color($purple, 80%) !default;
449
+
450
+ $pink-100: tint-color($pink, 80%) !default;
451
+ $pink-200: tint-color($pink, 60%) !default;
452
+ $pink-300: tint-color($pink, 40%) !default;
453
+ $pink-400: tint-color($pink, 20%) !default;
454
+ $pink-500: $pink !default;
455
+ $pink-600: shade-color($pink, 20%) !default;
456
+ $pink-700: shade-color($pink, 40%) !default;
457
+ $pink-800: shade-color($pink, 60%) !default;
458
+ $pink-900: shade-color($pink, 80%) !default;
459
+
460
+ $red-100: tint-color($red, 80%) !default;
461
+ $red-200: tint-color($red, 60%) !default;
462
+ $red-300: tint-color($red, 40%) !default;
463
+ $red-400: tint-color($red, 20%) !default;
464
+ $red-500: $red !default;
465
+ $red-600: shade-color($red, 20%) !default;
466
+ $red-700: shade-color($red, 40%) !default;
467
+ $red-800: shade-color($red, 60%) !default;
468
+ $red-900: shade-color($red, 80%) !default;
469
+
470
+ $orange-100: tint-color($orange, 80%) !default;
471
+ $orange-200: tint-color($orange, 60%) !default;
472
+ $orange-300: tint-color($orange, 40%) !default;
473
+ $orange-400: tint-color($orange, 20%) !default;
474
+ $orange-500: $orange !default;
475
+ $orange-600: shade-color($orange, 20%) !default;
476
+ $orange-700: shade-color($orange, 40%) !default;
477
+ $orange-800: shade-color($orange, 60%) !default;
478
+ $orange-900: shade-color($orange, 80%) !default;
479
+
480
+ $yellow-100: tint-color($yellow, 80%) !default;
481
+ $yellow-200: tint-color($yellow, 60%) !default;
482
+ $yellow-300: tint-color($yellow, 40%) !default;
483
+ $yellow-400: tint-color($yellow, 20%) !default;
484
+ $yellow-500: $yellow !default;
485
+ $yellow-600: shade-color($yellow, 20%) !default;
486
+ $yellow-700: shade-color($yellow, 40%) !default;
487
+ $yellow-800: shade-color($yellow, 60%) !default;
488
+ $yellow-900: shade-color($yellow, 80%) !default;
489
+
490
+ $green-100: tint-color($green, 80%) !default;
491
+ $green-200: tint-color($green, 60%) !default;
492
+ $green-300: tint-color($green, 40%) !default;
493
+ $green-400: tint-color($green, 20%) !default;
494
+ $green-500: $green !default;
495
+ $green-600: shade-color($green, 20%) !default;
496
+ $green-700: shade-color($green, 40%) !default;
497
+ $green-800: shade-color($green, 60%) !default;
498
+ $green-900: shade-color($green, 80%) !default;
499
+
500
+ $teal-100: tint-color($teal, 80%) !default;
501
+ $teal-200: tint-color($teal, 60%) !default;
502
+ $teal-300: tint-color($teal, 40%) !default;
503
+ $teal-400: tint-color($teal, 20%) !default;
504
+ $teal-500: $teal !default;
505
+ $teal-600: shade-color($teal, 20%) !default;
506
+ $teal-700: shade-color($teal, 40%) !default;
507
+ $teal-800: shade-color($teal, 60%) !default;
508
+ $teal-900: shade-color($teal, 80%) !default;
509
+
510
+ $cyan-100: tint-color($cyan, 80%) !default;
511
+ $cyan-200: tint-color($cyan, 60%) !default;
512
+ $cyan-300: tint-color($cyan, 40%) !default;
513
+ $cyan-400: tint-color($cyan, 20%) !default;
514
+ $cyan-500: $cyan !default;
515
+ $cyan-600: shade-color($cyan, 20%) !default;
516
+ $cyan-700: shade-color($cyan, 40%) !default;
517
+ $cyan-800: shade-color($cyan, 60%) !default;
518
+ $cyan-900: shade-color($cyan, 80%) !default;
519
+
520
+ $blues: (
521
+ "blue-100": $blue-100,
522
+ "blue-200": $blue-200,
523
+ "blue-300": $blue-300,
524
+ "blue-400": $blue-400,
525
+ "blue-500": $blue-500,
526
+ "blue-600": $blue-600,
527
+ "blue-700": $blue-700,
528
+ "blue-800": $blue-800,
529
+ "blue-900": $blue-900
530
+ ) !default;
531
+
532
+ $indigos: (
533
+ "indigo-100": $indigo-100,
534
+ "indigo-200": $indigo-200,
535
+ "indigo-300": $indigo-300,
536
+ "indigo-400": $indigo-400,
537
+ "indigo-500": $indigo-500,
538
+ "indigo-600": $indigo-600,
539
+ "indigo-700": $indigo-700,
540
+ "indigo-800": $indigo-800,
541
+ "indigo-900": $indigo-900
542
+ ) !default;
543
+
544
+ $purples: (
545
+ "purple-100": $purple-200,
546
+ "purple-200": $purple-100,
547
+ "purple-300": $purple-300,
548
+ "purple-400": $purple-400,
549
+ "purple-500": $purple-500,
550
+ "purple-600": $purple-600,
551
+ "purple-700": $purple-700,
552
+ "purple-800": $purple-800,
553
+ "purple-900": $purple-900
554
+ ) !default;
555
+
556
+ $pinks: (
557
+ "pink-100": $pink-100,
558
+ "pink-200": $pink-200,
559
+ "pink-300": $pink-300,
560
+ "pink-400": $pink-400,
561
+ "pink-500": $pink-500,
562
+ "pink-600": $pink-600,
563
+ "pink-700": $pink-700,
564
+ "pink-800": $pink-800,
565
+ "pink-900": $pink-900
566
+ ) !default;
567
+
568
+ $reds: (
569
+ "red-100": $red-100,
570
+ "red-200": $red-200,
571
+ "red-300": $red-300,
572
+ "red-400": $red-400,
573
+ "red-500": $red-500,
574
+ "red-600": $red-600,
575
+ "red-700": $red-700,
576
+ "red-800": $red-800,
577
+ "red-900": $red-900
578
+ ) !default;
579
+
580
+ $oranges: (
581
+ "orange-100": $orange-100,
582
+ "orange-200": $orange-200,
583
+ "orange-300": $orange-300,
584
+ "orange-400": $orange-400,
585
+ "orange-500": $orange-500,
586
+ "orange-600": $orange-600,
587
+ "orange-700": $orange-700,
588
+ "orange-800": $orange-800,
589
+ "orange-900": $orange-900
590
+ ) !default;
591
+
592
+ $yellows: (
593
+ "yellow-100": $yellow-100,
594
+ "yellow-200": $yellow-200,
595
+ "yellow-300": $yellow-300,
596
+ "yellow-400": $yellow-400,
597
+ "yellow-500": $yellow-500,
598
+ "yellow-600": $yellow-600,
599
+ "yellow-700": $yellow-700,
600
+ "yellow-800": $yellow-800,
601
+ "yellow-900": $yellow-900
602
+ ) !default;
603
+
604
+ $greens: (
605
+ "green-100": $green-100,
606
+ "green-200": $green-200,
607
+ "green-300": $green-300,
608
+ "green-400": $green-400,
609
+ "green-500": $green-500,
610
+ "green-600": $green-600,
611
+ "green-700": $green-700,
612
+ "green-800": $green-800,
613
+ "green-900": $green-900
614
+ ) !default;
615
+
616
+ $teals: (
617
+ "teal-100": $teal-100,
618
+ "teal-200": $teal-200,
619
+ "teal-300": $teal-300,
620
+ "teal-400": $teal-400,
621
+ "teal-500": $teal-500,
622
+ "teal-600": $teal-600,
623
+ "teal-700": $teal-700,
624
+ "teal-800": $teal-800,
625
+ "teal-900": $teal-900
626
+ ) !default;
627
+
628
+ $cyans: (
629
+ "cyan-100": $cyan-100,
630
+ "cyan-200": $cyan-200,
631
+ "cyan-300": $cyan-300,
632
+ "cyan-400": $cyan-400,
633
+ "cyan-500": $cyan-500,
634
+ "cyan-600": $cyan-600,
635
+ "cyan-700": $cyan-700,
636
+ "cyan-800": $cyan-800,
637
+ "cyan-900": $cyan-900
638
+ ) !default;
639
+ // fusv-enable
640
+
641
+ // Characters which are escaped by the escape-svg function
642
+ $escaped-characters: (
643
+ ("<", "%3c"),
644
+ (">", "%3e"),
645
+ ("#", "%23"),
646
+ ("(", "%28"),
647
+ (")", "%29"),
648
+ ) !default;
649
+
650
+ // Options
651
+ //
652
+ // Quickly modify global styling by enabling or disabling optional features.
653
+
654
+ $enable-caret: true !default;
655
+ $enable-rounded: true !default;
656
+ $enable-shadows: false !default;
657
+ $enable-gradients: false !default;
658
+ $enable-transitions: true !default;
659
+ $enable-reduced-motion: true !default;
660
+ $enable-smooth-scroll: true !default;
661
+ $enable-grid-classes: true !default;
662
+ $enable-cssgrid: false !default;
663
+ $enable-button-pointers: true !default;
664
+ $enable-rfs: true !default;
665
+ $enable-validation-icons: true !default;
666
+ $enable-negative-margins: false !default;
667
+ $enable-deprecation-messages: true !default;
668
+ $enable-important-utilities: true !default;
669
+
670
+ // Prefix for :root CSS variables
671
+
672
+ $variable-prefix: bs- !default;
673
+
674
+ // Gradient
675
+ //
676
+ // The gradient which is added to components if `$enable-gradients` is `true`
677
+ // This gradient is also added to elements with `.bg-gradient`
678
+ // scss-docs-start variable-gradient
679
+ $gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)) !default;
680
+ // scss-docs-end variable-gradient
681
+
682
+ // Spacing
683
+ //
684
+ // Control the default styling of most Bootstrap elements by modifying these
685
+ // variables. Mostly focused on spacing.
686
+ // You can add more entries to the $spacers map, should you need more variation.
687
+
688
+ // scss-docs-start spacer-variables-maps
689
+ $spacer: 1rem !default;
690
+ $spacers: (
691
+ 0: 0,
692
+ 1: $spacer * .25,
693
+ 2: $spacer * .5,
694
+ 3: $spacer,
695
+ 4: $spacer * 1.5,
696
+ 5: $spacer * 3,
697
+ ) !default;
698
+
699
+ $negative-spacers: if($enable-negative-margins, negativify-map($spacers), null) !default;
700
+ // scss-docs-end spacer-variables-maps
701
+
702
+ // Position
703
+ //
704
+ // Define the edge positioning anchors of the position utilities.
705
+
706
+ // scss-docs-start position-map
707
+ $position-values: (
708
+ 0: 0,
709
+ 50: 50%,
710
+ 100: 100%
711
+ ) !default;
712
+ // scss-docs-end position-map
713
+
714
+ // Body
715
+ //
716
+ // Settings for the `<body>` element.
717
+
718
+ $body-bg: $white !default;
719
+ $body-color: $gray-900 !default;
720
+ $body-text-align: null !default;
721
+
722
+ // Utilities maps
723
+ //
724
+ // Extends the default `$theme-colors` maps to help create our utilities.
725
+
726
+ // Come v6, we'll de-dupe these variables. Until then, for backward compatibility, we keep them to reassign.
727
+ // scss-docs-start utilities-colors
728
+ $utilities-colors: $theme-colors-rgb !default;
729
+ // scss-docs-end utilities-colors
730
+
731
+ // scss-docs-start utilities-text-colors
732
+ $utilities-text: map.merge(
733
+ $utilities-colors,
734
+ (
735
+ "black": to-rgb($black),
736
+ "white": to-rgb($white),
737
+ "body": to-rgb($body-color)
738
+ )
739
+ ) !default;
740
+ $utilities-text-colors: map-loop($utilities-text, rgba-css-var, "$key", "text") !default;
741
+ // scss-docs-end utilities-text-colors
742
+
743
+ // scss-docs-start utilities-bg-colors
744
+ $utilities-bg: map.merge(
745
+ $utilities-colors,
746
+ (
747
+ "black": to-rgb($black),
748
+ "white": to-rgb($white),
749
+ "body": to-rgb($body-bg)
750
+ )
751
+ ) !default;
752
+ $utilities-bg-colors: map-loop($utilities-bg, rgba-css-var, "$key", "bg") !default;
753
+ // scss-docs-end utilities-bg-colors
754
+
755
+ // Links
756
+ //
757
+ // Style anchor elements.
758
+
759
+ $link-color: $primary !default;
760
+ $link-decoration: underline !default;
761
+ $link-shade-percentage: 20% !default;
762
+ $link-hover-color: shift-color($link-color, $link-shade-percentage) !default;
763
+ $link-hover-decoration: null !default;
764
+
765
+ $stretched-link-pseudo-element: after !default;
766
+ $stretched-link-z-index: 1 !default;
767
+
768
+ // Paragraphs
769
+ //
770
+ // Style p element.
771
+
772
+ $paragraph-margin-bottom: 1rem !default;
773
+
774
+
775
+ // Grid breakpoints
776
+ //
777
+ // Define the minimum dimensions at which your layout will change,
778
+ // adapting to different screen sizes, for use in media queries.
779
+
780
+ // scss-docs-start grid-breakpoints
781
+ $grid-breakpoints: (
782
+ xs: 0,
783
+ sm: 576px,
784
+ md: 768px,
785
+ lg: 992px,
786
+ xl: 1200px,
787
+ xxl: 1400px
788
+ ) !default;
789
+ // scss-docs-end grid-breakpoints
790
+
791
+ @include _assert-ascending($grid-breakpoints, "$grid-breakpoints");
792
+ @include _assert-starts-at-zero($grid-breakpoints, "$grid-breakpoints");
793
+
794
+
795
+ // Grid containers
796
+ //
797
+ // Define the maximum width of `.container` for different screen sizes.
798
+
799
+ // scss-docs-start container-max-widths
800
+ $container-max-widths: (
801
+ sm: 540px,
802
+ md: 720px,
803
+ lg: 960px,
804
+ xl: 1140px,
805
+ xxl: 1320px
806
+ ) !default;
807
+ // scss-docs-end container-max-widths
808
+
809
+ @include _assert-ascending($container-max-widths, "$container-max-widths");
810
+
811
+
812
+ // Grid columns
813
+ //
814
+ // Set the number of columns and specify the width of the gutters.
815
+
816
+ $grid-columns: 12 !default;
817
+ $grid-gutter-width: 1.5rem !default;
818
+ $grid-row-columns: 6 !default;
819
+
820
+ $gutters: $spacers !default;
821
+
822
+ // Container padding
823
+
824
+ $container-padding-x: $grid-gutter-width * .5 !default;
825
+
826
+
827
+ // Components
828
+ //
829
+ // Define common padding and border radius sizes and more.
830
+
831
+ // scss-docs-start border-variables
832
+ $border-width: 1px !default;
833
+ $border-widths: (
834
+ 1: 1px,
835
+ 2: 2px,
836
+ 3: 3px,
837
+ 4: 4px,
838
+ 5: 5px
839
+ ) !default;
840
+
841
+ $border-color: $gray-300 !default;
842
+ // scss-docs-end border-variables
843
+
844
+ // scss-docs-start border-radius-variables
845
+ $border-radius: .25rem !default;
846
+ $border-radius-sm: .2rem !default;
847
+ $border-radius-lg: .3rem !default;
848
+ $border-radius-pill: 50rem !default;
849
+ // scss-docs-end border-radius-variables
850
+
851
+ // scss-docs-start box-shadow-variables
852
+ $box-shadow: 0 .5rem 1rem rgba($black, .15) !default;
853
+ $box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;
854
+ $box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;
855
+ $box-shadow-inset: inset 0 1px 2px rgba($black, .075) !default;
856
+ // scss-docs-end box-shadow-variables
857
+
858
+ $component-active-color: $white !default;
859
+ $component-active-bg: $primary !default;
860
+
861
+ // scss-docs-start caret-variables
862
+ $caret-width: .3em !default;
863
+ $caret-vertical-align: $caret-width * .85 !default;
864
+ $caret-spacing: $caret-width * .85 !default;
865
+ // scss-docs-end caret-variables
866
+
867
+ $transition-base: all .2s ease-in-out !default;
868
+ $transition-fade: opacity .15s linear !default;
869
+ // scss-docs-start collapse-transition
870
+ $transition-collapse: height .35s ease !default;
871
+ $transition-collapse-width: width .35s ease !default;
872
+ // scss-docs-end collapse-transition
873
+
874
+ // stylelint-disable function-disallowed-list
875
+ // scss-docs-start aspect-ratios
876
+ $aspect-ratios: (
877
+ "1x1": 100%,
878
+ "4x3": calc(3 / 4 * 100%),
879
+ "16x9": calc(9 / 16 * 100%),
880
+ "21x9": calc(9 / 21 * 100%)
881
+ ) !default;
882
+ // scss-docs-end aspect-ratios
883
+ // stylelint-enable function-disallowed-list
884
+
885
+ // Typography
886
+ //
887
+ // Font, line-height, and color for body text, headings, and more.
888
+
889
+ // scss-docs-start font-variables
890
+ // stylelint-disable value-keyword-case
891
+ $font-family-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
892
+ $font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default;
893
+ // stylelint-enable value-keyword-case
894
+ $font-family-base: var(--#{$variable-prefix}font-sans-serif) !default;
895
+ $font-family-code: var(--#{$variable-prefix}font-monospace) !default;
896
+
897
+ // $font-size-root affects the value of `rem`, which is used for as well font sizes, paddings, and margins
898
+ // $font-size-base affects the font size of the body text
899
+ $font-size-root: null !default;
900
+ $font-size-base: 1rem !default; // Assumes the browser default, typically `16px`
901
+ $font-size-sm: $font-size-base * .875 !default;
902
+ $font-size-lg: $font-size-base * 1.25 !default;
903
+
904
+ $font-weight-lighter: lighter !default;
905
+ $font-weight-light: 300 !default;
906
+ $font-weight-normal: 400 !default;
907
+ $font-weight-bold: 700 !default;
908
+ $font-weight-bolder: bolder !default;
909
+
910
+ $font-weight-base: $font-weight-normal !default;
911
+
912
+ $line-height-base: 1.5 !default;
913
+ $line-height-sm: 1.25 !default;
914
+ $line-height-lg: 2 !default;
915
+
916
+ $h1-font-size: $font-size-base * 2.5 !default;
917
+ $h2-font-size: $font-size-base * 2 !default;
918
+ $h3-font-size: $font-size-base * 1.75 !default;
919
+ $h4-font-size: $font-size-base * 1.5 !default;
920
+ $h5-font-size: $font-size-base * 1.25 !default;
921
+ $h6-font-size: $font-size-base !default;
922
+ // scss-docs-end font-variables
923
+
924
+ // scss-docs-start font-sizes
925
+ $font-sizes: (
926
+ 1: $h1-font-size,
927
+ 2: $h2-font-size,
928
+ 3: $h3-font-size,
929
+ 4: $h4-font-size,
930
+ 5: $h5-font-size,
931
+ 6: $h6-font-size
932
+ ) !default;
933
+ // scss-docs-end font-sizes
934
+
935
+ // scss-docs-start headings-variables
936
+ $headings-margin-bottom: $spacer * .5 !default;
937
+ $headings-font-family: null !default;
938
+ $headings-font-style: null !default;
939
+ $headings-font-weight: 500 !default;
940
+ $headings-line-height: 1.2 !default;
941
+ $headings-color: null !default;
942
+ // scss-docs-end headings-variables
943
+
944
+ // scss-docs-start display-headings
945
+ $display-font-sizes: (
946
+ 1: 5rem,
947
+ 2: 4.5rem,
948
+ 3: 4rem,
949
+ 4: 3.5rem,
950
+ 5: 3rem,
951
+ 6: 2.5rem
952
+ ) !default;
953
+
954
+ $display-font-weight: 300 !default;
955
+ $display-line-height: $headings-line-height !default;
956
+ // scss-docs-end display-headings
957
+
958
+ // scss-docs-start type-variables
959
+ $lead-font-size: $font-size-base * 1.25 !default;
960
+ $lead-font-weight: 300 !default;
961
+
962
+ $small-font-size: .875em !default;
963
+
964
+ $sub-sup-font-size: .75em !default;
965
+
966
+ $text-muted: $gray-600 !default;
967
+
968
+ $initialism-font-size: $small-font-size !default;
969
+
970
+ $blockquote-margin-y: $spacer !default;
971
+ $blockquote-font-size: $font-size-base * 1.25 !default;
972
+ $blockquote-footer-color: $gray-600 !default;
973
+ $blockquote-footer-font-size: $small-font-size !default;
974
+
975
+ $hr-margin-y: $spacer !default;
976
+ $hr-color: inherit !default;
977
+ $hr-height: $border-width !default;
978
+ $hr-opacity: .25 !default;
979
+
980
+ $legend-margin-bottom: .5rem !default;
981
+ $legend-font-size: 1.5rem !default;
982
+ $legend-font-weight: null !default;
983
+
984
+ $mark-padding: .2em !default;
985
+
986
+ $dt-font-weight: $font-weight-bold !default;
987
+
988
+ $nested-kbd-font-weight: $font-weight-bold !default;
989
+
990
+ $list-inline-padding: .5rem !default;
991
+
992
+ $mark-bg: #fcf8e3 !default;
993
+ // scss-docs-end type-variables
994
+
995
+
996
+ // Tables
997
+ //
998
+ // Customizes the `.table` component with basic values, each used across all table variations.
999
+
1000
+ // scss-docs-start table-variables
1001
+ $table-cell-padding-y: .5rem !default;
1002
+ $table-cell-padding-x: .5rem !default;
1003
+ $table-cell-padding-y-sm: .25rem !default;
1004
+ $table-cell-padding-x-sm: .25rem !default;
1005
+
1006
+ $table-cell-vertical-align: top !default;
1007
+
1008
+ $table-color: $body-color !default;
1009
+ $table-bg: #fff !default;
1010
+ $table-accent-bg: transparent !default;
1011
+
1012
+ $table-dark-color: #fff;
1013
+ $table-dark-bg: #212529;
1014
+ $table-dark-border-color: #4d5154;
1015
+ $table-dark-striped-bg: #2c3034;
1016
+ $table-dark-striped-color: #fff;
1017
+ $table-dark-active-bg: #373b3e;
1018
+ $table-dark-active-color: #fff;
1019
+ $table-dark-hover-bg: #323539;
1020
+ $table-dark-hover-color: #fff;
1021
+
1022
+
1023
+ $table-th-font-weight: null !default;
1024
+
1025
+ $table-striped-color: $table-color !default;
1026
+ $table-striped-bg-factor: .05 !default;
1027
+ $table-striped-bg: $gray-200 !default;
1028
+
1029
+ $table-active-color: $table-color !default;
1030
+ $table-active-bg-factor: .1 !default;
1031
+ $table-active-bg: $gray-600 !default;
1032
+
1033
+ $table-hover-color: $table-color !default;
1034
+ $table-hover-bg-factor: .075 !default;
1035
+ $table-hover-bg: $gray-400 !default;
1036
+
1037
+ $table-border-factor: .1 !default;
1038
+ $table-border-width: $border-width !default;
1039
+ $table-border-color: $border-color !default;
1040
+
1041
+ $table-striped-order: odd !default;
1042
+
1043
+ $table-group-separator-color: currentColor !default;
1044
+
1045
+ $table-caption-color: $text-muted !default;
1046
+
1047
+ $table-bg-scale: -80% !default;
1048
+
1049
+ // scss-docs-end table-variables
1050
+
1051
+ // scss-docs-start table-loop
1052
+ $table-variants: (
1053
+ "primary": shift-color($primary, $table-bg-scale),
1054
+ "secondary": shift-color($secondary, $table-bg-scale),
1055
+ "success": shift-color($success, $table-bg-scale),
1056
+ "info": shift-color($info, $table-bg-scale),
1057
+ "warning": shift-color($warning, $table-bg-scale),
1058
+ "danger": shift-color($danger, $table-bg-scale),
1059
+ "light": $light,
1060
+ "dark": $dark,
1061
+ ) !default;
1062
+ // scss-docs-end table-loop
1063
+
1064
+
1065
+ // Buttons + Forms
1066
+ //
1067
+ // Shared variables that are reassigned to `$input-` and `$btn-` specific variables.
1068
+
1069
+ // scss-docs-start input-btn-variables
1070
+ $input-btn-padding-y: .375rem !default;
1071
+ $input-btn-padding-x: .75rem !default;
1072
+ $input-btn-font-family: null !default;
1073
+ $input-btn-font-size: $font-size-base !default;
1074
+ $input-btn-line-height: $line-height-base !default;
1075
+
1076
+ $input-btn-focus-width: .25rem !default;
1077
+ $input-btn-focus-color-opacity: .25 !default;
1078
+ $input-btn-focus-color: rgba($component-active-bg, $input-btn-focus-color-opacity) !default;
1079
+ $input-btn-focus-blur: 0 !default;
1080
+ $input-btn-focus-box-shadow: 0 0 $input-btn-focus-blur $input-btn-focus-width $input-btn-focus-color !default;
1081
+
1082
+ $input-btn-padding-y-sm: .25rem !default;
1083
+ $input-btn-padding-x-sm: .5rem !default;
1084
+ $input-btn-font-size-sm: $font-size-sm !default;
1085
+
1086
+ $input-btn-padding-y-lg: .5rem !default;
1087
+ $input-btn-padding-x-lg: 1rem !default;
1088
+ $input-btn-font-size-lg: $font-size-lg !default;
1089
+
1090
+ $input-btn-border-width: $border-width !default;
1091
+ // scss-docs-end input-btn-variables
1092
+
1093
+
1094
+ // Buttons
1095
+ //
1096
+ // For each of Bootstrap's buttons, define text, background, and border color.
1097
+
1098
+ // scss-docs-start btn-variables
1099
+ $btn-padding-y: $input-btn-padding-y !default;
1100
+ $btn-padding-x: $input-btn-padding-x !default;
1101
+ $btn-font-family: $input-btn-font-family !default;
1102
+ $btn-font-size: $input-btn-font-size !default;
1103
+ $btn-line-height: $input-btn-line-height !default;
1104
+ $btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping
1105
+
1106
+ $btn-padding-y-sm: $input-btn-padding-y-sm !default;
1107
+ $btn-padding-x-sm: $input-btn-padding-x-sm !default;
1108
+ $btn-font-size-sm: $input-btn-font-size-sm !default;
1109
+
1110
+ $btn-padding-y-lg: $input-btn-padding-y-lg !default;
1111
+ $btn-padding-x-lg: $input-btn-padding-x-lg !default;
1112
+ $btn-font-size-lg: $input-btn-font-size-lg !default;
1113
+
1114
+ $btn-border-width: $input-btn-border-width !default;
1115
+
1116
+ $btn-font-weight: $font-weight-normal !default;
1117
+ $btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;
1118
+ $btn-focus-width: $input-btn-focus-width !default;
1119
+ $btn-focus-box-shadow: $input-btn-focus-box-shadow !default;
1120
+ $btn-disabled-opacity: .65 !default;
1121
+ $btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;
1122
+
1123
+ $btn-link-color: $link-color !default;
1124
+ $btn-link-hover-color: $link-hover-color !default;
1125
+ $btn-link-disabled-color: $gray-600 !default;
1126
+
1127
+ // Allows for customizing button radius independently from global border radius
1128
+ $btn-border-radius: $border-radius !default;
1129
+ $btn-border-radius-sm: $border-radius-sm !default;
1130
+ $btn-border-radius-lg: $border-radius-lg !default;
1131
+
1132
+ $btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
1133
+
1134
+ $btn-hover-bg-shade-amount: 15% !default;
1135
+ $btn-hover-bg-tint-amount: 15% !default;
1136
+ $btn-hover-border-shade-amount: 20% !default;
1137
+ $btn-hover-border-tint-amount: 10% !default;
1138
+ $btn-active-bg-shade-amount: 20% !default;
1139
+ $btn-active-bg-tint-amount: 20% !default;
1140
+ $btn-active-border-shade-amount: 25% !default;
1141
+ $btn-active-border-tint-amount: 10% !default;
1142
+ // scss-docs-end btn-variables
1143
+
1144
+
1145
+ // Forms
1146
+
1147
+ // scss-docs-start form-text-variables
1148
+ $form-text-margin-top: .25rem !default;
1149
+ $form-text-font-size: $small-font-size !default;
1150
+ $form-text-font-style: null !default;
1151
+ $form-text-font-weight: null !default;
1152
+ $form-text-color: $text-muted !default;
1153
+ // scss-docs-end form-text-variables
1154
+
1155
+ // scss-docs-start form-label-variables
1156
+ $form-label-margin-bottom: .5rem !default;
1157
+ $form-label-font-size: null !default;
1158
+ $form-label-font-style: null !default;
1159
+ $form-label-font-weight: null !default;
1160
+ $form-label-color: null !default;
1161
+ // scss-docs-end form-label-variables
1162
+
1163
+ // scss-docs-start form-input-variables
1164
+ $input-padding-y: $input-btn-padding-y !default;
1165
+ $input-padding-x: $input-btn-padding-x !default;
1166
+ $input-font-family: $input-btn-font-family !default;
1167
+ $input-font-size: $input-btn-font-size !default;
1168
+ $input-font-weight: $font-weight-base !default;
1169
+ $input-line-height: $input-btn-line-height !default;
1170
+
1171
+ $input-padding-y-sm: $input-btn-padding-y-sm !default;
1172
+ $input-padding-x-sm: $input-btn-padding-x-sm !default;
1173
+ $input-font-size-sm: $input-btn-font-size-sm !default;
1174
+
1175
+ $input-padding-y-lg: $input-btn-padding-y-lg !default;
1176
+ $input-padding-x-lg: $input-btn-padding-x-lg !default;
1177
+ $input-font-size-lg: $input-btn-font-size-lg !default;
1178
+
1179
+ $input-bg: $body-bg !default;
1180
+ $input-disabled-bg: $gray-200 !default;
1181
+ $input-disabled-border-color: null !default;
1182
+
1183
+ $input-color: $body-color !default;
1184
+ $input-border-color: $gray-400 !default;
1185
+ $input-border-width: $input-btn-border-width !default;
1186
+ $input-box-shadow: $box-shadow-inset !default;
1187
+
1188
+ $input-border-radius: $border-radius !default;
1189
+ $input-border-radius-sm: $border-radius-sm !default;
1190
+ $input-border-radius-lg: $border-radius-lg !default;
1191
+
1192
+ $input-focus-bg: $input-bg !default;
1193
+ $input-focus-border-color: tint-color($component-active-bg, 50%) !default;
1194
+ $input-focus-color: $input-color !default;
1195
+ $input-focus-width: $input-btn-focus-width !default;
1196
+ $input-focus-box-shadow: $input-btn-focus-box-shadow !default;
1197
+
1198
+ $input-placeholder-color: $gray-600 !default;
1199
+ $input-plaintext-color: $body-color !default;
1200
+
1201
+ $input-height-border: $input-border-width * 2 !default;
1202
+
1203
+ $input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;
1204
+ $input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;
1205
+ $input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y * .5) !default;
1206
+
1207
+ $input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;
1208
+ $input-height-sm: add($input-line-height * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;
1209
+ $input-height-lg: add($input-line-height * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;
1210
+
1211
+ $input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
1212
+
1213
+ $form-color-width: 3rem !default;
1214
+ // scss-docs-end form-input-variables
1215
+
1216
+ // scss-docs-start form-check-variables
1217
+ $form-check-input-width: 1em !default;
1218
+ $form-check-min-height: $font-size-base * $line-height-base !default;
1219
+ $form-check-padding-start: $form-check-input-width + .5em !default;
1220
+ $form-check-margin-bottom: .125rem !default;
1221
+ $form-check-label-color: null !default;
1222
+ $form-check-label-cursor: null !default;
1223
+ $form-check-transition: null !default;
1224
+
1225
+ $form-check-input-active-filter: brightness(90%) !default;
1226
+
1227
+ $form-check-input-bg: $input-bg !default;
1228
+ $form-check-input-border: 1px solid rgba($black, .25) !default;
1229
+ $form-check-input-border-radius: .25em !default;
1230
+ $form-check-radio-border-radius: 50% !default;
1231
+ $form-check-input-focus-border: $input-focus-border-color !default;
1232
+ $form-check-input-focus-box-shadow: $input-btn-focus-box-shadow !default;
1233
+
1234
+ $form-check-input-checked-color: $component-active-color !default;
1235
+ $form-check-input-checked-bg-color: $component-active-bg !default;
1236
+ $form-check-input-checked-border-color: $form-check-input-checked-bg-color !default;
1237
+ $form-check-input-checked-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$form-check-input-checked-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/></svg>") !default;
1238
+ $form-check-radio-checked-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='2' fill='#{$form-check-input-checked-color}'/></svg>") !default;
1239
+
1240
+ $form-check-input-indeterminate-color: $component-active-color !default;
1241
+ $form-check-input-indeterminate-bg-color: $component-active-bg !default;
1242
+ $form-check-input-indeterminate-border-color: $form-check-input-indeterminate-bg-color !default;
1243
+ $form-check-input-indeterminate-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$form-check-input-indeterminate-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/></svg>") !default;
1244
+
1245
+ $form-check-input-disabled-opacity: .5 !default;
1246
+ $form-check-label-disabled-opacity: $form-check-input-disabled-opacity !default;
1247
+ $form-check-btn-check-disabled-opacity: $btn-disabled-opacity !default;
1248
+
1249
+ $form-check-inline-margin-end: 1rem !default;
1250
+ // scss-docs-end form-check-variables
1251
+
1252
+ // scss-docs-start form-switch-variables
1253
+ $form-switch-color: rgba($black, .25) !default;
1254
+ $form-switch-width: 2em !default;
1255
+ $form-switch-padding-start: $form-switch-width + .5em !default;
1256
+ $form-switch-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-color}'/></svg>") !default;
1257
+ $form-switch-border-radius: $form-switch-width !default;
1258
+ $form-switch-transition: background-position .15s ease-in-out !default;
1259
+
1260
+ $form-switch-focus-color: $input-focus-border-color !default;
1261
+ $form-switch-focus-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-focus-color}'/></svg>") !default;
1262
+
1263
+ $form-switch-checked-color: $component-active-color !default;
1264
+ $form-switch-checked-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-checked-color}'/></svg>") !default;
1265
+ $form-switch-checked-bg-position: right center !default;
1266
+ // scss-docs-end form-switch-variables
1267
+
1268
+ // scss-docs-start input-group-variables
1269
+ $input-group-addon-padding-y: $input-padding-y !default;
1270
+ $input-group-addon-padding-x: $input-padding-x !default;
1271
+ $input-group-addon-font-weight: $input-font-weight !default;
1272
+ $input-group-addon-color: $input-color !default;
1273
+ $input-group-addon-bg: $gray-200 !default;
1274
+ $input-group-addon-border-color: $input-border-color !default;
1275
+ // scss-docs-end input-group-variables
1276
+
1277
+ // scss-docs-start form-select-variables
1278
+ $form-select-padding-y: $input-padding-y !default;
1279
+ $form-select-padding-x: $input-padding-x !default;
1280
+ $form-select-font-family: $input-font-family !default;
1281
+ $form-select-font-size: $input-font-size !default;
1282
+ $form-select-indicator-padding: $form-select-padding-x * 3 !default; // Extra padding for background-image
1283
+ $form-select-font-weight: $input-font-weight !default;
1284
+ $form-select-line-height: $input-line-height !default;
1285
+ $form-select-color: $input-color !default;
1286
+ $form-select-bg: $input-bg !default;
1287
+ $form-select-disabled-color: null !default;
1288
+ $form-select-disabled-bg: $gray-200 !default;
1289
+ $form-select-disabled-border-color: $input-disabled-border-color !default;
1290
+ $form-select-bg-position: right $form-select-padding-x center !default;
1291
+ $form-select-bg-size: 16px 12px !default; // In pixels because image dimensions
1292
+ $form-select-indicator-color: $gray-800 !default;
1293
+ $form-select-indicator: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#{$form-select-indicator-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/></svg>") !default;
1294
+
1295
+ $form-select-feedback-icon-padding-end: $form-select-padding-x * 2.5 + $form-select-indicator-padding !default;
1296
+ $form-select-feedback-icon-position: center right $form-select-indicator-padding !default;
1297
+ $form-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;
1298
+
1299
+ $form-select-border-width: $input-border-width !default;
1300
+ $form-select-border-color: $input-border-color !default;
1301
+ $form-select-border-radius: $input-border-radius !default;
1302
+ $form-select-box-shadow: $box-shadow-inset !default;
1303
+
1304
+ $form-select-focus-border-color: $input-focus-border-color !default;
1305
+ $form-select-focus-width: $input-focus-width !default;
1306
+ $form-select-focus-box-shadow: 0 0 0 $form-select-focus-width $input-btn-focus-color !default;
1307
+
1308
+ $form-select-padding-y-sm: $input-padding-y-sm !default;
1309
+ $form-select-padding-x-sm: $input-padding-x-sm !default;
1310
+ $form-select-font-size-sm: $input-font-size-sm !default;
1311
+ $form-select-border-radius-sm: $input-border-radius-sm !default;
1312
+
1313
+ $form-select-padding-y-lg: $input-padding-y-lg !default;
1314
+ $form-select-padding-x-lg: $input-padding-x-lg !default;
1315
+ $form-select-font-size-lg: $input-font-size-lg !default;
1316
+ $form-select-border-radius-lg: $input-border-radius-lg !default;
1317
+
1318
+ $form-select-transition: $input-transition !default;
1319
+ // scss-docs-end form-select-variables
1320
+
1321
+ // scss-docs-start form-range-variables
1322
+ $form-range-track-width: 100% !default;
1323
+ $form-range-track-height: .5rem !default;
1324
+ $form-range-track-cursor: pointer !default;
1325
+ $form-range-track-bg: $gray-300 !default;
1326
+ $form-range-track-border-radius: 1rem !default;
1327
+ $form-range-track-box-shadow: $box-shadow-inset !default;
1328
+
1329
+ $form-range-thumb-width: 1rem !default;
1330
+ $form-range-thumb-height: $form-range-thumb-width !default;
1331
+ $form-range-thumb-bg: $component-active-bg !default;
1332
+ $form-range-thumb-border: 0 !default;
1333
+ $form-range-thumb-border-radius: 1rem !default;
1334
+ $form-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;
1335
+ $form-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;
1336
+ $form-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in Edge
1337
+ $form-range-thumb-active-bg: tint-color($component-active-bg, 70%) !default;
1338
+ $form-range-thumb-disabled-bg: $gray-500 !default;
1339
+ $form-range-thumb-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
1340
+ // scss-docs-end form-range-variables
1341
+
1342
+ // scss-docs-start form-file-variables
1343
+ $form-file-button-color: $input-color !default;
1344
+ $form-file-button-bg: $input-group-addon-bg !default;
1345
+ $form-file-button-hover-bg: shade-color($form-file-button-bg, 5%) !default;
1346
+ // scss-docs-end form-file-variables
1347
+
1348
+ // scss-docs-start form-floating-variables
1349
+ $form-floating-height: add(3.5rem, $input-height-border) !default;
1350
+ $form-floating-line-height: 1.25 !default;
1351
+ $form-floating-padding-x: $input-padding-x !default;
1352
+ $form-floating-padding-y: 1rem !default;
1353
+ $form-floating-input-padding-t: 1.625rem !default;
1354
+ $form-floating-input-padding-b: .625rem !default;
1355
+ $form-floating-label-opacity: .65 !default;
1356
+ $form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem) !default;
1357
+ $form-floating-transition: opacity .1s ease-in-out, transform .1s ease-in-out !default;
1358
+ // scss-docs-end form-floating-variables
1359
+
1360
+ // Form validation
1361
+
1362
+ // scss-docs-start form-feedback-variables
1363
+ $form-feedback-margin-top: $form-text-margin-top !default;
1364
+ $form-feedback-font-size: $form-text-font-size !default;
1365
+ $form-feedback-font-style: $form-text-font-style !default;
1366
+ $form-feedback-valid-color: $success !default;
1367
+ $form-feedback-invalid-color: $danger !default;
1368
+
1369
+ $form-feedback-icon-valid-color: $form-feedback-valid-color !default;
1370
+ $form-feedback-icon-valid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>") !default;
1371
+ $form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;
1372
+ $form-feedback-icon-invalid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>") !default;
1373
+ // scss-docs-end form-feedback-variables
1374
+
1375
+ // scss-docs-start form-validation-states
1376
+ $form-validation-states: (
1377
+ "valid": (
1378
+ "color": $form-feedback-valid-color,
1379
+ "icon": $form-feedback-icon-valid
1380
+ ),
1381
+ "invalid": (
1382
+ "color": $form-feedback-invalid-color,
1383
+ "icon": $form-feedback-icon-invalid
1384
+ )
1385
+ ) !default;
1386
+ // scss-docs-end form-validation-states
1387
+
1388
+ // Z-index master list
1389
+ //
1390
+ // Warning: Avoid customizing these values. They're used for a bird's eye view
1391
+ // of components dependent on the z-axis and are designed to all work together.
1392
+
1393
+ // scss-docs-start zindex-stack
1394
+ $zindex-dropdown: 1000 !default;
1395
+ $zindex-sticky: 1020 !default;
1396
+ $zindex-fixed: 1030 !default;
1397
+ $zindex-offcanvas-backdrop: 1040 !default;
1398
+ $zindex-offcanvas: 1045 !default;
1399
+ $zindex-modal-backdrop: 1050 !default;
1400
+ $zindex-modal: 1055 !default;
1401
+ $zindex-popover: 1070 !default;
1402
+ $zindex-tooltip: 1080 !default;
1403
+ // scss-docs-end zindex-stack
1404
+
1405
+
1406
+ // Navs
1407
+
1408
+ // scss-docs-start nav-variables
1409
+ $nav-link-padding-y: .5rem !default;
1410
+ $nav-link-padding-x: 1rem !default;
1411
+ $nav-link-font-size: null !default;
1412
+ $nav-link-font-weight: null !default;
1413
+ $nav-link-color: $link-color !default;
1414
+ $nav-link-hover-color: $link-hover-color !default;
1415
+ $nav-link-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out !default;
1416
+ $nav-link-disabled-color: $gray-600 !default;
1417
+
1418
+ $nav-tabs-border-color: $gray-300 !default;
1419
+ $nav-tabs-border-width: $border-width !default;
1420
+ $nav-tabs-border-radius: $border-radius !default;
1421
+ $nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;
1422
+ $nav-tabs-link-active-color: $gray-700 !default;
1423
+ $nav-tabs-link-active-bg: $body-bg !default;
1424
+ $nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;
1425
+
1426
+ $nav-pills-border-radius: $border-radius !default;
1427
+ $nav-pills-link-active-color: $component-active-color !default;
1428
+ $nav-pills-link-active-bg: $component-active-bg !default;
1429
+ // scss-docs-end nav-variables
1430
+
1431
+
1432
+ // Navbar
1433
+
1434
+ // scss-docs-start navbar-variables
1435
+ $navbar-padding-y: $spacer * .5 !default;
1436
+ $navbar-padding-x: null !default;
1437
+
1438
+ $navbar-nav-link-padding-x: .5rem !default;
1439
+
1440
+ $navbar-brand-font-size: $font-size-lg !default;
1441
+ // Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link
1442
+ $nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;
1443
+ $navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;
1444
+ $navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) * .5 !default;
1445
+ $navbar-brand-margin-end: 1rem !default;
1446
+
1447
+ $navbar-toggler-padding-y: .25rem !default;
1448
+ $navbar-toggler-padding-x: .75rem !default;
1449
+ $navbar-toggler-font-size: $font-size-lg !default;
1450
+ $navbar-toggler-border-radius: $btn-border-radius !default;
1451
+ $navbar-toggler-focus-width: $btn-focus-width !default;
1452
+ $navbar-toggler-transition: box-shadow .15s ease-in-out !default;
1453
+ // scss-docs-end navbar-variables
1454
+
1455
+ // scss-docs-start navbar-theme-variables
1456
+ $navbar-dark-color: rgba($white, .55) !default;
1457
+ $navbar-dark-hover-color: rgba($white, .75) !default;
1458
+ $navbar-dark-active-color: $white !default;
1459
+ $navbar-dark-disabled-color: rgba($white, .25) !default;
1460
+ $navbar-dark-toggler-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='#{$navbar-dark-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>") !default;
1461
+ $navbar-dark-toggler-border-color: rgba($white, .1) !default;
1462
+
1463
+ $navbar-light-color: rgba($black, .55) !default;
1464
+ $navbar-light-hover-color: rgba($black, .7) !default;
1465
+ $navbar-light-active-color: rgba($black, .9) !default;
1466
+ $navbar-light-disabled-color: rgba($black, .3) !default;
1467
+ $navbar-light-toggler-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>") !default;
1468
+ $navbar-light-toggler-border-color: rgba($black, .1) !default;
1469
+
1470
+ $navbar-light-brand-color: $navbar-light-active-color !default;
1471
+ $navbar-light-brand-hover-color: $navbar-light-active-color !default;
1472
+ $navbar-dark-brand-color: $navbar-dark-active-color !default;
1473
+ $navbar-dark-brand-hover-color: $navbar-dark-active-color !default;
1474
+ // scss-docs-end navbar-theme-variables
1475
+
1476
+
1477
+ // Dropdowns
1478
+ //
1479
+ // Dropdown menu container and contents.
1480
+
1481
+ // scss-docs-start dropdown-variables
1482
+ $dropdown-min-width: 10rem !default;
1483
+ $dropdown-padding-x: 0 !default;
1484
+ $dropdown-padding-y: .5rem !default;
1485
+ $dropdown-spacer: .125rem !default;
1486
+ $dropdown-font-size: $font-size-base !default;
1487
+ $dropdown-color: $body-color !default;
1488
+ $dropdown-bg: $white !default;
1489
+ $dropdown-border-color: rgba($black, .15) !default;
1490
+ $dropdown-border-radius: $border-radius !default;
1491
+ $dropdown-border-width: $border-width !default;
1492
+ $dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;
1493
+ $dropdown-divider-bg: $dropdown-border-color !default;
1494
+ $dropdown-divider-margin-y: $spacer * .5 !default;
1495
+ $dropdown-box-shadow: $box-shadow !default;
1496
+
1497
+ $dropdown-link-color: $gray-900 !default;
1498
+ $dropdown-link-hover-color: shade-color($dropdown-link-color, 10%) !default;
1499
+ $dropdown-link-hover-bg: $gray-200 !default;
1500
+
1501
+ $dropdown-link-active-color: $component-active-color !default;
1502
+ $dropdown-link-active-bg: $component-active-bg !default;
1503
+
1504
+ $dropdown-link-disabled-color: $gray-500 !default;
1505
+
1506
+ $dropdown-item-padding-y: $spacer * .25 !default;
1507
+ $dropdown-item-padding-x: $spacer !default;
1508
+
1509
+ $dropdown-header-color: $gray-600 !default;
1510
+ $dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x !default;
1511
+ // scss-docs-end dropdown-variables
1512
+
1513
+ // scss-docs-start dropdown-dark-variables
1514
+ $dropdown-dark-color: $gray-300 !default;
1515
+ $dropdown-dark-bg: $gray-800 !default;
1516
+ $dropdown-dark-border-color: $dropdown-border-color !default;
1517
+ $dropdown-dark-divider-bg: $dropdown-divider-bg !default;
1518
+ $dropdown-dark-box-shadow: null !default;
1519
+ $dropdown-dark-link-color: $dropdown-dark-color !default;
1520
+ $dropdown-dark-link-hover-color: $white !default;
1521
+ $dropdown-dark-link-hover-bg: rgba($white, .15) !default;
1522
+ $dropdown-dark-link-active-color: $dropdown-link-active-color !default;
1523
+ $dropdown-dark-link-active-bg: $dropdown-link-active-bg !default;
1524
+ $dropdown-dark-link-disabled-color: $gray-500 !default;
1525
+ $dropdown-dark-header-color: $gray-500 !default;
1526
+ // scss-docs-end dropdown-dark-variables
1527
+
1528
+
1529
+ // Pagination
1530
+
1531
+ // scss-docs-start pagination-variables
1532
+ $pagination-padding-y: .375rem !default;
1533
+ $pagination-padding-x: .75rem !default;
1534
+ $pagination-padding-y-sm: .25rem !default;
1535
+ $pagination-padding-x-sm: .5rem !default;
1536
+ $pagination-padding-y-lg: .75rem !default;
1537
+ $pagination-padding-x-lg: 1.5rem !default;
1538
+
1539
+ $pagination-color: $link-color !default;
1540
+ $pagination-bg: $white !default;
1541
+ $pagination-border-width: $border-width !default;
1542
+ $pagination-border-radius: $border-radius !default;
1543
+ $pagination-margin-start: -$pagination-border-width !default;
1544
+ $pagination-border-color: $gray-300 !default;
1545
+
1546
+ $pagination-focus-color: $link-hover-color !default;
1547
+ $pagination-focus-bg: $gray-200 !default;
1548
+ $pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;
1549
+ $pagination-focus-outline: 0 !default;
1550
+
1551
+ $pagination-hover-color: $link-hover-color !default;
1552
+ $pagination-hover-bg: $gray-200 !default;
1553
+ $pagination-hover-border-color: $gray-300 !default;
1554
+
1555
+ $pagination-active-color: $component-active-color !default;
1556
+ $pagination-active-bg: $component-active-bg !default;
1557
+ $pagination-active-border-color: $pagination-active-bg !default;
1558
+
1559
+ $pagination-disabled-color: $gray-600 !default;
1560
+ $pagination-disabled-bg: $white !default;
1561
+ $pagination-disabled-border-color: $gray-300 !default;
1562
+
1563
+ $pagination-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
1564
+
1565
+ $pagination-border-radius-sm: $border-radius-sm !default;
1566
+ $pagination-border-radius-lg: $border-radius-lg !default;
1567
+ // scss-docs-end pagination-variables
1568
+
1569
+
1570
+ // Placeholders
1571
+
1572
+ // scss-docs-start placeholders
1573
+ $placeholder-opacity-max: .5 !default;
1574
+ $placeholder-opacity-min: .2 !default;
1575
+ // scss-docs-end placeholders
1576
+
1577
+ // Cards
1578
+
1579
+ // scss-docs-start card-variables
1580
+ $card-spacer-y: $spacer !default;
1581
+ $card-spacer-x: $spacer !default;
1582
+ $card-title-spacer-y: $spacer * .5 !default;
1583
+ $card-border-width: $border-width !default;
1584
+ $card-border-color: rgba($black, .125) !default;
1585
+ $card-border-radius: $border-radius !default;
1586
+ $card-box-shadow: null !default;
1587
+ $card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;
1588
+ $card-cap-padding-y: $card-spacer-y * .5 !default;
1589
+ $card-cap-padding-x: $card-spacer-x !default;
1590
+ $card-cap-bg: rgba($black, .03) !default;
1591
+ $card-cap-color: null !default;
1592
+ $card-height: null !default;
1593
+ $card-color: null !default;
1594
+ $card-bg: $white !default;
1595
+ $card-img-overlay-padding: $spacer !default;
1596
+ $card-group-margin: $grid-gutter-width * .5 !default;
1597
+ // scss-docs-end card-variables
1598
+
1599
+ // Accordion
1600
+
1601
+ // scss-docs-start accordion-variables
1602
+ $accordion-padding-y: 1rem !default;
1603
+ $accordion-padding-x: 1.25rem !default;
1604
+ $accordion-color: $body-color !default;
1605
+ $accordion-bg: $body-bg !default;
1606
+ $accordion-border-width: $border-width !default;
1607
+ $accordion-border-color: rgba($black, .125) !default;
1608
+ $accordion-border-radius: $border-radius !default;
1609
+ $accordion-inner-border-radius: subtract($accordion-border-radius, $accordion-border-width) !default;
1610
+
1611
+ $accordion-body-padding-y: $accordion-padding-y !default;
1612
+ $accordion-body-padding-x: $accordion-padding-x !default;
1613
+
1614
+ $accordion-button-padding-y: $accordion-padding-y !default;
1615
+ $accordion-button-padding-x: $accordion-padding-x !default;
1616
+ $accordion-button-color: $accordion-color !default;
1617
+ $accordion-button-bg: $accordion-bg !default;
1618
+ $accordion-transition: $btn-transition, border-radius .15s ease !default;
1619
+ $accordion-button-active-bg: tint-color($component-active-bg, 90%) !default;
1620
+ $accordion-button-active-color: shade-color($primary, 10%) !default;
1621
+
1622
+ $accordion-button-focus-border-color: $input-focus-border-color !default;
1623
+ $accordion-button-focus-box-shadow: $btn-focus-box-shadow !default;
1624
+
1625
+ $accordion-icon-width: 1.25rem !default;
1626
+ $accordion-icon-color: $accordion-button-color !default;
1627
+ $accordion-icon-active-color: $accordion-button-active-color !default;
1628
+ $accordion-icon-transition: transform .2s ease-in-out !default;
1629
+ $accordion-icon-transform: rotate(-180deg) !default;
1630
+
1631
+ $accordion-button-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-color}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>") !default;
1632
+ $accordion-button-active-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-active-color}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>") !default;
1633
+ // scss-docs-end accordion-variables
1634
+
1635
+ // Tooltips
1636
+
1637
+ // scss-docs-start tooltip-variables
1638
+ $tooltip-font-size: $font-size-sm !default;
1639
+ $tooltip-max-width: 200px !default;
1640
+ $tooltip-color: $white !default;
1641
+ $tooltip-bg: $black !default;
1642
+ $tooltip-border-radius: $border-radius !default;
1643
+ $tooltip-opacity: .9 !default;
1644
+ $tooltip-padding-y: $spacer * .25 !default;
1645
+ $tooltip-padding-x: $spacer * .5 !default;
1646
+ $tooltip-margin: 0 !default;
1647
+
1648
+ $tooltip-arrow-width: .8rem !default;
1649
+ $tooltip-arrow-height: .4rem !default;
1650
+ $tooltip-arrow-color: $tooltip-bg !default;
1651
+ // scss-docs-end tooltip-variables
1652
+
1653
+ // Form tooltips must come after regular tooltips
1654
+ // scss-docs-start tooltip-feedback-variables
1655
+ $form-feedback-tooltip-padding-y: $tooltip-padding-y !default;
1656
+ $form-feedback-tooltip-padding-x: $tooltip-padding-x !default;
1657
+ $form-feedback-tooltip-font-size: $tooltip-font-size !default;
1658
+ $form-feedback-tooltip-line-height: null !default;
1659
+ $form-feedback-tooltip-opacity: $tooltip-opacity !default;
1660
+ $form-feedback-tooltip-border-radius: $tooltip-border-radius !default;
1661
+ // scss-docs-end tooltip-feedback-variables
1662
+
1663
+
1664
+ // Popovers
1665
+
1666
+ // scss-docs-start popover-variables
1667
+ $popover-font-size: $font-size-sm !default;
1668
+ $popover-bg: $white !default;
1669
+ $popover-max-width: 276px !default;
1670
+ $popover-border-width: $border-width !default;
1671
+ $popover-border-color: rgba($black, .2) !default;
1672
+ $popover-border-radius: $border-radius-lg !default;
1673
+ $popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;
1674
+ $popover-box-shadow: $box-shadow !default;
1675
+
1676
+ $popover-header-bg: shade-color($popover-bg, 6%) !default;
1677
+ $popover-header-color: $headings-color !default;
1678
+ $popover-header-padding-y: .5rem !default;
1679
+ $popover-header-padding-x: $spacer !default;
1680
+
1681
+ $popover-body-color: $body-color !default;
1682
+ $popover-body-padding-y: $spacer !default;
1683
+ $popover-body-padding-x: $spacer !default;
1684
+
1685
+ $popover-arrow-width: 1rem !default;
1686
+ $popover-arrow-height: .5rem !default;
1687
+ $popover-arrow-color: $popover-bg !default;
1688
+
1689
+ $popover-arrow-outer-color: color.adjust($popover-border-color, $alpha: .05) !default;
1690
+ // scss-docs-end popover-variables
1691
+
1692
+
1693
+ // Toasts
1694
+
1695
+ // scss-docs-start toast-variables
1696
+ $toast-max-width: 350px !default;
1697
+ $toast-padding-x: .75rem !default;
1698
+ $toast-padding-y: .5rem !default;
1699
+ $toast-font-size: .875rem !default;
1700
+ $toast-color: null !default;
1701
+ $toast-background-color: rgba($white, .85) !default;
1702
+ $toast-border-width: 1px !default;
1703
+ $toast-border-color: rgba($black, .1) !default;
1704
+ $toast-border-radius: $border-radius !default;
1705
+ $toast-box-shadow: $box-shadow !default;
1706
+ $toast-spacing: $container-padding-x !default;
1707
+
1708
+ $toast-header-color: $gray-600 !default;
1709
+ $toast-header-background-color: rgba($white, .85) !default;
1710
+ $toast-header-border-color: rgba($black, .05) !default;
1711
+ // scss-docs-end toast-variables
1712
+
1713
+
1714
+ // Badges
1715
+
1716
+ // scss-docs-start badge-variables
1717
+ $badge-font-size: .75em !default;
1718
+ $badge-font-weight: $font-weight-bold !default;
1719
+ $badge-color: $white !default;
1720
+ $badge-padding-y: .35em !default;
1721
+ $badge-padding-x: .65em !default;
1722
+ $badge-border-radius: $border-radius !default;
1723
+ // scss-docs-end badge-variables
1724
+
1725
+
1726
+ // Modals
1727
+
1728
+ // scss-docs-start modal-variables
1729
+ $modal-inner-padding: $spacer !default;
1730
+
1731
+ $modal-footer-margin-between: .5rem !default;
1732
+
1733
+ $modal-dialog-margin: .5rem !default;
1734
+ $modal-dialog-margin-y-sm-up: 1.75rem !default;
1735
+
1736
+ $modal-title-line-height: $line-height-base !default;
1737
+
1738
+ $modal-content-color: null !default;
1739
+ $modal-content-bg: $white !default;
1740
+ $modal-content-border-color: rgba($black, .2) !default;
1741
+ $modal-content-border-width: $border-width !default;
1742
+ $modal-content-border-radius: $border-radius-lg !default;
1743
+ $modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;
1744
+ $modal-content-box-shadow-xs: $box-shadow-sm !default;
1745
+ $modal-content-box-shadow-sm-up: $box-shadow !default;
1746
+
1747
+ $modal-backdrop-bg: $black !default;
1748
+ $modal-backdrop-opacity: .5 !default;
1749
+ $modal-header-border-color: $border-color !default;
1750
+ $modal-footer-border-color: $modal-header-border-color !default;
1751
+ $modal-header-border-width: $modal-content-border-width !default;
1752
+ $modal-footer-border-width: $modal-header-border-width !default;
1753
+ $modal-header-padding-y: $modal-inner-padding !default;
1754
+ $modal-header-padding-x: $modal-inner-padding !default;
1755
+ $modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility
1756
+
1757
+ $modal-sm: 300px !default;
1758
+ $modal-md: 500px !default;
1759
+ $modal-lg: 800px !default;
1760
+ $modal-xl: 1140px !default;
1761
+
1762
+ $modal-fade-transform: translate(0, -50px) !default;
1763
+ $modal-show-transform: none !default;
1764
+ $modal-transition: transform .3s ease-out !default;
1765
+ $modal-scale-transform: scale(1.02) !default;
1766
+ // scss-docs-end modal-variables
1767
+
1768
+
1769
+ // Alerts
1770
+ //
1771
+ // Define alert colors, border radius, and padding.
1772
+
1773
+ // scss-docs-start alert-variables
1774
+ $alert-padding-y: $spacer !default;
1775
+ $alert-padding-x: $spacer !default;
1776
+ $alert-margin-bottom: 1rem !default;
1777
+ $alert-border-radius: $border-radius !default;
1778
+ $alert-link-font-weight: $font-weight-bold !default;
1779
+ $alert-border-width: $border-width !default;
1780
+ $alert-bg-scale: -80% !default;
1781
+ $alert-border-scale: -70% !default;
1782
+ $alert-color-scale: 40% !default;
1783
+ $alert-dismissible-padding-r: $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side
1784
+ // scss-docs-end alert-variables
1785
+
1786
+
1787
+ // Progress bars
1788
+
1789
+ // scss-docs-start progress-variables
1790
+ $progress-height: 1rem !default;
1791
+ $progress-font-size: $font-size-base * .75 !default;
1792
+ $progress-bg: $gray-200 !default;
1793
+ $progress-border-radius: $border-radius !default;
1794
+ $progress-box-shadow: $box-shadow-inset !default;
1795
+ $progress-bar-color: $white !default;
1796
+ $progress-bar-bg: $primary !default;
1797
+ $progress-bar-animation-timing: 1s linear infinite !default;
1798
+ $progress-bar-transition: width .6s ease !default;
1799
+ // scss-docs-end progress-variables
1800
+
1801
+
1802
+ // List group
1803
+
1804
+ // scss-docs-start list-group-variables
1805
+ $list-group-color: $gray-900 !default;
1806
+ $list-group-bg: $white !default;
1807
+ $list-group-border-color: rgba($black, .125) !default;
1808
+ $list-group-border-width: $border-width !default;
1809
+ $list-group-border-radius: $border-radius !default;
1810
+
1811
+ $list-group-item-padding-y: $spacer * .5 !default;
1812
+ $list-group-item-padding-x: $spacer !default;
1813
+ $list-group-item-bg-scale: -80% !default;
1814
+ $list-group-item-color-scale: 40% !default;
1815
+
1816
+ $list-group-hover-bg: $gray-100 !default;
1817
+ $list-group-active-color: $component-active-color !default;
1818
+ $list-group-active-bg: $component-active-bg !default;
1819
+ $list-group-active-border-color: $list-group-active-bg !default;
1820
+
1821
+ $list-group-disabled-color: $gray-600 !default;
1822
+ $list-group-disabled-bg: $list-group-bg !default;
1823
+
1824
+ $list-group-action-color: $gray-700 !default;
1825
+ $list-group-action-hover-color: $list-group-action-color !default;
1826
+
1827
+ $list-group-action-active-color: $body-color !default;
1828
+ $list-group-action-active-bg: $gray-200 !default;
1829
+ // scss-docs-end list-group-variables
1830
+
1831
+
1832
+ // Image thumbnails
1833
+
1834
+ // scss-docs-start thumbnail-variables
1835
+ $thumbnail-padding: .25rem !default;
1836
+ $thumbnail-bg: $body-bg !default;
1837
+ $thumbnail-border-width: $border-width !default;
1838
+ $thumbnail-border-color: $gray-300 !default;
1839
+ $thumbnail-border-radius: $border-radius !default;
1840
+ $thumbnail-box-shadow: $box-shadow-sm !default;
1841
+ // scss-docs-end thumbnail-variables
1842
+
1843
+
1844
+ // Figures
1845
+
1846
+ // scss-docs-start figure-variables
1847
+ $figure-caption-font-size: $small-font-size !default;
1848
+ $figure-caption-color: $gray-600 !default;
1849
+ // scss-docs-end figure-variables
1850
+
1851
+
1852
+ // Breadcrumbs
1853
+
1854
+ // scss-docs-start breadcrumb-variables
1855
+ $breadcrumb-font-size: null !default;
1856
+ $breadcrumb-padding-y: 0 !default;
1857
+ $breadcrumb-padding-x: 0 !default;
1858
+ $breadcrumb-item-padding-x: .5rem !default;
1859
+ $breadcrumb-margin-bottom: 1rem !default;
1860
+ $breadcrumb-bg: null !default;
1861
+ $breadcrumb-divider-color: $gray-600 !default;
1862
+ $breadcrumb-active-color: $gray-600 !default;
1863
+ $breadcrumb-divider: string.quote("/") !default;
1864
+ $breadcrumb-divider-flipped: $breadcrumb-divider !default;
1865
+ $breadcrumb-border-radius: null !default;
1866
+ // scss-docs-end breadcrumb-variables
1867
+
1868
+ // Carousel
1869
+
1870
+ // scss-docs-start carousel-variables
1871
+ $carousel-control-color: $white !default;
1872
+ $carousel-control-width: 15% !default;
1873
+ $carousel-control-opacity: .5 !default;
1874
+ $carousel-control-hover-opacity: .9 !default;
1875
+ $carousel-control-transition: opacity .15s ease !default;
1876
+
1877
+ $carousel-indicator-width: 30px !default;
1878
+ $carousel-indicator-height: 3px !default;
1879
+ $carousel-indicator-hit-area-height: 10px !default;
1880
+ $carousel-indicator-spacer: 3px !default;
1881
+ $carousel-indicator-opacity: .5 !default;
1882
+ $carousel-indicator-active-bg: $white !default;
1883
+ $carousel-indicator-active-opacity: 1 !default;
1884
+ $carousel-indicator-transition: opacity .6s ease !default;
1885
+
1886
+ $carousel-caption-width: 70% !default;
1887
+ $carousel-caption-color: $white !default;
1888
+ $carousel-caption-padding-y: 1.25rem !default;
1889
+ $carousel-caption-spacer: 1.25rem !default;
1890
+
1891
+ $carousel-control-icon-width: 2rem !default;
1892
+
1893
+ $carousel-control-prev-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/></svg>") !default;
1894
+ $carousel-control-next-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/></svg>") !default;
1895
+
1896
+ $carousel-transition-duration: .6s !default;
1897
+ $carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)
1898
+
1899
+ $carousel-dark-indicator-active-bg: $black !default;
1900
+ $carousel-dark-caption-color: $black !default;
1901
+ $carousel-dark-control-icon-filter: invert(1) grayscale(100) !default;
1902
+ // scss-docs-end carousel-variables
1903
+
1904
+
1905
+ // Spinners
1906
+
1907
+ // scss-docs-start spinner-variables
1908
+ $spinner-width: 2rem !default;
1909
+ $spinner-height: $spinner-width !default;
1910
+ $spinner-vertical-align: -.125em !default;
1911
+ $spinner-border-width: .25em !default;
1912
+ $spinner-animation-speed: .75s !default;
1913
+
1914
+ $spinner-width-sm: 1rem !default;
1915
+ $spinner-height-sm: $spinner-width-sm !default;
1916
+ $spinner-border-width-sm: .2em !default;
1917
+ // scss-docs-end spinner-variables
1918
+
1919
+
1920
+ // Close
1921
+
1922
+ // scss-docs-start close-variables
1923
+ $btn-close-width: 1em !default;
1924
+ $btn-close-height: $btn-close-width !default;
1925
+ $btn-close-padding-x: .25em !default;
1926
+ $btn-close-padding-y: $btn-close-padding-x !default;
1927
+ $btn-close-color: $black !default;
1928
+ $btn-close-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/></svg>") !default;
1929
+ $btn-close-focus-shadow: $input-btn-focus-box-shadow !default;
1930
+ $btn-close-opacity: .5 !default;
1931
+ $btn-close-hover-opacity: .75 !default;
1932
+ $btn-close-focus-opacity: 1 !default;
1933
+ $btn-close-disabled-opacity: .25 !default;
1934
+ $btn-close-white-filter: invert(1) grayscale(100%) brightness(200%) !default;
1935
+ // scss-docs-end close-variables
1936
+
1937
+
1938
+ // Offcanvas
1939
+
1940
+ // scss-docs-start offcanvas-variables
1941
+ $offcanvas-padding-y: $modal-inner-padding !default;
1942
+ $offcanvas-padding-x: $modal-inner-padding !default;
1943
+ $offcanvas-horizontal-width: 400px !default;
1944
+ $offcanvas-vertical-height: 30vh !default;
1945
+ $offcanvas-transition-duration: .3s !default;
1946
+ $offcanvas-border-color: $modal-content-border-color !default;
1947
+ $offcanvas-border-width: $modal-content-border-width !default;
1948
+ $offcanvas-title-line-height: $modal-title-line-height !default;
1949
+ $offcanvas-bg-color: $modal-content-bg !default;
1950
+ $offcanvas-color: $modal-content-color !default;
1951
+ $offcanvas-box-shadow: $modal-content-box-shadow-xs !default;
1952
+ $offcanvas-backdrop-bg: $modal-backdrop-bg !default;
1953
+ $offcanvas-backdrop-opacity: $modal-backdrop-opacity !default;
1954
+ // scss-docs-end offcanvas-variables
1955
+
1956
+ // Code
1957
+
1958
+ $code-font-size: $small-font-size !default;
1959
+ $code-color: $pink !default;
1960
+
1961
+ $kbd-padding-y: .2rem !default;
1962
+ $kbd-padding-x: .4rem !default;
1963
+ $kbd-font-size: $code-font-size !default;
1964
+ $kbd-color: $white !default;
1965
+ $kbd-bg: $gray-900 !default;
1966
+
1967
+ $pre-color: null !default;