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
@@ -1,3 +1,9 @@
1
+ @use '../variables/variables-colors' as bf-v-color;
2
+ @use '../variables/variables-texts' as bf-v-text;
3
+ @use '../variables/variables-spacing' as bf-v-space;
4
+ @use '../variables/variables-breakpoints' as bf-v-bp;
5
+ @use 'sass:color';
6
+
1
7
  // this is something similar to Bootstrap's spacing utility
2
8
  // https://getbootstrap.com/docs/4.4/utilities/spacing/
3
9
 
@@ -24,43 +30,51 @@
24
30
  }
25
31
 
26
32
  .bf-m-1 {
27
- margin-bottom: $bf-spacing-md-px !important;
28
- margin-bottom: $bf-spacing-md-rem !important;
33
+ margin-bottom: bf-v-space.$bf-spacing-md-rem !important;
29
34
  }
30
35
 
31
36
  .bf-m-2 {
32
- margin-bottom: $bf-spacing-lg-px !important;
33
- margin-bottom: $bf-spacing-lg-rem !important;
37
+ margin-bottom: bf-v-space.$bf-spacing-lg-rem !important;
34
38
  }
35
39
 
36
40
  .bf-m-3 {
37
- margin-bottom: $bf-spacing-xl-px !important;
38
- margin-bottom: $bf-spacing-xl-rem !important;
41
+ margin-bottom: bf-v-space.$bf-spacing-xl-rem !important;
39
42
  }
40
43
 
41
44
  .bf-m-4 {
42
- margin-bottom: $bf-spacing-xxl-px !important;
43
- margin-bottom: $bf-spacing-xxl-rem !important;
45
+ margin-bottom: bf-v-space.$bf-spacing-xxl-rem !important;
46
+ }
47
+
48
+ .bf-m-t-1 {
49
+ margin-top: bf-v-space.$bf-spacing-md-rem !important;
50
+ }
51
+
52
+ .bf-m-t-2 {
53
+ margin-top: bf-v-space.$bf-spacing-lg-rem !important;
54
+ }
55
+
56
+ .bf-m-t-3 {
57
+ margin-top: bf-v-space.$bf-spacing-xl-rem !important;
58
+ }
59
+
60
+ .bf-m-t-4 {
61
+ margin-top: bf-v-space.$bf-spacing-xxl-rem !important;
44
62
  }
45
63
 
46
64
  .bf-m-b-1 {
47
- margin-bottom: $bf-spacing-md-px !important;
48
- margin-bottom: $bf-spacing-md-rem !important;
65
+ margin-bottom: bf-v-space.$bf-spacing-md-rem !important;
49
66
  }
50
67
 
51
68
  .bf-m-b-2 {
52
- margin-bottom: $bf-spacing-lg-px !important;
53
- margin-bottom: $bf-spacing-lg-rem !important;
69
+ margin-bottom: bf-v-space.$bf-spacing-lg-rem !important;
54
70
  }
55
71
 
56
72
  .bf-m-b-3 {
57
- margin-bottom: $bf-spacing-xl-px !important;
58
- margin-bottom: $bf-spacing-xl-rem !important;
73
+ margin-bottom: bf-v-space.$bf-spacing-xl-rem !important;
59
74
  }
60
75
 
61
76
  .bf-m-b-4 {
62
- margin-bottom: $bf-spacing-xxl-px !important;
63
- margin-bottom: $bf-spacing-xxl-rem !important;
77
+ margin-bottom: bf-v-space.$bf-spacing-xxl-rem !important;
64
78
  }
65
79
 
66
80
  // paddings
@@ -86,61 +100,49 @@
86
100
  }
87
101
 
88
102
  .bf-p-1 {
89
- padding-bottom: $bf-spacing-md-px !important;
90
- padding-bottom: $bf-spacing-md-rem !important;
103
+ padding-bottom: bf-v-space.$bf-spacing-md-rem !important;
91
104
  }
92
105
 
93
106
  .bf-p-2 {
94
- padding-bottom: $bf-spacing-lg-px !important;
95
- padding-bottom: $bf-spacing-lg-rem !important;
107
+ padding-bottom: bf-v-space.$bf-spacing-lg-rem !important;
96
108
  }
97
109
 
98
110
  .bf-p-3 {
99
- padding-bottom: $bf-spacing-xl-px !important;
100
- padding-bottom: $bf-spacing-xl-rem !important;
111
+ padding-bottom: bf-v-space.$bf-spacing-xl-rem !important;
101
112
  }
