@coreui/coreui 4.2.6 → 5.0.0-alpha.0
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.
- package/LICENSE +1 -2
- package/README.md +1 -1
- package/dist/css/coreui-grid.css +133 -22
- package/dist/css/coreui-grid.css.map +1 -1
- package/dist/css/coreui-grid.min.css +3 -5
- package/dist/css/coreui-grid.min.css.map +1 -1
- package/dist/css/coreui-grid.rtl.css +216 -113
- package/dist/css/coreui-grid.rtl.css.map +1 -1
- package/dist/css/coreui-grid.rtl.min.css +3 -11
- package/dist/css/coreui-grid.rtl.min.css.map +1 -1
- package/dist/css/coreui-reboot.css +151 -36
- package/dist/css/coreui-reboot.css.map +1 -1
- package/dist/css/coreui-reboot.min.css +3 -5
- package/dist/css/coreui-reboot.min.css.map +1 -1
- package/dist/css/coreui-reboot.rtl.css +159 -47
- package/dist/css/coreui-reboot.rtl.css.map +1 -1
- package/dist/css/coreui-reboot.rtl.min.css +3 -11
- package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
- package/dist/css/coreui-utilities.css +1116 -104
- package/dist/css/coreui-utilities.css.map +1 -1
- package/dist/css/coreui-utilities.min.css +3 -5
- package/dist/css/coreui-utilities.min.css.map +1 -1
- package/dist/css/coreui-utilities.rtl.css +1261 -246
- package/dist/css/coreui-utilities.rtl.css.map +1 -1
- package/dist/css/coreui-utilities.rtl.min.css +3 -11
- package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
- package/dist/css/coreui.css +2412 -1220
- package/dist/css/coreui.css.map +1 -1
- package/dist/css/coreui.min.css +3 -5
- package/dist/css/coreui.min.css.map +1 -1
- package/dist/css/coreui.rtl.css +2821 -1574
- package/dist/css/coreui.rtl.css.map +1 -1
- package/dist/css/coreui.rtl.min.css +3 -11
- package/dist/css/coreui.rtl.min.css.map +1 -1
- package/dist/js/coreui.bundle.js +80 -80
- package/dist/js/coreui.bundle.js.map +1 -1
- package/dist/js/coreui.bundle.min.js +4 -4
- package/dist/js/coreui.bundle.min.js.map +1 -1
- package/dist/js/coreui.esm.js +78 -78
- package/dist/js/coreui.esm.js.map +1 -1
- package/dist/js/coreui.esm.min.js +4 -4
- package/dist/js/coreui.esm.min.js.map +1 -1
- package/dist/js/coreui.js +80 -80
- package/dist/js/coreui.js.map +1 -1
- package/dist/js/coreui.min.js +4 -4
- package/dist/js/coreui.min.js.map +1 -1
- package/js/dist/alert.js +5 -5
- package/js/dist/alert.js.map +1 -1
- package/js/dist/base-component.js +6 -6
- package/js/dist/base-component.js.map +1 -1
- package/js/dist/button.js +5 -5
- package/js/dist/button.js.map +1 -1
- package/js/dist/carousel.js +5 -5
- package/js/dist/carousel.js.map +1 -1
- package/js/dist/collapse.js +5 -5
- package/js/dist/collapse.js.map +1 -1
- package/js/dist/dom/data.js +6 -6
- package/js/dist/dom/data.js.map +1 -1
- package/js/dist/dom/event-handler.js +6 -6
- package/js/dist/dom/event-handler.js.map +1 -1
- package/js/dist/dom/manipulator.js +7 -7
- package/js/dist/dom/manipulator.js.map +1 -1
- package/js/dist/dom/selector-engine.js +6 -6
- package/js/dist/dom/selector-engine.js.map +1 -1
- package/js/dist/dropdown.js +7 -7
- package/js/dist/dropdown.js.map +1 -1
- package/js/dist/modal.js +5 -5
- package/js/dist/modal.js.map +1 -1
- package/js/dist/navigation.js +5 -5
- package/js/dist/navigation.js.map +1 -1
- package/js/dist/offcanvas.js +6 -6
- package/js/dist/offcanvas.js.map +1 -1
- package/js/dist/popover.js +5 -5
- package/js/dist/popover.js.map +1 -1
- package/js/dist/scrollspy.js +12 -12
- package/js/dist/scrollspy.js.map +1 -1
- package/js/dist/sidebar.js +5 -5
- package/js/dist/sidebar.js.map +1 -1
- package/js/dist/tab.js +5 -5
- package/js/dist/tab.js.map +1 -1
- package/js/dist/toast.js +5 -5
- package/js/dist/toast.js.map +1 -1
- package/js/dist/tooltip.js +6 -6
- package/js/dist/tooltip.js.map +1 -1
- package/js/dist/util/backdrop.js +6 -6
- package/js/dist/util/backdrop.js.map +1 -1
- package/js/dist/util/component-functions.js +6 -6
- package/js/dist/util/component-functions.js.map +1 -1
- package/js/dist/util/config.js +6 -6
- package/js/dist/util/config.js.map +1 -1
- package/js/dist/util/focustrap.js +6 -6
- package/js/dist/util/focustrap.js.map +1 -1
- package/js/dist/util/index.js +6 -6
- package/js/dist/util/index.js.map +1 -1
- package/js/dist/util/sanitizer.js +6 -6
- package/js/dist/util/sanitizer.js.map +1 -1
- package/js/dist/util/scrollbar.js +6 -6
- package/js/dist/util/scrollbar.js.map +1 -1
- package/js/dist/util/swipe.js +6 -6
- package/js/dist/util/swipe.js.map +1 -1
- package/js/dist/util/template-factory.js +6 -6
- package/js/dist/util/template-factory.js.map +1 -1
- package/js/src/alert.js +2 -2
- package/js/src/base-component.js +3 -3
- package/js/src/button.js +2 -3
- package/js/src/carousel.js +2 -2
- package/js/src/collapse.js +2 -2
- package/js/src/dom/data.js +3 -3
- package/js/src/dom/event-handler.js +3 -3
- package/js/src/dom/manipulator.js +4 -4
- package/js/src/dom/selector-engine.js +3 -3
- package/js/src/dropdown.js +4 -4
- package/js/src/modal.js +2 -2
- package/js/src/navigation.js +2 -2
- package/js/src/offcanvas.js +3 -3
- package/js/src/popover.js +2 -2
- package/js/src/scrollspy.js +6 -6
- package/js/src/sidebar.js +2 -2
- package/js/src/tab.js +2 -2
- package/js/src/toast.js +2 -2
- package/js/src/tooltip.js +3 -3
- package/js/src/util/backdrop.js +3 -3
- package/js/src/util/component-functions.js +3 -3
- package/js/src/util/config.js +3 -3
- package/js/src/util/focustrap.js +3 -3
- package/js/src/util/index.js +3 -3
- package/js/src/util/sanitizer.js +3 -3
- package/js/src/util/scrollbar.js +3 -3
- package/js/src/util/swipe.js +3 -3
- package/js/src/util/template-factory.js +4 -3
- package/package.json +9 -6
- package/scss/_accordion.scss +9 -1
- package/scss/_alert.scss +9 -13
- package/scss/_avatar.scss +4 -4
- package/scss/_badge.scss +1 -10
- package/scss/_breadcrumb.scss +4 -9
- package/scss/_button-group.scss +4 -4
- package/scss/_buttons.scss +70 -15
- package/scss/_callout.scss +2 -2
- package/scss/_card.scss +7 -3
- package/scss/_carousel.scss +17 -7
- package/scss/_close.scss +30 -9
- package/scss/_dropdown.scss +9 -9
- package/scss/_functions.scss +6 -81
- package/scss/_images.scss +3 -3
- package/scss/_list-group.scss +22 -6
- package/scss/_maps.scss +71 -0
- package/scss/_mixins.scss +4 -9
- package/scss/_modal.scss +2 -2
- package/scss/_nav.scss +41 -4
- package/scss/_navbar.scss +14 -3
- package/scss/_offcanvas.scss +12 -10
- package/scss/_pagination.scss +2 -2
- package/scss/_progress.scss +10 -44
- package/scss/_reboot.scss +22 -21
- package/scss/_root.scss +133 -6
- package/scss/_sidebar.scss +11 -0
- package/scss/_tables.scss +1 -5
- package/scss/_toasts.scss +2 -2
- package/scss/_tooltip.scss +10 -10
- package/scss/_type.scss +3 -1
- package/scss/_utilities.scss +160 -53
- package/scss/_variables-dark.scss +109 -0
- package/scss/_variables.scss +402 -538
- package/scss/coreui-grid.scss +4 -8
- package/scss/coreui-reboot.scss +4 -7
- package/scss/coreui-utilities.scss +3 -7
- package/scss/coreui.scss +5 -10
- package/scss/forms/_floating-labels.scss +16 -1
- package/scss/forms/_form-check.scss +30 -53
- package/scss/forms/_form-control.scss +18 -11
- package/scss/forms/_form-range.scss +8 -8
- package/scss/forms/_form-select.scss +24 -14
- package/scss/forms/_form-text.scss +1 -1
- package/scss/forms/_input-group.scss +5 -5
- package/scss/forms/_labels.scss +2 -2
- package/scss/helpers/_colored-links.scss +2 -2
- package/scss/helpers/_ratio.scss +1 -1
- package/scss/helpers/_vr.scss +0 -1
- package/scss/mixins/_alert.scss +4 -1
- package/scss/mixins/_banner.scss +7 -0
- package/scss/mixins/_border-radius.scss +7 -7
- package/scss/mixins/_breakpoints.scss +0 -13
- package/scss/mixins/_buttons.scss +49 -53
- package/scss/mixins/_caret.scss +31 -26
- package/scss/mixins/_color-mode.scss +21 -0
- package/scss/mixins/_forms.scss +15 -14
- package/scss/mixins/_grid.scss +2 -2
- package/scss/mixins/_list-group.scss +22 -11
- package/scss/mixins/_lists.scss +1 -1
- package/scss/mixins/_utilities.scss +29 -14
- package/scss/sidebar/_sidebar-narrow.scss +6 -6
- package/scss/sidebar/_sidebar-nav.scss +4 -4
- package/scss/sidebar/_sidebar.scss +20 -20
- package/scss/tests/mixins/_color-modes.test.scss +69 -0
- package/scss/tests/mixins/_utilities.test.scss +393 -0
- package/scss/tests/utilities/_api.test.scss +75 -0
- package/scss/_header.scss +0 -195
- package/scss/_subheader.scss +0 -72
- package/scss/coreui-grid.rtl.scss +0 -12
- package/scss/coreui-reboot.rtl.scss +0 -12
- package/scss/coreui-utilities.rtl.scss +0 -12
- package/scss/coreui.rtl.scss +0 -12
- package/scss/mixins/_css-vars.scss +0 -87
- package/scss/mixins/_ltr-rtl.scss +0 -87
|
@@ -70,12 +70,12 @@
|
|
|
70
70
|
padding: var(--#{$prefix}sidebar-padding-y) var(--#{$prefix}sidebar-padding-x);
|
|
71
71
|
color: var(--#{$prefix}sidebar-color);
|
|
72
72
|
background: var(--#{$prefix}sidebar-bg);
|
|
73
|
-
@include ltr-rtl("border-right", var(--#{$prefix}sidebar-border-width) solid var(--#{$prefix}sidebar-border-color));
|
|
74
73
|
box-shadow: none;
|
|
75
74
|
@include transition($sidebar-transition);
|
|
76
75
|
|
|
77
76
|
&:not(.sidebar-end){
|
|
78
|
-
|
|
77
|
+
margin-left: 0;
|
|
78
|
+
border-right: var(--#{$prefix}sidebar-border-width) solid var(--#{$prefix}sidebar-border-color);
|
|
79
79
|
~ * {
|
|
80
80
|
--#{$prefix}sidebar-occupy-start: #{$sidebar-width};
|
|
81
81
|
}
|
|
@@ -83,7 +83,8 @@
|
|
|
83
83
|
|
|
84
84
|
&.sidebar-end {
|
|
85
85
|
order: 99;
|
|
86
|
-
|
|
86
|
+
margin-right: 0;
|
|
87
|
+
border-left: var(--#{$prefix}sidebar-border-width) solid var(--#{$prefix}sidebar-border-color);
|
|
87
88
|
~ * {
|
|
88
89
|
--#{$prefix}sidebar-occupy-end: #{$sidebar-width};
|
|
89
90
|
}
|
|
@@ -114,13 +115,13 @@
|
|
|
114
115
|
@include media-breakpoint-up($mobile-breakpoint) {
|
|
115
116
|
&.hide {
|
|
116
117
|
&:not(.sidebar-end){
|
|
117
|
-
|
|
118
|
+
margin-left: calc(-1 * var(--#{$prefix}sidebar-width)); // stylelint-disable-line function-disallowed-list
|
|
118
119
|
~ * {
|
|
119
120
|
--#{$prefix}sidebar-occupy-start: 0;
|
|
120
121
|
}
|
|
121
122
|
}
|
|
122
123
|
&.sidebar-end {
|
|
123
|
-
|
|
124
|
+
margin-right: calc(-1 * var(--#{$prefix}sidebar-width)); // stylelint-disable-line function-disallowed-list
|
|
124
125
|
~ * {
|
|
125
126
|
--#{$prefix}sidebar-occupy-end: 0;
|
|
126
127
|
}
|
|
@@ -136,11 +137,11 @@
|
|
|
136
137
|
z-index: $zindex-fixed;
|
|
137
138
|
|
|
138
139
|
&:not(.sidebar-end) {
|
|
139
|
-
|
|
140
|
+
left: 0;
|
|
140
141
|
}
|
|
141
142
|
|
|
142
143
|
&.sidebar-end {
|
|
143
|
-
|
|
144
|
+
right: 0;
|
|
144
145
|
}
|
|
145
146
|
}
|
|
146
147
|
}
|
|
@@ -160,14 +161,14 @@
|
|
|
160
161
|
z-index: $zindex-fixed + 2;
|
|
161
162
|
|
|
162
163
|
&:not(.sidebar-end) {
|
|
163
|
-
|
|
164
|
+
left: 0;
|
|
164
165
|
~ * {
|
|
165
166
|
--#{$prefix}sidebar-occupy-start: 0;
|
|
166
167
|
}
|
|
167
168
|
}
|
|
168
169
|
|
|
169
170
|
&.sidebar-end {
|
|
170
|
-
|
|
171
|
+
right: 0;
|
|
171
172
|
~ * {
|
|
172
173
|
--#{$prefix}sidebar-occupy-end: 0;
|
|
173
174
|
}
|
|
@@ -183,23 +184,23 @@
|
|
|
183
184
|
z-index: $zindex-fixed + 1;
|
|
184
185
|
|
|
185
186
|
&:not(.sidebar-end) {
|
|
186
|
-
|
|
187
|
+
left: 0;
|
|
187
188
|
~ * {
|
|
188
189
|
--#{$prefix}sidebar-occupy-start: 0 !important; // stylelint-disable-line
|
|
189
190
|
}
|
|
190
191
|
|
|
191
192
|
&:not(.show) {
|
|
192
|
-
|
|
193
|
+
margin-left: calc(-1 * var(--#{$prefix}sidebar-width)); // stylelint-disable-line function-disallowed-list
|
|
193
194
|
}
|
|
194
195
|
}
|
|
195
196
|
&.sidebar-end {
|
|
196
|
-
|
|
197
|
+
right: 0;
|
|
197
198
|
~ * {
|
|
198
199
|
--#{$prefix}sidebar-occupy-end: 0 !important; // stylelint-disable-line
|
|
199
200
|
}
|
|
200
201
|
|
|
201
202
|
&:not(.show) {
|
|
202
|
-
|
|
203
|
+
margin-right: calc(-1 * var(--#{$prefix}sidebar-width)); // stylelint-disable-line function-disallowed-list
|
|
203
204
|
}
|
|
204
205
|
}
|
|
205
206
|
}
|
|
@@ -208,7 +209,7 @@
|
|
|
208
209
|
.sidebar-close {
|
|
209
210
|
position: absolute;
|
|
210
211
|
top: 0;
|
|
211
|
-
|
|
212
|
+
right: 0;
|
|
212
213
|
width: var(--#{$prefix}sidebar-width);
|
|
213
214
|
height: var(--#{$prefix}sidebar-header-height);
|
|
214
215
|
color: var(--#{$prefix}sidebar-color);
|
|
@@ -227,8 +228,6 @@
|
|
|
227
228
|
.sidebar-brand {
|
|
228
229
|
display: flex;
|
|
229
230
|
flex: 0 0 var(--#{$prefix}sidebar-brand-height);
|
|
230
|
-
align-items: center;
|
|
231
|
-
justify-content: center;
|
|
232
231
|
color: var(--#{$prefix}sidebar-brand-color);
|
|
233
232
|
background: var(--#{$prefix}sidebar-brand-bg);
|
|
234
233
|
|
|
@@ -282,9 +281,10 @@
|
|
|
282
281
|
background-position: center;
|
|
283
282
|
background-size: calc(var(--#{$prefix}sidebar-toggler-indicator-height) * .25); // stylelint-disable-line function-disallowed-list
|
|
284
283
|
@include transition($sidebar-toggler-transition);
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
284
|
+
|
|
285
|
+
/* rtl:raw:
|
|
286
|
+
transform: rotate(-180deg);
|
|
287
|
+
*/
|
|
288
288
|
}
|
|
289
289
|
|
|
290
290
|
&:focus {
|
|
@@ -301,7 +301,7 @@
|
|
|
301
301
|
.sidebar-end & {
|
|
302
302
|
justify-content: flex-start;
|
|
303
303
|
&::before {
|
|
304
|
-
transform: rotate(-180deg);
|
|
304
|
+
transform: rotate(-180deg) #{"/* rtl:rotate(0deg) */"};
|
|
305
305
|
}
|
|
306
306
|
}
|
|
307
307
|
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// stylelint-disable selector-attribute-quotes
|
|
2
|
+
|
|
3
|
+
@import "../../functions";
|
|
4
|
+
@import "../../variables";
|
|
5
|
+
@import "../../variables-dark";
|
|
6
|
+
@import "../../maps";
|
|
7
|
+
@import "../../mixins";
|
|
8
|
+
|
|
9
|
+
@include describe("global $color-mode-type: data") {
|
|
10
|
+
@include it("generates data attribute selectors for dark mode") {
|
|
11
|
+
@include assert() {
|
|
12
|
+
@include output() {
|
|
13
|
+
@include color-mode(dark) {
|
|
14
|
+
.element {
|
|
15
|
+
color: var(--cui-primary-text);
|
|
16
|
+
background-color: var(--cui-primary-bg-subtle);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
@include color-mode(dark, true) {
|
|
20
|
+
--custom-color: #{mix($indigo, $blue, 50%)};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
@include expect() {
|
|
24
|
+
[data-coreui-theme=dark] .element {
|
|
25
|
+
color: var(--cui-primary-text);
|
|
26
|
+
background-color: var(--cui-primary-bg-subtle);
|
|
27
|
+
}
|
|
28
|
+
[data-coreui-theme=dark] {
|
|
29
|
+
--custom-color: #3a3ff8;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@include describe("global $color-mode-type: media-query") {
|
|
37
|
+
@include it("generates media queries for dark mode") {
|
|
38
|
+
$color-mode-type: media-query !global;
|
|
39
|
+
|
|
40
|
+
@include assert() {
|
|
41
|
+
@include output() {
|
|
42
|
+
@include color-mode(dark) {
|
|
43
|
+
.element {
|
|
44
|
+
color: var(--cui-primary-text);
|
|
45
|
+
background-color: var(--cui-primary-bg-subtle);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
@include color-mode(dark, true) {
|
|
49
|
+
--custom-color: #{mix($indigo, $blue, 50%)};
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
@include expect() {
|
|
53
|
+
@media (prefers-color-scheme: dark) {
|
|
54
|
+
.element {
|
|
55
|
+
color: var(--cui-primary-text);
|
|
56
|
+
background-color: var(--cui-primary-bg-subtle);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
@media (prefers-color-scheme: dark) {
|
|
60
|
+
:root {
|
|
61
|
+
--custom-color: #3a3ff8;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
$color-mode-type: data !global;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
$prefix: bs-;
|
|
2
|
+
$enable-important-utilities: false;
|
|
3
|
+
|
|
4
|
+
// Important: Do not import rfs to check that the mixin just calls the appropriate functions from it
|
|
5
|
+
@import "../../mixins/utilities";
|
|
6
|
+
|
|
7
|
+
@mixin test-generate-utility($params...) {
|
|
8
|
+
@include assert() {
|
|
9
|
+
@include output() {
|
|
10
|
+
@include generate-utility($params...);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
@include expect() {
|
|
14
|
+
@content;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@include describe(generate-utility) {
|
|
20
|
+
@include it("generates a utility class for each value") {
|
|
21
|
+
@include test-generate-utility(
|
|
22
|
+
(
|
|
23
|
+
property: "padding",
|
|
24
|
+
values: (small: .5rem, large: 2rem)
|
|
25
|
+
)
|
|
26
|
+
) {
|
|
27
|
+
.padding-small {
|
|
28
|
+
padding: .5rem;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.padding-large {
|
|
32
|
+
padding: 2rem;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
@include describe("global $enable-important-utilities: true") {
|
|
38
|
+
@include it("sets !important") {
|
|
39
|
+
$enable-important-utilities: true !global;
|
|
40
|
+
|
|
41
|
+
@include test-generate-utility(
|
|
42
|
+
(
|
|
43
|
+
property: "padding",
|
|
44
|
+
values: (small: .5rem, large: 2rem)
|
|
45
|
+
)
|
|
46
|
+
) {
|
|
47
|
+
.padding-small {
|
|
48
|
+
padding: .5rem !important;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.padding-large {
|
|
52
|
+
padding: 2rem !important;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
$enable-important-utilities: false !global;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
@include describe("$utility") {
|
|
61
|
+
@include describe("values") {
|
|
62
|
+
@include it("supports null keys") {
|
|
63
|
+
@include test-generate-utility(
|
|
64
|
+
(
|
|
65
|
+
property: "padding",
|
|
66
|
+
values: (null: 1rem, small: .5rem, large: 2rem)
|
|
67
|
+
),
|
|
68
|
+
) {
|
|
69
|
+
.padding {
|
|
70
|
+
padding: 1rem;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.padding-small {
|
|
74
|
+
padding: .5rem;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.padding-large {
|
|
78
|
+
padding: 2rem;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@include it("ignores null values") {
|
|
84
|
+
@include test-generate-utility(
|
|
85
|
+
(
|
|
86
|
+
property: "padding",
|
|
87
|
+
values: (small: null, large: 2rem)
|
|
88
|
+
)
|
|
89
|
+
) {
|
|
90
|
+
.padding-large {
|
|
91
|
+
padding: 2rem;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@include it("supports lists") {
|
|
97
|
+
@include test-generate-utility(
|
|
98
|
+
(
|
|
99
|
+
property: "padding",
|
|
100
|
+
values: 1rem 2rem
|
|
101
|
+
)
|
|
102
|
+
) {
|
|
103
|
+
.padding-1rem {
|
|
104
|
+
padding: 1rem;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.padding-2rem {
|
|
108
|
+
padding: 2rem;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
@include it("supports single values") {
|
|
114
|
+
@include test-generate-utility(
|
|
115
|
+
(
|
|
116
|
+
property: padding,
|
|
117
|
+
values: 1rem
|
|
118
|
+
)
|
|
119
|
+
) {
|
|
120
|
+
.padding-1rem {
|
|
121
|
+
padding: 1rem;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
@include describe("class & property") {
|
|
128
|
+
@include it("adds each property to the declaration") {
|
|
129
|
+
@include test-generate-utility(
|
|
130
|
+
(
|
|
131
|
+
class: padding-x,
|
|
132
|
+
property: padding-inline-start padding-inline-end,
|
|
133
|
+
values: 1rem
|
|
134
|
+
)
|
|
135
|
+
) {
|
|
136
|
+
.padding-x-1rem {
|
|
137
|
+
padding-inline-start: 1rem;
|
|
138
|
+
padding-inline-end: 1rem;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
@include it("uses the first property as class name") {
|
|
144
|
+
@include test-generate-utility(
|
|
145
|
+
(
|
|
146
|
+
property: padding-inline-start padding-inline-end,
|
|
147
|
+
values: 1rem
|
|
148
|
+
)
|
|
149
|
+
) {
|
|
150
|
+
.padding-inline-start-1rem {
|
|
151
|
+
padding-inline-start: 1rem;
|
|
152
|
+
padding-inline-end: 1rem;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
@include it("supports a null class to create classes straight from the values") {
|
|
158
|
+
@include test-generate-utility(
|
|
159
|
+
(
|
|
160
|
+
property: visibility,
|
|
161
|
+
class: null,
|
|
162
|
+
values: (
|
|
163
|
+
visible: visible,
|
|
164
|
+
invisible: hidden,
|
|
165
|
+
)
|
|
166
|
+
)
|
|
167
|
+
) {
|
|
168
|
+
.visible {
|
|
169
|
+
visibility: visible;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.invisible {
|
|
173
|
+
visibility: hidden;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
@include describe("state") {
|
|
180
|
+
@include it("Generates selectors for each states") {
|
|
181
|
+
@include test-generate-utility(
|
|
182
|
+
(
|
|
183
|
+
property: padding,
|
|
184
|
+
values: 1rem,
|
|
185
|
+
state: hover focus,
|
|
186
|
+
)
|
|
187
|
+
) {
|
|
188
|
+
.padding-1rem {
|
|
189
|
+
padding: 1rem;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.padding-1rem-hover:hover {
|
|
193
|
+
padding: 1rem;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
.padding-1rem-focus:focus {
|
|
197
|
+
padding: 1rem;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
@include describe("css-var"){
|
|
204
|
+
@include it("sets a CSS variable instead of the property") {
|
|
205
|
+
@include test-generate-utility(
|
|
206
|
+
(
|
|
207
|
+
property: padding,
|
|
208
|
+
css-variable-name: padding,
|
|
209
|
+
css-var: true,
|
|
210
|
+
values: 1rem 2rem
|
|
211
|
+
)
|
|
212
|
+
) {
|
|
213
|
+
.padding-1rem {
|
|
214
|
+
--cui-padding: 1rem;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
.padding-2rem {
|
|
218
|
+
--cui-padding: 2rem;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
@include it("defaults to class") {
|
|
224
|
+
@include test-generate-utility(
|
|
225
|
+
(
|
|
226
|
+
property: padding,
|
|
227
|
+
class: padding,
|
|
228
|
+
css-var: true,
|
|
229
|
+
values: 1rem 2rem
|
|
230
|
+
)
|
|
231
|
+
) {
|
|
232
|
+
.padding-1rem {
|
|
233
|
+
--cui-padding: 1rem;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.padding-2rem {
|
|
237
|
+
--cui-padding: 2rem;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
@include describe("local-vars") {
|
|
244
|
+
@include it("generates the listed variables") {
|
|
245
|
+
@include test-generate-utility(
|
|
246
|
+
(
|
|
247
|
+
property: color,
|
|
248
|
+
class: desaturated-color,
|
|
249
|
+
local-vars: (
|
|
250
|
+
color-opacity: 1,
|
|
251
|
+
color-saturation: .25
|
|
252
|
+
),
|
|
253
|
+
values: (
|
|
254
|
+
blue: hsla(192deg, var(--cui-color-saturation), 0, var(--cui-color-opacity))
|
|
255
|
+
)
|
|
256
|
+
)
|
|
257
|
+
) {
|
|
258
|
+
.desaturated-color-blue {
|
|
259
|
+
--cui-color-opacity: 1;
|
|
260
|
+
// Sass compilation will put a leading zero so we want to keep that one
|
|
261
|
+
// stylelint-disable-next-line number-leading-zero
|
|
262
|
+
--cui-color-saturation: 0.25;
|
|
263
|
+
color: hsla(192deg, var(--cui-color-saturation), 0, var(--cui-color-opacity));
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
@include describe("css-var & state") {
|
|
270
|
+
@include it("Generates a rule with for each state with a CSS variable") {
|
|
271
|
+
@include test-generate-utility(
|
|
272
|
+
(
|
|
273
|
+
property: padding,
|
|
274
|
+
css-var: true,
|
|
275
|
+
css-variable-name: padding,
|
|
276
|
+
values: 1rem,
|
|
277
|
+
state: hover focus,
|
|
278
|
+
)
|
|
279
|
+
) {
|
|
280
|
+
.padding-1rem {
|
|
281
|
+
--cui-padding: 1rem;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
.padding-1rem-hover:hover {
|
|
285
|
+
--cui-padding: 1rem;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
.padding-1rem-focus:focus {
|
|
289
|
+
--cui-padding: 1rem;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
@include describe("rtl") {
|
|
296
|
+
@include it("sets up RTLCSS for removal when false") {
|
|
297
|
+
@include test-generate-utility(
|
|
298
|
+
(
|
|
299
|
+
property: padding,
|
|
300
|
+
values: 1rem,
|
|
301
|
+
rtl: false
|
|
302
|
+
)
|
|
303
|
+
) {
|
|
304
|
+
/* rtl:begin:remove */
|
|
305
|
+
|
|
306
|
+
.padding-1rem {
|
|
307
|
+
padding: 1rem;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
/* rtl:end:remove */
|
|
311
|
+
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
@include describe("rfs") {
|
|
317
|
+
@include it("sets the fluid value when not inside media query") {
|
|
318
|
+
@include test-generate-utility(
|
|
319
|
+
(
|
|
320
|
+
property: padding,
|
|
321
|
+
values: 1rem,
|
|
322
|
+
rfs: true
|
|
323
|
+
)
|
|
324
|
+
) {
|
|
325
|
+
.padding-1rem {
|
|
326
|
+
padding: rfs-fluid-value(1rem);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
@include it("sets the value when inside the media query") {
|
|
332
|
+
@include test-generate-utility(
|
|
333
|
+
(
|
|
334
|
+
property: padding,
|
|
335
|
+
values: 1rem,
|
|
336
|
+
rfs: true
|
|
337
|
+
),
|
|
338
|
+
$is-rfs-media-query: true
|
|
339
|
+
) {
|
|
340
|
+
.padding-1rem {
|
|
341
|
+
padding: rfs-value(1rem);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
@include describe("$infix") {
|
|
349
|
+
@include it("inserts the given infix") {
|
|
350
|
+
@include test-generate-utility(
|
|
351
|
+
(
|
|
352
|
+
property: "padding",
|
|
353
|
+
values: (null: 1rem, small: .5rem, large: 2rem)
|
|
354
|
+
),
|
|
355
|
+
$infix: -sm
|
|
356
|
+
) {
|
|
357
|
+
.padding-sm {
|
|
358
|
+
padding: 1rem;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
.padding-sm-small {
|
|
362
|
+
padding: .5rem;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
.padding-sm-large {
|
|
366
|
+
padding: 2rem;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
@include it("strips leading - if class is null") {
|
|
372
|
+
@include test-generate-utility(
|
|
373
|
+
(
|
|
374
|
+
property: visibility,
|
|
375
|
+
class: null,
|
|
376
|
+
values: (
|
|
377
|
+
visible: visible,
|
|
378
|
+
invisible: hidden,
|
|
379
|
+
)
|
|
380
|
+
),
|
|
381
|
+
-sm
|
|
382
|
+
) {
|
|
383
|
+
.sm-visible {
|
|
384
|
+
visibility: visible;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
.sm-invisible {
|
|
388
|
+
visibility: hidden;
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
@import "../../functions";
|
|
2
|
+
@import "../../variables";
|
|
3
|
+
@import "../../maps";
|
|
4
|
+
@import "../../mixins";
|
|
5
|
+
|
|
6
|
+
$utilities: ();
|
|
7
|
+
|
|
8
|
+
@include describe("utilities/api") {
|
|
9
|
+
@include it("generates utilities for each breakpoints") {
|
|
10
|
+
$utilities: (
|
|
11
|
+
margin: (
|
|
12
|
+
property: margin,
|
|
13
|
+
values: auto
|
|
14
|
+
),
|
|
15
|
+
padding: (
|
|
16
|
+
property: padding,
|
|
17
|
+
responsive: true,
|
|
18
|
+
values: 1rem
|
|
19
|
+
),
|
|
20
|
+
font-size: (
|
|
21
|
+
property: font-size,
|
|
22
|
+
values: (large: 1.25rem),
|
|
23
|
+
print: true
|
|
24
|
+
)
|
|
25
|
+
) !global;
|
|
26
|
+
|
|
27
|
+
$grid-breakpoints: (
|
|
28
|
+
xs: 0,
|
|
29
|
+
sm: 576px,
|
|
30
|
+
md: 768px
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
@include assert() {
|
|
35
|
+
@include output() {
|
|
36
|
+
@import "../../utilities/api";
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@include expect() {
|
|
40
|
+
// margin is not set to responsive
|
|
41
|
+
.margin-auto {
|
|
42
|
+
margin: auto !important;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// padding is, though
|
|
46
|
+
.padding-1rem {
|
|
47
|
+
padding: 1rem !important;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.font-size-large {
|
|
51
|
+
font-size: 1.25rem !important;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@media (min-width: 576px) {
|
|
55
|
+
.padding-sm-1rem {
|
|
56
|
+
padding: 1rem !important;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
@media (min-width: 768px) {
|
|
61
|
+
.padding-md-1rem {
|
|
62
|
+
padding: 1rem !important;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
@media print {
|
|
67
|
+
.font-size-print-large {
|
|
68
|
+
font-size: 1.25rem !important;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|