@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,50 @@
1
+ // Toggles
2
+ //
3
+ // Used in conjunction with global variables to enable certain theme features.
4
+
5
+ // LTR & RTL
6
+ @import "mixins/ltr-rtl";
7
+
8
+ // Vendor
9
+ @import "vendor/rfs";
10
+
11
+ // Deprecate
12
+ @import "mixins/deprecate";
13
+
14
+ // Helpers
15
+ @import "mixins/breakpoints";
16
+ @import "mixins/color-scheme";
17
+ @import "mixins/image";
18
+ @import "mixins/resize";
19
+ @import "mixins/visually-hidden";
20
+ @import "mixins/reset-text";
21
+ @import "mixins/text-truncate";
22
+
23
+ // Utilities
24
+ @import "mixins/utilities";
25
+
26
+ // Components
27
+ @import "mixins/alert";
28
+ @import "mixins/avatar";
29
+ @import "mixins/buttons";
30
+ @import "mixins/caret";
31
+ @import "mixins/pagination";
32
+ @import "mixins/lists";
33
+ @import "mixins/list-group";
34
+ @import "mixins/forms";
35
+ @import "mixins/table-variants";
36
+ @import "mixins/icon";
37
+
38
+ // Skins
39
+ @import "mixins/border-radius";
40
+ @import "mixins/box-shadow";
41
+ @import "mixins/gradients";
42
+ @import "mixins/transition";
43
+
44
+ // Layout
45
+ @import "mixins/clearfix";
46
+ @import "mixins/container";
47
+ @import "mixins/grid";
48
+
49
+ // CSS Variables
50
+ @import "mixins/css-vars";
@@ -0,0 +1,219 @@
1
+ // .modal-open - body class for killing the scroll
2
+ // .modal - container to scroll within
3
+ // .modal-dialog - positioning shell for the actual modal
4
+ // .modal-content - actual modal w/ bg and corners and stuff
5
+
6
+
7
+ // Container that the modal scrolls within
8
+ .modal {
9
+ position: fixed;
10
+ top: 0;
11
+ @include ltr-rtl("left", 0);
12
+ z-index: $zindex-modal;
13
+ display: none;
14
+ width: 100%;
15
+ height: 100%;
16
+ overflow-x: hidden;
17
+ overflow-y: auto;
18
+ // Prevent Chrome on Windows from adding a focus outline. For details, see
19
+ // https://github.com/twbs/bootstrap/pull/10951.
20
+ outline: 0;
21
+ // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a
22
+ // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342
23
+ // See also https://github.com/twbs/bootstrap/issues/17695
24
+ }
25
+
26
+ // Shell div to position the modal with bottom padding
27
+ .modal-dialog {
28
+ position: relative;
29
+ width: auto;
30
+ margin: $modal-dialog-margin;
31
+ // allow clicks to pass through for custom click handling to close modal
32
+ pointer-events: none;
33
+
34
+ // When fading in the modal, animate it to slide down
35
+ .modal.fade & {
36
+ @include transition($modal-transition);
37
+ transform: $modal-fade-transform;
38
+ }
39
+ .modal.show & {
40
+ transform: $modal-show-transform;
41
+ }
42
+
43
+ // When trying to close, animate focus to scale
44
+ .modal.modal-static & {
45
+ transform: $modal-scale-transform;
46
+ }
47
+ }
48
+
49
+ .modal-dialog-scrollable {
50
+ height: subtract(100%, $modal-dialog-margin * 2);
51
+
52
+ .modal-content {
53
+ max-height: 100%;
54
+ overflow: hidden;
55
+ }
56
+
57
+ .modal-body {
58
+ overflow-y: auto;
59
+ }
60
+ }
61
+
62
+ .modal-dialog-centered {
63
+ display: flex;
64
+ align-items: center;
65
+ min-height: subtract(100%, $modal-dialog-margin * 2);
66
+ }
67
+
68
+ // Actual modal
69
+ .modal-content {
70
+ position: relative;
71
+ display: flex;
72
+ flex-direction: column;
73
+ width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`
74
+ // counteract the pointer-events: none; in the .modal-dialog
75
+ color: var(--#{$variable-prefix}modal-content-color, $modal-content-color);
76
+ pointer-events: auto;
77
+ background-color: var(--#{$variable-prefix}modal-content-bg, $modal-content-bg);
78
+ background-clip: padding-box;
79
+ border: $modal-content-border-width solid var(--#{$variable-prefix}modal-content-border-color, $modal-content-border-color);
80
+ @include border-radius($modal-content-border-radius);
81
+ @include box-shadow($modal-content-box-shadow-xs);
82
+ // Remove focus outline from opened modal
83
+ outline: 0;
84
+ }
85
+
86
+ // Modal background
87
+ .modal-backdrop {
88
+ position: fixed;
89
+ top: 0;
90
+ @include ltr-rtl("left", 0);
91
+ z-index: $zindex-modal-backdrop;
92
+ width: 100vw;
93
+ height: 100vh;
94
+ background-color: var(--#{$variable-prefix}modal-backdrop-bg, $modal-backdrop-bg);
95
+
96
+ // Fade for backdrop
97
+ &.fade { opacity: 0; }
98
+ &.show { opacity: $modal-backdrop-opacity; }
99
+ }
100
+
101
+ // Modal header
102
+ // Top section of the modal w/ title and dismiss
103
+ .modal-header {
104
+ display: flex;
105
+ flex-shrink: 0;
106
+ align-items: center;
107
+ justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends
108
+ padding: $modal-header-padding;
109
+ border-bottom: $modal-header-border-width solid var(--#{$variable-prefix}modal-header-border-color, $modal-header-border-color);
110
+ @include border-top-radius($modal-content-inner-border-radius);
111
+
112
+ .btn-close {
113
+ padding: ($modal-header-padding-y * .5) ($modal-header-padding-x * .5);
114
+ margin: ($modal-header-padding-y * -.5) ($modal-header-padding-x * -.5) ($modal-header-padding-y * -.5) auto;
115
+ }
116
+ }
117
+
118
+ // Title text within header
119
+ .modal-title {
120
+ margin-bottom: 0;
121
+ line-height: $modal-title-line-height;
122
+ }
123
+
124
+ // Modal body
125
+ // Where all modal content resides (sibling of .modal-header and .modal-footer)
126
+ .modal-body {
127
+ position: relative;
128
+ // Enable `flex-grow: 1` so that the body take up as much space as possible
129
+ // when there should be a fixed height on `.modal-dialog`.
130
+ flex: 1 1 auto;
131
+ padding: $modal-inner-padding;
132
+ }
133
+
134
+ // Footer (for actions)
135
+ .modal-footer {
136
+ display: flex;
137
+ flex-wrap: wrap;
138
+ flex-shrink: 0;
139
+ align-items: center; // vertically center
140
+ justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items
141
+ padding: $modal-inner-padding - $modal-footer-margin-between * .5;
142
+ border-top: $modal-footer-border-width solid var(--#{$variable-prefix}modal-footer-border-color, $modal-footer-border-color);
143
+ @include border-bottom-radius($modal-content-inner-border-radius);
144
+
145
+ // Place margin between footer elements
146
+ // This solution is far from ideal because of the universal selector usage,
147
+ // but is needed to fix https://github.com/twbs/bootstrap/issues/24800
148
+ > * {
149
+ margin: $modal-footer-margin-between * .5;
150
+ }
151
+ }
152
+
153
+ // Scale up the modal
154
+ @include media-breakpoint-up(sm) {
155
+ // Automatically set modal's width for larger viewports
156
+ .modal-dialog {
157
+ max-width: $modal-md;
158
+ margin: $modal-dialog-margin-y-sm-up auto;
159
+ }
160
+
161
+ .modal-dialog-scrollable {
162
+ height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);
163
+ }
164
+
165
+ .modal-dialog-centered {
166
+ min-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);
167
+ }
168
+
169
+ .modal-content {
170
+ @include box-shadow($modal-content-box-shadow-sm-up);
171
+ }
172
+
173
+ .modal-sm { max-width: $modal-sm; }
174
+ }
175
+
176
+ @include media-breakpoint-up(lg) {
177
+ .modal-lg,
178
+ .modal-xl {
179
+ max-width: $modal-lg;
180
+ }
181
+ }
182
+
183
+ @include media-breakpoint-up(xl) {
184
+ .modal-xl { max-width: $modal-xl; }
185
+ }
186
+
187
+ // scss-docs-start modal-fullscreen-loop
188
+ @each $breakpoint in map-keys($grid-breakpoints) {
189
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
190
+ $postfix: if($infix != "", $infix + "-down", "");
191
+
192
+ @include media-breakpoint-down($breakpoint) {
193
+ .modal-fullscreen#{$postfix} {
194
+ width: 100vw;
195
+ max-width: none;
196
+ height: 100%;
197
+ margin: 0;
198
+
199
+ .modal-content {
200
+ height: 100%;
201
+ border: 0;
202
+ @include border-radius(0);
203
+ }
204
+
205
+ .modal-header {
206
+ @include border-radius(0);
207
+ }
208
+
209
+ .modal-body {
210
+ overflow-y: auto;
211
+ }
212
+
213
+ .modal-footer {
214
+ @include border-radius(0);
215
+ }
216
+ }
217
+ }
218
+ }
219
+ // scss-docs-end modal-fullscreen-loop
package/scss/_nav.scss ADDED
@@ -0,0 +1,140 @@
1
+ // Base class
2
+ //
3
+ // Kickstart any navigation component with a set of style resets. Works with
4
+ // `<nav>`s, `<ul>`s or `<ol>`s.
5
+
6
+ .nav {
7
+ display: flex;
8
+ flex-wrap: wrap;
9
+ @include ltr-rtl("padding-left", 0);
10
+ margin-bottom: 0;
11
+ list-style: none;
12
+ }
13
+
14
+ .nav-link {
15
+ display: block;
16
+ padding: $nav-link-padding-y $nav-link-padding-x;
17
+ @include font-size($nav-link-font-size);
18
+ font-weight: $nav-link-font-weight;
19
+ color: var(--#{$variable-prefix}nav-link-color, $nav-link-color);
20
+ text-decoration: if($link-decoration == none, null, none);
21
+ @include transition($nav-link-transition);
22
+
23
+ &:hover,
24
+ &:focus {
25
+ color: var(--#{$variable-prefix}nav-link-hover-color, $nav-link-hover-color);
26
+ text-decoration: if($link-hover-decoration == underline, none, null);
27
+ }
28
+
29
+ // Disabled state lightens text
30
+ &.disabled {
31
+ color: var(--#{$variable-prefix}nav-link-disabled-color, $nav-link-disabled-color);
32
+ pointer-events: none;
33
+ cursor: default;
34
+ }
35
+ }
36
+
37
+ //
38
+ // Tabs
39
+ //
40
+
41
+ .nav-tabs {
42
+ border-bottom: $nav-tabs-border-width solid var(--#{$variable-prefix}nav-tabs-border-color, $nav-tabs-border-color);
43
+
44
+ .nav-link {
45
+ margin-bottom: -$nav-tabs-border-width;
46
+ background: none;
47
+ border: $nav-tabs-border-width solid transparent;
48
+ @include border-top-radius($nav-tabs-border-radius);
49
+
50
+ &:hover,
51
+ &:focus {
52
+ border-color: var(--#{$variable-prefix}nav-tabs-link-hover-border-color, $nav-tabs-link-hover-border-color);
53
+
54
+ // Prevents active .nav-link tab overlapping focus outline of previous/next .nav-link
55
+ isolation: isolate;
56
+ }
57
+
58
+ &.disabled {
59
+ color: var(--#{$variable-prefix}nav-link-disabled-color, $nav-link-disabled-color);
60
+ background-color: transparent;
61
+ border-color: transparent;
62
+ }
63
+ }
64
+
65
+ .nav-link.active,
66
+ .nav-item.show .nav-link {
67
+ color: var(--#{$variable-prefix}nav-tabs-link-active-color, $nav-tabs-link-active-color);
68
+ background-color: var(--#{$variable-prefix}nav-tabs-link-active-bg, $nav-tabs-link-active-bg);
69
+ border-color: var(--#{$variable-prefix}nav-tabs-link-active-border-color, $nav-tabs-link-active-border-color);
70
+ }
71
+
72
+ .dropdown-menu {
73
+ // Make dropdown border overlap tab border
74
+ margin-top: -$nav-tabs-border-width;
75
+ // Remove the top rounded corners here since there is a hard edge above the menu
76
+ @include border-top-radius(0);
77
+ }
78
+ }
79
+
80
+
81
+ //
82
+ // Pills
83
+ //
84
+
85
+ .nav-pills {
86
+ .nav-link {
87
+ background: none;
88
+ border: 0;
89
+ @include border-radius($nav-pills-border-radius);
90
+ }
91
+
92
+ .nav-link.active,
93
+ .show > .nav-link {
94
+ color: var(--#{$variable-prefix}nav-pills-link-active-color, $nav-pills-link-active-color);
95
+ @include gradient-bg(var(--#{$variable-prefix}nav-pills-link-active-bg, $nav-pills-link-active-bg));
96
+ }
97
+ }
98
+
99
+
100
+ //
101
+ // Justified variants
102
+ //
103
+
104
+ .nav-fill {
105
+ > .nav-link,
106
+ .nav-item {
107
+ flex: 1 1 auto;
108
+ text-align: center;
109
+ }
110
+ }
111
+
112
+ .nav-justified {
113
+ > .nav-link,
114
+ .nav-item {
115
+ flex-basis: 0;
116
+ flex-grow: 1;
117
+ text-align: center;
118
+ }
119
+ }
120
+
121
+ .nav-fill,
122
+ .nav-justified {
123
+ .nav-item .nav-link {
124
+ width: 100%; // Make sure button will grow
125
+ }
126
+ }
127
+
128
+
129
+ // Tabbable tabs
130
+ //
131
+ // Hide tabbable panes to start, show them when `.active`
132
+
133
+ .tab-content {
134
+ > .tab-pane {
135
+ display: none;
136
+ }
137
+ > .active {
138
+ display: block;
139
+ }
140
+ }
@@ -0,0 +1,254 @@
1
+ // Contents
2
+ //
3
+ // Navbar
4
+ // Navbar brand
5
+ // Navbar nav
6
+ // Navbar text
7
+ // Responsive navbar
8
+ // Navbar position
9
+ // Navbar themes
10
+
11
+
12
+ // Navbar
13
+ //
14
+ // Provide a static navbar from which we expand to create full-width, fixed, and
15
+ // other navbar variations.
16
+
17
+ .navbar {
18
+ position: relative;
19
+ display: flex;
20
+ flex-wrap: wrap; // allow us to do the line break for collapsing content
21
+ align-items: center;
22
+ justify-content: space-between; // space out brand from logo
23
+ padding-top: $navbar-padding-y;
24
+ padding-right: $navbar-padding-x; // default: null
25
+ padding-bottom: $navbar-padding-y;
26
+ padding-left: $navbar-padding-x; // default: null
27
+ @include gradient-bg();
28
+
29
+ // Because flex properties aren't inherited, we need to redeclare these first
30
+ // few properties so that content nested within behave properly.
31
+ // The `flex-wrap` property is inherited to simplify the expanded navbars
32
+ %container-flex-properties {
33
+ display: flex;
34
+ flex-wrap: inherit;
35
+ align-items: center;
36
+ justify-content: space-between;
37
+ }
38
+
39
+ > .container,
40
+ > .container-fluid {
41
+ @extend %container-flex-properties;
42
+ }
43
+
44
+ @each $breakpoint, $container-max-width in $container-max-widths {
45
+ > .container#{breakpoint-infix($breakpoint, $container-max-widths)} {
46
+ @extend %container-flex-properties;
47
+ }
48
+ }
49
+ }
50
+
51
+
52
+ // Navbar brand
53
+ //
54
+ // Used for brand, project, or site names.
55
+
56
+ .navbar-brand {
57
+ padding-top: $navbar-brand-padding-y;
58
+ padding-bottom: $navbar-brand-padding-y;
59
+ @include ltr-rtl("margin-right", $navbar-brand-margin-end);
60
+ color: var(--#{$variable-prefix}navbar-brand-color);
61
+ @include font-size($navbar-brand-font-size);
62
+ text-decoration: if($link-decoration == none, null, none);
63
+ white-space: nowrap;
64
+
65
+ &:hover,
66
+ &:focus {
67
+ color: var(--#{$variable-prefix}navbar-brand-hover-color);
68
+ text-decoration: if($link-hover-decoration == underline, none, null);
69
+ }
70
+ }
71
+
72
+
73
+ // Navbar nav
74
+ //
75
+ // Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).
76
+
77
+ .navbar-nav {
78
+ display: flex;
79
+ flex-direction: column; // cannot use `inherit` to get the `.navbar`s value
80
+ @include ltr-rtl("padding-left", 0);
81
+ margin-bottom: 0;
82
+ list-style: none;
83
+
84
+ .nav-link {
85
+ padding-right: 0;
86
+ padding-left: 0;
87
+ color: var(--#{$variable-prefix}navbar-color);
88
+
89
+ &:hover,
90
+ &:focus {
91
+ color: var(--#{$variable-prefix}navbar-hover-color);
92
+ }
93
+
94
+ &.disabled {
95
+ color: var(--#{$variable-prefix}navbar-disabled-color);
96
+ }
97
+ }
98
+
99
+ .dropdown-menu {
100
+ position: static;
101
+ }
102
+
103
+ .show > .nav-link,
104
+ .nav-link.active {
105
+ color: var(--#{$variable-prefix}navbar-active-color);
106
+ }
107
+ }
108
+
109
+ // Navbar text
110
+ //
111
+ //
112
+
113
+ .navbar-text {
114
+ padding-top: $nav-link-padding-y;
115
+ padding-bottom: $nav-link-padding-y;
116
+ color: var(--#{$variable-prefix}navbar-color);
117
+
118
+ a,
119
+ a:hover,
120
+ a:focus {
121
+ color: var(--#{$variable-prefix}navbar-active-color);
122
+ }
123
+ }
124
+
125
+
126
+ // Responsive navbar
127
+ //
128
+ // Custom styles for responsive collapsing and toggling of navbar contents.
129
+ // Powered by the collapse Bootstrap JavaScript plugin.
130
+
131
+ // When collapsed, prevent the toggleable navbar contents from appearing in
132
+ // the default flexbox row orientation. Requires the use of `flex-wrap: wrap`
133
+ // on the `.navbar` parent.
134
+ .navbar-collapse {
135
+ flex-basis: 100%;
136
+ flex-grow: 1;
137
+ // For always expanded or extra full navbars, ensure content aligns itself
138
+ // properly vertically. Can be easily overridden with flex utilities.
139
+ align-items: center;
140
+ }
141
+
142
+ // Button for toggling the navbar when in its collapsed state
143
+ .navbar-toggler {
144
+ padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;
145
+ @include font-size($navbar-toggler-font-size);
146
+ line-height: 1;
147
+ color: var(--#{$variable-prefix}navbar-color);
148
+ background-color: transparent; // remove default button style
149
+ border: $border-width solid var(--#{$variable-prefix}navbar-toggler-border-color, transparent); // remove default button style
150
+ @include border-radius($navbar-toggler-border-radius);
151
+ @include transition($navbar-toggler-transition);
152
+
153
+ &:hover {
154
+ text-decoration: none;
155
+ }
156
+
157
+ &:focus {
158
+ text-decoration: none;
159
+ outline: 0;
160
+ box-shadow: 0 0 0 $navbar-toggler-focus-width;
161
+ }
162
+ }
163
+
164
+ // Keep as a separate element so folks can easily override it with another icon
165
+ // or image file as needed.
166
+ .navbar-toggler-icon {
167
+ display: inline-block;
168
+ width: 1.5em;
169
+ height: 1.5em;
170
+ vertical-align: middle;
171
+ background-image: var(--#{$variable-prefix}navbar-toggler-icon);
172
+ background-repeat: no-repeat;
173
+ background-position: center;
174
+ background-size: 100%;
175
+ }
176
+
177
+ .navbar-nav-scroll {
178
+ max-height: var(--#{$variable-prefix}scroll-height, 75vh);
179
+ overflow-y: auto;
180
+ }
181
+
182
+ // scss-docs-start navbar-expand-loop
183
+ // Generate series of `.navbar-expand-*` responsive classes for configuring
184
+ // where your navbar collapses.
185
+ .navbar-expand {
186
+ @each $breakpoint in map-keys($grid-breakpoints) {
187
+ $next: breakpoint-next($breakpoint, $grid-breakpoints);
188
+ $infix: breakpoint-infix($next, $grid-breakpoints);
189
+
190
+ // stylelint-disable-next-line scss/selector-no-union-class-name
191
+ &#{$infix} {
192
+ @include media-breakpoint-up($next) {
193
+ flex-wrap: nowrap;
194
+ justify-content: flex-start;
195
+
196
+ .navbar-nav {
197
+ flex-direction: row;
198
+
199
+ .dropdown-menu {
200
+ position: absolute;
201
+ }
202
+
203
+ .nav-link {
204
+ padding-right: $navbar-nav-link-padding-x;
205
+ padding-left: $navbar-nav-link-padding-x;
206
+ }
207
+ }
208
+
209
+ .navbar-nav-scroll {
210
+ overflow: visible;
211
+ }
212
+
213
+ .navbar-collapse {
214
+ display: flex !important; // stylelint-disable-line declaration-no-important
215
+ flex-basis: auto;
216
+ }
217
+
218
+ .navbar-toggler {
219
+ display: none;
220
+ }
221
+ }
222
+ }
223
+ }
224
+ }
225
+ // scss-docs-end navbar-expand-loop
226
+
227
+
228
+ // Navbar themes
229
+ //
230
+ // Styles for switching between navbars with light or dark background.
231
+
232
+ // Dark links against a light background
233
+ .navbar-light {
234
+ --#{$variable-prefix}navbar-brand-color: #{$navbar-light-brand-color};
235
+ --#{$variable-prefix}navbar-brand-hover-color: #{$navbar-light-brand-hover-color};
236
+ --#{$variable-prefix}navbar-color: #{$navbar-light-color};
237
+ --#{$variable-prefix}navbar-hover-color: #{$navbar-light-hover-color};
238
+ --#{$variable-prefix}navbar-active-color: #{$navbar-light-active-color};
239
+ --#{$variable-prefix}navbar-disabled-color: #{$navbar-light-disabled-color};
240
+ --#{$variable-prefix}navbar-toggler-border-color: #{$navbar-light-toggler-border-color};
241
+ --#{$variable-prefix}navbar-toggler-icon: #{escape-svg($navbar-light-toggler-icon-bg)};
242
+ }
243
+
244
+ // White links against a dark background
245
+ .navbar-dark {
246
+ --#{$variable-prefix}navbar-brand-color: #{$navbar-dark-brand-color};
247
+ --#{$variable-prefix}navbar-brand-hover-color: #{$navbar-dark-brand-hover-color};
248
+ --#{$variable-prefix}navbar-color: #{$navbar-dark-color};
249
+ --#{$variable-prefix}navbar-hover-color: #{$navbar-dark-hover-color};
250
+ --#{$variable-prefix}navbar-active-color: #{$navbar-dark-active-color};
251
+ --#{$variable-prefix}navbar-disabled-color: #{$navbar-dark-disabled-color};
252
+ --#{$variable-prefix}navbar-toggler-border-color: #{$navbar-dark-toggler-border-color};
253
+ --#{$variable-prefix}navbar-toggler-icon: #{escape-svg($navbar-dark-toggler-icon-bg)};
254
+ }