bullframe.css 4.2.2 → 5.0.1

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 (141) hide show
  1. package/.browserslistrc +2 -4
  2. package/.editorconfig +8 -4
  3. package/.prettierignore +1 -0
  4. package/.stylelintignore +3 -0
  5. package/.stylelintrc.json +5 -2
  6. package/CHANGELOG.md +18 -1
  7. package/README.md +369 -327
  8. package/dist/css/bullframe-classless-dark-prefers.css +378 -269
  9. package/dist/css/bullframe-classless-dark-prefers.css.map +1 -0
  10. package/dist/css/bullframe-classless-dark-prefers.min.css +3 -3
  11. package/dist/css/bullframe-classless-dark-prefers.min.css.map +1 -1
  12. package/dist/css/bullframe-classless-dark.css +384 -253
  13. package/dist/css/bullframe-classless-dark.css.map +1 -0
  14. package/dist/css/bullframe-classless-dark.min.css +3 -3
  15. package/dist/css/bullframe-classless-dark.min.css.map +1 -1
  16. package/dist/css/bullframe-classless-system-default.css +378 -269
  17. package/dist/css/bullframe-classless-system-default.css.map +1 -0
  18. package/dist/css/bullframe-classless-system-default.min.css +3 -3
  19. package/dist/css/bullframe-classless-system-default.min.css.map +1 -1
  20. package/dist/css/bullframe-classless.css +343 -229
  21. package/dist/css/bullframe-classless.css.map +1 -0
  22. package/dist/css/bullframe-classless.min.css +3 -2
  23. package/dist/css/bullframe-classless.min.css.map +1 -1
  24. package/dist/css/bullframe-dark-prefers.css +399 -464
  25. package/dist/css/bullframe-dark-prefers.css.map +1 -0
  26. package/dist/css/bullframe-dark-prefers.min.css +3 -2
  27. package/dist/css/bullframe-dark-prefers.min.css.map +1 -1
  28. package/dist/css/bullframe-dark.css +401 -375
  29. package/dist/css/bullframe-dark.css.map +1 -0
  30. package/dist/css/bullframe-dark.min.css +3 -2
  31. package/dist/css/bullframe-dark.min.css.map +1 -1
  32. package/dist/css/bullframe-system-default.css +396 -391
  33. package/dist/css/bullframe-system-default.css.map +1 -0
  34. package/dist/css/bullframe-system-default.min.css +3 -2
  35. package/dist/css/bullframe-system-default.min.css.map +1 -1
  36. package/dist/css/bullframe-utilities.css +69 -109
  37. package/dist/css/bullframe-utilities.css.map +1 -0
  38. package/dist/css/bullframe-utilities.min.css +2 -1
  39. package/dist/css/bullframe-utilities.min.css.map +1 -1
  40. package/dist/css/bullframe.css +370 -350
  41. package/dist/css/bullframe.css.map +1 -0
  42. package/dist/css/bullframe.min.css +3 -1
  43. package/dist/css/bullframe.min.css.map +1 -1
  44. package/dist/docs/demo/css/style.css +131 -0
  45. package/{docs/test-page → dist/docs/demo}/index.html +166 -358
  46. package/dist/docs/github-readme/bf-logo-full-dark.png +0 -0
  47. package/package.json +25 -27
  48. package/prettier.config.js +26 -0
  49. package/src/docs/demo/css/style.css +131 -0
  50. package/src/docs/demo/icons/android-chrome-192x192.png +0 -0
  51. package/src/docs/demo/icons/android-chrome-384x384.png +0 -0
  52. package/src/docs/demo/icons/apple-touch-icon.png +0 -0
  53. package/src/docs/demo/icons/favicon-16x16.png +0 -0
  54. package/src/docs/demo/icons/favicon-32x32.png +0 -0
  55. package/src/docs/demo/icons/favicon.ico +0 -0
  56. package/src/docs/demo/icons/mstile-150x150.png +0 -0
  57. package/src/docs/demo/icons/safari-pinned-tab.svg +28 -0
  58. package/src/docs/demo/images/logo.png +0 -0
  59. package/src/docs/demo/images/placeholder-img-130x140.jpg +0 -0
  60. package/src/docs/demo/images/placeholder-img-16x16.jpg +0 -0
  61. package/src/docs/demo/images/placeholder-img-800x400.jpg +0 -0
  62. package/src/docs/demo/images/video-poster.png +0 -0
  63. package/src/docs/demo/index.html +1152 -0
  64. package/src/docs/github-readme/bf-logo-full-dark.png +0 -0
  65. package/src/docs/github-readme/bf-logo-full-light.png +0 -0
  66. package/src/scss/bullframe-classless-dark-prefers.scss +2 -5
  67. package/src/scss/bullframe-classless-dark.scss +2 -5
  68. package/src/scss/bullframe-classless-system-default.scss +2 -5
  69. package/src/scss/bullframe-classless.scss +49 -43
  70. package/src/scss/bullframe-dark-prefers.scss +2 -4
  71. package/src/scss/bullframe-dark.scss +2 -4
  72. package/src/scss/bullframe-system-default.scss +2 -4
  73. package/src/scss/bullframe-utilities.scss +21 -61
  74. package/src/scss/bullframe.scss +49 -121
  75. package/src/scss/custom/_author-styles.scss +5 -0
  76. package/src/scss/forms/_forms-normalization.scss +68 -58
  77. package/src/scss/forms/_forms-styling-radio-checkbox.scss +64 -66
  78. package/src/scss/forms/_forms-styling-range.scss +88 -74
  79. package/src/scss/forms/_forms-styling-select.scss +18 -16
  80. package/src/scss/forms/_forms-styling.scss +38 -26
  81. package/src/scss/miscellaneous/_misc-accessibility.scss +10 -16
  82. package/src/scss/miscellaneous/_misc-anchors.scss +15 -13
  83. package/src/scss/miscellaneous/_misc-embedded-content.scss +14 -21
  84. package/src/scss/miscellaneous/_misc-focus.scss +0 -21
  85. package/src/scss/miscellaneous/_misc-interactive.scss +48 -0
  86. package/src/scss/miscellaneous/_misc-lists.scss +9 -5
  87. package/src/scss/miscellaneous/_misc-scrolling.scss +5 -0
  88. package/src/scss/miscellaneous/_misc-shame.scss +6 -0
  89. package/src/scss/miscellaneous/_misc-tables.scss +11 -5
  90. package/src/scss/mixins/_mixin-dark-prefers.scss +414 -0
  91. package/src/scss/mixins/_mixin-dark.scss +396 -0
  92. package/src/scss/mixins/_mixin-grid-flex.scss +0 -3
  93. package/src/scss/mixins/_mixin-layout.scss +1 -1
  94. package/src/scss/mixins/_mixin-texts.scss +2 -3
  95. package/src/scss/typography/_typography-blockquotes.scss +10 -5
  96. package/src/scss/typography/_typography-headings.scss +9 -8
  97. package/src/scss/typography/_typography-html-body.scss +17 -14
  98. package/src/scss/typography/_typography-misc.scss +19 -22
  99. package/src/scss/typography/_typography-monospaced-elements.scss +21 -12
  100. package/src/scss/utilities/_utility-buttons.scss +20 -18
  101. package/src/scss/utilities/_utility-debugging.scss +2 -88
  102. package/src/scss/utilities/_utility-embeds.scss +1 -1
  103. package/src/scss/utilities/_utility-filters.scss +0 -3
  104. package/src/scss/utilities/_utility-form-states.scss +30 -21
  105. package/src/scss/utilities/_utility-global-dark-classless.scss +3 -157
  106. package/src/scss/utilities/_utility-global-dark-prefers-classless.scss +3 -3
  107. package/src/scss/utilities/_utility-global-dark-prefers.scss +3 -3
  108. package/src/scss/utilities/_utility-global-dark-scrollbars.scss +11 -6
  109. package/src/scss/utilities/_utility-global-dark.scss +4 -213
  110. package/src/scss/utilities/_utility-global-system-default-classless.scss +3 -3
  111. package/src/scss/utilities/_utility-global-system-default.scss +3 -3
  112. package/src/scss/utilities/_utility-grid-system.scss +51 -115
  113. package/src/scss/utilities/_utility-layout.scss +7 -15
  114. package/src/scss/utilities/_utility-print.scss +5 -5
  115. package/src/scss/utilities/_utility-spacing.scss +42 -40
  116. package/src/scss/utilities/_utility-tables.scss +12 -18
  117. package/src/scss/utilities/_utility-texts.scss +48 -22
  118. package/src/scss/utilities/_utility-z-index.scss +1 -1
  119. package/src/scss/variables/_variables-breakpoints.scss +1 -0
  120. package/src/scss/variables/_variables-colors.scss +8 -5
  121. package/src/scss/variables/_variables-spacing.scss +3 -5
  122. package/src/scss/variables/_variables-texts.scss +5 -9
  123. package/vite.config.js +116 -0
  124. package/.nvmrc +0 -1
  125. package/.prettierrc +0 -19
  126. package/gulpfile.js +0 -67
  127. package/src/scss/miscellaneous/_misc-author-styles-in-css.scss +0 -76
  128. /package/{docs/test-page/assets → dist/docs/demo}/icons/android-chrome-192x192.png +0 -0
  129. /package/{docs/test-page/assets → dist/docs/demo}/icons/android-chrome-384x384.png +0 -0
  130. /package/{docs/test-page/assets → dist/docs/demo}/icons/apple-touch-icon.png +0 -0
  131. /package/{docs/test-page/assets → dist/docs/demo}/icons/favicon-16x16.png +0 -0
  132. /package/{docs/test-page/assets → dist/docs/demo}/icons/favicon-32x32.png +0 -0
  133. /package/{docs/test-page/assets → dist/docs/demo}/icons/favicon.ico +0 -0
  134. /package/{docs/test-page/assets → dist/docs/demo}/icons/mstile-150x150.png +0 -0
  135. /package/{docs/test-page/assets → dist/docs/demo}/icons/safari-pinned-tab.svg +0 -0
  136. /package/{docs/test-page/assets → dist/docs/demo}/images/logo.png +0 -0
  137. /package/{docs/test-page/assets → dist/docs/demo}/images/placeholder-img-130x140.jpg +0 -0
  138. /package/{docs/test-page/assets → dist/docs/demo}/images/placeholder-img-16x16.jpg +0 -0
  139. /package/{docs/test-page/assets → dist/docs/demo}/images/placeholder-img-800x400.jpg +0 -0
  140. /package/{docs/test-page/assets → dist/docs/demo}/images/video-poster.png +0 -0
  141. /package/{docs/assets/images/branding/logo-full.png → dist/docs/github-readme/bf-logo-full-light.png} +0 -0
