bullframe.css 5.1.0 → 6.1.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/CHANGELOG.md +63 -2
- package/LICENSE +1 -1
- package/README.md +81 -445
- package/dist/css/bullframe-classless-dark.css +1260 -892
- package/dist/css/bullframe-classless-dark.css.map +1 -1
- package/dist/css/bullframe-classless-dark.min.css +1 -3
- package/dist/css/bullframe-classless-dark.min.css.map +1 -1
- package/dist/css/bullframe-classless-system-default.css +1307 -908
- package/dist/css/bullframe-classless-system-default.css.map +1 -1
- package/dist/css/bullframe-classless-system-default.min.css +1 -3
- package/dist/css/bullframe-classless-system-default.min.css.map +1 -1
- package/dist/css/bullframe-classless.css +1083 -713
- package/dist/css/bullframe-classless.css.map +1 -1
- package/dist/css/bullframe-classless.min.css +1 -3
- package/dist/css/bullframe-classless.min.css.map +1 -1
- package/dist/css/bullframe-dark.css +2166 -1541
- package/dist/css/bullframe-dark.css.map +1 -1
- package/dist/css/bullframe-dark.min.css +1 -3
- package/dist/css/bullframe-dark.min.css.map +1 -1
- package/dist/css/bullframe-system-default.css +2083 -1438
- package/dist/css/bullframe-system-default.css.map +1 -1
- package/dist/css/bullframe-system-default.min.css +1 -3
- package/dist/css/bullframe-system-default.min.css.map +1 -1
- package/dist/css/bullframe-utilities.css +846 -503
- package/dist/css/bullframe-utilities.css.map +1 -1
- package/dist/css/bullframe-utilities.min.css +1 -2
- package/dist/css/bullframe-utilities.min.css.map +1 -1
- package/dist/css/bullframe.css +1963 -1328
- package/dist/css/bullframe.css.map +1 -1
- package/dist/css/bullframe.min.css +1 -3
- package/dist/css/bullframe.min.css.map +1 -1
- package/package.json +74 -28
- package/.browserslistrc +0 -3
- package/.editorconfig +0 -15
- package/.htmlhintrc +0 -12
- package/.prettierignore +0 -1
- package/.stylelintignore +0 -3
- package/.stylelintrc.json +0 -26
- package/dist/apple-touch-icon.png +0 -0
- package/dist/css/bullframe-classless-dark-prefers.css +0 -1280
- package/dist/css/bullframe-classless-dark-prefers.css.map +0 -1
- package/dist/css/bullframe-classless-dark-prefers.min.css +0 -3
- package/dist/css/bullframe-classless-dark-prefers.min.css.map +0 -1
- package/dist/css/bullframe-dark-prefers.css +0 -2296
- package/dist/css/bullframe-dark-prefers.css.map +0 -1
- package/dist/css/bullframe-dark-prefers.min.css +0 -3
- package/dist/css/bullframe-dark-prefers.min.css.map +0 -1
- package/dist/docs/demo/index.html +0 -1154
- package/dist/favicon-16x16.png +0 -0
- package/dist/favicon-32x32.png +0 -0
- package/dist/favicon.ico +0 -0
- package/dist/index.css +0 -1
- package/dist/index.js.map +0 -1
- package/dist/placeholder-img-800x400.jpg +0 -0
- package/dist/video-poster.png +0 -0
- package/prettier.config.js +0 -26
- package/src/scss/bullframe-classless-dark-prefers.scss +0 -2
- package/src/scss/bullframe-classless-dark.scss +0 -2
- package/src/scss/bullframe-classless-system-default.scss +0 -2
- package/src/scss/bullframe-classless.scss +0 -49
- package/src/scss/bullframe-dark-prefers.scss +0 -2
- package/src/scss/bullframe-dark.scss +0 -2
- package/src/scss/bullframe-system-default.scss +0 -2
- package/src/scss/bullframe-utilities.scss +0 -21
- package/src/scss/bullframe.scss +0 -49
- package/src/scss/custom/_author-styles.scss +0 -5
- package/src/scss/forms/_forms-normalization.scss +0 -300
- package/src/scss/forms/_forms-styling-radio-checkbox.scss +0 -81
- package/src/scss/forms/_forms-styling-range.scss +0 -106
- package/src/scss/forms/_forms-styling-select.scss +0 -58
- package/src/scss/forms/_forms-styling.scss +0 -118
- package/src/scss/miscellaneous/_misc-accessibility.scss +0 -36
- package/src/scss/miscellaneous/_misc-anchors.scss +0 -37
- package/src/scss/miscellaneous/_misc-embedded-content.scss +0 -117
- package/src/scss/miscellaneous/_misc-focus.scss +0 -80
- package/src/scss/miscellaneous/_misc-interactive.scss +0 -48
- package/src/scss/miscellaneous/_misc-layout.scss +0 -30
- package/src/scss/miscellaneous/_misc-lists.scss +0 -53
- package/src/scss/miscellaneous/_misc-scrolling.scss +0 -5
- package/src/scss/miscellaneous/_misc-shame.scss +0 -37
- package/src/scss/miscellaneous/_misc-tables.scss +0 -53
- package/src/scss/mixins/_mixin-dark-prefers.scss +0 -413
- package/src/scss/mixins/_mixin-dark.scss +0 -415
- package/src/scss/mixins/_mixin-grid-flex.scss +0 -80
- package/src/scss/mixins/_mixin-layout.scss +0 -42
- package/src/scss/mixins/_mixin-texts.scss +0 -37
- package/src/scss/typography/_typography-blockquotes.scss +0 -28
- package/src/scss/typography/_typography-headings.scss +0 -45
- package/src/scss/typography/_typography-html-body.scss +0 -75
- package/src/scss/typography/_typography-misc.scss +0 -90
- package/src/scss/typography/_typography-monospaced-elements.scss +0 -59
- package/src/scss/utilities/_utility-buttons.scss +0 -73
- package/src/scss/utilities/_utility-debugging.scss +0 -31
- package/src/scss/utilities/_utility-embeds.scss +0 -34
- package/src/scss/utilities/_utility-filters.scss +0 -21
- package/src/scss/utilities/_utility-form-states.scss +0 -89
- package/src/scss/utilities/_utility-global-dark-classless.scss +0 -3
- package/src/scss/utilities/_utility-global-dark-prefers-classless.scss +0 -3
- package/src/scss/utilities/_utility-global-dark-prefers.scss +0 -3
- package/src/scss/utilities/_utility-global-dark-scrollbars.scss +0 -34
- package/src/scss/utilities/_utility-global-dark.scss +0 -4
- package/src/scss/utilities/_utility-global-system-default-classless.scss +0 -3
- package/src/scss/utilities/_utility-global-system-default.scss +0 -3
- package/src/scss/utilities/_utility-grid-system.scss +0 -140
- package/src/scss/utilities/_utility-layout.scss +0 -187
- package/src/scss/utilities/_utility-lists.scss +0 -17
- package/src/scss/utilities/_utility-print.scss +0 -101
- package/src/scss/utilities/_utility-reduced-motion.scss +0 -29
- package/src/scss/utilities/_utility-spacing.scss +0 -148
- package/src/scss/utilities/_utility-tables.scss +0 -34
- package/src/scss/utilities/_utility-texts.scss +0 -225
- package/src/scss/utilities/_utility-z-index.scss +0 -83
- package/src/scss/variables/_variables-breakpoints.scss +0 -6
- package/src/scss/variables/_variables-colors.scss +0 -34
- package/src/scss/variables/_variables-spacing.scss +0 -24
- package/src/scss/variables/_variables-texts.scss +0 -8
- package/vite.config.js +0 -148
|
@@ -1,5 +1,87 @@
|
|
|
1
|
-
/* ! Bullframe CSS
|
|
2
|
-
|
|
1
|
+
/* ! Bullframe CSS v6.1.0 | MIT License | https://github.com/marcop135/bullframe.css */
|
|
2
|
+
|
|
3
|
+
/* Classless + system dark via prefers-color-scheme (element styles only). */
|
|
4
|
+
|
|
5
|
+
/* Classless build: semantic element styles only (no .bf-* classes). */
|
|
6
|
+
|
|
7
|
+
/* Variables */
|
|
8
|
+
/* Design tokens (--bf-*). Shared by every build variant.
|
|
9
|
+
* Override on :root (or a scope) to theme without rebuilding. */
|
|
10
|
+
|
|
11
|
+
:root {
|
|
12
|
+
/* Neutrals */
|
|
13
|
+
--bf-white: rgb(255 255 255);
|
|
14
|
+
--bf-light: rgb(240 240 240);
|
|
15
|
+
--bf-gray-light-extra: rgb(233 233 233);
|
|
16
|
+
--bf-gray-light: rgb(204 204 204);
|
|
17
|
+
--bf-gray: rgb(153 153 153);
|
|
18
|
+
--bf-gray-dark: rgb(102 102 102);
|
|
19
|
+
--bf-gray-dark-extra: rgb(51 51 51);
|
|
20
|
+
--bf-dark: rgb(34 34 34);
|
|
21
|
+
--bf-dark-extra: rgb(17 17 17);
|
|
22
|
+
--bf-black: rgb(0 0 0);
|
|
23
|
+
|
|
24
|
+
/* Highlight / mark */
|
|
25
|
+
--bf-yellow-light: rgb(255 255 153);
|
|
26
|
+
--bf-yellow: rgb(255 255 0);
|
|
27
|
+
--bf-orange: rgb(255 165 0);
|
|
28
|
+
|
|
29
|
+
/* Accent: WCAG AA on white (links 4.5:1) and white-on-blue buttons (4.5:1) */
|
|
30
|
+
--bf-blue: rgb(0 86 179);
|
|
31
|
+
--bf-blue-light: rgb(0 65 135);
|
|
32
|
+
--bf-blue-light-extra: rgb(190 216 254);
|
|
33
|
+
|
|
34
|
+
/* Invalid / error */
|
|
35
|
+
--bf-red: rgb(255 0 0);
|
|
36
|
+
|
|
37
|
+
/* Focus ring (prefers-contrast: more raises colour for WCAG 1.4.11) */
|
|
38
|
+
--bf-focus-ring-color: var(--bf-orange);
|
|
39
|
+
--bf-focus-ring-width: 0.2rem;
|
|
40
|
+
--bf-focus-ring-offset: 0.3rem;
|
|
41
|
+
|
|
42
|
+
/* Dark-mode surfaces (used by utility-global-dark*.css) */
|
|
43
|
+
--bf-dark-bg: rgb(28 28 28);
|
|
44
|
+
--bf-dark-link: rgb(77 165 255);
|
|
45
|
+
--bf-dark-link-hover: rgb(77 165 255);
|
|
46
|
+
--bf-dark-border-focus: rgb(26 140 255);
|
|
47
|
+
--bf-dark-shadow-focus: rgb(3 102 214 / 50%);
|
|
48
|
+
--bf-dark-mark-bg: rgb(230 230 0);
|
|
49
|
+
--bf-dark-ins-bg: rgb(255 255 200);
|
|
50
|
+
--bf-dark-button-hover: rgb(184 184 184);
|
|
51
|
+
--bf-dark-button-shadow: rgb(255 255 255 / 45%);
|
|
52
|
+
--bf-dark-invalid: rgb(255 38 38);
|
|
53
|
+
|
|
54
|
+
/* Spacing scale + grid gutter */
|
|
55
|
+
--bf-spacing-sm: 0.25rem;
|
|
56
|
+
--bf-spacing-md: 0.5rem;
|
|
57
|
+
--bf-spacing-lg: 1rem;
|
|
58
|
+
--bf-spacing-xl: 2rem;
|
|
59
|
+
--bf-spacing-xxl: 3rem;
|
|
60
|
+
--bf-spacing-grid-gutter: 1.5rem;
|
|
61
|
+
|
|
62
|
+
/* Type */
|
|
63
|
+
--bf-font-sans-serif:
|
|
64
|
+
-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell,
|
|
65
|
+
'Helvetica Neue', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
|
|
66
|
+
'Segoe UI Symbol', 'Noto Color Emoji';
|
|
67
|
+
--bf-font-serif: Georgia, Times, 'Times New Roman', serif;
|
|
68
|
+
--bf-font-monospace:
|
|
69
|
+
SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
|
|
70
|
+
--bf-body-font-size-rem: 1.6rem;
|
|
71
|
+
--bf-body-line-height: 1.5;
|
|
72
|
+
|
|
73
|
+
/* Breakpoint tokens (documentation / tooling; media queries use literal px below) */
|
|
74
|
+
--bf-breakpoint-xs: 0;
|
|
75
|
+
--bf-breakpoint-sm: 576px;
|
|
76
|
+
--bf-breakpoint-md: 768px;
|
|
77
|
+
--bf-breakpoint-lg: 992px;
|
|
78
|
+
--bf-breakpoint-xl: 1200px;
|
|
79
|
+
--bf-breakpoint-xxl: 1400px;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/* Layout */
|
|
83
|
+
/* Border-box and HTML5 block elements. */
|
|
84
|
+
|
|
3
85
|
*,
|
|
4
86
|
*::before,
|
|
5
87
|
*::after {
|
|
@@ -26,32 +108,211 @@ template {
|
|
|
26
108
|
display: none;
|
|
27
109
|
}
|
|
28
110
|
|
|
29
|
-
[hidden]
|
|
111
|
+
/* [hidden] stays hidden (except until-found). */
|
|
112
|
+
[hidden]:where(:not([hidden='until-found'])) {
|
|
30
113
|
display: none !important;
|
|
31
114
|
}
|
|
115
|
+
/* UA+ enhancements (adapted from https://fokus.dev/tools/uaplus/).
|
|
116
|
+
* Light UA improvements; complements Bullframe base styles. */
|
|
117
|
+
|
|
118
|
+
@layer {
|
|
119
|
+
/* Disable mobile landscape text inflation on optimized layouts. */
|
|
120
|
+
html {
|
|
121
|
+
-webkit-text-size-adjust: none;
|
|
122
|
+
-moz-text-size-adjust: none;
|
|
123
|
+
text-size-adjust: none;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/* Stable scrollbar gutter avoids layout jump on short pages. */
|
|
127
|
+
@supports (scrollbar-gutter: stable) {
|
|
128
|
+
html {
|
|
129
|
+
scrollbar-gutter: stable;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/* Nested h1 size/margin: match modern UA (Safari still nests sectioning styles). */
|
|
134
|
+
h1 {
|
|
135
|
+
font-size: 2em;
|
|
136
|
+
margin-block: 0.67em;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/* mark: system Highlight colors under forced-colors. */
|
|
140
|
+
@media (forced-colors: active) {
|
|
141
|
+
mark {
|
|
142
|
+
color: HighlightText;
|
|
143
|
+
background-color: Highlight;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/* Embedded media: stay within container block/inline size. */
|
|
148
|
+
audio,
|
|
149
|
+
iframe,
|
|
150
|
+
img,
|
|
151
|
+
svg,
|
|
152
|
+
video {
|
|
153
|
+
max-block-size: 100%;
|
|
154
|
+
max-inline-size: 100%;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/* fieldset: avoid min-content overflow from children. */
|
|
158
|
+
fieldset {
|
|
159
|
+
min-inline-size: 0;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/* Labels for text-like controls are block; :has() gated for older engines. */
|
|
163
|
+
@supports selector(:has(*)) {
|
|
164
|
+
label:has(+ input:not([type='radio'], [type='checkbox']), select, textarea) {
|
|
165
|
+
display: block;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/* Taller default textarea when rows is omitted. */
|
|
170
|
+
textarea:not([rows]) {
|
|
171
|
+
min-block-size: 6em;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/* Form controls inherit page font family/size. */
|
|
175
|
+
button,
|
|
176
|
+
input,
|
|
177
|
+
select,
|
|
178
|
+
textarea {
|
|
179
|
+
font-family: inherit;
|
|
180
|
+
font-size: inherit;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/* Search: drop WebKit rounded search chrome. */
|
|
184
|
+
[type='search'] {
|
|
185
|
+
-webkit-appearance: textfield;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/* iOS only: system border/background for search. */
|
|
189
|
+
@supports (-webkit-touch-callout: none) {
|
|
190
|
+
[type='search'] {
|
|
191
|
+
border: 1px solid -apple-system-secondary-label;
|
|
192
|
+
background-color: canvas;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/* Keep tel/url/email/number LTR when a value is present (RTL placeholders stay). */
|
|
197
|
+
input:where([type='tel'], [type='url'], [type='email'], [type='number']):not(
|
|
198
|
+
:-moz-placeholder
|
|
199
|
+
) {
|
|
200
|
+
direction: ltr;
|
|
201
|
+
}
|
|
202
|
+
input:where([type='tel'], [type='url'], [type='email'], [type='number']):not(
|
|
203
|
+
:placeholder-shown
|
|
204
|
+
) {
|
|
205
|
+
direction: ltr;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/* Tables: outer border. Cell borders and padding come from
|
|
209
|
+
* miscellaneous/tables.css, which is unlayered and therefore wins. */
|
|
210
|
+
table {
|
|
211
|
+
border: 1px solid currentColor;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/* Soft dialog / popover enter transitions (skip when reduced-motion is on). */
|
|
215
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
216
|
+
dialog::backdrop {
|
|
217
|
+
background: rgb(0 0 0 / 0.3);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
@supports (overlay: auto) {
|
|
221
|
+
dialog,
|
|
222
|
+
[popover],
|
|
223
|
+
dialog::backdrop {
|
|
224
|
+
opacity: 0;
|
|
225
|
+
transition:
|
|
226
|
+
opacity 300ms ease-out,
|
|
227
|
+
display 300ms allow-discrete,
|
|
228
|
+
overlay 300ms allow-discrete;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
dialog[open],
|
|
232
|
+
:popover-open,
|
|
233
|
+
dialog[open]::backdrop {
|
|
234
|
+
opacity: 1;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
@starting-style {
|
|
238
|
+
dialog[open],
|
|
239
|
+
:popover-open,
|
|
240
|
+
dialog[open]::backdrop {
|
|
241
|
+
opacity: 0;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/* Images as blocks (max-width still from embedded-content.css). */
|
|
248
|
+
img {
|
|
249
|
+
display: block;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/* Popovers: anchor near trigger when position-area is supported. */
|
|
253
|
+
@supports (position-area: block-end span-inline-end) {
|
|
254
|
+
[popover] {
|
|
255
|
+
margin: 0;
|
|
256
|
+
position-area: block-end span-inline-end;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/* Typography */
|
|
262
|
+
/* Root type and page chrome. */
|
|
32
263
|
|
|
33
264
|
html {
|
|
34
265
|
-webkit-text-size-adjust: 100%;
|
|
35
266
|
-moz-text-size-adjust: 100%;
|
|
36
267
|
text-size-adjust: 100%;
|
|
268
|
+
|
|
269
|
+
/* 62.5% root so 1rem ≈ 10px. */
|
|
37
270
|
font-size: 62.5%;
|
|
38
|
-
|
|
39
|
-
|
|
271
|
+
|
|
272
|
+
color: var(--bf-dark);
|
|
273
|
+
font-family: system-ui, sans-serif;
|
|
40
274
|
line-height: 1.15;
|
|
41
|
-
|
|
275
|
+
|
|
276
|
+
/* No tap flash on touch. */
|
|
277
|
+
-webkit-tap-highlight-color: rgb(0 0 0 / 0%);
|
|
42
278
|
}
|
|
43
279
|
|
|
44
280
|
body {
|
|
45
281
|
margin: 0;
|
|
46
|
-
font-size:
|
|
47
|
-
line-height:
|
|
282
|
+
font-size: var(--bf-body-font-size-rem);
|
|
283
|
+
line-height: var(--bf-body-line-height);
|
|
48
284
|
font-weight: 400;
|
|
49
285
|
text-align: left;
|
|
50
|
-
|
|
286
|
+
|
|
287
|
+
/* System UI stack (OS-native). */
|
|
288
|
+
font-family:
|
|
289
|
+
/* Safari / iOS (San Francisco) */
|
|
290
|
+
-apple-system,
|
|
291
|
+
/* Chrome < 56 on macOS (San Francisco) */ BlinkMacSystemFont,
|
|
292
|
+
/* Windows */ 'Segoe UI',
|
|
293
|
+
/* Android */ Roboto,
|
|
294
|
+
/* KDE */ Oxygen-Sans,
|
|
295
|
+
/* Ubuntu */ Ubuntu,
|
|
296
|
+
/* GNOME */ Cantarell,
|
|
297
|
+
/* macOS 10.10 and below */ 'Helvetica Neue',
|
|
298
|
+
Helvetica,
|
|
299
|
+
/* Web fallback */ Arial,
|
|
300
|
+
'Noto Sans',
|
|
301
|
+
sans-serif,
|
|
302
|
+
/* Emoji */ 'Apple Color Emoji',
|
|
303
|
+
'Segoe UI Emoji',
|
|
304
|
+
'Segoe UI Symbol',
|
|
305
|
+
'Noto Color Emoji';
|
|
306
|
+
|
|
307
|
+
/* Ligatures and kerning. */
|
|
51
308
|
text-rendering: optimizeLegibility;
|
|
309
|
+
|
|
310
|
+
/* Long unbroken strings (e.g. headlines) wrap instead of overflowing. */
|
|
52
311
|
word-wrap: break-word;
|
|
53
|
-
|
|
312
|
+
|
|
313
|
+
background-color: var(--bf-white);
|
|
54
314
|
}
|
|
315
|
+
/* Heading scale and rhythm. */
|
|
55
316
|
|
|
56
317
|
h1,
|
|
57
318
|
h2,
|
|
@@ -64,7 +325,19 @@ h6 {
|
|
|
64
325
|
font-family: inherit;
|
|
65
326
|
color: inherit;
|
|
66
327
|
line-height: 1.25;
|
|
67
|
-
margin-bottom:
|
|
328
|
+
margin-bottom: var(--bf-spacing-lg);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
/* Balanced headings where supported; no-op elsewhere. */
|
|
332
|
+
@supports (text-wrap: balance) {
|
|
333
|
+
h1,
|
|
334
|
+
h2,
|
|
335
|
+
h3,
|
|
336
|
+
h4,
|
|
337
|
+
h5,
|
|
338
|
+
h6 {
|
|
339
|
+
text-wrap: balance;
|
|
340
|
+
}
|
|
68
341
|
}
|
|
69
342
|
|
|
70
343
|
h1 {
|
|
@@ -92,9 +365,10 @@ h6 {
|
|
|
92
365
|
font-size: 16px;
|
|
93
366
|
font-size: 1.6rem;
|
|
94
367
|
}
|
|
368
|
+
/* Blockquote and citation. */
|
|
95
369
|
|
|
96
370
|
blockquote {
|
|
97
|
-
margin
|
|
371
|
+
margin: 0 0 var(--bf-spacing-xl);
|
|
98
372
|
padding-left: 0;
|
|
99
373
|
font-style: italic;
|
|
100
374
|
}
|
|
@@ -104,56 +378,24 @@ blockquote p {
|
|
|
104
378
|
}
|
|
105
379
|
|
|
106
380
|
blockquote small {
|
|
107
|
-
color:
|
|
381
|
+
color: var(--bf-gray);
|
|
108
382
|
display: block;
|
|
109
383
|
}
|
|
110
384
|
|
|
111
385
|
blockquote small::before {
|
|
112
|
-
content:
|
|
386
|
+
content: '\2014 \00A0';
|
|
113
387
|
}
|
|
114
388
|
|
|
115
389
|
q {
|
|
116
|
-
quotes:
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
pre {
|
|
120
|
-
margin: 0 0 2rem 0;
|
|
121
|
-
display: block;
|
|
122
|
-
overflow: auto;
|
|
123
|
-
word-break: break-all;
|
|
124
|
-
word-wrap: break-word;
|
|
125
|
-
white-space: pre;
|
|
126
|
-
-webkit-hyphens: none;
|
|
127
|
-
hyphens: none;
|
|
128
|
-
-ms-overflow-style: auto;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
pre,
|
|
132
|
-
code,
|
|
133
|
-
kbd,
|
|
134
|
-
samp {
|
|
135
|
-
font-family: Menlo, Consolas, "Roboto Mono", "Ubuntu Monospace", "Noto Mono", "Oxygen Mono", "Liberation Mono", monospace, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
136
|
-
font-size: 0.875em;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
code {
|
|
140
|
-
word-wrap: break-word;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
a > code {
|
|
144
|
-
color: inherit;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
pre code {
|
|
148
|
-
font-size: inherit;
|
|
149
|
-
color: inherit;
|
|
150
|
-
word-break: normal;
|
|
390
|
+
quotes: '\201C' '\201D' '\2018' '\2019';
|
|
151
391
|
}
|
|
392
|
+
/* Paragraphs, abbr, mark/ins, emphasis, sub/sup, small, hr. */
|
|
152
393
|
|
|
153
394
|
p {
|
|
154
|
-
margin: 0 0
|
|
395
|
+
margin: 0 0 var(--bf-spacing-xl) 0;
|
|
155
396
|
}
|
|
156
397
|
|
|
398
|
+
/* abbr (Bootstrap 4): dotted underline + help cursor. */
|
|
157
399
|
abbr[title],
|
|
158
400
|
abbr[data-original-title] {
|
|
159
401
|
cursor: help;
|
|
@@ -164,24 +406,25 @@ abbr[data-original-title] {
|
|
|
164
406
|
}
|
|
165
407
|
|
|
166
408
|
mark {
|
|
167
|
-
background-color:
|
|
168
|
-
color:
|
|
409
|
+
background-color: var(--bf-yellow);
|
|
410
|
+
color: var(--bf-black);
|
|
169
411
|
}
|
|
170
412
|
|
|
171
413
|
ins {
|
|
172
|
-
background-color:
|
|
173
|
-
color:
|
|
414
|
+
background-color: var(--bf-yellow-light);
|
|
415
|
+
color: var(--bf-black);
|
|
174
416
|
text-decoration: none;
|
|
175
417
|
}
|
|
176
418
|
|
|
419
|
+
/* Inherit first so Safari does not double-apply bolder, then set bolder. */
|
|
177
420
|
b,
|
|
178
421
|
strong {
|
|
179
422
|
font-weight: inherit;
|
|
180
423
|
}
|
|
181
424
|
|
|
425
|
+
/* stylelint-disable-next-line no-duplicate-selectors -- normalize.css Safari fix */
|
|
182
426
|
b,
|
|
183
427
|
strong {
|
|
184
|
-
/* stylelint-disable-next-line */
|
|
185
428
|
font-weight: bolder;
|
|
186
429
|
}
|
|
187
430
|
|
|
@@ -211,8 +454,11 @@ small {
|
|
|
211
454
|
font-size: 80%;
|
|
212
455
|
}
|
|
213
456
|
|
|
214
|
-
|
|
215
|
-
|
|
457
|
+
/* Tighter leading when a paragraph contains <small>. */
|
|
458
|
+
@supports selector(:has(*)) {
|
|
459
|
+
p:has(small) {
|
|
460
|
+
line-height: 1.25;
|
|
461
|
+
}
|
|
216
462
|
}
|
|
217
463
|
|
|
218
464
|
hr {
|
|
@@ -222,500 +468,227 @@ hr {
|
|
|
222
468
|
border-style: solid;
|
|
223
469
|
border-width: 1px 0 0;
|
|
224
470
|
color: inherit;
|
|
225
|
-
margin:
|
|
471
|
+
margin: var(--bf-spacing-xl) 0;
|
|
226
472
|
padding: 0;
|
|
227
|
-
overflow: visible;
|
|
473
|
+
overflow: visible; /* Edge: show overflow. */
|
|
228
474
|
}
|
|
475
|
+
/* pre / code / kbd / samp. */
|
|
229
476
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
477
|
+
pre {
|
|
478
|
+
margin: 0 0 var(--bf-spacing-xl) 0;
|
|
479
|
+
|
|
480
|
+
display: block;
|
|
481
|
+
overflow: auto;
|
|
482
|
+
word-break: break-all; /* WebKit */
|
|
483
|
+
word-wrap: break-word;
|
|
484
|
+
white-space: pre;
|
|
485
|
+
hyphens: none;
|
|
486
|
+
|
|
487
|
+
/* Keep scrollbars visible in legacy Edge.
|
|
488
|
+
* https://github.com/twbs/bootstrap/pull/30685 */
|
|
489
|
+
-ms-overflow-style: auto;
|
|
234
490
|
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
491
|
+
|
|
492
|
+
pre,
|
|
493
|
+
code,
|
|
494
|
+
kbd,
|
|
495
|
+
samp {
|
|
496
|
+
font-family:
|
|
497
|
+
/* macOS 10.10+ */
|
|
498
|
+
Menlo, Consolas, 'Roboto Mono', 'Ubuntu Monospace', 'Noto Mono', 'Oxygen Mono',
|
|
499
|
+
'Liberation Mono', monospace, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
|
|
500
|
+
'Noto Color Emoji';
|
|
501
|
+
|
|
502
|
+
/* Mono faces read large; use a slightly smaller size. */
|
|
503
|
+
font-size: 0.875em;
|
|
238
504
|
}
|
|
239
505
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
text-decoration: none;
|
|
506
|
+
code {
|
|
507
|
+
word-wrap: break-word;
|
|
243
508
|
}
|
|
244
509
|
|
|
245
|
-
a
|
|
246
|
-
a:not([href], [class]):hover {
|
|
510
|
+
a > code {
|
|
247
511
|
color: inherit;
|
|
248
|
-
text-decoration: none;
|
|
249
512
|
}
|
|
250
513
|
|
|
251
|
-
|
|
252
|
-
|
|
514
|
+
pre code {
|
|
515
|
+
font-size: inherit;
|
|
516
|
+
color: inherit;
|
|
517
|
+
word-break: normal;
|
|
253
518
|
}
|
|
254
519
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
}
|
|
520
|
+
/* Forms */
|
|
521
|
+
/* Form control reset: inheritance, sizing, and UA quirks. */
|
|
258
522
|
|
|
259
|
-
:where(
|
|
260
|
-
|
|
523
|
+
:where(html input, button, select, optgroup, textarea) {
|
|
524
|
+
color: inherit;
|
|
525
|
+
font-family: inherit;
|
|
526
|
+
font-size: inherit;
|
|
527
|
+
line-height: inherit;
|
|
261
528
|
}
|
|
262
529
|
|
|
263
|
-
:where(
|
|
264
|
-
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
:where(:focus-visible) {
|
|
268
|
-
outline: 2px solid orange;
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
:where(button,
|
|
272
|
-
[type=button],
|
|
273
|
-
[type=reset],
|
|
274
|
-
[type=submit],
|
|
275
|
-
[type=email],
|
|
276
|
-
[type=number],
|
|
277
|
-
[type=password],
|
|
278
|
-
[type=tel],
|
|
279
|
-
[type=search],
|
|
280
|
-
[type=text],
|
|
281
|
-
[type=date],
|
|
282
|
-
[type=datetime-local],
|
|
283
|
-
[type=month],
|
|
284
|
-
[type=time],
|
|
285
|
-
[type=week],
|
|
286
|
-
[type=url],
|
|
287
|
-
[type=radio],
|
|
288
|
-
[type=checkbox],
|
|
289
|
-
input[list],
|
|
290
|
-
select,
|
|
291
|
-
textarea):focus {
|
|
292
|
-
outline: 0;
|
|
530
|
+
:where(html input, button, [type='radio'], [type='checkbox'], select, optgroup, textarea) {
|
|
531
|
+
margin: 0;
|
|
293
532
|
}
|
|
294
533
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
ul,
|
|
298
|
-
dl {
|
|
299
|
-
margin: 0 0 2rem 0;
|
|
300
|
-
padding: 0;
|
|
534
|
+
:where(html input, select, textarea, legend) {
|
|
535
|
+
width: 100%;
|
|
301
536
|
}
|
|
302
537
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
538
|
+
/* Shrink-to-content controls stay auto-width. */
|
|
539
|
+
:where(
|
|
540
|
+
html label,
|
|
541
|
+
button,
|
|
542
|
+
[type='image'],
|
|
543
|
+
[type='submit'],
|
|
544
|
+
[type='reset'],
|
|
545
|
+
html [type='button'],
|
|
546
|
+
[type='radio'],
|
|
547
|
+
[type='checkbox']
|
|
548
|
+
) {
|
|
549
|
+
width: auto;
|
|
311
550
|
}
|
|
312
551
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
552
|
+
/* inline-block: consistent sizing and vertical-align across engines. */
|
|
553
|
+
:where(
|
|
554
|
+
html input,
|
|
555
|
+
label,
|
|
556
|
+
select,
|
|
557
|
+
textarea,
|
|
558
|
+
button,
|
|
559
|
+
html [type='button'],
|
|
560
|
+
[type='reset'],
|
|
561
|
+
[type='submit'],
|
|
562
|
+
output
|
|
563
|
+
) {
|
|
564
|
+
display: inline-block;
|
|
316
565
|
}
|
|
317
566
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
list-style-image: none;
|
|
322
|
-
margin-left: 0;
|
|
567
|
+
:where([type='file']) {
|
|
568
|
+
display: block;
|
|
569
|
+
background-color: transparent;
|
|
323
570
|
}
|
|
324
571
|
|
|
325
|
-
|
|
326
|
-
|
|
572
|
+
:where(button, html input, select, textarea) {
|
|
573
|
+
background-image: none;
|
|
327
574
|
}
|
|
328
575
|
|
|
329
|
-
|
|
330
|
-
|
|
576
|
+
:where(input, select, textarea) {
|
|
577
|
+
vertical-align: baseline;
|
|
331
578
|
}
|
|
332
579
|
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
position: absolute;
|
|
580
|
+
:where(form) {
|
|
581
|
+
margin: 0;
|
|
336
582
|
}
|
|
337
583
|
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
584
|
+
/* Drop fieldset min-content width so nested grids can shrink. */
|
|
585
|
+
:where(fieldset) {
|
|
586
|
+
border: 0;
|
|
587
|
+
padding: 0;
|
|
588
|
+
margin: 0;
|
|
589
|
+
min-width: 0;
|
|
343
590
|
}
|
|
344
591
|
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
audio,
|
|
348
|
-
video,
|
|
349
|
-
iframe,
|
|
350
|
-
object,
|
|
351
|
-
embed {
|
|
592
|
+
:where(legend) {
|
|
593
|
+
display: table; /* Text wrapping in Edge / IE. */
|
|
352
594
|
max-width: 100%;
|
|
595
|
+
white-space: normal;
|
|
596
|
+
border: 0;
|
|
597
|
+
padding: 0;
|
|
598
|
+
font-weight: 400;
|
|
599
|
+
margin-bottom: var(--bf-spacing-md);
|
|
600
|
+
font-size: inherit;
|
|
601
|
+
line-height: 1.375;
|
|
602
|
+
color: inherit;
|
|
353
603
|
}
|
|
354
604
|
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
vertical-align: middle;
|
|
605
|
+
:where(label) {
|
|
606
|
+
font-weight: 400;
|
|
607
|
+
font-size: 90%;
|
|
608
|
+
line-height: 1.375;
|
|
609
|
+
margin-bottom: var(--bf-spacing-md);
|
|
361
610
|
}
|
|
362
611
|
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
border-style: none;
|
|
612
|
+
:where(label input, label select, label textarea) {
|
|
613
|
+
font-size: 110%;
|
|
366
614
|
}
|
|
367
615
|
|
|
368
|
-
|
|
369
|
-
|
|
616
|
+
::-webkit-inner-spin-button {
|
|
617
|
+
height: auto;
|
|
370
618
|
}
|
|
371
619
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
620
|
+
::-webkit-datetime-edit-fields-wrapper,
|
|
621
|
+
::-webkit-datetime-edit-text,
|
|
622
|
+
::-webkit-datetime-edit-minute,
|
|
623
|
+
::-webkit-datetime-edit-hour-field,
|
|
624
|
+
::-webkit-datetime-edit-day-field,
|
|
625
|
+
::-webkit-datetime-edit-month-field,
|
|
626
|
+
::-webkit-datetime-edit-year-field {
|
|
627
|
+
padding: 0;
|
|
375
628
|
}
|
|
376
629
|
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
font-size: 90%;
|
|
630
|
+
::-webkit-color-swatch-wrapper {
|
|
631
|
+
padding: 0;
|
|
380
632
|
}
|
|
381
633
|
|
|
382
|
-
|
|
383
|
-
|
|
634
|
+
:where([type='search']) {
|
|
635
|
+
outline-offset: calc(-1 * var(--bf-spacing-sm));
|
|
384
636
|
}
|
|
385
637
|
|
|
386
|
-
|
|
387
|
-
|
|
638
|
+
:where(output) {
|
|
639
|
+
vertical-align: middle;
|
|
388
640
|
}
|
|
389
641
|
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
height: 0;
|
|
642
|
+
:where(button, select) {
|
|
643
|
+
text-transform: none;
|
|
393
644
|
}
|
|
394
645
|
|
|
395
|
-
|
|
396
|
-
|
|
646
|
+
:where(select) {
|
|
647
|
+
word-wrap: normal;
|
|
397
648
|
}
|
|
398
649
|
|
|
399
|
-
|
|
400
|
-
|
|
650
|
+
/* Hide WebKit datalist picker chrome (Bootstrap Reboot 5.2).
|
|
651
|
+
* https://unpkg.com/browse/bootstrap@5.2.0/dist/css/bootstrap-reboot.css */
|
|
652
|
+
:where([list]):not(
|
|
653
|
+
[type='date'],
|
|
654
|
+
[type='datetime-local'],
|
|
655
|
+
[type='month'],
|
|
656
|
+
[type='week'],
|
|
657
|
+
[type='time']
|
|
658
|
+
)::-webkit-calendar-picker-indicator {
|
|
659
|
+
display: none !important;
|
|
401
660
|
}
|
|
402
661
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
max-width: 100%;
|
|
662
|
+
:where(optgroup) {
|
|
663
|
+
font-family: inherit;
|
|
664
|
+
font-size: inherit;
|
|
665
|
+
font-style: inherit; /* Families without a 600 face. */
|
|
666
|
+
font-weight: 600;
|
|
409
667
|
}
|
|
410
668
|
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
address {
|
|
435
|
-
font-style: normal;
|
|
436
|
-
margin-bottom: 10px;
|
|
437
|
-
margin-bottom: 1rem;
|
|
438
|
-
line-height: inherit;
|
|
439
|
-
}
|
|
440
|
-
|
|
441
|
-
details > summary:first-of-type {
|
|
442
|
-
display: list-item;
|
|
443
|
-
}
|
|
444
|
-
|
|
445
|
-
summary {
|
|
446
|
-
cursor: pointer;
|
|
447
|
-
font-weight: 700;
|
|
448
|
-
word-break: break-all;
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
dialog {
|
|
452
|
-
background-color: #fff;
|
|
453
|
-
color: #222;
|
|
454
|
-
border: none;
|
|
455
|
-
border-radius: 0.25rem;
|
|
456
|
-
padding: 20px;
|
|
457
|
-
padding: 2rem;
|
|
458
|
-
height: -moz-fit-content;
|
|
459
|
-
height: fit-content;
|
|
460
|
-
min-width: 25rem;
|
|
461
|
-
max-width: calc(100vw - 3rem);
|
|
462
|
-
}
|
|
463
|
-
@media (min-width: 768px) {
|
|
464
|
-
dialog {
|
|
465
|
-
max-width: 50rem;
|
|
466
|
-
}
|
|
467
|
-
}
|
|
468
|
-
|
|
469
|
-
dialog[open] {
|
|
470
|
-
display: block !important;
|
|
471
|
-
}
|
|
472
|
-
|
|
473
|
-
dialog::backdrop {
|
|
474
|
-
background: rgba(0, 0, 0, 0.4);
|
|
475
|
-
}
|
|
476
|
-
|
|
477
|
-
@media (prefers-reduced-motion: no-preference) {
|
|
478
|
-
:root {
|
|
479
|
-
scroll-behavior: smooth;
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
table {
|
|
483
|
-
caption-side: bottom;
|
|
484
|
-
max-width: 100%;
|
|
485
|
-
border-collapse: collapse;
|
|
486
|
-
border-color: currentcolor;
|
|
487
|
-
text-indent: 0;
|
|
488
|
-
}
|
|
489
|
-
|
|
490
|
-
thead,
|
|
491
|
-
tbody,
|
|
492
|
-
tfoot,
|
|
493
|
-
tr,
|
|
494
|
-
td,
|
|
495
|
-
th {
|
|
496
|
-
border-color: inherit;
|
|
497
|
-
border-style: solid;
|
|
498
|
-
border-width: 0;
|
|
499
|
-
}
|
|
500
|
-
|
|
501
|
-
thead th {
|
|
502
|
-
vertical-align: bottom;
|
|
503
|
-
}
|
|
504
|
-
|
|
505
|
-
th,
|
|
506
|
-
td {
|
|
507
|
-
vertical-align: top;
|
|
508
|
-
}
|
|
509
|
-
|
|
510
|
-
th {
|
|
511
|
-
text-align: inherit;
|
|
512
|
-
text-align: -webkit-match-parent;
|
|
513
|
-
font-weight: 700;
|
|
514
|
-
}
|
|
515
|
-
|
|
516
|
-
caption {
|
|
517
|
-
padding-top: 0.5rem;
|
|
518
|
-
padding-bottom: 0.5rem;
|
|
519
|
-
color: #999;
|
|
520
|
-
text-align: left;
|
|
521
|
-
caption-side: bottom;
|
|
522
|
-
line-height: 1.375;
|
|
523
|
-
font-size: 90%;
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
/* Accessibility
|
|
527
|
-
* ========================================================================== */
|
|
528
|
-
/**
|
|
529
|
-
* Change the cursor on busy elements in all browsers (opinionated).
|
|
530
|
-
*/
|
|
531
|
-
:where([aria-busy=true i]) {
|
|
532
|
-
cursor: progress;
|
|
533
|
-
}
|
|
534
|
-
|
|
535
|
-
/*
|
|
536
|
-
* Change the cursor on disabled, not-editable, or otherwise
|
|
537
|
-
* inoperable elements in all browsers (opinionated).
|
|
538
|
-
*/
|
|
539
|
-
:where([aria-disabled=true i], [disabled]) {
|
|
540
|
-
cursor: not-allowed;
|
|
541
|
-
}
|
|
542
|
-
|
|
543
|
-
/*
|
|
544
|
-
* Change the display on visually hidden accessible elements
|
|
545
|
-
* in all browsers (opinionated).
|
|
546
|
-
*/
|
|
547
|
-
:where([aria-hidden=false i][hidden]) {
|
|
548
|
-
display: initial;
|
|
549
|
-
}
|
|
550
|
-
|
|
551
|
-
:where([aria-hidden=false i][hidden]:not(:focus)) {
|
|
552
|
-
clip: rect(0, 0, 0, 0);
|
|
553
|
-
position: absolute;
|
|
554
|
-
}
|
|
555
|
-
|
|
556
|
-
:where(html input, button, select, optgroup, textarea) {
|
|
557
|
-
color: inherit;
|
|
558
|
-
font-family: inherit;
|
|
559
|
-
font-size: inherit;
|
|
560
|
-
line-height: inherit;
|
|
561
|
-
}
|
|
562
|
-
|
|
563
|
-
:where(html input,
|
|
564
|
-
button,
|
|
565
|
-
[type=radio],
|
|
566
|
-
[type=checkbox],
|
|
567
|
-
select,
|
|
568
|
-
optgroup,
|
|
569
|
-
textarea) {
|
|
570
|
-
margin: 0;
|
|
571
|
-
}
|
|
572
|
-
|
|
573
|
-
:where(html input, select, textarea, legend) {
|
|
574
|
-
width: 100%;
|
|
575
|
-
}
|
|
576
|
-
|
|
577
|
-
:where(html label,
|
|
578
|
-
button,
|
|
579
|
-
[type=image],
|
|
580
|
-
[type=submit],
|
|
581
|
-
[type=reset],
|
|
582
|
-
html [type=button],
|
|
583
|
-
[type=radio],
|
|
584
|
-
[type=checkbox]) {
|
|
585
|
-
width: auto;
|
|
586
|
-
}
|
|
587
|
-
|
|
588
|
-
:where(html input,
|
|
589
|
-
label,
|
|
590
|
-
select,
|
|
591
|
-
textarea,
|
|
592
|
-
button,
|
|
593
|
-
html [type=button],
|
|
594
|
-
[type=reset],
|
|
595
|
-
[type=submit],
|
|
596
|
-
output) {
|
|
597
|
-
display: inline-block;
|
|
598
|
-
}
|
|
599
|
-
|
|
600
|
-
:where([type=file]) {
|
|
601
|
-
display: block;
|
|
602
|
-
background-color: transparent;
|
|
603
|
-
}
|
|
604
|
-
|
|
605
|
-
:where(button, html input, select, textarea) {
|
|
606
|
-
background-image: none;
|
|
607
|
-
}
|
|
608
|
-
|
|
609
|
-
:where(input, select, textarea) {
|
|
610
|
-
vertical-align: baseline;
|
|
611
|
-
}
|
|
612
|
-
|
|
613
|
-
:where(form) {
|
|
614
|
-
margin: 0;
|
|
615
|
-
}
|
|
616
|
-
|
|
617
|
-
:where(fieldset) {
|
|
618
|
-
border: 0;
|
|
619
|
-
padding: 0;
|
|
620
|
-
margin: 0;
|
|
621
|
-
min-width: 0;
|
|
622
|
-
}
|
|
623
|
-
|
|
624
|
-
:where(legend) {
|
|
625
|
-
display: table;
|
|
626
|
-
max-width: 100%;
|
|
627
|
-
white-space: normal;
|
|
628
|
-
border: 0;
|
|
629
|
-
padding: 0;
|
|
630
|
-
font-weight: 400;
|
|
631
|
-
margin-bottom: 5px;
|
|
632
|
-
margin-bottom: 0.5rem;
|
|
633
|
-
font-size: inherit;
|
|
634
|
-
line-height: 1.375;
|
|
635
|
-
color: inherit;
|
|
636
|
-
}
|
|
637
|
-
|
|
638
|
-
:where(label) {
|
|
639
|
-
font-weight: 400;
|
|
640
|
-
font-size: 90%;
|
|
641
|
-
line-height: 1.375;
|
|
642
|
-
margin-bottom: 5px;
|
|
643
|
-
margin-bottom: 0.5rem;
|
|
644
|
-
}
|
|
645
|
-
|
|
646
|
-
:where(label input, label select, label textarea) {
|
|
647
|
-
font-size: 110%;
|
|
648
|
-
}
|
|
649
|
-
|
|
650
|
-
::-webkit-inner-spin-button {
|
|
651
|
-
height: auto;
|
|
652
|
-
}
|
|
653
|
-
|
|
654
|
-
::-webkit-datetime-edit-fields-wrapper,
|
|
655
|
-
::-webkit-datetime-edit-text,
|
|
656
|
-
::-webkit-datetime-edit-minute,
|
|
657
|
-
::-webkit-datetime-edit-hour-field,
|
|
658
|
-
::-webkit-datetime-edit-day-field,
|
|
659
|
-
::-webkit-datetime-edit-month-field,
|
|
660
|
-
::-webkit-datetime-edit-year-field {
|
|
661
|
-
padding: 0;
|
|
662
|
-
}
|
|
663
|
-
|
|
664
|
-
::-webkit-color-swatch-wrapper {
|
|
665
|
-
padding: 0;
|
|
666
|
-
}
|
|
667
|
-
|
|
668
|
-
:where([type=search]) {
|
|
669
|
-
outline-offset: -0.25rem;
|
|
670
|
-
}
|
|
671
|
-
|
|
672
|
-
:where(output) {
|
|
673
|
-
vertical-align: middle;
|
|
674
|
-
}
|
|
675
|
-
|
|
676
|
-
:where(button, select) {
|
|
677
|
-
text-transform: none;
|
|
678
|
-
}
|
|
679
|
-
|
|
680
|
-
:where(select) {
|
|
681
|
-
word-wrap: normal;
|
|
682
|
-
}
|
|
683
|
-
|
|
684
|
-
:where([list]):not([type=date],
|
|
685
|
-
[type=datetime-local],
|
|
686
|
-
[type=month],
|
|
687
|
-
[type=week],
|
|
688
|
-
[type=time])::-webkit-calendar-picker-indicator {
|
|
689
|
-
display: none !important;
|
|
690
|
-
}
|
|
691
|
-
|
|
692
|
-
:where(optgroup) {
|
|
693
|
-
font-family: inherit;
|
|
694
|
-
font-size: inherit;
|
|
695
|
-
font-style: inherit;
|
|
696
|
-
font-weight: 600;
|
|
697
|
-
}
|
|
698
|
-
|
|
699
|
-
:where(button,
|
|
700
|
-
html [type=button],
|
|
701
|
-
[type=reset],
|
|
702
|
-
[type=submit],
|
|
703
|
-
[type=email],
|
|
704
|
-
[type=number],
|
|
705
|
-
[type=text],
|
|
706
|
-
[type=tel],
|
|
707
|
-
[type=date],
|
|
708
|
-
[type=datetime-local],
|
|
709
|
-
[type=month],
|
|
710
|
-
[type=week],
|
|
711
|
-
[type=url],
|
|
712
|
-
[type=image],
|
|
713
|
-
[type=password],
|
|
714
|
-
[type=search],
|
|
715
|
-
[type=search]::-webkit-search-decoration,
|
|
716
|
-
[type=search]::-webkit-search-cancel-button,
|
|
717
|
-
input[list],
|
|
718
|
-
textarea) {
|
|
669
|
+
/* Reset WebKit / Blink appearance on text-like controls. */
|
|
670
|
+
:where(
|
|
671
|
+
button,
|
|
672
|
+
html [type='button'],
|
|
673
|
+
[type='reset'],
|
|
674
|
+
[type='submit'],
|
|
675
|
+
[type='email'],
|
|
676
|
+
[type='number'],
|
|
677
|
+
[type='text'],
|
|
678
|
+
[type='tel'],
|
|
679
|
+
[type='date'],
|
|
680
|
+
[type='datetime-local'],
|
|
681
|
+
[type='month'],
|
|
682
|
+
[type='week'],
|
|
683
|
+
[type='url'],
|
|
684
|
+
[type='image'],
|
|
685
|
+
[type='password'],
|
|
686
|
+
[type='search'],
|
|
687
|
+
[type='search']::-webkit-search-decoration,
|
|
688
|
+
[type='search']::-webkit-search-cancel-button,
|
|
689
|
+
input[list],
|
|
690
|
+
textarea
|
|
691
|
+
) {
|
|
719
692
|
-webkit-appearance: none;
|
|
720
693
|
appearance: none;
|
|
721
694
|
}
|
|
@@ -728,23 +701,23 @@ textarea) {
|
|
|
728
701
|
}
|
|
729
702
|
|
|
730
703
|
:where(button, input, select, textarea) {
|
|
731
|
-
border-radius:
|
|
704
|
+
border-radius: var(--bf-spacing-sm);
|
|
732
705
|
}
|
|
733
706
|
|
|
734
|
-
:where([type=radio]) {
|
|
707
|
+
:where([type='radio']) {
|
|
735
708
|
border-radius: 50%;
|
|
736
709
|
}
|
|
737
710
|
|
|
738
|
-
:where([type=checkbox]) {
|
|
739
|
-
border-radius:
|
|
711
|
+
:where([type='checkbox']) {
|
|
712
|
+
border-radius: var(--bf-spacing-md);
|
|
740
713
|
}
|
|
741
714
|
|
|
742
|
-
:where([type=radio], [type=checkbox]) {
|
|
715
|
+
:where([type='radio'], [type='checkbox']) {
|
|
743
716
|
padding: 0;
|
|
744
|
-
background-color:
|
|
717
|
+
background-color: var(--bf-white);
|
|
745
718
|
}
|
|
746
719
|
|
|
747
|
-
:where([type=range i]) {
|
|
720
|
+
:where([type='range' i]) {
|
|
748
721
|
background-color: transparent;
|
|
749
722
|
}
|
|
750
723
|
|
|
@@ -765,161 +738,194 @@ textarea) {
|
|
|
765
738
|
resize: vertical;
|
|
766
739
|
}
|
|
767
740
|
|
|
741
|
+
/* Firefox: strip inner focus padding/border. */
|
|
768
742
|
::-moz-focus-inner {
|
|
769
743
|
padding: 0;
|
|
770
744
|
border-style: none;
|
|
771
745
|
}
|
|
772
746
|
|
|
773
|
-
:where(button, [type=button], [type=reset], [type=submit]) {
|
|
747
|
+
:where(button, [type='button'], [type='reset'], [type='submit']) {
|
|
774
748
|
line-height: normal;
|
|
775
749
|
text-align: center;
|
|
776
750
|
margin: 0;
|
|
777
751
|
background-clip: padding-box;
|
|
778
752
|
vertical-align: baseline;
|
|
779
753
|
overflow: visible;
|
|
780
|
-
-webkit-tap-highlight-color:
|
|
754
|
+
-webkit-tap-highlight-color: rgb(0 0 0 / 0%);
|
|
781
755
|
-webkit-user-select: none;
|
|
782
756
|
-moz-user-select: none;
|
|
783
757
|
user-select: none;
|
|
784
758
|
border: 0;
|
|
785
|
-
background-image: none;
|
|
759
|
+
background-image: none; /* Firefox mobile */
|
|
786
760
|
}
|
|
787
|
-
|
|
761
|
+
|
|
762
|
+
:where(button, [type='button'], [type='reset'], [type='submit']):hover,
|
|
763
|
+
:where(button, [type='button'], [type='reset'], [type='submit']):active,
|
|
764
|
+
:where(button, [type='button'], [type='reset'], [type='submit']):focus {
|
|
788
765
|
text-decoration: none;
|
|
789
|
-
color:
|
|
766
|
+
color: var(--bf-dark);
|
|
790
767
|
}
|
|
791
768
|
|
|
792
|
-
:where(
|
|
793
|
-
|
|
794
|
-
[type=
|
|
795
|
-
[type=
|
|
769
|
+
:where(
|
|
770
|
+
button:not(:disabled),
|
|
771
|
+
[type='button']:not(:disabled),
|
|
772
|
+
[type='reset']:not(:disabled),
|
|
773
|
+
[type='submit']:not(:disabled)
|
|
774
|
+
) {
|
|
796
775
|
cursor: pointer;
|
|
797
776
|
}
|
|
798
777
|
|
|
778
|
+
/* Firefox: input color must not override placeholder color.
|
|
779
|
+
* https://github.com/necolas/normalize.css/issues/150 */
|
|
799
780
|
:where(input::-moz-placeholder, textarea::-moz-placeholder) {
|
|
800
|
-
color:
|
|
781
|
+
color: var(--bf-gray-dark);
|
|
801
782
|
}
|
|
802
|
-
|
|
803
783
|
:where(input::placeholder, textarea::placeholder) {
|
|
804
|
-
color:
|
|
784
|
+
color: var(--bf-gray-dark);
|
|
805
785
|
}
|
|
806
786
|
|
|
807
|
-
/*
|
|
808
|
-
Use the modern Firefox focus style for all focusable elements.
|
|
809
|
-
*/
|
|
787
|
+
/* Firefox: modern focus ring on all focusable elements. */
|
|
810
788
|
:-moz-focusring {
|
|
811
789
|
outline: auto;
|
|
812
790
|
}
|
|
813
791
|
|
|
792
|
+
/* Firefox: drop :-moz-ui-invalid glow; use .bf-invalid for JS validation.
|
|
793
|
+
* https://developer.mozilla.org/en-US/docs/Web/CSS/:-moz-ui-invalid */
|
|
814
794
|
:-moz-ui-invalid {
|
|
815
795
|
box-shadow: none;
|
|
816
796
|
}
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
[type=
|
|
821
|
-
[type=
|
|
822
|
-
[type=
|
|
823
|
-
[type=
|
|
824
|
-
[type=
|
|
825
|
-
[type=
|
|
826
|
-
[type=
|
|
827
|
-
[type=
|
|
828
|
-
[type=
|
|
829
|
-
[type=
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
:
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
[type=
|
|
843
|
-
[type=
|
|
844
|
-
[type=
|
|
845
|
-
[type=
|
|
846
|
-
[type=
|
|
847
|
-
[type=
|
|
848
|
-
[type=
|
|
849
|
-
[type=
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
[type=
|
|
854
|
-
[
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
[type=
|
|
858
|
-
[type=
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
[type=
|
|
862
|
-
[type=
|
|
863
|
-
[type=
|
|
864
|
-
[type=
|
|
865
|
-
[type=
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
[type=
|
|
870
|
-
[type=
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
797
|
+
/* Form field and button chrome (borders, focus, disabled). */
|
|
798
|
+
|
|
799
|
+
:where(
|
|
800
|
+
[type='email'],
|
|
801
|
+
[type='number'],
|
|
802
|
+
[type='password'],
|
|
803
|
+
[type='tel'],
|
|
804
|
+
[type='search'],
|
|
805
|
+
[type='text'],
|
|
806
|
+
[type='date'],
|
|
807
|
+
[type='datetime-local'],
|
|
808
|
+
[type='month'],
|
|
809
|
+
[type='week'],
|
|
810
|
+
[type='time'],
|
|
811
|
+
[type='url'],
|
|
812
|
+
input[list],
|
|
813
|
+
select,
|
|
814
|
+
textarea
|
|
815
|
+
) {
|
|
816
|
+
background-color: var(--bf-white);
|
|
817
|
+
border: 1px solid var(--bf-gray);
|
|
818
|
+
padding: var(--bf-spacing-md) calc(var(--bf-spacing-lg) * 0.75);
|
|
819
|
+
}
|
|
820
|
+
|
|
821
|
+
:where(
|
|
822
|
+
[type='email'],
|
|
823
|
+
[type='number'],
|
|
824
|
+
[type='password'],
|
|
825
|
+
[type='tel'],
|
|
826
|
+
[type='search'],
|
|
827
|
+
[type='text'],
|
|
828
|
+
[type='date'],
|
|
829
|
+
[type='datetime-local'],
|
|
830
|
+
[type='month'],
|
|
831
|
+
[type='week'],
|
|
832
|
+
[type='time'],
|
|
833
|
+
[type='url'],
|
|
834
|
+
input[list],
|
|
835
|
+
select,
|
|
836
|
+
textarea,
|
|
837
|
+
[type='radio'],
|
|
838
|
+
[type='checkbox']
|
|
839
|
+
):active,
|
|
840
|
+
:where(
|
|
841
|
+
[type='email'],
|
|
842
|
+
[type='number'],
|
|
843
|
+
[type='password'],
|
|
844
|
+
[type='tel'],
|
|
845
|
+
[type='search'],
|
|
846
|
+
[type='text'],
|
|
847
|
+
[type='date'],
|
|
848
|
+
[type='datetime-local'],
|
|
849
|
+
[type='month'],
|
|
850
|
+
[type='week'],
|
|
851
|
+
[type='time'],
|
|
852
|
+
[type='url'],
|
|
853
|
+
input[list],
|
|
854
|
+
select,
|
|
855
|
+
textarea,
|
|
856
|
+
[type='radio'],
|
|
857
|
+
[type='checkbox']
|
|
858
|
+
):focus {
|
|
859
|
+
transition:
|
|
860
|
+
border 0.2s,
|
|
861
|
+
background-color 0.2s,
|
|
862
|
+
box-shadow 0.2s;
|
|
863
|
+
border-color: var(--bf-blue);
|
|
864
|
+
box-shadow: 0 0 0 3px rgb(0 86 179 / 25%);
|
|
865
|
+
}
|
|
866
|
+
|
|
867
|
+
:where(button, [type='button'], [type='reset'], [type='submit']) {
|
|
868
|
+
color: var(--bf-dark);
|
|
869
|
+
padding: calc(var(--bf-spacing-xl) / 3) calc(calc(var(--bf-spacing-xl) / 3) * 2);
|
|
870
|
+
background: var(--bf-gray-light);
|
|
871
|
+
transition:
|
|
872
|
+
color 0.2s,
|
|
873
|
+
background 0.2s,
|
|
874
|
+
box-shadow 0.2s;
|
|
875
|
+
}
|
|
876
|
+
|
|
877
|
+
:where(button, [type='button'], [type='reset'], [type='submit']):hover,
|
|
878
|
+
:where(button, [type='button'], [type='reset'], [type='submit']):active,
|
|
879
|
+
:where(button, [type='button'], [type='reset'], [type='submit']):focus:not(.bf-disabled):not(
|
|
880
|
+
[aria-disabled='true']
|
|
881
|
+
) {
|
|
883
882
|
text-decoration: none;
|
|
884
|
-
color:
|
|
885
|
-
background: rgb(
|
|
886
|
-
}
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
fieldset[disabled]
|
|
896
|
-
|
|
897
|
-
fieldset[disabled]
|
|
898
|
-
fieldset[disabled]
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
input
|
|
909
|
-
input:
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
input
|
|
917
|
-
input
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
883
|
+
color: var(--bf-dark);
|
|
884
|
+
background: rgb(184 184 184); /* --bf-gray-light, ~10% darker */
|
|
885
|
+
}
|
|
886
|
+
|
|
887
|
+
:where(button, [type='button'], [type='reset'], [type='submit']):active,
|
|
888
|
+
:where(button, [type='button'], [type='reset'], [type='submit']):focus:not(.bf-disabled):not(
|
|
889
|
+
[aria-disabled='true']
|
|
890
|
+
) {
|
|
891
|
+
box-shadow: 0 0 0 3px rgb(0 0 0 / 15%);
|
|
892
|
+
}
|
|
893
|
+
|
|
894
|
+
/* Disabled / aria-disabled / fieldset[disabled]. */
|
|
895
|
+
:where(
|
|
896
|
+
fieldset[disabled] button,
|
|
897
|
+
fieldset[disabled] input,
|
|
898
|
+
fieldset[disabled] input::after,
|
|
899
|
+
fieldset[disabled] input::before,
|
|
900
|
+
fieldset[disabled] input:checked,
|
|
901
|
+
fieldset[disabled] select,
|
|
902
|
+
fieldset[disabled] textarea,
|
|
903
|
+
fieldset[disabled] label,
|
|
904
|
+
button[disabled],
|
|
905
|
+
input[disabled],
|
|
906
|
+
input[disabled]::after,
|
|
907
|
+
input[disabled]::before,
|
|
908
|
+
input[disabled]:checked,
|
|
909
|
+
select[disabled],
|
|
910
|
+
textarea[disabled],
|
|
911
|
+
label[disabled],
|
|
912
|
+
button:disabled,
|
|
913
|
+
input:disabled,
|
|
914
|
+
input:disabled::after,
|
|
915
|
+
input:disabled::before,
|
|
916
|
+
input:disabled:checked,
|
|
917
|
+
select:disabled,
|
|
918
|
+
textarea:disabled,
|
|
919
|
+
label:disabled,
|
|
920
|
+
button[aria-disabled='true'],
|
|
921
|
+
input[aria-disabled='true'],
|
|
922
|
+
input[aria-disabled='true']::after,
|
|
923
|
+
input[aria-disabled='true']::before,
|
|
924
|
+
input[aria-disabled='true']:checked,
|
|
925
|
+
select[aria-disabled='true'],
|
|
926
|
+
textarea[aria-disabled='true'],
|
|
927
|
+
label[aria-disabled='true']
|
|
928
|
+
) {
|
|
923
929
|
cursor: default !important;
|
|
924
930
|
cursor: not-allowed !important;
|
|
925
931
|
pointer-events: none !important;
|
|
@@ -927,354 +933,747 @@ label[aria-disabled=true]) {
|
|
|
927
933
|
-moz-user-select: none !important;
|
|
928
934
|
user-select: none !important;
|
|
929
935
|
box-shadow: none !important;
|
|
936
|
+
outline: none !important;
|
|
930
937
|
opacity: 0.5 !important;
|
|
931
938
|
}
|
|
939
|
+
/* Select: custom arrow for single-value controls.
|
|
940
|
+
* Skip [size] / [multiple] (native UI differs by engine). Inspired by water.css. */
|
|
932
941
|
|
|
933
942
|
:where(select):not([size], select[multiple]) {
|
|
934
943
|
-webkit-appearance: none;
|
|
935
944
|
-moz-appearance: none;
|
|
936
945
|
appearance: none;
|
|
937
|
-
background:
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
:where(select)::-ms-expand {
|
|
942
|
-
display: none;
|
|
946
|
+
background: var(--bf-white)
|
|
947
|
+
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")
|
|
948
|
+
no-repeat right 0.85rem center/8px 10px;
|
|
949
|
+
padding-right: calc(var(--bf-spacing-lg) + var(--bf-spacing-lg));
|
|
943
950
|
}
|
|
944
951
|
|
|
945
|
-
:
|
|
946
|
-
:where(
|
|
952
|
+
/* RTL: mirror arrow after appearance:none removes the native control. */
|
|
953
|
+
:where(*[dir='rtl']) :where(select):not([size], select[multiple]),
|
|
954
|
+
:where(select[dir='rtl']):not([size], select[multiple]) {
|
|
947
955
|
background-position: left 0.85rem top 50%;
|
|
948
|
-
padding-right: 0.
|
|
949
|
-
padding-left:
|
|
950
|
-
}
|
|
956
|
+
padding-right: calc(var(--bf-spacing-lg) * 0.75);
|
|
957
|
+
padding-left: calc(var(--bf-spacing-lg) + var(--bf-spacing-lg));
|
|
958
|
+
}
|
|
959
|
+
/* Range: custom thumb/track when appearance:none is supported.
|
|
960
|
+
* CodePen: https://codepen.io/marcop135/pen/JjGrNMx */
|
|
961
|
+
|
|
962
|
+
@supports ((-webkit-appearance: none) or (-moz-appearance: none) or (appearance: none)) {
|
|
963
|
+
:where([type='range']) {
|
|
964
|
+
-webkit-appearance: none;
|
|
965
|
+
-moz-appearance: none;
|
|
966
|
+
appearance: none;
|
|
967
|
+
width: 100%;
|
|
968
|
+
height: 1.4rem;
|
|
969
|
+
}
|
|
951
970
|
|
|
952
|
-
:where([type=
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
:
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
:
|
|
974
|
-
|
|
975
|
-
|
|
971
|
+
:where([type='range'])::-webkit-slider-thumb {
|
|
972
|
+
border: 0;
|
|
973
|
+
-webkit-appearance: none;
|
|
974
|
+
appearance: none;
|
|
975
|
+
|
|
976
|
+
width: 1.5rem;
|
|
977
|
+
height: 1.5rem;
|
|
978
|
+
margin-top: -0.25rem;
|
|
979
|
+
background-color: var(--bf-blue);
|
|
980
|
+
border-radius: 1.5rem;
|
|
981
|
+
-webkit-transition:
|
|
982
|
+
background-color 0.15s ease-in-out,
|
|
983
|
+
border-color 0.15s ease-in-out,
|
|
984
|
+
box-shadow 0.15s ease-in-out;
|
|
985
|
+
transition:
|
|
986
|
+
background-color 0.15s ease-in-out,
|
|
987
|
+
border-color 0.15s ease-in-out,
|
|
988
|
+
box-shadow 0.15s ease-in-out;
|
|
989
|
+
}
|
|
990
|
+
|
|
991
|
+
:where([type='range'])::-webkit-slider-thumb:active {
|
|
992
|
+
background-color: var(--bf-blue);
|
|
993
|
+
}
|
|
994
|
+
|
|
995
|
+
:where([type='range'])::-moz-range-thumb {
|
|
996
|
+
border: 0;
|
|
997
|
+
-moz-appearance: none;
|
|
998
|
+
appearance: none;
|
|
999
|
+
|
|
1000
|
+
width: 1.5rem;
|
|
1001
|
+
height: 1.5rem;
|
|
1002
|
+
background-color: var(--bf-blue);
|
|
1003
|
+
border-radius: 1.5rem;
|
|
1004
|
+
-moz-transition:
|
|
1005
|
+
background-color 0.15s ease-in-out,
|
|
1006
|
+
border-color 0.15s ease-in-out,
|
|
1007
|
+
box-shadow 0.15s ease-in-out;
|
|
1008
|
+
transition:
|
|
1009
|
+
background-color 0.15s ease-in-out,
|
|
1010
|
+
border-color 0.15s ease-in-out,
|
|
1011
|
+
box-shadow 0.15s ease-in-out;
|
|
1012
|
+
}
|
|
1013
|
+
|
|
1014
|
+
:where([type='range'])::-moz-range-thumb:active {
|
|
1015
|
+
background-color: var(--bf-blue);
|
|
1016
|
+
}
|
|
1017
|
+
|
|
1018
|
+
:where([type='range'])::-webkit-slider-runnable-track {
|
|
1019
|
+
color: transparent;
|
|
1020
|
+
border-color: transparent;
|
|
1021
|
+
|
|
1022
|
+
width: 100%;
|
|
1023
|
+
height: 0.65rem;
|
|
1024
|
+
cursor: pointer;
|
|
1025
|
+
background-color: var(--bf-gray-light-extra);
|
|
1026
|
+
}
|
|
1027
|
+
|
|
1028
|
+
:where([type='range'])::-moz-range-track {
|
|
1029
|
+
color: transparent;
|
|
1030
|
+
border-color: transparent;
|
|
1031
|
+
|
|
1032
|
+
width: 100%;
|
|
1033
|
+
height: 0.65rem;
|
|
1034
|
+
cursor: pointer;
|
|
1035
|
+
background-color: var(--bf-gray-light-extra);
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1038
|
+
:where([type='range']):focus {
|
|
1039
|
+
outline: none;
|
|
1040
|
+
}
|
|
1041
|
+
|
|
1042
|
+
:where([type='range']):focus::-webkit-slider-thumb {
|
|
1043
|
+
box-shadow:
|
|
1044
|
+
0 0 0 0.1rem var(--bf-white),
|
|
1045
|
+
0 0 0 0.2rem rgb(0 123 255 / 25%);
|
|
1046
|
+
}
|
|
1047
|
+
|
|
1048
|
+
:where([type='range']):focus::-moz-range-thumb {
|
|
1049
|
+
box-shadow:
|
|
1050
|
+
0 0 0 0.1rem var(--bf-white),
|
|
1051
|
+
0 0 0 0.2rem rgb(0 123 255 / 25%);
|
|
1052
|
+
}
|
|
1053
|
+
|
|
1054
|
+
:where([type='range'])::-moz-focus-outer {
|
|
1055
|
+
border: 0;
|
|
1056
|
+
}
|
|
1057
|
+
|
|
1058
|
+
:where([type='range']):disabled {
|
|
1059
|
+
pointer-events: none;
|
|
1060
|
+
}
|
|
1061
|
+
|
|
1062
|
+
:where([type='range']):disabled::-webkit-slider-thumb {
|
|
1063
|
+
background-color: var(--bf-gray-light);
|
|
1064
|
+
}
|
|
1065
|
+
|
|
1066
|
+
:where([type='range']):disabled::-moz-range-thumb {
|
|
1067
|
+
background-color: var(--bf-gray-light);
|
|
1068
|
+
}
|
|
1069
|
+
}
|
|
1070
|
+
|
|
1071
|
+
/* Miscellaneous */
|
|
1072
|
+
/* Link defaults. --bf-blue meets WCAG AA 4.5:1 on white. */
|
|
1073
|
+
|
|
1074
|
+
a {
|
|
1075
|
+
color: var(--bf-blue);
|
|
1076
|
+
text-decoration: none;
|
|
1077
|
+
background-color: transparent; /* Legacy Edge active background. */
|
|
1078
|
+
}
|
|
1079
|
+
|
|
1080
|
+
a:hover,
|
|
1081
|
+
a:focus {
|
|
1082
|
+
text-decoration: underline;
|
|
1083
|
+
color: var(--bf-blue-light);
|
|
1084
|
+
}
|
|
1085
|
+
|
|
1086
|
+
/* Non-href anchors inherit text (Bootstrap reboot pattern). */
|
|
1087
|
+
a:not([href], [tabindex]) {
|
|
1088
|
+
color: inherit;
|
|
1089
|
+
text-decoration: none;
|
|
1090
|
+
}
|
|
1091
|
+
|
|
1092
|
+
a:not([href], [class]),
|
|
1093
|
+
a:not([href], [class]):hover {
|
|
1094
|
+
color: inherit;
|
|
1095
|
+
text-decoration: none;
|
|
1096
|
+
}
|
|
1097
|
+
|
|
1098
|
+
a:not([href], [tabindex]):focus {
|
|
1099
|
+
outline: 0;
|
|
1100
|
+
}
|
|
1101
|
+
/* Keyboard-first focus: :focus-visible ring from --bf-focus-ring-*; mute mouse outline.
|
|
1102
|
+
* Text-like controls clear UA outline here; field chrome is in forms/styling.css. */
|
|
1103
|
+
|
|
1104
|
+
:where(:focus:not(:focus-visible)) {
|
|
1105
|
+
outline: none;
|
|
1106
|
+
}
|
|
1107
|
+
|
|
1108
|
+
/* tabindex="-1" targets should not show a ring on programmatic focus. */
|
|
1109
|
+
:where([tabindex='-1']:focus:not(:focus-visible)) {
|
|
1110
|
+
outline: 0 !important;
|
|
1111
|
+
}
|
|
1112
|
+
|
|
1113
|
+
:focus-visible {
|
|
1114
|
+
outline: var(--bf-focus-ring-width) solid var(--bf-focus-ring-color);
|
|
1115
|
+
outline-offset: var(--bf-focus-ring-offset);
|
|
1116
|
+
}
|
|
1117
|
+
|
|
1118
|
+
/* Clear UA outline on text-like controls (styled fields keep their own chrome).
|
|
1119
|
+
* Leave color / range / file alone; they often use custom widgets. */
|
|
1120
|
+
button:focus,
|
|
1121
|
+
[type='button']:focus,
|
|
1122
|
+
[type='reset']:focus,
|
|
1123
|
+
[type='submit']:focus,
|
|
1124
|
+
[type='email']:focus,
|
|
1125
|
+
[type='number']:focus,
|
|
1126
|
+
[type='password']:focus,
|
|
1127
|
+
[type='tel']:focus,
|
|
1128
|
+
[type='search']:focus,
|
|
1129
|
+
[type='text']:focus,
|
|
1130
|
+
[type='date']:focus,
|
|
1131
|
+
[type='datetime-local']:focus,
|
|
1132
|
+
[type='month']:focus,
|
|
1133
|
+
[type='time']:focus,
|
|
1134
|
+
[type='week']:focus,
|
|
1135
|
+
[type='url']:focus,
|
|
1136
|
+
[type='radio']:focus,
|
|
1137
|
+
[type='checkbox']:focus,
|
|
1138
|
+
input[list]:focus,
|
|
1139
|
+
select:focus,
|
|
1140
|
+
textarea:focus {
|
|
1141
|
+
outline: 0;
|
|
1142
|
+
}
|
|
1143
|
+
/* List spacing and nav list reset. */
|
|
1144
|
+
|
|
1145
|
+
menu,
|
|
1146
|
+
ol,
|
|
1147
|
+
ul,
|
|
1148
|
+
dl {
|
|
1149
|
+
margin: 0 0 var(--bf-spacing-xl) 0;
|
|
1150
|
+
padding: 0;
|
|
1151
|
+
}
|
|
1152
|
+
|
|
1153
|
+
menu ul,
|
|
1154
|
+
menu ol,
|
|
1155
|
+
ul ul,
|
|
1156
|
+
ul ol,
|
|
1157
|
+
ol ol,
|
|
1158
|
+
ol ul,
|
|
1159
|
+
dd {
|
|
1160
|
+
margin-bottom: 0;
|
|
1161
|
+
}
|
|
1162
|
+
|
|
1163
|
+
ul,
|
|
1164
|
+
ol {
|
|
1165
|
+
margin-left: var(--bf-spacing-xl);
|
|
1166
|
+
}
|
|
1167
|
+
|
|
1168
|
+
nav ol,
|
|
1169
|
+
nav ul {
|
|
1170
|
+
list-style: none;
|
|
1171
|
+
margin-left: 0;
|
|
1172
|
+
}
|
|
1173
|
+
|
|
1174
|
+
dt {
|
|
1175
|
+
font-weight: 700;
|
|
1176
|
+
}
|
|
1177
|
+
|
|
1178
|
+
dd {
|
|
1179
|
+
margin-left: 0;
|
|
1180
|
+
}
|
|
1181
|
+
|
|
1182
|
+
/* VoiceOver: zero-width space so list-style:none lists stay announced. */
|
|
1183
|
+
nav li::before {
|
|
1184
|
+
content: '\200B';
|
|
976
1185
|
position: absolute;
|
|
977
1186
|
}
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
1187
|
+
/* Media elements, figures, progress/meter, and iframes. */
|
|
1188
|
+
|
|
1189
|
+
audio,
|
|
1190
|
+
canvas,
|
|
1191
|
+
progress,
|
|
1192
|
+
video {
|
|
1193
|
+
display: inline-block;
|
|
981
1194
|
}
|
|
982
1195
|
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
1196
|
+
img,
|
|
1197
|
+
canvas,
|
|
1198
|
+
audio,
|
|
1199
|
+
video,
|
|
1200
|
+
iframe,
|
|
1201
|
+
object,
|
|
1202
|
+
embed {
|
|
1203
|
+
max-width: 100%;
|
|
991
1204
|
}
|
|
992
1205
|
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
left: 35%;
|
|
1000
|
-
top: 20%;
|
|
1001
|
-
transform: rotate(43deg);
|
|
1206
|
+
audio,
|
|
1207
|
+
video,
|
|
1208
|
+
canvas,
|
|
1209
|
+
img,
|
|
1210
|
+
svg {
|
|
1211
|
+
vertical-align: middle;
|
|
1002
1212
|
}
|
|
1003
1213
|
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
appearance: none;
|
|
1008
|
-
width: 100%;
|
|
1009
|
-
height: 1.4rem;
|
|
1214
|
+
img {
|
|
1215
|
+
height: auto;
|
|
1216
|
+
border-style: none;
|
|
1010
1217
|
}
|
|
1011
1218
|
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
-webkit-appearance: none;
|
|
1015
|
-
appearance: none;
|
|
1016
|
-
width: 1.5rem;
|
|
1017
|
-
height: 1.5rem;
|
|
1018
|
-
margin-top: -0.25rem;
|
|
1019
|
-
background-color: #007bff;
|
|
1020
|
-
border-radius: 1.5rem;
|
|
1021
|
-
-webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
|
1022
|
-
transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
|
1219
|
+
figure {
|
|
1220
|
+
margin: 0;
|
|
1023
1221
|
}
|
|
1024
|
-
|
|
1025
|
-
|
|
1222
|
+
|
|
1223
|
+
figure,
|
|
1224
|
+
figcaption {
|
|
1225
|
+
display: block;
|
|
1026
1226
|
}
|
|
1027
1227
|
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
-
|
|
1031
|
-
appearance: none;
|
|
1032
|
-
width: 1.5rem;
|
|
1033
|
-
height: 1.5rem;
|
|
1034
|
-
background-color: #007bff;
|
|
1035
|
-
border-radius: 1.5rem;
|
|
1036
|
-
-moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
|
1037
|
-
transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
|
1228
|
+
figcaption {
|
|
1229
|
+
line-height: 1.375;
|
|
1230
|
+
font-size: 90%;
|
|
1038
1231
|
}
|
|
1039
|
-
|
|
1040
|
-
|
|
1232
|
+
|
|
1233
|
+
video {
|
|
1234
|
+
height: auto;
|
|
1041
1235
|
}
|
|
1042
1236
|
|
|
1043
|
-
|
|
1044
|
-
color: transparent;
|
|
1045
|
-
border-color: transparent;
|
|
1237
|
+
audio {
|
|
1046
1238
|
width: 100%;
|
|
1047
|
-
height: 0.65rem;
|
|
1048
|
-
cursor: pointer;
|
|
1049
|
-
background-color: #e9e9e9;
|
|
1050
1239
|
}
|
|
1051
1240
|
|
|
1052
|
-
:
|
|
1053
|
-
|
|
1054
|
-
|
|
1241
|
+
audio:not([controls]) {
|
|
1242
|
+
display: none;
|
|
1243
|
+
height: 0;
|
|
1244
|
+
}
|
|
1245
|
+
|
|
1246
|
+
svg:not(:root) {
|
|
1247
|
+
overflow: hidden;
|
|
1248
|
+
}
|
|
1249
|
+
|
|
1250
|
+
svg:not([fill]) {
|
|
1251
|
+
fill: currentColor;
|
|
1252
|
+
}
|
|
1253
|
+
|
|
1254
|
+
progress,
|
|
1255
|
+
meter {
|
|
1256
|
+
display: inline-block;
|
|
1257
|
+
vertical-align: baseline;
|
|
1055
1258
|
width: 100%;
|
|
1056
|
-
|
|
1057
|
-
cursor: pointer;
|
|
1058
|
-
background-color: #e9e9e9;
|
|
1259
|
+
max-width: 100%;
|
|
1059
1260
|
}
|
|
1060
1261
|
|
|
1061
|
-
|
|
1062
|
-
|
|
1262
|
+
/* progress[value] reset (https://css-tricks.com/html5-progress-element/). */
|
|
1263
|
+
progress[value] {
|
|
1264
|
+
-webkit-appearance: none;
|
|
1265
|
+
-moz-appearance: none;
|
|
1266
|
+
appearance: none;
|
|
1267
|
+
border: none; /* Firefox default border. */
|
|
1268
|
+
|
|
1269
|
+
height: 20px;
|
|
1270
|
+
height: 2rem;
|
|
1271
|
+
|
|
1272
|
+
background: var(--bf-gray-light);
|
|
1273
|
+
color: var(--bf-blue); /* Progress fill in IE10+. */
|
|
1063
1274
|
}
|
|
1064
|
-
|
|
1065
|
-
|
|
1275
|
+
|
|
1276
|
+
progress[value]::-webkit-progress-bar {
|
|
1277
|
+
background: var(--bf-gray-light);
|
|
1066
1278
|
}
|
|
1067
|
-
|
|
1068
|
-
|
|
1279
|
+
|
|
1280
|
+
progress[value]::-webkit-progress-value {
|
|
1281
|
+
background: var(--bf-blue);
|
|
1069
1282
|
}
|
|
1070
1283
|
|
|
1071
|
-
|
|
1072
|
-
|
|
1284
|
+
/* No default border (covers embeds that ignore frameborder="0"). */
|
|
1285
|
+
iframe {
|
|
1286
|
+
border-style: none;
|
|
1073
1287
|
}
|
|
1288
|
+
/* Address, details/summary, and dialog defaults. */
|
|
1074
1289
|
|
|
1075
|
-
|
|
1076
|
-
|
|
1290
|
+
address {
|
|
1291
|
+
font-style: normal;
|
|
1292
|
+
margin-bottom: var(--bf-spacing-lg);
|
|
1293
|
+
line-height: inherit;
|
|
1077
1294
|
}
|
|
1078
1295
|
|
|
1079
|
-
:
|
|
1080
|
-
|
|
1296
|
+
details > summary:first-of-type {
|
|
1297
|
+
display: list-item;
|
|
1081
1298
|
}
|
|
1082
|
-
|
|
1083
|
-
|
|
1299
|
+
|
|
1300
|
+
summary {
|
|
1301
|
+
cursor: pointer;
|
|
1302
|
+
font-weight: 700;
|
|
1303
|
+
word-break: break-all;
|
|
1084
1304
|
}
|
|
1085
|
-
|
|
1086
|
-
|
|
1305
|
+
|
|
1306
|
+
dialog {
|
|
1307
|
+
background-color: var(--bf-white);
|
|
1308
|
+
color: var(--bf-dark);
|
|
1309
|
+
border: none;
|
|
1310
|
+
border-radius: var(--bf-spacing-sm);
|
|
1311
|
+
padding: var(--bf-spacing-xl);
|
|
1312
|
+
height: -moz-fit-content;
|
|
1313
|
+
height: fit-content;
|
|
1314
|
+
min-width: min(25rem, 100%);
|
|
1315
|
+
max-width: calc(100vw - (var(--bf-spacing-grid-gutter) * 2));
|
|
1087
1316
|
}
|
|
1088
1317
|
|
|
1089
|
-
@media (
|
|
1090
|
-
|
|
1091
|
-
|
|
1318
|
+
@media (min-width: 768px) {
|
|
1319
|
+
dialog {
|
|
1320
|
+
max-width: 50rem;
|
|
1092
1321
|
}
|
|
1093
|
-
|
|
1094
|
-
|
|
1322
|
+
}
|
|
1323
|
+
|
|
1324
|
+
/* Open dialog wins over [hidden] (e.g. <dialog hidden open>). */
|
|
1325
|
+
dialog[open] {
|
|
1326
|
+
display: block !important;
|
|
1327
|
+
}
|
|
1328
|
+
|
|
1329
|
+
dialog::backdrop {
|
|
1330
|
+
background: rgb(0 0 0 / 40%);
|
|
1331
|
+
}
|
|
1332
|
+
/* Smooth scrolling when motion is allowed. */
|
|
1333
|
+
|
|
1334
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
1335
|
+
:root {
|
|
1336
|
+
scroll-behavior: smooth;
|
|
1095
1337
|
}
|
|
1338
|
+
}
|
|
1339
|
+
/* Table border collapse and cell alignment. */
|
|
1340
|
+
|
|
1341
|
+
table {
|
|
1342
|
+
caption-side: bottom;
|
|
1343
|
+
max-width: 100%;
|
|
1344
|
+
border-collapse: collapse;
|
|
1345
|
+
border-color: currentcolor; /* Chrome / Safari inheritance. */
|
|
1346
|
+
text-indent: 0; /* Chrome / Safari table indent. */
|
|
1347
|
+
}
|
|
1348
|
+
|
|
1349
|
+
thead,
|
|
1350
|
+
tbody,
|
|
1351
|
+
tfoot,
|
|
1352
|
+
tr,
|
|
1353
|
+
td,
|
|
1354
|
+
th {
|
|
1355
|
+
border-color: inherit;
|
|
1356
|
+
border-style: solid;
|
|
1357
|
+
border-width: 0;
|
|
1358
|
+
}
|
|
1359
|
+
|
|
1360
|
+
thead th {
|
|
1361
|
+
vertical-align: bottom;
|
|
1362
|
+
}
|
|
1363
|
+
|
|
1364
|
+
th,
|
|
1365
|
+
td {
|
|
1366
|
+
vertical-align: top;
|
|
1367
|
+
}
|
|
1368
|
+
|
|
1369
|
+
th {
|
|
1370
|
+
text-align: inherit;
|
|
1371
|
+
text-align: -webkit-match-parent;
|
|
1372
|
+
font-weight: 700;
|
|
1373
|
+
}
|
|
1374
|
+
|
|
1375
|
+
caption {
|
|
1376
|
+
padding-top: var(--bf-spacing-md);
|
|
1377
|
+
padding-bottom: var(--bf-spacing-md);
|
|
1378
|
+
color: var(--bf-gray);
|
|
1379
|
+
text-align: left;
|
|
1380
|
+
caption-side: bottom;
|
|
1381
|
+
line-height: 1.375;
|
|
1382
|
+
font-size: 90%;
|
|
1383
|
+
}
|
|
1384
|
+
/* Accessibility helpers (adapted from sanitize.css). */
|
|
1385
|
+
|
|
1386
|
+
/* Busy: progress cursor. */
|
|
1387
|
+
:where([aria-busy='true' i]) {
|
|
1388
|
+
cursor: progress;
|
|
1389
|
+
}
|
|
1390
|
+
|
|
1391
|
+
/* Disabled / inoperable: not-allowed cursor. */
|
|
1392
|
+
:where([aria-disabled='true' i], [disabled]) {
|
|
1393
|
+
cursor: not-allowed;
|
|
1394
|
+
}
|
|
1395
|
+
|
|
1396
|
+
/* aria-hidden="false" on [hidden]: keep in a11y tree when not focused. */
|
|
1397
|
+
:where([aria-hidden='false' i][hidden]) {
|
|
1398
|
+
display: initial;
|
|
1399
|
+
}
|
|
1400
|
+
|
|
1401
|
+
:where([aria-hidden='false' i][hidden]:not(:focus)) {
|
|
1402
|
+
clip: rect(0, 0, 0, 0);
|
|
1403
|
+
position: absolute;
|
|
1404
|
+
}
|
|
1405
|
+
/* Preference queries only (prefers-contrast, forced-colors). Additive. */
|
|
1406
|
+
|
|
1407
|
+
/* prefers-contrast: more: underline links, thicker focus, stronger borders (WCAG 1.4.1). */
|
|
1408
|
+
@media (prefers-contrast: more) {
|
|
1096
1409
|
a {
|
|
1097
|
-
|
|
1098
|
-
}
|
|
1099
|
-
a:hover, a:focus {
|
|
1100
|
-
color: rgb(26, 136.0223463687, 255);
|
|
1410
|
+
text-decoration: underline;
|
|
1101
1411
|
}
|
|
1102
|
-
|
|
1103
|
-
|
|
1412
|
+
|
|
1413
|
+
/* Darker amber clears WCAG 1.4.11 (3:1) on white, --bf-light and --bf-dark-bg;
|
|
1414
|
+
* the default --bf-orange ring is only ~2:1 on white. */
|
|
1415
|
+
:root {
|
|
1416
|
+
--bf-focus-ring-color: rgb(184 115 0);
|
|
1104
1417
|
}
|
|
1105
|
-
|
|
1106
|
-
|
|
1418
|
+
|
|
1419
|
+
:focus-visible {
|
|
1420
|
+
outline-width: 0.3rem;
|
|
1421
|
+
outline-offset: 0.4rem;
|
|
1107
1422
|
}
|
|
1108
|
-
|
|
1109
|
-
[type=
|
|
1110
|
-
[type=
|
|
1111
|
-
[type=
|
|
1112
|
-
[type=
|
|
1113
|
-
[type=
|
|
1114
|
-
[type=
|
|
1115
|
-
[type=
|
|
1116
|
-
[type=
|
|
1117
|
-
[type=
|
|
1118
|
-
[type=time],
|
|
1119
|
-
[type=url],
|
|
1120
|
-
[type=
|
|
1423
|
+
|
|
1424
|
+
[type='email'],
|
|
1425
|
+
[type='number'],
|
|
1426
|
+
[type='password'],
|
|
1427
|
+
[type='tel'],
|
|
1428
|
+
[type='search'],
|
|
1429
|
+
[type='text'],
|
|
1430
|
+
[type='date'],
|
|
1431
|
+
[type='datetime-local'],
|
|
1432
|
+
[type='month'],
|
|
1433
|
+
[type='time'],
|
|
1434
|
+
[type='url'],
|
|
1435
|
+
[type='week'],
|
|
1121
1436
|
input[list],
|
|
1122
1437
|
select,
|
|
1123
|
-
select:not([size], select[multiple]),
|
|
1124
1438
|
textarea {
|
|
1125
|
-
|
|
1126
|
-
border-color: #000;
|
|
1127
|
-
color: #ccc;
|
|
1439
|
+
border-width: 2px;
|
|
1128
1440
|
}
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
[type=tel]:focus,
|
|
1136
|
-
[type=search]:active,
|
|
1137
|
-
[type=search]:focus,
|
|
1138
|
-
[type=text]:active,
|
|
1139
|
-
[type=text]:focus,
|
|
1140
|
-
[type=date]:active,
|
|
1141
|
-
[type=date]:focus,
|
|
1142
|
-
[type=datetime-local]:active,
|
|
1143
|
-
[type=datetime-local]:focus,
|
|
1144
|
-
[type=month]:active,
|
|
1145
|
-
[type=month]:focus,
|
|
1146
|
-
[type=week]:active,
|
|
1147
|
-
[type=week]:focus,
|
|
1148
|
-
[type=time]:active,
|
|
1149
|
-
[type=time]:focus,
|
|
1150
|
-
[type=url]:active,
|
|
1151
|
-
[type=url]:focus,
|
|
1152
|
-
[type=range]:active,
|
|
1153
|
-
[type=range]:focus,
|
|
1154
|
-
input[list]:active,
|
|
1155
|
-
input[list]:focus,
|
|
1156
|
-
select:active,
|
|
1157
|
-
select:focus,
|
|
1158
|
-
select:not([size], select[multiple]):active,
|
|
1159
|
-
select:not([size], select[multiple]):focus,
|
|
1160
|
-
textarea:active,
|
|
1161
|
-
textarea:focus {
|
|
1162
|
-
background-color: #111;
|
|
1163
|
-
border-color: rgb(51, 149.4, 255);
|
|
1441
|
+
}
|
|
1442
|
+
|
|
1443
|
+
/* forced-colors: restore focus via Highlight; underline links; keep button borders. */
|
|
1444
|
+
@media (forced-colors: active) {
|
|
1445
|
+
:focus-visible {
|
|
1446
|
+
outline-color: Highlight;
|
|
1164
1447
|
}
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
[type=password]:active,
|
|
1169
|
-
[type=password]:focus,
|
|
1170
|
-
[type=tel]:active,
|
|
1171
|
-
[type=tel]:focus,
|
|
1172
|
-
[type=search]:active,
|
|
1173
|
-
[type=search]:focus,
|
|
1174
|
-
[type=text]:active,
|
|
1175
|
-
[type=text]:focus,
|
|
1176
|
-
[type=date]:active,
|
|
1177
|
-
[type=date]:focus,
|
|
1178
|
-
[type=datetime-local]:active,
|
|
1179
|
-
[type=datetime-local]:focus,
|
|
1180
|
-
[type=month]:active,
|
|
1181
|
-
[type=month]:focus,
|
|
1182
|
-
[type=week]:active,
|
|
1183
|
-
[type=week]:focus,
|
|
1184
|
-
[type=time]:active,
|
|
1185
|
-
[type=time]:focus,
|
|
1186
|
-
[type=url]:active,
|
|
1187
|
-
[type=url]:focus,
|
|
1188
|
-
input[list]:active,
|
|
1189
|
-
input[list]:focus,
|
|
1190
|
-
select:active,
|
|
1191
|
-
select:focus,
|
|
1192
|
-
select:not([size], select[multiple]):active,
|
|
1193
|
-
select:not([size], select[multiple]):focus,
|
|
1194
|
-
textarea:active,
|
|
1195
|
-
textarea:focus {
|
|
1196
|
-
box-shadow: 0 0 0 3px rgba(3, 102, 214, 0.5);
|
|
1448
|
+
|
|
1449
|
+
a {
|
|
1450
|
+
text-decoration: underline;
|
|
1197
1451
|
}
|
|
1198
|
-
|
|
1199
|
-
|
|
1452
|
+
|
|
1453
|
+
/* Keep button borders so disabled/active stay distinguishable. */
|
|
1454
|
+
button,
|
|
1455
|
+
[type='button'],
|
|
1456
|
+
[type='reset'],
|
|
1457
|
+
[type='submit'] {
|
|
1458
|
+
border: 1px solid ButtonText;
|
|
1200
1459
|
}
|
|
1201
|
-
/* stylelint-disable-next-line */
|
|
1202
1460
|
}
|
|
1203
|
-
@media
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
select[dir=rtl]:not([size], select[multiple]) {
|
|
1207
|
-
background-image: none;
|
|
1208
|
-
}
|
|
1461
|
+
@media (prefers-color-scheme: dark) {
|
|
1462
|
+
|
|
1463
|
+
/* Always-dark overrides for classless (no media query, no .bf-* selectors). */
|
|
1209
1464
|
}
|
|
1210
1465
|
@media (prefers-color-scheme: dark) {
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1466
|
+
|
|
1467
|
+
/* Element-level dark-mode rules, shared by the class-based and classless dark
|
|
1468
|
+
* sheets. Contains no .bf-* selector, so the classless builds can import it as
|
|
1469
|
+
* they are. Class-based extras live in _utility-global-dark-shared.css.
|
|
1470
|
+
* Underscore prefix excludes this file from the buildAllCss glob. */
|
|
1471
|
+
|
|
1472
|
+
html {
|
|
1473
|
+
color: var(--bf-light);
|
|
1474
|
+
}
|
|
1475
|
+
|
|
1476
|
+
body {
|
|
1477
|
+
background-color: var(--bf-dark-bg);
|
|
1478
|
+
}
|
|
1479
|
+
|
|
1480
|
+
a {
|
|
1481
|
+
color: var(--bf-dark-link);
|
|
1482
|
+
}
|
|
1483
|
+
|
|
1484
|
+
a:hover,
|
|
1485
|
+
a:focus {
|
|
1486
|
+
color: var(--bf-dark-link-hover);
|
|
1487
|
+
}
|
|
1488
|
+
|
|
1489
|
+
mark {
|
|
1490
|
+
background-color: var(--bf-dark-mark-bg);
|
|
1491
|
+
}
|
|
1492
|
+
|
|
1493
|
+
ins {
|
|
1494
|
+
background-color: var(--bf-dark-ins-bg);
|
|
1495
|
+
}
|
|
1496
|
+
|
|
1497
|
+
[type='email'],
|
|
1498
|
+
[type='number'],
|
|
1499
|
+
[type='password'],
|
|
1500
|
+
[type='tel'],
|
|
1501
|
+
[type='search'],
|
|
1502
|
+
[type='text'],
|
|
1503
|
+
[type='date'],
|
|
1504
|
+
[type='datetime-local'],
|
|
1505
|
+
[type='month'],
|
|
1506
|
+
[type='week'],
|
|
1507
|
+
[type='time'],
|
|
1508
|
+
[type='url'],
|
|
1509
|
+
[type='range'],
|
|
1510
|
+
input[list],
|
|
1511
|
+
select,
|
|
1512
|
+
select:not([size], select[multiple]),
|
|
1513
|
+
textarea {
|
|
1514
|
+
background-color: var(--bf-dark-extra);
|
|
1515
|
+
border-color: var(--bf-black);
|
|
1516
|
+
color: var(--bf-gray-light);
|
|
1517
|
+
}
|
|
1518
|
+
|
|
1519
|
+
[type='email']:active,
|
|
1520
|
+
[type='email']:focus,
|
|
1521
|
+
[type='number']:active,
|
|
1522
|
+
[type='number']:focus,
|
|
1523
|
+
[type='password']:active,
|
|
1524
|
+
[type='password']:focus,
|
|
1525
|
+
[type='tel']:active,
|
|
1526
|
+
[type='tel']:focus,
|
|
1527
|
+
[type='search']:active,
|
|
1528
|
+
[type='search']:focus,
|
|
1529
|
+
[type='text']:active,
|
|
1530
|
+
[type='text']:focus,
|
|
1531
|
+
[type='date']:active,
|
|
1532
|
+
[type='date']:focus,
|
|
1533
|
+
[type='datetime-local']:active,
|
|
1534
|
+
[type='datetime-local']:focus,
|
|
1535
|
+
[type='month']:active,
|
|
1536
|
+
[type='month']:focus,
|
|
1537
|
+
[type='week']:active,
|
|
1538
|
+
[type='week']:focus,
|
|
1539
|
+
[type='time']:active,
|
|
1540
|
+
[type='time']:focus,
|
|
1541
|
+
[type='url']:active,
|
|
1542
|
+
[type='url']:focus,
|
|
1543
|
+
input[list]:active,
|
|
1544
|
+
input[list]:focus,
|
|
1545
|
+
select:active,
|
|
1546
|
+
select:focus,
|
|
1547
|
+
select:not([size], select[multiple]):active,
|
|
1548
|
+
select:not([size], select[multiple]):focus,
|
|
1549
|
+
textarea:active,
|
|
1550
|
+
textarea:focus {
|
|
1551
|
+
background-color: var(--bf-dark-extra);
|
|
1552
|
+
border-color: var(--bf-dark-border-focus);
|
|
1553
|
+
box-shadow: 0 0 0 3px var(--bf-dark-shadow-focus);
|
|
1554
|
+
}
|
|
1555
|
+
|
|
1556
|
+
select:not([size], select[multiple]) {
|
|
1557
|
+
background-image: 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='%23f0f0f0' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e");
|
|
1558
|
+
}
|
|
1559
|
+
|
|
1560
|
+
[type='range'] {
|
|
1561
|
+
background-color: transparent;
|
|
1562
|
+
}
|
|
1563
|
+
|
|
1564
|
+
[type='range']:focus {
|
|
1565
|
+
background-color: transparent;
|
|
1566
|
+
}
|
|
1567
|
+
|
|
1568
|
+
[type='range']::-webkit-slider-runnable-track {
|
|
1569
|
+
background-color: var(--bf-dark-extra);
|
|
1570
|
+
}
|
|
1571
|
+
|
|
1572
|
+
[type='range']::-moz-range-track {
|
|
1573
|
+
background-color: var(--bf-dark-extra);
|
|
1574
|
+
}
|
|
1575
|
+
|
|
1576
|
+
input::-moz-placeholder, textarea::-moz-placeholder {
|
|
1577
|
+
color: var(--bf-gray);
|
|
1578
|
+
}
|
|
1579
|
+
|
|
1580
|
+
input::placeholder,
|
|
1581
|
+
textarea::placeholder {
|
|
1582
|
+
color: var(--bf-gray);
|
|
1583
|
+
}
|
|
1584
|
+
|
|
1585
|
+
button,
|
|
1586
|
+
[type='button'],
|
|
1587
|
+
[type='reset'],
|
|
1588
|
+
[type='submit'] {
|
|
1589
|
+
background: var(--bf-gray-light);
|
|
1590
|
+
}
|
|
1591
|
+
|
|
1592
|
+
button:hover,
|
|
1593
|
+
button:active,
|
|
1594
|
+
button:focus,
|
|
1595
|
+
[type='button']:hover,
|
|
1596
|
+
[type='button']:active,
|
|
1597
|
+
[type='button']:focus,
|
|
1598
|
+
[type='reset']:hover,
|
|
1599
|
+
[type='reset']:active,
|
|
1600
|
+
[type='reset']:focus,
|
|
1601
|
+
[type='submit']:hover,
|
|
1602
|
+
[type='submit']:active,
|
|
1603
|
+
[type='submit']:focus {
|
|
1604
|
+
background: var(--bf-dark-button-hover);
|
|
1605
|
+
}
|
|
1606
|
+
|
|
1607
|
+
button:active,
|
|
1608
|
+
button:focus,
|
|
1609
|
+
[type='button']:active,
|
|
1610
|
+
[type='button']:focus,
|
|
1611
|
+
[type='reset']:active,
|
|
1612
|
+
[type='reset']:focus,
|
|
1613
|
+
[type='submit']:active,
|
|
1614
|
+
[type='submit']:focus {
|
|
1615
|
+
box-shadow: 0 0 0 3px var(--bf-dark-button-shadow);
|
|
1616
|
+
}
|
|
1617
|
+
|
|
1618
|
+
dialog {
|
|
1619
|
+
color: var(--bf-light);
|
|
1620
|
+
background-color: var(--bf-dark-bg);
|
|
1621
|
+
}
|
|
1622
|
+
|
|
1623
|
+
caption {
|
|
1624
|
+
color: var(--bf-gray-light);
|
|
1625
|
+
}
|
|
1626
|
+
|
|
1627
|
+
progress[value] {
|
|
1628
|
+
background: var(--bf-gray-dark-extra);
|
|
1629
|
+
color: var(--bf-blue);
|
|
1630
|
+
}
|
|
1631
|
+
|
|
1632
|
+
progress[value]::-webkit-progress-bar {
|
|
1633
|
+
background: var(--bf-gray-dark-extra);
|
|
1634
|
+
}
|
|
1635
|
+
|
|
1636
|
+
progress[value]::-webkit-progress-value {
|
|
1637
|
+
background: var(--bf-blue);
|
|
1638
|
+
}
|
|
1639
|
+
}
|
|
1640
|
+
|
|
1641
|
+
@media (prefers-color-scheme: dark) {
|
|
1642
|
+
|
|
1643
|
+
a:focus,
|
|
1644
|
+
input:focus {
|
|
1645
|
+
outline-color: rgb(214 140 0); /* orange -15% */
|
|
1646
|
+
}
|
|
1647
|
+
|
|
1648
|
+
:focus-visible {
|
|
1649
|
+
outline-color: rgb(214 140 0); /* orange -15% */
|
|
1650
|
+
}
|
|
1651
|
+
}
|
|
1652
|
+
|
|
1653
|
+
@media (prefers-color-scheme: dark) {
|
|
1654
|
+
|
|
1655
|
+
/* Dark scrollbar colors (Firefox + WebKit). */
|
|
1656
|
+
|
|
1657
|
+
html {
|
|
1658
|
+
scrollbar-color: rgb(97 97 97) var(--bf-dark-extra); /* gray-dark -5% lightness */
|
|
1659
|
+
}
|
|
1660
|
+
|
|
1661
|
+
/* WebKit thumb / track. */
|
|
1662
|
+
|
|
1663
|
+
::-webkit-scrollbar {
|
|
1664
|
+
width: 1.5rem;
|
|
1665
|
+
height: 1.5rem;
|
|
1666
|
+
}
|
|
1667
|
+
|
|
1668
|
+
::-webkit-scrollbar-track {
|
|
1669
|
+
background-color: var(--bf-dark-extra);
|
|
1670
|
+
}
|
|
1671
|
+
|
|
1672
|
+
::-webkit-scrollbar-thumb {
|
|
1673
|
+
background-color: rgb(97 97 97); /* gray-dark -5% lightness */
|
|
1674
|
+
}
|
|
1675
|
+
|
|
1676
|
+
::-webkit-scrollbar-thumb:hover {
|
|
1677
|
+
background-color: rgb(115 115 115); /* gray-dark +10% lightness */
|
|
1678
|
+
}
|
|
1279
1679
|
}
|
|
1280
|
-
/*# sourceMappingURL=bullframe-classless-system-default.css.map */
|