@guebbit/css-toolkit 1.3.2 → 1.4.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 (131) hide show
  1. package/LICENSE +661 -661
  2. package/README.md +3 -6
  3. package/docs/.postcssrc.cjs +12 -12
  4. package/docs/.vitepress/cache/deps/_metadata.json +52 -0
  5. package/docs/.vitepress/cache/deps/chunk-GD2PZ323.js +9709 -0
  6. package/docs/.vitepress/cache/deps/chunk-GD2PZ323.js.map +7 -0
  7. package/docs/.vitepress/cache/deps/chunk-LW4I4DCF.js +12542 -0
  8. package/docs/.vitepress/cache/deps/chunk-LW4I4DCF.js.map +7 -0
  9. package/docs/.vitepress/cache/deps/package.json +3 -0
  10. package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +4504 -0
  11. package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +7 -0
  12. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +581 -0
  13. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +7 -0
  14. package/docs/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js +1145 -0
  15. package/docs/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js.map +7 -0
  16. package/docs/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js +1665 -0
  17. package/docs/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js.map +7 -0
  18. package/docs/.vitepress/cache/deps/vitepress___minisearch.js +1839 -0
  19. package/docs/.vitepress/cache/deps/vitepress___minisearch.js.map +7 -0
  20. package/docs/.vitepress/cache/deps/vue.js +343 -0
  21. package/docs/.vitepress/cache/deps/vue.js.map +7 -0
  22. package/docs/.vitepress/config.ts +89 -89
  23. package/docs/.vitepress/dist/404.html +3 -3
  24. package/docs/.vitepress/dist/assets/{app.CBPosL5d.js → app.L5XIc3SO.js} +1 -1
  25. package/docs/.vitepress/dist/assets/chunks/@localSearchIndexroot.BjS_jZ-W.js +1 -0
  26. package/docs/.vitepress/dist/assets/chunks/{VPLocalSearchBox.gSyUO2Y7.js → VPLocalSearchBox.D9sh6SyY.js} +1 -1
  27. package/docs/.vitepress/dist/assets/chunks/{theme.BeEqdqye.js → theme.CNmpkBNC.js} +2 -2
  28. package/docs/.vitepress/dist/assets/colors_bootstrap.md.CoHKBFV-.js +183 -0
  29. package/docs/.vitepress/dist/assets/colors_bootstrap.md.CoHKBFV-.lean.js +1 -0
  30. package/docs/.vitepress/dist/assets/colors_brands.md.D66byFIK.js +34 -0
  31. package/docs/.vitepress/dist/assets/colors_brands.md.D66byFIK.lean.js +1 -0
  32. package/docs/.vitepress/dist/assets/colors_customs.md.BOrXeoM5.js +53 -0
  33. package/docs/.vitepress/dist/assets/colors_customs.md.BOrXeoM5.lean.js +1 -0
  34. package/docs/.vitepress/dist/assets/{functions_colors.md.BsOBqU9L.js → functions_colors.md.-D_m804_.js} +12 -4
  35. package/docs/.vitepress/dist/assets/functions_colors.md.-D_m804_.lean.js +1 -0
  36. package/docs/.vitepress/dist/assets/functions_helpers.md.ByBd49Zv.js +51 -0
  37. package/docs/.vitepress/dist/assets/functions_helpers.md.ByBd49Zv.lean.js +1 -0
  38. package/docs/.vitepress/dist/assets/functions_strings.md.BQe_bdya.js +38 -0
  39. package/docs/.vitepress/dist/assets/functions_strings.md.BQe_bdya.lean.js +1 -0
  40. package/docs/.vitepress/dist/assets/index.md.B1EiZFo_.js +1 -0
  41. package/docs/.vitepress/dist/assets/index.md.B1EiZFo_.lean.js +1 -0
  42. package/docs/.vitepress/dist/assets/mixins_build-aspect-ratio.md.ICFUpBeX.js +39 -0
  43. package/docs/.vitepress/dist/assets/mixins_build-aspect-ratio.md.ICFUpBeX.lean.js +1 -0
  44. package/docs/.vitepress/dist/assets/{mixins_build-compatibility.md.DvZg2OSO.js → mixins_build-compatibility.md.CmlXWpxv.js} +4 -3
  45. package/docs/.vitepress/dist/assets/{mixins_build-scrollbar.md.Bze7PgzU.js → mixins_build-scrollbar.md.hZriM4ET.js} +7 -2
  46. package/docs/.vitepress/dist/assets/mixins_create-colors.md.D6f2BMAy.js +204 -0
  47. package/docs/.vitepress/dist/assets/mixins_create-colors.md.D6f2BMAy.lean.js +1 -0
  48. package/docs/.vitepress/dist/assets/{mixins_create-helper-margin.md.DqwBKQ0G.js → mixins_create-helper-margin.md.CFz5if3z.js} +18 -18
  49. package/docs/.vitepress/dist/assets/mixins_create-helper-margin.md.CFz5if3z.lean.js +1 -0
  50. package/docs/.vitepress/dist/assets/mixins_create-helper-padding.md.Ct06sNMx.js +50 -0
  51. package/docs/.vitepress/dist/assets/mixins_create-helper-padding.md.Ct06sNMx.lean.js +1 -0
  52. package/docs/.vitepress/dist/assets/{mixins_create-instruction.md.BeAIoeQx.js → mixins_create-instruction.md.B0iVQyHl.js} +18 -4
  53. package/docs/.vitepress/dist/colors/bootstrap.html +189 -7
  54. package/docs/.vitepress/dist/colors/brands.html +40 -7
  55. package/docs/.vitepress/dist/colors/customs.html +59 -7
  56. package/docs/.vitepress/dist/functions/colors.html +16 -8
  57. package/docs/.vitepress/dist/functions/helpers.html +57 -7
  58. package/docs/.vitepress/dist/functions/strings.html +44 -7
  59. package/docs/.vitepress/dist/hashmap.json +1 -1
  60. package/docs/.vitepress/dist/index.html +6 -6
  61. package/docs/.vitepress/dist/mixins/build-aspect-ratio.html +45 -7
  62. package/docs/.vitepress/dist/mixins/build-compatibility.html +10 -9
  63. package/docs/.vitepress/dist/mixins/build-scrollbar.html +12 -7
  64. package/docs/.vitepress/dist/mixins/create-colors.html +210 -7
  65. package/docs/.vitepress/dist/mixins/create-helper-margin.html +23 -23
  66. package/docs/.vitepress/dist/mixins/create-helper-padding.html +39 -34
  67. package/docs/.vitepress/dist/mixins/create-instruction.html +24 -10
  68. package/docs/.vitepress/theme/index.js +12 -12
  69. package/docs/colors/bootstrap.md +18 -1
  70. package/docs/colors/brands.md +8 -1
  71. package/docs/colors/customs.md +8 -1
  72. package/docs/functions/colors.md +71 -66
  73. package/docs/functions/helpers.md +15 -1
  74. package/docs/functions/strings.md +13 -1
  75. package/docs/index.md +1 -1
  76. package/docs/logo.svg +55 -55
  77. package/docs/logotype.svg +149 -149
  78. package/docs/mixins/build-aspect-ratio.md +16 -1
  79. package/docs/mixins/build-compatibility.md +24 -23
  80. package/docs/mixins/build-scrollbar.md +21 -19
  81. package/docs/mixins/create-colors.md +16 -1
  82. package/docs/mixins/create-helper-margin.md +21 -25
  83. package/docs/mixins/create-helper-padding.md +21 -24
  84. package/docs/mixins/create-instruction.md +38 -33
  85. package/index.scss +1 -1
  86. package/package.json +67 -61
  87. package/src/colors/_bootstrap.scss +179 -180
  88. package/src/colors/_brands.scss +34 -20
  89. package/src/colors/_customs.scss +53 -53
  90. package/src/colors/_index.scss +200 -200
  91. package/src/functions/_colors.scss +143 -135
  92. package/src/functions/_helpers.scss +51 -44
  93. package/src/functions/_strings.scss +38 -31
  94. package/src/index.scss +14 -14
  95. package/src/mixins/_build-aspect-ratio.scss +37 -37
  96. package/src/mixins/_build-compatibility.scss +40 -39
  97. package/src/mixins/_build-scrollbar.scss +37 -32
  98. package/src/mixins/_create-class.scss +29 -19
  99. package/src/mixins/_create-colors-vars.scss +31 -27
  100. package/src/mixins/_create-colors.scss +202 -155
  101. package/src/mixins/_create-helper-margin.scss +43 -39
  102. package/src/mixins/_create-helper-padding.scss +47 -40
  103. package/test/compile.test.js +197 -132
  104. package/test/lint.test.js +43 -48
  105. package/test/test.css +32 -0
  106. package/test/test.scss +216 -197
  107. package/vite.config.ts +26 -26
  108. package/docs/.vitepress/dist/assets/chunks/@localSearchIndexroot.C6BRpH9I.js +0 -1
  109. package/docs/.vitepress/dist/assets/colors_bootstrap.md.CFg-dNGF.js +0 -1
  110. package/docs/.vitepress/dist/assets/colors_bootstrap.md.CFg-dNGF.lean.js +0 -1
  111. package/docs/.vitepress/dist/assets/colors_brands.md.CUxoS0ml.js +0 -1
  112. package/docs/.vitepress/dist/assets/colors_brands.md.CUxoS0ml.lean.js +0 -1
  113. package/docs/.vitepress/dist/assets/colors_customs.md.CnHhl84q.js +0 -1
  114. package/docs/.vitepress/dist/assets/colors_customs.md.CnHhl84q.lean.js +0 -1
  115. package/docs/.vitepress/dist/assets/functions_colors.md.BsOBqU9L.lean.js +0 -1
  116. package/docs/.vitepress/dist/assets/functions_helpers.md.B3A_IOEL.js +0 -1
  117. package/docs/.vitepress/dist/assets/functions_helpers.md.B3A_IOEL.lean.js +0 -1
  118. package/docs/.vitepress/dist/assets/functions_strings.md.BdV8Kx9J.js +0 -1
  119. package/docs/.vitepress/dist/assets/functions_strings.md.BdV8Kx9J.lean.js +0 -1
  120. package/docs/.vitepress/dist/assets/index.md.Cn1TneoC.js +0 -1
  121. package/docs/.vitepress/dist/assets/index.md.Cn1TneoC.lean.js +0 -1
  122. package/docs/.vitepress/dist/assets/mixins_build-aspect-ratio.md.cD70Q1mW.js +0 -1
  123. package/docs/.vitepress/dist/assets/mixins_build-aspect-ratio.md.cD70Q1mW.lean.js +0 -1
  124. package/docs/.vitepress/dist/assets/mixins_create-colors.md.Bi4iqAHf.js +0 -1
  125. package/docs/.vitepress/dist/assets/mixins_create-colors.md.Bi4iqAHf.lean.js +0 -1
  126. package/docs/.vitepress/dist/assets/mixins_create-helper-margin.md.DqwBKQ0G.lean.js +0 -1
  127. package/docs/.vitepress/dist/assets/mixins_create-helper-padding.md.Br9TOGl1.js +0 -45
  128. package/docs/.vitepress/dist/assets/mixins_create-helper-padding.md.Br9TOGl1.lean.js +0 -1
  129. /package/docs/.vitepress/dist/assets/{mixins_build-compatibility.md.DvZg2OSO.lean.js → mixins_build-compatibility.md.CmlXWpxv.lean.js} +0 -0
  130. /package/docs/.vitepress/dist/assets/{mixins_build-scrollbar.md.Bze7PgzU.lean.js → mixins_build-scrollbar.md.hZriM4ET.lean.js} +0 -0
  131. /package/docs/.vitepress/dist/assets/{mixins_create-instruction.md.BeAIoeQx.lean.js → mixins_create-instruction.md.B0iVQyHl.lean.js} +0 -0
