@nulllogic/scssleon 1.0.2 → 1.0.4
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/README.md +3 -3
- package/package.json +16 -14
- package/scss/_base.scss +7 -19
- package/scss/_config.scss +4 -10
- package/scss/_content.scss +4 -3
- package/scss/_functions.scss +12 -25
- package/scss/_reset.scss +20 -7
- package/scss/_root.scss +9 -11
- package/scss/components/_accordion.scss +4 -4
- package/scss/components/_alert.scss +4 -4
- package/scss/components/_badge.scss +4 -4
- package/scss/components/_breadcrumb.scss +4 -4
- package/scss/components/_button.scss +4 -4
- package/scss/components/_button_group.scss +4 -4
- package/scss/components/_card.scss +4 -4
- package/scss/components/_container.scss +3 -3
- package/scss/components/_dropdown.scss +11 -1
- package/scss/components/_loader.scss +4 -4
- package/scss/components/_modal.scss +4 -4
- package/scss/components/_nav.scss +4 -4
- package/scss/components/_navbar.scss +4 -5
- package/scss/components/_overlay.scss +4 -4
- package/scss/components/_pagination.scss +4 -4
- package/scss/components/_placeholder.scss +5 -9
- package/scss/components/_sidecap.scss +4 -4
- package/scss/components/_table.scss +3 -3
- package/scss/forms/_checkbox.scss +9 -28
- package/scss/forms/_input-group.scss +13 -120
- package/scss/forms/_input.scss +9 -29
- package/scss/forms/_label.scss +9 -10
- package/scss/forms/_radio.scss +9 -29
- package/scss/forms/_range.scss +9 -2
- package/scss/forms/_select.scss +9 -29
- package/scss/forms/_switch.scss +9 -13
- package/scss/forms/_validation.scss +13 -11
- package/scss/mixins/_utilities.scss +1 -1
- package/scss/mixins/generators/_components.scss +16 -11
- package/scss/mixins/generators/_properties.scss +46 -26
- package/scss/scssleon.scss +11 -7
- package/scss/themes/_default.scss +381 -150
|
@@ -1,33 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
@use '../functions' as functions;
|
|
1
|
+
/* Load mixins/functions */
|
|
3
2
|
@use '../mixins' as mixins;
|
|
3
|
+
@use '../functions' as functions;
|
|
4
4
|
|
|
5
|
+
/* SCSS variables definition requirement */
|
|
5
6
|
$config: nil !default;
|
|
6
7
|
$theme: nil !default;
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
$
|
|
12
|
-
$
|
|
13
|
-
|
|
14
|
-
$label-component: functions.get-theme($theme, 'components.form.checkbox');
|
|
15
|
-
|
|
16
|
-
.checkbox {
|
|
17
|
-
@include mixins.generate-properties('checkbox', $label-component, $config);
|
|
18
|
-
|
|
19
|
-
background: var(--#{$prefix}-select-background);
|
|
20
|
-
color: var(--#{$prefix}-select-color);
|
|
21
|
-
padding: var(--#{$prefix}-select-padding);
|
|
22
|
-
border: var(--#{$prefix}-select-border);
|
|
23
|
-
|
|
24
|
-
@if($is_border_radius_enabled) {
|
|
25
|
-
@include mixins.border-radius(var(--#{$prefix}-select-border-radius));
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
@if($is_shadow_enabled) {
|
|
29
|
-
@include mixins.box-shadow(var(--#{$prefix}-select-box-shadow));
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
|
|
9
|
+
@include mixins.generate-component(
|
|
10
|
+
'form.checkbox',
|
|
11
|
+
'checkbox',
|
|
12
|
+
$config,
|
|
13
|
+
$theme,
|
|
14
|
+
);
|
|
@@ -1,121 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/* Load mixins/functions */
|
|
2
|
+
@use '../mixins' as mixins;
|
|
3
|
+
@use '../functions' as functions;
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
// flex: 1 1 auto;
|
|
16
|
-
// width: 1%;
|
|
17
|
-
// min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size
|
|
18
|
-
// }
|
|
19
|
-
//
|
|
20
|
-
// // Bring the "active" form control to the top of surrounding elements
|
|
21
|
-
// > .form-control:focus,
|
|
22
|
-
// > .form-select:focus {
|
|
23
|
-
// z-index: 3;
|
|
24
|
-
// }
|
|
25
|
-
//
|
|
26
|
-
// // Ensure buttons are always above inputs for more visually pleasing borders.
|
|
27
|
-
// // This isn't needed for `.input-group-text` since it shares the same border-color
|
|
28
|
-
// // as our inputs.
|
|
29
|
-
// .btn {
|
|
30
|
-
// position: relative;
|
|
31
|
-
// z-index: 2;
|
|
32
|
-
//
|
|
33
|
-
// &:focus {
|
|
34
|
-
// z-index: 3;
|
|
35
|
-
// }
|
|
36
|
-
// }
|
|
37
|
-
//}
|
|
38
|
-
//
|
|
39
|
-
//
|
|
40
|
-
//// Textual addons
|
|
41
|
-
////
|
|
42
|
-
//// Serves as a catch-all element for any text or radio/checkbox input you wish
|
|
43
|
-
//// to prepend or append to an input.
|
|
44
|
-
//
|
|
45
|
-
//.input-group-text {
|
|
46
|
-
// display: flex;
|
|
47
|
-
// align-items: center;
|
|
48
|
-
// padding: $input-group-addon-padding-y $input-group-addon-padding-x;
|
|
49
|
-
// font-size: $input-font-size; // Match inputs
|
|
50
|
-
// font-weight: $input-group-addon-font-weight;
|
|
51
|
-
// line-height: $input-line-height;
|
|
52
|
-
// color: $input-group-addon-color;
|
|
53
|
-
// text-align: center;
|
|
54
|
-
// white-space: nowrap;
|
|
55
|
-
// background-color: $input-group-addon-bg;
|
|
56
|
-
// border: $input-border-width solid $input-group-addon-border-color;
|
|
57
|
-
// @include border-radius($input-border-radius);
|
|
58
|
-
//}
|
|
59
|
-
//
|
|
60
|
-
//
|
|
61
|
-
//// Sizing
|
|
62
|
-
////
|
|
63
|
-
//// Remix the default form control sizing classes into new ones for easier
|
|
64
|
-
//// manipulation.
|
|
65
|
-
//
|
|
66
|
-
//.input-group-lg > .form-control,
|
|
67
|
-
//.input-group-lg > .form-select,
|
|
68
|
-
//.input-group-lg > .input-group-text,
|
|
69
|
-
//.input-group-lg > .btn {
|
|
70
|
-
// padding: $input-padding-y-lg $input-padding-x-lg;
|
|
71
|
-
// font-size: $input-font-size-lg;
|
|
72
|
-
// @include border-radius($input-border-radius-lg);
|
|
73
|
-
//}
|
|
74
|
-
//
|
|
75
|
-
//.input-group-sm > .form-control,
|
|
76
|
-
//.input-group-sm > .form-select,
|
|
77
|
-
//.input-group-sm > .input-group-text,
|
|
78
|
-
//.input-group-sm > .btn {
|
|
79
|
-
// padding: $input-padding-y-sm $input-padding-x-sm;
|
|
80
|
-
// font-size : $input-font-size-sm;
|
|
81
|
-
// @include border-radius($input-border-radius-sm);
|
|
82
|
-
//}
|
|
83
|
-
//
|
|
84
|
-
//.input-group-lg > .form-select,
|
|
85
|
-
//.input-group-sm > .form-select {
|
|
86
|
-
// padding-right: $form-select-padding-x + $form-select-indicator-padding;
|
|
87
|
-
//}
|
|
88
|
-
//
|
|
89
|
-
//
|
|
90
|
-
//// Rounded corners
|
|
91
|
-
////
|
|
92
|
-
//// These rulesets must come after the sizing ones to properly override sm and lg
|
|
93
|
-
//// border-radius values when extending. They're more specific than we'd like
|
|
94
|
-
//// with the `.input-group >` part, but without it, we cannot override the sizing.
|
|
95
|
-
//
|
|
96
|
-
//// stylelint-disable-next-line no-duplicate-selectors
|
|
97
|
-
//.input-group {
|
|
98
|
-
// &:not(.has-validation) {
|
|
99
|
-
// > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu),
|
|
100
|
-
// > .dropdown-toggle:nth-last-child(n + 3) {
|
|
101
|
-
// @include border-end-radius(0);
|
|
102
|
-
// }
|
|
103
|
-
// }
|
|
104
|
-
//
|
|
105
|
-
// &.has-validation {
|
|
106
|
-
// > :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu),
|
|
107
|
-
// > .dropdown-toggle:nth-last-child(n + 4) {
|
|
108
|
-
// @include border-end-radius(0);
|
|
109
|
-
// }
|
|
110
|
-
// }
|
|
111
|
-
//
|
|
112
|
-
// $validation-messages: "";
|
|
113
|
-
// @each $state in map-keys($form-validation-states) {
|
|
114
|
-
// $validation-messages: $validation-messages + ":not(." + unquote($state) + "-tooltip)" + ":not(." + unquote($state) + "-feedback)";
|
|
115
|
-
// }
|
|
116
|
-
//
|
|
117
|
-
// > :not(:first-child):not(.dropdown-menu)#{$validation-messages} {
|
|
118
|
-
// margin-left: -$input-border-width;
|
|
119
|
-
// @include border-start-radius(0);
|
|
120
|
-
// }
|
|
121
|
-
}
|
|
5
|
+
/* SCSS variables definition requirement */
|
|
6
|
+
$config: nil !default;
|
|
7
|
+
$theme: nil !default;
|
|
8
|
+
|
|
9
|
+
@include mixins.generate-component(
|
|
10
|
+
'form.input-group',
|
|
11
|
+
'input-group',
|
|
12
|
+
$config,
|
|
13
|
+
$theme
|
|
14
|
+
);
|
package/scss/forms/_input.scss
CHANGED
|
@@ -1,34 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
@use '../functions' as functions;
|
|
1
|
+
/* Load mixins/functions */
|
|
3
2
|
@use '../mixins' as mixins;
|
|
3
|
+
@use '../functions' as functions;
|
|
4
4
|
|
|
5
|
+
/* SCSS variables definition requirement */
|
|
5
6
|
$config: nil !default;
|
|
6
7
|
$theme: nil !default;
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
$
|
|
12
|
-
$
|
|
13
|
-
|
|
14
|
-
$label-component: functions.get-theme($theme, 'components.form.input');
|
|
15
|
-
|
|
16
|
-
.input {
|
|
17
|
-
@include mixins.generate-properties('input', $label-component, $config);
|
|
18
|
-
|
|
19
|
-
background: var(--#{$prefix}-input-background);
|
|
20
|
-
color: var(--#{$prefix}-input-color);
|
|
21
|
-
padding: var(--#{$prefix}-input-padding);
|
|
22
|
-
border: var(--#{$prefix}-input-border);
|
|
23
|
-
|
|
24
|
-
@if($is_border_radius_enabled) {
|
|
25
|
-
@include mixins.border-radius(var(--#{$prefix}-input-border-radius));
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
@if($is_shadow_enabled) {
|
|
29
|
-
@include mixins.box-shadow(var(--#{$prefix}-input-box-shadow));
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
|
|
9
|
+
@include mixins.generate-component(
|
|
10
|
+
'form.input',
|
|
11
|
+
'input',
|
|
12
|
+
$config,
|
|
13
|
+
$theme
|
|
14
|
+
);
|
package/scss/forms/_label.scss
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
@use '../functions' as functions;
|
|
1
|
+
/* Load mixins/functions */
|
|
3
2
|
@use '../mixins' as mixins;
|
|
3
|
+
@use '../functions' as functions;
|
|
4
4
|
|
|
5
|
+
/* SCSS variables definition requirement */
|
|
5
6
|
$config: nil !default;
|
|
6
7
|
$theme: nil !default;
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
$
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
@include mixins.generate-properties('label', $label-component, $config);
|
|
15
|
-
}
|
|
9
|
+
@include mixins.generate-component(
|
|
10
|
+
'form.label',
|
|
11
|
+
'label',
|
|
12
|
+
$config,
|
|
13
|
+
$theme
|
|
14
|
+
);
|
package/scss/forms/_radio.scss
CHANGED
|
@@ -1,34 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
@use '../functions' as functions;
|
|
1
|
+
/* Load mixins/functions */
|
|
3
2
|
@use '../mixins' as mixins;
|
|
3
|
+
@use '../functions' as functions;
|
|
4
4
|
|
|
5
|
+
/* SCSS variables definition requirement */
|
|
5
6
|
$config: nil !default;
|
|
6
7
|
$theme: nil !default;
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
$
|
|
12
|
-
$
|
|
13
|
-
|
|
14
|
-
$label-component: functions.get-theme($theme, 'components.form.radio');
|
|
15
|
-
|
|
16
|
-
.radio {
|
|
17
|
-
@include mixins.generate-properties('radio', $label-component, $config);
|
|
18
|
-
|
|
19
|
-
background: var(--#{$prefix}-select-background);
|
|
20
|
-
color: var(--#{$prefix}-select-color);
|
|
21
|
-
padding: var(--#{$prefix}-select-padding);
|
|
22
|
-
border: var(--#{$prefix}-select-border);
|
|
23
|
-
|
|
24
|
-
@if($is_border_radius_enabled) {
|
|
25
|
-
@include mixins.border-radius(var(--#{$prefix}-select-border-radius));
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
@if($is_shadow_enabled) {
|
|
29
|
-
@include mixins.box-shadow(var(--#{$prefix}-select-box-shadow));
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
|
|
9
|
+
@include mixins.generate-component(
|
|
10
|
+
'form.radio',
|
|
11
|
+
'radio',
|
|
12
|
+
$config,
|
|
13
|
+
$theme
|
|
14
|
+
);
|
package/scss/forms/_range.scss
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
@use '../functions' as functions;
|
|
1
|
+
/* Load mixins/functions */
|
|
3
2
|
@use '../mixins' as mixins;
|
|
3
|
+
@use '../functions' as functions;
|
|
4
4
|
|
|
5
|
+
/* SCSS variables definition requirement */
|
|
5
6
|
$config: nil !default;
|
|
6
7
|
$theme: nil !default;
|
|
7
8
|
|
|
9
|
+
@include mixins.generate-component(
|
|
10
|
+
'form.range',
|
|
11
|
+
'range',
|
|
12
|
+
$config,
|
|
13
|
+
$theme
|
|
14
|
+
);
|
package/scss/forms/_select.scss
CHANGED
|
@@ -1,34 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
@use '../functions' as functions;
|
|
1
|
+
/* Load mixins/functions */
|
|
3
2
|
@use '../mixins' as mixins;
|
|
3
|
+
@use '../functions' as functions;
|
|
4
4
|
|
|
5
|
+
/* SCSS variables definition requirement */
|
|
5
6
|
$config: nil !default;
|
|
6
7
|
$theme: nil !default;
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
$
|
|
12
|
-
$
|
|
13
|
-
|
|
14
|
-
$label-component: functions.get-theme($theme, 'components.form.select');
|
|
15
|
-
|
|
16
|
-
.select {
|
|
17
|
-
@include mixins.generate-properties('select', $label-component, $config);
|
|
18
|
-
|
|
19
|
-
background: var(--#{$prefix}-select-background);
|
|
20
|
-
color: var(--#{$prefix}-select-color);
|
|
21
|
-
padding: var(--#{$prefix}-select-padding);
|
|
22
|
-
border: var(--#{$prefix}-select-border);
|
|
23
|
-
appearance: none;
|
|
24
|
-
-webkit-appearance: none;
|
|
25
|
-
|
|
26
|
-
@if($is_border_radius_enabled) {
|
|
27
|
-
@include mixins.border-radius(var(--#{$prefix}-select-border-radius));
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
@if($is_shadow_enabled) {
|
|
31
|
-
@include mixins.box-shadow(var(--#{$prefix}-select-box-shadow));
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
}
|
|
9
|
+
@include mixins.generate-component(
|
|
10
|
+
'form.select',
|
|
11
|
+
'select',
|
|
12
|
+
$config,
|
|
13
|
+
$theme
|
|
14
|
+
);
|
package/scss/forms/_switch.scss
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
@use '../functions' as functions;
|
|
1
|
+
/* Load mixins/functions */
|
|
3
2
|
@use '../mixins' as mixins;
|
|
3
|
+
@use '../functions' as functions;
|
|
4
4
|
|
|
5
|
+
/* SCSS variables definition requirement */
|
|
5
6
|
$config: nil !default;
|
|
6
7
|
$theme: nil !default;
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
$
|
|
12
|
-
$
|
|
13
|
-
|
|
14
|
-
$label-component: functions.get-theme($theme, 'components.form.input');
|
|
15
|
-
|
|
16
|
-
.switch {
|
|
17
|
-
|
|
18
|
-
}
|
|
9
|
+
@include mixins.generate-component(
|
|
10
|
+
'form.switch',
|
|
11
|
+
'switch',
|
|
12
|
+
$config,
|
|
13
|
+
$theme
|
|
14
|
+
);
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
// primarily for client-side validation via scoped `:invalid` and `:valid`
|
|
5
|
-
// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for
|
|
6
|
-
// server-side validation.
|
|
1
|
+
/* Load mixins/functions */
|
|
2
|
+
@use '../mixins' as mixins;
|
|
3
|
+
@use '../functions' as functions;
|
|
7
4
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
/* SCSS variables definition requirement */
|
|
6
|
+
$config: nil !default;
|
|
7
|
+
$theme: nil !default;
|
|
8
|
+
|
|
9
|
+
@include mixins.generate-component(
|
|
10
|
+
'form.validation',
|
|
11
|
+
'validation',
|
|
12
|
+
$config,
|
|
13
|
+
$theme
|
|
14
|
+
);
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
@use
|
|
2
|
-
@use
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
@use 'sass:meta';
|
|
3
3
|
|
|
4
|
-
@use
|
|
5
|
-
@use
|
|
4
|
+
@use 'properties';
|
|
5
|
+
@use 'wrapper';
|
|
6
6
|
|
|
7
|
-
@use
|
|
7
|
+
@use '../../functions' as functions;
|
|
8
8
|
|
|
9
|
-
@mixin generate-component($component, $class, $config, $theme) {
|
|
10
|
-
$theme-component:
|
|
9
|
+
@mixin generate-component($component, $class, $config, $theme, $options : ()) {
|
|
10
|
+
$theme-component: '';
|
|
11
11
|
|
|
12
|
-
// Checking, if the component was previously defined inside theme components
|
|
13
|
-
@if (meta.type-of($component) ==
|
|
12
|
+
// Checking, if the component was previously defined inside theme's components
|
|
13
|
+
@if (meta.type-of($component) == 'string') {
|
|
14
14
|
/* Loading component settings and styling */
|
|
15
15
|
$theme-component: functions.get-theme(
|
|
16
16
|
$theme,
|
|
17
|
-
|
|
17
|
+
'components' + '.' + $component
|
|
18
18
|
);
|
|
19
19
|
} @else {
|
|
20
20
|
$theme-component: $component;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
%#{$class} {
|
|
24
|
-
@include properties.generate-properties($class, $theme-component, $config);
|
|
24
|
+
@include properties.generate-properties($class, $theme-component, $config, $options);
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
@include wrapper.generate-wrapper($config) {
|
|
@@ -31,3 +31,8 @@
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
//@mixin generate-components($component, $class, $config, $theme) {
|
|
35
|
+
|
|
36
|
+
@mixin get-structure ($component) {
|
|
37
|
+
@debug $component;
|
|
38
|
+
}
|
|
@@ -5,26 +5,30 @@
|
|
|
5
5
|
@use "../../functions" as functions;
|
|
6
6
|
@use "../../mixins/generators/color-sheme" as mixin;
|
|
7
7
|
|
|
8
|
-
@mixin generate-css-properties($tag, $property, $value, $config) {
|
|
8
|
+
@mixin generate-css-properties($tag, $property, $value, $config, $options : ()) {
|
|
9
9
|
$prefix: functions.get-config($config, "prefix");
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
@if(functions.get-config($options, 'add_pseudo_tag') != nil and functions.get-config($options, 'add_pseudo_tag') == false) {
|
|
12
|
+
--#{$prefix}-#{functions.replace($property, '--', '')}: #{meta.inspect(
|
|
12
13
|
$value
|
|
13
14
|
)};
|
|
15
|
+
} @else {
|
|
16
|
+
--#{$prefix}-#{$tag}-#{functions.replace($property, '--', '')}: #{meta.inspect(
|
|
17
|
+
$value
|
|
18
|
+
)};
|
|
19
|
+
}
|
|
14
20
|
}
|
|
15
21
|
|
|
16
22
|
@mixin generate-css-variables($tag, $property, $value, $config) {
|
|
17
23
|
$prefix: functions.get-config($config, "prefix");
|
|
18
24
|
|
|
19
|
-
@if (meta.type-of($value) == "string" and
|
|
25
|
+
@if (meta.type-of($value) == "string" and string.index($value, "var(--") == 1) {
|
|
20
26
|
#{$property}: #{meta.inspect(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
} @else if
|
|
24
|
-
(type-of($value) == "string" and str-index($value, "var(global(") == 1)
|
|
25
|
-
{
|
|
27
|
+
functions.replace($value, "--", "--" + $prefix + "-" + $tag + "-")
|
|
28
|
+
)};
|
|
29
|
+
} @else if (meta.type-of($value) == "string" and string.index($value, "var(global(") == 1) {
|
|
26
30
|
#{$property}: #{meta.inspect(
|
|
27
|
-
functions.
|
|
31
|
+
functions.replace(
|
|
28
32
|
string.slice($value, 0, string.length($value) - 1),
|
|
29
33
|
"global(--",
|
|
30
34
|
"--" + $prefix + "-root-"
|
|
@@ -39,15 +43,13 @@
|
|
|
39
43
|
$prefix: functions.get-config($config, "prefix");
|
|
40
44
|
|
|
41
45
|
@each $color, $color-properties in $value {
|
|
42
|
-
@each $scheme
|
|
43
|
-
in functions.str-split(functions.get-config($config, "color-scheme"), " ")
|
|
44
|
-
{
|
|
46
|
+
@each $scheme in string.split(functions.get-config($config, "color-scheme"), " ") {
|
|
45
47
|
@if $scheme == $color {
|
|
46
48
|
@include mixin.generate-color-scheme($color) {
|
|
47
49
|
@each $color-property, $color-value in $color-properties {
|
|
48
|
-
--#{$prefix}-#{$tag}-#{functions.
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
--#{$prefix}-#{$tag}-#{functions.replace($color-property, '--', '')}: #{meta.inspect(
|
|
51
|
+
$color-value
|
|
52
|
+
)};
|
|
51
53
|
}
|
|
52
54
|
}
|
|
53
55
|
}
|
|
@@ -55,9 +57,9 @@
|
|
|
55
57
|
}
|
|
56
58
|
}
|
|
57
59
|
|
|
58
|
-
@mixin generate-subclasses($tag, $class, $properties, $config) {
|
|
60
|
+
@mixin generate-subclasses($tag, $class, $properties, $config, $options : ()) {
|
|
59
61
|
#{$class} {
|
|
60
|
-
@include generate-properties($tag, $properties, $config);
|
|
62
|
+
@include generate-properties($tag, $properties, $config, $options);
|
|
61
63
|
}
|
|
62
64
|
}
|
|
63
65
|
|
|
@@ -75,7 +77,20 @@
|
|
|
75
77
|
}
|
|
76
78
|
}
|
|
77
79
|
|
|
78
|
-
@mixin generate-
|
|
80
|
+
@mixin generate-atrule($tag, $value, $config, $options) {
|
|
81
|
+
@each $at-rule, $properties in $value {
|
|
82
|
+
// Keep @ at the beginning
|
|
83
|
+
@#{functions.replace($at-rule, '@', '')} {
|
|
84
|
+
@include generate-properties($tag, $properties, $config, $options);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
@mixin generate-animation($tag, $value, $config, $options) {
|
|
90
|
+
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@mixin generate-properties($tag, $properties, $config, $options : ()) {
|
|
79
94
|
$prefix: functions.get-config($config, "prefix");
|
|
80
95
|
|
|
81
96
|
@each $property, $value in $properties {
|
|
@@ -83,27 +98,32 @@
|
|
|
83
98
|
// Looking for "--" symbols in the beginning of the property
|
|
84
99
|
// Example: --flex-direction : row
|
|
85
100
|
@if (
|
|
86
|
-
|
|
101
|
+
meta.type-of($property) == "string" and string.index($property, "--") == 1
|
|
87
102
|
) {
|
|
88
|
-
@include generate-css-properties($tag, $property, $value, $config);
|
|
103
|
+
@include generate-css-properties($tag, $property, $value, $config, $options);
|
|
89
104
|
}
|
|
90
105
|
|
|
91
106
|
// Colors
|
|
92
|
-
@else if ($property == "
|
|
107
|
+
@else if ($property == "_colors") {
|
|
93
108
|
@include generate-colors($tag, $value, $config);
|
|
94
109
|
}
|
|
95
110
|
|
|
96
111
|
// Responsive
|
|
97
|
-
@else if ($property == "
|
|
112
|
+
@else if ($property == "_responsive") {
|
|
98
113
|
@include generate-responsive($tag, $value, $config);
|
|
99
114
|
}
|
|
100
115
|
|
|
101
|
-
//
|
|
102
|
-
@else if ($property == "
|
|
116
|
+
// Sub classes
|
|
117
|
+
@else if ($property == "_subclasses") {
|
|
103
118
|
@each $class, $class_properties in $value {
|
|
104
|
-
@include generate-subclasses($tag, $class, $class_properties, $config);
|
|
119
|
+
@include generate-subclasses($tag, $class, $class_properties, $config, $options);
|
|
105
120
|
}
|
|
106
|
-
}
|
|
121
|
+
}
|
|
122
|
+
// At-rules
|
|
123
|
+
@else if ($property == "_atrule") {
|
|
124
|
+
@include generate-atrule($tag, $value, $config, $options);
|
|
125
|
+
}
|
|
126
|
+
@else {
|
|
107
127
|
@include generate-css-variables($tag, $property, $value, $config);
|
|
108
128
|
}
|
|
109
129
|
}
|
package/scss/scssleon.scss
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
@charset "UTF-8";
|
|
2
|
+
@use "./mixins" as mixins;
|
|
3
|
+
@use "./functions" as functions;
|
|
4
|
+
|
|
1
5
|
/*
|
|
2
6
|
* ------------------------------------------------------------------
|
|
3
7
|
* ███████╗ ██████╗ ██████╗███████╗██╗ ███████╗ ██████╗ ███╗ ██╗
|
|
@@ -44,15 +48,13 @@ $theme: (
|
|
|
44
48
|
// ↓ Theme
|
|
45
49
|
/* Override default settings in the theme | @example */
|
|
46
50
|
@use "themes/default" as theme with (
|
|
47
|
-
$theme: $theme
|
|
51
|
+
$theme: $theme,
|
|
48
52
|
);
|
|
49
53
|
|
|
50
54
|
// Getting updated variables
|
|
51
55
|
$config: config.$config;
|
|
52
56
|
$theme: theme.$theme;
|
|
53
57
|
|
|
54
|
-
/* Main configuration END
|
|
55
|
-
-------------------------------------------------------*/
|
|
56
58
|
|
|
57
59
|
/* ------------------------------------------------------------------
|
|
58
60
|
* Loading modules - this is default configuration with all modules enabled
|
|
@@ -64,13 +66,13 @@ $theme: theme.$theme;
|
|
|
64
66
|
$theme: $theme
|
|
65
67
|
);
|
|
66
68
|
|
|
67
|
-
// Great reset
|
|
69
|
+
// ↓ Great reset
|
|
68
70
|
@use "reset" with (
|
|
69
71
|
$config: $config,
|
|
70
72
|
$theme: $theme
|
|
71
73
|
);
|
|
72
74
|
|
|
73
|
-
// Base
|
|
75
|
+
// ↓ Base
|
|
74
76
|
// Special utility, that will dynamically generate CSS
|
|
75
77
|
// properties for HTML tags, specified in theme
|
|
76
78
|
@use "base" with (
|
|
@@ -78,7 +80,7 @@ $theme: theme.$theme;
|
|
|
78
80
|
$theme: $theme
|
|
79
81
|
);
|
|
80
82
|
|
|
81
|
-
// Amazing content
|
|
83
|
+
// ↓ Amazing content
|
|
82
84
|
// Special class `.content` to allow formatting of the default html tags
|
|
83
85
|
@use "content" with (
|
|
84
86
|
$config: $config,
|
|
@@ -114,7 +116,7 @@ $theme: theme.$theme;
|
|
|
114
116
|
$config: $config,
|
|
115
117
|
$theme: $theme
|
|
116
118
|
);
|
|
117
|
-
@use "components/
|
|
119
|
+
@use "components/button_group" with (
|
|
118
120
|
$config: $config,
|
|
119
121
|
$theme: $theme
|
|
120
122
|
);
|
|
@@ -129,11 +131,13 @@ $theme: theme.$theme;
|
|
|
129
131
|
$theme: $theme
|
|
130
132
|
);
|
|
131
133
|
|
|
134
|
+
// ↓ Alert
|
|
132
135
|
@use "components/alert" with (
|
|
133
136
|
$config: $config,
|
|
134
137
|
$theme: $theme
|
|
135
138
|
);
|
|
136
139
|
|
|
140
|
+
// ↓ Accordion
|
|
137
141
|
@use "components/accordion" with (
|
|
138
142
|
$config: $config,
|
|
139
143
|
$theme: $theme
|