bullframe.css 5.0.0 → 5.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 (87) hide show
  1. package/.stylelintignore +1 -1
  2. package/CHANGELOG.md +242 -233
  3. package/LICENSE +21 -0
  4. package/README.md +18 -15
  5. package/dist/css/bullframe-classless-dark-prefers.css +145 -205
  6. package/dist/css/bullframe-classless-dark-prefers.css.map +1 -1
  7. package/dist/css/bullframe-classless-dark-prefers.min.css +1 -1
  8. package/dist/css/bullframe-classless-dark-prefers.min.css.map +1 -1
  9. package/dist/css/bullframe-classless-dark.css +316 -391
  10. package/dist/css/bullframe-classless-dark.css.map +1 -1
  11. package/dist/css/bullframe-classless-dark.min.css +1 -1
  12. package/dist/css/bullframe-classless-dark.min.css.map +1 -1
  13. package/dist/css/bullframe-classless-system-default.css +145 -205
  14. package/dist/css/bullframe-classless-system-default.css.map +1 -1
  15. package/dist/css/bullframe-classless-system-default.min.css +1 -1
  16. package/dist/css/bullframe-classless-system-default.min.css.map +1 -1
  17. package/dist/css/bullframe-classless.css +133 -195
  18. package/dist/css/bullframe-classless.css.map +1 -1
  19. package/dist/css/bullframe-classless.min.css +1 -1
  20. package/dist/css/bullframe-classless.min.css.map +1 -1
  21. package/dist/css/bullframe-dark-prefers.css +145 -205
  22. package/dist/css/bullframe-dark-prefers.css.map +1 -1
  23. package/dist/css/bullframe-dark-prefers.min.css +1 -1
  24. package/dist/css/bullframe-dark-prefers.min.css.map +1 -1
  25. package/dist/css/bullframe-dark.css +386 -466
  26. package/dist/css/bullframe-dark.css.map +1 -1
  27. package/dist/css/bullframe-dark.min.css +1 -1
  28. package/dist/css/bullframe-dark.min.css.map +1 -1
  29. package/dist/css/bullframe-system-default.css +142 -204
  30. package/dist/css/bullframe-system-default.css.map +1 -1
  31. package/dist/css/bullframe-system-default.min.css +1 -1
  32. package/dist/css/bullframe-system-default.min.css.map +1 -1
  33. package/dist/css/bullframe-utilities.css +4 -2
  34. package/dist/css/bullframe-utilities.css.map +1 -1
  35. package/dist/css/bullframe-utilities.min.css +1 -1
  36. package/dist/css/bullframe-utilities.min.css.map +1 -1
  37. package/dist/css/bullframe.css +133 -195
  38. package/dist/css/bullframe.css.map +1 -1
  39. package/dist/css/bullframe.min.css +1 -1
  40. package/dist/css/bullframe.min.css.map +1 -1
  41. package/dist/docs/demo/index.html +15 -13
  42. package/dist/index.css +1 -0
  43. package/dist/index.js.map +1 -0
  44. package/package.json +4 -4
  45. package/src/scss/forms/_forms-normalization.scss +84 -100
  46. package/src/scss/forms/_forms-styling-radio-checkbox.scss +11 -12
  47. package/src/scss/forms/_forms-styling-range.scss +19 -26
  48. package/src/scss/forms/_forms-styling-select.scss +9 -16
  49. package/src/scss/forms/_forms-styling.scss +81 -94
  50. package/src/scss/miscellaneous/_misc-focus.scss +29 -28
  51. package/src/scss/mixins/_mixin-dark-prefers.scss +14 -15
  52. package/src/scss/mixins/_mixin-dark.scss +330 -311
  53. package/vite.config.js +65 -33
  54. package/.gitattributes +0 -1
  55. package/dist/docs/demo/css/style.css +0 -131
  56. package/dist/docs/demo/icons/android-chrome-192x192.png +0 -0
  57. package/dist/docs/demo/icons/android-chrome-384x384.png +0 -0
  58. package/dist/docs/demo/icons/mstile-150x150.png +0 -0
  59. package/dist/docs/demo/icons/safari-pinned-tab.svg +0 -28
  60. package/dist/docs/demo/images/logo.png +0 -0
  61. package/dist/docs/demo/images/placeholder-img-130x140.jpg +0 -0
  62. package/dist/docs/demo/images/placeholder-img-16x16.jpg +0 -0
  63. package/dist/docs/github-readme/bf-logo-full-dark.png +0 -0
  64. package/dist/docs/github-readme/bf-logo-full-light.png +0 -0
  65. package/src/docs/demo/css/style.css +0 -131
  66. package/src/docs/demo/icons/android-chrome-192x192.png +0 -0
  67. package/src/docs/demo/icons/android-chrome-384x384.png +0 -0
  68. package/src/docs/demo/icons/apple-touch-icon.png +0 -0
  69. package/src/docs/demo/icons/favicon-16x16.png +0 -0
  70. package/src/docs/demo/icons/favicon-32x32.png +0 -0
  71. package/src/docs/demo/icons/favicon.ico +0 -0
  72. package/src/docs/demo/icons/mstile-150x150.png +0 -0
  73. package/src/docs/demo/icons/safari-pinned-tab.svg +0 -28
  74. package/src/docs/demo/images/logo.png +0 -0
  75. package/src/docs/demo/images/placeholder-img-130x140.jpg +0 -0
  76. package/src/docs/demo/images/placeholder-img-16x16.jpg +0 -0
  77. package/src/docs/demo/images/placeholder-img-800x400.jpg +0 -0
  78. package/src/docs/demo/images/video-poster.png +0 -0
  79. package/src/docs/demo/index.html +0 -1152
  80. package/src/docs/github-readme/bf-logo-full-dark.png +0 -0
  81. package/src/docs/github-readme/bf-logo-full-light.png +0 -0
  82. /package/dist/{docs/demo/icons/apple-touch-icon.png → apple-touch-icon.png} +0 -0
  83. /package/dist/{docs/demo/icons/favicon-16x16.png → favicon-16x16.png} +0 -0
  84. /package/dist/{docs/demo/icons/favicon-32x32.png → favicon-32x32.png} +0 -0
  85. /package/dist/{docs/demo/icons/favicon.ico → favicon.ico} +0 -0
  86. /package/dist/{docs/demo/images/placeholder-img-800x400.jpg → placeholder-img-800x400.jpg} +0 -0
  87. /package/dist/{docs/demo/images/video-poster.png → video-poster.png} +0 -0