@@ -0,0 +1,414 @@
1
+ @use "../variables/variables-colors" as bf-v-color;
2
+ @use "../variables/variables-texts" as bf-v-text;
3
+ @use "../variables/variables-spacing" as bf-v-space;
4
+ @use "../variables/variables-breakpoints" as bf-v-bp;
5
+ @use "sass:color";
6
+
7
+ @mixin bf-global-dark-prefers {
8
+ @media (prefers-color-scheme: dark) {
9
+ // these are global styles tha that ovveride all the "light" styles
10
+
11
+ // the basics: background and texts
12
+ html {
13
+ color: bf-v-color.$bf-light;
14
+ }
15
+
16
+ body {
17
+ background-color: color.adjust(
18
+ bf-v-color.$bf-dark-extra,
19
+ $lightness: 7.5%
20
+ );
21
+ }
22
+
23
+ // anchors
24
+ a {
25
+ color: color.adjust(bf-v-color.$bf-blue, $lightness: 20%);
26
+
27
+ &:hover,
28
+ &:focus {
29
+ color: color.adjust(bf-v-color.$bf-blue-light, $lightness: 20%);
30
+ }
31
+ }
32
+
33
+ // typography elements that need tiny adjustments
34
+ mark {
35
+ background-color: color.adjust(bf-v-color.$bf-yellow, $lightness: -10%);
36
+ }
37
+
38
+ ins {
39
+ background-color: color.adjust(
40
+ bf-v-color.$bf-yellow-light,
41
+ $lightness: 45%
42
+ );
43
+ }
44
+
45
+ // forms
46
+
47
+ [type="email"],
48
+ [type="number"],
49
+ [type="password"],
50
+ [type="tel"],
51
+ [type="search"],
52
+ [type="text"],
53
+ [type="date"],
54
+ [type="datetime-local"],
55
+ [type="month"],
56
+ [type="week"],
57
+ [type="time"],
58
+ [type="url"],
59
+ [type="range"],
60
+ input[list],
61
+ select,
62
+ select:not([size], [multiple]),
63
+ textarea {
64
+ background-color: bf-v-color.$bf-dark-extra;
65
+ border-color: bf-v-color.$bf-black;
66
+ color: bf-v-color.$bf-gray-light;
67
+
68
+ &:active,
69
+ &:focus {
70
+ background-color: bf-v-color.$bf-dark-extra;
71
+ border-color: color.adjust(bf-v-color.$bf-blue, $lightness: 10%);
72
+ }
73
+ }
74
+
75
+ [type="email"],
76
+ [type="number"],
77
+ [type="password"],
78
+ [type="tel"],
79
+ [type="search"],
80
+ [type="text"],
81
+ [type="date"],
82
+ [type="datetime-local"],
83
+ [type="month"],
84
+ [type="week"],
85
+ [type="time"],
86
+ [type="url"],
87
+ input[list],
88
+ select,
89
+ select:not([size], [multiple]),
90
+ textarea {
91
+ &:active,
92
+ &:focus {
93
+ box-shadow: 0 0 0 3px rgb(3 102 214 / 50%);
94
+ }
95
+ }
96
+
97
+ .bf-focused {
98
+ border-color: color.adjust(bf-v-color.$bf-blue, $lightness: 10%);
99
+ box-shadow: 0 0 0 3px rgb(3 102 214 / 50%) !important;
100
+ }
101
+
102
+ .bf-invalid,
103
+ .bf-invalid:focus {
104
+ color: color.adjust(bf-v-color.$bf-red, $lightness: 7.5%) !important;
105
+ border-color: color.adjust(
106
+ bf-v-color.$bf-red,
107
+ $lightness: 7.5%
108
+ ) !important;
109
+ }
110
+
111
+ select:not([size], [multiple]) {
112
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23f0f0f0' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e");
113
+ }
114
+
115
+ /* stylelint-disable-next-line */
116
+ @media screen and (min-width: 0\0) and (min-resolution: 0.001dpcm) {
117
+ // hide custom arrow
118
+ select:not([size], [multiple]),
119
+ /* RTL*/
120
+ *[dir="rtl"] select:not([size], [multiple]),
121
+ select[dir="rtl"]:not([size], [multiple]) {
122
+ background-image: none;
123
+ }
124
+ }
125
+
126
+ // range
127
+
128
+ // override above declaration
129
+ [type="range"] {
130
+ background-color: transparent;
131
+
132
+ &:focus {
133
+ background-color: transparent;
134
+ }
135
+ }
136
+
137
+ // darker background
138
+ // the rulesets must be separated
139
+ [type="range"]::-webkit-slider-runnable-track {
140
+ background-color: bf-v-color.$bf-dark-extra;
141
+ }
142
+
143
+ [type="range"]::-moz-range-track {
144
+ background-color: bf-v-color.$bf-dark-extra;
145
+ }
146
+
147
+ input::placeholder,
148
+ textarea::placeholder {
149
+ color: bf-v-color.$bf-gray;
150
+ }
151
+
152
+ button,
153
+ [type="button"],
154
+ [type="reset"],
155
+ [type="submit"],
156
+ .bf-btn,
157
+ button.bf-disabled,
158
+ [type="button"].bf-disabled,
159
+ [type="reset"].bf-disabled,
160
+ [type="submit"].bf-disabled,
161
+ .bf-btn.bf-disabled {
162
+ background: bf-v-color.$bf-gray-light;
163
+
164
+ &:hover,
165
+ &:active,
166
+ &:focus {
167
+ background: color.adjust(bf-v-color.$bf-gray-light, $lightness: -10%);
168
+ }
169
+
170
+ &:active,
171
+ &:focus {
172
+ box-shadow: 0 0 0 3px rgb(255 255 255 / 45%);
173
+ }
174
+ }
175
+
176
+ button,
177
+ [type="button"],
178
+ [type="reset"],
179
+ [type="submit"],
180
+ .bf-btn {
181
+ &:active,
182
+ &:focus {
183
+ box-shadow: 0 0 0 3px rgb(255 255 255 / 45%);
184
+ }
185
+ }
186
+
187
+ .bf-btn--primary.bf-disabled,
188
+ .bf-btn.bf-btn--primary {
189
+ background: bf-v-color.$bf-blue;
190
+
191
+ &:hover,
192
+ &:active,
193
+ &:focus {
194
+ background: color.adjust(bf-v-color.$bf-blue, $lightness: -5%);
195
+ }
196
+
197
+ &:active,
198
+ &:focus {
199
+ box-shadow: 0 0 0 3px rgb(0 86 179 / 75%);
200
+ }
201
+ }
202
+
203
+ // focus
204
+ a:focus,
205
+ input:focus {
206
+ outline-color: color.adjust(orange, $lightness: -15%);
207
+ }
208
+
209
+ :focus-visible {
210
+ outline-color: color.adjust(orange, $lightness: -15%);
211
+ }
212
+
213
+ // tables
214
+
215
+ .bf-table th,
216
+ .bf-table td {
217
+ border-color: bf-v-color.$bf-gray-dark;
218
+ }
219
+
220
+ .bf-table--zebra tbody tr:nth-child(odd),
221
+ .bf-table-responsive--zebra tbody tr:nth-child(odd) {
222
+ background-color: bf-v-color.$bf-gray-dark-extra;
223
+ }
224
+
225
+ dialog {
226
+ color: color.adjust(bf-v-color.$bf-light, $lightness: 0%);
227
+ // match body background color
228
+ background-color: color.adjust(
229
+ bf-v-color.$bf-dark-extra,
230
+ $lightness: 7.5%
231
+ );
232
+ }
233
+ }
234
+ }
235
+
236
+ @mixin bf-global-dark-classless-prefers {
237
+ @media (prefers-color-scheme: dark) {
238
+ // these are global styles tha that ovveride all the "light" styles
239
+
240
+ // the basics: background and texts
241
+ html {
242
+ color: bf-v-color.$bf-light;
243
+ }
244
+
245
+ body {
246
+ background-color: color.adjust(
247
+ bf-v-color.$bf-dark-extra,
248
+ $lightness: 7.5%
249
+ );
250
+ }
251
+
252
+ // anchors
253
+ a {
254
+ color: color.adjust(bf-v-color.$bf-blue, $lightness: 20%);
255
+
256
+ &:hover,
257
+ &:focus {
258
+ color: color.adjust(bf-v-color.$bf-blue-light, $lightness: 20%);
259
+ }
260
+ }
261
+
262
+ // typography elements that need tiny adjustments
263
+ mark {
264
+ background-color: color.adjust(bf-v-color.$bf-yellow, $lightness: -10%);
265
+ }
266
+
267
+ ins {
268
+ background-color: color.adjust(
269
+ bf-v-color.$bf-yellow-light,
270
+ $lightness: 45%
271
+ );
272
+ }
273
+
274
+ // forms
275
+
276
+ [type="email"],
277
+ [type="number"],
278
+ [type="password"],
279
+ [type="tel"],
280
+ [type="search"],
281
+ [type="text"],
282
+ [type="date"],
283
+ [type="datetime-local"],
284
+ [type="month"],
285
+ [type="week"],
286
+ [type="time"],
287
+ [type="url"],
288
+ [type="range"],
289
+ input[list],
290
+ select,
291
+ select:not([size], [multiple]),
292
+ textarea {
293
+ background-color: bf-v-color.$bf-dark-extra;
294
+ border-color: bf-v-color.$bf-black;
295
+ color: bf-v-color.$bf-gray-light;
296
+
297
+ &:active,
298
+ &:focus {
299
+ background-color: bf-v-color.$bf-dark-extra;
300
+ border-color: color.adjust(bf-v-color.$bf-blue, $lightness: 10%);
301
+ }
302
+ }
303
+
304
+ [type="email"],
305
+ [type="number"],
306
+ [type="password"],
307
+ [type="tel"],
308
+ [type="search"],
309
+ [type="text"],
310
+ [type="date"],
311
+ [type="datetime-local"],
312
+ [type="month"],
313
+ [type="week"],
314
+ [type="time"],
315
+ [type="url"],
316
+ input[list],
317
+ select,
318
+ select:not([size], [multiple]),
319
+ textarea {
320
+ &:active,
321
+ &:focus {
322
+ box-shadow: 0 0 0 3px rgb(3 102 214 / 50%);
323
+ }
324
+ }
325
+
326
+ select:not([size], [multiple]) {
327
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23f0f0f0' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e");
328
+ }
329
+
330
+ /* stylelint-disable-next-line */
331
+ @media screen and (min-width: 0\0) and (min-resolution: 0.001dpcm) {
332
+ // hide custom arrow
333
+ select:not([size], [multiple]),
334
+ /* RTL*/
335
+ *[dir="rtl"] select:not([size], [multiple]),
336
+ select[dir="rtl"]:not([size], [multiple]) {
337
+ background-image: none;
338
+ }
339
+ }
340
+
341
+ // range
342
+
343
+ // override above declaration
344
+ [type="range"] {
345
+ background-color: transparent;
346
+
347
+ &:focus {
348
+ background-color: transparent;
349
+ }
350
+ }
351
+
352
+ // darker background
353
+ // the rulesets must be separated
354
+ [type="range"]::-webkit-slider-runnable-track {
355
+ background-color: bf-v-color.$bf-dark-extra;
356
+ }
357
+
358
+ [type="range"]::-moz-range-track {
359
+ background-color: bf-v-color.$bf-dark-extra;
360
+ }
361
+
362
+ input::placeholder,
363
+ textarea::placeholder {
364
+ color: bf-v-color.$bf-gray;
365
+ }
366
+
367
+ button,
368
+ [type="button"],
369
+ [type="reset"],
370
+ [type="submit"] {
371
+ background: bf-v-color.$bf-gray-light;
372
+
373
+ &:hover,
374
+ &:active,
375
+ &:focus {
376
+ background: color.adjust(bf-v-color.$bf-gray-light, $lightness: -10%);
377
+ }
378
+
379
+ &:active,
380
+ &:focus {
381
+ box-shadow: 0 0 0 3px rgb(255 255 255 / 45%);
382
+ }
383
+ }
384
+
385
+ button,
386
+ [type="button"],
387
+ [type="reset"],
388
+ [type="submit"] {
389
+ &:active,
390
+ &:focus {
391
+ box-shadow: 0 0 0 3px rgb(255 255 255 / 45%);
392
+ }
393
+ }
394
+
395
+ // focus
396
+ a:focus,
397
+ input:focus {
398
+ outline-color: color.adjust(orange, $lightness: -15%);
399
+ }
400
+
401
+ :focus-visible {
402
+ outline-color: color.adjust(orange, $lightness: -15%);
403
+ }
404
+
405
+ dialog {
406
+ color: color.adjust(bf-v-color.$bf-light, $lightness: 0%);
407
+ // match body background color
408
+ background-color: color.adjust(
409
+ bf-v-color.$bf-dark-extra,
410
+ $lightness: 7.5%
411
+ );
412
+ }
413
+ }
414
+ }