@shohojdhara/atomix 0.3.14 → 0.3.15

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 (173) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/build-tools/EXAMPLES.md +372 -0
  3. package/build-tools/README.md +242 -0
  4. package/build-tools/__tests__/error-handler.test.js +230 -0
  5. package/build-tools/__tests__/index.test.js +141 -0
  6. package/build-tools/__tests__/rollup-plugin.test.js +194 -0
  7. package/build-tools/__tests__/utils.test.js +161 -0
  8. package/build-tools/__tests__/vite-plugin.test.js +129 -0
  9. package/build-tools/__tests__/webpack-loader.test.js +190 -0
  10. package/build-tools/error-handler.js +308 -0
  11. package/build-tools/index.d.ts +43 -0
  12. package/build-tools/index.js +88 -0
  13. package/build-tools/package.json +67 -0
  14. package/build-tools/rollup-plugin.js +236 -0
  15. package/build-tools/types.d.ts +163 -0
  16. package/build-tools/utils.js +203 -0
  17. package/build-tools/vite-plugin.js +161 -0
  18. package/build-tools/webpack-loader.js +123 -0
  19. package/dist/atomix.css +203 -90
  20. package/dist/atomix.css.map +1 -1
  21. package/dist/atomix.min.css +3 -3
  22. package/dist/atomix.min.css.map +1 -1
  23. package/dist/build-tools/EXAMPLES.md +372 -0
  24. package/dist/build-tools/README.md +242 -0
  25. package/dist/build-tools/__tests__/error-handler.test.js +230 -0
  26. package/dist/build-tools/__tests__/index.test.js +141 -0
  27. package/dist/build-tools/__tests__/rollup-plugin.test.js +194 -0
  28. package/dist/build-tools/__tests__/utils.test.js +161 -0
  29. package/dist/build-tools/__tests__/vite-plugin.test.js +129 -0
  30. package/dist/build-tools/__tests__/webpack-loader.test.js +190 -0
  31. package/dist/build-tools/error-handler.js +308 -0
  32. package/dist/build-tools/index.d.ts +43 -0
  33. package/dist/build-tools/index.js +88 -0
  34. package/dist/build-tools/package.json +67 -0
  35. package/dist/build-tools/rollup-plugin.js +236 -0
  36. package/dist/build-tools/types.d.ts +163 -0
  37. package/dist/build-tools/utils.js +203 -0
  38. package/dist/build-tools/vite-plugin.js +161 -0
  39. package/dist/build-tools/webpack-loader.js +123 -0
  40. package/dist/charts.d.ts +1 -1
  41. package/dist/charts.js +86 -57
  42. package/dist/charts.js.map +1 -1
  43. package/dist/core.d.ts +1 -1
  44. package/dist/core.js +136 -112
  45. package/dist/core.js.map +1 -1
  46. package/dist/forms.d.ts +2 -5
  47. package/dist/forms.js +140 -128
  48. package/dist/forms.js.map +1 -1
  49. package/dist/heavy.d.ts +1 -1
  50. package/dist/heavy.js +136 -112
  51. package/dist/heavy.js.map +1 -1
  52. package/dist/index.d.ts +9 -61
  53. package/dist/index.esm.js +237 -286
  54. package/dist/index.esm.js.map +1 -1
  55. package/dist/index.js +250 -299
  56. package/dist/index.js.map +1 -1
  57. package/dist/index.min.js +1 -1
  58. package/dist/index.min.js.map +1 -1
  59. package/package.json +23 -8
  60. package/scripts/atomix-cli.js +170 -73
  61. package/scripts/cli/__tests__/README.md +81 -0
  62. package/scripts/cli/__tests__/basic.test.js +115 -0
  63. package/scripts/cli/__tests__/component-generator.test.js +332 -0
  64. package/scripts/cli/__tests__/integration.test.js +327 -0
  65. package/scripts/cli/__tests__/test-setup.js +133 -0
  66. package/scripts/cli/__tests__/token-manager.test.js +251 -0
  67. package/scripts/cli/__tests__/utils.test.js +161 -0
  68. package/scripts/cli/component-generator.js +253 -299
  69. package/scripts/cli/dependency-checker.js +355 -0
  70. package/scripts/cli/interactive-init.js +46 -5
  71. package/scripts/cli/template-manager.js +0 -2
  72. package/scripts/cli/templates/common-templates.js +636 -0
  73. package/scripts/cli/templates/composable-templates.js +148 -126
  74. package/scripts/cli/templates/index.js +23 -16
  75. package/scripts/cli/templates/project-templates.js +151 -23
  76. package/scripts/cli/templates/react-templates.js +280 -210
  77. package/scripts/cli/templates/scss-templates.js +90 -91
  78. package/scripts/cli/templates/testing-templates.js +206 -27
  79. package/scripts/cli/templates/testing-utils.js +278 -0
  80. package/scripts/cli/templates/types-templates.js +70 -56
  81. package/scripts/cli/theme-bridge.js +8 -2
  82. package/scripts/cli/token-manager.js +318 -206
  83. package/scripts/cli/utils.js +0 -1
  84. package/src/components/Accordion/Accordion.stories.tsx +369 -870
  85. package/src/components/AtomixGlass/AtomixGlass.tsx +80 -39
  86. package/src/components/AtomixGlass/AtomixGlassContainer.tsx +103 -81
  87. package/src/components/AtomixGlass/__snapshots__/AtomixGlass.test.tsx.snap +8 -7
  88. package/src/components/AtomixGlass/glass-utils.ts +2 -2
  89. package/src/components/AtomixGlass/shader-utils.ts +5 -0
  90. package/src/components/AtomixGlass/stories/Customization.stories.tsx +131 -0
  91. package/src/components/AtomixGlass/stories/Examples.stories.tsx +2957 -2853
  92. package/src/components/AtomixGlass/stories/Modes.stories.tsx +1 -1
  93. package/src/components/AtomixGlass/stories/Overview.stories.tsx +348 -0
  94. package/src/components/AtomixGlass/stories/Performance.stories.tsx +103 -0
  95. package/src/components/AtomixGlass/stories/Playground.stories.tsx +50 -35
  96. package/src/components/AtomixGlass/stories/{ShaderVariants.stories.tsx → Shaders.stories.tsx} +1 -1
  97. package/src/components/AtomixGlass/stories/shared-components.tsx +90 -190
  98. package/src/components/Avatar/Avatar.stories.tsx +213 -1
  99. package/src/components/Badge/Badge.stories.tsx +121 -362
  100. package/src/components/Block/Block.stories.tsx +21 -12
  101. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +141 -23
  102. package/src/components/Button/Button.stories.tsx +463 -1126
  103. package/src/components/Button/Button.test.tsx +107 -0
  104. package/src/components/Button/Button.tsx +46 -50
  105. package/src/components/Button/ButtonGroup.stories.tsx +373 -217
  106. package/src/components/Callout/Callout.stories.tsx +289 -634
  107. package/src/components/Card/Card.stories.tsx +248 -68
  108. package/src/components/Chart/Chart.stories.tsx +150 -8
  109. package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +151 -69
  110. package/src/components/Countdown/Countdown.stories.tsx +115 -8
  111. package/src/components/DataTable/DataTable.stories.tsx +346 -146
  112. package/src/components/DatePicker/DatePicker.stories.tsx +325 -1066
  113. package/src/components/Dropdown/Dropdown.stories.tsx +153 -33
  114. package/src/components/EdgePanel/EdgePanel.stories.tsx +230 -21
  115. package/src/components/Footer/Footer.stories.tsx +392 -328
  116. package/src/components/Form/Checkbox.stories.tsx +140 -6
  117. package/src/components/Form/Checkbox.test.tsx +63 -0
  118. package/src/components/Form/Checkbox.tsx +87 -51
  119. package/src/components/Form/Form.stories.tsx +119 -20
  120. package/src/components/Form/FormGroup.stories.tsx +127 -4
  121. package/src/components/Form/Radio.stories.tsx +140 -5
  122. package/src/components/Form/Select.stories.tsx +140 -8
  123. package/src/components/Form/Textarea.stories.tsx +149 -6
  124. package/src/components/Hero/Hero.stories.tsx +333 -32
  125. package/src/components/List/List.stories.tsx +141 -3
  126. package/src/components/Modal/Modal.stories.tsx +181 -42
  127. package/src/components/Popover/Popover.stories.tsx +448 -98
  128. package/src/components/Progress/Progress.stories.tsx +167 -5
  129. package/src/components/River/River.stories.tsx +1 -1
  130. package/src/components/SectionIntro/SectionIntro.stories.tsx +240 -48
  131. package/src/components/Spinner/Spinner.stories.tsx +102 -8
  132. package/src/components/Steps/Steps.stories.tsx +172 -43
  133. package/src/components/Tabs/Tabs.stories.tsx +136 -10
  134. package/src/components/Testimonial/Testimonial.stories.tsx +120 -3
  135. package/src/components/Todo/Todo.stories.tsx +198 -9
  136. package/src/components/Toggle/Toggle.stories.tsx +126 -39
  137. package/src/components/Tooltip/Tooltip.stories.tsx +194 -104
  138. package/src/components/Upload/Upload.stories.tsx +113 -24
  139. package/src/lib/README.md +2 -2
  140. package/src/lib/__tests__/theme-tools.test.ts +193 -0
  141. package/src/lib/composables/index.ts +2 -2
  142. package/src/lib/composables/useAtomixGlass.ts +28 -56
  143. package/src/lib/composables/useChartExport.ts +2 -7
  144. package/src/lib/composables/useDataTable.ts +46 -29
  145. package/src/lib/constants/components.ts +9 -32
  146. package/src/lib/theme/devtools/CLI.ts +1 -1
  147. package/src/lib/types/components.ts +1 -1
  148. package/src/lib/utils/__tests__/csv.test.ts +45 -0
  149. package/src/lib/utils/csv.ts +17 -0
  150. package/src/lib/utils/dataTableExport.ts +1 -10
  151. package/src/styles/01-settings/_index.scss +2 -1
  152. package/src/styles/01-settings/_settings.accordion.scss +28 -7
  153. package/src/styles/01-settings/_settings.colors.scss +11 -11
  154. package/src/styles/01-settings/_settings.typography.scss +5 -5
  155. package/src/styles/02-tools/_tools.utility-api.scss +14 -0
  156. package/src/styles/06-components/_components.accordion.scss +56 -14
  157. package/src/styles/06-components/_components.checkbox.scss +23 -17
  158. package/src/styles/99-utilities/_index.scss +2 -0
  159. package/src/styles/99-utilities/_utilities.scss +3 -1
  160. package/src/styles/99-utilities/_utilities.text-gradient.scss +45 -0
  161. package/themes/dark-complementary/README.md +98 -0
  162. package/themes/dark-complementary/index.scss +158 -0
  163. package/themes/default-light/README.md +81 -0
  164. package/themes/default-light/index.scss +154 -0
  165. package/themes/high-contrast/README.md +105 -0
  166. package/themes/high-contrast/index.scss +172 -0
  167. package/themes/test-theme/README.md +38 -0
  168. package/themes/test-theme/index.scss +47 -0
  169. package/scripts/cli/templates-original-backup.js +0 -1655
  170. package/scripts/cli/templates_backup.js +0 -684
  171. package/src/components/AtomixGlass/stories/AtomixGlass.stories.tsx +0 -1438
  172. package/src/lib/composables/useButton.ts +0 -93
  173. package/src/lib/composables/useCheckbox.ts +0 -70
