bullframe.css 5.1.0 → 6.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.
Files changed (117) hide show
  1. package/CHANGELOG.md +39 -2
  2. package/LICENSE +1 -1
  3. package/README.md +34 -458
  4. package/dist/css/bullframe-classless-dark.css +1270 -909
  5. package/dist/css/bullframe-classless-dark.css.map +1 -1
  6. package/dist/css/bullframe-classless-dark.min.css +1 -3
  7. package/dist/css/bullframe-classless-dark.min.css.map +1 -1
  8. package/dist/css/bullframe-classless-system-default.css +1339 -899
  9. package/dist/css/bullframe-classless-system-default.css.map +1 -1
  10. package/dist/css/bullframe-classless-system-default.min.css +1 -3
  11. package/dist/css/bullframe-classless-system-default.min.css.map +1 -1
  12. package/dist/css/bullframe-classless.css +1098 -713
  13. package/dist/css/bullframe-classless.css.map +1 -1
  14. package/dist/css/bullframe-classless.min.css +1 -3
  15. package/dist/css/bullframe-classless.min.css.map +1 -1
  16. package/dist/css/bullframe-dark.css +2105 -1541
  17. package/dist/css/bullframe-dark.css.map +1 -1
  18. package/dist/css/bullframe-dark.min.css +1 -3
  19. package/dist/css/bullframe-dark.min.css.map +1 -1
  20. package/dist/css/bullframe-system-default.css +2107 -1529
  21. package/dist/css/bullframe-system-default.css.map +1 -1
  22. package/dist/css/bullframe-system-default.min.css +1 -3
  23. package/dist/css/bullframe-system-default.min.css.map +1 -1
  24. package/dist/css/bullframe-utilities.css +766 -490
  25. package/dist/css/bullframe-utilities.css.map +1 -1
  26. package/dist/css/bullframe-utilities.min.css +1 -2
  27. package/dist/css/bullframe-utilities.min.css.map +1 -1
  28. package/dist/css/bullframe.css +1900 -1310
  29. package/dist/css/bullframe.css.map +1 -1
  30. package/dist/css/bullframe.min.css +1 -3
  31. package/dist/css/bullframe.min.css.map +1 -1
  32. package/package.json +70 -28
  33. package/.browserslistrc +0 -3
  34. package/.editorconfig +0 -15
  35. package/.htmlhintrc +0 -12
  36. package/.prettierignore +0 -1
  37. package/.stylelintignore +0 -3
  38. package/.stylelintrc.json +0 -26
  39. package/dist/apple-touch-icon.png +0 -0
  40. package/dist/css/bullframe-classless-dark-prefers.css +0 -1280
  41. package/dist/css/bullframe-classless-dark-prefers.css.map +0 -1
  42. package/dist/css/bullframe-classless-dark-prefers.min.css +0 -3
  43. package/dist/css/bullframe-classless-dark-prefers.min.css.map +0 -1
  44. package/dist/css/bullframe-dark-prefers.css +0 -2296
  45. package/dist/css/bullframe-dark-prefers.css.map +0 -1
  46. package/dist/css/bullframe-dark-prefers.min.css +0 -3
  47. package/dist/css/bullframe-dark-prefers.min.css.map +0 -1
  48. package/dist/docs/demo/index.html +0 -1154
  49. package/dist/favicon-16x16.png +0 -0
  50. package/dist/favicon-32x32.png +0 -0
  51. package/dist/favicon.ico +0 -0
  52. package/dist/index.css +0 -1
  53. package/dist/index.js.map +0 -1
  54. package/dist/placeholder-img-800x400.jpg +0 -0
  55. package/dist/video-poster.png +0 -0
  56. package/prettier.config.js +0 -26
  57. package/src/scss/bullframe-classless-dark-prefers.scss +0 -2
  58. package/src/scss/bullframe-classless-dark.scss +0 -2
  59. package/src/scss/bullframe-classless-system-default.scss +0 -2
  60. package/src/scss/bullframe-classless.scss +0 -49
  61. package/src/scss/bullframe-dark-prefers.scss +0 -2
  62. package/src/scss/bullframe-dark.scss +0 -2
  63. package/src/scss/bullframe-system-default.scss +0 -2
  64. package/src/scss/bullframe-utilities.scss +0 -21
  65. package/src/scss/bullframe.scss +0 -49
  66. package/src/scss/custom/_author-styles.scss +0 -5
  67. package/src/scss/forms/_forms-normalization.scss +0 -300
  68. package/src/scss/forms/_forms-styling-radio-checkbox.scss +0 -81
  69. package/src/scss/forms/_forms-styling-range.scss +0 -106
  70. package/src/scss/forms/_forms-styling-select.scss +0 -58
  71. package/src/scss/forms/_forms-styling.scss +0 -118
  72. package/src/scss/miscellaneous/_misc-accessibility.scss +0 -36
  73. package/src/scss/miscellaneous/_misc-anchors.scss +0 -37
  74. package/src/scss/miscellaneous/_misc-embedded-content.scss +0 -117
  75. package/src/scss/miscellaneous/_misc-focus.scss +0 -80
  76. package/src/scss/miscellaneous/_misc-interactive.scss +0 -48
  77. package/src/scss/miscellaneous/_misc-layout.scss +0 -30
  78. package/src/scss/miscellaneous/_misc-lists.scss +0 -53
  79. package/src/scss/miscellaneous/_misc-scrolling.scss +0 -5
  80. package/src/scss/miscellaneous/_misc-shame.scss +0 -37
  81. package/src/scss/miscellaneous/_misc-tables.scss +0 -53
  82. package/src/scss/mixins/_mixin-dark-prefers.scss +0 -413
  83. package/src/scss/mixins/_mixin-dark.scss +0 -415
  84. package/src/scss/mixins/_mixin-grid-flex.scss +0 -80
  85. package/src/scss/mixins/_mixin-layout.scss +0 -42
  86. package/src/scss/mixins/_mixin-texts.scss +0 -37
  87. package/src/scss/typography/_typography-blockquotes.scss +0 -28
  88. package/src/scss/typography/_typography-headings.scss +0 -45
  89. package/src/scss/typography/_typography-html-body.scss +0 -75
  90. package/src/scss/typography/_typography-misc.scss +0 -90
  91. package/src/scss/typography/_typography-monospaced-elements.scss +0 -59
  92. package/src/scss/utilities/_utility-buttons.scss +0 -73
  93. package/src/scss/utilities/_utility-debugging.scss +0 -31
  94. package/src/scss/utilities/_utility-embeds.scss +0 -34
  95. package/src/scss/utilities/_utility-filters.scss +0 -21
  96. package/src/scss/utilities/_utility-form-states.scss +0 -89
  97. package/src/scss/utilities/_utility-global-dark-classless.scss +0 -3
  98. package/src/scss/utilities/_utility-global-dark-prefers-classless.scss +0 -3
  99. package/src/scss/utilities/_utility-global-dark-prefers.scss +0 -3
  100. package/src/scss/utilities/_utility-global-dark-scrollbars.scss +0 -34
  101. package/src/scss/utilities/_utility-global-dark.scss +0 -4
  102. package/src/scss/utilities/_utility-global-system-default-classless.scss +0 -3
  103. package/src/scss/utilities/_utility-global-system-default.scss +0 -3
  104. package/src/scss/utilities/_utility-grid-system.scss +0 -140
  105. package/src/scss/utilities/_utility-layout.scss +0 -187
  106. package/src/scss/utilities/_utility-lists.scss +0 -17
  107. package/src/scss/utilities/_utility-print.scss +0 -101
  108. package/src/scss/utilities/_utility-reduced-motion.scss +0 -29
  109. package/src/scss/utilities/_utility-spacing.scss +0 -148
  110. package/src/scss/utilities/_utility-tables.scss +0 -34
  111. package/src/scss/utilities/_utility-texts.scss +0 -225
  112. package/src/scss/utilities/_utility-z-index.scss +0 -83
  113. package/src/scss/variables/_variables-breakpoints.scss +0 -6
  114. package/src/scss/variables/_variables-colors.scss +0 -34
  115. package/src/scss/variables/_variables-spacing.scss +0 -24
  116. package/src/scss/variables/_variables-texts.scss +0 -8
  117. package/vite.config.js +0 -148