package/vite.config.js CHANGED
@@ -1,69 +1,100 @@
1
+ // Vite config tools and dependencies
1
2
  import { defineConfig } from "vite";
2
3
  import autoprefixer from "autoprefixer";
3
4
  import cssnano from "cssnano";
4
5
  import path from "path";
5
6
  import fs from "fs";
6
7
  import { glob } from "glob";
7
- import * as sass from "sass"; // Needed for compileAsync
8
+ import * as sass from "sass";
8
9
  import postcss from "postcss";
9
10
 
11
+ // Custom PostCSS plugin: adds license header as a comment at the top of each CSS file
12
+ const addHeader = () => {
13
+ return {
14
+ postcssPlugin: "add-header",
15
+ Once(root) {
16
+ root.prepend({
17
+ type: "comment",
18
+ text: "! Bullframe CSS v5.1.0 | MIT License | https://github.com/marcop135/bullframe.css ",
19
+ });
20
+ },
21
+ };
22
+ };
23
+ addHeader.postcss = true;
24
+
25
+ // Custom Vite plugin: compiles all SCSS files (except partials) to CSS and minified CSS
10
26
  function buildAllScss() {
11
27
  return {
12
28
  name: "build-all-scss",
13
29
  async closeBundle() {
30
+ // Find all SCSS files in src/scss (excluding partials that start with _)
14
31
  const files = await glob("src/scss/**/*.scss");
15
-
16
32
  const scssFiles = files.filter(
17
33
  (file) => !path.basename(file).startsWith("_")
18
34
  );
19
35
 
36
+ // Output directory for generated CSS
37
+ const outDir = path.resolve("dist/css");
38
+ fs.mkdirSync(outDir, { recursive: true });
39
+
40
+ // Compile and process each SCSS file
20
41
  for (const file of scssFiles) {
21
42
  const name = path.basename(file, ".scss");
22
- const outDir = "dist/css";
23
43
  const outFile = path.join(outDir, `${name}.css`);
24
44
  const minFile = path.join(outDir, `${name}.min.css`);
25
45
 
46
+ // Step 1: Compile SCSS to CSS with source maps
26
47
  const result = await sass.compileAsync(file, {
27
48
  style: "expanded",
28
49
  sourceMap: true,
50
+ sourceMapIncludeSources: true,
29
51
  });
30
52
 
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
- );
53
+ // Step 2: Run PostCSS with header + autoprefixer
54
+ const postcssResult = await postcss([
55
+ addHeader(),
56
+ autoprefixer(),
57
+ ]).process(result.css, {
58
+ from: path.resolve(file),
59
+ to: outFile,
60
+ map: {
61
+ prev: result.sourceMap ? JSON.stringify(result.sourceMap) : false,
62
+ inline: false,
63
+ annotation: true,
64
+ },
65
+ });
46
66
 
47
- fs.mkdirSync(outDir, { recursive: true });
67
+ // Write normal CSS and source map
48
68
  fs.writeFileSync(outFile, postcssResult.css);
49
- fs.writeFileSync(`${outFile}.map`, postcssResult.map.toString());
69
+ if (postcssResult.map) {
70
+ fs.writeFileSync(`${outFile}.map`, postcssResult.map.toString());
71
+ }
50
72
 
73
+ // Step 3: Minify with cssnano + autoprefixer (again) + source maps
51
74
  const minified = await postcss([autoprefixer(), cssnano()]).process(
52
- cssWithHeader,
75
+ postcssResult.css,
53
76
  {
54
- from: file,
77
+ from: outFile,
55
78
  to: minFile,
56
- map: { inline: false },
79
+ map: {
80
+ prev: postcssResult.map ? postcssResult.map.toString() : false,
81
+ inline: false,
82
+ annotation: true,
83
+ },
57
84
  }
58
85
  );
59
86
 
87
+ // Write minified CSS and source map
60
88
  fs.writeFileSync(minFile, minified.css);
61
- fs.writeFileSync(`${minFile}.map`, minified.map.toString());
89
+ if (minified.map) {
90
+ fs.writeFileSync(`${minFile}.map`, minified.map.toString());
91
+ }
62
92
  }
63
93
  },
64
94
  };