@@ -0,0 +1,45 @@
1
+ // Text gradient utilities - requires special CSS properties
2
+ // These utilities apply gradient colors to text using background-clip technique
3
+ // Using utility generator system with advanced best practices
4
+
5
+ @use 'sass:map';
6
+ @use '../01-settings/settings.design-tokens' as *;
7
+
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, // No specific CSS property, we're only using local-vars
13
+ class: u-text-gradient,
14
+ values: (
15
+ // Base class with no modifier applies the core text gradient styles
16
+ 'base': null
17
+ ),
18
+ local-vars: (
19
+ 'background-clip': text,
20
+ '-webkit-background-clip': text,
21
+ '-webkit-text-fill-color': transparent
22
+ )
23
+ ),
24
+
25
+ // Text gradient color variations using existing CSS gradient tokens
26
+ '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
+ )
45
+ );
@@ -0,0 +1,98 @@
1
+ # dark-complementary Theme
2
+
3
+ ## Description
4
+
5
+ The dark-complementary theme provides a modern dark theme with complementary colors optimized for low-light environments and reduced eye strain. This theme maintains excellent readability while providing a sophisticated dark aesthetic.
6
+
7
+ ## Usage
8
+
9
+ ### CSS Theme
10
+
11
+ ```scss
12
+ @import 'themes/dark-complementary';
13
+ ```
14
+
15
+ ### JavaScript Theme
16
+
17
+ ```typescript
18
+ import { darkComplementaryTheme } from './themes/dark-complementary';
19
+ import { ThemeProvider } from '@shohojdhara/atomix/theme';
20
+
21
+ function App() {
22
+ return (
23
+ <ThemeProvider theme={darkComplementaryTheme}>
24
+ {/* Your app */}
25
+ </ThemeProvider>
26
+ );
27
+ }
28
+ ```
29
+
30
+ ## Customization
31
+
32
+ Edit the theme variables in `index.scss` to customize colors, typography, spacing, and more. The theme uses CSS custom properties for easy customization.
33
+
34
+ ### Color Customization
35
+
36
+ ```scss
37
+ :root[data-theme='dark-complementary'] {
38
+ --atomix-color-primary: #your-primary-color;
39
+ --atomix-color-background: #your-background-color;
40
+ // ... other variables
41
+ }
42
+ ```
43
+
44
+ ### Background Customization
45
+
46
+ For dark themes, consider the background hierarchy:
47
+
48
+ ```scss
49
+ :root[data-theme='dark-complementary'] {
50
+ --atomix-color-background: #1a1a1a; // Main background
51
+ --atomix-color-background-paper: #2d2d2d; // Card/surface backgrounds
52
+ --atomix-color-background-subtle: #404040; // Hover states, subtle elements
53
+ }
54
+ ```
55
+
56
+ ## Features
57
+
58
+ - **Dark Mode Optimized**: Reduced blue light for better eye comfort
59
+ - **High Contrast**: Maintained readability in low-light conditions
60
+ - **Complementary Colors**: Brighter, more vibrant color palette for dark backgrounds
61
+ - **Modern Design**: Clean aesthetic with enhanced shadows for depth
62
+ - **Accessible**: Meets WCAG 2.1 AA standards with proper contrast ratios
63
+
64
+ ## Build
65
+
66
+ ```bash
67
+ atomix build-theme themes/dark-complementary
68
+ ```
69
+
70
+ ## Color Palette
71
+
72
+ - **Primary**: Light Blue (#4dabf7) - Brighter blue for dark backgrounds
73
+ - **Secondary**: Light Gray (#868e96) - Muted for secondary elements
74
+ - **Success**: Bright Green (#51cf66) - Highly visible success states
75
+ - **Error**: Bright Red (#ff6b6b) - Attention-grabbing error states
76
+ - **Warning**: Bright Yellow (#ffd43b) - Noticeable warning states
77
+ - **Info**: Bright Cyan (#74c0fc) - Clear informational elements
78
+
79
+ ## Typography
80
+
81
+ - **Base Font**: Inter (system font stack fallback)
82
+ - **Mono Font**: Fira Code (for code elements)
83
+ - **Font Sizes**: Responsive scale from xs to 5xl
84
+ - **Font Weights**: Light (300) to Extra Bold (800)
85
+ - **Text Colors**: White primary (#ffffff), Light gray secondary (#cccccc)
86
+
87
+ ## Background Hierarchy
88
+
89
+ - **Main Background**: Dark gray (#1a1a1a)
90
+ - **Paper/Surface**: Medium dark gray (#2d2d2d)
91
+ - **Subtle Elements**: Light medium gray (#404040)
92
+
93
+ ## Shadows
94
+
95
+ Enhanced shadow definitions for better depth perception in dark themes:
96
+
97
+ - Inner shadows use white tints for subtle highlights
98
+ - Outer shadows use increased opacity for better definition
@@ -0,0 +1,158 @@
1
+ // Theme: dark-complementary
2
+ // =============================================================================
3
+
4
+ @import '../../src/styles/01-settings';
5
+ @import '../../src/styles/02-tools';
6
+
7
+ // Theme Variables
8
+ // =============================================================================
9
+ :root[data-theme="dark-complementary"] {
10
+ // Colors (complementary to light theme)
11
+ --atomix-color-primary: #4dabf7; // Lighter blue for dark background
12
+ --atomix-color-primary-light: #74c0fc;
13
+ --atomix-color-primary-dark: #228be6;
14
+ --atomix-color-secondary: #868e96; // Lighter gray
15
+ --atomix-color-secondary-light: #adb5bd;
16
+ --atomix-color-secondary-dark: #495057;
17
+ --atomix-color-success: #51cf66; // Brighter green
18
+ --atomix-color-success-light: #8ce99a;
19
+ --atomix-color-success-dark: #40c057;
20
+ --atomix-color-error: #ff6b6b; // Brighter red
21
+ --atomix-color-error-light: #ff8787;
22
+ --atomix-color-error-dark: #fa5252;
23
+ --atomix-color-warning: #ffd43b; // Brighter yellow
24
+ --atomix-color-warning-light: #ffe066;
25
+ --atomix-color-warning-dark: #fab005;
26
+ --atomix-color-info: #74c0fc; // Brighter cyan
27
+ --atomix-color-info-light: #a5d8ff;
28
+ --atomix-color-info-dark: #339af0;
29
+
30
+ // Background (dark)
31
+ --atomix-color-background: #1a1a1a;
32
+ --atomix-color-background-paper: #2d2d2d;
33
+ --atomix-color-background-subtle: #404040;
34
+
35
+ // Text (light)
36
+ --atomix-color-text: #ffffff;
37
+ --atomix-color-text-secondary: #cccccc;
38
+ --atomix-color-text-disabled: #888888;
39
+
40
+ // Border (dark theme borders)
41
+ --atomix-color-border: #404040;
42
+ --atomix-color-border-light: #555555;
43
+ --atomix-color-border-dark: #1a1a1a;
44
+
45
+ // Spacing (same as light theme)
46
+ --atomix-space-0: 0;
47
+ --atomix-space-1: 0.25rem;
48
+ --atomix-space-2: 0.5rem;
49
+ --atomix-space-3: 0.75rem;
50
+ --atomix-space-4: 1rem;
51
+ --atomix-space-5: 1.25rem;
52
+ --atomix-space-6: 1.5rem;
53
+ --atomix-space-8: 2rem;
54
+ --atomix-space-10: 2.5rem;
55
+ --atomix-space-12: 3rem;
56
+ --atomix-space-16: 4rem;
57
+ --atomix-space-20: 5rem;
58
+ --atomix-space-24: 6rem;
59
+ --atomix-space-32: 8rem;
60
+ --atomix-space-base: 1rem;
61
+
62
+ // Typography (same as light theme)
63
+ --atomix-font-family-base: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
64
+ --atomix-font-family-heading: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
65
+ --atomix-font-family-mono: 'Fira Code', 'Monaco', 'Consolas', monospace;
66
+
67
+ --atomix-font-size-xs: 0.75rem;
68
+ --atomix-font-size-sm: 0.875rem;
69
+ --atomix-font-size-base: 1rem;
70
+ --atomix-font-size-lg: 1.125rem;
71
+ --atomix-font-size-xl: 1.25rem;
72
+ --atomix-font-size-2xl: 1.5rem;
73
+ --atomix-font-size-3xl: 1.875rem;
74
+ --atomix-font-size-4xl: 2.25rem;
75
+ --atomix-font-size-5xl: 3rem;
76
+
77
+ --atomix-font-weight-light: 300;
78
+ --atomix-font-weight-normal: 400;
79
+ --atomix-font-weight-medium: 500;
80
+ --atomix-font-weight-semibold: 600;
81
+ --atomix-font-weight-bold: 700;
82
+ --atomix-font-weight-extrabold: 800;
83
+
84
+ --atomix-line-height-tight: 1.25;
85
+ --atomix-line-height-snug: 1.375;
86
+ --atomix-line-height-normal: 1.5;
87
+ --atomix-line-height-relaxed: 1.625;
88
+ --atomix-line-height-loose: 2;
89
+
90
+ // Shadows (adjusted for dark theme)
91
+ --atomix-shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.3);
92
+ --atomix-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.4), 0 1px 2px 0 rgba(0, 0, 0, 0.2);
93
+ --atomix-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
94
+ --atomix-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.4), 0 4px 6px -2px rgba(0, 0, 0, 0.2);
95
+ --atomix-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.4), 0 10px 10px -5px rgba(0, 0, 0, 0.2);
96
+ --atomix-shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
97
+ --atomix-shadow-inner: inset 0 2px 4px 0 rgba(255, 255, 255, 0.1);
98
+ --atomix-shadow-outline: 0 0 0 3px rgba(77, 144, 254, 0.6);
99
+
100
+ // Animations/Transitions (same as light theme)
101
+ --atomix-transition-fast: 150ms ease-in-out;
102
+ --atomix-transition-base: 200ms ease-in-out;
103
+ --atomix-transition-slow: 300ms ease-in-out;
104
+
105
+ --atomix-animation-duration-fast: 150ms;
106
+ --atomix-animation-duration-base: 200ms;
107
+ --atomix-animation-duration-slow: 300ms;
108
+
109
+ --atomix-animation-easing-ease: ease;
110
+ --atomix-animation-easing-ease-in: ease-in;
111
+ --atomix-animation-easing-ease-out: ease-out;
112
+ --atomix-animation-easing-ease-in-out: ease-in-out;
113
+
114
+ // Border Radius (same as light theme)
115
+ --atomix-radius-none: 0;
116
+ --atomix-radius-sm: 0.125rem;
117
+ --atomix-radius-base: 0.25rem;
118
+ --atomix-radius-md: 0.375rem;
119
+ --atomix-radius-lg: 0.5rem;
120
+ --atomix-radius-xl: 0.75rem;
121
+ --atomix-radius-2xl: 1rem;
122
+ --atomix-radius-full: 9999px;
123
+ }
124
+
125
+ // Theme-specific Component Overrides
126
+ // =============================================================================
127
+ [data-theme="dark-complementary"] {
128
+ // Button overrides
129
+ .c-button {
130
+ border-radius: var(--atomix-radius-base);
131
+ transition: all var(--atomix-transition-base);
132
+ background-color: var(--atomix-color-background-paper);
133
+ border: 1px solid var(--atomix-color-border);
134
+
135
+ &:hover {
136
+ transform: translateY(-1px);
137
+ box-shadow: var(--atomix-shadow-md);
138
+ background-color: var(--atomix-color-background-subtle);
139
+ }
140
+
141
+ &:focus {
142
+ box-shadow: var(--atomix-shadow-outline);
143
+ }
144
+ }
145
+
146
+ // Card overrides
147
+ .c-card {
148
+ border: 1px solid var(--atomix-color-border);
149
+ border-radius: var(--atomix-radius-lg);
150
+ box-shadow: var(--atomix-shadow-sm);
151
+ background-color: var(--atomix-color-background-paper);
152
+
153
+ &:hover {
154
+ box-shadow: var(--atomix-shadow-md);
155
+ background-color: var(--atomix-color-background-subtle);
156
+ }
157
+ }
158
+ }
@@ -0,0 +1,81 @@
1
+ # default-light Theme
2
+
3
+ ## Description
4
+
5
+ The default-light theme provides a clean, modern light theme with a blue primary color scheme. This theme is optimized for readability and provides excellent contrast ratios for accessibility.
6
+
7
+ ## Usage
8
+
9
+ ### CSS Theme
10
+
11
+ ```scss
12
+ @import 'themes/default-light';
13
+ ```
14
+
15
+ ### JavaScript Theme
16
+
17
+ ```typescript
18
+ import { defaultLightTheme } from './themes/default-light';
19
+ import { ThemeProvider } from '@shohojdhara/atomix/theme';
20
+
21
+ function App() {
22
+ return (
23
+ <ThemeProvider theme={defaultLightTheme}>
24
+ {/* Your app */}
25
+ </ThemeProvider>
26
+ );
27
+ }
28
+ ```
29
+
30
+ ## Customization
31
+
32
+ Edit the theme variables in `index.scss` to customize colors, typography, spacing, and more. The theme uses CSS custom properties for easy customization.
33
+
34
+ ### Color Customization
35
+
36
+ ```scss
37
+ :root[data-theme='default-light'] {
38
+ --atomix-color-primary: #your-primary-color;
39
+ --atomix-color-background: #your-background-color;
40
+ // ... other variables
41
+ }
42
+ ```
43
+
44
+ ### Typography Customization
45
+
46
+ ```scss
47
+ :root[data-theme='default-light'] {
48
+ --atomix-font-family-base: 'Your Font', sans-serif;
49
+ --atomix-font-size-base: 1rem;
50
+ // ... other typography variables
51
+ }
52
+ ```
53
+
54
+ ## Features
55
+
56
+ - **High Contrast**: Excellent readability with proper contrast ratios
57
+ - **Modern Design**: Clean, minimal aesthetic with subtle shadows
58
+ - **Responsive**: Scales well across all device sizes
59
+ - **Accessible**: Meets WCAG 2.1 AA standards for color contrast
60
+
61
+ ## Build
62
+
63
+ ```bash
64
+ atomix build-theme themes/default-light
65
+ ```
66
+
67
+ ## Color Palette
68
+
69
+ - **Primary**: Blue (#007bff) - Used for primary actions and links
70
+ - **Secondary**: Gray (#6c757d) - Used for secondary elements
71
+ - **Success**: Green (#28a745) - Used for success states
72
+ - **Error**: Red (#dc3545) - Used for error states
73
+ - **Warning**: Yellow (#ffc107) - Used for warning states
74
+ - **Info**: Cyan (#17a2b8) - Used for informational elements
75
+
76
+ ## Typography
77
+
78
+ - **Base Font**: Inter (system font stack fallback)
79
+ - **Mono Font**: Fira Code (for code elements)
80
+ - **Font Sizes**: Responsive scale from xs to 5xl
81
+ - **Font Weights**: Light (300) to Extra Bold (800)
@@ -0,0 +1,154 @@
1
+ // Theme: default-light
2
+ // =============================================================================
3
+
4
+ @import '../../src/styles/01-settings';
5
+ @import '../../src/styles/02-tools';
6
+
7
+ // Theme Variables
8
+ // =============================================================================
9
+ :root[data-theme="default-light"] {
10
+ // Colors
11
+ --atomix-color-primary: #007bff;
12
+ --atomix-color-primary-light: #4dabf7;
13
+ --atomix-color-primary-dark: #0056b3;
14
+ --atomix-color-secondary: #6c757d;
15
+ --atomix-color-secondary-light: #adb5bd;
16
+ --atomix-color-secondary-dark: #495057;
17
+ --atomix-color-success: #28a745;
18
+ --atomix-color-success-light: #71dd8a;
19
+ --atomix-color-success-dark: #1e7e34;
20
+ --atomix-color-error: #dc3545;
21
+ --atomix-color-error-light: #f28b94;
22
+ --atomix-color-error-dark: #bd2130;
23
+ --atomix-color-warning: #ffc107;
24
+ --atomix-color-warning-light: #ffda6a;
25
+ --atomix-color-warning-dark: #d39e00;
26
+ --atomix-color-info: #17a2b8;
27
+ --atomix-color-info-light: #6edff6;
28
+ --atomix-color-info-dark: #117a8b;
29
+
30
+ // Background
31
+ --atomix-color-background: #ffffff;
32
+ --atomix-color-background-paper: #f8f9fa;
33
+ --atomix-color-background-subtle: #e9ecef;
34
+
35
+ // Text
36
+ --atomix-color-text: #212529;
37
+ --atomix-color-text-secondary: #6c757d;
38
+ --atomix-color-text-disabled: #adb5bd;
39
+
40
+ // Border
41
+ --atomix-color-border: #dee2e6;
42
+ --atomix-color-border-light: #f8f9fa;
43
+ --atomix-color-border-dark: #343a40;
44
+
45
+ // Spacing
46
+ --atomix-space-0: 0;
47
+ --atomix-space-1: 0.25rem;
48
+ --atomix-space-2: 0.5rem;
49
+ --atomix-space-3: 0.75rem;
50
+ --atomix-space-4: 1rem;
51
+ --atomix-space-5: 1.25rem;
52
+ --atomix-space-6: 1.5rem;
53
+ --atomix-space-8: 2rem;
54
+ --atomix-space-10: 2.5rem;
55
+ --atomix-space-12: 3rem;
56
+ --atomix-space-16: 4rem;
57
+ --atomix-space-20: 5rem;
58
+ --atomix-space-24: 6rem;
59
+ --atomix-space-32: 8rem;
60
+ --atomix-space-base: 1rem;
61
+
62
+ // Typography
63
+ --atomix-font-family-base: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
64
+ --atomix-font-family-heading: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
65
+ --atomix-font-family-mono: 'Fira Code', 'Monaco', 'Consolas', monospace;
66
+
67
+ --atomix-font-size-xs: 0.75rem;
68
+ --atomix-font-size-sm: 0.875rem;
69
+ --atomix-font-size-base: 1rem;
70
+ --atomix-font-size-lg: 1.125rem;
71
+ --atomix-font-size-xl: 1.25rem;
72
+ --atomix-font-size-2xl: 1.5rem;
73
+ --atomix-font-size-3xl: 1.875rem;
74
+ --atomix-font-size-4xl: 2.25rem;
75
+ --atomix-font-size-5xl: 3rem;
76
+
77
+ --atomix-font-weight-light: 300;
78
+ --atomix-font-weight-normal: 400;
79
+ --atomix-font-weight-medium: 500;
80
+ --atomix-font-weight-semibold: 600;
81
+ --atomix-font-weight-bold: 700;
82
+ --atomix-font-weight-extrabold: 800;
83
+
84
+ --atomix-line-height-tight: 1.25;
85
+ --atomix-line-height-snug: 1.375;
86
+ --atomix-line-height-normal: 1.5;
87
+ --atomix-line-height-relaxed: 1.625;
88
+ --atomix-line-height-loose: 2;
89
+
90
+ // Shadows
91
+ --atomix-shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
92
+ --atomix-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
93
+ --atomix-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
94
+ --atomix-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
95
+ --atomix-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
96
+ --atomix-shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
97
+ --atomix-shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06);
98
+ --atomix-shadow-outline: 0 0 0 3px rgba(59, 130, 246, 0.5);
99
+
100
+ // Animations/Transitions
101
+ --atomix-transition-fast: 150ms ease-in-out;
102
+ --atomix-transition-base: 200ms ease-in-out;
103
+ --atomix-transition-slow: 300ms ease-in-out;
104
+
105
+ --atomix-animation-duration-fast: 150ms;
106
+ --atomix-animation-duration-base: 200ms;
107
+ --atomix-animation-duration-slow: 300ms;
108
+
109
+ --atomix-animation-easing-ease: ease;
110
+ --atomix-animation-easing-ease-in: ease-in;
111
+ --atomix-animation-easing-ease-out: ease-out;
112
+ --atomix-animation-easing-ease-in-out: ease-in-out;
113
+
114
+ // Border Radius
115
+ --atomix-radius-none: 0;
116
+ --atomix-radius-sm: 0.125rem;
117
+ --atomix-radius-base: 0.25rem;
118
+ --atomix-radius-md: 0.375rem;
119
+ --atomix-radius-lg: 0.5rem;
120
+ --atomix-radius-xl: 0.75rem;
121
+ --atomix-radius-2xl: 1rem;
122
+ --atomix-radius-full: 9999px;
123
+ }
124
+
125
+ // Theme-specific Component Overrides
126
+ // =============================================================================
127
+ [data-theme="default-light"] {
128
+ // Button overrides
129
+ .c-button {
130
+ border-radius: var(--atomix-radius-base);
131
+ transition: all var(--atomix-transition-base);
132
+
133
+ &:hover {
134
+ transform: translateY(-1px);
135
+ box-shadow: var(--atomix-shadow-md);
136
+ }
137
+
138
+ &:focus {
139
+ box-shadow: var(--atomix-shadow-outline);
140
+ }
141
+ }
142
+
143
+ // Card overrides
144
+ .c-card {
145
+ border: 1px solid var(--atomix-color-border);
146
+ border-radius: var(--atomix-radius-lg);
147
+ box-shadow: var(--atomix-shadow-sm);
148
+ background-color: var(--atomix-color-background);
149
+
150
+ &:hover {
151
+ box-shadow: var(--atomix-shadow-md);
152
+ }
153
+ }
154
+ }
@@ -0,0 +1,105 @@
1
+ # high-contrast Theme
2
+
3
+ ## Description
4
+
5
+ The high-contrast theme provides maximum visibility and readability for users with visual impairments or those requiring enhanced accessibility. This theme uses pure black and white backgrounds with bright, high-contrast accent colors and thicker borders.
6
+
7
+ ## Usage
8
+
9
+ ### CSS Theme
10
+
11
+ ```scss
12
+ @import 'themes/high-contrast';
13
+ ```
14
+
15
+ ### JavaScript Theme
16
+
17
+ ```typescript
18
+ import { highContrastTheme } from './themes/high-contrast';
19
+ import { ThemeProvider } from '@shohojdhara/atomix/theme';
20
+
21
+ function App() {
22
+ return (
23
+ <ThemeProvider theme={highContrastTheme}>
24
+ {/* Your app */}
25
+ </ThemeProvider>
26
+ );
27
+ }
28
+ ```
29
+
30
+ ## Customization
31
+
32
+ Edit the theme variables in `index.scss` to customize colors, typography, spacing, and more. The theme uses CSS custom properties for easy customization.
33
+
34
+ ### Color Customization
35
+
36
+ For high-contrast themes, maintain maximum contrast ratios:
37
+
38
+ ```scss
39
+ :root[data-theme='high-contrast'] {
40
+ --atomix-color-primary: #your-high-contrast-color;
41
+ --atomix-color-background: #ffffff; // Keep pure white
42
+ --atomix-color-text: #000000; // Keep pure black
43
+ // ... other variables
44
+ }
45
+ ```
46
+
47
+ ### Border Customization
48
+
49
+ High-contrast themes benefit from thicker borders:
50
+
51
+ ```scss
52
+ :root[data-theme='high-contrast'] {
53
+ --atomix-color-border: #000000; // Pure black borders
54
+ // Component-specific border widths can be adjusted in overrides
55
+ }
56
+ ```
57
+
58
+ ## Features
59
+
60
+ - **Maximum Accessibility**: Meets WCAG 2.1 AAA standards for color contrast
61
+ - **Visual Impairment Support**: Optimized for users with low vision
62
+ - **Clear Visual Hierarchy**: Thick borders and high contrast ensure clarity
63
+ - **Reduced Motion**: Faster transitions for users sensitive to animation
64
+ - **Bold Typography**: Heavier font weights and larger sizes for better readability
65
+
66
+ ## Build
67
+
68
+ ```bash
69
+ atomix build-theme themes/high-contrast
70
+ ```
71
+
72
+ ## Color Palette
73
+
74
+ - **Primary**: Bright Blue (#0066cc) - High contrast for primary actions
75
+ - **Secondary**: Medium Gray (#666666) - For secondary elements
76
+ - **Success**: Pure Green (#008000) - Maximum visibility for success states
77
+ - **Error**: Bright Red (#cc0000) - Highly visible error states
78
+ - **Warning**: Bright Yellow (#ffcc00) - Noticeable warning states
79
+ - **Info**: Bright Cyan (#0099cc) - Clear informational elements
80
+
81
+ ## Typography
82
+
83
+ - **Base Font**: Arial/Helvetica (highly readable system fonts)
84
+ - **Mono Font**: Courier New (for code elements)
85
+ - **Font Sizes**: Larger scale starting from 0.875rem for better readability
86
+ - **Font Weights**: No light weights (minimum 400), emphasizing bold (700-900)
87
+ - **Text Colors**: Pure black (#000000) on pure white (#ffffff)
88
+
89
+ ## Accessibility Features
90
+
91
+ - **Thick Borders**: 2-3px borders for maximum visibility
92
+ - **High Contrast Focus Rings**: 4px thick focus indicators
93
+ - **Bold Text**: Minimum font-weight of 400, recommended 600-700
94
+ - **Minimal Animations**: Reduced motion for users with vestibular disorders
95
+ - **Clear Visual States**: Distinct hover, focus, and active states
96
+
97
+ ## Component Overrides
98
+
99
+ - **Buttons**: Thick black borders, bold text, clear state changes
100
+ - **Cards**: 3px borders, enhanced focus states, high contrast backgrounds
101
+ - **Focus Management**: Thick outline rings for keyboard navigation
102
+
103
+ ## Browser Support
104
+
105
+ This theme is designed to work in all modern browsers and provides fallback support for older browsers through the use of standard CSS properties.