@shohojdhara/atomix 0.6.7 → 0.6.8

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 (34) hide show
  1. package/dist/atomix.css +3002 -252
  2. package/dist/atomix.css.map +1 -1
  3. package/dist/atomix.min.css +1 -1
  4. package/dist/atomix.min.css.map +1 -1
  5. package/package.json +21 -1
  6. package/src/styles/01-settings/_settings.design-tokens.scss +4 -0
  7. package/src/styles/01-settings/_settings.grid.scss +53 -0
  8. package/src/styles/01-settings/_settings.motion.scss +50 -0
  9. package/src/styles/01-settings/_settings.spacing.scss +13 -1
  10. package/src/styles/01-settings/_settings.typography.scss +5 -1
  11. package/src/styles/02-tools/_tools.map-loop.scss +19 -0
  12. package/src/styles/02-tools/_tools.utility-api.scss +57 -53
  13. package/src/styles/99-utilities/_index.core.scss +24 -0
  14. package/src/styles/99-utilities/_index.grid.scss +3 -0
  15. package/src/styles/99-utilities/_index.interaction.scss +3 -0
  16. package/src/styles/99-utilities/_index.motion.scss +5 -0
  17. package/src/styles/99-utilities/_index.scss +5 -0
  18. package/src/styles/99-utilities/_utilities.core.scss +44 -0
  19. package/src/styles/99-utilities/_utilities.generate-grid.scss +7 -0
  20. package/src/styles/99-utilities/_utilities.generate-interaction.scss +7 -0
  21. package/src/styles/99-utilities/_utilities.generate-motion.scss +15 -0
  22. package/src/styles/99-utilities/_utilities.grid.scss +55 -0
  23. package/src/styles/99-utilities/_utilities.interaction.scss +44 -0
  24. package/src/styles/99-utilities/_utilities.link.scss +3 -3
  25. package/src/styles/99-utilities/_utilities.position.scss +15 -0
  26. package/src/styles/99-utilities/_utilities.scss +10 -0
  27. package/src/styles/99-utilities/_utilities.sizes.scss +0 -4
  28. package/src/styles/99-utilities/_utilities.spacing.scss +3 -3
  29. package/src/styles/99-utilities/_utilities.state.scss +64 -0
  30. package/src/styles/99-utilities/_utilities.text-gradient.scss +26 -37
  31. package/src/styles/99-utilities/_utilities.text.scss +0 -11
  32. package/src/styles/99-utilities/_utilities.transform.scss +15 -0
  33. package/src/styles/99-utilities/_utilities.transition.scss +20 -0
  34. package/src/styles/__tests__/utilities-compile.test.ts +37 -0
@@ -22,6 +22,11 @@
22
22
  @use 'utilities.text-gradient' as textGradient;
23
23
  @use 'utilities.visibility' as visibility;
24
24
  @use 'utilities.z-index' as z-index;
25
+ @use 'utilities.grid' as grid;
26
+ @use 'utilities.interaction' as interaction;
27
+ @use 'utilities.transition' as transition;
28
+ @use 'utilities.transform' as transform;
29
+ @use 'utilities.state' as state;
25
30
 
26
31
  // Merge all utility maps
27
32
  $utilities: ();
@@ -42,6 +47,11 @@ $utilities: map.merge($utilities, text.$utilities-text);
42
47
  $utilities: map.merge($utilities, visibility.$utilities-visibility);
43
48
  $utilities: map.merge($utilities, z-index.$utilities-z-index);
44
49
  $utilities: map.merge($utilities, textGradient.$utilities-text-gradient);
50
+ $utilities: map.merge($utilities, grid.$utilities-grid);
51
+ $utilities: map.merge($utilities, interaction.$utilities-interaction);
52
+ $utilities: map.merge($utilities, transition.$utilities-transition);
53
+ $utilities: map.merge($utilities, transform.$utilities-transform);
54
+ $utilities: map.merge($utilities, state.$utilities-state);
45
55
 
46
56
  // Generate all utility classes
47
57
  @include util-api.generate-utilities($utilities, breakpoints.$grid-breakpoints);