102
113
 
103
114
  .bf-p-4 {
104
- padding-bottom: $bf-spacing-xxl-px !important;
105
- padding-bottom: $bf-spacing-xxl-rem !important;
115
+ padding-bottom: bf-v-space.$bf-spacing-xxl-rem !important;
106
116
  }
107
117
 
108
118
  .bf-p-t-1 {
109
- padding-top: $bf-spacing-md-px !important;
110
- padding-top: $bf-spacing-md-rem !important;
119
+ padding-top: bf-v-space.$bf-spacing-md-rem !important;
111
120
  }
112
121
 
113
122
  .bf-p-t-2 {
114
- padding-top: $bf-spacing-lg-px !important;
115
- padding-top: $bf-spacing-lg-rem !important;
123
+ padding-top: bf-v-space.$bf-spacing-lg-rem !important;
116
124
  }
117
125
 
118
126
  .bf-p-t-3 {
119
- padding-top: $bf-spacing-xl-px !important;
120
- padding-top: $bf-spacing-xl-rem !important;
127
+ padding-top: bf-v-space.$bf-spacing-xl-rem !important;
121
128
  }
122
129
 
123
130
  .bf-p-t-4 {
124
- padding-top: $bf-spacing-xxl-px !important;
125
- padding-top: $bf-spacing-xxl-rem !important;
131
+ padding-top: bf-v-space.$bf-spacing-xxl-rem !important;
126
132
  }
127
133
 
128
134
  .bf-p-b-1 {
129
- padding-bottom: $bf-spacing-md-px !important;
130
- padding-bottom: $bf-spacing-md-rem !important;
135
+ padding-bottom: bf-v-space.$bf-spacing-md-rem !important;
131
136
  }
132
137
 
133
138
  .bf-p-b-2 {
134
- padding-bottom: $bf-spacing-lg-px !important;
135
- padding-bottom: $bf-spacing-lg-rem !important;
139
+ padding-bottom: bf-v-space.$bf-spacing-lg-rem !important;
136
140
  }
137
141
 
138
142
  .bf-p-b-3 {
139
- padding-bottom: $bf-spacing-xl-px !important;
140
- padding-bottom: $bf-spacing-xl-rem !important;
143
+ padding-bottom: bf-v-space.$bf-spacing-xl-rem !important;
141
144
  }
142
145
 
143
146
  .bf-p-b-4 {
144
- padding-bottom: $bf-spacing-xxl-px !important;
145
- padding-bottom: $bf-spacing-xxl-rem !important;
147
+ padding-bottom: bf-v-space.$bf-spacing-xxl-rem !important;
146
148
  }
@@ -1,40 +1,34 @@
1
+ @use '../variables/variables-colors' as bf-v-color;
2
+ @use '../variables/variables-texts' as bf-v-text;
3
+ @use '../variables/variables-spacing' as bf-v-space;
4
+ @use '../variables/variables-breakpoints' as bf-v-bp;
5
+ @use 'sass:color';
6
+
1
7
  .bf-table th,
2
8
  .bf-table td {
3
- padding: $bf-spacing-lg-px;
4
- padding: $bf-spacing-lg-rem;
5
- border-bottom: 1px solid $bf-gray;
6
- margin-bottom: $bf-spacing-md-px;
7
- margin-bottom: $bf-spacing-md-rem;
9
+ padding: bf-v-space.$bf-spacing-lg-rem;
10
+ border-bottom: 1px solid bf-v-color.$bf-gray;
11
+ margin-bottom: bf-v-space.$bf-spacing-md-rem;
8
12
  }
9
13
 
10
14
  // responsive tables
11
- // ! issues on Opera 10-11, Opera Mobile Presto and Opera Mini
12
- // Read more about Opera: http://barrow.io/overflow-scrolling
13
-
14
15
  .bf-table-responsive {
15
- overflow-x: auto;
16
- overflow-y: hidden;
17
-
18
- // this is a not standard CSS property, so it's for IE only
19
- // https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-overflow-style
16
+ overflow: auto hidden;
20
17
  -ms-overflow-style: scrollbar;
21
18
  }
22
19
 
23
20
  .bf-table-responsive table {
24
21
  width: 100%;
25
- margin-bottom: $bf-spacing-md-px;
26
- margin-bottom: $bf-spacing-md-rem;
22
+ margin-bottom: bf-v-space.$bf-spacing-md-rem;
27
23
  }
28
24
 
