@shohojdhara/atomix 0.3.14 → 0.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 (343) 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 +44 -0
  12. package/build-tools/index.js +88 -0
  13. package/build-tools/package.json +50 -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 +21044 -2618
  20. package/dist/atomix.css.map +1 -1
  21. package/dist/atomix.min.css +77 -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 +44 -0
  33. package/dist/build-tools/index.js +88 -0
  34. package/dist/build-tools/package.json +50 -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 +152 -78
  53. package/dist/index.esm.js +346 -340
  54. package/dist/index.esm.js.map +1 -1
  55. package/dist/index.js +359 -353
  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/dist/layout.js.map +1 -1
  60. package/dist/theme.d.ts +9 -9
  61. package/dist/theme.js.map +1 -1
  62. package/package.json +23 -8
  63. package/scripts/atomix-cli.js +170 -73
  64. package/scripts/cli/__tests__/README.md +81 -0
  65. package/scripts/cli/__tests__/basic.test.js +115 -0
  66. package/scripts/cli/__tests__/component-generator.test.js +332 -0
  67. package/scripts/cli/__tests__/integration.test.js +327 -0
  68. package/scripts/cli/__tests__/test-setup.js +133 -0
  69. package/scripts/cli/__tests__/token-manager.test.js +251 -0
  70. package/scripts/cli/__tests__/utils.test.js +161 -0
  71. package/scripts/cli/component-generator.js +253 -299
  72. package/scripts/cli/dependency-checker.js +355 -0
  73. package/scripts/cli/interactive-init.js +46 -5
  74. package/scripts/cli/template-manager.js +0 -2
  75. package/scripts/cli/templates/common-templates.js +636 -0
  76. package/scripts/cli/templates/composable-templates.js +148 -126
  77. package/scripts/cli/templates/index.js +23 -16
  78. package/scripts/cli/templates/project-templates.js +151 -23
  79. package/scripts/cli/templates/react-templates.js +280 -210
  80. package/scripts/cli/templates/scss-templates.js +90 -91
  81. package/scripts/cli/templates/testing-templates.js +206 -27
  82. package/scripts/cli/templates/testing-utils.js +278 -0
  83. package/scripts/cli/templates/types-templates.js +70 -56
  84. package/scripts/cli/theme-bridge.js +8 -2
  85. package/scripts/cli/token-manager.js +318 -206
  86. package/scripts/cli/utils.js +0 -1
  87. package/src/components/Accordion/Accordion.stories.tsx +358 -850
  88. package/src/components/Accordion/Accordion.test.tsx +70 -50
  89. package/src/components/Accordion/Accordion.tsx +99 -94
  90. package/src/components/AtomixGlass/AtomixGlass.test.tsx +1 -1
  91. package/src/components/AtomixGlass/AtomixGlass.tsx +80 -39
  92. package/src/components/AtomixGlass/AtomixGlassContainer.tsx +103 -81
  93. package/src/components/AtomixGlass/GlassFilter.tsx +9 -16
  94. package/src/components/AtomixGlass/__snapshots__/AtomixGlass.test.tsx.snap +8 -7
  95. package/src/components/AtomixGlass/glass-utils.ts +6 -5
  96. package/src/components/AtomixGlass/shader-utils.ts +133 -52
  97. package/src/components/AtomixGlass/stories/Customization.stories.tsx +131 -0
  98. package/src/components/AtomixGlass/stories/Examples.stories.tsx +2957 -2853
  99. package/src/components/AtomixGlass/stories/Modes.stories.tsx +1 -1
  100. package/src/components/AtomixGlass/stories/Overview.stories.tsx +348 -0
  101. package/src/components/AtomixGlass/stories/Performance.stories.tsx +103 -0
  102. package/src/components/AtomixGlass/stories/Playground.stories.tsx +51 -36
  103. package/src/components/AtomixGlass/stories/{ShaderVariants.stories.tsx → Shaders.stories.tsx} +2 -2
  104. package/src/components/AtomixGlass/stories/shared-components.tsx +90 -190
  105. package/src/components/Avatar/Avatar.stories.tsx +195 -0
  106. package/src/components/Avatar/Avatar.tsx +58 -56
  107. package/src/components/Badge/Badge.stories.tsx +122 -352
  108. package/src/components/Badge/Badge.test.tsx +41 -41
  109. package/src/components/Badge/Badge.tsx +64 -62
  110. package/src/components/Block/Block.stories.tsx +30 -11
  111. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +142 -23
  112. package/src/components/Breadcrumb/Breadcrumb.tsx +62 -60
  113. package/src/components/Button/Button.stories.tsx +454 -1126
  114. package/src/components/Button/Button.test.tsx +123 -0
  115. package/src/components/Button/Button.tsx +88 -60
  116. package/src/components/Button/ButtonGroup.stories.tsx +376 -215
  117. package/src/components/Button/ButtonGroup.tsx +4 -15
  118. package/src/components/Callout/Callout.stories.tsx +316 -568
  119. package/src/components/Card/Card.stories.tsx +292 -81
  120. package/src/components/Card/Card.tsx +30 -14
  121. package/src/components/Chart/AreaChart.tsx +1 -1
  122. package/src/components/Chart/CandlestickChart.tsx +23 -16
  123. package/src/components/Chart/Chart.stories.tsx +153 -16
  124. package/src/components/Chart/Chart.tsx +40 -44
  125. package/src/components/Chart/ChartRenderer.tsx +39 -12
  126. package/src/components/Chart/ChartToolbar.tsx +21 -5
  127. package/src/components/Chart/DonutChart.tsx +1 -1
  128. package/src/components/Chart/FunnelChart.tsx +4 -1
  129. package/src/components/Chart/GaugeChart.tsx +3 -1
  130. package/src/components/Chart/HeatmapChart.tsx +50 -37
  131. package/src/components/Chart/LineChart.tsx +3 -2
  132. package/src/components/Chart/MultiAxisChart.tsx +24 -16
  133. package/src/components/Chart/RadarChart.tsx +19 -17
  134. package/src/components/Chart/ScatterChart.tsx +29 -21
  135. package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +152 -66
  136. package/src/components/ColorModeToggle/ColorModeToggle.tsx +15 -3
  137. package/src/components/Countdown/Countdown.stories.tsx +114 -7
  138. package/src/components/DataTable/DataTable.stories.tsx +349 -144
  139. package/src/components/DataTable/DataTable.test.tsx +26 -148
  140. package/src/components/DataTable/DataTable.tsx +485 -456
  141. package/src/components/DatePicker/DatePicker.stories.tsx +310 -1066
  142. package/src/components/DatePicker/DatePicker.tsx +31 -26
  143. package/src/components/Dropdown/Dropdown.stories.tsx +153 -36
  144. package/src/components/Dropdown/Dropdown.tsx +313 -299
  145. package/src/components/EdgePanel/EdgePanel.stories.tsx +221 -25
  146. package/src/components/EdgePanel/EdgePanel.tsx +1 -3
  147. package/src/components/Footer/Footer.stories.tsx +396 -327
  148. package/src/components/Footer/Footer.tsx +130 -128
  149. package/src/components/Footer/FooterLink.tsx +2 -2
  150. package/src/components/Form/Checkbox.stories.tsx +140 -6
  151. package/src/components/Form/Checkbox.test.tsx +63 -0
  152. package/src/components/Form/Checkbox.tsx +122 -78
  153. package/src/components/Form/Form.stories.tsx +110 -19
  154. package/src/components/Form/FormGroup.stories.tsx +127 -4
  155. package/src/components/Form/Input.stories.tsx +22 -39
  156. package/src/components/Form/Input.test.tsx +38 -44
  157. package/src/components/Form/Radio.stories.tsx +146 -17
  158. package/src/components/Form/Radio.tsx +68 -66
  159. package/src/components/Form/Select.stories.tsx +140 -8
  160. package/src/components/Form/Select.tsx +184 -182
  161. package/src/components/Form/Textarea.stories.tsx +149 -6
  162. package/src/components/Form/Textarea.test.tsx +27 -32
  163. package/src/components/Hero/Hero.stories.tsx +372 -38
  164. package/src/components/Hero/Hero.tsx +201 -55
  165. package/src/components/Icon/index.ts +7 -1
  166. package/src/components/List/List.stories.tsx +141 -3
  167. package/src/components/List/List.tsx +19 -23
  168. package/src/components/Modal/Modal.stories.tsx +183 -43
  169. package/src/components/Modal/Modal.tsx +130 -127
  170. package/src/components/Navigation/Menu/MegaMenu.tsx +70 -70
  171. package/src/components/Navigation/Nav/NavDropdown.tsx +1 -5
  172. package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +128 -28
  173. package/src/components/Navigation/SideMenu/SideMenu.tsx +5 -7
  174. package/src/components/Navigation/SideMenu/SideMenuItem.tsx +4 -5
  175. package/src/components/Pagination/Pagination.stories.tsx +7 -4
  176. package/src/components/Pagination/Pagination.tsx +199 -202
  177. package/src/components/PhotoViewer/PhotoViewer.tsx +4 -1
  178. package/src/components/Popover/Popover.stories.tsx +354 -97
  179. package/src/components/Popover/Popover.tsx +41 -37
  180. package/src/components/Progress/Progress.stories.tsx +160 -7
  181. package/src/components/River/River.stories.tsx +3 -2
  182. package/src/components/SectionIntro/SectionIntro.stories.tsx +239 -47
  183. package/src/components/Slider/Slider.stories.tsx +12 -4
  184. package/src/components/Spinner/Spinner.stories.tsx +104 -8
  185. package/src/components/Spinner/Spinner.test.tsx +23 -23
  186. package/src/components/Spinner/Spinner.tsx +43 -46
  187. package/src/components/Steps/Steps.stories.tsx +173 -42
  188. package/src/components/Tabs/Tabs.stories.tsx +141 -12
  189. package/src/components/Tabs/Tabs.tsx +74 -72
  190. package/src/components/Testimonial/Testimonial.stories.tsx +120 -3
  191. package/src/components/Todo/Todo.stories.tsx +198 -9
  192. package/src/components/Toggle/Toggle.stories.tsx +137 -36
  193. package/src/components/Toggle/Toggle.test.tsx +65 -70
  194. package/src/components/Toggle/Toggle.tsx +4 -1
  195. package/src/components/Tooltip/Tooltip.stories.tsx +194 -100
  196. package/src/components/Tooltip/Tooltip.tsx +104 -106
  197. package/src/components/Upload/Upload.stories.tsx +241 -150
  198. package/src/components/Upload/Upload.tsx +287 -283
  199. package/src/components/VideoPlayer/VideoPlayer.tsx +6 -1
  200. package/src/components/index.ts +13 -2
  201. package/src/layouts/Grid/Grid.stories.tsx +9 -3
  202. package/src/layouts/MasonryGrid/MasonryGrid.tsx +5 -1
  203. package/src/lib/README.md +2 -2
  204. package/src/lib/__tests__/theme-tools.test.ts +219 -0
  205. package/src/lib/composables/index.ts +2 -2
  206. package/src/lib/composables/shared-mouse-tracker.ts +13 -14
  207. package/src/lib/composables/useAtomixGlass.ts +126 -97
  208. package/src/lib/composables/useChartExport.ts +3 -8
  209. package/src/lib/composables/useDataTable.ts +72 -43
  210. package/src/lib/composables/useHero.ts +58 -14
  211. package/src/lib/composables/useHeroBackgroundSlider.ts +2 -9
  212. package/src/lib/composables/useInput.ts +10 -8
  213. package/src/lib/composables/useSideMenu.ts +6 -5
  214. package/src/lib/composables/useTooltip.ts +1 -2
  215. package/src/lib/composables/useVideoPlayer.ts +44 -35
  216. package/src/lib/config/index.ts +154 -154
  217. package/src/lib/constants/components.ts +9 -32
  218. package/src/lib/constants/cssVariables.ts +29 -29
  219. package/src/lib/hooks/__tests__/useComponentCustomization.test.ts +2 -6
  220. package/src/lib/hooks/index.ts +1 -1
  221. package/src/lib/hooks/useComponentCustomization.ts +11 -17
  222. package/src/lib/hooks/usePerformanceMonitor.ts +6 -7
  223. package/src/lib/patterns/__tests__/slots.test.ts +1 -1
  224. package/src/lib/patterns/index.ts +1 -1
  225. package/src/lib/patterns/slots.tsx +8 -13
  226. package/src/lib/storybook/InteractiveDemo.tsx +13 -18
  227. package/src/lib/storybook/PreviewContainer.tsx +1 -1
  228. package/src/lib/storybook/VariantsGrid.tsx +3 -7
  229. package/src/lib/storybook/index.ts +1 -1
  230. package/src/lib/theme/adapters/cssVariableMapper.ts +47 -74
  231. package/src/lib/theme/adapters/index.ts +3 -9
  232. package/src/lib/theme/adapters/themeAdapter.ts +41 -26
  233. package/src/lib/theme/config/index.ts +1 -1
  234. package/src/lib/theme/config/types.ts +2 -2
  235. package/src/lib/theme/config/validator.ts +10 -5
  236. package/src/lib/theme/constants/constants.ts +2 -2
  237. package/src/lib/theme/constants/index.ts +1 -2
  238. package/src/lib/theme/core/__tests__/createTheme.test.ts +20 -22
  239. package/src/lib/theme/core/composeTheme.ts +32 -26
  240. package/src/lib/theme/core/createTheme.ts +1 -1
  241. package/src/lib/theme/core/createThemeObject.ts +308 -301
  242. package/src/lib/theme/core/index.ts +3 -3
  243. package/src/lib/theme/devtools/CLI.ts +107 -105
  244. package/src/lib/theme/devtools/Comparator.tsx +50 -32
  245. package/src/lib/theme/devtools/DesignTokensCustomizer.stories.tsx +50 -48
  246. package/src/lib/theme/devtools/DesignTokensCustomizer.tsx +257 -63
  247. package/src/lib/theme/devtools/Inspector.tsx +75 -60
  248. package/src/lib/theme/devtools/LiveEditor.tsx +97 -76
  249. package/src/lib/theme/devtools/Preview.tsx +150 -106
  250. package/src/lib/theme/devtools/ThemeValidator.ts +29 -21
  251. package/src/lib/theme/devtools/index.ts +3 -9
  252. package/src/lib/theme/devtools/useHistory.ts +23 -21
  253. package/src/lib/theme/errors/errors.ts +12 -11
  254. package/src/lib/theme/errors/index.ts +2 -7
  255. package/src/lib/theme/generators/generateCSS.ts +9 -13
  256. package/src/lib/theme/generators/generateCSSNested.ts +1 -6
  257. package/src/lib/theme/generators/generateCSSVariables.ts +673 -630
  258. package/src/lib/theme/generators/index.ts +1 -4
  259. package/src/lib/theme/i18n/index.ts +1 -1
  260. package/src/lib/theme/i18n/rtl.ts +13 -13
  261. package/src/lib/theme/index.ts +7 -16
  262. package/src/lib/theme/runtime/ThemeApplicator.ts +4 -4
  263. package/src/lib/theme/runtime/ThemeContext.tsx +1 -1
  264. package/src/lib/theme/runtime/ThemeErrorBoundary.tsx +19 -23
  265. package/src/lib/theme/runtime/ThemeProvider.tsx +230 -239
  266. package/src/lib/theme/runtime/__tests__/ThemeProvider.integration.test.tsx +1 -1
  267. package/src/lib/theme/runtime/__tests__/ThemeProvider.test.tsx +24 -29
  268. package/src/lib/theme/runtime/index.ts +2 -5
  269. package/src/lib/theme/runtime/useTheme.ts +18 -18
  270. package/src/lib/theme/runtime/useThemeTokens.ts +22 -22
  271. package/src/lib/theme/test/testTheme.ts +15 -16
  272. package/src/lib/theme/tokens/index.ts +2 -7
  273. package/src/lib/theme/tokens/tokens.ts +25 -24
  274. package/src/lib/theme/types.ts +428 -411
  275. package/src/lib/theme/utils/__tests__/themeValidation.test.ts +3 -3
  276. package/src/lib/theme/utils/componentTheming.ts +18 -18
  277. package/src/lib/theme/utils/domUtils.ts +277 -289
  278. package/src/lib/theme/utils/index.ts +1 -2
  279. package/src/lib/theme/utils/injectCSS.ts +10 -14
  280. package/src/lib/theme/utils/naming.ts +20 -16
  281. package/src/lib/theme/utils/themeHelpers.ts +10 -12
  282. package/src/lib/theme/utils/themeUtils.ts +85 -86
  283. package/src/lib/theme/utils/themeValidation.ts +82 -33
  284. package/src/lib/theme-tools.ts +8 -6
  285. package/src/lib/types/components.ts +172 -71
  286. package/src/lib/types/partProps.ts +1 -1
  287. package/src/lib/utils/__tests__/csv.test.ts +45 -0
  288. package/src/lib/utils/componentUtils.ts +8 -12
  289. package/src/lib/utils/csv.ts +19 -0
  290. package/src/lib/utils/dataTableExport.ts +2 -15
  291. package/src/lib/utils/fontPreloader.ts +10 -19
  292. package/src/lib/utils/icons.ts +4 -1
  293. package/src/lib/utils/index.ts +2 -6
  294. package/src/lib/utils/memoryMonitor.ts +10 -8
  295. package/src/lib/utils/themeNaming.ts +2 -2
  296. package/src/styles/01-settings/_index.scss +1 -1
  297. package/src/styles/01-settings/_settings.accordion.scss +28 -7
  298. package/src/styles/01-settings/_settings.colors.scss +11 -11
  299. package/src/styles/01-settings/_settings.design-tokens.scss +61 -50
  300. package/src/styles/01-settings/_settings.navbar.scss +1 -1
  301. package/src/styles/01-settings/_settings.spacing.scss +3 -4
  302. package/src/styles/01-settings/_settings.tooltip.scss +1 -1
  303. package/src/styles/01-settings/_settings.typography.scss +4 -4
  304. package/src/styles/02-tools/_tools.button.scss +51 -21
  305. package/src/styles/02-tools/_tools.utility-api.scss +38 -12
  306. package/src/styles/03-generic/_generic.root.scss +4 -3
  307. package/src/styles/06-components/_components.accordion.scss +56 -14
  308. package/src/styles/06-components/_components.atomix-glass.scss +13 -9
  309. package/src/styles/06-components/_components.button.scss +16 -4
  310. package/src/styles/06-components/_components.callout.scss +27 -21
  311. package/src/styles/06-components/_components.card.scss +5 -14
  312. package/src/styles/06-components/_components.chart.scss +22 -19
  313. package/src/styles/06-components/_components.checkbox.scss +25 -17
  314. package/src/styles/06-components/_components.color-mode-toggle.scss +3 -1
  315. package/src/styles/06-components/_components.edge-panel.scss +9 -2
  316. package/src/styles/06-components/_components.footer.scss +1 -1
  317. package/src/styles/06-components/_components.side-menu.scss +5 -5
  318. package/src/styles/06-components/_components.toggle.scss +18 -0
  319. package/src/styles/06-components/_index.scss +1 -1
  320. package/src/styles/06-components/old.chart.styles.scss +0 -2
  321. package/src/styles/99-utilities/_index.scss +2 -0
  322. package/src/styles/99-utilities/_utilities.border.scss +69 -27
  323. package/src/styles/99-utilities/_utilities.display.scss +1 -1
  324. package/src/styles/99-utilities/_utilities.opacity.scss +10 -0
  325. package/src/styles/99-utilities/_utilities.position.scss +16 -9
  326. package/src/styles/99-utilities/_utilities.scss +2 -0
  327. package/src/styles/99-utilities/_utilities.sizes.scss +47 -18
  328. package/src/styles/99-utilities/_utilities.spacing.scss +118 -66
  329. package/src/styles/99-utilities/_utilities.text-gradient.scss +45 -0
  330. package/src/styles/99-utilities/_utilities.text.scss +67 -46
  331. package/themes/dark-complementary/README.md +98 -0
  332. package/themes/dark-complementary/index.scss +158 -0
  333. package/themes/default-light/README.md +81 -0
  334. package/themes/default-light/index.scss +154 -0
  335. package/themes/high-contrast/README.md +105 -0
  336. package/themes/high-contrast/index.scss +172 -0
  337. package/themes/test-theme/README.md +38 -0
  338. package/themes/test-theme/index.scss +47 -0
  339. package/scripts/cli/templates-original-backup.js +0 -1655
  340. package/scripts/cli/templates_backup.js +0 -684
  341. package/src/components/AtomixGlass/stories/AtomixGlass.stories.tsx +0 -1438
  342. package/src/lib/composables/useButton.ts +0 -93
  343. package/src/lib/composables/useCheckbox.ts +0 -70
