bullframe.css 4.2.1 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.browserslistrc +2 -3
- package/.editorconfig +15 -0
- package/.gitattributes +1 -0
- package/.htmlhintrc +12 -0
- package/.prettierignore +1 -0
- package/.stylelintignore +3 -0
- package/.stylelintrc.json +21 -5
- package/CHANGELOG.md +289 -301
- package/README.md +371 -327
- package/dist/css/bullframe-classless-dark-prefers.css +378 -267
- package/dist/css/bullframe-classless-dark-prefers.css.map +1 -0
- package/dist/css/bullframe-classless-dark-prefers.min.css +2 -3
- package/dist/css/bullframe-classless-dark-prefers.min.css.map +1 -1
- package/dist/css/bullframe-classless-dark.css +384 -251
- package/dist/css/bullframe-classless-dark.css.map +1 -0
- package/dist/css/bullframe-classless-dark.min.css +2 -3
- package/dist/css/bullframe-classless-dark.min.css.map +1 -1
- package/dist/css/bullframe-classless-system-default.css +378 -267
- package/dist/css/bullframe-classless-system-default.css.map +1 -0
- package/dist/css/bullframe-classless-system-default.min.css +2 -3
- package/dist/css/bullframe-classless-system-default.min.css.map +1 -1
- package/dist/css/bullframe-classless.css +343 -227
- package/dist/css/bullframe-classless.css.map +1 -0
- package/dist/css/bullframe-classless.min.css +2 -2
- package/dist/css/bullframe-classless.min.css.map +1 -1
- package/dist/css/bullframe-dark-prefers.css +399 -462
- package/dist/css/bullframe-dark-prefers.css.map +1 -0
- package/dist/css/bullframe-dark-prefers.min.css +2 -2
- package/dist/css/bullframe-dark-prefers.min.css.map +1 -1
- package/dist/css/bullframe-dark.css +401 -373
- package/dist/css/bullframe-dark.css.map +1 -0
- package/dist/css/bullframe-dark.min.css +2 -2
- package/dist/css/bullframe-dark.min.css.map +1 -1
- package/dist/css/bullframe-system-default.css +396 -389
- package/dist/css/bullframe-system-default.css.map +1 -0
- package/dist/css/bullframe-system-default.min.css +2 -2
- package/dist/css/bullframe-system-default.min.css.map +1 -1
- package/dist/css/bullframe-utilities.css +69 -109
- package/dist/css/bullframe-utilities.css.map +1 -0
- package/dist/css/bullframe-utilities.min.css +1 -1
- package/dist/css/bullframe-utilities.min.css.map +1 -1
- package/dist/css/bullframe.css +370 -348
- package/dist/css/bullframe.css.map +1 -0
- package/dist/css/bullframe.min.css +2 -1
- package/dist/css/bullframe.min.css.map +1 -1
- package/dist/docs/demo/css/style.css +131 -0
- package/{docs/test-page → dist/docs/demo}/index.html +166 -358
- package/dist/docs/github-readme/bf-logo-full-dark.png +0 -0
- package/package.json +26 -30
- package/prettier.config.js +26 -0
- package/src/docs/demo/css/style.css +131 -0
- package/src/docs/demo/icons/android-chrome-192x192.png +0 -0
- package/src/docs/demo/icons/android-chrome-384x384.png +0 -0
- package/src/docs/demo/icons/apple-touch-icon.png +0 -0
- package/src/docs/demo/icons/favicon-16x16.png +0 -0
- package/src/docs/demo/icons/favicon-32x32.png +0 -0
- package/src/docs/demo/icons/favicon.ico +0 -0
- package/src/docs/demo/icons/mstile-150x150.png +0 -0
- package/src/docs/demo/icons/safari-pinned-tab.svg +28 -0
- package/src/docs/demo/images/logo.png +0 -0
- package/src/docs/demo/images/placeholder-img-130x140.jpg +0 -0
- package/src/docs/demo/images/placeholder-img-16x16.jpg +0 -0
- package/src/docs/demo/images/placeholder-img-800x400.jpg +0 -0
- package/src/docs/demo/images/video-poster.png +0 -0
- package/src/docs/demo/index.html +1152 -0
- package/src/docs/github-readme/bf-logo-full-dark.png +0 -0
- package/src/docs/github-readme/bf-logo-full-light.png +0 -0
- package/src/scss/bullframe-classless-dark-prefers.scss +2 -5
- package/src/scss/bullframe-classless-dark.scss +2 -5
- package/src/scss/bullframe-classless-system-default.scss +2 -5
- package/src/scss/bullframe-classless.scss +49 -43
- package/src/scss/bullframe-dark-prefers.scss +2 -4
- package/src/scss/bullframe-dark.scss +2 -4
- package/src/scss/bullframe-system-default.scss +2 -4
- package/src/scss/bullframe-utilities.scss +21 -61
- package/src/scss/bullframe.scss +49 -121
- package/src/scss/custom/_author-styles.scss +5 -0
- package/src/scss/forms/_forms-normalization.scss +68 -58
- package/src/scss/forms/_forms-styling-radio-checkbox.scss +64 -66
- package/src/scss/forms/_forms-styling-range.scss +88 -74
- package/src/scss/forms/_forms-styling-select.scss +18 -16
- package/src/scss/forms/_forms-styling.scss +38 -26
- package/src/scss/miscellaneous/_misc-accessibility.scss +10 -16
- package/src/scss/miscellaneous/_misc-anchors.scss +15 -13
- package/src/scss/miscellaneous/_misc-embedded-content.scss +14 -21
- package/src/scss/miscellaneous/_misc-focus.scss +0 -21
- package/src/scss/miscellaneous/_misc-interactive.scss +48 -0
- package/src/scss/miscellaneous/_misc-lists.scss +9 -5
- package/src/scss/miscellaneous/_misc-scrolling.scss +5 -0
- package/src/scss/miscellaneous/_misc-shame.scss +6 -0
- package/src/scss/miscellaneous/_misc-tables.scss +17 -5
- package/src/scss/mixins/_mixin-dark-prefers.scss +414 -0
- package/src/scss/mixins/_mixin-dark.scss +396 -0
- package/src/scss/mixins/_mixin-grid-flex.scss +0 -3
- package/src/scss/mixins/_mixin-layout.scss +1 -1
- package/src/scss/mixins/_mixin-texts.scss +2 -3
- package/src/scss/typography/_typography-blockquotes.scss +10 -5
- package/src/scss/typography/_typography-headings.scss +9 -8
- package/src/scss/typography/_typography-html-body.scss +17 -14
- package/src/scss/typography/_typography-misc.scss +19 -22
- package/src/scss/typography/_typography-monospaced-elements.scss +21 -12
- package/src/scss/utilities/_utility-buttons.scss +20 -18
- package/src/scss/utilities/_utility-debugging.scss +2 -88
- package/src/scss/utilities/_utility-embeds.scss +1 -1
- package/src/scss/utilities/_utility-filters.scss +0 -3
- package/src/scss/utilities/_utility-form-states.scss +30 -21
- package/src/scss/utilities/_utility-global-dark-classless.scss +3 -157
- package/src/scss/utilities/_utility-global-dark-prefers-classless.scss +3 -3
- package/src/scss/utilities/_utility-global-dark-prefers.scss +3 -3
- package/src/scss/utilities/_utility-global-dark-scrollbars.scss +11 -6
- package/src/scss/utilities/_utility-global-dark.scss +4 -213
- package/src/scss/utilities/_utility-global-system-default-classless.scss +3 -3
- package/src/scss/utilities/_utility-global-system-default.scss +3 -3
- package/src/scss/utilities/_utility-grid-system.scss +51 -115
- package/src/scss/utilities/_utility-layout.scss +7 -15
- package/src/scss/utilities/_utility-print.scss +5 -5
- package/src/scss/utilities/_utility-spacing.scss +42 -40
- package/src/scss/utilities/_utility-tables.scss +12 -18
- package/src/scss/utilities/_utility-texts.scss +48 -22
- package/src/scss/utilities/_utility-z-index.scss +1 -1
- package/src/scss/variables/_variables-breakpoints.scss +1 -0
- package/src/scss/variables/_variables-colors.scss +8 -5
- package/src/scss/variables/_variables-spacing.scss +3 -5
- package/src/scss/variables/_variables-texts.scss +5 -9
- package/vite.config.js +116 -0
- package/.nvmrc +0 -1
- package/LICENSE +0 -21
- package/gulpfile.js +0 -74
- package/netlify.toml +0 -3
- package/src/scss/miscellaneous/_misc-author-styles-in-css.scss +0 -76
- /package/{docs/test-page/assets → dist/docs/demo}/icons/android-chrome-192x192.png +0 -0
- /package/{docs/test-page/assets → dist/docs/demo}/icons/android-chrome-384x384.png +0 -0
- /package/{docs/test-page/assets → dist/docs/demo}/icons/apple-touch-icon.png +0 -0
- /package/{docs/test-page/assets → dist/docs/demo}/icons/favicon-16x16.png +0 -0
- /package/{docs/test-page/assets → dist/docs/demo}/icons/favicon-32x32.png +0 -0
- /package/{docs/test-page/assets → dist/docs/demo}/icons/favicon.ico +0 -0
- /package/{docs/test-page/assets → dist/docs/demo}/icons/mstile-150x150.png +0 -0
- /package/{docs/test-page/assets → dist/docs/demo}/icons/safari-pinned-tab.svg +0 -0
- /package/{docs/test-page/assets → dist/docs/demo}/images/logo.png +0 -0
- /package/{docs/test-page/assets → dist/docs/demo}/images/placeholder-img-130x140.jpg +0 -0
- /package/{docs/test-page/assets → dist/docs/demo}/images/placeholder-img-16x16.jpg +0 -0
- /package/{docs/test-page/assets → dist/docs/demo}/images/placeholder-img-800x400.jpg +0 -0
- /package/{docs/test-page/assets → dist/docs/demo}/images/video-poster.png +0 -0
- /package/{docs/assets/images/branding/logo-full.png → dist/docs/github-readme/bf-logo-full-light.png} +0 -0
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
@use "../variables/variables-colors" as bf-v-color;
|
|
2
|
+
@use "../variables/variables-texts" as bf-v-text;
|
|
3
|
+
@use "../variables/variables-spacing" as bf-v-space;
|
|
4
|
+
@use "../variables/variables-breakpoints" as bf-v-bp;
|
|
5
|
+
@use "sass:color";
|
|
6
|
+
|
|
1
7
|
// normalization, enhancement and responsiveness
|
|
2
8
|
|
|
3
9
|
html input,
|
|
@@ -13,8 +19,8 @@ textarea {
|
|
|
13
19
|
|
|
14
20
|
html input,
|
|
15
21
|
button,
|
|
16
|
-
[type=
|
|
17
|
-
[type=
|
|
22
|
+
[type="radio"],
|
|
23
|
+
[type="checkbox"],
|
|
18
24
|
select,
|
|
19
25
|
optgroup,
|
|
20
26
|
textarea {
|
|
@@ -31,12 +37,12 @@ legend {
|
|
|
31
37
|
// re-set width auto where needed
|
|
32
38
|
html label,
|
|
33
39
|
button,
|
|
34
|
-
[type=
|
|
35
|
-
[type=
|
|
36
|
-
[type=
|
|
37
|
-
html [type=
|
|
38
|
-
[type=
|
|
39
|
-
[type=
|
|
40
|
+
[type="image"],
|
|
41
|
+
[type="submit"],
|
|
42
|
+
[type="reset"],
|
|
43
|
+
html [type="button"],
|
|
44
|
+
[type="radio"],
|
|
45
|
+
[type="checkbox"] {
|
|
40
46
|
width: auto;
|
|
41
47
|
}
|
|
42
48
|
|
|
@@ -47,14 +53,14 @@ label,
|
|
|
47
53
|
select,
|
|
48
54
|
textarea,
|
|
49
55
|
button,
|
|
50
|
-
html [type=
|
|
51
|
-
[type=
|
|
52
|
-
[type=
|
|
56
|
+
html [type="button"],
|
|
57
|
+
[type="reset"],
|
|
58
|
+
[type="submit"],
|
|
53
59
|
output {
|
|
54
60
|
display: inline-block;
|
|
55
61
|
}
|
|
56
62
|
|
|
57
|
-
[type=
|
|
63
|
+
[type="file"] {
|
|
58
64
|
display: block;
|
|
59
65
|
background-color: transparent;
|
|
60
66
|
}
|
|
@@ -92,8 +98,8 @@ legend {
|
|
|
92
98
|
border: 0;
|
|
93
99
|
padding: 0;
|
|
94
100
|
font-weight: 400;
|
|
95
|
-
margin-bottom:
|
|
96
|
-
margin-bottom:
|
|
101
|
+
margin-bottom: bf-v-space.$bf-spacing-md-px;
|
|
102
|
+
margin-bottom: bf-v-space.$bf-spacing-md-rem;
|
|
97
103
|
font-size: inherit;
|
|
98
104
|
line-height: 1.375;
|
|
99
105
|
color: inherit;
|
|
@@ -103,8 +109,8 @@ label {
|
|
|
103
109
|
font-weight: 400;
|
|
104
110
|
font-size: 90%;
|
|
105
111
|
line-height: 1.375;
|
|
106
|
-
margin-bottom:
|
|
107
|
-
margin-bottom:
|
|
112
|
+
margin-bottom: bf-v-space.$bf-spacing-md-px;
|
|
113
|
+
margin-bottom: bf-v-space.$bf-spacing-md-rem;
|
|
108
114
|
}
|
|
109
115
|
|
|
110
116
|
label input,
|
|
@@ -113,8 +119,7 @@ label textarea {
|
|
|
113
119
|
font-size: 110%;
|
|
114
120
|
}
|
|
115
121
|
|
|
116
|
-
|
|
117
|
-
[type='number']::-webkit-inner-spin-button {
|
|
122
|
+
::-webkit-inner-spin-button {
|
|
118
123
|
height: auto;
|
|
119
124
|
}
|
|
120
125
|
|
|
@@ -132,9 +137,8 @@ label textarea {
|
|
|
132
137
|
padding: 0;
|
|
133
138
|
}
|
|
134
139
|
|
|
135
|
-
[type=
|
|
136
|
-
outline-offset:
|
|
137
|
-
outline-offset: -$bf-spacing-sm-rem;
|
|
140
|
+
[type="search"] {
|
|
141
|
+
outline-offset: calc(-1 * bf-v-space.$bf-spacing-sm-rem);
|
|
138
142
|
}
|
|
139
143
|
|
|
140
144
|
output {
|
|
@@ -152,24 +156,27 @@ select {
|
|
|
152
156
|
|
|
153
157
|
// Taken from Bootstrap Reboot v5.2
|
|
154
158
|
// https://unpkg.com/browse/bootstrap@5.2.0/dist/css/bootstrap-reboot.css
|
|
155
|
-
[list]:not(
|
|
156
|
-
[type=
|
|
157
|
-
|
|
159
|
+
[list]:not(
|
|
160
|
+
[type="date"],
|
|
161
|
+
[type="datetime-local"],
|
|
162
|
+
[type="month"],
|
|
163
|
+
[type="week"],
|
|
164
|
+
[type="time"]
|
|
165
|
+
)::-webkit-calendar-picker-indicator {
|
|
158
166
|
display: none !important;
|
|
159
167
|
}
|
|
160
168
|
|
|
161
169
|
optgroup {
|
|
162
170
|
font-family: inherit;
|
|
163
171
|
font-size: inherit;
|
|
164
|
-
font-style: inherit;
|
|
165
|
-
font-weight: 700; // fallback for font families without 600 */
|
|
172
|
+
font-style: inherit; // fallback for font families without 600 */
|
|
166
173
|
font-weight: 600;
|
|
167
174
|
}
|
|
168
175
|
|
|
169
176
|
// remove -webkit-appearance listing every single elements that needed it
|
|
170
177
|
button,
|
|
171
178
|
// avoid destroying native android audio/video players
|
|
172
|
-
html [type="button"],
|
|
179
|
+
html [type="button"],
|
|
173
180
|
[type="reset"],
|
|
174
181
|
[type="submit"],
|
|
175
182
|
|
|
@@ -189,42 +196,41 @@ html [type="button"],
|
|
|
189
196
|
[type="search"]::-webkit-search-cancel-button,
|
|
190
197
|
input[list],
|
|
191
198
|
textarea {
|
|
192
|
-
|
|
199
|
+
appearance: none;
|
|
193
200
|
}
|
|
194
201
|
|
|
195
202
|
::-webkit-file-upload-button {
|
|
196
|
-
|
|
197
|
-
|
|
203
|
+
font: inherit;
|
|
204
|
+
appearance: auto;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
::file-selector-button {
|
|
208
|
+
font: inherit;
|
|
209
|
+
appearance: auto;
|
|
198
210
|
}
|
|
199
211
|
|
|
200
|
-
// ! IE9+
|
|
201
|
-
// https://caniuse.com/#feat=border-radius
|
|
202
212
|
button,
|
|
203
213
|
input,
|
|
204
214
|
select,
|
|
205
215
|
textarea {
|
|
206
|
-
border-radius:
|
|
207
|
-
border-radius: $bf-spacing-sm-rem;
|
|
216
|
+
border-radius: bf-v-space.$bf-spacing-sm-rem;
|
|
208
217
|
}
|
|
209
218
|
|
|
210
|
-
|
|
211
|
-
// https://caniuse.com/#feat=border-radius
|
|
212
|
-
[type='radio'] {
|
|
219
|
+
[type="radio"] {
|
|
213
220
|
border-radius: 50%;
|
|
214
221
|
}
|
|
215
222
|
|
|
216
|
-
[type=
|
|
217
|
-
border-radius:
|
|
218
|
-
border-radius: $bf-spacing-md-rem;
|
|
223
|
+
[type="checkbox"] {
|
|
224
|
+
border-radius: bf-v-space.$bf-spacing-md-rem;
|
|
219
225
|
}
|
|
220
226
|
|
|
221
|
-
[type=
|
|
222
|
-
[type=
|
|
227
|
+
[type="radio"],
|
|
228
|
+
[type="checkbox"] {
|
|
223
229
|
padding: 0;
|
|
224
|
-
background-color:
|
|
230
|
+
background-color: bf-v-color.$bf-white;
|
|
225
231
|
}
|
|
226
232
|
|
|
227
|
-
[type=
|
|
233
|
+
[type="range" i] {
|
|
228
234
|
background-color: transparent; // FF and Chrome mobile
|
|
229
235
|
}
|
|
230
236
|
|
|
@@ -253,16 +259,16 @@ textarea {
|
|
|
253
259
|
}
|
|
254
260
|
|
|
255
261
|
button,
|
|
256
|
-
[type=
|
|
257
|
-
[type=
|
|
258
|
-
[type=
|
|
262
|
+
[type="button"],
|
|
263
|
+
[type="reset"],
|
|
264
|
+
[type="submit"] {
|
|
259
265
|
line-height: normal;
|
|
260
266
|
text-align: center;
|
|
261
267
|
margin: 0;
|
|
262
268
|
background-clip: padding-box;
|
|
263
269
|
vertical-align: baseline;
|
|
264
270
|
overflow: visible;
|
|
265
|
-
-webkit-tap-highlight-color:
|
|
271
|
+
-webkit-tap-highlight-color: rgb(0 0 0 / 0%);
|
|
266
272
|
user-select: none;
|
|
267
273
|
border: 0;
|
|
268
274
|
background-image: none; // FF mobile
|
|
@@ -271,18 +277,14 @@ button,
|
|
|
271
277
|
&:active,
|
|
272
278
|
&:focus {
|
|
273
279
|
text-decoration: none;
|
|
274
|
-
color:
|
|
280
|
+
color: bf-v-color.$bf-dark;
|
|
275
281
|
}
|
|
276
282
|
}
|
|
277
283
|
|
|
278
|
-
button,
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
[type='checkbox'],
|
|
283
|
-
[type='range'],
|
|
284
|
-
[type='radio'],
|
|
285
|
-
[role='button'] {
|
|
284
|
+
button:not(:disabled),
|
|
285
|
+
[type="button"]:not(:disabled),
|
|
286
|
+
[type="reset"]:not(:disabled),
|
|
287
|
+
[type="submit"]:not(:disabled) {
|
|
286
288
|
cursor: pointer;
|
|
287
289
|
}
|
|
288
290
|
|
|
@@ -292,7 +294,15 @@ input[type='button'],
|
|
|
292
294
|
// Fix: Use '!important' https://github.com/necolas/normalize.css/issues/150
|
|
293
295
|
input::placeholder,
|
|
294
296
|
textarea::placeholder {
|
|
295
|
-
color:
|
|
297
|
+
color: bf-v-color.$bf-gray-dark;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
/*
|
|
301
|
+
Use the modern Firefox focus style for all focusable elements.
|
|
302
|
+
*/
|
|
303
|
+
|
|
304
|
+
:-moz-focusring {
|
|
305
|
+
outline: auto;
|
|
296
306
|
}
|
|
297
307
|
|
|
298
308
|
// remove ':invalid' styles in FF
|
|
@@ -1,84 +1,82 @@
|
|
|
1
|
+
@use '../variables/variables-colors' as bf-v-color;
|
|
2
|
+
@use '../variables/variables-texts' as bf-v-text;
|
|
3
|
+
@use '../variables/variables-spacing' as bf-v-space;
|
|
4
|
+
@use '../variables/variables-breakpoints' as bf-v-bp;
|
|
5
|
+
@use 'sass:color';
|
|
6
|
+
|
|
1
7
|
// heavily inspired by '2020 toggles' by Aaron Iker
|
|
2
8
|
// https://css-tricks.com/custom-styling-form-inputs-with-modern-css-features/
|
|
3
9
|
// https://codepen.io/aaroniker/pen/ZEYoxEY?editors=0100
|
|
4
|
-
//
|
|
5
|
-
// https://developer.mozilla.org/en-US/docs/Web/CSS/@supports
|
|
6
|
-
// https://caniuse.com/#feat=mdn-css_at-rules_supports_selector
|
|
7
|
-
//
|
|
8
|
-
// Anyway are safe and future-friendly because more browser compatibility
|
|
9
|
-
// will come
|
|
10
|
-
|
|
11
|
-
@supports (appearance: none) {
|
|
12
|
-
[type='checkbox'],
|
|
13
|
-
[type='radio'] {
|
|
14
|
-
appearance: none;
|
|
15
10
|
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
[type='checkbox'],
|
|
12
|
+
[type='radio'] {
|
|
13
|
+
appearance: none;
|
|
14
|
+
|
|
15
|
+
height: 1.8rem;
|
|
16
|
+
width: 1.8rem;
|
|
18
17
|
|
|
18
|
+
vertical-align: top;
|
|
19
|
+
position: relative;
|
|
20
|
+
|
|
21
|
+
border: 1px solid / bf-v-color.$bf-gray;
|
|
22
|
+
|
|
23
|
+
+ label {
|
|
24
|
+
line-height: 1.8rem;
|
|
19
25
|
vertical-align: top;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
// 1. http://bootstrap.rtlcss.com
|
|
34
|
-
// 2. https://rtlstyling.com/
|
|
35
|
-
*[dir='rtl'] & + label,
|
|
36
|
-
&[dir='rtl'] + label {
|
|
37
|
-
margin-left: 0;
|
|
38
|
-
margin-right: $bf-spacing-md-px;
|
|
39
|
-
margin-right: $bf-spacing-md-rem;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
&:after {
|
|
43
|
-
content: '';
|
|
44
|
-
display: block;
|
|
45
|
-
position: absolute;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
&:checked {
|
|
49
|
-
background-color: $bf-blue;
|
|
50
|
-
border-color: $bf-black;
|
|
51
|
-
}
|
|
26
|
+
margin-left: bf-v-space.$bf-spacing-md-px;
|
|
27
|
+
margin-left: bf-v-space.$bf-spacing-md-rem;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// add support for RTL languages
|
|
31
|
+
// Read more
|
|
32
|
+
// 1. http://bootstrap.rtlcss.com
|
|
33
|
+
// 2. https://rtlstyling.com/
|
|
34
|
+
*[dir='rtl'] & + label,
|
|
35
|
+
&[dir='rtl'] + label {
|
|
36
|
+
margin-left: 0;
|
|
37
|
+
margin-right: bf-v-space.$bf-spacing-md-px;
|
|
38
|
+
margin-right: bf-v-space.$bf-spacing-md-rem;
|
|
52
39
|
}
|
|
53
40
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
41
|
+
&::after {
|
|
42
|
+
content: '';
|
|
43
|
+
display: block;
|
|
44
|
+
position: absolute;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
&:checked {
|
|
48
|
+
background-color: bf-v-color.$bf-blue;
|
|
49
|
+
border-color: bf-v-color.$bf-black;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
58
52
|
|
|
59
|
-
|
|
60
|
-
|
|
53
|
+
[type='radio'] {
|
|
54
|
+
&::after {
|
|
55
|
+
width: 1.8rem;
|
|
56
|
+
height: 1.8rem;
|
|
61
57
|
|
|
62
|
-
|
|
63
|
-
|
|
58
|
+
left: -0.05rem;
|
|
59
|
+
top: -0.05rem;
|
|
64
60
|
|
|
65
|
-
|
|
66
|
-
|
|
61
|
+
border-radius: 50%;
|
|
62
|
+
background: bf-v-color.$bf-white;
|
|
63
|
+
|
|
64
|
+
transform: scale(0.35);
|
|
67
65
|
}
|
|
66
|
+
}
|
|
68
67
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
68
|
+
[type='checkbox'] {
|
|
69
|
+
&::after {
|
|
70
|
+
width: 0.6rem;
|
|
71
|
+
height: 0.8rem;
|
|
73
72
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
border: 2px solid / bf-v-color.$bf-white;
|
|
74
|
+
border-top: 0;
|
|
75
|
+
border-left: 0;
|
|
77
76
|
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
left: 35%;
|
|
78
|
+
top: 20%;
|
|
80
79
|
|
|
81
|
-
|
|
82
|
-
}
|
|
80
|
+
transform: rotate(43deg);
|
|
83
81
|
}
|
|
84
82
|
}
|
|
@@ -1,99 +1,113 @@
|
|
|
1
|
+
@use '../variables/variables-colors' as bf-v-color;
|
|
2
|
+
@use '../variables/variables-texts' as bf-v-text;
|
|
3
|
+
@use '../variables/variables-spacing' as bf-v-space;
|
|
4
|
+
@use '../variables/variables-breakpoints' as bf-v-bp;
|
|
5
|
+
@use 'sass:color';
|
|
6
|
+
|
|
1
7
|
// styling input range in modern browsers safely using the @supports CSS-at-rule
|
|
2
8
|
// https://developer.mozilla.org/en-US/docs/Web/CSS/@supports
|
|
3
9
|
//
|
|
4
10
|
// standalone CodePen demo https://codepen.io/marcop135/pen/JjGrNMx
|
|
5
11
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
+
[type='range'] {
|
|
13
|
+
appearance: none;
|
|
14
|
+
width: 100%;
|
|
15
|
+
height: 1.4rem;
|
|
16
|
+
}
|
|
12
17
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
18
|
+
[type='range']::-webkit-slider-thumb {
|
|
19
|
+
border: 0;
|
|
20
|
+
appearance: none;
|
|
21
|
+
|
|
22
|
+
width: 1.5rem;
|
|
23
|
+
height: 1.5rem;
|
|
24
|
+
margin-top: -0.25rem;
|
|
25
|
+
background-color: bf-v-color.$bf-blue;
|
|
26
|
+
border-radius: 1.5rem;
|
|
27
|
+
transition:
|
|
28
|
+
background-color 0.15s ease-in-out,
|
|
29
|
+
border-color 0.15s ease-in-out,
|
|
30
|
+
box-shadow 0.15s ease-in-out;
|
|
31
|
+
|
|
32
|
+
&:active {
|
|
33
|
+
background-color: bf-v-color.$bf-blue;
|
|
28
34
|
}
|
|
35
|
+
}
|
|
29
36
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
37
|
+
[type='range']::-moz-range-thumb {
|
|
38
|
+
border: 0;
|
|
39
|
+
appearance: none;
|
|
40
|
+
|
|
41
|
+
width: 1.5rem;
|
|
42
|
+
height: 1.5rem;
|
|
43
|
+
background-color: bf-v-color.$bf-blue;
|
|
44
|
+
border-radius: 1.5rem;
|
|
45
|
+
transition:
|
|
46
|
+
background-color 0.15s ease-in-out,
|
|
47
|
+
border-color 0.15s ease-in-out,
|
|
48
|
+
box-shadow 0.15s ease-in-out;
|
|
49
|
+
|
|
50
|
+
&:active {
|
|
51
|
+
background-color: bf-v-color.$bf-blue;
|
|
44
52
|
}
|
|
53
|
+
}
|
|
45
54
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
width: 100%;
|
|
51
|
-
height: 0.65rem;
|
|
52
|
-
cursor: pointer;
|
|
53
|
-
background-color: $bf-gray-light-extra;
|
|
54
|
-
}
|
|
55
|
+
[type='range']::-webkit-slider-runnable-track {
|
|
56
|
+
color: transparent;
|
|
57
|
+
border-color: transparent;
|
|
55
58
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
+
width: 100%;
|
|
60
|
+
height: 0.65rem;
|
|
61
|
+
cursor: pointer;
|
|
62
|
+
background-color: bf-v-color.$bf-gray-light-extra;
|
|
63
|
+
}
|
|
59
64
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
background-color: $bf-gray-light-extra;
|
|
64
|
-
}
|
|
65
|
+
[type='range']::-moz-range-track {
|
|
66
|
+
color: transparent;
|
|
67
|
+
border-color: transparent;
|
|
65
68
|
|
|
66
|
-
|
|
67
|
-
|
|
69
|
+
width: 100%;
|
|
70
|
+
height: 0.65rem;
|
|
71
|
+
cursor: pointer;
|
|
72
|
+
background-color: bf-v-color.$bf-gray-light-extra;
|
|
73
|
+
}
|
|
68
74
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
75
|
+
[type='range']:focus {
|
|
76
|
+
outline: none;
|
|
72
77
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
78
|
+
&::-webkit-slider-thumb {
|
|
79
|
+
box-shadow:
|
|
80
|
+
0 0 0 0.1rem / bf-v-color.$bf-white,
|
|
81
|
+
0 0 0 0.2rem rgb(0 123 255 / 25%);
|
|
76
82
|
}
|
|
77
83
|
|
|
78
|
-
|
|
79
|
-
|
|
84
|
+
&::-moz-slider-thumb {
|
|
85
|
+
box-shadow:
|
|
86
|
+
0 0 0 0.1rem / bf-v-color.$bf-white,
|
|
87
|
+
0 0 0 0.2rem rgb(0 123 255 / 25%);
|
|
80
88
|
}
|
|
89
|
+
}
|
|
81
90
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
91
|
+
[type='range']::-moz-focus-outer {
|
|
92
|
+
border: 0;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
[type='range']:focus::-moz-range-thumb {
|
|
96
|
+
box-shadow:
|
|
97
|
+
0 0 0 0.1rem / bf-v-color.$bf-white,
|
|
98
|
+
0 0 0 0.2rem rgb(0 123 255 / 25%);
|
|
99
|
+
}
|
|
85
100
|
|
|
86
|
-
|
|
101
|
+
// disabled
|
|
87
102
|
|
|
88
|
-
|
|
89
|
-
|
|
103
|
+
[type='range']:disabled {
|
|
104
|
+
pointer-events: none;
|
|
90
105
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
106
|
+
&::-webkit-slider-thumb {
|
|
107
|
+
background-color: bf-v-color.$bf-gray-light;
|
|
108
|
+
}
|
|
94
109
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
}
|
|
110
|
+
&::-moz-slider-thumb {
|
|
111
|
+
background-color: bf-v-color.$bf-gray-light;
|
|
98
112
|
}
|
|
99
113
|
}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
@use '../variables/variables-colors' as bf-v-color;
|
|
2
|
+
@use '../variables/variables-texts' as bf-v-text;
|
|
3
|
+
@use '../variables/variables-spacing' as bf-v-space;
|
|
4
|
+
@use '../variables/variables-breakpoints' as bf-v-bp;
|
|
5
|
+
@use 'sass:color';
|
|
6
|
+
|
|
1
7
|
// custom <select> arrow and appearance with a base64 embedded SVG icon
|
|
2
8
|
// https://css-tricks.com/probably-dont-base64-svg/#article-header-id-2
|
|
3
9
|
//
|
|
@@ -8,7 +14,7 @@
|
|
|
8
14
|
// ! :not and calc() are IE9+
|
|
9
15
|
// https://caniuse.com/#feat=mdn-css_selectors_not
|
|
10
16
|
// https://caniuse.com/#feat=calc
|
|
11
|
-
|
|
17
|
+
|
|
12
18
|
// ! 12px = the icon width/height, and must be in pixels because
|
|
13
19
|
// calc() is just for values
|
|
14
20
|
// https://css-tricks.com/a-complete-guide-to-calc-in-css/#0-calc-is-for-values
|
|
@@ -19,24 +25,20 @@
|
|
|
19
25
|
// so, is not safe to style every kind of <select>
|
|
20
26
|
//
|
|
21
27
|
// remove the arrow and the appearance, especially on Webkit
|
|
22
|
-
select:not([size]
|
|
28
|
+
select:not([size], [multiple]) {
|
|
23
29
|
appearance: none;
|
|
24
30
|
|
|
25
31
|
// add a new svg arrow
|
|
26
|
-
background:
|
|
32
|
+
background: bf-v-color.$bf-white
|
|
27
33
|
url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e")
|
|
28
34
|
no-repeat right 0.85rem center/8px 10px;
|
|
29
35
|
|
|
30
36
|
// space the arrow
|
|
31
|
-
padding-right:
|
|
32
|
-
padding-right:
|
|
37
|
+
padding-right: bf-v-space.$bf-spacing-lg-px + bf-v-space.$bf-spacing-lg-px;
|
|
38
|
+
padding-right: bf-v-space.$bf-spacing-lg-rem + bf-v-space.$bf-spacing-lg-rem;
|
|
33
39
|
}
|
|
34
40
|
|
|
35
|
-
//
|
|
36
|
-
// The '::-ms-expand' CSS pseudo-element is a Microsoft extension that represents
|
|
37
|
-
// the button of a <select> menu control that opens or closes the drop-down
|
|
38
|
-
// menu. Typically it is a triangle that points downward.
|
|
39
|
-
// https://developer.mozilla.org/en-US/docs/Web/CSS/::-ms-expand
|
|
41
|
+
// Legacy Edge browser support
|
|
40
42
|
select::-ms-expand {
|
|
41
43
|
display: none;
|
|
42
44
|
}
|
|
@@ -48,16 +50,16 @@ select::-ms-expand {
|
|
|
48
50
|
// Read more
|
|
49
51
|
// 1. http://bootstrap.rtlcss.com
|
|
50
52
|
// 2. https://rtlstyling.com/
|
|
51
|
-
*[dir='rtl'] select:not([size]
|
|
52
|
-
select[dir='rtl']:not([size]
|
|
53
|
+
*[dir='rtl'] select:not([size], [multiple]),
|
|
54
|
+
select[dir='rtl']:not([size], [multiple]) {
|
|
53
55
|
// move the arrow icon to the left
|
|
54
56
|
background-position: left 0.85rem top 50%;
|
|
55
57
|
|
|
56
58
|
// go back to default forms padding
|
|
57
|
-
padding-right: (
|
|
58
|
-
padding-right: (
|
|
59
|
+
padding-right: (bf-v-space.$bf-spacing-lg-px * 0.75);
|
|
60
|
+
padding-right: (bf-v-space.$bf-spacing-lg-rem * 0.75);
|
|
59
61
|
|
|
60
62
|
// add custom left padding, matching the custom LTR one
|
|
61
|
-
padding-left:
|
|
62
|
-
padding-left:
|
|
63
|
+
padding-left: bf-v-space.$bf-spacing-lg-px + bf-v-space.$bf-spacing-lg-px;
|
|
64
|
+
padding-left: bf-v-space.$bf-spacing-lg-rem + bf-v-space.$bf-spacing-lg-rem;
|
|
63
65
|
}
|