bootstrap-italia 2.17.3 → 3.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.
Files changed (155) hide show
  1. package/README.EN.md +1 -1
  2. package/README.md +1 -1
  3. package/dist/css/bootstrap-italia.min.css +1 -9
  4. package/dist/css/bootstrap-italia.min.css.map +1 -1
  5. package/dist/fonts/Titillium_Sans_Pro/OFL.txt +92 -0
  6. package/dist/fonts/Titillium_Sans_Pro/TitilliumSansPro-Bold.woff +0 -0
  7. package/dist/fonts/Titillium_Sans_Pro/TitilliumSansPro-Bold.woff2 +0 -0
  8. package/dist/fonts/Titillium_Sans_Pro/TitilliumSansPro-BoldItalic.woff +0 -0
  9. package/dist/fonts/Titillium_Sans_Pro/TitilliumSansPro-BoldItalic.woff2 +0 -0
  10. package/dist/fonts/Titillium_Sans_Pro/TitilliumSansPro-Italic.woff +0 -0
  11. package/dist/fonts/Titillium_Sans_Pro/TitilliumSansPro-Italic.woff2 +0 -0
  12. package/dist/fonts/Titillium_Sans_Pro/TitilliumSansPro-Light.woff +0 -0
  13. package/dist/fonts/Titillium_Sans_Pro/TitilliumSansPro-Light.woff2 +0 -0
  14. package/dist/fonts/Titillium_Sans_Pro/TitilliumSansPro-LightItalic.woff +0 -0
  15. package/dist/fonts/Titillium_Sans_Pro/TitilliumSansPro-LightItalic.woff2 +0 -0
  16. package/dist/fonts/Titillium_Sans_Pro/TitilliumSansPro-Regular.woff +0 -0
  17. package/dist/fonts/Titillium_Sans_Pro/TitilliumSansPro-Regular.woff2 +0 -0
  18. package/dist/fonts/Titillium_Sans_Pro/TitilliumSansPro-Semibold.woff +0 -0
  19. package/dist/fonts/Titillium_Sans_Pro/TitilliumSansPro-Semibold.woff2 +0 -0
  20. package/dist/fonts/Titillium_Sans_Pro/TitilliumSansPro-SemiboldItalic.woff +0 -0
  21. package/dist/fonts/Titillium_Sans_Pro/TitilliumSansPro-SemiboldItalic.woff2 +0 -0
  22. package/dist/js/bootstrap-italia.bundle.min.js +10 -10
  23. package/dist/js/bootstrap-italia.min.js +4 -4
  24. package/dist/plugins/dropdown.js +1 -1
  25. package/dist/plugins/dropdown.js.map +1 -1
  26. package/dist/plugins/fonts-loader.js +340 -111
  27. package/dist/plugins/fonts-loader.js.map +1 -1
  28. package/dist/version.js +1 -1
  29. package/dist/version.js.map +1 -1
  30. package/package.json +3 -3
  31. package/src/fonts/Titillium_Sans_Pro/OFL.txt +92 -0
  32. package/src/fonts/Titillium_Sans_Pro/TitilliumSansPro-Bold.woff +0 -0
  33. package/src/fonts/Titillium_Sans_Pro/TitilliumSansPro-Bold.woff2 +0 -0
  34. package/src/fonts/Titillium_Sans_Pro/TitilliumSansPro-BoldItalic.woff +0 -0
  35. package/src/fonts/Titillium_Sans_Pro/TitilliumSansPro-BoldItalic.woff2 +0 -0
  36. package/src/fonts/Titillium_Sans_Pro/TitilliumSansPro-Italic.woff +0 -0
  37. package/src/fonts/Titillium_Sans_Pro/TitilliumSansPro-Italic.woff2 +0 -0
  38. package/src/fonts/Titillium_Sans_Pro/TitilliumSansPro-Light.woff +0 -0
  39. package/src/fonts/Titillium_Sans_Pro/TitilliumSansPro-Light.woff2 +0 -0
  40. package/src/fonts/Titillium_Sans_Pro/TitilliumSansPro-LightItalic.woff +0 -0
  41. package/src/fonts/Titillium_Sans_Pro/TitilliumSansPro-LightItalic.woff2 +0 -0
  42. package/src/fonts/Titillium_Sans_Pro/TitilliumSansPro-Regular.woff +0 -0
  43. package/src/fonts/Titillium_Sans_Pro/TitilliumSansPro-Regular.woff2 +0 -0
  44. package/src/fonts/Titillium_Sans_Pro/TitilliumSansPro-Semibold.woff +0 -0
  45. package/src/fonts/Titillium_Sans_Pro/TitilliumSansPro-Semibold.woff2 +0 -0
  46. package/src/fonts/Titillium_Sans_Pro/TitilliumSansPro-SemiboldItalic.woff +0 -0
  47. package/src/fonts/Titillium_Sans_Pro/TitilliumSansPro-SemiboldItalic.woff2 +0 -0
  48. package/src/js/plugins/dropdown.js +1 -1
  49. package/src/js/plugins/fonts-loader.js +340 -111
  50. package/src/js/version.js +1 -1
  51. package/src/scss/base/_maps.scss +11 -0
  52. package/src/scss/base/_mixins.scss +2 -1
  53. package/src/scss/base/_reboot.scss +15 -147
  54. package/src/scss/base/_root.scss +272 -45
  55. package/src/scss/base/_utilities.scss +3 -3
  56. package/src/scss/base/_variables.scss +44 -55
  57. package/src/scss/base/_version.scss +1 -1
  58. package/src/scss/base/mixins/_banner.scss +7 -9
  59. package/src/scss/base/mixins/_focus.scss +14 -0
  60. package/src/scss/bootstrap-italia.scss +29 -32
  61. package/src/scss/components/_accept-overlay.scss +74 -50
  62. package/src/scss/components/_accordion.scss +120 -97
  63. package/src/scss/components/_affix.scss +14 -0
  64. package/src/scss/components/_alert.scss +60 -45
  65. package/src/scss/components/_anchor.scss +14 -0
  66. package/src/scss/components/_avatar.scss +236 -369
  67. package/src/scss/components/_back-to-top.scss +70 -54
  68. package/src/scss/components/_badge.scss +69 -36
  69. package/src/scss/components/_bottomnav.scss +14 -0
  70. package/src/scss/components/_breadcrumb.scss +78 -71
  71. package/src/scss/components/_button-group.scss +21 -7
  72. package/src/scss/components/_buttons.scss +289 -318
  73. package/src/scss/components/_calendar.scss +22 -8
  74. package/src/scss/components/_callout.scss +133 -125
  75. package/src/scss/components/_card-old.scss +14 -0
  76. package/src/scss/components/_card.scss +476 -518
  77. package/src/scss/components/_carousel.scss +14 -0
  78. package/src/scss/components/_chips.scss +150 -209
  79. package/src/scss/components/_code.scss +31 -6
  80. package/src/scss/components/_cookiebar.scss +14 -0
  81. package/src/scss/components/_dimmer.scss +14 -0
  82. package/src/scss/components/_dropdown.scss +144 -179
  83. package/src/scss/components/_figcaption.scss +14 -0
  84. package/src/scss/components/_font.scss +14 -0
  85. package/src/scss/components/_footer.scss +99 -75
  86. package/src/scss/components/_forward.scss +14 -0
  87. package/src/scss/components/_grid.scss +31 -22
  88. package/src/scss/components/_gridlist.scss +41 -19
  89. package/src/scss/components/_header.scss +150 -142
  90. package/src/scss/components/_headercenter.scss +129 -193
  91. package/src/scss/components/_headercentertheme.scss +14 -0
  92. package/src/scss/components/_headernavbar.scss +22 -14
  93. package/src/scss/components/_headernavbartheme.scss +16 -2
  94. package/src/scss/components/_headerslim.scss +133 -137
  95. package/src/scss/components/_headerslimtheme.scss +14 -0
  96. package/src/scss/components/_hero.scss +93 -202
  97. package/src/scss/components/_images.scss +14 -0
  98. package/src/scss/components/_imgresponsive.scss +14 -0
  99. package/src/scss/components/_linklist.scss +241 -262
  100. package/src/scss/components/_list-group.scss +26 -14
  101. package/src/scss/components/_list.scss +66 -123
  102. package/src/scss/components/_map.scss +14 -0
  103. package/src/scss/components/_masonry-loader.scss +14 -0
  104. package/src/scss/components/_megamenu.scss +191 -256
  105. package/src/scss/components/_modal.scss +115 -204
  106. package/src/scss/components/_nav.scss +43 -41
  107. package/src/scss/components/_navbar.scss +408 -91
  108. package/src/scss/components/_navigation.scss +56 -459
  109. package/src/scss/components/_navigationtheme.scss +109 -171
  110. package/src/scss/components/_navscroll.scss +210 -208
  111. package/src/scss/components/_navscrolltheme.scss +14 -0
  112. package/src/scss/components/_notifications.scss +14 -0
  113. package/src/scss/components/_offcanvas.scss +14 -0
  114. package/src/scss/components/_overlay-panel.scss +14 -0
  115. package/src/scss/components/_page-scroll.scss +14 -0
  116. package/src/scss/components/_pagination.scss +135 -80
  117. package/src/scss/components/_placeholders.scss +14 -0
  118. package/src/scss/components/_point-list.scss +15 -0
  119. package/src/scss/components/_popover.scss +29 -19
  120. package/src/scss/components/_print.scss +14 -0
  121. package/src/scss/components/_progress-bars.scss +14 -0
  122. package/src/scss/components/_progress-donuts.scss +14 -0
  123. package/src/scss/components/_progress-spinners.scss +14 -0
  124. package/src/scss/components/_rating-list.scss +14 -0
  125. package/src/scss/components/_rating.scss +76 -45
  126. package/src/scss/components/_sections.scss +51 -30
  127. package/src/scss/components/_sidebar.scss +119 -121
  128. package/src/scss/components/_sidebarthemes.scss +14 -0
  129. package/src/scss/components/_skiplinks.scss +14 -0
  130. package/src/scss/components/_steppers.scss +14 -0
  131. package/src/scss/components/_sticky.scss +14 -0
  132. package/src/scss/components/_tab.scss +14 -0
  133. package/src/scss/components/_tables.scss +14 -0
  134. package/src/scss/components/_thumbnav.scss +14 -0
  135. package/src/scss/components/_timeline.scss +14 -0
  136. package/src/scss/components/_toasts.scss +14 -0
  137. package/src/scss/components/_toolbar.scss +14 -0
  138. package/src/scss/components/_tooltip.scss +23 -9
  139. package/src/scss/components/_type.scss +176 -176
  140. package/src/scss/components/_videoplayer.scss +25 -5
  141. package/src/scss/forms/_accessible-autocomplete.scss +25 -27
  142. package/src/scss/forms/_autocomplete.scss +99 -144
  143. package/src/scss/forms/_form-control.scss +47 -116
  144. package/src/scss/forms/_form-input-file.scss +7 -6
  145. package/src/scss/forms/_form-input-number.scss +38 -22
  146. package/src/scss/forms/_form-input-upload.scss +149 -147
  147. package/src/scss/forms/_form-password.scss +14 -11
  148. package/src/scss/forms/_form-select.scss +3 -92
  149. package/src/scss/forms/_forms.scss +304 -247
  150. package/src/scss/forms/_input-group.scss +23 -36
  151. package/src/scss/forms/_just-validate.scss +11 -12
  152. package/src/scss/utilities/focus.scss +3 -12
  153. package/src/scss/utilities/icons.scss +59 -13
  154. package/src/scss/components/_pager.scss +0 -166
  155. package/src/scss/forms/_form-text.scss +0 -11