@@ -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.
@@ -0,0 +1,172 @@
1
+ // Theme: high-contrast
2
+ // =============================================================================
3
+
4
+ @import '../../src/styles/01-settings';
5
+ @import '../../src/styles/02-tools';
6
+
7
+ // Theme Variables
8
+ // =============================================================================
9
+ :root[data-theme="high-contrast"] {
10
+ // Colors (high contrast - pure black/white with bright accents)
11
+ --atomix-color-primary: #0066cc; // Bright blue for high visibility
12
+ --atomix-color-primary-light: #3399ff;
13
+ --atomix-color-primary-dark: #004d99;
14
+ --atomix-color-secondary: #666666; // Medium gray
15
+ --atomix-color-secondary-light: #999999;
16
+ --atomix-color-secondary-dark: #333333;
17
+ --atomix-color-success: #008000; // Pure green
18
+ --atomix-color-success-light: #00cc00;
19
+ --atomix-color-success-dark: #004d00;
20
+ --atomix-color-error: #cc0000; // Bright red
21
+ --atomix-color-error-light: #ff3333;
22
+ --atomix-color-error-dark: #990000;
23
+ --atomix-color-warning: #ffcc00; // Bright yellow
24
+ --atomix-color-warning-light: #ffff66;
25
+ --atomix-color-warning-dark: #cc9900;
26
+ --atomix-color-info: #0099cc; // Bright cyan
27
+ --atomix-color-info-light: #33ccff;
28
+ --atomix-color-info-dark: #006699;
29
+
30
+ // Background (pure white/black)
31
+ --atomix-color-background: #ffffff;
32
+ --atomix-color-background-paper: #ffffff;
33
+ --atomix-color-background-subtle: #f0f0f0;
34
+
35
+ // Text (pure black/white)
36
+ --atomix-color-text: #000000;
37
+ --atomix-color-text-secondary: #333333;
38
+ --atomix-color-text-disabled: #666666;
39
+
40
+ // Border (thick black borders for maximum visibility)
41
+ --atomix-color-border: #000000;
42
+ --atomix-color-border-light: #333333;
43
+ --atomix-color-border-dark: #000000;
44
+
45
+ // Spacing (same as other themes)
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 (high contrast fonts)
63
+ --atomix-font-family-base: 'Arial', 'Helvetica', sans-serif; // More readable fonts
64
+ --atomix-font-family-heading: 'Arial Black', 'Arial', 'Helvetica', sans-serif;
65
+ --atomix-font-family-mono: 'Courier New', 'Monaco', 'Consolas', monospace;
66
+
67
+ --atomix-font-size-xs: 0.875rem; // Slightly larger for better readability
68
+ --atomix-font-size-sm: 1rem;
69
+ --atomix-font-size-base: 1.125rem;
70
+ --atomix-font-size-lg: 1.25rem;
71
+ --atomix-font-size-xl: 1.375rem;
72
+ --atomix-font-size-2xl: 1.625rem;
73
+ --atomix-font-size-3xl: 2rem;
74
+ --atomix-font-size-4xl: 2.5rem;
75
+ --atomix-font-size-5xl: 3.25rem;
76
+
77
+ --atomix-font-weight-light: 400; // No light fonts for better readability
78
+ --atomix-font-weight-normal: 400;
79
+ --atomix-font-weight-medium: 600;
80
+ --atomix-font-weight-semibold: 700;
81
+ --atomix-font-weight-bold: 700;
82
+ --atomix-font-weight-extrabold: 900;
83
+
84
+ --atomix-line-height-tight: 1.4;
85
+ --atomix-line-height-snug: 1.5;
86
+ --atomix-line-height-normal: 1.6;
87
+ --atomix-line-height-relaxed: 1.7;
88
+ --atomix-line-height-loose: 2;
89
+
90
+ // Shadows (minimal for high contrast)
91
+ --atomix-shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.5);
92
+ --atomix-shadow-sm: 0 2px 4px 0 rgba(0, 0, 0, 0.5);
93
+ --atomix-shadow-md: 0 4px 8px 0 rgba(0, 0, 0, 0.5);
94
+ --atomix-shadow-lg: 0 8px 16px 0 rgba(0, 0, 0, 0.5);
95
+ --atomix-shadow-xl: 0 16px 32px 0 rgba(0, 0, 0, 0.5);
96
+ --atomix-shadow-2xl: 0 24px 48px 0 rgba(0, 0, 0, 0.5);
97
+ --atomix-shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.5);
98
+ --atomix-shadow-outline: 0 0 0 4px #0066cc; // Thick focus ring
99
+
100
+ // Animations/Transitions (reduced for accessibility)
101
+ --atomix-transition-fast: 100ms ease-in-out;
102
+ --atomix-transition-base: 150ms ease-in-out;
103
+ --atomix-transition-slow: 200ms ease-in-out;
104
+
105
+ --atomix-animation-duration-fast: 100ms;
106
+ --atomix-animation-duration-base: 150ms;
107
+ --atomix-animation-duration-slow: 200ms;
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 (minimal for high contrast)
115
+ --atomix-radius-none: 0;
116
+ --atomix-radius-sm: 0.125rem;
117
+ --atomix-radius-base: 0.25rem;
118
+ --atomix-radius-md: 0.25rem;
119
+ --atomix-radius-lg: 0.25rem;
120
+ --atomix-radius-xl: 0.5rem;
121
+ --atomix-radius-2xl: 0.5rem;
122
+ --atomix-radius-full: 9999px;
123
+ }
124
+
125
+ // Theme-specific Component Overrides
126
+ // =============================================================================
127
+ [data-theme="high-contrast"] {
128
+ // Button overrides (high contrast)
129
+ .c-button {
130
+ border: 2px solid var(--atomix-color-border);
131
+ border-radius: var(--atomix-radius-sm);
132
+ transition: all var(--atomix-transition-fast);
133
+ font-weight: var(--atomix-font-weight-bold);
134
+ background-color: var(--atomix-color-background);
135
+
136
+ &:hover {
137
+ background-color: var(--atomix-color-background-subtle);
138
+ border-color: var(--atomix-color-primary);
139
+ color: var(--atomix-color-primary);
140
+ }
141
+
142
+ &:focus {
143
+ outline: none;
144
+ box-shadow: var(--atomix-shadow-outline);
145
+ border-color: var(--atomix-color-primary);
146
+ }
147
+
148
+ &:active {
149
+ background-color: var(--atomix-color-primary);
150
+ color: var(--atomix-color-background);
151
+ border-color: var(--atomix-color-primary);
152
+ }
153
+ }
154
+
155
+ // Card overrides (high contrast)
156
+ .c-card {
157
+ border: 3px solid var(--atomix-color-border);
158
+ border-radius: var(--atomix-radius-sm);
159
+ box-shadow: var(--atomix-shadow-sm);
160
+ background-color: var(--atomix-color-background);
161
+
162
+ &:hover {
163
+ border-color: var(--atomix-color-primary);
164
+ box-shadow: var(--atomix-shadow-md);
165
+ }
166
+
167
+ &:focus-within {
168
+ border-color: var(--atomix-color-primary);
169
+ box-shadow: var(--atomix-shadow-outline);
170
+ }
171
+ }
172
+ }