29
25
  // force webkit scrollbars appearance
30
26
  .bf-table-responsive.scrollbar {
31
- // this is a not standard CSS property, so it's for webkit only
32
- // https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-overflow-scrolling
33
27
  -webkit-overflow-scrolling: auto;
34
28
  }
35
29
 
36
30
  // zebra striping
37
31
  .bf-table--zebra tbody tr:nth-child(odd),
38
32
  .bf-table-responsive--zebra tbody tr:nth-child(odd) {
39
- background-color: $bf-gray-light-extra;
33
+ background-color: bf-v-color.$bf-gray-light-extra;
40
34
  }
@@ -1,3 +1,9 @@
1
+ @use '../variables/variables-colors' as bf-v-color;
2
+ @use '../variables/variables-texts' as bf-v-text;
3
+ @use '../variables/variables-spacing' as bf-v-space;
4
+ @use '../variables/variables-breakpoints' as bf-v-bp;
5
+ @use 'sass:color';
6
+
1
7
  .bf-t-transform-uppercase {
2
8
  text-transform: uppercase !important;
3
9
  }
@@ -19,8 +25,8 @@
19
25
  }
20
26
 
21
27
  .bf-t-shadow {
22
- text-shadow: 0 0 2px $bf-dark !important;
23
- text-shadow: 0 0 .2rem $bf-dark !important;
28
+ text-shadow: 0 0 2px bf-v-color.$bf-dark !important;
29
+ text-shadow: 0 0 0.2rem bf-v-color.$bf-dark !important;
24
30
  }
25
31
 
26
32
  .bf-t-italic {
@@ -73,6 +79,7 @@
73
79
  overflow: hidden !important;
74
80
  text-overflow: ellipsis !important;
75
81
  display: -webkit-box !important;
82
+ line-clamp: 2 !important;
76
83
  -webkit-line-clamp: 2 !important;
77
84
  -webkit-box-orient: vertical !important;
78
85
  }
@@ -81,11 +88,11 @@
81
88
  overflow: hidden !important;
82
89
  text-overflow: ellipsis !important;
83
90
  display: -webkit-box !important;
91
+ line-clamp: 3 !important;
84
92
  -webkit-line-clamp: 3 !important;
85
93
  -webkit-box-orient: vertical !important;
86
94
  }
87
95
 
