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