@@ -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,197 @@
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
+
13
+ function sassCompiler() {
14
+ return Promise.resolve(
15
+ sass.compile(path.join(__dirname, "./test.scss"), {
16
+ loadPaths: ["./scss"],
17
+ style: "expanded",
18
+ }).css,
19
+ );
20
+ }
21
+
22
+ describe("COMPILE", function () {
23
+ // to remove timeout error
24
+ this.timeout(10000);
25
+
26
+ it("Should compile", async function () {
27
+ cssCompiled = await sassCompiler();
28
+ // Not necessary, but let's compile the file
29
+ fs.writeFile(path.join(__dirname, "test.css"), cssCompiled, () => {});
30
+ });
31
+
32
+ it("Check some rules", function () {
33
+ // --
34
+ expect(cssCompiled).to.contain(".blue-400-text {");
35
+ expect(cssCompiled).to.contain("color: rgb(61.4, 139, 253.4) !important;");
36
+ expect(cssCompiled).to.contain(".blue-400-bg {");
37
+ expect(cssCompiled).to.contain(
38
+ "background-color: rgb(61.4, 139, 253.4) !important;",
39
+ );
40
+ expect(cssCompiled).to.contain(".blue-400-border {");
41
+ expect(cssCompiled).to.contain(
42
+ "border-color: rgb(61.4, 139, 253.4) !important;",
43
+ );
44
+ expect(cssCompiled).to.contain(
45
+ ".blue-400-pseudo-bg::after, .blue-400-pseudo-bg::before {",
46
+ );
47
+ expect(cssCompiled).to.contain(
48
+ "background-color: rgb(61.4, 139, 253.4) !important;",
49
+ );
50
+ expect(cssCompiled).to.contain(".blue-400-hover-text:hover {");
51
+ expect(cssCompiled).to.contain(".blue-400-hover-bg:hover {");
52
+ expect(cssCompiled).to.contain(".blue-400-hover-border:hover {");
53
+ expect(cssCompiled).to.contain(
54
+ ".blue-400-hover-pseudo-bg:hover::after, .blue-400-hover-pseudo-bg:hover::before {",
55
+ );
56
+ // --
57
+ expect(cssCompiled).to.contain(".primary-500-text {");
58
+ expect(cssCompiled).to.contain(
59
+ "color: var(--g-theme-primary-500) !important;",
60
+ );
61
+ expect(cssCompiled).to.contain(".primary-500-bg {");
62
+ expect(cssCompiled).to.contain(
63
+ "background-color: var(--g-theme-primary-500) !important;",
64
+ );
65
+ expect(cssCompiled).to.contain(".primary-500-border {");
66
+ expect(cssCompiled).to.contain(
67
+ "border-color: var(--g-theme-primary-500) !important;",
68
+ );
69
+ expect(cssCompiled).to.contain(
70
+ ".primary-500-pseudo-bg::after, .primary-500-pseudo-bg::before {",
71
+ );
72
+ expect(cssCompiled).to.contain(".primary-500-hover-text:hover {");
73
+ expect(cssCompiled).to.contain(".primary-500-hover-bg:hover {");
74
+ expect(cssCompiled).to.contain(".primary-500-hover-border:hover {");
75
+ expect(cssCompiled).to.contain(
76
+ ".primary-500-hover-pseudo-bg:hover::after, .primary-500-hover-pseudo-bg:hover::before {",
77
+ );
78
+ // --
79
+ expect(cssCompiled).to.contain("--g-theme-primary-500: 255 0 255;");
80
+ expect(cssCompiled).to.contain("--g-theme-on-primary-500: 255 255 255;");
81
+ expect(cssCompiled).to.contain("--blue-400: 61.4 139 253.4;");
82
+ expect(cssCompiled).to.contain("--on-blue-400: 0 0 0;");
83
+ expect(cssCompiled).to.contain("--manga-red-500: 212 24 22;");
84
+ expect(cssCompiled).to.contain(
85
+ "--gradient-brand-instagram: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);",
86
+ );
87
+ expect(cssCompiled).to.contain(".text-align-right {");
88
+ expect(cssCompiled).to.contain("text-align: right !important;");
89
+
90
+ expect(cssCompiled).to.contain(".mt-auto {");
91
+ expect(cssCompiled).to.contain("margin-top: auto;");
92
+ expect(cssCompiled).to.contain(".my-48 {");
93
+ expect(cssCompiled).to.contain("margin-top: 48px;");
94
+ expect(cssCompiled).to.contain("margin-bottom: 48px;");
95
+ expect(cssCompiled).to.contain(".width-100 {");
96
+ expect(cssCompiled).to.contain("width: 100% !important;");
97
+ expect(cssCompiled).to.contain(".flex-gap-24 {");
98
+ expect(cssCompiled).to.contain("gap: 24px !important;");
99
+ // -
100
+ expect(cssCompiled).to.contain(".aspect-ratio-1-1::before {");
101
+ expect(cssCompiled).to.contain("padding-top: 100%;");
102
+ expect(cssCompiled).to.contain(".aspect-ratio-16-9::before {");
103
+ expect(cssCompiled).to.contain("padding-top: 56%;");
104
+ // -
105
+ expect(cssCompiled).to.contain(
106
+ "@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {",
107
+ );
108
+ expect(cssCompiled).to.contain("@supports (-ms-ime-align: auto) {");
109
+ expect(cssCompiled).to.contain("@supports (-moz-appearance: none) {");
110
+ // --
111
+ expect(cssCompiled).to.contain(".scrollbar-test::-webkit-scrollbar {");
112
+ expect(cssCompiled).to.contain("width: 8px;");
113
+ expect(cssCompiled).to.contain("height: 8px;");
114
+ expect(cssCompiled).to.contain("background-color: #abcdef;");
115
+ expect(cssCompiled).to.contain(
116
+ ".scrollbar-test::-webkit-scrollbar-thumb {",
117
+ );
118
+ expect(cssCompiled).to.contain("border-radius: 4px;");
119
+ expect(cssCompiled).to.contain("background-color: #123456;");
120
+ expect(cssCompiled).to.contain(
121
+ ".scrollbar-test::-webkit-scrollbar-corner {",
122
+ );
123
+ // --
124
+ expect(cssCompiled).to.contain(
125
+ "--color-opaque-1: rgba(33.0810810811, 33.0810810811, 33.0810810811, 0.84)",
126
+ );
127
+ expect(cssCompiled).to.contain(
128
+ "--color-opaque-2: rgb(110.5, 110.5, 110.5)",
129
+ );
130
+ expect(cssCompiled).to.contain("--color-opaque-3: #dddddd;");
131
+ // --
132
+ expect(cssCompiled).to.contain("--color-tint-1: rgb(89.25, 89.25, 89.25);");
133
+ expect(cssCompiled).to.contain("--color-tint-2: rgb(229.5, 229.5, 229.5);");
134
+ // --
135
+ expect(cssCompiled).to.contain("--color-shade-1: rgb(25.5, 25.5, 25.5);");
136
+ expect(cssCompiled).to.contain(
137
+ "--color-shade-2: rgb(165.75, 165.75, 165.75);",
138
+ );
139
+ // --
140
+ expect(cssCompiled).to.contain("--color-shift-1: rgb(25.5, 25.5, 25.5);");
141
+ expect(cssCompiled).to.contain(
142
+ "--color-shift-2: rgb(165.75, 165.75, 165.75);",
143
+ );
144
+ expect(cssCompiled).to.contain(
145
+ "--color-shift-3: rgb(89.25, 89.25, 89.25);",
146
+ );
147
+ expect(cssCompiled).to.contain(
148
+ "--color-shift-4: rgb(229.5, 229.5, 229.5);",
149
+ );
150
+ // --
151
+ expect(cssCompiled).to.contain("--color-contrast-1: #fff;");
152
+ expect(cssCompiled).to.contain("--color-contrast-2: #000;");
153
+ // --
154
+ expect(cssCompiled).to.contain("--color-brightness-1: #fff;");
155
+ expect(cssCompiled).to.contain("--color-brightness-2: #000;");
156
+ // --
157
+ expect(cssCompiled).to.contain("--extract-colors-1: 255 255 255;");
158
+ expect(cssCompiled).to.contain("--extract-colors-2: 34 34 34;");
159
+ expect(cssCompiled).to.contain("--extract-colors-3: 221 221 221;");
160
+ expect(cssCompiled).to.contain("--extract-colors-4: 34, 34, 34;");
161
+ expect(cssCompiled).to.contain("--extract-colors-5: 221, 221, 221;");
162
+ expect(cssCompiled).to.contain("--extract-colors-6: 0 255 0;");
163
+ expect(cssCompiled).to.contain("--extract-colors-7: 0 255 0 / 0.5;");
164
+ expect(cssCompiled).to.contain("--extract-colors-8: 0, 255, 0;");
165
+ expect(cssCompiled).to.contain("--extract-colors-9: 0, 255, 0, 0.5;");
166
+ expect(cssCompiled).to.contain("--extract-colors-10: 0 255 0;");
167
+ expect(cssCompiled).to.contain("--extract-colors-11: 0 255 0 / 0.5;");
168
+ expect(cssCompiled).to.contain("--extract-colors-12: 0, 255, 0;");
169
+ expect(cssCompiled).to.contain("--extract-colors-13: 0, 255, 0, 0.5;");
170
+ // --
171
+ expect(cssCompiled).to.contain("--no-null-1: transparent;");
172
+ expect(cssCompiled).to.contain("--no-null-2: blue;");
173
+ // --
174
+ expect(cssCompiled).to.contain("--no-trasparent-1: inherit;");
175
+ expect(cssCompiled).to.contain("--no-trasparent-2: inherit;");
176
+ expect(cssCompiled).to.contain("--no-trasparent-3: #123456;");
177
+ // --
178
+ expect(cssCompiled).to.contain("--map-deep-get: 10px;");
179
+ expect(cssCompiled).to.contain("--color-get: 13 110 253;");
180
+ // --
181
+ expect(cssCompiled).to.contain("--string-split-1: find;");
182
+ expect(cssCompiled).to.contain("--string-split-2: this;");
183
+ expect(cssCompiled).to.contain("--string-split-3: word;");
184
+ expect(cssCompiled).to.contain("--string-ends-with-1: true;");
185
+ expect(cssCompiled).to.contain("--string-ends-with-2: false;");
186
+ // --
187
+ expect(cssCompiled).to.contain("--color-luminance-1: 0%;");
188
+ expect(cssCompiled).to.contain("--color-luminance-2: 100%;");
189
+ expect(cssCompiled).to.contain("--color-luminance-3: 100;");
190
+ // --
191
+ expect(cssCompiled).to.contain(
192
+ "--create-collection-100: 207.6 214.4 221.2;",
193
+ );
194
+ expect(cssCompiled).to.contain("--create-collection-500: 18 52 86;");
195
+ expect(cssCompiled).to.contain("--create-collection-900: 3.6 10.4 17.2;");
196
+ });
197
+ });
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
+ });
package/test/test.css CHANGED
@@ -50,6 +50,10 @@
50
50
  * @parameter {Variable} $map [null] - pass in map to be evaluated
