@guebbit/css-toolkit 1.3.2 → 1.4.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 (144) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/LICENSE +661 -661
  3. package/README.md +40 -6
  4. package/docs/.postcssrc.cjs +12 -12
  5. package/docs/.vitepress/cache/deps/_metadata.json +52 -0
  6. package/docs/.vitepress/cache/deps/chunk-GD2PZ323.js +9709 -0
  7. package/docs/.vitepress/cache/deps/chunk-GD2PZ323.js.map +7 -0
  8. package/docs/.vitepress/cache/deps/chunk-LW4I4DCF.js +12542 -0
  9. package/docs/.vitepress/cache/deps/chunk-LW4I4DCF.js.map +7 -0
  10. package/docs/.vitepress/cache/deps/package.json +3 -0
  11. package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +4504 -0
  12. package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +7 -0
  13. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +581 -0
  14. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +7 -0
  15. package/docs/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js +1145 -0
  16. package/docs/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js.map +7 -0
  17. package/docs/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js +1665 -0
  18. package/docs/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js.map +7 -0
  19. package/docs/.vitepress/cache/deps/vitepress___minisearch.js +1839 -0
  20. package/docs/.vitepress/cache/deps/vitepress___minisearch.js.map +7 -0
  21. package/docs/.vitepress/cache/deps/vue.js +343 -0
  22. package/docs/.vitepress/cache/deps/vue.js.map +7 -0
  23. package/docs/.vitepress/config.ts +97 -89
  24. package/docs/.vitepress/dist/404.html +3 -3
  25. package/docs/.vitepress/dist/assets/{app.CBPosL5d.js → app.jf3Qn9qL.js} +1 -1
  26. package/docs/.vitepress/dist/assets/chunks/@localSearchIndexroot.CbTBD5fF.js +1 -0
  27. package/docs/.vitepress/dist/assets/chunks/{VPLocalSearchBox.gSyUO2Y7.js → VPLocalSearchBox.B3CAY0xn.js} +1 -1
  28. package/docs/.vitepress/dist/assets/chunks/{theme.BeEqdqye.js → theme.rWQpqSL8.js} +2 -2
  29. package/docs/.vitepress/dist/assets/colors_bootstrap.md.AyoUVG26.js +188 -0
  30. package/docs/.vitepress/dist/assets/colors_bootstrap.md.AyoUVG26.lean.js +1 -0
  31. package/docs/.vitepress/dist/assets/colors_brands.md.D66byFIK.js +34 -0
  32. package/docs/.vitepress/dist/assets/colors_brands.md.D66byFIK.lean.js +1 -0
  33. package/docs/.vitepress/dist/assets/colors_customs.md.BOrXeoM5.js +53 -0
  34. package/docs/.vitepress/dist/assets/colors_customs.md.BOrXeoM5.lean.js +1 -0
  35. package/docs/.vitepress/dist/assets/functions_breakpoints.md.CELQkNwH.js +63 -0
  36. package/docs/.vitepress/dist/assets/functions_breakpoints.md.CELQkNwH.lean.js +1 -0
  37. package/docs/.vitepress/dist/assets/{functions_colors.md.BsOBqU9L.js → functions_colors.md.-D_m804_.js} +12 -4
  38. package/docs/.vitepress/dist/assets/functions_colors.md.-D_m804_.lean.js +1 -0
  39. package/docs/.vitepress/dist/assets/functions_helpers.md.ByBd49Zv.js +51 -0
  40. package/docs/.vitepress/dist/assets/functions_helpers.md.ByBd49Zv.lean.js +1 -0
  41. package/docs/.vitepress/dist/assets/functions_strings.md.BQe_bdya.js +38 -0
  42. package/docs/.vitepress/dist/assets/functions_strings.md.BQe_bdya.lean.js +1 -0
  43. package/docs/.vitepress/dist/assets/index.md.B50gUndk.js +10 -0
  44. package/docs/.vitepress/dist/assets/index.md.B50gUndk.lean.js +1 -0
  45. package/docs/.vitepress/dist/assets/mixins_build-aspect-ratio.md.ICFUpBeX.js +39 -0
  46. package/docs/.vitepress/dist/assets/mixins_build-aspect-ratio.md.ICFUpBeX.lean.js +1 -0
  47. package/docs/.vitepress/dist/assets/mixins_build-breakpoint.md.DKQMAk7p.js +100 -0
  48. package/docs/.vitepress/dist/assets/mixins_build-breakpoint.md.DKQMAk7p.lean.js +1 -0
  49. package/docs/.vitepress/dist/assets/mixins_build-compatibility.md.s8jk3C-J.js +85 -0
  50. package/docs/.vitepress/dist/assets/{mixins_build-compatibility.md.DvZg2OSO.lean.js → mixins_build-compatibility.md.s8jk3C-J.lean.js} +1 -1
  51. package/docs/.vitepress/dist/assets/{mixins_build-scrollbar.md.Bze7PgzU.js → mixins_build-scrollbar.md.hZriM4ET.js} +7 -2
  52. package/docs/.vitepress/dist/assets/mixins_create-colors.md.D6f2BMAy.js +204 -0
  53. package/docs/.vitepress/dist/assets/mixins_create-colors.md.D6f2BMAy.lean.js +1 -0
  54. package/docs/.vitepress/dist/assets/{mixins_create-helper-margin.md.DqwBKQ0G.js → mixins_create-helper-margin.md.CFz5if3z.js} +18 -18
  55. package/docs/.vitepress/dist/assets/mixins_create-helper-margin.md.CFz5if3z.lean.js +1 -0
  56. package/docs/.vitepress/dist/assets/mixins_create-helper-padding.md.Ct06sNMx.js +50 -0
  57. package/docs/.vitepress/dist/assets/mixins_create-helper-padding.md.Ct06sNMx.lean.js +1 -0
  58. package/docs/.vitepress/dist/assets/{mixins_create-instruction.md.BeAIoeQx.js → mixins_create-instruction.md.B0iVQyHl.js} +18 -4
  59. package/docs/.vitepress/dist/colors/bootstrap.html +194 -7
  60. package/docs/.vitepress/dist/colors/brands.html +40 -7
  61. package/docs/.vitepress/dist/colors/customs.html +59 -7
  62. package/docs/.vitepress/dist/functions/breakpoints.html +87 -0
  63. package/docs/.vitepress/dist/functions/colors.html +16 -8
  64. package/docs/.vitepress/dist/functions/helpers.html +57 -7
  65. package/docs/.vitepress/dist/functions/strings.html +44 -7
  66. package/docs/.vitepress/dist/hashmap.json +1 -1
  67. package/docs/.vitepress/dist/index.html +15 -6
  68. package/docs/.vitepress/dist/mixins/build-aspect-ratio.html +45 -7
  69. package/docs/.vitepress/dist/mixins/build-breakpoint.html +124 -0
  70. package/docs/.vitepress/dist/mixins/build-compatibility.html +59 -15
  71. package/docs/.vitepress/dist/mixins/build-scrollbar.html +13 -8
  72. package/docs/.vitepress/dist/mixins/create-colors.html +210 -7
  73. package/docs/.vitepress/dist/mixins/create-helper-margin.html +23 -23
  74. package/docs/.vitepress/dist/mixins/create-helper-padding.html +39 -34
  75. package/docs/.vitepress/dist/mixins/create-instruction.html +24 -10
  76. package/docs/.vitepress/theme/index.js +12 -12
  77. package/docs/colors/bootstrap.md +29 -1
  78. package/docs/colors/brands.md +8 -1
  79. package/docs/colors/customs.md +8 -1
  80. package/docs/functions/breakpoints.md +25 -0
  81. package/docs/functions/colors.md +71 -66
  82. package/docs/functions/helpers.md +15 -1
  83. package/docs/functions/strings.md +13 -1
  84. package/docs/index.md +1 -1
  85. package/docs/logo.svg +55 -55
  86. package/docs/logotype.svg +149 -149
  87. package/docs/mixins/build-aspect-ratio.md +16 -1
  88. package/docs/mixins/build-breakpoint.md +24 -0
  89. package/docs/mixins/build-compatibility.md +24 -23
  90. package/docs/mixins/build-scrollbar.md +21 -19
  91. package/docs/mixins/create-colors.md +16 -1
  92. package/docs/mixins/create-helper-margin.md +21 -25
  93. package/docs/mixins/create-helper-padding.md +21 -24
  94. package/docs/mixins/create-instruction.md +38 -33
  95. package/index.scss +1 -1
  96. package/package.json +72 -61
  97. package/src/colors/_bootstrap.scss +179 -180
  98. package/src/colors/_brands.scss +34 -20
  99. package/src/colors/_customs.scss +53 -53
  100. package/src/colors/_index.scss +212 -200
  101. package/src/functions/_breakpoints.scss +52 -0
  102. package/src/functions/_colors.scss +143 -135
  103. package/src/functions/_helpers.scss +51 -44
  104. package/src/functions/_strings.scss +38 -31
  105. package/src/index.scss +16 -14
  106. package/src/mixins/_build-aspect-ratio.scss +37 -37
  107. package/src/mixins/_build-breakpoint.scss +90 -0
  108. package/src/mixins/_build-compatibility.scss +83 -39
  109. package/src/mixins/_build-scrollbar.scss +37 -32
  110. package/src/mixins/_create-class.scss +29 -19
  111. package/src/mixins/_create-colors-vars.scss +31 -27
  112. package/src/mixins/_create-colors.scss +202 -155
  113. package/src/mixins/_create-helper-margin.scss +43 -39
  114. package/src/mixins/_create-helper-padding.scss +47 -40
  115. package/test/compile.test.js +211 -132
  116. package/test/lint.test.js +43 -48
  117. package/test/test.css +32 -0
  118. package/test/test.scss +239 -197
  119. package/vite.config.ts +26 -26
  120. package/CHANGELOG +0 -0
  121. package/docs/.vitepress/dist/assets/chunks/@localSearchIndexroot.C6BRpH9I.js +0 -1
  122. package/docs/.vitepress/dist/assets/colors_bootstrap.md.CFg-dNGF.js +0 -1
  123. package/docs/.vitepress/dist/assets/colors_bootstrap.md.CFg-dNGF.lean.js +0 -1
  124. package/docs/.vitepress/dist/assets/colors_brands.md.CUxoS0ml.js +0 -1
  125. package/docs/.vitepress/dist/assets/colors_brands.md.CUxoS0ml.lean.js +0 -1
  126. package/docs/.vitepress/dist/assets/colors_customs.md.CnHhl84q.js +0 -1
  127. package/docs/.vitepress/dist/assets/colors_customs.md.CnHhl84q.lean.js +0 -1
  128. package/docs/.vitepress/dist/assets/functions_colors.md.BsOBqU9L.lean.js +0 -1
  129. package/docs/.vitepress/dist/assets/functions_helpers.md.B3A_IOEL.js +0 -1
  130. package/docs/.vitepress/dist/assets/functions_helpers.md.B3A_IOEL.lean.js +0 -1
  131. package/docs/.vitepress/dist/assets/functions_strings.md.BdV8Kx9J.js +0 -1
  132. package/docs/.vitepress/dist/assets/functions_strings.md.BdV8Kx9J.lean.js +0 -1
  133. package/docs/.vitepress/dist/assets/index.md.Cn1TneoC.js +0 -1
  134. package/docs/.vitepress/dist/assets/index.md.Cn1TneoC.lean.js +0 -1
  135. package/docs/.vitepress/dist/assets/mixins_build-aspect-ratio.md.cD70Q1mW.js +0 -1
  136. package/docs/.vitepress/dist/assets/mixins_build-aspect-ratio.md.cD70Q1mW.lean.js +0 -1
  137. package/docs/.vitepress/dist/assets/mixins_build-compatibility.md.DvZg2OSO.js +0 -41
  138. package/docs/.vitepress/dist/assets/mixins_create-colors.md.Bi4iqAHf.js +0 -1
  139. package/docs/.vitepress/dist/assets/mixins_create-colors.md.Bi4iqAHf.lean.js +0 -1
  140. package/docs/.vitepress/dist/assets/mixins_create-helper-margin.md.DqwBKQ0G.lean.js +0 -1
  141. package/docs/.vitepress/dist/assets/mixins_create-helper-padding.md.Br9TOGl1.js +0 -45
  142. package/docs/.vitepress/dist/assets/mixins_create-helper-padding.md.Br9TOGl1.lean.js +0 -1
  143. /package/docs/.vitepress/dist/assets/{mixins_build-scrollbar.md.Bze7PgzU.lean.js → mixins_build-scrollbar.md.hZriM4ET.lean.js} +0 -0
  144. /package/docs/.vitepress/dist/assets/{mixins_create-instruction.md.BeAIoeQx.lean.js → mixins_create-instruction.md.B0iVQyHl.lean.js} +0 -0
