@coreui/coreui 4.0.2

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 (203) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +183 -0
  3. package/dist/css/coreui-grid.css +5004 -0
  4. package/dist/css/coreui-grid.css.map +1 -0
  5. package/dist/css/coreui-grid.min.css +8 -0
  6. package/dist/css/coreui-grid.min.css.map +1 -0
  7. package/dist/css/coreui-grid.rtl.css +5011 -0
  8. package/dist/css/coreui-grid.rtl.css.map +1 -0
  9. package/dist/css/coreui-grid.rtl.min.css +14 -0
  10. package/dist/css/coreui-grid.rtl.min.css.map +1 -0
  11. package/dist/css/coreui-reboot.css +440 -0
  12. package/dist/css/coreui-reboot.css.map +1 -0
  13. package/dist/css/coreui-reboot.min.css +8 -0
  14. package/dist/css/coreui-reboot.min.css.map +1 -0
  15. package/dist/css/coreui-reboot.rtl.css +441 -0
  16. package/dist/css/coreui-reboot.rtl.css.map +1 -0
  17. package/dist/css/coreui-reboot.rtl.min.css +14 -0
  18. package/dist/css/coreui-reboot.rtl.min.css.map +1 -0
  19. package/dist/css/coreui-utilities.css +5030 -0
  20. package/dist/css/coreui-utilities.css.map +1 -0
  21. package/dist/css/coreui-utilities.min.css +8 -0
  22. package/dist/css/coreui-utilities.min.css.map +1 -0
  23. package/dist/css/coreui-utilities.rtl.css +5024 -0
  24. package/dist/css/coreui-utilities.rtl.css.map +1 -0
  25. package/dist/css/coreui-utilities.rtl.min.css +14 -0
  26. package/dist/css/coreui-utilities.rtl.min.css.map +1 -0
  27. package/dist/css/coreui.css +12152 -0
  28. package/dist/css/coreui.css.map +1 -0
  29. package/dist/css/coreui.min.css +8 -0
  30. package/dist/css/coreui.min.css.map +1 -0
  31. package/dist/css/coreui.rtl.css +12041 -0
  32. package/dist/css/coreui.rtl.css.map +1 -0
  33. package/dist/css/coreui.rtl.min.css +14 -0
  34. package/dist/css/coreui.rtl.min.css.map +1 -0
  35. package/dist/js/coreui.bundle.js +7437 -0
  36. package/dist/js/coreui.bundle.js.map +1 -0
  37. package/dist/js/coreui.bundle.min.js +7 -0
  38. package/dist/js/coreui.bundle.min.js.map +1 -0
  39. package/dist/js/coreui.esm.js +5622 -0
  40. package/dist/js/coreui.esm.js.map +1 -0
  41. package/dist/js/coreui.esm.min.js +7 -0
  42. package/dist/js/coreui.esm.min.js.map +1 -0
  43. package/dist/js/coreui.js +5673 -0
  44. package/dist/js/coreui.js.map +1 -0
  45. package/dist/js/coreui.min.js +7 -0
  46. package/dist/js/coreui.min.js.map +1 -0
  47. package/js/dist/alert.js +208 -0
  48. package/js/dist/alert.js.map +1 -0
  49. package/js/dist/base-component.js +181 -0
  50. package/js/dist/base-component.js.map +1 -0
  51. package/js/dist/button.js +142 -0
  52. package/js/dist/button.js.map +1 -0
  53. package/js/dist/carousel.js +724 -0
  54. package/js/dist/carousel.js.map +1 -0
  55. package/js/dist/collapse.js +515 -0
  56. package/js/dist/collapse.js.map +1 -0
  57. package/js/dist/dom/data.js +72 -0
  58. package/js/dist/dom/data.js.map +1 -0
  59. package/js/dist/dom/event-handler.js +319 -0
  60. package/js/dist/dom/event-handler.js.map +1 -0
  61. package/js/dist/dom/manipulator.js +92 -0
  62. package/js/dist/dom/manipulator.js.map +1 -0
  63. package/js/dist/dom/selector-engine.js +89 -0
  64. package/js/dist/dom/selector-engine.js.map +1 -0
  65. package/js/dist/dropdown.js +700 -0
  66. package/js/dist/dropdown.js.map +1 -0
  67. package/js/dist/modal.js +891 -0
  68. package/js/dist/modal.js.map +1 -0
  69. package/js/dist/offcanvas.js +724 -0
  70. package/js/dist/offcanvas.js.map +1 -0
  71. package/js/dist/popover.js +220 -0
  72. package/js/dist/popover.js.map +1 -0
  73. package/js/dist/scrollspy.js +387 -0
  74. package/js/dist/scrollspy.js.map +1 -0
  75. package/js/dist/tab.js +317 -0
  76. package/js/dist/tab.js.map +1 -0
  77. package/js/dist/toast.js +331 -0
  78. package/js/dist/toast.js.map +1 -0
  79. package/js/dist/tooltip.js +997 -0
  80. package/js/dist/tooltip.js.map +1 -0
  81. package/js/src/alert.js +128 -0
  82. package/js/src/base-component.js +78 -0
  83. package/js/src/button.js +89 -0
  84. package/js/src/carousel.js +589 -0
  85. package/js/src/collapse.js +391 -0
  86. package/js/src/dom/data.js +60 -0
  87. package/js/src/dom/event-handler.js +352 -0
  88. package/js/src/dom/manipulator.js +83 -0
  89. package/js/src/dom/selector-engine.js +78 -0
  90. package/js/src/dropdown.js +517 -0
  91. package/js/src/modal.js +451 -0
  92. package/js/src/navigation.js +298 -0
  93. package/js/src/offcanvas.js +277 -0
  94. package/js/src/popover.js +173 -0
  95. package/js/src/scrollspy.js +298 -0
  96. package/js/src/sidebar.js +347 -0
  97. package/js/src/tab.js +227 -0
  98. package/js/src/toast.js +245 -0
  99. package/js/src/tooltip.js +750 -0
  100. package/js/src/util/backdrop.js +129 -0
  101. package/js/src/util/index.js +327 -0
  102. package/js/src/util/sanitizer.js +130 -0
  103. package/js/src/util/scrollbar.js +97 -0
  104. package/package.json +166 -0
  105. package/scss/_accordion.scss +118 -0
  106. package/scss/_alert.scss +52 -0
  107. package/scss/_avatar.scss +49 -0
  108. package/scss/_badge.scss +38 -0
  109. package/scss/_breadcrumb.scss +33 -0
  110. package/scss/_button-group.scss +139 -0
  111. package/scss/_buttons.scss +143 -0
  112. package/scss/_callout.scss +16 -0
  113. package/scss/_card.scss +215 -0
  114. package/scss/_carousel.scss +231 -0
  115. package/scss/_close.scss +40 -0
  116. package/scss/_containers.scss +41 -0
  117. package/scss/_dropdown.scss +227 -0
  118. package/scss/_footer.scss +25 -0
  119. package/scss/_forms.scss +9 -0
  120. package/scss/_functions.scss +356 -0
  121. package/scss/_grid.scss +56 -0
  122. package/scss/_header.scss +170 -0
  123. package/scss/_helpers.scss +7 -0
  124. package/scss/_icon.scss +32 -0
  125. package/scss/_images.scss +42 -0
  126. package/scss/_list-group.scss +169 -0
  127. package/scss/_mixins.scss +50 -0
  128. package/scss/_modal.scss +219 -0
  129. package/scss/_nav.scss +140 -0
  130. package/scss/_navbar.scss +254 -0
  131. package/scss/_offcanvas.scss +79 -0
  132. package/scss/_pagination.scss +64 -0
  133. package/scss/_popover.scss +158 -0
  134. package/scss/_progress.scss +91 -0
  135. package/scss/_reboot.scss +632 -0
  136. package/scss/_root.scss +25 -0
  137. package/scss/_sidebar.scss +3 -0
  138. package/scss/_spinners.scss +69 -0
  139. package/scss/_subheader.scss +72 -0
  140. package/scss/_tables.scss +166 -0
  141. package/scss/_toasts.scss +52 -0
  142. package/scss/_tooltip.scss +115 -0
  143. package/scss/_transitions.scss +21 -0
  144. package/scss/_type.scss +104 -0
  145. package/scss/_utilities.scss +678 -0
  146. package/scss/_variables.scss +1801 -0
  147. package/scss/coreui-grid.rtl.scss +12 -0
  148. package/scss/coreui-grid.scss +67 -0
  149. package/scss/coreui-reboot.rtl.scss +12 -0
  150. package/scss/coreui-reboot.scss +15 -0
  151. package/scss/coreui-utilities.rtl.scss +12 -0
  152. package/scss/coreui-utilities.scss +19 -0
  153. package/scss/coreui.rtl.scss +12 -0
  154. package/scss/coreui.scss +61 -0
  155. package/scss/forms/_floating-labels.scss +63 -0
  156. package/scss/forms/_form-check.scss +188 -0
  157. package/scss/forms/_form-control.scss +219 -0
  158. package/scss/forms/_form-range.scss +91 -0
  159. package/scss/forms/_form-select.scss +70 -0
  160. package/scss/forms/_form-text.scss +11 -0
  161. package/scss/forms/_input-group.scss +121 -0
  162. package/scss/forms/_labels.scss +36 -0
  163. package/scss/forms/_validation.scss +12 -0
  164. package/scss/helpers/_clearfix.scss +3 -0
  165. package/scss/helpers/_colored-links.scss +12 -0
  166. package/scss/helpers/_position.scss +30 -0
  167. package/scss/helpers/_ratio.scss +26 -0
  168. package/scss/helpers/_stretched-link.scss +15 -0
  169. package/scss/helpers/_text-truncation.scss +7 -0
  170. package/scss/helpers/_visually-hidden.scss +8 -0
  171. package/scss/mixins/_alert.scss +15 -0
  172. package/scss/mixins/_avatar.scss +10 -0
  173. package/scss/mixins/_border-radius.scss +78 -0
  174. package/scss/mixins/_box-shadow.scss +18 -0
  175. package/scss/mixins/_breakpoints.scss +140 -0
  176. package/scss/mixins/_buttons.scss +101 -0
  177. package/scss/mixins/_caret.scss +64 -0
  178. package/scss/mixins/_clearfix.scss +9 -0
  179. package/scss/mixins/_color-scheme.scss +7 -0
  180. package/scss/mixins/_container.scss +9 -0
  181. package/scss/mixins/_css-vars.scss +87 -0
  182. package/scss/mixins/_deprecate.scss +10 -0
  183. package/scss/mixins/_forms.scss +144 -0
  184. package/scss/mixins/_gradients.scss +47 -0
  185. package/scss/mixins/_grid.scss +132 -0
  186. package/scss/mixins/_icon.scss +6 -0
  187. package/scss/mixins/_image.scss +16 -0
  188. package/scss/mixins/_list-group.scss +18 -0
  189. package/scss/mixins/_lists.scss +7 -0
  190. package/scss/mixins/_ltr-rtl.scss +60 -0
  191. package/scss/mixins/_pagination.scss +31 -0
  192. package/scss/mixins/_reset-text.scss +17 -0
  193. package/scss/mixins/_resize.scss +6 -0
  194. package/scss/mixins/_table-variants.scss +16 -0
  195. package/scss/mixins/_text-truncate.scss +8 -0
  196. package/scss/mixins/_transition.scss +26 -0
  197. package/scss/mixins/_utilities.scss +104 -0
  198. package/scss/mixins/_visually-hidden.scss +29 -0
  199. package/scss/sidebar/_sidebar-narrow.scss +106 -0
  200. package/scss/sidebar/_sidebar-nav.scss +165 -0
  201. package/scss/sidebar/_sidebar.scss +261 -0
  202. package/scss/utilities/_api.scss +47 -0
  203. package/scss/vendor/_rfs.scss +354 -0
