@massimo-cassandro/minimo 1.20.16 → 1.21.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/design-tokens/tokens-config-sample.mjs +5 -0
- package/design-tokens/utilities/build-tokens-src/config.mjs +5 -0
- package/design-tokens/utilities/build-tokens-src/formats/css.mjs +7 -1
- package/design-tokens/utilities/build-tokens-src/platforms.mjs +3 -0
- package/design-tokens/utilities/build-tokens.mjs +2 -0
- package/package.json +3 -3
- package/src/components/autocomplete/autocomplete.css +113 -109
- package/src/components/inner-nav/inner-nav.css +13 -9
- package/src/components/modal-alert/modal-alert.module.css +157 -153
- package/src/components/modal-popup/modal-popup.module.css +89 -85
- package/src/components/overlay/overlay.css +14 -10
- package/src/components/sf-macro/sf-macro.css +60 -56
- package/src/components/slide-up-down-toggle/slide-up-down-toggle.module.css +33 -29
- package/src/components/snackbar/snackbar.module.css +93 -89
- package/src/components/spinner/spinner-circle-basic.css +18 -14
- package/src/components/spinner/spinner.module.css +8 -4
- package/src/components/unsplash-page/unsplash-page.module.css +260 -256
- package/src/css/alerts.css +55 -53
- package/src/css/badge.css +16 -12
- package/src/css/buttons/btn-close.css +57 -53
- package/src/css/buttons/buttons-primary.css +38 -34
- package/src/css/buttons/buttons-secondary.css +38 -34
- package/src/css/buttons/buttons.css +84 -80
- package/src/css/buttons/status-buttons.css +66 -63
- package/src/css/container.css +9 -5
- package/src/css/data-formats.css +28 -24
- package/src/css/details.css +17 -13
- package/src/css/dimensions.css +13 -9
- package/src/css/display.css +27 -23
- package/src/css/flex.css +39 -35
- package/src/css/forms/fieldset.css +47 -43
- package/src/css/forms/form-collections.css +16 -12
- package/src/css/forms/form-disabled-readonly.css +31 -27
- package/src/css/forms/form-group.css +15 -11
- package/src/css/forms/form-utilities.css +32 -28
- package/src/css/forms/forms.css +136 -134
- package/src/css/forms/input-group.css +47 -43
- package/src/css/forms/switch.css +50 -46
- package/src/css/forms/validation.css +26 -22
- package/src/css/grid.css +66 -62
- package/src/css/headings.css +32 -28
- package/src/css/icons.css +41 -37
- package/src/css/layout-base.css +16 -12
- package/src/css/links.css +40 -36
- package/src/css/margin-padding-bootstrap-media.css +1836 -1832
- package/src/css/margin-padding-bootstrap.css +445 -441
- package/src/css/margin-padding-media.css +1836 -1832
- package/src/css/margin-padding.css +445 -441
- package/src/css/overflow.css +7 -3
- package/src/css/position.css +5 -1
- package/src/css/reset.css +47 -44
- package/src/css/svg.css +6 -2
- package/src/css/table.css +59 -55
- package/src/css/text.css +96 -92
- package/src/css/visibility.css +23 -19
- package/src/custom-properties.css +442 -439
- package/src/minimo.css +2 -0
- package/src/web-components/s-datatable-component/s-datatable-component.module.css +175 -171
|
@@ -1,18 +1,22 @@
|
|
|
1
|
+
@layer base {
|
|
1
2
|
|
|
2
|
-
.form-group {
|
|
3
|
-
display: flex;
|
|
4
|
-
flex-flow: column nowrap;
|
|
5
|
-
gap: var(--size-xxs);
|
|
6
|
-
align-content: flex-start; /* multiline container */
|
|
7
|
-
align-items: flex-start;
|
|
8
|
-
justify-content: stretch;
|
|
9
|
-
padding-block: var(--form-group-padding-block);
|
|
10
3
|
|
|
11
|
-
|
|
4
|
+
.form-group {
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-flow: column nowrap;
|
|
7
|
+
gap: var(--size-xxs);
|
|
8
|
+
align-content: flex-start; /* multiline container */
|
|
9
|
+
align-items: flex-start;
|
|
10
|
+
justify-content: stretch;
|
|
11
|
+
padding-block: var(--form-group-padding-block);
|
|
12
|
+
|
|
13
|
+
/* &:has(textarea) {
|
|
12
14
|
height: 100%;
|
|
13
15
|
} */
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
+
.grid & {
|
|
18
|
+
padding-block-end: 0;
|
|
19
|
+
}
|
|
17
20
|
}
|
|
21
|
+
|
|
18
22
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
@layer base {
|
|
1
2
|
|
|
2
|
-
/* blocco finale con le info sull'utente che h salvato il form */
|
|
3
3
|
|
|
4
|
-
/*
|
|
4
|
+
/* blocco finale con le info sull'utente che h salvato il form */
|
|
5
|
+
|
|
6
|
+
/*
|
|
5
7
|
<div class="form-end">
|
|
6
8
|
|
|
7
9
|
<button ...>Registra</button>
|
|
@@ -14,31 +16,33 @@
|
|
|
14
16
|
</div>
|
|
15
17
|
*/
|
|
16
18
|
|
|
17
|
-
.form-end {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.form-user-info {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
/* ---------------------------------------------------------------- */
|
|
39
|
-
/* testo di aiuto sotto il controllo */
|
|
19
|
+
.form-end {
|
|
20
|
+
display: flex;
|
|
21
|
+
flex-flow: row wrap;
|
|
22
|
+
gap: var(--size-base);
|
|
23
|
+
align-content: center;
|
|
24
|
+
align-items: center;
|
|
25
|
+
justify-content: space-between;
|
|
26
|
+
margin-block: var(--form-end-margin-block-start) var(--form-end-margin-block-end);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.form-user-info {
|
|
30
|
+
display: flex;
|
|
31
|
+
flex-flow: row wrap;
|
|
32
|
+
gap: var(--size-xs);
|
|
33
|
+
align-items: center;
|
|
34
|
+
justify-content: flex-end;
|
|
35
|
+
font-size: var(--form-user-info-font-size);
|
|
36
|
+
color: var(--form-user-info-color);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
/* ---------------------------------------------------------------- */
|
|
41
|
+
/* testo di aiuto sotto il controllo */
|
|
42
|
+
|
|
43
|
+
.form-help-text {
|
|
44
|
+
font-size: var(--font-size-xs);
|
|
45
|
+
color: var(--text-muted);
|
|
46
|
+
}
|
|
40
47
|
|
|
41
|
-
.form-help-text {
|
|
42
|
-
font-size: var(--font-size-xs);
|
|
43
|
-
color: var(--text-muted);
|
|
44
48
|
}
|
package/src/css/forms/forms.css
CHANGED
|
@@ -1,164 +1,166 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
/* TODO
|
|
4
|
-
/* TODO
|
|
5
|
-
/* TODO
|
|
6
|
-
/* TODO
|
|
7
|
-
/* TODO
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
1
|
+
@layer base {
|
|
2
|
+
|
|
3
|
+
/* TODO separare? */
|
|
4
|
+
/* TODO serie di gruppi radio o checkbox */
|
|
5
|
+
/* TODO multiselect */
|
|
6
|
+
/* TODO classe grid specifica per i form ?? (.form-grid?) */
|
|
7
|
+
/* TODO customizable select */
|
|
8
|
+
/* TODO form-check: rifare come flex, separare? */
|
|
9
|
+
/* TODO abbreviare prefisso */
|
|
10
|
+
|
|
11
|
+
.form-group:has([required]):not(:has([disabled])) {
|
|
12
|
+
|
|
13
|
+
/* `>` excludes labels within form-collections */
|
|
14
|
+
> .form-label {
|
|
15
|
+
position: relative;
|
|
16
|
+
padding-inline-start: var(--form-control-required-label-padding-inline-start);
|
|
17
|
+
&::before {
|
|
18
|
+
position: absolute;
|
|
19
|
+
top: var(--form-control-required-flag-top);
|
|
20
|
+
left: var(--form-control-required-flag-left);
|
|
21
|
+
display: inline-block;
|
|
22
|
+
font-size: var(--form-control-required-flag-font-size);
|
|
23
|
+
color: var(--form-control-required-flag-color);
|
|
24
|
+
content: var(--form-control-required-flag-content);
|
|
25
|
+
}
|
|
23
26
|
}
|
|
24
27
|
}
|
|
25
|
-
}
|
|
26
28
|
|
|
27
|
-
/* single checkbozes and radios are centered */
|
|
28
|
-
.form-group:not(.form-collection-fset):has(.form-check:not(.form-check-top-label)) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
/* single checkbozes and radios are centered */
|
|
30
|
+
.form-group:not(.form-collection-fset):has(.form-check:not(.form-check-top-label)) {
|
|
31
|
+
align-self: center;
|
|
32
|
+
.form-check {
|
|
33
|
+
margin-block-start: 0;
|
|
34
|
+
}
|
|
32
35
|
}
|
|
33
|
-
}
|
|
34
36
|
|
|
35
|
-
.form-label {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
37
|
+
.form-label {
|
|
38
|
+
display: block;
|
|
39
|
+
font-size: var(--form-label-font-size);
|
|
40
|
+
font-weight: var(--form-label-font-weight);
|
|
41
|
+
color: var(--form-label-color);
|
|
42
|
+
}
|
|
41
43
|
|
|
42
44
|
|
|
43
|
-
.form-control, .form-control-static {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
45
|
+
.form-control, .form-control-static {
|
|
46
|
+
display: block;
|
|
47
|
+
width: 100%;
|
|
48
|
+
padding: var(--form-control-padding-block) var(--form-control-padding-inline);
|
|
49
|
+
font-family: var(--font-family);
|
|
50
|
+
font-size: var(--form-control-font-size);
|
|
51
|
+
font-weight: var(--font-weight-regular);
|
|
52
|
+
line-height: var(--form-control-line-height);
|
|
53
|
+
color: var(--form-control-text-color);
|
|
54
|
+
background-color: var(--form-control-background-color);
|
|
55
|
+
border: var(--form-control-border-width) var(--form-control-border-style) var(--form-control-border-color);
|
|
56
|
+
border-radius: var(--form-control-border-radius);
|
|
57
|
+
|
|
58
|
+
&:focus {
|
|
59
|
+
outline: none;
|
|
60
|
+
}
|
|
59
61
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
&:focus-visible {
|
|
63
|
+
outline: var(--form-control-focus-outline-width) solid var(--form-control-focus-color);
|
|
64
|
+
outline-offset: var(--form-control-focus-outline-offset);
|
|
65
|
+
}
|
|
64
66
|
|
|
65
67
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
&::placeholder {
|
|
69
|
+
font-size: var(--form-control-placeholder-font-size, var(--form-control-font-size));
|
|
70
|
+
font-style: var(--form-control-placeholder-font-style, italic);
|
|
71
|
+
color: var(--form-control-placeholder-color);
|
|
72
|
+
opacity: var(--form-control-placeholder-opacity, .8);
|
|
73
|
+
}
|
|
72
74
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
75
|
+
&.form-control-sm {
|
|
76
|
+
padding: var(--form-control-sm-padding-block) var(--form-control-sm-padding-inline);
|
|
77
|
+
font-size: var(--form-control-sm-font-size);
|
|
78
|
+
}
|
|
76
79
|
}
|
|
77
|
-
}
|
|
78
80
|
|
|
79
|
-
.form-control-static {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
81
|
+
.form-control-static {
|
|
82
|
+
overflow: hidden;
|
|
83
|
+
text-overflow: ellipsis;
|
|
84
|
+
color: var(--form-control-static-color);
|
|
85
|
+
white-space: nowrap;
|
|
86
|
+
cursor: not-allowed;
|
|
87
|
+
background-color: var(--form-control-static-background-color);
|
|
88
|
+
|
|
89
|
+
&.no-border {
|
|
90
|
+
padding: calc(var(--form-control-padding-block) + var(--form-control-border-width)) 0;
|
|
91
|
+
border: none;
|
|
92
|
+
}
|
|
90
93
|
}
|
|
91
|
-
}
|
|
92
94
|
|
|
93
|
-
/* da bootstrap */
|
|
94
|
-
select.form-control {
|
|
95
|
+
/* da bootstrap */
|
|
96
|
+
select.form-control {
|
|
95
97
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
+
--_trigger-icon-padding-right: calc(var(--form-control-padding-inline) * 2);
|
|
99
|
+
--_bg-img-inline-size: 16px;
|
|
98
100
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
101
|
+
padding: var(--form-control-padding-block) var(--_trigger-icon-padding-right) var(--form-control-padding-block) var(--form-control-padding-inline);
|
|
102
|
+
appearance: none;
|
|
103
|
+
background-image: var(--form-control-select-trigger-icon);
|
|
104
|
+
background-repeat: no-repeat;
|
|
105
|
+
background-position: right calc(var(--_trigger-icon-padding-right) - var(--_bg-img-inline-size) - 2px) center;
|
|
106
|
+
background-size: var(--_bg-img-inline-size) 12px;
|
|
105
107
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
108
|
+
&[multiple],
|
|
109
|
+
&[size]:not([size='1']) {
|
|
110
|
+
padding-right: var(--form-control-padding-inline);
|
|
111
|
+
background-image: none;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
&:-moz-focusring {
|
|
115
|
+
color: transparent;
|
|
116
|
+
text-shadow: 0 0 0 var(--form-control-text-color);
|
|
117
|
+
}
|
|
110
118
|
}
|
|
111
119
|
|
|
112
|
-
|
|
113
|
-
color:
|
|
114
|
-
|
|
120
|
+
input[type='checkbox'] {
|
|
121
|
+
color: var(--form-control-text-color);
|
|
122
|
+
accent-color: var(--accent);
|
|
123
|
+
transform-origin: center;
|
|
124
|
+
scale: 1.3;
|
|
115
125
|
}
|
|
116
|
-
}
|
|
117
126
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
127
|
+
/* da bs5 */
|
|
128
|
+
/* versione con label a destra */
|
|
129
|
+
/* TODO rivedere. sostituire float con flex? */
|
|
130
|
+
/* TODO eliminare necessità di stare dentro un `.form-group` */
|
|
131
|
+
/* TODO aggiungere esempi di uso */
|
|
132
|
+
.form-check {
|
|
133
|
+
display: block;
|
|
134
|
+
padding-left: 1.5em;
|
|
135
|
+
margin-block-start: var(--size-sm);
|
|
124
136
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
display: block;
|
|
132
|
-
padding-left: 1.5em;
|
|
133
|
-
margin-block-start: var(--size-sm);
|
|
134
|
-
|
|
135
|
-
.form-check-input {
|
|
136
|
-
float: left;
|
|
137
|
-
display: inline-block;
|
|
138
|
-
width: auto;
|
|
139
|
-
margin: 4px 0 0 -1.5em;
|
|
137
|
+
.form-check-input {
|
|
138
|
+
float: left;
|
|
139
|
+
display: inline-block;
|
|
140
|
+
width: auto;
|
|
141
|
+
margin: 4px 0 0 -1.5em;
|
|
142
|
+
}
|
|
140
143
|
}
|
|
141
|
-
}
|
|
142
144
|
|
|
143
|
-
/* fix per safari */
|
|
144
|
-
/* https://8yd.no/article/date-input-height-in-safari */
|
|
145
|
-
input::-webkit-datetime-edit {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}
|
|
150
|
-
input::-webkit-calendar-picker-trigger-icon { /* solo in chromium, non in safari */
|
|
151
|
-
|
|
152
|
-
}
|
|
145
|
+
/* fix per safari */
|
|
146
|
+
/* https://8yd.no/article/date-input-height-in-safari */
|
|
147
|
+
input::-webkit-datetime-edit {
|
|
148
|
+
padding: 0;
|
|
149
|
+
margin-block-end: -2px;
|
|
150
|
+
line-height: 1;
|
|
151
|
+
}
|
|
152
|
+
input::-webkit-calendar-picker-trigger-icon { /* solo in chromium, non in safari */
|
|
153
|
+
margin: 2px 0;
|
|
154
|
+
}
|
|
153
155
|
|
|
154
156
|
|
|
155
|
-
textarea.form-control {
|
|
156
|
-
|
|
157
|
-
|
|
157
|
+
textarea.form-control {
|
|
158
|
+
flex: 1;
|
|
159
|
+
min-height: calc(3.5lh + var(--form-control-padding-block) * 2);
|
|
158
160
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
+
&.autosize {
|
|
162
|
+
field-sizing: content;
|
|
163
|
+
}
|
|
161
164
|
}
|
|
162
|
-
}
|
|
163
|
-
|
|
164
165
|
|
|
166
|
+
}
|
|
@@ -1,55 +1,59 @@
|
|
|
1
|
+
@layer base {
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
/* da bs5 */
|
|
5
|
+
.input-group {
|
|
6
|
+
position: relative;
|
|
7
|
+
display: flex;
|
|
8
|
+
gap: 0;
|
|
9
|
+
align-items: stretch;
|
|
10
|
+
justify-content: center;
|
|
11
|
+
width: 100%;
|
|
12
|
+
|
|
13
|
+
> .form-control {
|
|
14
|
+
z-index: 2;
|
|
15
|
+
flex: 1;
|
|
16
|
+
border-inline-end: none;
|
|
17
|
+
border-top-right-radius: 0;
|
|
18
|
+
border-bottom-right-radius: 0;
|
|
19
|
+
}
|
|
1
20
|
|
|
2
|
-
/* da bs5 */
|
|
3
|
-
.input-group {
|
|
4
|
-
position: relative;
|
|
5
|
-
display: flex;
|
|
6
|
-
gap: 0;
|
|
7
|
-
align-items: stretch;
|
|
8
|
-
justify-content: center;
|
|
9
|
-
width: 100%;
|
|
10
|
-
|
|
11
|
-
> .form-control {
|
|
12
|
-
z-index: 2;
|
|
13
|
-
flex: 1;
|
|
14
|
-
border-inline-end: none;
|
|
15
|
-
border-top-right-radius: 0;
|
|
16
|
-
border-bottom-right-radius: 0;
|
|
17
|
-
}
|
|
18
21
|
|
|
22
|
+
> .input-group-text {
|
|
23
|
+
padding: var(--form-control-padding-block) var(--form-control-padding-inline);
|
|
24
|
+
font-size: var(--btn-font-size);
|
|
25
|
+
background-color: var(--form-input-group-background-color);
|
|
26
|
+
border: 1px solid var(--form-control-border-color);
|
|
27
|
+
border-radius: var(--form-control-border-radius);
|
|
28
|
+
}
|
|
19
29
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
30
|
+
> .btn, > .input-group-text {
|
|
31
|
+
z-index: 1;
|
|
32
|
+
line-height: 1;
|
|
33
|
+
border-top-left-radius: 0;
|
|
34
|
+
border-bottom-left-radius: 0;
|
|
35
|
+
}
|
|
27
36
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
border-bottom-left-radius: 0;
|
|
33
|
-
}
|
|
37
|
+
> * {
|
|
38
|
+
&:focus {
|
|
39
|
+
outline: none;
|
|
40
|
+
}
|
|
34
41
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
42
|
+
&:focus-visible, &:focus-within {
|
|
43
|
+
z-index: 5;
|
|
44
|
+
}
|
|
38
45
|
}
|
|
39
46
|
|
|
40
|
-
&:
|
|
41
|
-
|
|
47
|
+
&:has([disabled]) {
|
|
48
|
+
> .btn, .input-group-text {
|
|
49
|
+
font-style: italic;
|
|
50
|
+
color: var(--text-muted);
|
|
51
|
+
background-color: var(--form-control-disabled-background-color);
|
|
52
|
+
/* opacity: .6; */
|
|
53
|
+
}
|
|
42
54
|
}
|
|
43
|
-
}
|
|
44
55
|
|
|
45
|
-
&:has([disabled]) {
|
|
46
|
-
> .btn, .input-group-text {
|
|
47
|
-
font-style: italic;
|
|
48
|
-
color: var(--text-muted);
|
|
49
|
-
background-color: var(--form-control-disabled-background-color);
|
|
50
|
-
/* opacity: .6; */
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
56
|
|
|
57
|
+
}
|
|
54
58
|
|
|
55
59
|
}
|
package/src/css/forms/switch.css
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
@layer base {
|
|
2
|
+
|
|
3
|
+
/* TODO completare, aggiungere focus, vedere soluzione bootstrap
|
|
2
4
|
|
|
3
5
|
|
|
4
6
|
.form-switch {
|
|
@@ -43,7 +45,7 @@
|
|
|
43
45
|
|
|
44
46
|
*/
|
|
45
47
|
|
|
46
|
-
/*
|
|
48
|
+
/*
|
|
47
49
|
<div class="switch">
|
|
48
50
|
<input type="checkbox">
|
|
49
51
|
<span class="switch-track"></span>
|
|
@@ -51,55 +53,57 @@
|
|
|
51
53
|
</div>
|
|
52
54
|
*/
|
|
53
55
|
|
|
54
|
-
.switch {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
56
|
+
.switch {
|
|
57
|
+
display: inline-flex;
|
|
58
|
+
align-items: center;
|
|
59
|
+
cursor: pointer;
|
|
60
|
+
}
|
|
59
61
|
|
|
60
|
-
.switch input {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
62
|
+
.switch input {
|
|
63
|
+
position: absolute;
|
|
64
|
+
width: 0;
|
|
65
|
+
height: 0;
|
|
66
|
+
opacity: 0;
|
|
67
|
+
}
|
|
66
68
|
|
|
67
|
-
.switch-track {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
69
|
+
.switch-track {
|
|
70
|
+
position: relative;
|
|
71
|
+
width: 2.5em;
|
|
72
|
+
height: 1.5em;
|
|
73
|
+
background-color: var(--switch-background-color);
|
|
74
|
+
border-radius: 1.5em;
|
|
75
|
+
transition: background-color .2s;
|
|
76
|
+
}
|
|
75
77
|
|
|
76
|
-
.switch label {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}
|
|
78
|
+
.switch label {
|
|
79
|
+
margin-left: .5em;
|
|
80
|
+
user-select: none;
|
|
81
|
+
}
|
|
80
82
|
|
|
81
|
-
.switch-track::after {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}
|
|
83
|
+
.switch-track::after {
|
|
84
|
+
position: absolute;
|
|
85
|
+
top: 2px;
|
|
86
|
+
left: 2px;
|
|
87
|
+
width: 2em;
|
|
88
|
+
height: 2em;
|
|
89
|
+
content: '';
|
|
90
|
+
background: var(--switch-cursor-background-color);
|
|
91
|
+
border-radius: 50%;
|
|
92
|
+
transition: translate .2s;
|
|
93
|
+
}
|
|
92
94
|
|
|
93
|
-
.switch input:checked + .switch-track {
|
|
94
|
-
|
|
95
|
-
}
|
|
95
|
+
.switch input:checked + .switch-track {
|
|
96
|
+
background-color: var(--switch-checked-background-color);
|
|
97
|
+
}
|
|
96
98
|
|
|
97
|
-
.switch input:checked + .switch-track::after {
|
|
98
|
-
|
|
99
|
-
}
|
|
99
|
+
.switch input:checked + .switch-track::after {
|
|
100
|
+
translate: 20px 0;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/* accessibilità */
|
|
104
|
+
.switch input:focus-visible + .switch-track {
|
|
105
|
+
outline: 2px solid var(--switch-checked-background-color);
|
|
106
|
+
outline-offset: 2px;
|
|
107
|
+
}
|
|
100
108
|
|
|
101
|
-
/* accessibilità */
|
|
102
|
-
.switch input:focus-visible + .switch-track {
|
|
103
|
-
outline: 2px solid var(--switch-checked-background-color);
|
|
104
|
-
outline-offset: 2px;
|
|
105
109
|
}
|