@@ -1,39 +1,43 @@
1
- /**
2
- *
3
- * t - applies the spacing for margin-top
4
- * b - applies the spacing for margin-bottom
5
- * l - applies the spacing for margin-left
6
- * r - applies the spacing for margin-right
7
- * x - applies the spacing for both *-left and *-right
8
- * y - applies the spacing for both *-top and *-bottom
9
- * a - applies the spacing for the property in all directions
10
- *
11
- * @param {Array<name,value>[]} measure-list - postfix name and value
12
- */
13
- @mixin create-helper-margin($measure-list: (), $important: false, $prefix: "") {
14
- @each $name, $val in $measure-list {
15
- .#{$prefix}mt-#{$name} {
16
- margin-top: #{$val} #{if($important == true, "!important", "")};
17
- }
18
- .#{$prefix}mb-#{$name} {
19
- margin-bottom: #{$val} #{if($important == true, "!important", "")};
20
- }
21
- .#{$prefix}ml-#{$name} {
22
- margin-left: #{$val} #{if($important == true, "!important", "")};
23
- }
24
- .#{$prefix}mr-#{$name} {
25
- margin-right: #{$val} #{if($important == true, "!important", "")};
26
- }
27
- .#{$prefix}mx-#{$name} {
28
- margin-right: #{$val} #{if($important == true, "!important", "")};
29
- margin-left: #{$val} #{if($important == true, "!important", "")};
30
- }
31
- .#{$prefix}my-#{$name} {
32
- margin-top: #{$val} #{if($important == true, "!important", "")};
33
- margin-bottom: #{$val} #{if($important == true, "!important", "")};
34
- }
35
- .#{$prefix}ma-#{$name} {
36
- margin: #{$val} #{if($important == true, "!important", "")};
37
- }
38
- }
39
- }
1
+ /**
2
+ *
3
+ * t - applies the spacing for margin-top
4
+ * b - applies the spacing for margin-bottom
5
+ * l - applies the spacing for margin-left
6
+ * r - applies the spacing for margin-right
7
+ * x - applies the spacing for both *-left and *-right
8
+ * y - applies the spacing for both *-top and *-bottom
9
+ * a - applies the spacing for the property in all directions
10
+ *
11
+ * @param {Array<name,value>[]} measure-list - postfix name and value
12
+ */
13
+ @mixin create-helper-margin($measure-list: (), $important: false, $prefix: "") {
14
+ $important-suffix: "";
15
+ @if $important == true {
16
+ $important-suffix: " !important";
17
+ }
18
+ @each $name, $val in $measure-list {
19
+ .#{$prefix}mt-#{$name} {
20
+ margin-top: #{$val}#{$important-suffix};
21
+ }
22
+ .#{$prefix}mb-#{$name} {
23
+ margin-bottom: #{$val}#{$important-suffix};
24
+ }
25
+ .#{$prefix}ml-#{$name} {
26
+ margin-left: #{$val}#{$important-suffix};
27
+ }
28
+ .#{$prefix}mr-#{$name} {
29
+ margin-right: #{$val}#{$important-suffix};
30
+ }
31
+ .#{$prefix}mx-#{$name} {
32
+ margin-right: #{$val}#{$important-suffix};
33
+ margin-left: #{$val}#{$important-suffix};
34
+ }
35
+ .#{$prefix}my-#{$name} {
36
+ margin-top: #{$val}#{$important-suffix};
37
+ margin-bottom: #{$val}#{$important-suffix};
38
+ }
39
+ .#{$prefix}ma-#{$name} {
40
+ margin: #{$val}#{$important-suffix};
41
+ }
42
+ }
43
+ }
@@ -1,40 +1,47 @@
1
- /**
2
- *
3
- * t - applies the spacing for padding-top
4
- * b - applies the spacing for padding-bottom
5
- * l - applies the spacing for padding-left
6
- * r - applies the spacing for padding-right
7
- * x - applies the spacing for both *-left and *-right
8
- * y - applies the spacing for both *-top and *-bottom
9
- * a - applies the spacing for the property in all directions
10
-
11
- * @param {Array<name,value>[]} measure-list - postfix name and value
12
- */
13
- @mixin create-helper-padding($measure-list: (), $important: false, $prefix: "") {
14
-
15
- @each $name, $val in $measure-list {
16
- .#{$prefix}pt-#{$name} {
17
- padding-top: #{$val} #{if($important == true, "!important", "")};
18
- }
19
- .#{$prefix}pb-#{$name} {
20
- padding-bottom: #{$val} #{if($important == true, "!important", "")};
21
- }
22
- .#{$prefix}pl-#{$name} {
23
- padding-left: #{$val} #{if($important == true, "!important", "")};
24
- }
25
- .#{$prefix}pr-#{$name} {
26
- padding-right: #{$val} #{if($important == true, "!important", "")};
27
- }
28
- .#{$prefix}px-#{$name} {
29
- padding-right: #{$val} #{if($important == true, "!important", "")};
30
- padding-left: #{$val} #{if($important == true, "!important", "")};
31
- }
32
- .#{$prefix}py-#{$name} {
33
- padding-top: #{$val} #{if($important == true, "!important", "")};
34
- padding-bottom: #{$val} #{if($important == true, "!important", "")};
35
- }
36
- .#{$prefix}pa-#{$name} {
37
- padding: #{$val} #{if($important == true, "!important", "")};
38
- }
39
- }
40
- }
1
+ /**
2
+ *
3
+ * t - applies the spacing for padding-top
4
+ * b - applies the spacing for padding-bottom
5
+ * l - applies the spacing for padding-left
6
+ * r - applies the spacing for padding-right
7
+ * x - applies the spacing for both *-left and *-right
8
+ * y - applies the spacing for both *-top and *-bottom
9
+ * a - applies the spacing for the property in all directions
10
+
11
+ * @param {Array<name,value>[]} measure-list - postfix name and value
12
+ */
13
+ @mixin create-helper-padding(
14
+ $measure-list: (),
15
+ $important: false,
16
+ $prefix: ""
17
+ ) {
18
+ $important-suffix: "";
19
+ @if $important == true {
20
+ $important-suffix: " !important";
21
+ }
22
+ @each $name, $val in $measure-list {
23
+ .#{$prefix}pt-#{$name} {
24
+ padding-top: #{$val}#{$important-suffix};
25
+ }
26
+ .#{$prefix}pb-#{$name} {
27
+ padding-bottom: #{$val}#{$important-suffix};
28
+ }
29
+ .#{$prefix}pl-#{$name} {
30
+ padding-left: #{$val}#{$important-suffix};
31
+ }
32
+ .#{$prefix}pr-#{$name} {
33
+ padding-right: #{$val}#{$important-suffix};
34
+ }
35
+ .#{$prefix}px-#{$name} {
36
+ padding-right: #{$val}#{$important-suffix};
37
+ padding-left: #{$val}#{$important-suffix};
38
+ }
39
+ .#{$prefix}py-#{$name} {
40
+ padding-top: #{$val}#{$important-suffix};
41
+ padding-bottom: #{$val}#{$important-suffix};
42
+ }
43
+ .#{$prefix}pa-#{$name} {
44
+ padding: #{$val}#{$important-suffix};
45
+ }
46
+ }
47
+ }
@@ -1,132 +1,211 @@
1
- import { describe, it } from "mocha";
2
- import { expect } from "chai";
3
- import fs from "fs";
4
- import util from "util";
5
- import * as sass from "sass";
6
- import path from "path";
7
- import { fileURLToPath } from "url";
8
-
9
- const __filename = fileURLToPath(import.meta.url);
10
- const __dirname = path.dirname(__filename);
11
-
12
- let cssCompiled;
13
-
14
- function sassCompiler(){
15
- return util.promisify(sass.render)({
16
- includePaths: ['./scss'],
17
- file: path.join(__dirname, './test.scss'),
18
- // outputStyle: 'compressed'
19
- })
20
- .then(result => result?.css?.toString());
21
- }
22
-
23
- describe("COMPILE", function() {
24
- // to remove timeout error
25
- this.timeout(10000);
26
-
27
- it('Should compile', async function() {
28
- cssCompiled = await sassCompiler();
29
- // Not necessary, but let's compile the file
30
- fs.writeFile(path.join(__dirname, 'test.css'), cssCompiled, () => {});
31
- });
32
-
33
- it('Check some rules', function() {
34
- // --
35
- expect(cssCompiled).to.contain('.blue-400-text {');
36
- expect(cssCompiled).to.contain('color: rgb(61.4, 139, 253.4) !important;');
37
- expect(cssCompiled).to.contain('.blue-400-bg {');
38
- expect(cssCompiled).to.contain('background-color: rgb(61.4, 139, 253.4) !important;');
39
- expect(cssCompiled).to.contain('.blue-400-border {');
40
- expect(cssCompiled).to.contain('border-color: rgb(61.4, 139, 253.4) !important;');
41
- expect(cssCompiled).to.contain('.blue-400-pseudo-bg::after, .blue-400-pseudo-bg::before {');
42
- expect(cssCompiled).to.contain('background-color: rgb(61.4, 139, 253.4) !important;');
43
- expect(cssCompiled).to.contain('.blue-400-hover-text:hover {');
44
- expect(cssCompiled).to.contain('.blue-400-hover-bg:hover {');
45
- expect(cssCompiled).to.contain('.blue-400-hover-border:hover {');
46
- expect(cssCompiled).to.contain('.blue-400-hover-pseudo-bg:hover::after, .blue-400-hover-pseudo-bg:hover::before {');
47
- // --
48
- expect(cssCompiled).to.contain('.primary-500-text {');
49
- expect(cssCompiled).to.contain('color: var(--g-theme-primary-500) !important;');
50
- expect(cssCompiled).to.contain('.primary-500-bg {');
51
- expect(cssCompiled).to.contain('background-color: var(--g-theme-primary-500) !important;');
52
- expect(cssCompiled).to.contain('.primary-500-border {');
53
- expect(cssCompiled).to.contain('border-color: var(--g-theme-primary-500) !important;');
54
- expect(cssCompiled).to.contain('.primary-500-pseudo-bg::after, .primary-500-pseudo-bg::before {');
55
- expect(cssCompiled).to.contain('.primary-500-hover-text:hover {');
56
- expect(cssCompiled).to.contain('.primary-500-hover-bg:hover {');
57
- expect(cssCompiled).to.contain('.primary-500-hover-border:hover {');
58
- expect(cssCompiled).to.contain('.primary-500-hover-pseudo-bg:hover::after, .primary-500-hover-pseudo-bg:hover::before {');
59
- // --
60
- expect(cssCompiled).to.contain('--g-theme-primary-500: 255 0 255;');
61
- expect(cssCompiled).to.contain('--g-theme-on-primary-500: 255 255 255;');
62
- expect(cssCompiled).to.contain('--blue-400: 61.4 139 253.4;');
63
- expect(cssCompiled).to.contain('--on-blue-400: 0 0 0;');
64
- expect(cssCompiled).to.contain('--manga-red-500: 212 24 22;');
65
- expect(cssCompiled).to.contain('--gradient-brand-instagram: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);');
66
- expect(cssCompiled).to.contain('.text-align-right {');
67
- expect(cssCompiled).to.contain('text-align: right !important;');
68
-
69
- expect(cssCompiled).to.contain('.mt-auto {');
70
- expect(cssCompiled).to.contain('margin-top: auto;');
71
- expect(cssCompiled).to.contain('.my-48 {');
72
- expect(cssCompiled).to.contain('margin-top: 48px;');
73
- expect(cssCompiled).to.contain('margin-bottom: 48px;');
74
- expect(cssCompiled).to.contain('.width-100 {');
75
- expect(cssCompiled).to.contain('width: 100% !important;');
76
- expect(cssCompiled).to.contain('.flex-gap-24 {');
77
- expect(cssCompiled).to.contain('gap: 24px !important;');
78
- // -
79
- expect(cssCompiled).to.contain('.aspect-ratio-1-1::before {');
80
- expect(cssCompiled).to.contain('padding-top: 100%;');
81
- expect(cssCompiled).to.contain('.aspect-ratio-16-9::before {');
82
- expect(cssCompiled).to.contain('padding-top: 56%;');
83
- // -
84
- expect(cssCompiled).to.contain('@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {');
85
- expect(cssCompiled).to.contain('@supports (-ms-ime-align: auto) {');
86
- expect(cssCompiled).to.contain('@supports (-moz-appearance: none) {');
87
- // --
88
- expect(cssCompiled).to.contain('--color-opaque-1: rgba(33.0810810811, 33.0810810811, 33.0810810811, 0.84)');
89
- expect(cssCompiled).to.contain('--color-opaque-2: rgb(110.5, 110.5, 110.5)');
90
- expect(cssCompiled).to.contain('--color-opaque-3: #dddddd;');
91
- // --
92
- expect(cssCompiled).to.contain('--color-tint-1: rgb(89.25, 89.25, 89.25);');
93
- expect(cssCompiled).to.contain('--color-tint-2: rgb(229.5, 229.5, 229.5);');
94
- // --
95
- expect(cssCompiled).to.contain('--color-shade-1: rgb(25.5, 25.5, 25.5);');
96
- expect(cssCompiled).to.contain('--color-shade-2: rgb(165.75, 165.75, 165.75);');
97
- // --
98
- expect(cssCompiled).to.contain('--color-shift-1: rgb(25.5, 25.5, 25.5);');
99
- expect(cssCompiled).to.contain('--color-shift-2: rgb(165.75, 165.75, 165.75);');
100
- expect(cssCompiled).to.contain('--color-shift-3: rgb(89.25, 89.25, 89.25);');
101
- expect(cssCompiled).to.contain('--color-shift-4: rgb(229.5, 229.5, 229.5);');
102
- // --
103
- expect(cssCompiled).to.contain('--color-contrast-1: #fff;');
104
- expect(cssCompiled).to.contain('--color-contrast-2: #000;');
105
- // --
106
- expect(cssCompiled).to.contain('--color-brightness-1: #fff;');
107
- expect(cssCompiled).to.contain('--color-brightness-2: #000;');
108
- // --
109
- expect(cssCompiled).to.contain('--extract-colors-1: 255 255 255;');
110
- expect(cssCompiled).to.contain('--extract-colors-2: 34 34 34;');
111
- expect(cssCompiled).to.contain('--extract-colors-3: 221 221 221;');
112
- expect(cssCompiled).to.contain('--extract-colors-4: 34, 34, 34;');
113
- expect(cssCompiled).to.contain('--extract-colors-5: 221, 221, 221;');
114
- expect(cssCompiled).to.contain('--extract-colors-6: 0 255 0;');
115
- expect(cssCompiled).to.contain('--extract-colors-7: 0 255 0 / 0.5;');
116
- expect(cssCompiled).to.contain('--extract-colors-8: 0, 255, 0;');
117
- expect(cssCompiled).to.contain('--extract-colors-9: 0, 255, 0, 0.5;');
118
- expect(cssCompiled).to.contain('--extract-colors-10: 0 255 0;');
119
- expect(cssCompiled).to.contain('--extract-colors-11: 0 255 0 / 0.5;');
120
- expect(cssCompiled).to.contain('--extract-colors-12: 0, 255, 0;');
121
- expect(cssCompiled).to.contain('--extract-colors-13: 0, 255, 0, 0.5;');
122
- // --
123
- expect(cssCompiled).to.contain('--no-null-1: transparent;');
124
- expect(cssCompiled).to.contain('--no-null-2: blue;');
125
- // --
126
- expect(cssCompiled).to.contain('--no-trasparent-1: inherit;');
127
- expect(cssCompiled).to.contain('--no-trasparent-2: inherit;');
128
- expect(cssCompiled).to.contain('--no-trasparent-3: #123456;');
129
- // --
130
- expect(cssCompiled).to.contain('--map-deep-get: 10px;');
131
- });
132
- });
1
+ import { describe, it } from "mocha";
2
+ import { expect } from "chai";
3
+ import fs from "fs";
4
+ import * as sass from "sass";
5
+ import path from "path";
6
+ import { fileURLToPath } from "url";
7
+
8
+ const __filename = fileURLToPath(import.meta.url);
9
+ const __dirname = path.dirname(__filename);
10
+
11
+ let cssCompiled;
12
+ const writeCompiledOutput = process.env.WRITE_TEST_OUTPUT === "1";
13
+
14
+ function sassCompiler() {
15
+ return Promise.resolve(
16
+ sass.compile(path.join(__dirname, "./test.scss"), {
17
+ loadPaths: ["./scss"],
18
+ style: "expanded",
19
+ }).css,
20
+ );
21
+ }
22
+
23
+ describe("COMPILE", function () {
24
+ // to remove timeout error
25
+ this.timeout(10000);
26
+
27
+ it("Should compile", async function () {
28
+ cssCompiled = await sassCompiler();
29
+ // Optional artifact generation for easier debugging
30
+ if (writeCompiledOutput) {
31
+ fs.writeFile(path.join(__dirname, "test.css"), cssCompiled, () => {});
32
+ }
33
+ });
34
+
35
+ it("Check some rules", function () {
36
+ // --
37
+ expect(cssCompiled).to.contain(".blue-400-text {");
38
+ expect(cssCompiled).to.match(
39
+ /color:\s*rgb\(61(?:\.\d+)?,\s*139,\s*253(?:\.\d+)?\)\s*!important;/,
40
+ );
41
+ expect(cssCompiled).to.contain(".blue-400-bg {");
42
+ expect(cssCompiled).to.match(
43
+ /background-color:\s*rgb\(61(?:\.\d+)?,\s*139,\s*253(?:\.\d+)?\)\s*!important;/,
44
+ );
45
+ expect(cssCompiled).to.contain(".blue-400-border {");
46
+ expect(cssCompiled).to.match(
47
+ /border-color:\s*rgb\(61(?:\.\d+)?,\s*139,\s*253(?:\.\d+)?\)\s*!important;/,
48
+ );
49
+ expect(cssCompiled).to.contain(
50
+ ".blue-400-pseudo-bg::after, .blue-400-pseudo-bg::before {",
51
+ );
52
+ expect(cssCompiled).to.match(
53
+ /background-color:\s*rgb\(61(?:\.\d+)?,\s*139,\s*253(?:\.\d+)?\)\s*!important;/,
54
+ );
55
+ expect(cssCompiled).to.contain(".blue-400-hover-text:hover {");
56
+ expect(cssCompiled).to.contain(".blue-400-hover-bg:hover {");
57
+ expect(cssCompiled).to.contain(".blue-400-hover-border:hover {");
58
+ expect(cssCompiled).to.contain(
59
+ ".blue-400-hover-pseudo-bg:hover::after, .blue-400-hover-pseudo-bg:hover::before {",
60
+ );
61
+ // --
62
+ expect(cssCompiled).to.contain(".primary-500-text {");
63
+ expect(cssCompiled).to.contain(
64
+ "color: var(--g-theme-primary-500) !important;",
65
+ );
66
+ expect(cssCompiled).to.contain(".primary-500-bg {");
67
+ expect(cssCompiled).to.contain(
68
+ "background-color: var(--g-theme-primary-500) !important;",
69
+ );
70
+ expect(cssCompiled).to.contain(".primary-500-border {");
71
+ expect(cssCompiled).to.contain(
72
+ "border-color: var(--g-theme-primary-500) !important;",
73
+ );
74
+ expect(cssCompiled).to.contain(
75
+ ".primary-500-pseudo-bg::after, .primary-500-pseudo-bg::before {",
76
+ );
77
+ expect(cssCompiled).to.contain(".primary-500-hover-text:hover {");
78
+ expect(cssCompiled).to.contain(".primary-500-hover-bg:hover {");
79
+ expect(cssCompiled).to.contain(".primary-500-hover-border:hover {");
80
+ expect(cssCompiled).to.contain(
81
+ ".primary-500-hover-pseudo-bg:hover::after, .primary-500-hover-pseudo-bg:hover::before {",
82
+ );
83
+ // --
84
+ expect(cssCompiled).to.contain("--g-theme-primary-500: 255 0 255;");
85
+ expect(cssCompiled).to.contain("--g-theme-on-primary-500: 255 255 255;");
86
+ expect(cssCompiled).to.contain("--blue-400: 61.4 139 253.4;");
87
+ expect(cssCompiled).to.contain("--on-blue-400: 0 0 0;");
88
+ expect(cssCompiled).to.contain("--manga-red-500: 212 24 22;");
89
+ expect(cssCompiled).to.contain(
90
+ "--gradient-brand-instagram: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);",
91
+ );
92
+ expect(cssCompiled).to.contain(".text-align-right {");
93
+ expect(cssCompiled).to.contain("text-align: right !important;");
94
+
95
+ expect(cssCompiled).to.contain(".mt-auto {");
96
+ expect(cssCompiled).to.contain("margin-top: auto;");
97
+ expect(cssCompiled).to.contain(".my-48 {");
98
+ expect(cssCompiled).to.contain("margin-top: 48px;");
99
+ expect(cssCompiled).to.contain("margin-bottom: 48px;");
100
+ expect(cssCompiled).to.contain(".width-100 {");
101
+ expect(cssCompiled).to.contain("width: 100% !important;");
102
+ expect(cssCompiled).to.contain(".flex-gap-24 {");
103
+ expect(cssCompiled).to.contain("gap: 24px !important;");
104
+ // -
105
+ expect(cssCompiled).to.contain(".aspect-ratio-1-1::before {");
106
+ expect(cssCompiled).to.contain("padding-top: 100%;");
107
+ expect(cssCompiled).to.contain(".aspect-ratio-16-9::before {");
108
+ expect(cssCompiled).to.contain("padding-top: 56%;");
109
+ // -
110
+ expect(cssCompiled).to.contain(
111
+ "@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {",
112
+ );
113
+ expect(cssCompiled).to.contain("@supports (-ms-ime-align: auto) {");
114
+ expect(cssCompiled).to.contain("@supports (-moz-appearance: none) {");
115
+ expect(cssCompiled).to.contain("@supports (-webkit-touch-callout: none) {");
116
+ // --
117
+ expect(cssCompiled).to.contain(".scrollbar-test::-webkit-scrollbar {");
118
+ expect(cssCompiled).to.contain("width: 8px;");
119
+ expect(cssCompiled).to.contain("height: 8px;");
120
+ expect(cssCompiled).to.contain("background-color: #abcdef;");
121
+ expect(cssCompiled).to.contain(
122
+ ".scrollbar-test::-webkit-scrollbar-thumb {",
123
+ );
124
+ expect(cssCompiled).to.contain("border-radius: 4px;");
125
+ expect(cssCompiled).to.contain("background-color: #123456;");
126
+ expect(cssCompiled).to.contain(
127
+ ".scrollbar-test::-webkit-scrollbar-corner {",
128
+ );
129
+ // --
130
+ expect(cssCompiled).to.contain(
131
+ "--color-opaque-1: rgba(33.0810810811, 33.0810810811, 33.0810810811, 0.84)",
132
+ );
133
+ expect(cssCompiled).to.contain(
134
+ "--color-opaque-2: rgb(110.5, 110.5, 110.5)",
135
+ );
136
+ expect(cssCompiled).to.contain("--color-opaque-3: #dddddd;");
137
+ // --
138
+ expect(cssCompiled).to.contain("--color-tint-1: rgb(89.25, 89.25, 89.25);");
139
+ expect(cssCompiled).to.contain("--color-tint-2: rgb(229.5, 229.5, 229.5);");
140
+ // --
141
+ expect(cssCompiled).to.contain("--color-shade-1: rgb(25.5, 25.5, 25.5);");
142
+ expect(cssCompiled).to.contain(
143
+ "--color-shade-2: rgb(165.75, 165.75, 165.75);",
144
+ );
145
+ // --
146
+ expect(cssCompiled).to.contain("--color-shift-1: rgb(25.5, 25.5, 25.5);");
147
+ expect(cssCompiled).to.contain(
148
+ "--color-shift-2: rgb(165.75, 165.75, 165.75);",
149
+ );
150
+ expect(cssCompiled).to.contain(
151
+ "--color-shift-3: rgb(89.25, 89.25, 89.25);",
152
+ );
153
+ expect(cssCompiled).to.contain(
154
+ "--color-shift-4: rgb(229.5, 229.5, 229.5);",
155
+ );
156
+ // --
157
+ expect(cssCompiled).to.contain("--color-contrast-1: #fff;");
158
+ expect(cssCompiled).to.contain("--color-contrast-2: #000;");
159
+ // --
160
+ expect(cssCompiled).to.contain("--color-brightness-1: #fff;");
161
+ expect(cssCompiled).to.contain("--color-brightness-2: #000;");
162
+ // --
163
+ expect(cssCompiled).to.contain("--extract-colors-1: 255 255 255;");
164
+ expect(cssCompiled).to.contain("--extract-colors-2: 34 34 34;");
165
+ expect(cssCompiled).to.contain("--extract-colors-3: 221 221 221;");
166
+ expect(cssCompiled).to.contain("--extract-colors-4: 34, 34, 34;");
167
+ expect(cssCompiled).to.contain("--extract-colors-5: 221, 221, 221;");
168
+ expect(cssCompiled).to.contain("--extract-colors-6: 0 255 0;");
169
+ expect(cssCompiled).to.contain("--extract-colors-7: 0 255 0 / 0.5;");
170
+ expect(cssCompiled).to.contain("--extract-colors-8: 0, 255, 0;");
171
+ expect(cssCompiled).to.contain("--extract-colors-9: 0, 255, 0, 0.5;");
172
+ expect(cssCompiled).to.contain("--extract-colors-10: 0 255 0;");
173
+ expect(cssCompiled).to.contain("--extract-colors-11: 0 255 0 / 0.5;");
174
+ expect(cssCompiled).to.contain("--extract-colors-12: 0, 255, 0;");
175
+ expect(cssCompiled).to.contain("--extract-colors-13: 0, 255, 0, 0.5;");
176
+ // --
177
+ expect(cssCompiled).to.contain("--no-null-1: transparent;");
178
+ expect(cssCompiled).to.contain("--no-null-2: blue;");
179
+ // --
180
+ expect(cssCompiled).to.contain("--no-trasparent-1: inherit;");
181
+ expect(cssCompiled).to.contain("--no-trasparent-2: inherit;");
182
+ expect(cssCompiled).to.contain("--no-trasparent-3: #123456;");
183
+ // --
184
+ expect(cssCompiled).to.contain("--map-deep-get: 10px;");
185
+ expect(cssCompiled).to.contain("--color-get: 13 110 253;");
186
+ // --
187
+ expect(cssCompiled).to.contain("--string-split-1: find;");
188
+ expect(cssCompiled).to.contain("--string-split-2: this;");
189
+ expect(cssCompiled).to.contain("--string-split-3: word;");
190
+ expect(cssCompiled).to.contain("--string-ends-with-1: true;");
191
+ expect(cssCompiled).to.contain("--string-ends-with-2: false;");
192
+ // --
193
+ expect(cssCompiled).to.contain("--color-luminance-1: 0%;");
194
+ expect(cssCompiled).to.contain("--color-luminance-2: 100%;");
195
+ expect(cssCompiled).to.contain("--color-luminance-3: 100;");
196
+ // --
197
+ expect(cssCompiled).to.contain(
198
+ "--create-collection-100: 207.6 214.4 221.2;",
199
+ );
200
+ expect(cssCompiled).to.contain("--create-collection-500: 18 52 86;");
201
+ expect(cssCompiled).to.contain("--create-collection-900: 3.6 10.4 17.2;");
202
+ // --
203
+ expect(cssCompiled).to.contain("@media (min-width: 768px) {");
204
+ expect(cssCompiled).to.contain("@media (max-width: 991.98px) {");
205
+ expect(cssCompiled).to.contain(
206
+ "@media (min-width: 576px) and (max-width: 1199.98px) {",
207
+ );
208
+ expect(cssCompiled).to.contain("--breakpoint-md: 768px;");
209
+ expect(cssCompiled).to.contain("--breakpoint-lg-max: 1199.98px;");
210
+ });
211
+ });
package/test/lint.test.js CHANGED
@@ -1,48 +1,43 @@
1
- import { describe, it } from 'mocha';
2
- import { expect } from "chai";
3
- import stylelint from "stylelint";
4
- import path from "path";
5
- import { fileURLToPath } from "url";
6
-
7
-
8
- const __filename = fileURLToPath(import.meta.url);
9
- const __dirname = path.dirname(__filename);
10
-
11
-
12
- describe("LINT", function() {
13
- // to remove timeout error
14
- this.timeout(10000);
15
-
16
- it('Generic linting', async () => {
17
- return stylelint.lint({
18
- configFile: path.join(__dirname, '../.stylelintrc.json'),
19
- ignorePath: path.join(__dirname, '../.stylelintignore'),
20
- files: [
21
- path.join(__dirname, './test.scss'),
22
- ],
23
- })
24
- .then(function ({ errored, report }) {
25
- if(!errored)
26
- return false;
27
- // show me errors
28
- const reportsArray = JSON.parse(report);
29
- for(let i = reportsArray.length; i--; ){
30
- const reportKeys = Object.keys(reportsArray[i]);
31
- for(let k = reportKeys.length; k--; ){
32
- const reportsValues = reportsArray[i][reportKeys[k]];
33
- if(reportsValues.length <= 0)
34
- continue;
35
- if(Array.isArray(reportsValues)){
36
- console.log("-----------" + reportKeys[k] + "-----------");
37
- for(let x = reportsValues.length; x--; )
38
- console.log(reportsValues[x]);
39
- }else{
40
- console.log(reportKeys[k] + ": " + reportsValues);
41
- }
42
- }
43
- }
44
- return true;
45
- })
46
- .then(result => expect(result).to.be.false);
47
- });
48
- });
1
+ import { describe, it } from "mocha";
2
+ import { expect } from "chai";
3
+ import stylelint from "stylelint";
4
+ import path from "path";
5
+ import { fileURLToPath } from "url";
6
+
7
+ const __filename = fileURLToPath(import.meta.url);
8
+ const __dirname = path.dirname(__filename);
9
+
10
+ describe("LINT", function () {
11
+ // to remove timeout error
12
+ this.timeout(10000);
13
+
14
+ it("Generic linting", async () => {
15
+ return stylelint
16
+ .lint({
17
+ configFile: path.join(__dirname, "../.stylelintrc.json"),
18
+ ignorePath: path.join(__dirname, "../.stylelintignore"),
19
+ files: [path.join(__dirname, "./test.scss")],
20
+ })
21
+ .then(function ({ errored, report }) {
22
+ if (!errored) return false;
23
+ // show me errors
24
+ const reportsArray = JSON.parse(report);
25
+ for (let i = reportsArray.length; i--; ) {
26
+ const reportKeys = Object.keys(reportsArray[i]);
27
+ for (let k = reportKeys.length; k--; ) {
28
+ const reportsValues = reportsArray[i][reportKeys[k]];
29
+ if (reportsValues.length <= 0) continue;
30
+ if (Array.isArray(reportsValues)) {
31
+ console.log("-----------" + reportKeys[k] + "-----------");
32
+ for (let x = reportsValues.length; x--; )
33
+ console.log(reportsValues[x]);
34
+ } else {
35
+ console.log(reportKeys[k] + ": " + reportsValues);
36
+ }
37
+ }
38
+ }
39
+ return true;
40
+ })
41
+ .then((result) => expect(result).to.be.false);
42
+ });
43
+ });