@@ -1,109 +1,186 @@
1
- label {
2
- color: $input-label-color;
1
+ // Form properties are :root scoped to allow for easy customization of form elements.
2
+ :root {
3
+ --#{$prefix}form-control-height: 2.5rem;
4
+ --#{$prefix}form-control-spacing: var(--#{$prefix}spacing-xxs);
5
+ --#{$prefix}form-control-background-color: var(--#{$prefix}color-background-inverse);
6
+ --#{$prefix}form-control-border-color: var(--#{$prefix}color-border-secondary);
7
+ --#{$prefix}form-control-border-radius: var(--#{$prefix}radius-smooth);
8
+ --#{$prefix}form-control-placeholder-color: var(--#{$prefix}color-text-muted);
9
+ --#{$prefix}form-control-label-color: var(--#{$prefix}color-text-base);
10
+ --#{$prefix}form-control-text-color: var(--#{$prefix}color-text-secondary);
11
+ --#{$prefix}form-control-font-size: var(--#{$prefix}body-font-size);
12
+ --#{$prefix}form-group-spacing-y: var(--#{$prefix}spacing-m);
13
+ --#{$prefix}form-checkbox-border-color: var(--#{$prefix}color-border-secondary);
14
+ --#{$prefix}form-checkbox-border-radius: var(--#{$prefix}radius-smooth);
15
+ --#{$prefix}form-checked-color: var(--#{$prefix}color-background-primary);
3
16
  }
4
- fieldset {
5
- legend {
6
- background-color: transparent;
7
- font-weight: 700;
8
- line-height: calc(#{$input-height} - 1px);
9
- transition: 0.2s ease-out;
10
- cursor: text;
11
- display: block;
12
- max-width: 100%;
13
- width: auto;
14
- padding: 0 $input-spacing-x;
15
- z-index: 1;
16
- font-size: $small-font-size;
17
- color: $input-label-color;
18
- margin-bottom: 0;
19
- float: none;
17
+
18
+ input[readonly],
19
+ textarea[readonly],
20
+ select[readonly] {
21
+ --#{$prefix}form-control-border-color: var(--#{$prefix}color-border-subtle);
22
+ --#{$prefix}form-control-background-color: var(--#{$prefix}color-background-muted);
23
+ cursor: not-allowed;
24
+ }
25
+
26
+ input,
27
+ textarea,
28
+ select {
29
+ display: block;
30
+ width: 100%;
31
+ padding: var(--#{$prefix}form-control-spacing);
32
+ border: 1px solid var(--#{$prefix}form-control-border-color);
33
+ // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.
34
+ border-radius: var(--#{$prefix}form-control-border-radius);
35
+ background-color: var(--#{$prefix}form-control-background-color);
36
+ color: var(--#{$prefix}form-control-text-color);
37
+ font-size: var(--#{$prefix}form-control-font-size);
38
+
39
+ &.disabled,
40
+ &:disabled {
41
+ border-color: var(--#{$prefix}color-border-disabled);
42
+ // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.
43
+ opacity: 1;
44
+ background-color: var(--#{$prefix}color-background-disabled);
45
+ color: var(--#{$prefix}color-text-disabled);
20
46
  }
21
47
  }
22
- .form-text {
23
- color: $color-text-secondary;
48
+ /* stylelint-disable-next-line no-duplicate-selectors */
49
+ input,
50
+ textarea {
51
+ &:focus {
52
+ outline: 3px solid transparent;
53
+ outline-offset: 3px;
54
+ box-shadow:
55
+ 0 0 0 2px var(--#{$prefix}color-border-inverse),
56
+ 0 0 0 5px var(--#{$prefix}color-outline-focus) !important;
57
+ }
24
58
  }
25
- .form-group {
26
- position: relative;
27
- margin-bottom: $form-group-margin-bottom;
28
- margin-top: $form-group-margin-top;
29
59
 
30
- input,
31
- optgroup,
32
- textarea {
33
- color: $color-text-base;
60
+ input {
61
+ // File input buttons theming //TODO: CHECK
62
+ &::file-selector-button {
63
+ margin: (-$input-padding-y) (-$input-padding-x);
64
+ padding: $input-padding-y $input-padding-x;
65
+ border-width: 0;
66
+ border-style: solid;
67
+ border-radius: 0; // stylelint-disable-line property-disallowed-list
68
+ border-color: inherit;
69
+ color: $form-file-button-color;
70
+ pointer-events: none;
71
+ margin-inline-end: $input-padding-x;
72
+ border-inline-end-width: $input-border-width;
73
+ @include gradient-bg($form-file-button-bg);
74
+ @include transition($btn-transition);
34
75
  }
35
76
 
36
- label {
37
- background-color: transparent;
38
- position: absolute;
39
- line-height: calc(#{$input-height} - 1px);
40
- transition: 0.2s ease-out;
41
- top: 0;
42
- font-size: 1rem;
43
- cursor: text;
44
- color: $input-color-placeholder;
45
- display: block;
46
- max-width: 100%;
47
- width: auto;
48
- padding: 0 $input-spacing-x;
49
- z-index: 2;
50
- &.active {
51
- transform: translateY(-85%);
52
- font-weight: 600;
53
- font-size: $small-font-size;
54
- color: $input-label-color;
77
+ //TODO: CHECK
78
+ &:hover:not(:disabled):not([readonly])::file-selector-button {
79
+ background-color: $form-file-button-hover-bg;
80
+ }
81
+
82
+ &[type='file'] {
83
+ overflow: hidden; // prevent pseudo element button overlap
84
+
85
+ &:not(:disabled):not([readonly]) {
86
+ cursor: pointer;
55
87
  }
56
- &.input-symbol-label {
57
- &:not(.active) {
58
- left: 2.25rem;
59
- }
88
+ }
89
+
90
+ // Add some height to date inputs on iOS
91
+ // https://github.com/twbs/bootstrap/issues/23307
92
+ &::-webkit-date-and-time-value {
93
+ // Multiply line-height by 1em if it has no unit
94
+ height: if(unit($input-line-height) == '', $input-line-height * 1em, $input-line-height);
95
+ }
96
+ }
97
+
98
+ select {
99
+ // padding: $form-select-padding-y $form-select-indicator-padding $form-select-padding-y $form-select-padding-x;
100
+ // -moz-padding-start: subtract($form-select-padding-x, 3px); // See https://github.com/twbs/bootstrap/issues/32636
101
+ // font-family: $form-select-font-family;
102
+ // @include font-size($form-select-font-size);
103
+ // font-weight: $form-select-font-weight;
104
+ // line-height: $form-select-line-height;
105
+ // color: $form-select-color;
106
+ // background-color: $form-select-bg;
107
+ background-image: escape-svg($form-select-indicator);
108
+ background-repeat: no-repeat;
109
+ background-position: right var(--#{$prefix}form-control-spacing) center;
110
+ background-size: 16px 12px;
111
+ // border: $form-select-border-width solid $form-select-border-color;
112
+ // @include border-radius($form-select-border-radius, 0);
113
+ // @include box-shadow($form-select-box-shadow);
114
+ // @include transition($form-select-transition);
115
+ appearance: none;
116
+
117
+ &:focus {
118
+ border-color: $form-select-focus-border-color;
119
+ outline: 0;
120
+
121
+ @if $enable-shadows {
122
+ @include box-shadow($form-select-box-shadow, $form-select-focus-box-shadow);
123
+ } @else {
124
+ // Avoid using mixin so we can pass custom focus shadow properly
125
+ box-shadow: $form-select-focus-box-shadow;
60
126
  }
61
127
  }
62
128
 
63
- input:is([type='radio']),
64
- input:is([type='checkbox']) {
65
- & + label.active {
66
- transform: translateY(0%);
129
+ &[multiple],
130
+ &[size]:not([size='1']) {
131
+ padding-right: $form-select-padding-x;
132
+ background-image: none;
133
+ }
134
+
135
+ &:disabled {
136
+ border-color: $form-select-disabled-border-color;
137
+ background-color: $form-select-disabled-bg;
138
+ color: $form-select-disabled-color;
139
+
140
+ &:hover {
141
+ cursor: not-allowed;
67
142
  }
68
143
  }
69
144
 
70
- small.form-text {
71
- margin: 0;
72
- padding: $input-spacing-x * 0.5 $input-spacing-x;
73
- font-size: $small-font-size;
145
+ // Remove outline from select box in FF
146
+ &:-moz-focusring {
147
+ color: transparent;
148
+ text-shadow: 0 0 0 $form-select-color;
74
149
  }
75
150
 
76
- input[type='time'] ~ label {
77
- transform: translateY(-75%);
78
- font-size: $small-font-size;
151
+ option {
152
+ font-weight: normal;
153
+ }
154
+ /* stylelint-disable-next-line no-duplicate-selectors */ /* TO DO check these styles */
155
+ &:disabled {
156
+ opacity: 1;
157
+ background-color: $input-disabled-bg;
79
158
  }
80
159
  }
81
160
 
82
- ::placeholder {
83
- color: $input-color-placeholder;
161
+ textarea {
162
+ height: auto;
163
+ font-size: var(--#{$prefix}body-font-size);
164
+ line-height: 1.5;
84
165
  }
85
166
 
86
- input[type='date'],
87
- input[type='datetime-local'],
88
- input[type='email'],
89
- input[type='number'],
90
- input[type='password'],
91
- input[type='search'],
92
- input[type='tel'],
93
- input[type='text'],
94
- input[type='time'],
95
- input[type='url'],
167
+ label {
168
+ display: inline-block;
169
+ width: auto;
170
+ max-width: 100%;
171
+ margin-bottom: var(--#{$prefix}spacing-xxs);
172
+ color: var(--#{$prefix}form-control-label-color);
173
+ font-size: var(--#{$prefix}label-font-size-s);
174
+ font-weight: var(--#{$prefix}font-weight-solid);
175
+ line-height: var(--#{$prefix}label-leading);
176
+ }
177
+ /* stylelint-disable-next-line no-duplicate-selectors */
178
+ input,
96
179
  textarea {
97
- border: none;
98
- border-bottom: 1px solid $input-border;
99
- padding: $input-spacing-y $input-spacing-x;
100
180
  outline: 0;
101
181
  box-shadow: none;
102
182
  transition: none;
103
- -webkit-appearance: none;
104
- &::placeholder {
105
- color: $input-color-placeholder;
106
- }
183
+ appearance: none;
107
184
  }
108
185
 
109
186
  input[type='date'],
@@ -112,74 +189,69 @@ input[type='time'] {
112
189
  display: flex;
113
190
  }
114
191
 
115
- textarea {
116
- border: 1px solid $input-border;
117
- height: auto;
118
- font-size: 1rem;
192
+ fieldset {
193
+ legend {
194
+ margin-bottom: var(--#{$prefix}spacing-s);
195
+ padding: 0 var(--#{$prefix}form-input-spacing-x);
196
+ background-color: transparent;
197
+ color: var(--#{$prefix}form-control-text-color);
198
+ font-size: var(--#{$prefix}label-sm);
199
+ font-weight: var(--#{$prefix}font-weight-solid);
200
+ }
119
201
  }
120
202
 
121
- .form-control {
122
- background-position: center right !important;
123
- background-repeat: no-repeat !important;
124
- background-size: 45px 45% !important;
125
- border-radius: 0 !important;
126
- min-height: 2.5rem;
127
- &.form-control-lg {
128
- border-radius: 0;
129
- }
130
- &:disabled,
131
- &[readonly] {
132
- cursor: not-allowed;
203
+ ::placeholder {
204
+ color: var(--#{$prefix}form-control-placeholder-color);
205
+ }
133
206
 
134
- & + label {
135
- background-color: transparent;
136
- cursor: not-allowed;
137
- }
138
- }
139
- &:active {
140
- box-shadow: none !important;
141
- }
142
- .was-validated &:valid,
143
- &.is-valid {
144
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2300cc85' viewBox='0 0 192 512'%3E%3Cpath d='M435.848 83.466L172.804 346.51l-96.652-96.652c-4.686-4.686-12.284-4.686-16.971 0l-28.284 28.284c-4.686 4.686-4.686 12.284 0 16.971l133.421 133.421c4.686 4.686 12.284 4.686 16.971 0l299.813-299.813c4.686-4.686 4.686-12.284 0-16.971l-28.284-28.284c-4.686-4.686-12.284-4.686-16.97 0z'/%3E%3C/svg%3E");
145
- }
207
+ // WebKit datetime edit fields
208
+ input::-webkit-datetime-edit {
209
+ background-color: var(--#{$prefix}color-background-primary-lighter);
210
+ color: var(--#{$prefix}form-contro-text-color);
211
+ }
212
+
213
+ //
214
+ // Form Group
215
+
216
+ .form-group {
217
+ position: relative;
218
+ margin-bottom: var(--#{$prefix}form-group-spacing-y);
146
219
 
147
- .was-validated &:invalid,
148
- &.is-invalid {
149
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23f73e5a' viewBox='0 0 384 512'%3E%3Cpath d='M231.6 256l130.1-130.1c4.7-4.7 4.7-12.3 0-17l-22.6-22.6c-4.7-4.7-12.3-4.7-17 0L192 216.4 61.9 86.3c-4.7-4.7-12.3-4.7-17 0l-22.6 22.6c-4.7 4.7-4.7 12.3 0 17L152.4 256 22.3 386.1c-4.7 4.7-4.7 12.3 0 17l22.6 22.6c4.7 4.7 12.3 4.7 17 0L192 295.6l130.1 130.1c4.7 4.7 12.3 4.7 17 0l22.6-22.6c4.7-4.7 4.7-12.3 0-17L231.6 256z'/%3E%3C/svg%3E");
220
+ label.input-symbol-label:not(.active) {
221
+ left: 2.25rem;
150
222
  }
151
223
 
152
- &.warning {
153
- background-size: 25px 45% !important;
154
- border-color: $warning;
155
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ff9900' viewBox='0 0 192 512'%3E%3Cpath d='M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z'/%3E%3C/svg%3E");
224
+ small.form-text {
225
+ margin: 0;
226
+ font-size: $small-font-size;
156
227
  }
157
228
 
158
- &.is-valid ~ .warning-feedback {
159
- display: block;
229
+ input[type='time'] ~ label {
230
+ font-size: $small-font-size;
160
231
  }
161
232
  }
162
233
 
163
- .form-group.active .form-file-name {
164
- padding-bottom: 1.95rem;
234
+ //
235
+ // Form text
236
+
237
+ .form-text {
238
+ margin: var(--#{$prefix}spacing-xxs) 0;
239
+ color: var(--#{$prefix}color-text-secondary);
165
240
  }
166
241
 
167
- .form-control-plaintext {
168
- padding: $input-spacing-y $input-spacing-x;
169
- background-color: $white !important;
170
- cursor: not-allowed;
242
+ //
243
+ // Form Group
171
244
 
172
- & + label {
173
- cursor: not-allowed;
174
- }
245
+ .form-group.active .form-file-name {
246
+ padding-bottom: 1.95rem;
175
247
  }
176
248
 
177
249
  .warning-feedback {
178
250
  display: none;
179
251
  width: 100%;
180
252
  margin-top: 0.25rem;
253
+ color: var(--#{$prefix}color-text-warning);
181
254
  font-size: 0.75rem;
182
- color: $warning;
183
255
  }
184
256
 
185
257
  .valid-feedback,
@@ -190,85 +262,63 @@ textarea {
190
262
 
191
263
  // Input group
192
264
  .input-group {
193
- .input-group-text {
194
- padding: $input-spacing-y $input-spacing-x;
195
- border-bottom: 1px solid $input-border;
196
- border-radius: 0;
197
- min-height: 2.5rem;
198
- min-width: 40px;
199
- margin-right: 0;
200
-
201
- .icon {
202
- fill: $icon-secondary;
203
- }
204
-
205
- & ~ label {
206
- &:not(.active) {
207
- left: 2.25rem;
208
- }
209
- max-width: calc(100% - 2.25rem);
210
- }
211
-
212
- .btn {
213
- border-radius: 4px 0 0 4px;
214
- }
265
+ .input-group-text .btn {
266
+ border-radius: var(--#{$prefix}form-control-border-radius) 0 0 var(--#{$prefix}form-control-border-radius);
215
267
  }
216
268
 
217
269
  .input-group-append {
218
270
  margin-left: 0;
271
+
219
272
  .btn {
273
+ height: 100%;
220
274
  padding-top: 0;
221
275
  padding-bottom: 0;
222
276
  border-bottom: 1px solid $input-border;
223
- border-radius: 0 4px 4px 0;
224
- height: 100%;
277
+ border-radius: 0 var(--#{$prefix}form-control-border-radius) var(--#{$prefix}form-control-border-radius) 0;
225
278
  }
226
279
  }
227
280
  }
228
281
 
229
- .input-group-lg {
230
- & > .form-control,
231
- & > .input-group-append > .input-group-text,
232
- & > .input-group-append > .btn {
233
- padding: 0 1rem;
234
- border-radius: 0;
235
- }
236
- }
282
+ //
283
+ // Form check class valid for checkbox and radio
237
284
 
238
285
  .form-check {
239
- padding-left: 0;
240
286
  position: relative;
241
- margin-bottom: 0.5rem;
242
287
 
243
- // add vertical spacing for consequential elements
288
+ // &:not(:last-child),
289
+ // &:not(.form-check-inline) {
290
+ // margin-bottom: var(--#{$prefix}spacing-s);
291
+ // }
292
+
293
+ // Add vertical spacing for consequential elements
244
294
  & + & {
245
- margin-top: 0.5rem;
295
+ margin-top: var(--#{$prefix}spacing-s);
246
296
  }
247
297
 
248
298
  [type='checkbox'],
249
299
  [type='radio'] {
250
300
  position: absolute;
251
- opacity: 0;
252
- left: 9px;
253
301
  top: 9px;
254
- margin-left: 0;
302
+ left: 9px;
303
+ width: auto;
255
304
  margin-top: 0;
305
+ margin-left: 0;
306
+ opacity: 0;
256
307
 
257
308
  + label {
258
309
  position: relative;
259
- padding-left: 2rem;
310
+ margin-bottom: 0; // reset default label margin
311
+ padding-left: 28px; // checkbox size + left padding - not using variable because of the pseudo element
312
+ font-size: var(--#{$prefix}label-font-size);
313
+ font-weight: var(--#{$prefix}font-weight-solid);
260
314
  cursor: pointer;
261
- display: inline-block;
262
- font-size: 1rem;
263
- font-weight: $font-weight-semibold;
264
- line-height: var(--bs-body-line-height);
265
315
  user-select: none;
316
+
266
317
  @include media-breakpoint-up(sm) {
267
- font-size: 1.125rem;
318
+ font-size: var(--#{$prefix}label-font-size-l);
268
319
  }
269
320
  }
270
321
 
271
- //focus
272
322
  &:focus + label {
273
323
  @extend %focus;
274
324
  }
@@ -278,112 +328,102 @@ textarea {
278
328
  }
279
329
  }
280
330
 
281
- [type='checkbox'] {
331
+ input[type='checkbox'] {
282
332
  + label::after,
283
333
  + label::before {
284
- content: '';
285
- left: 0;
286
334
  position: absolute;
287
- transition: 0.2s ease-out;
335
+ left: 0;
288
336
  z-index: 1;
289
- border-style: solid;
337
+ content: '';
290
338
  border-width: 2px;
339
+ border-style: solid;
340
+ transition: all var(--#{$prefix}transition-instant) ease-out;
291
341
  }
292
342
 
293
- + label::before {
294
- top: 0;
295
- width: 17px;
296
- height: 17px;
297
- border: 1px solid #e6e9f2;
298
- border-radius: 1px;
299
- margin: 2px 4px;
300
- transform: rotateZ(37deg);
301
- transform-origin: 100% 100%;
302
- }
303
-
343
+ // Checkbox shape
304
344
  + label::after {
305
- border-radius: 4px;
306
- height: 20px;
307
- width: 20px;
308
- margin: 4px;
309
345
  top: 0;
346
+ width: 20px;
347
+ height: 20px;
348
+ border-radius: var(--#{$prefix}form-control-border-radius);
310
349
  }
311
350
 
312
351
  &:checked + label::before {
313
- top: 4px;
314
- left: 1px;
315
- width: 8px;
316
- height: 13px;
317
- border-style: solid;
352
+ top: 3px;
353
+ left: 3px;
354
+ width: 6px;
355
+ height: 12px;
318
356
  border-width: 2px;
319
- border-color: transparent #fff #fff transparent;
357
+ border-style: solid;
358
+ border-color: transparent var(--#{$prefix}color-border-inverse) var(--#{$prefix}color-border-inverse) transparent;
359
+ opacity: 1;
320
360
  transform: rotate(40deg);
321
- backface-visibility: hidden;
322
361
  transform-origin: 100% 100%;
323
- opacity: 0.8;
362
+ backface-visibility: hidden;
324
363
  }
325
364
 
326
365
  &:checked + label::after {
327
- border-color: $primary;
328
- background-color: $primary;
329
366
  z-index: 0;
367
+ border-color: var(--#{$prefix}form-checked-color);
368
+ background-color: var(--#{$prefix}form-checked-color);
330
369
  }
331
370
 
332
371
  &:not(:checked) + label::after {
333
- background-color: transparent;
334
- border-color: $neutral-1-a7;
335
372
  z-index: 0;
373
+ border-color: var(--#{$prefix}form-checkbox-border-color);
374
+ background-color: transparent;
336
375
  }
337
376
 
338
377
  &:not(:checked) + label::before {
378
+ top: 10px;
379
+ left: 6px;
339
380
  width: 0;
340
381
  height: 0;
341
382
  border-color: transparent;
342
- left: 6px;
343
- top: 10px;
344
383
  }
345
384
 
346
385
  &:disabled + label {
347
- cursor: not-allowed;
348
386
  opacity: 1;
387
+ cursor: not-allowed;
349
388
  }
350
389
 
351
390
  &:disabled:not(:checked) + label::after {
352
- border-color: #e6e9f2;
353
- background-color: #fff;
391
+ border-color: var(--#{$prefix}color-border-disabled);
392
+ background-color: transparent;
354
393
  }
355
394
 
356
395
  &:disabled:checked + label::after {
357
- background-color: #e6e9f2;
358
- border-color: #e6e9f2;
396
+ border-color: var(--#{$prefix}color-border-disabled);
397
+ background-color: var(--#{$prefix}color-border-disabled);
359
398
  }
360
399
  }
361
400
 
362
- [type='radio'] {
363
- + label {
364
- transition: 0.2s ease-out;
401
+ //
402
+ // Radio button
365
403
 
404
+ input[type='radio'] {
405
+ + label {
406
+ // Radio button shape
366
407
  &::after,
367
408
  &::before {
368
- content: '';
369
409
  position: absolute;
370
- left: 0;
371
410
  top: 0;
372
- margin: 5px;
411
+ left: 0;
412
+ z-index: 0;
413
+ content: '';
373
414
  width: 20px;
374
415
  height: 20px;
375
- z-index: 0;
376
- border-radius: 50%;
377
- border-style: solid;
378
416
  border-width: 2px;
379
- transition: 0.2s ease-out;
417
+ border-style: solid;
418
+ border-radius: var(--#{$prefix}radius-rounded);
419
+ transition: all var(--#{$prefix}transition-instant) ease-out;
380
420
  }
381
421
  }
382
422
 
383
423
  &:not(:checked) + label {
384
424
  &::after,
385
425
  &::before {
386
- border-color: $input-border;
426
+ border-color: var(--#{$prefix}form-checkbox-border-color);
387
427
  }
388
428
 
389
429
  &:after {
@@ -394,14 +434,14 @@ textarea {
394
434
 
395
435
  &:checked + label {
396
436
  &::after {
397
- border-color: $primary;
398
- background-color: $primary;
399
437
  z-index: 0;
438
+ border-color: var(--#{$prefix}form-checked-color);
439
+ background-color: var(--#{$prefix}form-checked-color);
400
440
  transform: scale(0.64);
401
441
  }
402
442
 
403
443
  &::before {
404
- border-color: $primary;
444
+ border-color: var(--#{$prefix}form-checked-color);
405
445
  }
406
446
  }
407
447
 
@@ -413,54 +453,56 @@ textarea {
413
453
  &:not(:checked) + label {
414
454
  &::after,
415
455
  &::before {
416
- border-color: $gray-border-disabled;
456
+ border-color: var(--#{$prefix}color-border-disabled);
417
457
  }
418
458
  }
419
459
 
420
460
  &:checked + label {
421
461
  &::after {
422
- border-color: $gray-border-disabled;
423
- background-color: $gray-disabled;
462
+ border-color: var(--#{$prefix}color-border-disabled);
463
+ background-color: var(--#{$prefix}color-border-disabled);
424
464
  }
425
465
 
426
466
  &::before {
427
- border-color: $gray-border-disabled;
467
+ border-color: var(--#{$prefix}color-border-disabled);
428
468
  }
429
469
  }
430
470
  }
431
471
  }
432
472
 
433
- // gruppi
473
+ //
474
+ // Checkbox group
475
+
434
476
  &.form-check-group {
435
- padding: 0 0 1rem 0;
436
477
  margin-bottom: 1rem;
478
+ padding: 0 0 1rem 0;
437
479
  box-shadow: inset 0 -1px 0 0 rgba(1, 1, 1, 0.1);
438
480
 
439
- [type='checkbox'] + label,
440
- [type='radio'] + label {
481
+ input[type='checkbox'] + label,
482
+ input[type='radio'] + label {
441
483
  position: static;
442
- padding-left: 0;
443
484
  padding-right: 3.25rem;
485
+ padding-left: 0;
444
486
 
445
487
  &::after,
446
488
  &::before {
447
- right: 0px;
489
+ right: 0;
448
490
  left: auto;
449
491
  }
450
492
  }
451
493
 
452
- [type='checkbox']:checked + label::before {
494
+ input[type='checkbox']:checked + label::before {
453
495
  right: 11px;
454
496
  }
455
497
 
456
- [type='radio']:checked + label::before {
457
- right: 0px;
498
+ input[type='radio']:checked + label::before {
499
+ right: 0;
458
500
  }
459
501
 
460
502
  .form-text {
461
503
  display: block;
462
- padding-right: 3.25rem;
463
504
  margin-bottom: 0.5rem;
505
+ padding-right: 3.25rem;
464
506
  }
465
507
 
466
508
  input.semi-checked:not(:checked) + label::before {
@@ -468,27 +510,42 @@ textarea {
468
510
  left: auto;
469
511
  }
470
512
  }
513
+
471
514
  input.semi-checked:not(:checked) + label::before {
472
- top: 11px;
515
+ top: 12px;
473
516
  left: 4px;
474
517
  width: 12px;
475
518
  height: 2px;
476
- border-style: none;
477
519
  border-width: 0;
520
+ border-style: none;
478
521
  border-color: transparent;
522
+ opacity: 1;
523
+ background: var(--#{$prefix}color-background-inverse);
479
524
  transform: none;
480
525
  backface-visibility: hidden;
481
- opacity: 1;
482
- background: $white;
483
526
  }
484
527
 
485
528
  input.semi-checked:not(:checked) + label::after {
486
- border-color: $primary-a5; // TODO: Not found
487
- background-color: $primary-a5; // TODO: Not found
488
529
  z-index: 0;
530
+ border-color: var(--#{$prefix}form-checked-color);
531
+ background-color: var(--#{$prefix}form-checked-color);
532
+ }
533
+ }
534
+
535
+ .form-check-inline {
536
+ display: inline-block;
537
+ // margin-right: $form-check-inline-margin-end;
538
+
539
+ &:not(:last-child) {
540
+ margin-right: var(--#{$prefix}spacing-m);
489
541
  }
490
542
  }
491
543
 
544
+ //
545
+ // Form check reduce motion
546
+ // This is a workaround for the fact that the transition property is not inherited
547
+ // by pseudo-elements. This means that if the user has set the prefers-reduced-motion
548
+ // media query, the transition will not be applied to the pseudo-elements.
492
549
  @media (prefers-reduced-motion: reduce) {
493
550
  fieldset legend,
494
551
  .form-group label,