88
-
89
96
  .bf-no-select {
90
97
  user-select: none !important;
91
98
 
@@ -100,30 +107,50 @@
100
107
 
101
108
  .bf-font-sans-serif {
102
109
  font-family:
103
- /* Safari for OS X and iOS (San Francisco) */ -apple-system,
110
+ /* Safari for OS X and iOS (San Francisco) */
111
+ -apple-system,
104
112
  /* Chrome < 56 for OS X (San Francisco) */ BlinkMacSystemFont,
105
- /* Windows */ 'Segoe UI', /* Android */ Roboto,
106
- /* Linux with KDE */ Oxygen-Sans, /* Ubuntu (all variants) */ Ubuntu,
113
+ /* Windows */ 'Segoe UI',
114
+ /* Android */ Roboto,
115
+ /* Linux with KDE */ Oxygen-Sans,
116
+ /* Ubuntu (all variants) */ Ubuntu,
107
117
  /* Linux with GNOME Shell */ Cantarell,
108
- /* macOS 1.10 and below */ 'Helvetica Neue', Helvetica,
109
- /* Basic web fallback */ Arial, sans-serif,
110
- /* emoji fonts */ 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
118
+ /* macOS 1.10 and below */ 'Helvetica Neue',
119
+ Helvetica,
120
+ /* Basic web fallback */ Arial,
121
+ sans-serif,
122
+ /* emoji fonts */ 'Apple Color Emoji',
123
+ 'Segoe UI Emoji',
124
+ 'Segoe UI Symbol',
111
125
  'Noto Color Emoji' !important;
112
126
  }
113
127
 
114
128
  .bf-font-serif {
115
- font-family: Georgia, Times, 'Times New Roman', serif,
116
- /* emoji fonts */ 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
129
+ font-family:
130
+ Georgia,
131
+ Times,
132
+ 'Times New Roman',
133
+ serif,
134
+ /* emoji fonts */ 'Apple Color Emoji',
135
+ 'Segoe UI Emoji',
136
+ 'Segoe UI Symbol',
117
137
  'Noto Color Emoji' !important;
118
138
  }
119
139
 
120
140
  .bf-font-monospace {
121
141
  font-family:
122
- /* macOS 1.10+ */ 'Menlo', /* Windows 6+ */ 'Consolas',
123
- /* Android 4+ */ 'Roboto Mono', /* Ubuntu 1.10+ */ 'Ubuntu Monospace',
124
- /* KDE Plasma 5+ */ 'Noto Mono', /* KDE Plasma 4+ */ 'Oxygen Mono',
125
- /* Linux/OpenOffice fallback */ 'Liberation Mono', /* fallback */ monospace,
126
- /* emoji fonts */ 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
142
+ /* macOS 1.10+ */
143
+ Menlo,
144
+ Consolas,
145
+ 'Roboto Mono',
146
+ 'Ubuntu Monospace',
147
+ 'Noto Mono',
148
+ 'Oxygen Mono',
149
+ 'Liberation Mono',
150
+ monospace,
151
+ 'Apple Color Emoji',
152
+ 'Segoe UI Emoji',
153
+ 'Segoe UI Symbol',
127
154
  'Noto Color Emoji' !important;
128
155
  }
129
156
 
@@ -132,13 +159,12 @@
132
159
  .bf-h3,
133
160
  .bf-h4,
134
161
  .bf-h5,
135
- .bf-h6 {
136
- font-weight: 700 !important; // fallback
162
+ .bf-h6 { // fallback
137
163
  font-weight: 600 !important;
138
164
  margin-top: 0 !important;
139
165
  line-height: 1.2 !important;
140
- margin-bottom: $bf-spacing-lg-px !important;
141
- margin-bottom: $bf-spacing-lg-rem !important;
166
+ margin-bottom: bf-v-space.$bf-spacing-lg-px !important;
167
+ margin-bottom: bf-v-space.$bf-spacing-lg-rem !important;
142
168
  }
143
169
 
144
170
  .bf-h1 {
@@ -182,8 +208,8 @@ p.bf-lead {
182
208
  // https://caniuse.com/#feat=css-variables
183
209
  // https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties
184
210
  body.bf-responsive-typography {
185
- --body-rt-font-size-flex: calc(1.6rem + 3 * ((100vw - 320px) / 680));
186
- --body-rt-font-size-max: 1.9rem;
211
+ --body-rt-font-size-flex: calc(1.5rem + 3 * ((100vw - 320px) / 680));
212
+ --body-rt-font-size-max: 1.8rem;
187
213
  }
188
214
 
189
215
  @media (min-width: 320px) {
@@ -80,4 +80,4 @@
80
80
 
81
81
  .bf-z-index-300 {
82
82
  z-index: 200;
83
- }
83
+ }
@@ -3,3 +3,4 @@ $bf-breakpoint-sm: 576px;
3
3
  $bf-breakpoint-md: 768px;
4
4
  $bf-breakpoint-lg: 992px;
5
5
  $bf-breakpoint-xl: 1200px;
6
+ $bf-breakpoint-xxl: 1400px;
@@ -1,6 +1,9 @@
1
- // ! CSS Variables (Custom Properties) are not IE-friendly
2
- // https://caniuse.com/#feat=css-variables
3
- // let's Sass do the job instead
1
+ @use 'sass:color';
2
+
3
+ // TIP: make colors lighter/darker with Sass
4
+ // https://sass-lang.com/documentation/modules/color/
5
+ // e.g., lighter: "color: color.adjust($gray, $lightness: 15%);"
6
+ // e.g., darker: "color: color.adjust($gray, $lightness: -15%);"
4
7
 
5
8
  // customise/enlarge this small selection as needed
6
9
 
@@ -25,7 +28,7 @@ $bf-yellow: #ff0; // rgba(255,255,0,1)
25
28
  // anchors and accent
26
29
  $bf-blue: #007bff; // rgba(0,123,255,1)
27
30
  $bf-blue-light: #0056b3; // rgba(0,86,179,1)
28
- $bf-blue-light-extra: #bed8fe; //rgba(190, 216, 254, 1)
31
+ $bf-blue-light-extra: #bed8fe; // rgba(190, 216, 254, 1)
29
32
 
30
33
  // invalid forms
31
- $bf-red: #ff0000; // rgba(255,0,0,1)
34
+ $bf-red: #f00; // rgba(255,0,0,1)
@@ -14,13 +14,11 @@ $bf-spacing-md-px: 5px;
14
14
  $bf-spacing-lg-px: 10px;
15
15
  $bf-spacing-xl-px: 20px;
16
16
  $bf-spacing-xxl-px: 30px;
17
-
18
- $bf-spacing-sm-rem: .25rem;
19
- $bf-spacing-md-rem: .5rem;
17
+ $bf-spacing-sm-rem: 0.25rem;
18
+ $bf-spacing-md-rem: 0.5rem;
20
19
  $bf-spacing-lg-rem: 1rem;
21
20
  $bf-spacing-xl-rem: 2rem;
22
21
  $bf-spacing-xxl-rem: 3rem;
23
22
 
24
23
  // ! grid system only
25
- $bf-spacing-grid-gutter-px: 15px;
26
- $bf-spacing-grid-gutter-rem: 1.5rem;
24
+ $bf-spacing-grid-gutter-rem: 1.5rem;
@@ -1,12 +1,8 @@
1
- $bf-font-sans-serif: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
2
- Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Helvetica, Arial, sans-serif,
3
- 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
4
-
1
+ $bf-font-sans-serif:
2
+ -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell,
3
+ 'Helvetica Neue', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
4
+ 'Segoe UI Symbol', 'Noto Color Emoji';
5
5
  $bf-font-serif: Georgia, Times, 'Times New Roman', serif;
6
-
7
- $bf-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',
8
- 'Courier New', monospace;
9
-
10
- $bf-body-font-size-px: 16px;
6
+ $bf-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
11
7
  $bf-body-font-size-rem: 1.6rem;
12
8
  $bf-body-line-height: 1.5;
package/vite.config.js ADDED
@@ -0,0 +1,116 @@
1
+ import { defineConfig } from "vite";
2
+ import autoprefixer from "autoprefixer";
3
+ import cssnano from "cssnano";
4
+ import path from "path";
5
+ import fs from "fs";
6
+ import { glob } from "glob";
7
+ import * as sass from "sass"; // Needed for compileAsync
8
+ import postcss from "postcss";
9
+
10
+ function buildAllScss() {
11
+ return {
12
+ name: "build-all-scss",
13
+ async closeBundle() {
14
+ const files = await glob("src/scss/**/*.scss");
15
+
16
+ const scssFiles = files.filter(
17
+ (file) => !path.basename(file).startsWith("_")
18
+ );
19
+
20
+ for (const file of scssFiles) {
21
+ const name = path.basename(file, ".scss");
22
+ const outDir = "dist/css";
23
+ const outFile = path.join(outDir, `${name}.css`);
24
+ const minFile = path.join(outDir, `${name}.min.css`);
25
+
26
+ const result = await sass.compileAsync(file, {
27
+ style: "expanded",
28
+ sourceMap: true,
29
+ });
30
+
31
+ const cssWithHeader =
32
+ `/*! Bullframe CSS v5.0.0 | MIT License | https://github.com/marcop135/bullframe.css */\n` +
33
+ result.css;
34
+
35
+ const postcssResult = await postcss([autoprefixer()]).process(
36
+ cssWithHeader,
37
+ {
38
+ from: file,
39
+ to: outFile,
40
+ map: {
41
+ prev: result.sourceMap,
42
+ inline: false,
43
+ },
44
+ }
45
+ );
46
+
47
+ fs.mkdirSync(outDir, { recursive: true });
48
+ fs.writeFileSync(outFile, postcssResult.css);
49
+ fs.writeFileSync(`${outFile}.map`, postcssResult.map.toString());
50
+
51
+ const minified = await postcss([autoprefixer(), cssnano()]).process(
52
+ cssWithHeader,
53
+ {
54
+ from: file,
55
+ to: minFile,
56
+ map: { inline: false },
57
+ }
58
+ );
59
+
60
+ fs.writeFileSync(minFile, minified.css);
61
+ fs.writeFileSync(`${minFile}.map`, minified.map.toString());
62
+ }
63
+ },
64
+ };
65
+ }
66
+
67
+ function copyDocsFiles() {
68
+ return {
69
+ name: "copy-docs-files",
70
+ closeBundle() {
71
+ const srcDir = path.resolve(__dirname, "src/docs");
72
+ const destDir = path.resolve(__dirname, "dist/docs");
73
+
74
+ function copyRecursive(src, dest) {
75
+ if (!fs.existsSync(dest)) fs.mkdirSync(dest, { recursive: true });
76
+
77
+ const entries = fs.readdirSync(src, { withFileTypes: true });
78
+
79
+ for (const entry of entries) {
80
+ const srcPath = path.join(src, entry.name);
81
+ const destPath = path.join(dest, entry.name);
82
+
83
+ if (entry.isDirectory()) {
84
+ copyRecursive(srcPath, destPath);
85
+ } else {
86
+ fs.copyFileSync(srcPath, destPath);
87
+ }
88
+ }
89
+ }
90
+
91
+ copyRecursive(srcDir, destDir);
92
+ },
93
+ };
94
+ }
95
+
96
+ export default defineConfig({
97
+ root: "src",
98
+ build: {
99
+ outDir: "../dist",
100
+ emptyOutDir: true,
101
+ rollupOptions: {
102
+ input: path.resolve(__dirname, "src/docs/demo/index.html"),
103
+ output: {
104
+ entryFileNames: `[name].js`,
105
+ chunkFileNames: `[name].js`,
106
+ assetFileNames: `[name][extname]`,
107
+ },
108
+ },
109
+ assetsDir: "", // Avoid dist/assets
110
+ sourcemap: true,
111
+ },
112
+ plugins: [buildAllScss(), copyDocsFiles()],
113
+ server: {
114
+ open: "/docs/demo/index.html",
115
+ },
116
+ });
package/.nvmrc DELETED
@@ -1 +0,0 @@
1
- 22.14
package/.prettierrc DELETED
@@ -1,19 +0,0 @@
1
- {
2
- "arrowParens": "always",
3
- "bracketSpacing": true,
4
- "embeddedLanguageFormatting": "auto",
5
- "htmlWhitespaceSensitivity": "css",
6
- "insertPragma": false,
7
- "jsxBracketSameLine": false,
8
- "jsxSingleQuote": false,
9
- "printWidth": 80,
10
- "proseWrap": "preserve",
11
- "quoteProps": "as-needed",
12
- "requirePragma": false,
13
- "semi": true,
14
- "singleQuote": true,
15
- "tabWidth": 2,
16
- "trailingComma": "es5",
17
- "useTabs": false,
18
- "vueIndentScriptAndStyle": false
19
- }
package/gulpfile.js DELETED
@@ -1,67 +0,0 @@
1
- 'use strict';
2
-
3
- // Initialize modules
4
- const { src, dest, watch, series, parallel } = require('gulp');
5
-
6
- // Upgrade gulp-sass to v5
7
- const sass = require('gulp-sass')(require('sass'));
8
-
9
- // Import all the Gulp-related packages
10
- const postcss = require('gulp-postcss');
11
- const autoprefixer = require('autoprefixer');
12
- const cssnano = require('cssnano');
13
- const rename = require('gulp-rename');
14
- const replace = require('gulp-replace');
15
- const browserSync = require('browser-sync');
16
-
17
- const server = browserSync.create();
18
-
19
- // Setup the BrowserSync server
20
- function reload(done) {
21
- server.reload();
22
- done();
23
- }
24
-
25
- function serve(done) {
26
- server.init({
27
- server: {
28
- baseDir: './dist/',
29
- index: '../docs/test-page/index.html',
30
- },
31
- });
32
- done();
33
- }
34
-
35
- // File paths to watch
36
- const files = {
37
- scssPath: 'src/scss/**/*.scss',
38
- };
39
-
40
- // Sass task
41
- function scssTask() {
42
- return src(files.scssPath, { sourcemaps: true })
43
- .pipe(sass.sync({ outputStyle: 'expanded' }).on('error', sass.logError)) // Compile SCSS to CSS
44
- .pipe(
45
- replace(
46
- '@charset "UTF-8";',
47
- '/*! bullframe.css v4.2.2 | MIT License | https://github.com/marcop135/bullframe.css */'
48
- )
49
- ) // Replace Node-sass auto-built charset with a useful comment
50
- .pipe(postcss([autoprefixer()])) // Apply PostCSS plugins
51
- .pipe(dest('dist/css')) // Write pre-minified styles
52
- .pipe(postcss([cssnano()])) // Minify CSS
53
- .pipe(
54
- rename({
55
- suffix: '.min',
56
- })
57
- ) // Rename files
58
- .pipe(dest('dist/css', { sourcemaps: '.' })); // Output final CSS
59
- }
60
-
61
- // Watch task: watch SCSS, JS, image, and HTML files for changes
62
- function watchTask() {
63
- watch([files.scssPath], series(parallel(scssTask), reload));
64
- }
65
-
66
- // Export the default Gulp task
67
- exports.default = series(parallel(scssTask), serve, watchTask);