@@ -0,0 +1,165 @@
1
+ // Sidebar navigation
2
+
3
+ .sidebar-nav {
4
+ position: relative;
5
+ display: flex;
6
+ flex: 1;
7
+ flex-direction: column;
8
+ padding: 0;
9
+ margin-bottom: 0;
10
+ overflow-x: hidden;
11
+ overflow-y: auto;
12
+ list-style: none;
13
+
14
+ .nav-title {
15
+ padding: $sidebar-nav-title-padding-y $sidebar-nav-title-padding-x;
16
+ margin-top: $sidebar-nav-title-margin-top;
17
+ font-size: 80%;
18
+ font-weight: 700;
19
+ color: var(--#{$variable-prefix}sidebar-nav-title-color, $sidebar-nav-title-color);
20
+ text-transform: uppercase;
21
+ @include transition($sidebar-nav-title-transition);
22
+ }
23
+
24
+ .nav-link {
25
+ display: flex;
26
+ flex: 1;
27
+ align-items: center;
28
+ padding: $sidebar-nav-link-padding-y $sidebar-nav-link-padding-x;
29
+ color: var(--#{$variable-prefix}sidebar-nav-link-color, $sidebar-nav-link-color);
30
+ text-decoration: none;
31
+ white-space: nowrap;
32
+ background: var(--#{$variable-prefix}sidebar-nav-link-bg, $sidebar-nav-link-bg);
33
+ @include transition($sidebar-nav-link-transition);
34
+
35
+ &.active {
36
+ color: var(--#{$variable-prefix}sidebar-nav-link-active-color, $sidebar-nav-link-active-color);
37
+ background: var(--#{$variable-prefix}sidebar-nav-link-active-bg, $sidebar-nav-link-active-bg);
38
+
39
+ .nav-icon {
40
+ color: var(--#{$variable-prefix}sidebar-nav-link-active-icon-color, $sidebar-nav-link-active-icon-color);
41
+ }
42
+ }
43
+
44
+ &.disabled {
45
+ color: var(--#{$variable-prefix}sidebar-nav-link-disabled-color, $sidebar-nav-link-disabled-color);
46
+ pointer-events: none;
47
+ cursor: not-allowed;
48
+ background: transparent;
49
+
50
+ .nav-icon {
51
+ color: var(--#{$variable-prefix}sidebar-nav-link-disabled-icon-color, $sidebar-nav-link-disabled-icon-color);
52
+ }
53
+
54
+ &:hover {
55
+ color: var(--#{$variable-prefix}sidebar-nav-link-disabled-color, $sidebar-nav-link-disabled-color);
56
+
57
+ .nav-icon {
58
+ color: var(--#{$variable-prefix}sidebar-nav-link-disabled-icon-color, $sidebar-nav-link-disabled-icon-color);
59
+ }
60
+
61
+ &.nav-dropdown-toggle::after {
62
+ background-image: var(--#{$variable-prefix}sidebar-nav-group-indicator-hover, escape-svg($sidebar-nav-group-indicator-hover-icon));
63
+ }
64
+ }
65
+ }
66
+
67
+ @media (hover: hover), (-ms-high-contrast: none) {
68
+ &:hover {
69
+ color: var(--#{$variable-prefix}sidebar-nav-link-hover-color, $sidebar-nav-link-hover-color);
70
+ text-decoration: none;
71
+ background: var(--#{$variable-prefix}sidebar-nav-link-hover-bg, $sidebar-nav-link-hover-bg);
72
+
73
+ .nav-icon {
74
+ color: var(--#{$variable-prefix}sidebar-nav-link-hover-icon-color, $sidebar-nav-link-hover-icon-color);
75
+ }
76
+
77
+ &.nav-group-toggle::after {
78
+ background-image: var(--#{$variable-prefix}sidebar-nav-group-indicator-hover, escape-svg($sidebar-nav-group-indicator-hover-icon));
79
+ }
80
+ }
81
+ }
82
+ }
83
+
84
+ .nav-icon {
85
+ flex: 0 0 $sidebar-nav-icon-width;
86
+ height: $sidebar-nav-icon-height;
87
+ font-size: $sidebar-nav-icon-font-size;
88
+ color: var(--#{$variable-prefix}sidebar-nav-link-icon-color, $sidebar-nav-link-icon-color);
89
+ text-align: center;
90
+ fill: currentColor;
91
+ @include transition(inherit);
92
+
93
+ &:first-child {
94
+ @include ltr-rtl("margin-left", - $sidebar-nav-link-padding-x);
95
+ }
96
+ }
97
+
98
+ .nav-group {
99
+ position: relative;
100
+ @include transition($sidebar-nav-group-transition);
101
+
102
+ .nav-group-items {
103
+ overflow: hidden;
104
+ @include transition($sidebar-nav-group-items-transition);
105
+ }
106
+
107
+ &:not(.show) .nav-group-items {
108
+ display: none;
109
+ }
110
+
111
+ &.show {
112
+ background: var(--#{$variable-prefix}sidebar-nav-group-bg, $sidebar-nav-group-bg);
113
+
114
+ .nav-group-toggle {
115
+ color: var(--#{$variable-prefix}sidebar-nav-group-toggle-show-color, $sidebar-nav-group-toggle-show-color);
116
+ }
117
+
118
+ > .nav-group-toggle::after {
119
+ transform: rotate(180deg);
120
+ }
121
+
122
+ + .show {
123
+ margin-top: 1px;
124
+ }
125
+ }
126
+ }
127
+
128
+ .nav-group-toggle {
129
+ cursor: pointer;
130
+
131
+ &::after {
132
+ display: block;
133
+ flex: 0 12px;
134
+ height: 12px;
135
+ @include ltr-rtl("margin-left", auto);
136
+ content: "";
137
+ background-image: var(--#{$variable-prefix}sidebar-nav-group-indicator, escape-svg($sidebar-nav-group-indicator-icon));
138
+ background-repeat: no-repeat;
139
+ background-position: center;
140
+ @include transition($sidebar-nav-group-indicator-transition);
141
+ }
142
+ }
143
+
144
+ .nav-group-items {
145
+ padding: 0;
146
+ // overflow-y: hidden;
147
+ list-style: none;
148
+
149
+ .nav-link {
150
+ @include ltr-rtl("padding-left", $sidebar-nav-icon-width);
151
+
152
+ .nav-icon {
153
+ @include ltr-rtl("margin-left", - $sidebar-nav-icon-width);
154
+ }
155
+ }
156
+ }
157
+
158
+ &.compact,
159
+ .compact {
160
+ .nav-link {
161
+ padding-top: $sidebar-nav-link-padding-y * .5;
162
+ padding-bottom: $sidebar-nav-link-padding-y * .5;
163
+ }
164
+ }
165
+ }
@@ -0,0 +1,261 @@
1
+ .sidebar {
2
+ --#{$variable-prefix}sidebar-width: #{$sidebar-width};
3
+
4
+ position: relative;
5
+ display: flex;
6
+ // $sidebar-width is the width of the columns
7
+ flex: 0 0 var(--#{$variable-prefix}sidebar-width);
8
+ flex-direction: column;
9
+ // put the nav on the left
10
+ order: -1;
11
+ width: var(--#{$variable-prefix}sidebar-width);
12
+ padding: $sidebar-padding-y $sidebar-padding-x;
13
+ color: var(--#{$variable-prefix}sidebar-color, $sidebar-color);
14
+ background: var(--#{$variable-prefix}sidebar-bg, $sidebar-bg);
15
+ @include ltr-rtl("border-right", var(--#{$variable-prefix}sidebar-border-width, $sidebar-border-width) solid var(--#{$variable-prefix}sidebar-border-color, $sidebar-border-color));
16
+ box-shadow: none;
17
+ @include transition($sidebar-transition);
18
+
19
+ &:not(.sidebar-end){
20
+ @include ltr-rtl("margin-left", 0);
21
+ ~ * {
22
+ --#{$variable-prefix}sidebar-occupy-start: #{$sidebar-width};
23
+ }
24
+ }
25
+
26
+ &.sidebar-end {
27
+ order: 99;
28
+ @include ltr-rtl("margin-right", 0);
29
+ ~ * {
30
+ --#{$variable-prefix}sidebar-occupy-end: #{$sidebar-width};
31
+ }
32
+ }
33
+
34
+ @include media-breakpoint-up($mobile-breakpoint) {
35
+ &.hide {
36
+ &:not(.sidebar-end){
37
+ @include ltr-rtl("margin-left", calc(-1 * var(--#{$variable-prefix}sidebar-width)));
38
+ ~ * {
39
+ --#{$variable-prefix}sidebar-occupy-start: 0;
40
+ }
41
+ }
42
+ &.sidebar-end {
43
+ @include ltr-rtl("margin-right", calc(-1 * var(--#{$variable-prefix}sidebar-width)));
44
+ ~ * {
45
+ --#{$variable-prefix}sidebar-occupy-end: 0;
46
+ }
47
+ }
48
+ }
49
+ }
50
+
51
+ &[class*="bg-"] {
52
+ border-color: rgba($black, .1);
53
+ }
54
+
55
+ @each $width, $value in $sidebar-widths {
56
+ &.sidebar-#{$width} {
57
+ --#{$variable-prefix}sidebar-width: #{$value};
58
+ --#{$variable-prefix}sidebar-occupy-start: #{$value};
59
+
60
+ ~ * {
61
+ --#{$variable-prefix}sidebar-width: #{$value};
62
+ --#{$variable-prefix}sidebar-occupy-end: #{$value};
63
+ }
64
+ }
65
+ }
66
+
67
+ &.sidebar-fixed {
68
+ @include media-breakpoint-up($mobile-breakpoint) {
69
+ position: fixed;
70
+ top: 0;
71
+ bottom: 0;
72
+ z-index: $zindex-fixed;
73
+
74
+ &:not(.sidebar-end) {
75
+ @include ltr-rtl("left", 0);
76
+ }
77
+
78
+ &.sidebar-end {
79
+ @include ltr-rtl("right", 0);
80
+ }
81
+ }
82
+ }
83
+
84
+ &.sidebar-sticky {
85
+ @include media-breakpoint-up($mobile-breakpoint) {
86
+ position: sticky;
87
+ top: 0;
88
+ height: 100vh;
89
+ }
90
+ }
91
+
92
+ &.sidebar-overlaid {
93
+ position: fixed;
94
+ top: 0;
95
+ bottom: 0;
96
+ z-index: $zindex-fixed + 2;
97
+
98
+ &:not(.sidebar-end) {
99
+ @include ltr-rtl("left", 0);
100
+ ~ * {
101
+ --#{$variable-prefix}sidebar-occupy-start: 0;
102
+ }
103
+ }
104
+
105
+ &.sidebar-end {
106
+ @include ltr-rtl("right", 0);
107
+ ~ * {
108
+ --#{$variable-prefix}sidebar-occupy-end: 0;
109
+ }
110
+ }
111
+ }
112
+
113
+ @include media-breakpoint-down($mobile-breakpoint) {
114
+ // Some of our components use this property to detect if the sidebar has mobile behavior.
115
+ --#{$variable-prefix}is-mobile: true;
116
+ position: fixed;
117
+ top: 0;
118
+ bottom: 0;
119
+ z-index: $zindex-fixed + 1;
120
+
121
+ &:not(.sidebar-end) {
122
+ @include ltr-rtl("left", 0);
123
+ ~ * {
124
+ --#{$variable-prefix}sidebar-occupy-start: 0 !important; // stylelint-disable-line
125
+ }
126
+
127
+ &:not(.show) {
128
+ @include ltr-rtl("margin-left", calc(-1 * var(--#{$variable-prefix}sidebar-width)));
129
+ }
130
+ }
131
+ &.sidebar-end {
132
+ @include ltr-rtl("right", 0);
133
+ ~ * {
134
+ --#{$variable-prefix}sidebar-occupy-end: 0 !important; // stylelint-disable-line
135
+ }
136
+
137
+ &:not(.show) {
138
+ @include ltr-rtl("margin-right", calc(-1 * var(--#{$variable-prefix}sidebar-width)));
139
+ }
140
+ }
141
+ }
142
+ }
143
+
144
+ .sidebar-close {
145
+ position: absolute;
146
+ top: 0;
147
+ @include ltr-rtl("right", 0);
148
+ width: $sidebar-brand-height;
149
+ height: $sidebar-header-height;
150
+ color: var(--#{$variable-prefix}sidebar-color, $sidebar-color);
151
+ background: transparent;
152
+ border: 0;
153
+
154
+ &:hover {
155
+ text-decoration: none;
156
+ }
157
+
158
+ &:focus {
159
+ outline: 0;
160
+ }
161
+ }
162
+
163
+ .sidebar-brand {
164
+ display: flex;
165
+ flex: 0 0 $sidebar-brand-height;
166
+ align-items: center;
167
+ justify-content: center;
168
+ color: var(--#{$variable-prefix}sidebar-brand-color, $sidebar-brand-color);
169
+ background: var(--#{$variable-prefix}sidebar-brand-bg, $sidebar-brand-bg);
170
+
171
+ .sidebar-brand-narrow {
172
+ display: none;
173
+ }
174
+ }
175
+
176
+ .sidebar-header {
177
+ flex: 0 0 $sidebar-header-height;
178
+ padding: $sidebar-header-padding-y $sidebar-header-padding-x;
179
+ text-align: center;
180
+ background: var(--#{$variable-prefix}sidebar-header-bg, $sidebar-header-bg);
181
+ @include transition($sidebar-header-height-transition);
182
+
183
+ .nav-link {
184
+ display: flex;
185
+ align-items: center;
186
+ min-height: $sidebar-header-height;
187
+ }
188
+ }
189
+
190
+ .sidebar-footer {
191
+ flex: 0 0 $sidebar-footer-height;
192
+ padding: $sidebar-footer-padding-y $sidebar-footer-padding-x;
193
+ background: var(--#{$variable-prefix}sidebar-footer-bg, $sidebar-footer-bg);
194
+ @include transition($sidebar-footer-height-transition);
195
+ }
196
+
197
+ .sidebar-toggler {
198
+ display: flex;
199
+ flex: 0 0 $sidebar-toggler-height;
200
+ justify-content: flex-end;
201
+ width: inherit;
202
+ padding: 0;
203
+ cursor: pointer;
204
+ background-color: var(--#{$variable-prefix}sidebar-toggler-bg, $sidebar-toggler-bg);
205
+ border: 0;
206
+
207
+ @include media-breakpoint-down($mobile-breakpoint) {
208
+ display: none;
209
+ }
210
+
211
+ &::before {
212
+ display: block;
213
+ width: $sidebar-toggler-indicator-width;
214
+ height: $sidebar-toggler-indicator-height;
215
+ content: "";
216
+ background-image: var(--#{$variable-prefix}sidebar-toggler-indicator, escape-svg($sidebar-toggler-indicator-icon));
217
+ background-repeat: no-repeat;
218
+ background-position: center;
219
+ background-size: $sidebar-toggler-indicator-height * .25;
220
+ @include transition($sidebar-toggler-transition);
221
+ @include rtl() {
222
+ transform: rotate(-180deg);
223
+ }
224
+ }
225
+
226
+ &:focus {
227
+ outline: 0;
228
+ }
229
+
230
+ &:hover {
231
+ background-color: var(--#{$variable-prefix}sidebar-toggler-hover-bg, $sidebar-toggler-hover-bg);
232
+ &::before {
233
+ background-image: var(--#{$variable-prefix}sidebar-toggler-indicator-hover, escape-svg($sidebar-toggler-indicator-hover-icon));
234
+ }
235
+ }
236
+
237
+ .sidebar-end & {
238
+ justify-content: flex-start;
239
+ &::before {
240
+ transform: rotate(-180deg);
241
+ }
242
+ }
243
+ }
244
+
245
+ // Backdrop background
246
+ .sidebar-backdrop {
247
+ @include media-breakpoint-down($mobile-breakpoint) {
248
+ position: fixed;
249
+ top: 0;
250
+ @include ltr-rtl("left", 0);
251
+ z-index: $zindex-fixed;
252
+ width: 100vw;
253
+ height: 100vh;
254
+ background-color: $sidebar-backdrop-bg;
255
+ @include transition($sidebar-backdrop-transition);
256
+
257
+ // Fade for backdrop
258
+ &.fade { opacity: 0; }
259
+ &.show { opacity: $sidebar-backdrop-opacity; }
260
+ }
261
+ }
@@ -0,0 +1,47 @@
1
+ // Loop over each breakpoint
2
+ @each $breakpoint in map-keys($grid-breakpoints) {
3
+
4
+ // Generate media query if needed
5
+ @include media-breakpoint-up($breakpoint) {
6
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
7
+
8
+ // Loop over each utility property
9
+ @each $key, $utility in $utilities {
10
+ // The utility can be disabled with `false`, thus check if the utility is a map first
11
+ // Only proceed if responsive media queries are enabled or if it's the base media query
12
+ @if type-of($utility) == "map" and (map-get($utility, responsive) or $infix == "") {
13
+ @include generate-utility($utility, $infix);
14
+ }
15
+ }
16
+ }
17
+ }
18
+
19
+ // RFS rescaling
20
+ @media (min-width: $rfs-mq-value) {
21
+ @each $breakpoint in map-keys($grid-breakpoints) {
22
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
23
+
24
+ @if (map-get($grid-breakpoints, $breakpoint) < $rfs-breakpoint) {
25
+ // Loop over each utility property
26
+ @each $key, $utility in $utilities {
27
+ // The utility can be disabled with `false`, thus check if the utility is a map first
28
+ // Only proceed if responsive media queries are enabled or if it's the base media query
29
+ @if type-of($utility) == "map" and map-get($utility, rfs) and (map-get($utility, responsive) or $infix == "") {
30
+ @include generate-utility($utility, $infix, true);
31
+ }
32
+ }
33
+ }
34
+ }
35
+ }
36
+
37
+
38
+ // Print utilities
39
+ @media print {
40
+ @each $key, $utility in $utilities {
41
+ // The utility can be disabled with `false`, thus check if the utility is a map first
42
+ // Then check if the utility needs print styles
43
+ @if type-of($utility) == "map" and map-get($utility, print) == true {
44
+ @include generate-utility($utility, "-print");
45
+ }
46
+ }
47
+ }