@@ -1,151 +1,83 @@
1
- /* ! Bullframe CSS v5.1.0 | MIT License | https://github.com/marcop135/bullframe.css */
2
-
3
- .bf-container,
4
- .bf-container--fluid {
5
- box-sizing: border-box;
6
- display: block;
7
- margin-right: auto;
8
- margin-left: auto;
9
- padding-left: 1.5rem;
10
- padding-right: 1.5rem;
11
- }
12
-
13
- .bf-container {
14
- max-width: 114rem;
15
- }
16
-
17
- .bf-row {
18
- display: flex;
19
- flex-wrap: wrap;
20
- margin-left: -1.5rem;
21
- margin-right: -1.5rem;
22
- }
23
-
24
- [class^=bf-col-] {
25
- position: relative;
26
- min-height: 1px;
27
- padding-left: 1.5rem;
28
- padding-right: 1.5rem;
29
- flex-grow: 0;
30
- flex-shrink: 0;
31
- }
32
-
33
- .bf-no-gutters {
34
- margin-right: 0;
35
- margin-left: 0;
36
- }
37
- .bf-no-gutters > [class^=bf-col] {
38
- padding-right: 0;
39
- padding-left: 0;
40
- }
41
-
42
- .bf-col-12 {
43
- flex-basis: 100%;
44
- max-width: 100%;
45
- }
46
-
47
- .bf-col-11 {
48
- flex-basis: 91.6667%;
49
- max-width: 91.6667%;
50
- }
51
-
52
- .bf-col-10 {
53
- flex-basis: 83.3333%;
54
- max-width: 83.3333%;
55
- }
56
-
57
- .bf-col-9 {
58
- flex-basis: 75%;
59
- max-width: 75%;
60
- }
61
-
62
- .bf-col-8 {
63
- flex-basis: 66.6667%;
64
- max-width: 66.6667%;
65
- }
66
-
67
- .bf-col-7 {
68
- flex-basis: 58.3333%;
69
- max-width: 58.3333%;
70
- }
71
-
72
- .bf-col-6 {
73
- flex-basis: 50%;
74
- max-width: 50%;
75
- }
76
-
77
- .bf-col-5 {
78
- flex-basis: 41.6667%;
79
- max-width: 41.6667%;
80
- }
81
-
82
- .bf-col-4 {
83
- flex-basis: 33.3333%;
84
- max-width: 33.3333%;
85
- }
86
-
87
- .bf-col-3 {
88
- flex-basis: 25%;
89
- max-width: 25%;
90
- }
91
-
92
- .bf-col-2 {
93
- flex-basis: 16.6667%;
94
- max-width: 16.6667%;
95
- }
96
-
97
- .bf-col-1 {
98
- flex-basis: 8.3333%;
99
- max-width: 8.3333%;
100
- }
101
-
102
- @media (max-width: 575px) {
103
- .bf-container--break-xs .bf-row {
104
- margin-left: 0;
105
- margin-right: 0;
106
- }
107
- .bf-container--break-xs [class^=bf-col] {
108
- flex-basis: 100%;
109
- max-width: 100%;
110
- margin-left: 0;
111
- padding-left: 0;
112
- padding-right: 0;
113
- }
114
- }
115
- @media (max-width: 767px) {
116
- .bf-container--break-md .bf-row {
117
- margin-left: 0;
118
- margin-right: 0;
119
- }
120
- .bf-container--break-md [class^=bf-col] {
121
- flex-basis: 100%;
122
- max-width: 100%;
123
- margin-left: 0;
124
- padding-left: 0;
125
- padding-right: 0;
126
- }
127
- }
128
- @media (max-width: 991px) {
129
- .bf-container--break-lg .bf-row {
130
- margin-left: 0;
131
- margin-right: 0;
132
- }
133
- .bf-container--break-lg [class^=bf-col] {
134
- flex-basis: 100%;
135
- max-width: 100%;
136
- margin-left: 0;
137
- padding-left: 0;
138
- padding-right: 0;
139
- }
140
- }
141
- table td[class^=bf-col],
142
- table th[class^=bf-col] {
143
- position: static;
144
- }
1
+ /* ! Bullframe CSS v6.0.0 | MIT License | https://github.com/marcop135/bullframe.css */
2
+
3
+ /* Utilities-only build: tokens + .bf-* helpers (no base element styles). */
4
+
5
+ /* Variables */
6
+ /* Design tokens (--bf-*). Shared by every build variant.
7
+ * Override on :root (or a scope) to theme without rebuilding. */
8
+
9
+ :root {
10
+ /* Neutrals */
11
+ --bf-white: rgb(255 255 255);
12
+ --bf-light: rgb(240 240 240);
13
+ --bf-gray-light-extra: rgb(233 233 233);
14
+ --bf-gray-light: rgb(204 204 204);
15
+ --bf-gray: rgb(153 153 153);
16
+ --bf-gray-dark: rgb(102 102 102);
17
+ --bf-gray-dark-extra: rgb(51 51 51);
18
+ --bf-dark: rgb(34 34 34);
19
+ --bf-dark-extra: rgb(17 17 17);
20
+ --bf-black: rgb(0 0 0);
21
+
22
+ /* Highlight / mark */
23
+ --bf-yellow-light: rgb(255 255 153);
24
+ --bf-yellow: rgb(255 255 0);
25
+ --bf-orange: rgb(255 165 0);
26
+
27
+ /* Accent: WCAG AA on white (links 4.5:1) and white-on-blue buttons (4.5:1) */
28
+ --bf-blue: rgb(0 86 179);
29
+ --bf-blue-light: rgb(0 65 135);
30
+ --bf-blue-light-extra: rgb(190 216 254);
31
+
32
+ /* Invalid / error */
33
+ --bf-red: rgb(255 0 0);
34
+
35
+ /* Dark-mode surfaces (used by utility-global-dark*.css) */
36
+ --bf-dark-bg: rgb(28 28 28);
37
+ --bf-dark-link: rgb(77 165 255);
38
+ --bf-dark-link-hover: rgb(77 165 255);
39
+ --bf-dark-border-focus: rgb(26 140 255);
40
+ --bf-dark-shadow-focus: rgb(3 102 214 / 50%);
41
+ --bf-dark-mark-bg: rgb(230 230 0);
42
+ --bf-dark-ins-bg: rgb(255 255 200);
43
+ --bf-dark-button-hover: rgb(184 184 184);
44
+ --bf-dark-button-shadow: rgb(255 255 255 / 45%);
45
+ --bf-dark-invalid: rgb(255 38 38);
46
+
47
+ /* Spacing scale + grid gutter */
48
+ --bf-spacing-sm: 0.25rem;
49
+ --bf-spacing-md: 0.5rem;
50
+ --bf-spacing-lg: 1rem;
51
+ --bf-spacing-xl: 2rem;
52
+ --bf-spacing-xxl: 3rem;
53
+ --bf-spacing-grid-gutter: 1.5rem;
54
+
55
+ /* Type */
56
+ --bf-font-sans-serif:
57
+ -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell,
58
+ 'Helvetica Neue', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
59
+ 'Segoe UI Symbol', 'Noto Color Emoji';
60
+ --bf-font-serif: Georgia, Times, 'Times New Roman', serif;
61
+ --bf-font-monospace:
62
+ SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
63
+ --bf-body-font-size-rem: 1.6rem;
64
+ --bf-body-line-height: 1.5;
65
+
66
+ /* Breakpoint tokens (documentation / tooling; media queries use literal px below) */
67
+ --bf-breakpoint-xs: 0;
68
+ --bf-breakpoint-sm: 576px;
69
+ --bf-breakpoint-md: 768px;
70
+ --bf-breakpoint-lg: 992px;
71
+ --bf-breakpoint-xl: 1200px;
72
+ --bf-breakpoint-xxl: 1400px;
73
+ }
74
+
75
+ /* Utilities */
76
+ /* Display, visibility, float, position, and width helpers. */
145
77
 
146
78
  .bf-clearfix::before,
147
79
  .bf-clearfix::after {
148
- content: " ";
80
+ content: ' ';
149
81
  display: table;
150
82
  }
151
83
 
@@ -163,7 +95,6 @@ table th[class^=bf-col] {
163
95
  }
164
96
 