@@ -10,8 +10,6 @@ $utilities-sizes: (
10
10
  values: map.merge(
11
11
  $spacing-sizes,
12
12
  (
13
- 5: 5%,
14
- 10: 10%,
15
13
  25: 25%,
16
14
  50: 50%,
17
15
  75: 75%,
@@ -63,8 +61,6 @@ $utilities-sizes: (
63
61
  values: map.merge(
64
62
  $spacing-sizes,
65
63
  (
66
- 5: 5%,
67
- 10: 10%,
68
64
  25: 25%,
69
65
  50: 50%,
70
66
  75: 75%,
@@ -178,18 +178,18 @@ $utilities-spacing: (
178
178
  responsive: true,
179
179
  property: gap,
180
180
  class: u-gap,
181
- values: $spacing-sizes,
181
+ values: map.merge($spacing-sizes, $semantic-gap-sizes),
182
182
  ),
183
183
  'row-gap': (
184
184
  responsive: true,
185
185
  property: row-gap,
186
186
  class: u-row-gap,
187
- values: $spacing-sizes,
187
+ values: map.merge($spacing-sizes, $semantic-gap-sizes),
188
188
  ),
189
189
  'column-gap': (
190
190
  responsive: true,
191
191
  property: column-gap,
192
192
  class: u-column-gap,
193
- values: $spacing-sizes,
193
+ values: map.merge($spacing-sizes, $semantic-gap-sizes),
194
194
  ),
195
195
  );
@@ -0,0 +1,64 @@
1
+ @use 'sass:map';
2
+ @use '../01-settings/settings.design-tokens' as color-maps;
3
+ @use '../01-settings/settings.box-shadow' as shadows;
4
+
5
+ // State-variant utilities (hover, focus, active) using pseudo-class wrapping
6
+ $utilities-state: (
7
+ 'hover-background-color': (
8
+ property: background-color,
9
+ class: u-hover-bg,
10
+ pseudo: hover,
11
+ responsive: false,
12
+ values: color-maps.$utilities-bg-colors,
13
+ ),
14
+ 'hover-color': (
15
+ property: color,
16
+ class: u-hover-text,
17
+ pseudo: hover,
18
+ responsive: false,
19
+ values: color-maps.$utilities-text-colors,
20
+ ),
21
+ 'hover-box-shadow': (
22
+ property: box-shadow,
23
+ class: u-hover-shadow,
24
+ pseudo: hover,
25
+ responsive: false,
26
+ values: (
27
+ sm: shadows.$box-shadow-sm,
28
+ md: shadows.$box-shadow-md,
29
+ lg: shadows.$box-shadow-lg,
30
+ xl: shadows.$box-shadow-xl,
31
+ ),
32
+ ),
33
+ 'hover-transform-scale': (
34
+ property: transform,
35
+ class: u-hover-scale,
36
+ pseudo: hover,
37
+ responsive: false,
38
+ values: (
39
+ 95: scale(0.95),
40
+ 100: scale(1),
41
+ 105: scale(1.05),
42
+ 110: scale(1.1),
43
+ ),
44
+ ),
45
+ 'active-transform-scale': (
46
+ property: transform,
47
+ class: u-active-scale,
48
+ pseudo: active,
49
+ responsive: false,
50
+ values: (
51
+ 95: scale(0.95),
52
+ 100: scale(1),
53
+ ),
54
+ ),
55
+ 'focus-outline': (
56
+ property: outline,
57
+ class: u-focus-outline,
58
+ pseudo: focus-visible,
59
+ responsive: false,
60
+ values: (
61
+ none: none,
62
+ ),
63
+ ),
64
+ );
@@ -1,45 +1,34 @@
1
1
  // Text gradient utilities - requires special CSS properties
2
2
  // These utilities apply gradient colors to text using background-clip technique
3
- // Using utility generator system with advanced best practices
4
3
 
5
- @use 'sass:map';
6
4
  @use '../01-settings/settings.design-tokens' as *;
7
5
 
8
- // Define utilities for text gradients
9
- $utilities-text-gradient: (
10
- // Base text gradient utility - applies the core text gradient properties
11
- 'text-gradient': (
12
- property: null,
13
- // No specific CSS property, we're only using local-vars
14
- class: u-text-gradient,
15
- values: (
16
- null: null,
17
- ),
18
- local-vars: (
19
- 'background-clip': text,
20
- '-webkit-background-clip': text,
21
- '-webkit-text-fill-color': transparent,
22
- ),
23
- ),
6
+ // Base clip properties shared by all text-gradient variants
7
+ .u-text-gradient {
8
+ background-clip: text;
9
+ -webkit-background-clip: text;
10
+ -webkit-text-fill-color: transparent;
11
+ }
24
12
 
25
- // Text gradient color variations using existing CSS gradient tokens
13
+ // Define utilities for text gradient color variants
14
+ $utilities-text-gradient: (
26
15
  'text-gradient-colors': (
27
- property: background-image,
28
- class: u-text-gradient,
29
- values: (
30
- primary: var(--atomix-primary-gradient),
31
- secondary: var(--atomix-secondary-gradient),
32
- success: var(--atomix-success-gradient),
33
- warning: var(--atomix-warning-gradient),
34
- error: var(--atomix-error-gradient),
35
- info: var(--atomix-info-gradient),
36
- light: var(--atomix-light-gradient),
37
- dark: var(--atomix-dark-gradient),
38
- ),
39
- local-vars: (
40
- 'background-clip': text,
41
- '-webkit-background-clip': text,
42
- '-webkit-text-fill-color': transparent,
43
- ),
44
- )
16
+ property: background-image,
17
+ class: u-text-gradient,
18
+ values: (
19
+ primary: var(--atomix-primary-gradient),
20
+ secondary: var(--atomix-secondary-gradient),
21
+ success: var(--atomix-success-gradient),
22
+ warning: var(--atomix-warning-gradient),
23
+ error: var(--atomix-error-gradient),
24
+ info: var(--atomix-info-gradient),
25
+ light: var(--atomix-light-gradient),
26
+ dark: var(--atomix-dark-gradient),
27
+ ),
28
+ local-vars: (
29
+ 'background-clip': text,
30
+ '-webkit-background-clip': text,
31
+ '-webkit-text-fill-color': transparent,
32
+ ),
33
+ ),
45
34
  );
@@ -7,22 +7,11 @@
7
7
  // Define utilities for text
8
8
  $utilities-text: (
9
9
  'font-size': (
10
- rfs: true,
11
10
  property: font-size,
12
11
  class: u-text,
13
12
  values: map.merge(
14
13
  color-maps.$font-sizes-extended,
15
14
  (
16
- xs: map.get(color-maps.$font-sizes-extended, 'xs'),
17
- sm: map.get(color-maps.$font-sizes-extended, 'sm'),
18
- base: map.get(color-maps.$font-sizes-extended, 'base'),
19
- lg: map.get(color-maps.$font-sizes-extended, 'lg'),
20
- xl: map.get(color-maps.$font-sizes-extended, 'xl'),
21
- '2xl': map.get(color-maps.$font-sizes-extended, '2xl'),
22
- '3xl': map.get(color-maps.$font-sizes-extended, '3xl'),
23
- '4xl': map.get(color-maps.$font-sizes-extended, '4xl'),
24
- '5xl': map.get(color-maps.$font-sizes-extended, '5xl'),
25
- '6xl': map.get(color-maps.$font-sizes-extended, '6xl'),
26
15
  1: map.get(color-maps.$font-sizes-extended, 'h1'),
27
16
  2: map.get(color-maps.$font-sizes-extended, 'h2'),
28
17
  3: map.get(color-maps.$font-sizes-extended, 'h3'),
@@ -0,0 +1,15 @@
1
+ @use '../01-settings/settings.motion' as motion;
2
+
3
+ // Define utilities for CSS transforms
4
+ $utilities-transform: (
5
+ 'transform': (
6
+ property: transform,
7
+ class: u-scale,
8
+ values: motion.$utility-transform-scales,
9
+ ),
10
+ 'transform-rotate': (
11
+ property: transform,
12
+ class: u-rotate,
13
+ values: motion.$utility-transform-rotates,
14
+ ),
15
+ );
@@ -0,0 +1,20 @@
1
+ @use '../01-settings/settings.motion' as motion;
2
+
3
+ // Define utilities for CSS transitions
4
+ $utilities-transition: (
5
+ 'transition-property': (
6
+ property: transition-property,
7
+ class: u-transition,
8
+ values: motion.$utility-transition-properties,
9
+ ),
10
+ 'transition-duration': (
11
+ property: transition-duration,
12
+ class: u-duration,
13
+ values: motion.$utility-transition-durations,
14
+ ),
15
+ 'transition-timing-function': (
16
+ property: transition-timing-function,
17
+ class: u-ease,
18
+ values: motion.$utility-transition-timing-functions,
19
+ ),
20
+ );
@@ -0,0 +1,37 @@
1
+ import { execSync } from 'node:child_process';
2
+ import { mkdtempSync, rmSync } from 'node:fs';
3
+ import { tmpdir } from 'node:os';
4
+ import { dirname, join, resolve } from 'node:path';
5
+ import { fileURLToPath } from 'node:url';
6
+ import { describe, expect, it } from 'vitest';
7
+
8
+ const projectRoot = resolve(dirname(fileURLToPath(import.meta.url)), '../../..');
9
+
10
+ const utilityBundles = [
11
+ 'src/styles/99-utilities/_index.scss',
12
+ 'src/styles/99-utilities/_index.core.scss',
13
+ 'src/styles/99-utilities/_index.grid.scss',
14
+ 'src/styles/99-utilities/_index.interaction.scss',
15
+ 'src/styles/99-utilities/_index.motion.scss',
16
+ ] as const;
17
+
18
+ function compileUtilityBundle(entry: string): void {
19
+ const tempDir = mkdtempSync(join(tmpdir(), 'atomix-utilities-'));
20
+ const outputFile = join(tempDir, 'out.css');
21
+
22
+ try {
23
+ execSync(`npx sass "${entry}" "${outputFile}"`, {
24
+ cwd: projectRoot,
25
+ stdio: 'pipe',
26
+ encoding: 'utf8',
27
+ });
28
+ } finally {
29
+ rmSync(tempDir, { recursive: true, force: true });
30
+ }
31
+ }
32
+
33
+ describe('utility SCSS bundles', () => {
34
+ it.each(utilityBundles)('compiles %s without errors', (entry) => {
35
+ expect(() => compileUtilityBundle(entry)).not.toThrow();
36
+ });
37
+ });