@massimo-cassandro/minimo 1.20.15 → 1.21.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.
Files changed (56) hide show
  1. package/design-tokens/_src/link.minimo.tokens.mjs +35 -4
  2. package/package.json +1 -1
  3. package/src/components/autocomplete/autocomplete.css +113 -109
  4. package/src/components/inner-nav/inner-nav.css +13 -9
  5. package/src/components/modal-alert/modal-alert.js +13 -13
  6. package/src/components/modal-alert/modal-alert.module.css +157 -153
  7. package/src/components/modal-popup/modal-popup.module.css +89 -85
  8. package/src/components/overlay/overlay.css +14 -10
  9. package/src/components/sf-macro/sf-macro.css +60 -56
  10. package/src/components/slide-up-down-toggle/slide-up-down-toggle.module.css +33 -29
  11. package/src/components/snackbar/snackbar.module.css +93 -89
  12. package/src/components/spinner/spinner-circle-basic.css +18 -14
  13. package/src/components/spinner/spinner.module.css +8 -4
  14. package/src/components/unsplash-page/unsplash-page.module.css +260 -256
  15. package/src/css/alerts.css +55 -53
  16. package/src/css/badge.css +16 -12
  17. package/src/css/buttons/btn-close.css +57 -53
  18. package/src/css/buttons/buttons-primary.css +38 -34
  19. package/src/css/buttons/buttons-secondary.css +38 -34
  20. package/src/css/buttons/buttons.css +84 -80
  21. package/src/css/buttons/status-buttons.css +66 -63
  22. package/src/css/container.css +9 -5
  23. package/src/css/data-formats.css +28 -24
  24. package/src/css/details.css +17 -13
  25. package/src/css/dimensions.css +13 -9
  26. package/src/css/display.css +27 -23
  27. package/src/css/flex.css +39 -35
  28. package/src/css/forms/fieldset.css +47 -43
  29. package/src/css/forms/form-collections.css +16 -12
  30. package/src/css/forms/form-disabled-readonly.css +31 -27
  31. package/src/css/forms/form-group.css +15 -11
  32. package/src/css/forms/form-utilities.css +32 -28
  33. package/src/css/forms/forms.css +136 -134
  34. package/src/css/forms/input-group.css +47 -43
  35. package/src/css/forms/switch.css +50 -46
  36. package/src/css/forms/validation.css +26 -22
  37. package/src/css/grid.css +66 -62
  38. package/src/css/headings.css +32 -28
  39. package/src/css/icons.css +41 -37
  40. package/src/css/layout-base.css +16 -12
  41. package/src/css/links.css +49 -0
  42. package/src/css/margin-padding-bootstrap-media.css +1836 -1832
  43. package/src/css/margin-padding-bootstrap.css +445 -441
  44. package/src/css/margin-padding-media.css +1836 -1832
  45. package/src/css/margin-padding.css +445 -441
  46. package/src/css/overflow.css +7 -3
  47. package/src/css/position.css +5 -1
  48. package/src/css/reset.css +47 -44
  49. package/src/css/svg.css +6 -2
  50. package/src/css/table.css +59 -55
  51. package/src/css/text.css +96 -92
  52. package/src/css/visibility.css +23 -19
  53. package/src/custom-properties.css +9 -3
  54. package/src/minimo.css +3 -1
  55. package/src/web-components/s-datatable-component/s-datatable-component.module.css +175 -171
  56. package/src/css/anchors.css +0 -45