65
95
  }
66
96
 
97
+ // Copy static files from src/docs to dist/docs (e.g. demo HTML, images, etc.)
67
98
  function copyDocsFiles() {
68
99
  return {
69
100
  name: "copy-docs-files",
@@ -93,24 +124,25 @@ function copyDocsFiles() {
93
124
  };
94
125
  }
95
126
 
127
+ // Main Vite config
96
128
  export default defineConfig({
97
- root: "src",
129
+ root: "src", // Vite project root
98
130
  build: {
99
- outDir: "../dist",
100
- emptyOutDir: true,
131
+ outDir: "../dist", // Output directory
132
+ emptyOutDir: true, // Clean before build
101
133
  rollupOptions: {
102
- input: path.resolve(__dirname, "src/docs/demo/index.html"),
134
+ input: path.resolve(__dirname, "src/docs/demo/index.html"), // Entry point for HTML
103
135
  output: {
104
136
  entryFileNames: `[name].js`,
105
137
  chunkFileNames: `[name].js`,
106
- assetFileNames: `[name][extname]`,
138
+ assetFileNames: `[name][extname]`, // Keep asset file names flat
107
139
  },
108
140
  },
109
- assetsDir: "", // Avoid dist/assets
110
- sourcemap: true,
141
+ assetsDir: "", // No subdir for assets
142
+ sourcemap: true, // Enable source maps
111
143
  },
112
- plugins: [buildAllScss(), copyDocsFiles()],
144
+ plugins: [buildAllScss()], // Use the custom SCSS build plugin
113
145
  server: {
114
- open: "/docs/demo/index.html",
146
+ open: "/docs/demo/index.html", // Dev server opens demo page
115
147
  },
116
148
  });
package/.gitattributes DELETED
@@ -1 +0,0 @@
1
- * text=auto
@@ -1,131 +0,0 @@
1
- .demo {
2
- .bf-row {
3
- margin-bottom: 2rem;
4
- }
5
-
6
- [class^="bf-col"] {
7
- margin-bottom: 1rem;
8
- }
9
-
10
- header {
11
- margin-bottom: 1rem;
12
-
13
- h1 {
14
- margin-top: 1rem;
15
- margin-bottom: 0;
16
- font-weight: 700;
17
-
18
- span {
19
- color: #f95c1f;
20
- }
21
-
22
- @media (min-width: 600px) {
23
- font-size: 5.5rem;
24
- }
25
-
26
- @media (min-width: 1000px) {
27
- font-size: 7rem;
28
- }
29
- }
30
-
31
- a {
32
- margin-right: 1rem;
33
- }
34
- }
35
-
36
- @media (min-width: 600px) {
37
- .btn-github {
38
- font-size: 115%;
39
- }
40
- }
41
-
42
- .description {
43
- max-width: 80rem;
44
- margin-left: auto;
45
- margin-right: auto;
46
- }
47
-
48
- .h2--section {
49
- padding-bottom: 2rem;
50
- text-transform: uppercase;
51
-
52
- @media (min-width: 600px) {
53
- font-size: 4rem;
54
- }
55
- }
56
-
57
- legend {
58
- padding-bottom: 1rem;
59
- }
60
-
61
- button,
62
- .bf-btn,
63
- .input-image,
64
- input,
65
- select,
66
- textarea {
67
- margin-bottom: 2rem;
68
- }
69
-
70
- dialog {
71
- .bf-btn {
72
- margin-bottom: 0;
73
- }
74
- }
75
-
76
- [type="image"],
77
- [type="checkbox"],
78
- [type="radio"] {
79
- margin-bottom: 0;
80
- }
81
-
82
- .grid {
83
- .col-wrapper {
84
- background-color: #888;
85
- height: 6rem;
86
- line-height: 6rem;
87
- overflow-y: hidden;
88
- color: #fff;
89
- font-size: 80%;
90
- text-align: center;
91
- border-radius: 3px;
92
- font-weight: 700;
93
- }
94
-
95
- .bf-row:nth-child(odd) {
96
- .col-wrapper {
97
- background-color: #ccc;
98
- color: #000;
99
- }
100
- }
101
-
102
- @media (max-width: 767px) {
103
- .bf-row {
104
- margin-bottom: 0;
105
- }
106
-
107
- [class*="bf-col-"] {
108
- margin-bottom: 2rem;
109
- }
110
- }
111
- }
112
-
113
- .back-to-top {
114
- text-align: center;
115
- display: block;
116
- margin: 6rem 0 12rem;
117
-
118
- a {
119
- i {
120
- vertical-align: middle;
121
- font-style: normal;
122
- }
123
- }
124
- }
125
-
126
- @media (max-width: 575px) {
127
- header {
128
- margin-bottom: 1rem;
129
- }
130
- }
131
- }
@@ -1,28 +0,0 @@
1
- <?xml version="1.0" standalone="no"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
3
- "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg1.dtd">
4
- <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
5
- width="467.000000pt" height="467.000000pt" viewBox="0 0 467.000000 467.000000"
6
- preserveAspectRatio="xMidYMid meet">
7
- <metadata>
8
- Created by potrace 1.11, written by Peter Selinger 2001-2013
9
- </metadata>
10
- <g transform="translate(.000000,467.000000) scale(.100000,-.100000)"
11
- fill="#000000" stroke="none">
12
- <path d="M2065 4659 c-790 -95 -1472 -577 -1826 -1289 -100 -203 -168 -411
13
- -211 -647 -20 -112 -23 -161 -23 -388 0 -228 3 -276 24 -390 162 -906 804
14
- -1617 1684 -1864 219 -61 335 -76 622 -76 227 0 276 3 388 23 903 162 1610
15
- 796 1862 1670 65 227 80 345 80 637 0 228 -3 276 -24 390 -177 991 -927 1741
16
- -1916 1916 -138 24 -520 35 -660 18z m-360 -1289 c257 -24 449 -96 577 -218
17
- 91 -86 131 -169 148 -308 18 -142 -18 -249 -131 -383 l-57 -68 50 -38 c140
18
- -107 228 -283 228 -455 -1 -350 -222 -543 -692 -605 -84 -11 -221 -15 -545
19
- -15 l-433 0 0 1050 0 1050 373 0 c204 0 422 -5 482 -10z m2354 -182 c13 -101
20
- 25 -198 28 -215 l5 -33 -426 0 -426 0 0 -215 0 -215 319 0 319 0 6 -27 c5 -25
21
- 25 -188 43 -345 l6 -58 -347 0 -346 0 0 -400 0 -400 -280 0 -280 0 0 1045 0
22
- 1045 678 0 679 0 22 -182z"/>
23
- <path d="M1400 2761 l0 -181 93 0 c235 0 367 60 367 168 0 72 -40 125 -125
24
- 164 -42 19 -72 23 -192 26 l-143 4 0 -181z"/>
25
- <path d="M1400 1931 l0 -211 158 0 c233 0 327 31 372 124 47 97 3 207 -103
26
- 264 -50 26 -58 27 -239 30 l-188 4 0 -211z"/>
27
- </g>
28
- </svg>
Binary file
@@ -1,131 +0,0 @@
1
- .demo {
2
- .bf-row {
3
- margin-bottom: 2rem;
4
- }
5
-
6
- [class^="bf-col"] {
7
- margin-bottom: 1rem;
8
- }
9
-
10
- header {
11
- margin-bottom: 1rem;
12
-
13
- h1 {
14
- margin-top: 1rem;
15
- margin-bottom: 0;
16
- font-weight: 700;
17
-
18
- span {
19
- color: #f95c1f;
20
- }
21
-
22
- @media (min-width: 600px) {
23
- font-size: 5.5rem;
24
- }
25
-
26
- @media (min-width: 1000px) {
27
- font-size: 7rem;
28
- }
29
- }
30
-
31
- a {
32
- margin-right: 1rem;
33
- }
34
- }
35
-
36
- @media (min-width: 600px) {
37
- .btn-github {
38
- font-size: 115%;
39
- }
40
- }
41
-
42
- .description {
43
- max-width: 80rem;
44
- margin-left: auto;
45
- margin-right: auto;
46
- }
47
-
48
- .h2--section {
49
- padding-bottom: 2rem;
50
- text-transform: uppercase;
51
-
52
- @media (min-width: 600px) {
53
- font-size: 4rem;
54
- }
55
- }
56
-
57
- legend {
58
- padding-bottom: 1rem;
59
- }
60
-
61
- button,
62
- .bf-btn,
63
- .input-image,
64
- input,
65
- select,
66
- textarea {
67
- margin-bottom: 2rem;
68
- }
69
-
70
- dialog {
71
- .bf-btn {
72
- margin-bottom: 0;
73
- }
74
- }
75
-
76
- [type="image"],
77
- [type="checkbox"],
78
- [type="radio"] {
79
- margin-bottom: 0;
80
- }
81
-
82
- .grid {
83
- .col-wrapper {
84
- background-color: #888;
85
- height: 6rem;
86
- line-height: 6rem;
87
- overflow-y: hidden;
88
- color: #fff;
89
- font-size: 80%;
90
- text-align: center;
91
- border-radius: 3px;
92
- font-weight: 700;
93
- }
94
-
95
- .bf-row:nth-child(odd) {
96
- .col-wrapper {
97
- background-color: #ccc;
98
- color: #000;
99
- }
100
- }
101
-
102
- @media (max-width: 767px) {
103
- .bf-row {
104
- margin-bottom: 0;
105
- }
106
-
107
- [class*="bf-col-"] {
108
- margin-bottom: 2rem;
109
- }
110
- }
111
- }
112
-
113
- .back-to-top {
114
- text-align: center;
115
- display: block;
116
- margin: 6rem 0 12rem;
117
-
118
- a {
119
- i {
120
- vertical-align: middle;
121
- font-style: normal;
122
- }
123
- }
124
- }
125
-
126
- @media (max-width: 575px) {
127
- header {
128
- margin-bottom: 1rem;
129
- }
130
- }
131
- }
Binary file
@@ -1,28 +0,0 @@
1
- <?xml version="1.0" standalone="no"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
3
- "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg1.dtd">
4
- <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
5
- width="467.000000pt" height="467.000000pt" viewBox="0 0 467.000000 467.000000"
6
- preserveAspectRatio="xMidYMid meet">
7
- <metadata>
8
- Created by potrace 1.11, written by Peter Selinger 2001-2013
9
- </metadata>
10
- <g transform="translate(.000000,467.000000) scale(.100000,-.100000)"
11
- fill="#000000" stroke="none">
12
- <path d="M2065 4659 c-790 -95 -1472 -577 -1826 -1289 -100 -203 -168 -411
13
- -211 -647 -20 -112 -23 -161 -23 -388 0 -228 3 -276 24 -390 162 -906 804
14
- -1617 1684 -1864 219 -61 335 -76 622 -76 227 0 276 3 388 23 903 162 1610
15
- 796 1862 1670 65 227 80 345 80 637 0 228 -3 276 -24 390 -177 991 -927 1741
16
- -1916 1916 -138 24 -520 35 -660 18z m-360 -1289 c257 -24 449 -96 577 -218
17
- 91 -86 131 -169 148 -308 18 -142 -18 -249 -131 -383 l-57 -68 50 -38 c140
18
- -107 228 -283 228 -455 -1 -350 -222 -543 -692 -605 -84 -11 -221 -15 -545
19
- -15 l-433 0 0 1050 0 1050 373 0 c204 0 422 -5 482 -10z m2354 -182 c13 -101
20
- 25 -198 28 -215 l5 -33 -426 0 -426 0 0 -215 0 -215 319 0 319 0 6 -27 c5 -25
21
- 25 -188 43 -345 l6 -58 -347 0 -346 0 0 -400 0 -400 -280 0 -280 0 0 1045 0
22
- 1045 678 0 679 0 22 -182z"/>
23
- <path d="M1400 2761 l0 -181 93 0 c235 0 367 60 367 168 0 72 -40 125 -125
24
- 164 -42 19 -72 23 -192 26 l-143 4 0 -181z"/>
25
- <path d="M1400 1931 l0 -211 158 0 c233 0 327 31 372 124 47 97 3 207 -103
26
- 264 -50 26 -58 27 -239 30 l-188 4 0 -211z"/>
27
- </g>
28
- </svg>
Binary file