51
51
  * @parameter {Variable} $keys [null] - pass in keys to be evaluated
52
52
  */
53
+ /**
54
+ * Read a color value from a 2-level color map collection
55
+ * Example: color-get($colors-collection, "blue", "500")
56
+ */
53
57
  /**
54
58
  Split string into lists
55
59
  */
@@ -6139,6 +6143,22 @@
6139
6143
  }
6140
6144
  }
6141
6145
 
6146
+ .scrollbar-test::-webkit-scrollbar {
6147
+ width: 8px;
6148
+ height: 8px;
6149
+ background-color: transparent;
6150
+ background-color: #abcdef;
6151
+ }
6152
+ .scrollbar-test::-webkit-scrollbar-thumb {
6153
+ border-radius: 4px;
6154
+ background-color: #fff;
6155
+ background-color: #123456;
6156
+ }
6157
+ .scrollbar-test::-webkit-scrollbar-corner {
6158
+ background-color: transparent;
6159
+ background-color: #abcdef;
6160
+ }
6161
+
6142
6162
  :root {
6143
6163
  --color-opaque-1: rgba(33.0810810811, 33.0810810811, 33.0810810811, 0.84);
6144
6164
  --color-opaque-2: rgb(110.5, 110.5, 110.5);
@@ -6174,4 +6194,16 @@
6174
6194
  --no-trasparent-2: inherit;
6175
6195
  --no-trasparent-3: #123456;
6176
6196
  --map-deep-get: 10px;
6197
+ --color-get: 13 110 253;
6198
+ --string-split-1: find;
6199
+ --string-split-2: this;
6200
+ --string-split-3: word;
6201
+ --string-ends-with-1: true;
6202
+ --string-ends-with-2: false;
6203
+ --color-luminance-1: 0%;
6204
+ --color-luminance-2: 100%;
6205
+ --color-luminance-3: 100;
6206
+ --create-collection-100: 207.6 214.4 221.2;
6207
+ --create-collection-500: 18 52 86;
6208
+ --create-collection-900: 3.6 10.4 17.2;
6177
6209
  }