165
97
  .bf-text-hide {
166
- /* stylelint-disable-next-line */
167
98
  font: 0/0 a !important;
168
99
  color: transparent !important;
169
100
  text-shadow: none !important;
@@ -173,16 +104,7 @@ table th[class^=bf-col] {
173
104
  padding: 0 !important;
174
105
  }
175
106
 
176
- /*
177
- // taken from https://github.com/h5bp/html5-boilerplate/blob/v7.3.0/dist/css/main.css
178
- //
179
- * Hide only visually, but have it available for screen readers:
180
- * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
181
- *
182
- * 1. For long content, line feeds are not interpreted as spaces and small width
183
- * causes content to wrap 1 word per line:
184
- * https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
185
- */
107
+ /* Visually hidden; available to screen readers (h5bp / Snook). */
186
108
  .bf-sr-only {
187
109
  border: 0 !important;
188
110
  clip: rect(0, 0, 0, 0) !important;
@@ -195,13 +117,7 @@ table th[class^=bf-col] {
195
117
  width: 1px !important;
196
118
  }
197
119
 
198
- /*
199
- // taken from https://github.com/h5bp/html5-boilerplate/blob/v7.3.0/dist/css/main.css
200
- //
201
- * Extends the .sr-only class to allow the element
202
- * to be focusable when navigated to via the keyboard:
203
- * https://www.drupal.org/node/897638
204
- */
120
+ /* .bf-sr-only, revealed on focus (skip links). */
205
121
  .bf-sr-only.focusable:active,
206
122
  .bf-sr-only.focusable:focus {
207
123
  clip: auto !important;
@@ -285,6 +201,11 @@ table th[class^=bf-col] {
285
201
  top: 0 !important;
286
202
  }
287
203
 
204
+ .bf-position-relative {
205
+ position: relative !important;
206
+ }
207
+
208
+ /* Absolute center inside a relative parent. */
288
209
  .bf-align-center-unknown {
289
210
  position: relative !important;
290
211
  }
@@ -297,9 +218,10 @@ table th[class^=bf-col] {
297
218
  }
298
219
 
299
220
  .bf-align-center-flex {
300
- display: flex;
301
- align-items: center;
302
- justify-content: center;
221
+ display: flex !important;
222
+ justify-content: center !important;
223
+ align-items: center !important;
224
+ height: 100vh !important;
303
225
  }
304
226
 
305
227
  .bf-width-25 {
@@ -325,439 +247,649 @@ table th[class^=bf-col] {
325
247
  .bf-width-auto {
326
248
  width: auto !important;
327
249
  }
250
+ /* Text alignment, weight, truncate, and font-stack helpers. */
328
251
 
329
- .bf-z-index-1 {
330
- z-index: 1;
252
+ .bf-t-transform-uppercase {
253
+ text-transform: uppercase !important;
331
254
  }
332
255
 
333
- .bf-z-index-2 {
334
- z-index: 2;
256
+ .bf-t-transform-none {
257
+ text-transform: none !important;
335
258
  }
336
259
 
337
- .bf-z-index-3 {
338
- z-index: 3;
260
+ .bf-t-left {
261
+ text-align: left !important;
339
262
  }
340
263
 
341
- .bf-z-index-4 {
342
- z-index: 4;
264
+ .bf-t-center {
265
+ text-align: center !important;
343
266
  }
344
267
 
345
- .bf-z-index-5 {
346
- z-index: 5;
268
+ .bf-t-right {
269
+ text-align: right !important;
347
270
  }
348
271
 
349
- .bf-z-index-6 {
350
- z-index: 6;
272
+ .bf-t-shadow {
273
+ text-shadow: 0 0 2px var(--bf-dark) !important;
274
+ text-shadow: 0 0 0.2rem var(--bf-dark) !important;
351
275
  }
352
276
 
353
- .bf-z-index-7 {
354
- z-index: 7;
277
+ .bf-t-italic {
278
+ font-style: italic !important;
355
279
  }
356
280
 
357
- .bf-z-index-8 {
358
- z-index: 8;
281
+ /* Reset italic inheritance (e.g. nested <i>). */
282
+ .bf-t-style-normal {
283
+ font-style: normal !important;
359
284
  }
360
285
 
361
- .bf-z-index-9 {
362
- z-index: 9;
286
+ /* Weight utilities (e.g. reset <b>). */
287
+ .bf-t-weight-300 {
288
+ font-weight: 300 !important;
363
289
  }
364
290
 
365
- .bf-z-index-10 {
366
- z-index: 10;
291
+ .bf-t-weight-400 {
292
+ font-weight: 400 !important;
367
293
  }
368
294
 
369
- .bf-z-index-20 {
370
- z-index: 20;
295
+ .bf-t-weight-500 {
296
+ font-weight: 500 !important;
371
297
  }
372
298
 
373
- .bf-z-index-30 {
374
- z-index: 30;
299
+ .bf-t-weight-600 {
300
+ font-weight: 600 !important;
375
301
  }
376
302
 
377
- .bf-z-index-40 {
378
- z-index: 40;
303
+ .bf-t-weight-700 {
304
+ font-weight: 700 !important;
379
305
  }
380
306
 
381
- .bf-z-index-50 {
382
- z-index: 50;
307
+ .bf-t-weight-800 {
308
+ font-weight: 800 !important;
383
309
  }
384
310
 
385
- .bf-z-index-60 {
386
- z-index: 60;
311
+ .bf-text-break {
312
+ word-wrap: break-word !important;
387
313
  }
388
314
 
389
- .bf-z-index-70 {
390
- z-index: 70;
315
+ .bf-t-truncate {
316
+ max-width: 100% !important;
317
+ overflow: hidden !important;
318
+ text-overflow: ellipsis !important;
319
+ white-space: nowrap !important;
320
+ word-wrap: normal !important;
391
321
  }
392
322
 
393
- .bf-z-index-80 {
394
- z-index: 80;
323
+ .bf-t-truncate--multiline-2 {
324
+ overflow: hidden !important;
325
+ text-overflow: ellipsis !important;
326
+ display: -webkit-box !important;
327
+ line-clamp: 2 !important;
328
+ -webkit-line-clamp: 2 !important;
329
+ -webkit-box-orient: vertical !important;
395
330
  }
396
331
 
397
- .bf-z-index-90 {
398
- z-index: 90;
332
+ .bf-t-truncate--multiline-3 {
333
+ overflow: hidden !important;
334
+ text-overflow: ellipsis !important;
335
+ display: -webkit-box !important;
336
+ line-clamp: 3 !important;
337
+ -webkit-line-clamp: 3 !important;
338
+ -webkit-box-orient: vertical !important;
399
339
  }
400
340
 
401
- .bf-z-index-100 {
402
- z-index: 100;
341
+ .bf-no-select {
342
+ -webkit-user-select: none !important;
343
+ -moz-user-select: none !important;
344
+ user-select: none !important;
345
+ -webkit-touch-callout: none !important;
403
346
  }
404
347
 
405
- .bf-z-index-200 {
406
- z-index: 200;
348
+ .bf-font-sans-serif {
349
+ font-family: var(--bf-font-sans-serif) !important;
407
350
  }
408
351
 
409
- .bf-z-index-300 {
410
- z-index: 200;
352
+ .bf-font-serif {
353
+ font-family: var(--bf-font-serif) !important;
411
354
  }
412
355
 
413
- .bf-m-0 {
414
- margin: 0 !important;
356
+ .bf-font-monospace {
357
+ font-family: var(--bf-font-monospace) !important;
415
358
  }
416
359
 
417
- .bf-m-t-0 {
360
+ /* Opt-in stacks from Modern Font Stacks (https://modernfontstacks.com/). */
361
+ .bf-sans-serif--system {
362
+ font-family: system-ui, sans-serif;
363
+ }
364
+
365
+ .bf-serif--transitional {
366
+ font-family: Charter, 'Bitstream Charter', 'Sitka Text', Cambria, serif;
367
+ }
368
+
369
+ .bf-serif--oldstyle {
370
+ font-family: 'Iowan Old Style', 'Palatino Linotype', 'URW Palladio L', P052, serif;
371
+ }
372
+
373
+ .bf-sans-serif--humanist {
374
+ font-family:
375
+ Seravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif;
376
+ }
377
+
378
+ .bf-sans-serif--geometric {
379
+ font-family: Avenir, Montserrat, Corbel, 'URW Gothic', source-sans-pro, sans-serif;
380
+ }
381
+
382
+ .bf-sans-serif--classical {
383
+ font-family: Optima, Candara, 'Noto Sans', source-sans-pro, sans-serif;
384
+ }
385
+
386
+ .bf-sans-serif--neo-grotesque {
387
+ font-family: Inter, Roboto, 'Helvetica Neue', 'Arial Nova', 'Nimbus Sans', Arial, sans-serif;
388
+ }
389
+
390
+ .bf-monospace--slab {
391
+ font-family: 'Nimbus Mono PS', 'Courier New', monospace;
392
+ }
393
+
394
+ .bf-monospace--code {
395
+ font-family:
396
+ ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono',
397
+ monospace;
398
+ }
399
+
400
+ .bf-sans-serif--industrial {
401
+ font-family:
402
+ Bahnschrift, 'DIN Alternate', 'Franklin Gothic Medium', 'Nimbus Sans Narrow',
403
+ sans-serif-condensed, sans-serif;
404
+ }
405
+
406
+ .bf-sans-serif--rounded {
407
+ font-family:
408
+ ui-rounded, 'Hiragino Maru Gothic ProN', Quicksand, Comfortaa, Manjari, 'Arial Rounded MT',
409
+ 'Arial Rounded MT Bold', Calibri, source-sans-pro, sans-serif;
410
+ }
411
+
412
+ .bf-serif--slab {
413
+ font-family: Rockwell, 'Rockwell Nova', 'Roboto Slab', 'DejaVu Serif', 'Sitka Small', serif;
414
+ }
415
+
416
+ .bf-serif--antique {
417
+ font-family:
418
+ Superclarendon, 'Bookman Old Style', 'URW Bookman', 'URW Bookman L', 'Georgia Pro', Georgia,
419
+ serif;
420
+ }
421
+
422
+ .bf-serif--didone {
423
+ font-family: Didot, 'Bodoni MT', 'Noto Serif Display', 'URW Palladio L', P052, Sylfaen, serif;
424
+ }
425
+
426
+ .bf-cursive--handwritten {
427
+ font-family: 'Segoe Print', 'Bradley Hand', Chilanka, TSCu_Comic, casual, cursive;
428
+ }
429
+
430
+ .bf-h1,
431
+ .bf-h2,
432
+ .bf-h3,
433
+ .bf-h4,
434
+ .bf-h5,
435
+ .bf-h6 {
436
+ font-weight: 600 !important;
418
437
  margin-top: 0 !important;
438
+ line-height: 1.2 !important;
439
+ margin-bottom: var(--bf-spacing-lg) !important;
419
440
  }
420
441
 
421
- .bf-m-b-0 {
422
- margin-bottom: 0 !important;
442
+ .bf-h1 {
443
+ font-size: 36px !important;
444
+ font-size: 3.6rem !important;
423
445
  }
424
446
 
425
- .bf-m-l-0 {
426
- margin-left: 0 !important;
447
+ .bf-h2 {
448
+ font-size: 30px !important;
449
+ font-size: 3rem !important;
427
450
  }
428
451
 
429
- .bf-m-r-0 {
430
- margin-right: 0 !important;
452
+ .bf-h3 {
453
+ font-size: 24px !important;
454
+ font-size: 2.4rem !important;
431
455
  }
432
456
 
433
- .bf-m-1 {
434
- margin-bottom: 0.5rem !important;
457
+ .bf-h4 {
458
+ font-size: 20px !important;
459
+ font-size: 2rem !important;
435
460
  }
436
461
 
437
- .bf-m-2 {
438
- margin-bottom: 1rem !important;
462
+ .bf-h5,
463
+ .bf-h6 {
464
+ font-size: 16px !important;
465
+ font-size: 1.6rem !important;
439
466
  }
440
467
 
441
- .bf-m-3 {
442
- margin-bottom: 2rem !important;
468
+ p.bf-lead {
469
+ font-size: 120% !important;
443
470
  }
444
471
 
445
- .bf-m-4 {
446
- margin-bottom: 3rem !important;
472
+ body.bf-responsive-typography {
473
+ font-size: clamp(1.5rem, 2vw, 1.8rem);
447
474
  }
475
+ /* 12-column flex grid: .bf-container / .bf-row / .bf-col-* (+ optional --break-* stacking). */
448
476
 
449
- .bf-m-t-1 {
450
- margin-top: 0.5rem !important;
477
+ .bf-container,
478
+ .bf-container--fluid {
479
+ box-sizing: border-box;
480
+ display: block;
481
+ margin-right: auto;
482
+ margin-left: auto;
483
+ padding-left: var(--bf-spacing-grid-gutter);
484
+ padding-right: var(--bf-spacing-grid-gutter);
451
485
  }
452
486
 
453
- .bf-m-t-2 {
454
- margin-top: 1rem !important;
487
+ .bf-container {
488
+ max-width: 114rem;
455
489
  }
456
490
 
457
- .bf-m-t-3 {
458
- margin-top: 2rem !important;
491
+ .bf-row {
492
+ display: flex;
493
+ flex-wrap: wrap;
494
+ margin-left: calc(-1 * var(--bf-spacing-grid-gutter));
495
+ margin-right: calc(-1 * var(--bf-spacing-grid-gutter));
459
496
  }
460
497
 
461
- .bf-m-t-4 {
462
- margin-top: 3rem !important;
498
+ [class^='bf-col-'] {
499
+ position: relative;
500
+ min-height: 1px;
501
+ padding-left: var(--bf-spacing-grid-gutter);
502
+ padding-right: var(--bf-spacing-grid-gutter);
503
+ flex-grow: 0;
504
+ flex-shrink: 0;
463
505
  }
464
506
 
465
- .bf-m-b-1 {
466
- margin-bottom: 0.5rem !important;
507
+ .bf-no-gutters {
508
+ margin-right: 0;
509
+ margin-left: 0;
467
510
  }
468
511
 
469
- .bf-m-b-2 {
470
- margin-bottom: 1rem !important;
512
+ .bf-no-gutters > [class^='bf-col'] {
513
+ padding-right: 0;
514
+ padding-left: 0;
471
515
  }
472
516
 
473
- .bf-m-b-3 {
474
- margin-bottom: 2rem !important;
517
+ /* Column spans (12ths). */
518
+ .bf-col-12 {
519
+ flex-basis: 100%;
520
+ max-width: 100%;
475
521
  }
476
522
 
477
- .bf-m-b-4 {
478
- margin-bottom: 3rem !important;
523
+ .bf-col-11 {
524
+ flex-basis: 91.6667%;
525
+ max-width: 91.6667%;
479
526
  }
480
527
 
481
- .bf-p-0 {
482
- padding: 0 !important;
528
+ .bf-col-10 {
529
+ flex-basis: 83.3333%;
530
+ max-width: 83.3333%;
483
531
  }
484
532
 
485
- .bf-p-t-0 {
486
- padding-top: 0 !important;
533
+ .bf-col-9 {
534
+ flex-basis: 75%;
535
+ max-width: 75%;
487
536
  }
488
537
 
489
- .bf-p-b-0 {
490
- padding-bottom: 0 !important;
538
+ .bf-col-8 {
539
+ flex-basis: 66.6667%;
540
+ max-width: 66.6667%;
491
541
  }
492
542
 
493
- .bf-p-l-0 {
494
- padding-left: 0 !important;
543
+ .bf-col-7 {
544
+ flex-basis: 58.3333%;
545
+ max-width: 58.3333%;
495
546
  }
496
547
 
497
- .bf-p-r-0 {
498
- padding-right: 0 !important;
548
+ .bf-col-6 {
549
+ flex-basis: 50%;
550
+ max-width: 50%;
499
551
  }
500
552
 
501
- .bf-p-1 {
502
- padding-bottom: 0.5rem !important;
553
+ .bf-col-5 {
554
+ flex-basis: 41.6667%;
555
+ max-width: 41.6667%;
503
556
  }
504
557
 
505
- .bf-p-2 {
506
- padding-bottom: 1rem !important;
558
+ .bf-col-4 {
559
+ flex-basis: 33.3333%;
560
+ max-width: 33.3333%;
507
561
  }
508
562
 
509
- .bf-p-3 {
510
- padding-bottom: 2rem !important;
563
+ .bf-col-3 {
564
+ flex-basis: 25%;
565
+ max-width: 25%;
511
566
  }
512
567
 
513
- .bf-p-4 {
514
- padding-bottom: 3rem !important;
568
+ .bf-col-2 {
569
+ flex-basis: 16.6667%;
570
+ max-width: 16.6667%;
515
571
  }
516
572
 
517
- .bf-p-t-1 {
518
- padding-top: 0.5rem !important;
573
+ .bf-col-1 {
574
+ flex-basis: 8.3333%;
575
+ max-width: 8.3333%;
519
576
  }
520
577
 
521
- .bf-p-t-2 {
522
- padding-top: 1rem !important;
578
+ /* Breakpoint stacking via .bf-container--break-{xs|md|lg}. */
579
+ @media (max-width: 575px) {
580
+ .bf-container--break-xs .bf-row {
581
+ margin-left: 0;
582
+ margin-right: 0;
583
+ }
584
+
585
+ .bf-container--break-xs [class^='bf-col'] {
586
+ flex-basis: 100%;
587
+ max-width: 100%;
588
+ margin-left: 0;
589
+ padding-left: 0;
590
+ padding-right: 0;
591
+ }
523
592
  }
524
593
 
525
- .bf-p-t-3 {
526
- padding-top: 2rem !important;
594
+ @media (max-width: 767px) {
595
+ .bf-container--break-md .bf-row {
596
+ margin-left: 0;
597
+ margin-right: 0;
598
+ }
599
+
600
+ .bf-container--break-md [class^='bf-col'] {
601
+ flex-basis: 100%;
602
+ max-width: 100%;
603
+ margin-left: 0;
604
+ padding-left: 0;
605
+ padding-right: 0;
606
+ }
527
607
  }
528
608
 
529
- .bf-p-t-4 {
530
- padding-top: 3rem !important;
609
+ @media (max-width: 991px) {
610
+ .bf-container--break-lg .bf-row {
611
+ margin-left: 0;
612
+ margin-right: 0;
613
+ }
614
+
615
+ .bf-container--break-lg [class^='bf-col'] {
616
+ flex-basis: 100%;
617
+ max-width: 100%;
618
+ margin-left: 0;
619
+ padding-left: 0;
620
+ padding-right: 0;
621
+ }
531
622
  }
532
623
 
533
- .bf-p-b-1 {
534
- padding-bottom: 0.5rem !important;
624
+ /* Table cells with col classes stay position:static (v4 compat). */
625
+ table td[class^='bf-col'],
626
+ table th[class^='bf-col'] {
627
+ position: static;
535
628
  }
629
+ /* Z-index scale (.bf-z-index-*). */
536
630
 
537
- .bf-p-b-2 {
538
- padding-bottom: 1rem !important;
631
+ .bf-z-index-1 {
632
+ z-index: 1;
633
+ }
634
+ .bf-z-index-2 {
635
+ z-index: 2;
636
+ }
637
+ .bf-z-index-3 {
638
+ z-index: 3;
639
+ }
640
+ .bf-z-index-4 {
641
+ z-index: 4;
539
642
  }
643
+ .bf-z-index-5 {
644
+ z-index: 5;
645
+ }
646
+ .bf-z-index-6 {
647
+ z-index: 6;
648
+ }
649
+ .bf-z-index-7 {
650
+ z-index: 7;
651
+ }
652
+ .bf-z-index-8 {
653
+ z-index: 8;
654
+ }
655
+ .bf-z-index-9 {
656
+ z-index: 9;
657
+ }
658
+ .bf-z-index-10 {
659
+ z-index: 10;
660
+ }
661
+ .bf-z-index-20 {
662
+ z-index: 20;
663
+ }
664
+ .bf-z-index-30 {
665
+ z-index: 30;
666
+ }
667
+ .bf-z-index-40 {
668
+ z-index: 40;
669
+ }
670
+ .bf-z-index-50 {
671
+ z-index: 50;
672
+ }
673
+ .bf-z-index-60 {
674
+ z-index: 60;
675
+ }
676
+ .bf-z-index-70 {
677
+ z-index: 70;
678
+ }
679
+ .bf-z-index-80 {
680
+ z-index: 80;
681
+ }
682
+ .bf-z-index-90 {
683
+ z-index: 90;
684
+ }
685
+ .bf-z-index-100 {
686
+ z-index: 100;
687
+ }
688
+ .bf-z-index-200 {
689
+ z-index: 200;
690
+ }
691
+ .bf-z-index-300 {
692
+ z-index: 300;
693
+ }
694
+ /* Margin / padding scale (.bf-m-*, .bf-p-*). */
540
695
 
541
- .bf-p-b-3 {
542
- padding-bottom: 2rem !important;
696
+ .bf-m-0 {
697
+ margin: 0 !important;
543
698
  }
544
699
 
545
- .bf-p-b-4 {
546
- padding-bottom: 3rem !important;
700
+ .bf-m-t-0 {
701
+ margin-top: 0 !important;
547
702
  }
548
703
 
549
- .bf-t-transform-uppercase {
550
- text-transform: uppercase !important;
704
+ .bf-m-b-0 {
705
+ margin-bottom: 0 !important;
551
706
  }
552
707
 
553
- .bf-t-transform-none {
554
- text-transform: none !important;
708
+ .bf-m-l-0 {
709
+ margin-left: 0 !important;
555
710
  }
556
711
 
557
- .bf-t-left {
558
- text-align: left !important;
712
+ .bf-m-r-0 {
713
+ margin-right: 0 !important;
559
714
  }
560
715
 
561
- .bf-t-center {
562
- text-align: center !important;
716
+ .bf-m-1 {
717
+ margin-bottom: var(--bf-spacing-md) !important;
563
718
  }
564
719
 
565
- .bf-t-right {
566
- text-align: right !important;
720
+ .bf-m-2 {
721
+ margin-bottom: var(--bf-spacing-lg) !important;
567
722
  }
568
723
 
569
- .bf-t-shadow {
570
- text-shadow: 0 0 2px #222 !important;
571
- text-shadow: 0 0 0.2rem #222 !important;
724
+ .bf-m-3 {
725
+ margin-bottom: var(--bf-spacing-xl) !important;
572
726
  }
573
727
 
574
- .bf-t-italic {
575
- font-style: italic !important;
728
+ .bf-m-4 {
729
+ margin-bottom: var(--bf-spacing-xxl) !important;
576
730
  }
577
731
 
578
- .bf-t-style-normal {
579
- font-style: normal !important;
732
+ .bf-m-t-1 {
733
+ margin-top: var(--bf-spacing-md) !important;
580
734
  }
581
735
 
582
- .bf-t-weight-300 {
583
- font-weight: 300 !important;
736
+ .bf-m-t-2 {
737
+ margin-top: var(--bf-spacing-lg) !important;
584
738
  }
585
739
 
586
- .bf-t-weight-400 {
587
- font-weight: 400 !important;
740
+ .bf-m-t-3 {
741
+ margin-top: var(--bf-spacing-xl) !important;
588
742
  }
589
743
 
590
- .bf-t-weight-500 {
591
- font-weight: 500 !important;
744
+ .bf-m-t-4 {
745
+ margin-top: var(--bf-spacing-xxl) !important;
592
746
  }
593
747
 
594
- .bf-t-weight-600 {
595
- font-weight: 600 !important;
748
+ .bf-m-b-1 {
749
+ margin-bottom: var(--bf-spacing-md) !important;
596
750
  }
597
751
 
598
- .bf-t-weight-700 {
599
- font-weight: 700 !important;
752
+ .bf-m-b-2 {
753
+ margin-bottom: var(--bf-spacing-lg) !important;
600
754
  }
601
755
 
602
- .bf-t-weight-800 {
603
- font-weight: 800 !important;
756
+ .bf-m-b-3 {
757
+ margin-bottom: var(--bf-spacing-xl) !important;
604
758
  }
605
759
 
606
- .bf-text-break {
607
- word-wrap: break-word !important;
760
+ .bf-m-b-4 {
761
+ margin-bottom: var(--bf-spacing-xxl) !important;
608
762
  }
609
763
 
610
- .bf-t-truncate {
611
- max-width: 100% !important;
612
- overflow: hidden !important;
613
- text-overflow: ellipsis !important;
614
- white-space: nowrap !important;
615
- word-wrap: normal !important;
764
+ .bf-p-0 {
765
+ padding: 0 !important;
616
766
  }
617
767
 
618
- .bf-t-truncate--multiline-2 {
619
- overflow: hidden !important;
620
- text-overflow: ellipsis !important;
621
- display: -webkit-box !important;
622
- line-clamp: 2 !important;
623
- -webkit-line-clamp: 2 !important;
624
- -webkit-box-orient: vertical !important;
768
+ .bf-p-t-0 {
769
+ padding-top: 0 !important;
625
770
  }
626
771
 
627
- .bf-t-truncate--multiline-3 {
628
- overflow: hidden !important;
629
- text-overflow: ellipsis !important;
630
- display: -webkit-box !important;
631
- line-clamp: 3 !important;
632
- -webkit-line-clamp: 3 !important;
633
- -webkit-box-orient: vertical !important;
772
+ .bf-p-b-0 {
773
+ padding-bottom: 0 !important;
634
774
  }
635
775
 
636
- .bf-no-select {
637
- -webkit-user-select: none !important;
638
- -moz-user-select: none !important;
639
- user-select: none !important;
640
- -webkit-touch-callout: none !important;
776
+ .bf-p-l-0 {
777
+ padding-left: 0 !important;
641
778
  }
642
779
 
643
- .bf-font-sans-serif {
644
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !important;
780
+ .bf-p-r-0 {
781
+ padding-right: 0 !important;
645
782
  }
646
783
 
647
- .bf-font-serif {
648
- font-family: Georgia, Times, "Times New Roman", serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !important;
784
+ .bf-p-1 {
785
+ padding-bottom: var(--bf-spacing-md) !important;
649
786
  }
650
787
 
651
- .bf-font-monospace {
652
- 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" !important;
788
+ .bf-p-2 {
789
+ padding-bottom: var(--bf-spacing-lg) !important;
653
790
  }
654
791
 
655
- .bf-h1,
656
- .bf-h2,
657
- .bf-h3,
658
- .bf-h4,
659
- .bf-h5,
660
- .bf-h6 {
661
- font-weight: 600 !important;
662
- margin-top: 0 !important;
663
- line-height: 1.2 !important;
664
- margin-bottom: 10px !important;
665
- margin-bottom: 1rem !important;
792
+ .bf-p-3 {
793
+ padding-bottom: var(--bf-spacing-xl) !important;
666
794
  }
667
795
 
668
- .bf-h1 {
669
- font-size: 36px !important;
670
- font-size: 3.6rem !important;
796
+ .bf-p-4 {
797
+ padding-bottom: var(--bf-spacing-xxl) !important;
671
798
  }
672
799
 
673
- .bf-h2 {
674
- font-size: 30px !important;
675
- font-size: 3rem !important;
800
+ .bf-p-t-1 {
801
+ padding-top: var(--bf-spacing-md) !important;
676
802
  }
677
803
 
678
- .bf-h3 {
679
- font-size: 24px !important;
680
- font-size: 2.4rem !important;
804
+ .bf-p-t-2 {
805
+ padding-top: var(--bf-spacing-lg) !important;
681
806
  }
682
807
 
683
- .bf-h4 {
684
- font-size: 20px !important;
685
- font-size: 2rem !important;
808
+ .bf-p-t-3 {
809
+ padding-top: var(--bf-spacing-xl) !important;
686
810
  }
687
811
 
688
- .bf-h5,
689
- .bf-h6 {
690
- font-size: 16px !important;
691
- font-size: 1.6rem !important;
812
+ .bf-p-t-4 {
813
+ padding-top: var(--bf-spacing-xxl) !important;
692
814
  }
693
815
 
694
- p.bf-lead {
695
- font-size: 120% !important;
816
+ .bf-p-b-1 {
817
+ padding-bottom: var(--bf-spacing-md) !important;
696
818
  }
697
819
 
698
- body.bf-responsive-typography {
699
- --body-rt-font-size-flex: calc(1.5rem + 3 * ((100vw - 320px) / 680));
700
- --body-rt-font-size-max: 1.8rem;
820
+ .bf-p-b-2 {
821
+ padding-bottom: var(--bf-spacing-lg) !important;
701
822
  }
702
823
 
703
- @media (min-width: 320px) {
704
- body.bf-responsive-typography {
705
- font-size: var(--body-rt-font-size-flex);
706
- }
824
+ .bf-p-b-3 {
825
+ padding-bottom: var(--bf-spacing-xl) !important;
707
826
  }
708
- @media (min-width: 1000px) {
709
- body.bf-responsive-typography {
710
- font-size: var(--body-rt-font-size-max);
711
- }
827
+
828
+ .bf-p-b-4 {
829
+ padding-bottom: var(--bf-spacing-xxl) !important;
712
830
  }
831
+ /* .bf-btn and variants. */
832
+
713
833
  .bf-btn {
714
834
  display: inline-block;
715
835
  cursor: pointer;
716
- color: #222;
717
- padding: 0.6666666667rem 1.3333333333rem;
836
+ color: var(--bf-dark);
837
+ padding: calc(var(--bf-spacing-xl) / 3) calc(calc(var(--bf-spacing-xl) / 3) * 2);
718
838
  line-height: normal;
719
839
  text-align: center;
720
840
  margin: 0;
721
841
  background-clip: padding-box;
722
842
  vertical-align: baseline;
723
843
  overflow: visible;
724
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
844
+ -webkit-tap-highlight-color: rgb(0 0 0 / 0%);
725
845
  -webkit-user-select: none;
726
846
  -moz-user-select: none;
727
847
  user-select: none;
728
- border-radius: 0.25rem;
848
+ border-radius: var(--bf-spacing-sm);
849
+
729
850
  border: 0;
730
851
  background-image: none;
731
- background-color: #ccc;
852
+ background-color: var(--bf-gray-light);
732
853
  transition: all 0.2s;
733
854
  }
734
- .bf-btn:hover, .bf-btn:active, .bf-btn:focus {
855
+
856
+ .bf-btn:hover,
857
+ .bf-btn:active,
858
+ .bf-btn:focus {
735
859
  text-decoration: none;
736
- color: #222;
737
- background: rgb(178.5, 178.5, 178.5);
738
- }
739
- .bf-btn:active, .bf-btn:focus {
740
- box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.15);
860
+ color: var(--bf-dark);
861
+ background: rgb(184 184 184); /* --bf-gray-light, ~10% darker */
741
862
  }
863
+
864
+ .bf-btn:active,
742
865
  .bf-btn:focus {
743
- outline: 0;
866
+ box-shadow: 0 0 0 3px rgb(0 0 0 / 15%);
744
867
  }
868
+
869
+ /* Primary: white on --bf-blue (WCAG AA 4.5:1). */
745
870
  .bf-btn.bf-btn--primary {
746
- color: #fff;
747
- background: #007bff;
871
+ color: var(--bf-white);
872
+ background: var(--bf-blue);
748
873
  }
749
- .bf-btn.bf-btn--primary:hover, .bf-btn.bf-btn--primary:active, .bf-btn.bf-btn--primary:focus {
750
- color: #fff;
751
- background: rgb(0, 98.4, 204);
874
+
875
+ .bf-btn.bf-btn--primary:hover,
876
+ .bf-btn.bf-btn--primary:active,
877
+ .bf-btn.bf-btn--primary:focus {
878
+ color: var(--bf-white);
879
+ background: var(--bf-blue-light);
752
880
  }
753
- .bf-btn.bf-btn--primary:active, .bf-btn.bf-btn--primary:focus {
754
- box-shadow: 0 0 0 3px rgba(0, 86, 179, 0.25);
881
+
882
+ .bf-btn.bf-btn--primary:active,
883
+ .bf-btn.bf-btn--primary:focus {
884
+ box-shadow: 0 0 0 3px rgb(0 65 135 / 35%);
755
885
  }
756
886
 
757
- fieldset[disabled] .bf-btn,
758
- .bf-btn[disabled],
759
- .bf-btn:disabled,
760
- .bf-btn[aria-disabled=true] {
887
+ :where(
888
+ fieldset[disabled] .bf-btn,
889
+ .bf-btn[disabled],
890
+ .bf-btn:disabled,
891
+ .bf-btn[aria-disabled='true']
892
+ ) {
761
893
  cursor: default !important;
762
894
  cursor: not-allowed !important;
763
895
  pointer-events: none !important;
@@ -766,13 +898,18 @@ fieldset[disabled] .bf-btn,
766
898
  user-select: none !important;
767
899
  box-shadow: none !important;
768
900
  opacity: 0.5 !important;
769
- background-color: #ccc;
901
+ background-color: var(--bf-gray-light);
902
+ outline: none !important;
770
903
  }
904
+ /* Focused / invalid / disabled form state classes. */
771
905
 
772
906
  .bf-focused {
773
- transition: border 0.2s, background-color 0.2s, box-shadow 0.2s !important;
774
- border-color: #007bff !important;
775
- box-shadow: 0 0 0 3px rgba(0, 86, 179, 0.25) !important;
907
+ transition:
908
+ border 0.2s,
909
+ background-color 0.2s,
910
+ box-shadow 0.2s !important;
911
+ border-color: var(--bf-blue) !important;
912
+ box-shadow: 0 0 0 3px rgb(0 86 179 / 25%) !important;
776
913
  }
777
914
 
778
915
  .bf-disabled,
@@ -791,8 +928,8 @@ fieldset[disabled] .bf-btn,
791
928
  user-select: none !important;
792
929
  box-shadow: none !important;
793
930
  opacity: 0.5 !important;
794
- background-color: #fff;
795
- border-color: #999;
931
+ background-color: var(--bf-white);
932
+ border-color: var(--bf-gray);
796
933
  }
797
934
 
798
935
  label.bf-disabled {
@@ -801,9 +938,9 @@ label.bf-disabled {
801
938
  }
802
939
 
803
940
  button.bf-disabled,
804
- [type=button].bf-disabled,
805
- [type=reset].bf-disabled,
806
- [type=submit].bf-disabled,
941
+ [type='button'].bf-disabled,
942
+ [type='reset'].bf-disabled,
943
+ [type='submit'].bf-disabled,
807
944
  .bf-btn.bf-disabled {
808
945
  cursor: default;
809
946
  cursor: not-allowed;
@@ -813,25 +950,28 @@ button.bf-disabled,
813
950
  user-select: none;
814
951
  box-shadow: none;
815
952
  opacity: 0.5;
816
- color: #222;
817
- background: #ccc;
818
- }
819
- button.bf-disabled:hover, button.bf-disabled:active, button.bf-disabled:focus,
820
- [type=button].bf-disabled:hover,
821
- [type=button].bf-disabled:active,
822
- [type=button].bf-disabled:focus,
823
- [type=reset].bf-disabled:hover,
824
- [type=reset].bf-disabled:active,
825
- [type=reset].bf-disabled:focus,
826
- [type=submit].bf-disabled:hover,
827
- [type=submit].bf-disabled:active,
828
- [type=submit].bf-disabled:focus,
953
+ color: var(--bf-dark);
954
+ background: var(--bf-gray-light);
955
+ }
956
+
957
+ button.bf-disabled:hover,
958
+ button.bf-disabled:active,
959
+ button.bf-disabled:focus,
960
+ [type='button'].bf-disabled:hover,
961
+ [type='button'].bf-disabled:active,
962
+ [type='button'].bf-disabled:focus,
963
+ [type='reset'].bf-disabled:hover,
964
+ [type='reset'].bf-disabled:active,
965
+ [type='reset'].bf-disabled:focus,
966
+ [type='submit'].bf-disabled:hover,
967
+ [type='submit'].bf-disabled:active,
968
+ [type='submit'].bf-disabled:focus,
829
969
  .bf-btn.bf-disabled:hover,
830
970
  .bf-btn.bf-disabled:active,
831
971
  .bf-btn.bf-disabled:focus {
832
972
  box-shadow: none;
833
- color: #222;
834
- background: #ccc;
973
+ color: var(--bf-dark);
974
+ background: var(--bf-gray-light);
835
975
  }
836
976
 
837
977
  .bf-btn--primary.bf-disabled {
@@ -843,21 +983,109 @@ button.bf-disabled:hover, button.bf-disabled:active, button.bf-disabled:focus,
843
983
  user-select: none;
844
984
  box-shadow: none;
845
985
  opacity: 0.5;
846
- color: #fff;
847
- background: #007bff;
986
+ color: var(--bf-white);
987
+ background: var(--bf-blue);
848
988
  }
849
- .bf-btn--primary.bf-disabled:hover, .bf-btn--primary.bf-disabled:active, .bf-btn--primary.bf-disabled:focus {
989
+
990
+ .bf-btn--primary.bf-disabled:hover,
991
+ .bf-btn--primary.bf-disabled:active,
992
+ .bf-btn--primary.bf-disabled:focus {
850
993
  box-shadow: none;
851
- color: #fff;
852
- background: #007bff;
994
+ color: var(--bf-white);
995
+ background: var(--bf-blue);
853
996
  }
854
997
 
855
998
  .bf-invalid,
856
999
  .bf-invalid:focus {
857
- color: #f00 !important;
858
- border-color: #f00 !important;
859
- box-shadow: 0 0 0 3px rgba(255, 0, 0, 0.25) !important;
1000
+ color: var(--bf-red) !important;
1001
+ border-color: var(--bf-red) !important;
1002
+ box-shadow: 0 0 0 3px rgb(255 0 0 / 25%) !important;
1003
+ }
1004
+ /* Custom radio / checkbox appearance. */
1005
+
1006
+ .custom-checkbox-wrapper [type='checkbox'] {
1007
+ -webkit-appearance: none;
1008
+ -moz-appearance: none;
1009
+ appearance: none;
1010
+ height: 1.8rem;
1011
+ width: 1.8rem;
1012
+ vertical-align: top;
1013
+ position: relative;
1014
+ border: 1px solid var(--bf-gray);
1015
+ }
1016
+
1017
+ .custom-checkbox-wrapper [type='checkbox'] + label {
1018
+ line-height: 1.8rem;
1019
+ vertical-align: top;
1020
+ margin-left: var(--bf-spacing-md);
1021
+ }
1022
+
1023
+ *[dir='rtl'] .custom-checkbox-wrapper [type='checkbox'] + label,
1024
+ .custom-checkbox-wrapper [type='checkbox'][dir='rtl'] + label {
1025
+ margin-left: 0;
1026
+ margin-right: var(--bf-spacing-md);
1027
+ }
1028
+
1029
+ .custom-checkbox-wrapper [type='checkbox']::after {
1030
+ content: '';
1031
+ display: block;
1032
+ position: absolute;
1033
+ width: 0.6rem;
1034
+ height: 0.8rem;
1035
+ border: 2px solid var(--bf-white);
1036
+ border-top: 0;
1037
+ border-left: 0;
1038
+ left: 35%;
1039
+ top: 20%;
1040
+ transform: rotate(43deg);
1041
+ }
1042
+
1043
+ .custom-checkbox-wrapper [type='checkbox']:checked {
1044
+ background-color: var(--bf-blue);
1045
+ border-color: var(--bf-black);
1046
+ }
1047
+
1048
+ .custom-radio-wrapper [type='radio'] {
1049
+ -webkit-appearance: none;
1050
+ -moz-appearance: none;
1051
+ appearance: none;
1052
+ height: 1.8rem;
1053
+ width: 1.8rem;
1054
+ vertical-align: top;
1055
+ position: relative;
1056
+ border: 1px solid var(--bf-gray);
1057
+ }
1058
+
1059
+ .custom-radio-wrapper [type='radio'] + label {
1060
+ line-height: 1.8rem;
1061
+ vertical-align: top;
1062
+ margin-left: var(--bf-spacing-md);
1063
+ }
1064
+
1065
+ *[dir='rtl'] .custom-radio-wrapper [type='radio'] + label,
1066
+ .custom-radio-wrapper [type='radio'][dir='rtl'] + label {
1067
+ margin-left: 0;
1068
+ margin-right: var(--bf-spacing-md);
1069
+ }
1070
+
1071
+ .custom-radio-wrapper [type='radio']::after {
1072
+ content: '';
1073
+ display: block;
1074
+ position: absolute;
1075
+ width: 1.8rem;
1076
+ height: 1.8rem;
1077
+ left: -0.05rem;
1078
+ top: -0.05rem;
1079
+ border-radius: 50%;
1080
+ background: var(--bf-white);
1081
+ transform: scale(0.35);
1082
+ }
1083
+
1084
+ .custom-radio-wrapper [type='radio']:checked {
1085
+ background-color: var(--bf-blue);
1086
+ border-color: var(--bf-black);
860
1087
  }
1088
+ /* Unstyled and inline list helpers. */
861
1089
 
862
1090
  .bf-list-unstyled,
863
1091
  menu ul.bf-list-unstyled,
@@ -875,6 +1103,37 @@ dd.bf-list-unstyled {
875
1103
  dt {
876
1104
  font-weight: 700;
877
1105
  }
1106
+ /* Table padding, overflow, and zebra helpers. */
1107
+
1108
+ .bf-table th,
1109
+ .bf-table td {
1110
+ padding: var(--bf-spacing-lg);
1111
+ border-bottom: 1px solid var(--bf-gray);
1112
+ margin-bottom: var(--bf-spacing-md);
1113
+ }
1114
+
1115
+ /* Horizontal scroll wrapper. */
1116
+ .bf-table-responsive {
1117
+ overflow: auto hidden;
1118
+ -ms-overflow-style: scrollbar;
1119
+ }
1120
+
1121
+ .bf-table-responsive table {
1122
+ width: 100%;
1123
+ margin-bottom: var(--bf-spacing-md);
1124
+ }
1125
+
1126
+ /* Prefer always-visible scrollbars on WebKit. */
1127
+ .bf-table-responsive.scrollbar {
1128
+ -webkit-overflow-scrolling: auto;
1129
+ }
1130
+
1131
+ /* Odd-row striping. */
1132
+ .bf-table--zebra tbody tr:nth-child(odd),
1133
+ .bf-table-responsive--zebra tbody tr:nth-child(odd) {
1134
+ background-color: var(--bf-gray-light-extra);
1135
+ }
1136
+ /* Responsive embed box (Bootstrap-style aspect ratio). */
878
1137
 
879
1138
  .bf-embed-responsive {
880
1139
  position: relative;
@@ -883,15 +1142,22 @@ dt {
883
1142
  padding: 0;
884
1143
  overflow: hidden;
885
1144
  }
1145
+
886
1146
  .bf-embed-responsive::before {
887
1147
  display: block;
888
- content: "";
889
- padding-top: 56.25%;
1148
+ content: '';
1149
+ padding-top: 56.25%; /* 16:9 by default */
890
1150
  }
891
- .bf-embed-responsive .bf-embed-responsive--4-3::before {
1151
+
1152
+ .bf-embed-responsive.bf-embed-responsive--4-3::before {
892
1153
  padding-top: 75%;
893
1154
  }
894
- .bf-embed-responsive .bf-embed-responsive--item, .bf-embed-responsive iframe, .bf-embed-responsive embed, .bf-embed-responsive object, .bf-embed-responsive video {
1155
+
1156
+ .bf-embed-responsive .bf-embed-responsive--item,
1157
+ .bf-embed-responsive iframe,
1158
+ .bf-embed-responsive embed,
1159
+ .bf-embed-responsive object,
1160
+ .bf-embed-responsive video {
895
1161
  position: absolute;
896
1162
  top: 0;
897
1163
  bottom: 0;
@@ -900,120 +1166,130 @@ dt {
900
1166
  height: 100%;
901
1167
  border: 0;
902
1168
  }
1169
+ /* Reduced-motion opt-in (cssremedy-style). */
903
1170
 
904
- .bf-table th,
905
- .bf-table td {
906
- padding: 1rem;
907
- border-bottom: 1px solid #999;
908
- margin-bottom: 0.5rem;
909
- }
910
-
911
- .bf-table-responsive {
912
- overflow: auto hidden;
913
- -ms-overflow-style: scrollbar;
914
- }
915
-
916
- .bf-table-responsive table {
917
- width: 100%;
918
- margin-bottom: 0.5rem;
1171
+ @media (prefers-reduced-motion: reduce) {
1172
+ .bf-reduced-motion,
1173
+ .bf-reduced-motion::before,
1174
+ .bf-reduced-motion::after,
1175
+ .bf-reduced-motion *,
1176
+ .bf-reduced-motion *::before,
1177
+ .bf-reduced-motion *::after {
1178
+ animation-delay: -1ms !important;
1179
+ animation-duration: 1ms !important;
1180
+ animation-iteration-count: 1 !important;
1181
+ background-attachment: initial !important;
1182
+ scroll-behavior: auto !important;
1183
+ transition-delay: 0s !important;
1184
+ transition-duration: 0s !important;
1185
+ }
919
1186
  }
1187
+ /* Opt-in font-smoothing (.bf-antialiased / .bf-subpixel-antialiased).
1188
+ * Names match Tailwind. Not applied globally: Apple recommends subpixel for body text on macOS. */
920
1189
 
921
- .bf-table-responsive.scrollbar {
922
- -webkit-overflow-scrolling: auto;
1190
+ .bf-antialiased {
1191
+ -webkit-font-smoothing: antialiased;
1192
+ -moz-osx-font-smoothing: grayscale;
923
1193
  }
924
1194
 
925
- .bf-table--zebra tbody tr:nth-child(odd),
926
- .bf-table-responsive--zebra tbody tr:nth-child(odd) {
927
- background-color: #e9e9e9;
1195
+ .bf-subpixel-antialiased {
1196
+ -webkit-font-smoothing: auto;
1197
+ -moz-osx-font-smoothing: auto;
928
1198
  }
1199
+ /* Print styles (adapted from h5bp main.css). */
929
1200
 
930
- /* main.css 3.0.0 | MIT License | https://github.com/h5bp/main.css#readme */
931
- /* ==========================================================================
932
- Print styles.
933
- Inlined to avoid the additional HTTP request:
934
- https://www.phpied.com/delay-loading-your-print-css/
935
- ========================================================================== */
936
1201
  @media print {
937
1202
  *,
938
1203
  *::before,
939
1204
  *::after {
940
1205
  background: #fff !important;
941
1206
  color: #000 !important;
942
- /* Black prints faster */
943
1207
  box-shadow: none !important;
944
1208
  text-shadow: none !important;
945
1209
  }
1210
+
946
1211
  a,
947
1212
  a:visited {
948
1213
  text-decoration: underline;
949
1214
  }
1215
+
950
1216
  a[href]::after {
951
- content: " (" attr(href) ")";
1217
+ content: ' (' attr(href) ')';
952
1218
  }
1219
+
953
1220
  abbr[title]::after {
954
- content: " (" attr(title) ")";
1221
+ content: ' (' attr(title) ')';
955
1222
  }
956
- /*
957
- * Don't show links that are fragment identifiers,
958
- * or use the `javascript:` pseudo protocol
959
- */
960
- a[href^="#"]::after,
961
- a[href^="javascript:"]::after {
962
- content: "";
1223
+
1224
+ a[href^='#']::after,
1225
+ a[href^='javascript:']::after {
1226
+ content: '';
963
1227
  }
1228
+
964
1229
  pre {
965
1230
  white-space: pre-wrap !important;
966
1231
  }
1232
+
967
1233
  pre,
968
1234
  blockquote {
969
1235
  border: 1px solid #999;
970
1236
  page-break-inside: avoid;
971
1237
  }
1238
+
972
1239
  tr,
973
1240
  img {
974
1241
  page-break-inside: avoid;
975
1242
  }
1243
+
976
1244
  p,
977
1245
  h2,
978
1246
  h3 {
979
1247
  orphans: 3;
980
1248
  widows: 3;
981
1249
  }
1250
+
982
1251
  h2,
983
1252
  h3 {
984
1253
  page-break-after: avoid;
985
1254
  }
986
- }
987
- @media print {
1255
+
1256
+ /* Framework print tweaks. */
988
1257
  body,
989
1258
  .bf-container {
990
1259
  min-width: 992px !important;
991
1260
  }
1261
+
992
1262
  .bf-table-responsive {
993
1263
  overflow: auto;
994
1264
  }
1265
+
995
1266
  .bf-table-responsive table {
996
1267
  width: auto;
997
1268
  }
1269
+
998
1270
  .bf-table-responsive table,
999
1271
  .bf-table {
1000
1272
  border-collapse: collapse !important;
1001
1273
  }
1002
1274
  }
1003
- @media (prefers-reduced-motion: reduce) {
1004
- .bf-reduced-motion,
1005
- .bf-reduced-motion::before,
1006
- .bf-reduced-motion::after,
1007
- .bf-reduced-motion *,
1008
- .bf-reduced-motion *::before,
1009
- .bf-reduced-motion *::after {
1010
- animation-delay: -1ms !important;
1011
- animation-duration: 1ms !important;
1012
- animation-iteration-count: 1 !important;
1013
- background-attachment: initial !important;
1014
- scroll-behavior: auto !important;
1015
- transition-delay: 0s !important;
1016
- transition-duration: 0s !important;
1017
- }
1275
+ /* Filter helpers (.bf-filter-*). */
1276
+
1277
+ .bf-filter-invert {
1278
+ filter: invert(100%) !important;
1279
+ }
1280
+
1281
+ .bf-filter-dim-images {
1282
+ filter: brightness(0.8) contrast(1.2);
1283
+ }
1284
+
1285
+ .bf-filter-grayscale {
1286
+ filter: grayscale(1) !important;
1287
+ }
1288
+
1289
+ .bf-filter-blur {
1290
+ filter: blur(0.3rem) !important;
1291
+ }
1292
+
1293
+ .bf-filter-none {
1294
+ filter: none !important;
1018
1295
  }
1019
- /*# sourceMappingURL=bullframe-utilities.css.map */