@@ -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
- /* &:has(textarea) {
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
- .grid & {
16
- padding-block-end: 0;
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
- display: flex;
19
- flex-flow: row wrap;
20
- gap: var(--size-base);
21
- align-content: center;
22
- align-items: center;
23
- justify-content: space-between;
24
- margin-block: var(--form-end-margin-block-start) var(--form-end-margin-block-end);
25
- }
26
-
27
- .form-user-info {
28
- display: flex;
29
- flex-flow: row wrap;
30
- gap: var(--size-xs);
31
- align-items: center;
32
- justify-content: flex-end;
33
- font-size: var(--form-user-info-font-size);
34
- color: var(--form-user-info-color);
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
  }
@@ -1,164 +1,166 @@
1
- /* TODO separare? */
2
- /* TODO serie di gruppi radio o checkbox */
3
- /* TODO multiselect */
4
- /* TODO classe grid specifica per i form ?? (.form-grid?) */
5
- /* TODO customizable select */
6
- /* TODO form-check: rifare come flex, separare? */
7
- /* TODO abbreviare prefisso */
8
-
9
- .form-group:has([required]):not(:has([disabled])) {
10
-
11
- /* `>` excludes labels within form-collections */
12
- > .form-label {
13
- position: relative;
14
- padding-inline-start: var(--form-control-required-label-padding-inline-start);
15
- &::before {
16
- position: absolute;
17
- top: var(--form-control-required-flag-top);
18
- left: var(--form-control-required-flag-left);
19
- display: inline-block;
20
- font-size: var(--form-control-required-flag-font-size);
21
- color: var(--form-control-required-flag-color);
22
- content: var(--form-control-required-flag-content);
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
- align-self: center;
30
- .form-check {
31
- margin-block-start: 0;
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
- display: block;
37
- font-size: var(--form-label-font-size);
38
- font-weight: var(--form-label-font-weight);
39
- color: var(--form-label-color);
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
- display: block;
45
- width: 100%;
46
- padding: var(--form-control-padding-block) var(--form-control-padding-inline);
47
- font-family: var(--font-family);
48
- font-size: var(--form-control-font-size);
49
- font-weight: var(--font-weight-regular);
50
- line-height: var(--form-control-line-height);
51
- color: var(--form-control-text-color);
52
- background-color: var(--form-control-background-color);
53
- border: var(--form-control-border-width) var(--form-control-border-style) var(--form-control-border-color);
54
- border-radius: var(--form-control-border-radius);
55
-
56
- &:focus {
57
- outline: none;
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
- &:focus-visible {
61
- outline: var(--form-control-focus-outline-width) solid var(--form-control-focus-color);
62
- outline-offset: var(--form-control-focus-outline-offset);
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
- &::placeholder {
67
- font-size: var(--form-control-placeholder-font-size, var(--form-control-font-size));
68
- font-style: var(--form-control-placeholder-font-style, italic);
69
- color: var(--form-control-placeholder-color);
70
- opacity: var(--form-control-placeholder-opacity, .8);
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
- &.form-control-sm {
74
- padding: var(--form-control-sm-padding-block) var(--form-control-sm-padding-inline);
75
- font-size: var(--form-control-sm-font-size);
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
- overflow: hidden;
81
- text-overflow: ellipsis;
82
- color: var(--form-control-static-color);
83
- white-space: nowrap;
84
- cursor: not-allowed;
85
- background-color: var(--form-control-static-background-color);
86
-
87
- &.no-border {
88
- padding: calc(var(--form-control-padding-block) + var(--form-control-border-width)) 0;
89
- border: none;
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
- --_trigger-icon-padding-right: calc(var(--form-control-padding-inline) * 2);
97
- --_bg-img-inline-size: 16px;
98
+ --_trigger-icon-padding-right: calc(var(--form-control-padding-inline) * 2);
99
+ --_bg-img-inline-size: 16px;
98
100
 
99
- padding: var(--form-control-padding-block) var(--_trigger-icon-padding-right) var(--form-control-padding-block) var(--form-control-padding-inline);
100
- appearance: none;
101
- background-image: var(--form-control-select-trigger-icon);
102
- background-repeat: no-repeat;
103
- background-position: right calc(var(--_trigger-icon-padding-right) - var(--_bg-img-inline-size) - 2px) center;
104
- background-size: var(--_bg-img-inline-size) 12px;
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
- &[multiple],
107
- &[size]:not([size='1']) {
108
- padding-right: var(--form-control-padding-inline);
109
- background-image: none;
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
- &:-moz-focusring {
113
- color: transparent;
114
- text-shadow: 0 0 0 var(--form-control-text-color);
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
- input[type='checkbox'] {
119
- color: var(--form-control-text-color);
120
- accent-color: var(--accent);
121
- transform-origin: center;
122
- scale: 1.3;
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
- /* da bs5 */
126
- /* versione con label a destra */
127
- /* TODO rivedere. sostituire float con flex? */
128
- /* TODO eliminare necessità di stare dentro un `.form-group` */
129
- /* TODO aggiungere esempi di uso */
130
- .form-check {
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
- padding: 0;
147
- margin-block-end: -2px;
148
- line-height: 1;
149
- }
150
- input::-webkit-calendar-picker-trigger-icon { /* solo in chromium, non in safari */
151
- margin: 2px 0;
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
- flex: 1;
157
- min-height: calc(3.5lh + var(--form-control-padding-block) * 2);
157
+ textarea.form-control {
158
+ flex: 1;
159
+ min-height: calc(3.5lh + var(--form-control-padding-block) * 2);
158
160
 
159
- &.autosize {
160
- field-sizing: content;
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
- > .input-group-text {
21
- padding: var(--form-control-padding-block) var(--form-control-padding-inline);
22
- font-size: var(--btn-font-size);
23
- background-color: var(--form-input-group-background-color);
24
- border: 1px solid var(--form-control-border-color);
25
- border-radius: var(--form-control-border-radius);
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
- > .btn, > .input-group-text {
29
- z-index: 1;
30
- line-height: 1;
31
- border-top-left-radius: 0;
32
- border-bottom-left-radius: 0;
33
- }
37
+ > * {
38
+ &:focus {
39
+ outline: none;
40
+ }
34
41
 
35
- > * {
36
- &:focus {
37
- outline: none;
42
+ &:focus-visible, &:focus-within {
43
+ z-index: 5;
44
+ }
38
45
  }
39
46
 
40
- &:focus-visible, &:focus-within {
41
- z-index: 5;
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
  }
@@ -1,4 +1,6 @@
1
- /* TODO completare, aggiungere focus, vedere soluzione bootstrap
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
- display: inline-flex;
56
- align-items: center;
57
- cursor: pointer;
58
- }
56
+ .switch {
57
+ display: inline-flex;
58
+ align-items: center;
59
+ cursor: pointer;
60
+ }
59
61
 
60
- .switch input {
61
- position: absolute;
62
- opacity: 0;
63
- width: 0;
64
- height: 0;
65
- }
62
+ .switch input {
63
+ position: absolute;
64
+ width: 0;
65
+ height: 0;
66
+ opacity: 0;
67
+ }
66
68
 
67
- .switch-track {
68
- position: relative;
69
- width: 2.5em;
70
- height: 1.5em;
71
- background-color: var(--switch-background-color);
72
- border-radius: 1.5em;
73
- transition: background-color 0.2s;
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
- margin-left: .5em;
78
- user-select: none;
79
- }
78
+ .switch label {
79
+ margin-left: .5em;
80
+ user-select: none;
81
+ }
80
82
 
81
- .switch-track::after {
82
- content: '';
83
- position: absolute;
84
- top: 2px;
85
- left: 2px;
86
- width: 2em;
87
- height: 2em;
88
- background: var(--switch-cursor-background-color);
89
- border-radius: 50%;
90
- transition: translate 0.2s;
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
- background-color: var(--switch-checked-background-color);
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
- translate: 20px 0;
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
  }