@shohojdhara/atomix 0.2.4 → 0.2.5

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 (211) hide show
  1. package/README.md +19 -0
  2. package/dist/atomix.css +1266 -1412
  3. package/dist/atomix.min.css +3 -3
  4. package/dist/index.d.ts +1232 -876
  5. package/dist/index.esm.js +16212 -26364
  6. package/dist/index.esm.js.map +1 -1
  7. package/dist/index.js +15652 -22298
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.min.js +1 -1
  10. package/dist/index.min.js.map +1 -1
  11. package/dist/themes/applemix.css +15008 -0
  12. package/dist/themes/applemix.min.css +72 -0
  13. package/dist/themes/boomdevs.css +1266 -1413
  14. package/dist/themes/boomdevs.min.css +3 -3
  15. package/dist/themes/esrar.css +1267 -1413
  16. package/dist/themes/esrar.min.css +3 -3
  17. package/dist/themes/flashtrade.css +15159 -0
  18. package/dist/themes/flashtrade.min.css +86 -0
  19. package/dist/themes/mashroom.css +1264 -1410
  20. package/dist/themes/mashroom.min.css +5 -5
  21. package/dist/themes/shaj-default.css +1266 -1412
  22. package/dist/themes/shaj-default.min.css +3 -3
  23. package/package.json +6 -17
  24. package/src/components/Accordion/Accordion.stories.tsx +4 -26
  25. package/src/components/Accordion/Accordion.tsx +21 -12
  26. package/src/components/AtomixGlass/AtomixGlass.test.tsx +106 -72
  27. package/src/components/AtomixGlass/AtomixGlass.tsx +487 -1215
  28. package/src/components/AtomixGlass/AtomixGlassContainer.tsx +400 -0
  29. package/src/components/AtomixGlass/GlassFilter.tsx +156 -0
  30. package/src/components/AtomixGlass/README.md +124 -2
  31. package/src/components/AtomixGlass/atomixGLass.old.tsx +1266 -0
  32. package/src/components/AtomixGlass/glass-utils.ts +263 -0
  33. package/src/components/AtomixGlass/shader-utils.ts +404 -236
  34. package/src/components/AtomixGlass/{AtomixGlass.stories.tsx → stories/AtomixGlass.stories.tsx} +55 -35
  35. package/src/components/AtomixGlass/stories/Examples.stories.tsx +57 -89
  36. package/src/components/AtomixGlass/stories/Modes.stories.tsx +149 -149
  37. package/src/components/AtomixGlass/stories/Playground.stories.tsx +95 -32
  38. package/src/components/AtomixGlass/stories/ShaderVariants.stories.tsx +0 -2
  39. package/src/components/AtomixGlass/stories/shared-components.tsx +9 -18
  40. package/src/components/AtomixGlass/utils.ts +3 -3
  41. package/src/components/Avatar/Avatar.tsx +3 -0
  42. package/src/components/Avatar/AvatarGroup.tsx +2 -1
  43. package/src/components/Badge/Badge.stories.tsx +74 -54
  44. package/src/components/Badge/Badge.tsx +8 -12
  45. package/src/components/Breadcrumb/Breadcrumb.tsx +23 -4
  46. package/src/components/Button/Button.tsx +3 -5
  47. package/src/components/Callout/Callout.stories.tsx +86 -35
  48. package/src/components/Callout/Callout.tsx +4 -0
  49. package/src/components/Card/Card.stories.tsx +89 -85
  50. package/src/components/Card/Card.tsx +15 -4
  51. package/src/components/Card/ElevationCard.tsx +2 -0
  52. package/src/components/Chart/AnimatedChart.tsx +179 -156
  53. package/src/components/Chart/AreaChart.tsx +123 -12
  54. package/src/components/Chart/BarChart.tsx +91 -100
  55. package/src/components/Chart/BaseChart.tsx +80 -0
  56. package/src/components/Chart/BubbleChart.tsx +114 -290
  57. package/src/components/Chart/CandlestickChart.tsx +282 -622
  58. package/src/components/Chart/Chart.stories.tsx +576 -179
  59. package/src/components/Chart/Chart.tsx +374 -75
  60. package/src/components/Chart/ChartRenderer.tsx +371 -220
  61. package/src/components/Chart/ChartToolbar.tsx +372 -61
  62. package/src/components/Chart/ChartTooltip.tsx +33 -18
  63. package/src/components/Chart/DonutChart.tsx +172 -254
  64. package/src/components/Chart/FunnelChart.tsx +169 -240
  65. package/src/components/Chart/GaugeChart.tsx +224 -392
  66. package/src/components/Chart/HeatmapChart.tsx +302 -440
  67. package/src/components/Chart/LineChart.tsx +148 -103
  68. package/src/components/Chart/MultiAxisChart.tsx +267 -395
  69. package/src/components/Chart/PieChart.tsx +114 -64
  70. package/src/components/Chart/RadarChart.tsx +202 -218
  71. package/src/components/Chart/ScatterChart.tsx +111 -97
  72. package/src/components/Chart/TreemapChart.tsx +147 -222
  73. package/src/components/Chart/WaterfallChart.tsx +253 -291
  74. package/src/components/Chart/index.ts +11 -9
  75. package/src/components/Chart/types.ts +85 -9
  76. package/src/components/Chart/utils.ts +66 -0
  77. package/src/components/ColorModeToggle/ColorModeToggle.tsx +6 -3
  78. package/src/components/Countdown/Countdown.tsx +4 -0
  79. package/src/components/DataTable/DataTable.tsx +2 -1
  80. package/src/components/DatePicker/DatePicker.stories.tsx +0 -11
  81. package/src/components/DatePicker/DatePicker.tsx +3 -9
  82. package/src/components/DatePicker/types.ts +5 -0
  83. package/src/components/Dropdown/Dropdown.stories.tsx +32 -25
  84. package/src/components/Dropdown/Dropdown.tsx +26 -28
  85. package/src/components/EdgePanel/EdgePanel.stories.tsx +13 -15
  86. package/src/components/EdgePanel/EdgePanel.tsx +20 -5
  87. package/src/components/Footer/Footer.stories.tsx +187 -60
  88. package/src/components/Footer/Footer.test.tsx +134 -0
  89. package/src/components/Footer/Footer.tsx +133 -34
  90. package/src/components/Footer/FooterLink.tsx +1 -1
  91. package/src/components/Footer/FooterSection.tsx +53 -36
  92. package/src/components/Footer/FooterSocialLink.tsx +32 -29
  93. package/src/components/Footer/README.md +82 -3
  94. package/src/components/Footer/index.ts +1 -1
  95. package/src/components/Form/Checkbox.stories.tsx +13 -5
  96. package/src/components/Form/Checkbox.tsx +3 -6
  97. package/src/components/Form/Form.stories.tsx +10 -3
  98. package/src/components/Form/Form.tsx +2 -0
  99. package/src/components/Form/FormGroup.tsx +2 -1
  100. package/src/components/Form/Input.stories.tsx +12 -11
  101. package/src/components/Form/Input.tsx +97 -95
  102. package/src/components/Form/Radio.stories.tsx +22 -7
  103. package/src/components/Form/Radio.tsx +3 -6
  104. package/src/components/Form/Select.stories.tsx +21 -6
  105. package/src/components/Form/Select.tsx +3 -5
  106. package/src/components/Form/Textarea.stories.tsx +13 -11
  107. package/src/components/Form/Textarea.tsx +88 -86
  108. package/src/components/Hero/Hero.stories.tsx +2 -3
  109. package/src/components/Hero/Hero.tsx +5 -6
  110. package/src/components/Icon/Icon.tsx +12 -1
  111. package/src/components/List/List.tsx +2 -1
  112. package/src/components/List/ListGroup.tsx +2 -1
  113. package/src/components/Messages/Messages.tsx +3 -2
  114. package/src/components/Modal/Modal.stories.tsx +48 -34
  115. package/src/components/Modal/Modal.tsx +19 -23
  116. package/src/components/Navigation/Menu/MegaMenu.tsx +2 -2
  117. package/src/components/Navigation/Menu/Menu.tsx +2 -2
  118. package/src/components/Navigation/Nav/Nav.tsx +6 -1
  119. package/src/components/Navigation/Nav/NavDropdown.tsx +10 -1
  120. package/src/components/Navigation/Navbar/Navbar.tsx +4 -1
  121. package/src/components/Navigation/SideMenu/SideMenu.tsx +3 -2
  122. package/src/components/Pagination/Pagination.stories.tsx +13 -6
  123. package/src/components/Pagination/Pagination.tsx +7 -6
  124. package/src/components/PhotoViewer/PhotoViewer.tsx +2 -1
  125. package/src/components/Popover/Popover.stories.tsx +32 -24
  126. package/src/components/Popover/Popover.tsx +4 -1
  127. package/src/components/ProductReview/ProductReview.tsx +8 -2
  128. package/src/components/Progress/Progress.tsx +2 -1
  129. package/src/components/Rating/Rating.stories.tsx +11 -6
  130. package/src/components/Rating/Rating.tsx +3 -5
  131. package/src/components/River/River.tsx +5 -5
  132. package/src/components/SectionIntro/SectionIntro.tsx +8 -2
  133. package/src/components/Slider/Slider.stories.tsx +4 -4
  134. package/src/components/Slider/Slider.tsx +4 -3
  135. package/src/components/Spinner/Spinner.tsx +2 -1
  136. package/src/components/Steps/Steps.stories.tsx +5 -4
  137. package/src/components/Steps/Steps.tsx +8 -5
  138. package/src/components/Tab/Tab.stories.tsx +4 -3
  139. package/src/components/Tab/Tab.tsx +8 -6
  140. package/src/components/Testimonial/Testimonial.tsx +8 -2
  141. package/src/components/Todo/Todo.tsx +2 -1
  142. package/src/components/Toggle/Toggle.stories.tsx +5 -4
  143. package/src/components/Toggle/Toggle.tsx +8 -5
  144. package/src/components/Tooltip/Tooltip.stories.tsx +40 -30
  145. package/src/components/Tooltip/Tooltip.tsx +9 -2
  146. package/src/components/Upload/Upload.stories.tsx +252 -0
  147. package/src/components/Upload/Upload.tsx +92 -53
  148. package/src/components/VideoPlayer/VideoPlayer.tsx +3 -1
  149. package/src/components/index.ts +0 -4
  150. package/src/layouts/Grid/Grid.stories.tsx +10 -23
  151. package/src/layouts/Grid/Grid.tsx +20 -1
  152. package/src/layouts/Grid/GridCol.tsx +76 -48
  153. package/src/lib/composables/useAtomixGlass.ts +861 -44
  154. package/src/lib/composables/useBarChart.ts +13 -6
  155. package/src/lib/composables/useChart.ts +17 -13
  156. package/src/lib/composables/useChartExport.ts +19 -78
  157. package/src/lib/composables/useChartToolbar.ts +0 -1
  158. package/src/lib/composables/useEdgePanel.ts +111 -103
  159. package/src/lib/composables/useFooter.ts +3 -3
  160. package/src/lib/composables/useGlassContainer.ts +16 -7
  161. package/src/lib/composables/useLineChart.ts +8 -1
  162. package/src/lib/composables/useRiver.ts +5 -0
  163. package/src/lib/composables/useSlider.ts +62 -24
  164. package/src/lib/composables/useVideoPlayer.ts +60 -63
  165. package/src/lib/constants/components.ts +146 -32
  166. package/src/lib/types/components.ts +258 -10
  167. package/src/lib/utils/displacement-generator.ts +55 -49
  168. package/src/lib/utils/icons.ts +1 -1
  169. package/src/lib/utils/index.ts +16 -10
  170. package/src/styles/01-settings/_settings.accordion.scss +19 -19
  171. package/src/styles/01-settings/_settings.animations.scss +5 -5
  172. package/src/styles/01-settings/_settings.avatar-group.scss +1 -1
  173. package/src/styles/01-settings/_settings.avatar.scss +17 -17
  174. package/src/styles/01-settings/_settings.background.scss +1 -4
  175. package/src/styles/01-settings/_settings.badge.scss +1 -1
  176. package/src/styles/01-settings/_settings.breadcrumb.scss +1 -1
  177. package/src/styles/01-settings/_settings.card.scss +1 -1
  178. package/src/styles/01-settings/_settings.chart.scss +65 -2
  179. package/src/styles/01-settings/_settings.dropdown.scss +1 -1
  180. package/src/styles/01-settings/_settings.footer.scss +35 -42
  181. package/src/styles/01-settings/_settings.input.scss +1 -1
  182. package/src/styles/01-settings/_settings.list.scss +1 -1
  183. package/src/styles/01-settings/_settings.rating.scss +1 -1
  184. package/src/styles/01-settings/_settings.tabs.scss +1 -1
  185. package/src/styles/01-settings/_settings.upload.scss +6 -5
  186. package/src/styles/02-tools/_tools.animations.scss +4 -5
  187. package/src/styles/02-tools/_tools.background.scss +1 -13
  188. package/src/styles/02-tools/_tools.glass.scss +0 -1
  189. package/src/styles/02-tools/_tools.utility-api.scss +42 -34
  190. package/src/styles/03-generic/_generic.root.scss +1 -4
  191. package/src/styles/04-elements/_elements.body.scss +0 -1
  192. package/src/styles/06-components/_components.atomix-glass.scss +216 -39
  193. package/src/styles/06-components/_components.badge.scss +6 -8
  194. package/src/styles/06-components/_components.button.scss +8 -3
  195. package/src/styles/06-components/_components.card.scss +2 -14
  196. package/src/styles/06-components/_components.chart.scss +969 -1449
  197. package/src/styles/06-components/_components.dropdown.scss +19 -7
  198. package/src/styles/06-components/_components.edge-panel.scss +4 -2
  199. package/src/styles/06-components/_components.footer.scss +166 -85
  200. package/src/styles/06-components/_components.input.scss +8 -9
  201. package/src/styles/06-components/_components.list.scss +1 -0
  202. package/src/styles/06-components/_components.modal.scss +5 -3
  203. package/src/styles/06-components/_components.skeleton.scss +8 -6
  204. package/src/styles/06-components/_components.upload.scss +219 -4
  205. package/src/styles/06-components/old.chart.styles.scss +1 -30
  206. package/src/styles/99-utilities/_utilities.opacity.scss +1 -1
  207. package/src/styles/99-utilities/_utilities.scss +1 -1
  208. package/src/components/Chart/AdvancedChart.tsx +0 -624
  209. package/src/components/Chart/LineChartNew.tsx +0 -167
  210. package/src/components/Chart/RealTimeChart.tsx +0 -436
  211. package/src/components/DatePicker/DatePicker copy.tsx +0 -551
@@ -2397,60 +2397,183 @@ a, a:hover {
2397
2397
  margin-left: calc(var(--atomix-avatar-size) * -1 * var(--atomix-avatar-group-stacked-overlap) / 100);
2398
2398
  z-index: 1;
2399
2399
  }
2400
- .atomix-glass__layer, .atomix-glass__overlay, .atomix-glass__base, .atomix-glass__border-1, .atomix-glass__border-2 {
2401
- pointer-events: none;
2400
+ .c-atomix-glass {
2401
+ position: relative;
2402
+ --atomix-glass-radius: var(--atomix-radius-md, 16px);
2403
+ --atomix-glass-transform: none;
2404
+ --atomix-glass-transition: opacity var(--atomix-transition-duration, 0.2s) ease-out;
2405
+ --atomix-glass-position: absolute;
2406
+ --atomix-glass-container-width: 100%;
2407
+ --atomix-glass-container-height: 100%;
2408
+ --atomix-glass-border-width: var(--atomix-spacing-0-5, 0.09375rem);
2409
+ }
2410
+ .c-atomix-glass__hover-1, .c-atomix-glass__hover-2, .c-atomix-glass__hover-3, .c-atomix-glass__base, .c-atomix-glass__overlay {
2402
2411
  position: absolute;
2403
2412
  inset: 0;
2404
- border-radius: inherit;
2405
- transform: inherit;
2406
- transition: inherit;
2413
+ pointer-events: none;
2414
+ border-radius: var(--atomix-glass-radius);
2415
+ transform: var(--atomix-glass-transform);
2416
+ transition: var(--atomix-glass-transition);
2417
+ }
2418
+ .c-atomix-glass__hover-1, .c-atomix-glass__hover-2, .c-atomix-glass__hover-3 {
2419
+ mix-blend-mode: overlay;
2420
+ opacity: var(--atomix-glass-hover-1-opacity, 0);
2421
+ background: var(--atomix-glass-hover-1-gradient, none);
2422
+ }
2423
+ .c-atomix-glass__hover-1 {
2424
+ transition: opacity 0.2s ease-out;
2425
+ opacity: var(--atomix-glass-hover-1-opacity, 0);
2426
+ background: var(--atomix-glass-hover-1-gradient, none);
2427
+ }
2428
+ .c-atomix-glass__hover-2 {
2429
+ transition: opacity 0.4s ease-out;
2430
+ opacity: var(--atomix-glass-hover-2-opacity, 0);
2431
+ background: var(--atomix-glass-hover-2-gradient, none);
2432
+ }
2433
+ .c-atomix-glass__hover-3 {
2434
+ transition: opacity 0.6s ease-out;
2435
+ opacity: var(--atomix-glass-hover-3-opacity, 0);
2436
+ background: var(--atomix-glass-hover-3-gradient, none);
2437
+ }
2438
+ .c-atomix-glass__base {
2439
+ mix-blend-mode: soft-light;
2440
+ opacity: var(--atomix-glass-base-opacity, 0);
2441
+ background: var(--atomix-glass-base-gradient, none);
2442
+ }
2443
+ .c-atomix-glass__overlay {
2444
+ mix-blend-mode: overlay;
2445
+ opacity: var(--atomix-glass-overlay-opacity, 0);
2446
+ background: var(--atomix-glass-overlay-gradient, none);
2447
+ }
2448
+ .c-atomix-glass__overlay-highlight {
2449
+ position: absolute;
2450
+ inset: var(--atomix-spacing-0-5, 0.125rem);
2451
+ pointer-events: none;
2452
+ border-radius: var(--atomix-glass-radius);
2453
+ transform: var(--atomix-glass-transform);
2454
+ transition: var(--atomix-glass-transition);
2455
+ mix-blend-mode: screen;
2407
2456
  }
2408
- .atomix-glass__border-1, .atomix-glass__border-2 {
2457
+ .c-atomix-glass__border-1, .c-atomix-glass__border-2 {
2458
+ padding: var(--atomix-glass-border-width);
2409
2459
  box-sizing: border-box;
2410
- padding: 1.5px;
2411
- -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
2460
+ overflow: hidden;
2461
+ pointer-events: none;
2462
+ -webkit-mask: linear-gradient(var(--atomix-black, #000000) 0 0) content-box, linear-gradient(var(--atomix-black, #000000) 0 0);
2412
2463
  -webkit-mask-composite: xor;
2413
- mask-composite: exclude;
2414
- box-shadow: 0 0 0 0.5px rgba(255, 255, 255, 0.5) inset, 0 1px 3px rgba(255, 255, 255, 0.25) inset, 0 1px 4px rgba(0, 0, 0, 0.35);
2415
- transition-property: transform;
2416
- }
2417
- .atomix-glass__border-1 {
2418
- z-index: 5;
2419
- opacity: 0.3;
2464
+ -webkit-mask: linear-gradient(var(--atomix-black, #000000) 0 0) content-box, linear-gradient(var(--atomix-black, #000000) 0 0);
2465
+ mask: linear-gradient(var(--atomix-black, #000000) 0 0) content-box, linear-gradient(var(--atomix-black, #000000) 0 0);
2466
+ -webkit-mask-composite: xor;
2467
+ mask-composite: exclude;
2468
+ position: var(--atomix-glass-position);
2469
+ top: var(--atomix-glass-top);
2470
+ left: var(--atomix-glass-left);
2471
+ width: var(--atomix-glass-width);
2472
+ height: var(--atomix-glass-height);
2473
+ border-radius: var(--atomix-glass-radius);
2474
+ transform: var(--atomix-glass-transform);
2475
+ transition: var(--atomix-glass-transition);
2476
+ }
2477
+ .c-atomix-glass__border-1 {
2478
+ opacity: var(--atomix-opacity-20, 0.2);
2420
2479
  mix-blend-mode: screen;
2480
+ z-index: var(--atomix-z-index-5, 5);
2481
+ background: var(--atomix-glass-border-gradient-1, none);
2482
+ box-shadow: var(--atomix-glass-border-shadow, 0 0 0 0.03125rem rgba(255, 255, 255, 0.5) inset, 0 0.25rem 0.75rem rgba(255, 255, 255, 0.25) inset, 0 0.25rem 1rem rgba(0, 0, 0, 0.35));
2483
+ }
2484
+ .c-atomix-glass__border-2 {
2485
+ mix-blend-mode: overlay;
2486
+ z-index: var(--atomix-z-index-6, 6);
2487
+ background: var(--atomix-glass-border-gradient-2, none);
2488
+ box-shadow: var(--atomix-glass-border-shadow, 0 0 0 0.03125rem rgba(255, 255, 255, 0.5) inset, 0 0.25rem 0.75rem rgba(255, 255, 255, 0.25) inset, 0 0.25rem 1rem rgba(0, 0, 0, 0.35));
2489
+ }
2490
+ .c-atomix-glass__container {
2491
+ width: var(--atomix-glass-container-width);
2492
+ height: var(--atomix-glass-container-height);
2493
+ position: relative;
2494
+ border-radius: var(--atomix-glass-radius);
2495
+ transition: border-radius 0.25s ease-out;
2421
2496
  }
2422
- .atomix-glass__border-2 {
2423
- z-index: 6;
2497
+ .c-atomix-glass__inner {
2498
+ width: var(--atomix-glass-container-width);
2499
+ height: var(--atomix-glass-container-height);
2500
+ position: relative;
2501
+ border-radius: var(--atomix-glass-radius);
2424
2502
  }
2425
- .atomix-glass__hover-1, .atomix-glass__hover-2, .atomix-glass__hover-3 {
2503
+ .c-atomix-glass__filter {
2426
2504
  position: absolute;
2427
- inset: 0;
2505
+ top: 0;
2506
+ left: 0;
2507
+ width: 100%;
2508
+ height: 100%;
2428
2509
  pointer-events: none;
2429
- border-radius: inherit;
2430
- transform: inherit;
2431
- transition: inherit;
2432
- transition-property: transform, opacity;
2433
2510
  }
2434
- .atomix-glass__hover-1 {
2435
- opacity: 0;
2511
+ .c-atomix-glass__filter-overlay {
2512
+ position: absolute;
2513
+ inset: 0;
2514
+ pointer-events: none;
2436
2515
  }
2437
- .atomix-glass__hover-2 {
2438
- overflow: hidden;
2439
- opacity: 0;
2516
+ .c-atomix-glass__filter-shadow {
2517
+ position: absolute;
2518
+ inset: var(--atomix-glass-border-width);
2519
+ pointer-events: none;
2440
2520
  }
2441
- .atomix-glass__hover-3 {
2442
- opacity: 0;
2521
+ .c-atomix-glass__content {
2522
+ position: relative;
2523
+ width: var(--atomix-glass-container-width);
2524
+ height: var(--atomix-glass-container-height);
2443
2525
  }
2444
- .atomix-glass__base {
2526
+ .c-atomix-glass__background-layer {
2527
+ position: absolute;
2528
+ pointer-events: none;
2529
+ border-radius: var(--atomix-glass-radius);
2530
+ transform: var(--atomix-glass-transform);
2531
+ transition: var(--atomix-glass-transition);
2445
2532
  will-change: transform;
2446
- transition-property: transform, opacity;
2447
- opacity: 0;
2448
2533
  }
2449
- .atomix-glass__overlay {
2534
+ .c-atomix-glass__background-layer--dark {
2535
+ background-color: var(--atomix-gray-9, #1f2937);
2536
+ }
2537
+ .c-atomix-glass__background-layer--black {
2538
+ background-color: var(--atomix-black, #000000);
2450
2539
  mix-blend-mode: overlay;
2451
- will-change: transform;
2452
- transition-property: transform, opacity;
2453
- opacity: 0;
2540
+ }
2541
+ .c-atomix-glass__background-layer--dark.c-atomix-glass__background-layer--over-light {
2542
+ opacity: var(--atomix-opacity-50, 0.5);
2543
+ }
2544
+ .c-atomix-glass__background-layer--black.c-atomix-glass__background-layer--over-light {
2545
+ opacity: var(--atomix-opacity-25, 0.25);
2546
+ }
2547
+ .c-atomix-glass__background-layer--hidden {
2548
+ opacity: var(--atomix-opacity-0, 0);
2549
+ }
2550
+ .c-atomix-glass--reduced-motion {
2551
+ --atomix-glass-transition: none;
2552
+ }
2553
+ .c-atomix-glass--reduced-motion * {
2554
+ transition: none !important;
2555
+ }
2556
+ .c-atomix-glass--high-contrast {
2557
+ border: var(--atomix-spacing-0-5, 2px) solid currentColor;
2558
+ outline: var(--atomix-spacing-0-5, 2px) solid transparent;
2559
+ outline-offset: var(--atomix-spacing-0-5, 2px);
2560
+ }
2561
+ .c-atomix-glass--disabled-effects {
2562
+ --atomix-glass-transform: none;
2563
+ --atomix-glass-transition: none;
2564
+ }
2565
+ @media (prefers-reduced-motion: reduce) {
2566
+ .c-atomix-glass {
2567
+ --atomix-glass-transition: none;
2568
+ }
2569
+ .c-atomix-glass * {
2570
+ transition: none !important;
2571
+ }
2572
+ }
2573
+ @media (prefers-contrast: high) {
2574
+ .c-atomix-glass {
2575
+ border-width: var(--atomix-spacing-0-5, 0.125rem);
2576
+ }
2454
2577
  }
2455
2578
  .c-badge {
2456
2579
  --atomix-tag-font-size: 12px;
@@ -3471,19 +3594,8 @@ a, a:hover {
3471
3594
  padding-top: 0;
3472
3595
  }
3473
3596
  .c-card--glass {
3474
- background-color: transparent;
3475
- padding: 0;
3476
- border: none;
3477
- display: block;
3478
- border-radius: 0;
3479
- }
3480
- .c-card--glass .c-card__glass-content {
3481
- padding: var(--atomix-card-spacer-y) var(--atomix-card-spacer-x);
3482
- max-width: var(--atomix-card-width);
3483
- border-radius: var(--atomix-card-border-radius);
3484
- width: 100%;
3597
+ max-width: none;
3485
3598
  background-color: color-mix(in srgb, var(--atomix-card-bg) 50%, transparent);
3486
- background-blend-mode: overlay;
3487
3599
  }
3488
3600
  .is-elevated .c-card {
3489
3601
  box-shadow: var(--atomix-box-shadow-lg, 0 16px 48px rgba(0, 0, 0, 0.175));
@@ -3505,126 +3617,49 @@ a, a:hover {
3505
3617
  border: var(--atomix-chart-border-width) solid var(--atomix-chart-border-color);
3506
3618
  border-radius: var(--atomix-chart-border-radius);
3507
3619
  overflow: hidden;
3508
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.075);
3620
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24), 0 0 0 1px rgba(var(--atomix-primary-rgb), 0.05);
3509
3621
  position: relative;
3510
3622
  min-height: var(--atomix-chart-min-height);
3511
3623
  width: 100%;
3512
3624
  max-width: 100%;
3513
- background-color: var(--atomix-chart-bg);
3514
- transition-property: all;
3515
- transition-duration: 0.2s;
3516
- transition-timing-function: ease-in-out;
3517
- transition-delay: 0s;
3625
+ background: var(--atomix-chart-bg);
3626
+ backdrop-filter: blur(10px);
3627
+ -webkit-backdrop-filter: blur(10px);
3518
3628
  }
3519
- .c-chart::after {
3629
+ .c-chart::before {
3520
3630
  content: "";
3521
3631
  position: absolute;
3522
3632
  inset: 0;
3523
- background: linear-gradient(135deg, rgba(var(--atomix-primary-rgb), 0.1) 0%, transparent 50%, rgba(var(--atomix-secondary-rgb), 0.05) 100%);
3633
+ background: linear-gradient(135deg, rgba(var(--atomix-primary-rgb), 0.08) 0%, transparent 40%, transparent 60%, rgba(var(--atomix-secondary-rgb), 0.04) 100%), radial-gradient(circle at 20% 20%, rgba(var(--atomix-primary-rgb), 0.06) 0%, transparent 50%), radial-gradient(circle at 80% 80%, rgba(var(--atomix-secondary-rgb), 0.04) 0%, transparent 50%);
3524
3634
  pointer-events: none;
3525
3635
  z-index: 1;
3636
+ opacity: 1;
3637
+ transition: opacity 0.3s ease;
3526
3638
  }
3527
- .c-chart:hover {
3528
- box-shadow: 0 16px 48px rgba(0, 0, 0, 0.175);
3529
- border-color: var(--atomix-primary-border-subtle);
3530
- }
3531
- .c-chart:focus-visible {
3532
- box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1), 0 0 0 calc(var(--atomix-border-width) * 3) var(--atomix-primary-border-subtle);
3533
- }
3534
- .c-chart--xs {
3535
- --atomix-chart-min-height: 7rem;
3536
- --atomix-chart-padding: 0.5rem;
3537
- font-size: 0.75rem;
3538
- }
3539
- .c-chart--sm {
3540
- --atomix-chart-min-height: 9rem;
3541
- --atomix-chart-padding: 0.75rem;
3542
- font-size: 0.875rem;
3543
- }
3544
- .c-chart--md {
3545
- --atomix-chart-min-height: 13rem;
3546
- --atomix-chart-padding: 1rem;
3547
- font-size: 1rem;
3548
- }
3549
- .c-chart--lg {
3550
- --atomix-chart-min-height: 18rem;
3551
- --atomix-chart-padding: 1.5rem;
3552
- font-size: 1.125rem;
3553
- }
3554
- .c-chart--xl {
3555
- --atomix-chart-min-height: 20rem;
3556
- --atomix-chart-padding: 2rem;
3557
- font-size: 1.25rem;
3558
- }
3559
- .c-chart--2xl {
3560
- --atomix-chart-min-height: ;
3561
- --atomix-chart-padding: 2.5rem;
3562
- font-size: 1.25rem;
3563
- }
3564
- .c-chart--full {
3565
- height: 100vh;
3566
- min-height: auto;
3567
- border-radius: 0;
3568
- }
3569
- .c-chart--auto {
3570
- height: auto;
3571
- min-height: 8rem;
3572
- }
3573
- .c-chart--primary {
3574
- --atomix-chart-primary-color: var(--atomix-primary-6);
3575
- --atomix-chart-border-color: var(--atomix-primary-border-subtle);
3576
- }
3577
- .c-chart--primary:hover {
3578
- border-color: var(--atomix-primary-border-subtle);
3579
- }
3580
- .c-chart--secondary {
3581
- --atomix-chart-primary-color: var(--atomix-secondary-6);
3582
- --atomix-chart-border-color: var(--atomix-secondary-border-subtle);
3583
- }
3584
- .c-chart--secondary:hover {
3585
- border-color: var(--atomix-secondary-border-subtle);
3586
- }
3587
- .c-chart--success {
3588
- --atomix-chart-primary-color: var(--atomix-success-6);
3589
- --atomix-chart-border-color: var(--atomix-success-border-subtle);
3590
- }
3591
- .c-chart--success:hover {
3592
- border-color: var(--atomix-success-border-subtle);
3593
- }
3594
- .c-chart--info {
3595
- --atomix-chart-primary-color: var(--atomix-info-6);
3596
- --atomix-chart-border-color: var(--atomix-info-border-subtle);
3597
- }
3598
- .c-chart--info:hover {
3599
- border-color: var(--atomix-info-border-subtle);
3600
- }
3601
- .c-chart--warning {
3602
- --atomix-chart-primary-color: var(--atomix-warning-6);
3603
- --atomix-chart-border-color: var(--atomix-warning-border-subtle);
3604
- }
3605
- .c-chart--warning:hover {
3606
- border-color: var(--atomix-warning-border-subtle);
3607
- }
3608
- .c-chart--error {
3609
- --atomix-chart-primary-color: var(--atomix-error-6);
3610
- --atomix-chart-border-color: var(--atomix-error-border-subtle);
3611
- }
3612
- .c-chart--error:hover {
3613
- border-color: var(--atomix-error-border-subtle);
3614
- }
3615
- .c-chart--light {
3616
- --atomix-chart-primary-color: var(--atomix-light-6);
3617
- --atomix-chart-border-color: var(--atomix-light-border-subtle);
3618
- }
3619
- .c-chart--light:hover {
3620
- border-color: var(--atomix-light-border-subtle);
3639
+ .c-chart::after {
3640
+ content: "";
3641
+ position: absolute;
3642
+ inset: 0;
3643
+ border-radius: inherit;
3644
+ padding: 1px;
3645
+ background: linear-gradient(135deg, rgba(var(--atomix-primary-rgb), 0.1), rgba(var(--atomix-secondary-rgb), 0.05), transparent);
3646
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
3647
+ -webkit-mask-composite: xor;
3648
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
3649
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
3650
+ -webkit-mask-composite: xor;
3651
+ mask-composite: exclude;
3652
+ pointer-events: none;
3653
+ z-index: 2;
3654
+ opacity: 0;
3655
+ transition: opacity 0.3s ease;
3621
3656
  }
3622
- .c-chart--dark {
3623
- --atomix-chart-primary-color: var(--atomix-dark-6);
3624
- --atomix-chart-border-color: var(--atomix-dark-border-subtle);
3657
+ .c-chart:hover {
3658
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 0, 0, 0.16), 0 0 0 1px rgba(var(--atomix-primary-rgb), 0.1), 0 0 40px rgba(var(--atomix-primary-rgb), 0.08);
3659
+ border-color: rgba(var(--atomix-primary-rgb), 0.2);
3625
3660
  }
3626
- .c-chart--dark:hover {
3627
- border-color: var(--atomix-dark-border-subtle);
3661
+ .c-chart:hover::after {
3662
+ opacity: 1;
3628
3663
  }
3629
3664
  .c-chart--loading .c-chart__content {
3630
3665
  position: relative;
@@ -3644,38 +3679,6 @@ a, a:hover {
3644
3679
  opacity: 0.3;
3645
3680
  filter: blur(1px);
3646
3681
  }
3647
- .c-chart--interactive {
3648
- cursor: pointer;
3649
- -webkit-user-select: none;
3650
- -moz-user-select: none;
3651
- user-select: none;
3652
- }
3653
- .c-chart--interactive:hover {
3654
- transform: translateY(-2px);
3655
- box-shadow: 0px 16px 64px -8px rgba(45, 54, 67, 0.14);
3656
- }
3657
- .c-chart--interactive:active {
3658
- transform: translateY(0);
3659
- box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
3660
- transition-duration: 0.1s;
3661
- }
3662
- .c-chart--interactive:focus-visible {
3663
- transform: translateY(-1px);
3664
- }
3665
- .c-chart--disabled {
3666
- pointer-events: none;
3667
- opacity: 0.6;
3668
- }
3669
- .c-chart--disabled .c-chart__content {
3670
- filter: grayscale(80%) opacity(0.6);
3671
- }
3672
- .c-chart--disabled .c-chart__canvas {
3673
- pointer-events: none;
3674
- }
3675
- .c-chart--disabled:hover {
3676
- transform: none;
3677
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.075);
3678
- }
3679
3682
  .c-chart--fullscreen {
3680
3683
  position: fixed;
3681
3684
  top: 0;
@@ -3685,29 +3688,58 @@ a, a:hover {
3685
3688
  z-index: 9999;
3686
3689
  border-radius: 0;
3687
3690
  box-shadow: none;
3688
- background: var(--atomix-primary-bg-default);
3691
+ background: var(--atomix-body-bg);
3689
3692
  }
3690
3693
  .c-chart--elevated {
3691
- box-shadow: 0 16px 48px rgba(0, 0, 0, 0.175);
3692
- transform: translateY(-2px);
3694
+ box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15), 0 6px 12px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(var(--atomix-primary-rgb), 0.1), 0 0 60px rgba(var(--atomix-primary-rgb), 0.12);
3693
3695
  }
3694
3696
  .c-chart--elevated:hover {
3695
- box-shadow: 0px 16px 64px -8px rgba(45, 54, 67, 0.14);
3696
- transform: translateY(-4px);
3697
+ box-shadow: 0 16px 40px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.24), 0 0 0 1px rgba(var(--atomix-primary-rgb), 0.15), 0 0 80px rgba(var(--atomix-primary-rgb), 0.16);
3697
3698
  }
3698
- .c-chart--flat {
3699
+ .c-chart--glass {
3700
+ background: transparent;
3701
+ border: none;
3699
3702
  box-shadow: none;
3700
- border: 2px solid var(--atomix-primary-border-subtle);
3701
3703
  }
3702
- .c-chart--flat:hover {
3703
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.075);
3704
+ .c-chart--glass .c-chart__content {
3705
+ position: relative;
3706
+ }
3707
+ .c-chart--glass .c-chart__canvas {
3708
+ position: relative;
3709
+ }
3710
+ .c-chart--glass .c-chart__toolbar {
3711
+ position: relative;
3712
+ }
3713
+ .c-chart--disabled {
3714
+ opacity: 0.6;
3715
+ cursor: not-allowed;
3716
+ pointer-events: none;
3717
+ pointer-events: none;
3718
+ opacity: 0.6;
3719
+ }
3720
+ .c-chart--disabled:hover, .c-chart--disabled:focus, .c-chart--disabled:active {
3721
+ background-color: inherit;
3722
+ color: inherit;
3704
3723
  transform: none;
3705
3724
  }
3706
- .c-chart--rounded {
3707
- border-radius: 0.75rem;
3725
+ .c-chart--selected {
3726
+ border-color: rgba(var(--atomix-primary-rgb), 0.3);
3727
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 0 2px rgba(var(--atomix-primary-rgb), 0.2), 0 0 30px rgba(var(--atomix-primary-rgb), 0.15);
3728
+ background: linear-gradient(135deg, rgba(var(--atomix-primary-rgb), 0.08) 0%, rgba(var(--atomix-primary-rgb), 0.04) 100%), var(--atomix-chart-bg);
3708
3729
  }
3709
- .c-chart--square {
3710
- border-radius: 0;
3730
+ .c-chart--active {
3731
+ border-color: var(--atomix-primary-border-subtle);
3732
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
3733
+ }
3734
+ .c-chart--clickable {
3735
+ cursor: pointer;
3736
+ }
3737
+ .c-chart--clickable:hover {
3738
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 0, 0, 0.16), 0 0 0 1px rgba(var(--atomix-primary-rgb), 0.1), 0 0 40px rgba(var(--atomix-primary-rgb), 0.08);
3739
+ border-color: rgba(var(--atomix-primary-rgb), 0.25);
3740
+ }
3741
+ .c-chart--clickable:active {
3742
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.12);
3711
3743
  }
3712
3744
  .c-chart__header {
3713
3745
  padding: var(--atomix-chart-padding);
@@ -3817,8 +3849,11 @@ a, a:hover {
3817
3849
  transform: scale(1.1);
3818
3850
  }
3819
3851
  .c-chart__action:focus-visible {
3820
- outline: 2px solid var(--atomix-primary-6);
3852
+ outline: 2px solid var(--atomix-focus-border-color);
3821
3853
  outline-offset: 2px;
3854
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
3855
+ }
3856
+ .c-chart__action:focus-visible {
3822
3857
  border-color: var(--atomix-primary-border-subtle);
3823
3858
  }
3824
3859
  .c-chart__action:active {
@@ -3844,45 +3879,6 @@ a, a:hover {
3844
3879
  background-color: transparent;
3845
3880
  border-color: transparent;
3846
3881
  }
3847
- .c-chart__action--primary {
3848
- background-color: var(--atomix-primary-6);
3849
- color: white;
3850
- border-color: var(--atomix-primary-6);
3851
- }
3852
- .c-chart__action--primary:hover {
3853
- background-color: var(--atomix-primary-7);
3854
- border-color: var(--atomix-primary-7);
3855
- }
3856
- .c-chart__action--primary:active {
3857
- background-color: var(--atomix-primary-8);
3858
- }
3859
- .c-chart__action--success {
3860
- background-color: var(--atomix-success-6);
3861
- color: white;
3862
- border-color: var(--atomix-success-6);
3863
- }
3864
- .c-chart__action--success:hover {
3865
- background-color: var(--atomix-success-7);
3866
- border-color: var(--atomix-success-7);
3867
- }
3868
- .c-chart__action--warning {
3869
- background-color: var(--atomix-warning-6);
3870
- color: white;
3871
- border-color: var(--atomix-warning-6);
3872
- }
3873
- .c-chart__action--warning:hover {
3874
- background-color: var(--atomix-warning-7);
3875
- border-color: var(--atomix-warning-7);
3876
- }
3877
- .c-chart__action--danger {
3878
- background-color: var(--atomix-error-6);
3879
- color: white;
3880
- border-color: var(--atomix-error-6);
3881
- }
3882
- .c-chart__action--danger:hover {
3883
- background-color: var(--atomix-error-7);
3884
- border-color: var(--atomix-error-7);
3885
- }
3886
3882
  .c-chart__export-group {
3887
3883
  position: relative;
3888
3884
  display: flex;
@@ -3904,7 +3900,7 @@ a, a:hover {
3904
3900
  border-radius: 0.25rem;
3905
3901
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.175);
3906
3902
  padding: 0.25rem;
3907
- min-width: 7.5rem;
3903
+ min-width: 7rem;
3908
3904
  z-index: 1000;
3909
3905
  opacity: 0;
3910
3906
  visibility: hidden;
@@ -3934,8 +3930,8 @@ a, a:hover {
3934
3930
  color: var(--atomix-primary-text-emphasis);
3935
3931
  }
3936
3932
  .c-chart__export-option:focus-visible {
3937
- outline: 2px solid var(--atomix-primary-6);
3938
- outline-offset: -2px;
3933
+ outline: calc(var(--atomix-border-width) * 2) solid var(--atomix-primary-6);
3934
+ outline-offset: calc(var(--atomix-border-width) * -2);
3939
3935
  }
3940
3936
  .c-chart__export-option:disabled {
3941
3937
  opacity: 0.4;
@@ -3945,201 +3941,178 @@ a, a:hover {
3945
3941
  .c-chart__export-option:not(:last-child) {
3946
3942
  margin-bottom: 0.25rem;
3947
3943
  }
3948
- .c-chart__content {
3949
- flex: 1 1;
3950
- position: relative;
3951
- padding: var(--atomix-chart-padding);
3952
- display: flex;
3953
- align-items: center;
3954
- justify-content: center;
3955
- min-height: 8rem;
3956
- }
3957
- .c-chart__content::before {
3958
- content: "";
3944
+ .c-chart__settings-menu {
3959
3945
  position: absolute;
3960
- top: 0;
3961
- left: 0;
3946
+ top: 100%;
3962
3947
  right: 0;
3963
- bottom: 0;
3964
- background-image: radial-gradient(circle at 1px 1px, var(--atomix-primary-border-subtle) 1px, transparent 0);
3965
- background-size: 1.25rem 1.25rem;
3966
- opacity: 0.03;
3967
- pointer-events: none;
3968
- z-index: 0;
3969
- }
3970
- .c-chart__content::after {
3971
- content: "";
3972
- position: absolute;
3973
- inset: 0;
3974
- background: linear-gradient(135deg, rgba(255, 255, 255, 0.02) 0%, transparent 50%, rgba(0, 0, 0, 0.02) 100%);
3975
- pointer-events: none;
3976
- z-index: 1;
3977
- }
3978
- .c-chart__canvas {
3979
- width: 100%;
3980
- height: 100%;
3981
- position: relative;
3982
- overflow: hidden;
3948
+ margin-top: 0.25rem;
3949
+ background: var(--atomix-primary-bg-default);
3950
+ border: 1px solid var(--atomix-primary-border-subtle);
3983
3951
  border-radius: 0.25rem;
3984
- z-index: 2;
3952
+ box-shadow: 0 16px 48px rgba(0, 0, 0, 0.175);
3953
+ padding: 0.5rem;
3954
+ min-width: 8.75rem;
3955
+ z-index: 1000;
3956
+ opacity: 0;
3957
+ visibility: hidden;
3958
+ transform: translateY(-8px);
3959
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3960
+ -webkit-backdrop-filter: blur(8px);
3961
+ backdrop-filter: blur(8px);
3985
3962
  }
3986
- .c-chart__canvas svg {
3987
- width: 100%;
3988
- height: 100%;
3989
- shape-rendering: geometricPrecision;
3990
- text-rendering: optimizeLegibility;
3991
- image-rendering: -webkit-optimize-contrast;
3992
- image-rendering: crisp-edges;
3963
+ .c-chart__settings-menu-title {
3964
+ font-size: 0.875rem;
3965
+ font-weight: 600;
3966
+ color: var(--atomix-text-primary);
3967
+ margin-bottom: 0.5rem;
3968
+ padding-bottom: 0.5rem;
3969
+ border-bottom: 1px solid var(--atomix-border-color);
3993
3970
  }
3994
- .c-chart__canvas canvas {
3995
- width: 100%;
3996
- height: 100%;
3997
- image-rendering: -webkit-optimize-contrast;
3998
- image-rendering: crisp-edges;
3971
+ .c-chart__settings-menu-content {
3972
+ display: flex;
3973
+ flex-direction: column;
3974
+ gap: 0.25rem;
3999
3975
  }
4000
- .c-chart__crosshair {
4001
- pointer-events: none;
3976
+ .c-chart__settings-menu-item {
3977
+ display: flex;
3978
+ align-items: center;
3979
+ justify-content: space-between;
3980
+ padding: 0.375rem 0;
3981
+ gap: 0.75rem;
4002
3982
  }
4003
- .c-chart__crosshair line, .c-chart__crosshair-line {
4004
- stroke: var(--atomix-primary-border-subtle);
4005
- stroke-width: 1;
4006
- stroke-dasharray: 4, 4;
3983
+ .c-chart__settings-menu-item--info {
4007
3984
  opacity: 0.7;
3985
+ font-size: 0.75rem;
4008
3986
  }
4009
- .c-chart__crosshair line--vertical, .c-chart__crosshair line--horizontal, .c-chart__crosshair-line--vertical, .c-chart__crosshair-line--horizontal {
4010
- opacity: 0.7;
3987
+ .c-chart__settings-menu-toggle {
3988
+ display: flex;
3989
+ align-items: center;
3990
+ gap: 0.5rem;
3991
+ cursor: pointer;
3992
+ width: 100%;
3993
+ -webkit-user-select: none;
3994
+ -moz-user-select: none;
3995
+ user-select: none;
4011
3996
  }
4012
- .c-chart__zoom-indicator {
4013
- position: absolute;
4014
- top: 10px;
4015
- right: 10px;
4016
- background: rgba(0, 0, 0, 0.8);
4017
- color: white;
4018
- padding: 4px 8px;
4019
- border-radius: 0.25rem;
3997
+ .c-chart__settings-menu-toggle input[type=checkbox] {
3998
+ width: 1rem;
3999
+ height: 1rem;
4000
+ cursor: pointer;
4001
+ accent-color: var(--atomix-primary);
4002
+ flex-shrink: 0;
4003
+ }
4004
+ .c-chart__settings-menu-label {
4020
4005
  font-size: 0.75rem;
4021
4006
  font-weight: 500;
4022
- pointer-events: none;
4023
- z-index: 10;
4024
- }
4025
- .c-chart__navigator {
4026
- opacity: 0.8;
4027
- }
4028
- .c-chart__navigator rect {
4029
- fill: rgba(0, 0, 0, 0.05);
4030
- stroke: var(--atomix-gray-3);
4031
- stroke-width: 1;
4007
+ color: var(--atomix-text-primary);
4008
+ flex: 1 1;
4032
4009
  }
4033
- .c-chart__navigator path {
4034
- stroke-width: 1;
4035
- fill: none;
4036
- opacity: 0.6;
4010
+ .c-chart__settings-menu-value {
4011
+ font-size: 0.75rem;
4012
+ font-weight: 600;
4013
+ color: var(--atomix-secondary-text-emphasis);
4014
+ text-transform: capitalize;
4037
4015
  }
4038
- .c-chart__real-time-indicator {
4039
- position: absolute;
4040
- top: 10px;
4041
- left: 10px;
4016
+ .c-chart__toolbar-group {
4042
4017
  display: flex;
4043
4018
  align-items: center;
4044
- gap: 6px;
4045
- background: var(--atomix-success-bg-subtle);
4046
- color: var(--atomix-success-text-emphasis);
4047
- padding: 4px 8px;
4048
- border-radius: 0.25rem;
4019
+ gap: 0.5rem;
4020
+ position: relative;
4021
+ }
4022
+ .c-chart__toolbar-group:hover .c-chart__export-dropdown,
4023
+ .c-chart__toolbar-group:hover .c-chart__settings-menu {
4024
+ opacity: 1;
4025
+ visibility: visible;
4026
+ transform: translateY(0);
4027
+ }
4028
+ .c-chart__toolbar-separator {
4029
+ width: 1px;
4030
+ height: 1.5rem;
4031
+ background: var(--atomix-border-color);
4032
+ margin: 0 0.5rem;
4033
+ }
4034
+ .c-chart__toolbar-label {
4049
4035
  font-size: 0.75rem;
4050
4036
  font-weight: 500;
4051
- border: 1px solid var(--atomix-success-border-subtle);
4052
- }
4053
- .c-chart__real-time-indicator::before {
4054
- content: "";
4055
- width: 6px;
4056
- height: 6px;
4057
- background: var(--atomix-success-6);
4058
- border-radius: 50%;
4059
- animation: chart-pulse-dot 2s ease-in-out infinite;
4037
+ color: var(--atomix-secondary-text-emphasis);
4038
+ text-transform: uppercase;
4039
+ letter-spacing: 0.5px;
4040
+ margin-right: 0.5rem;
4060
4041
  }
4061
- .c-chart__legend {
4062
- display: flex;
4063
- flex-wrap: wrap;
4064
- gap: 0.75rem;
4042
+ .c-chart__content {
4043
+ flex: 1 1;
4044
+ position: relative;
4065
4045
  padding: var(--atomix-chart-padding);
4066
- border-top: var(--atomix-chart-border-width) solid var(--atomix-brand-border-subtle);
4067
- z-index: 2;
4068
- }
4069
- .c-chart__legend-item {
4070
4046
  display: flex;
4071
4047
  align-items: center;
4072
- gap: 0.5rem;
4073
- cursor: pointer;
4074
- padding: 0.5rem 0.75rem;
4075
- border-radius: 0.25rem;
4076
- border: var(--atomix-chart-border-width) solid transparent;
4077
- background-color: transparent;
4078
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4079
- -webkit-user-select: none;
4080
- -moz-user-select: none;
4081
- user-select: none;
4082
- position: relative;
4048
+ justify-content: center;
4049
+ min-height: 8rem;
4050
+ z-index: 3;
4051
+ contain: layout;
4083
4052
  overflow: hidden;
4084
4053
  }
4085
- .c-chart__legend-item::before {
4054
+ .c-chart__content::before {
4086
4055
  content: "";
4087
4056
  position: absolute;
4088
- inset: 0;
4089
- background: var(--atomix-secondary-bg-subtle);
4090
- opacity: 0;
4091
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4092
- }
4093
- .c-chart__legend-item:hover {
4094
- background-color: var(--atomix-secondary-bg-subtle);
4095
- border-color: var(--atomix-primary-border-subtle);
4096
- transform: translateY(-1px);
4097
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.075);
4098
- }
4099
- .c-chart__legend-item:hover::before {
4100
- opacity: 1;
4101
- }
4102
- .c-chart__legend-item:focus-visible:focus-visible {
4103
- outline: 2px solid var(--atomix-focus-border-color);
4104
- outline-offset: 2px;
4105
- box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4106
- }
4107
- .c-chart__legend-item:active {
4108
- transform: translateY(0);
4109
- }
4110
- .c-chart__legend-item[data-visible=false] {
4057
+ top: 0;
4058
+ left: 0;
4059
+ right: 0;
4060
+ bottom: 0;
4061
+ background-image: radial-gradient(circle at 1px 1px, rgba(var(--atomix-primary-rgb), 0.08) 1px, transparent 0);
4062
+ background-size: 16px 16px;
4111
4063
  opacity: 0.4;
4112
- filter: grayscale(60%);
4113
- }
4114
- .c-chart__legend-item[data-visible=false] .c-chart__legend-label {
4115
- text-decoration: line-through;
4064
+ pointer-events: none;
4065
+ z-index: 0;
4116
4066
  }
4117
- .c-chart__legend-item[data-visible=false] .c-chart__legend-color {
4118
- opacity: 0.3;
4119
- filter: grayscale(100%);
4067
+ .c-chart__content::after {
4068
+ content: "";
4069
+ position: absolute;
4070
+ inset: 0;
4071
+ background: linear-gradient(180deg, rgba(var(--atomix-primary-rgb), 0.03) 0%, transparent 30%, transparent 70%, rgba(var(--atomix-secondary-rgb), 0.02) 100%);
4072
+ pointer-events: none;
4073
+ z-index: 1;
4120
4074
  }
4121
- .c-chart__legend-color {
4122
- width: 0.75rem;
4123
- height: 0.75rem;
4124
- border-radius: 0.25rem;
4125
- border: var(--atomix-chart-border-width) solid var(--atomix-primary-border-subtle);
4126
- flex-shrink: 0;
4127
- box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
4128
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4075
+ .c-chart__canvas {
4076
+ width: 100%;
4077
+ height: 100%;
4129
4078
  position: relative;
4079
+ overflow: hidden;
4080
+ border-radius: 0.25rem;
4081
+ z-index: 2;
4082
+ background: transparent;
4083
+ min-height: 200px;
4084
+ contain: layout style paint;
4130
4085
  }
4131
- .c-chart__legend-label {
4132
- color: var(--atomix-primary-text-emphasis);
4133
- font-weight: 500;
4134
- letter-spacing: -0.01em;
4135
- transition: color 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4136
- position: relative;
4137
- z-index: 1;
4086
+ .c-chart__canvas svg {
4087
+ display: block;
4088
+ shape-rendering: geometricPrecision;
4089
+ text-rendering: optimizeLegibility;
4090
+ image-rendering: -webkit-optimize-contrast;
4091
+ image-rendering: crisp-edges;
4092
+ will-change: contents;
4093
+ -webkit-backface-visibility: hidden;
4094
+ backface-visibility: hidden;
4095
+ transform: translateZ(0);
4096
+ opacity: 0;
4097
+ animation: chart-fade-in 0.3s ease-out forwards;
4098
+ }
4099
+ @keyframes chart-fade-in {
4100
+ from {
4101
+ opacity: 0;
4102
+ }
4103
+ to {
4104
+ opacity: 1;
4105
+ }
4106
+ }
4107
+ .c-chart__canvas canvas {
4108
+ width: 100%;
4109
+ height: 100%;
4110
+ display: block;
4111
+ image-rendering: -webkit-optimize-contrast;
4112
+ image-rendering: crisp-edges;
4138
4113
  }
4139
4114
  .c-chart__tooltip {
4140
4115
  position: fixed;
4141
- top: 0;
4142
- left: 0;
4143
4116
  -webkit-backdrop-filter: blur(1rem);
4144
4117
  backdrop-filter: blur(1rem);
4145
4118
  border-radius: 0.625rem;
@@ -4171,8 +4144,8 @@ a, a:hover {
4171
4144
  gap: 0.5rem;
4172
4145
  }
4173
4146
  .c-chart__tooltip-color-indicator {
4174
- width: 12px;
4175
- height: 12px;
4147
+ width: 0.75rem;
4148
+ height: 0.75rem;
4176
4149
  border-radius: 50%;
4177
4150
  flex-shrink: 0;
4178
4151
  }
@@ -4206,64 +4179,10 @@ a, a:hover {
4206
4179
  color: var(--atomix-primary-text-emphasis);
4207
4180
  font-weight: 500;
4208
4181
  }
4209
- .c-chart__axis {
4210
- position: relative;
4211
- z-index: 55;
4212
- }
4213
- .c-chart__axis--x {
4214
- text-anchor: middle;
4215
- dominant-baseline: hanging;
4216
- }
4217
- .c-chart__axis--y {
4218
- text-anchor: end;
4219
- dominant-baseline: middle;
4220
- }
4221
- .c-chart__axis-line {
4222
- stroke: var(--atomix-primary-border-subtle);
4223
- stroke-width: 1;
4224
- opacity: 0.6;
4225
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4226
- }
4227
- .c-chart__axis-line--x, .c-chart__axis-line--y {
4228
- stroke-width: 2;
4229
- }
4230
- .c-chart__axis-line:hover {
4231
- opacity: 0.8;
4232
- }
4233
- .c-chart__tick-line {
4234
- stroke: var(--atomix-primary-border-subtle);
4235
- stroke-width: 1;
4236
- }
4237
- .c-chart__tick-label {
4238
- font-size: 0.75rem;
4239
- fill: var(--atomix-secondary-text-emphasis);
4240
- }
4241
- .c-chart__axis-label {
4242
- font-size: 0.75rem;
4243
- font-weight: 500;
4244
- fill: var(--atomix-tertiary-text-emphasis);
4245
- text-anchor: middle;
4246
- }
4247
- .c-chart__plot-area {
4248
- fill: rgba(248, 250, 252, 0.5);
4249
- stroke: var(--atomix-primary-border-subtle);
4250
- stroke-width: 1;
4251
- }
4252
- .c-chart__value-label {
4253
- font-size: 0.75rem;
4254
- fill: var(--atomix-primary-text-emphasis);
4255
- pointer-events: none;
4256
- }
4257
- .c-chart__data-label {
4258
- font-size: 0.75rem;
4259
- fill: var(--atomix-secondary-text-emphasis);
4260
- pointer-events: none;
4261
- }
4262
4182
  .c-chart__grid {
4263
4183
  stroke: var(--atomix-primary-border-subtle);
4264
4184
  stroke-width: 0.5;
4265
4185
  stroke-dasharray: 2, 4;
4266
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4267
4186
  }
4268
4187
  .c-chart__grid--major {
4269
4188
  stroke-width: 1;
@@ -4278,40 +4197,54 @@ a, a:hover {
4278
4197
  stroke-dasharray: none;
4279
4198
  opacity: 0.6;
4280
4199
  }
4281
- .c-chart__grid:hover {
4200
+ .c-chart__axis-line {
4201
+ stroke: var(--atomix-border-color);
4202
+ stroke-width: 1;
4282
4203
  opacity: 0.6;
4283
4204
  }
4205
+ .c-chart__axis-label {
4206
+ font-size: 0.75rem;
4207
+ font-weight: 500;
4208
+ fill: var(--atomix-tertiary-text-emphasis);
4209
+ }
4210
+ .c-chart__legend-item-color {
4211
+ width: 0.75rem;
4212
+ height: 0.75rem;
4213
+ flex-shrink: 0;
4214
+ }
4215
+ .c-chart__legend-item-text {
4216
+ font-size: 0.75rem;
4217
+ fill: var(--atomix-text-primary);
4218
+ }
4219
+ .c-chart__data-line {
4220
+ stroke-width: 2.5;
4221
+ fill: none;
4222
+ }
4223
+ .c-chart__data-line--hovered {
4224
+ stroke-width: 3.5;
4225
+ }
4284
4226
  .c-chart__data-point {
4285
4227
  cursor: pointer;
4286
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
4287
- transform-origin: center center;
4228
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4288
4229
  }
4289
4230
  .c-chart__data-point:hover {
4290
4231
  opacity: 0.8;
4291
- filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
4292
4232
  }
4293
4233
  .c-chart__data-point:focus-visible {
4294
- outline: 2px solid var(--atomix-primary-border-subtle);
4234
+ outline: 2px solid var(--atomix-focus-border-color);
4295
4235
  outline-offset: 2px;
4236
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4296
4237
  }
4297
- .c-chart__data-point:active {
4298
- transform: scale(1.05);
4299
- }
4300
- .c-chart__data-point[data-highlighted=true] {
4301
- transform: scale(1.2);
4302
- filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3));
4303
- z-index: 10;
4304
- animation: chart-glow 2s ease-in-out infinite;
4238
+ .c-chart__data-point--hovered {
4239
+ opacity: 0.9;
4240
+ transform: scale(1.1);
4305
4241
  }
4306
- .c-chart__data-point[data-selected=true] {
4307
- stroke: var(--atomix-primary-border-subtle);
4242
+ .c-chart__data-point--selected {
4243
+ opacity: 1;
4308
4244
  stroke-width: 2;
4309
- filter: drop-shadow(0 0 0 2px var(--atomix-primary-border-subtle));
4245
+ filter: drop-shadow(0 0 4px currentColor);
4310
4246
  }
4311
- .c-chart__data-point[data-animated=true] {
4312
- animation: chart-scale-in 0.5s ease-out;
4313
- }
4314
- .c-chart__loading {
4247
+ .c-chart__empty {
4315
4248
  display: flex;
4316
4249
  flex-direction: column;
4317
4250
  align-items: center;
@@ -4319,970 +4252,707 @@ a, a:hover {
4319
4252
  gap: 1rem;
4320
4253
  color: var(--atomix-secondary-text-emphasis);
4321
4254
  font-size: 0.875rem;
4255
+ text-align: center;
4256
+ padding: 2rem;
4322
4257
  min-height: 8rem;
4258
+ opacity: 0.6;
4323
4259
  animation: chart-fade-in 0.6s ease-out;
4324
4260
  }
4325
- .c-chart__loading-spinner {
4326
- width: 2rem;
4327
- height: 2rem;
4328
- border: 3px solid var(--atomix-primary-border-subtle);
4329
- border-top: 3px solid var(--atomix-primary-text-emphasis);
4330
- border-radius: 50%;
4331
- animation: chart-spin 1.2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
4332
- }
4333
- .c-chart__loading-text {
4334
- font-weight: 500;
4335
- opacity: 0.8;
4336
- animation: chart-pulse 2s ease-in-out infinite;
4261
+ .c-chart__toolbar--sm {
4262
+ gap: 0.25rem;
4337
4263
  }
4338
- .c-chart__error {
4339
- display: flex;
4340
- flex-direction: column;
4341
- align-items: center;
4342
- justify-content: center;
4264
+ .c-chart__toolbar--lg {
4265
+ padding: 0.5rem;
4343
4266
  gap: 0.75rem;
4344
- color: var(--atomix-error-text-emphasis);
4345
- font-size: 0.875rem;
4346
- text-align: center;
4347
- padding: 2rem;
4348
- min-height: 8rem;
4349
- background-color: var(--atomix-error-bg-subtle);
4350
- border-radius: 0.25rem;
4351
- border: var(--atomix-chart-border-width) solid var(--atomix-error-border-subtle);
4352
- animation: chart-fade-in 0.6s ease-out;
4353
- }
4354
- .c-chart__empty {
4355
- display: flex;
4356
- flex-direction: column;
4357
- align-items: center;
4358
- justify-content: center;
4359
- gap: 1rem;
4360
- color: var(--atomix-secondary-text-emphasis);
4361
- font-size: 0.875rem;
4362
- text-align: center;
4363
- padding: 2rem;
4364
- min-height: 8rem;
4365
- opacity: 0.6;
4366
- animation: chart-fade-in 0.6s ease-out;
4367
- }
4368
- .c-chart--line .c-chart__canvas .line-path,
4369
- .c-chart--line .c-chart__canvas .c-chart__line-path {
4370
- fill: none;
4371
- stroke-width: 2.5;
4372
- stroke-linecap: round;
4373
- stroke-linejoin: round;
4374
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4375
- filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));
4376
- stroke-dasharray: 1000;
4377
- stroke-dashoffset: 1000;
4378
- animation: chart-draw-line 2s ease-out forwards;
4379
- }
4380
- .c-chart--line .c-chart__canvas .line-path:hover,
4381
- .c-chart--line .c-chart__canvas .c-chart__line-path:hover {
4382
- stroke-width: 3.5;
4383
- filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
4384
4267
  }
4385
- .c-chart--line .c-chart__canvas .trend-line {
4386
- stroke-dasharray: 5, 5;
4387
- opacity: 0.7;
4388
- animation: chart-dash-flow 2s linear infinite;
4389
- }
4390
- .c-chart--line .c-chart__canvas .moving-average {
4391
- stroke-dasharray: 4, 4;
4392
- opacity: 0.6;
4393
- stroke-width: 1;
4394
- fill: none;
4395
- }
4396
- .c-chart--line .c-chart__canvas .area-path,
4397
- .c-chart--line .c-chart__canvas .c-chart__area-path {
4398
- opacity: 0.15;
4399
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4400
- animation: chart-area-fade 1.5s ease-out;
4401
- }
4402
- .c-chart--line .c-chart__canvas .area-path:hover,
4403
- .c-chart--line .c-chart__canvas .c-chart__area-path:hover {
4404
- opacity: 0.25;
4405
- }
4406
- .c-chart--line .c-chart__canvas .chart-point-label {
4407
- font-size: 0.75rem;
4268
+ .c-chart__legend-item--active {
4269
+ opacity: 1;
4408
4270
  font-weight: 600;
4409
- text-anchor: middle;
4410
- dominant-baseline: middle;
4411
- pointer-events: none;
4412
- opacity: 0;
4413
- transition: opacity 0.2s ease;
4414
4271
  }
4415
- .c-chart--line .c-chart__canvas .chart-point-label.visible {
4416
- opacity: 1;
4272
+ .c-chart__legend-item--inactive {
4273
+ opacity: 0.5;
4417
4274
  }
4418
- .c-chart--line .c-chart__canvas .data-point {
4419
- r: 4;
4275
+ .c-chart__treemap-node {
4276
+ stroke: var(--atomix-border-color);
4277
+ stroke-width: 1;
4420
4278
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4421
4279
  cursor: pointer;
4280
+ shape-rendering: geometricPrecision;
4422
4281
  }
4423
- .c-chart--line .c-chart__canvas .data-point:hover {
4424
- r: 6;
4425
- filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
4282
+ .c-chart__treemap-node:hover {
4283
+ transform: scale(1.02);
4284
+ filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1));
4285
+ stroke-width: 1.5;
4426
4286
  }
4427
- .c-chart--line .c-chart__canvas .data-point[data-highlighted=true] {
4428
- r: 8;
4429
- stroke-width: 3;
4287
+ .c-chart__treemap-node--hovered {
4288
+ transform: scale(1.02);
4289
+ filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1));
4290
+ stroke-width: 1.5;
4430
4291
  }
4431
- .c-chart--line .c-chart__canvas .data-point:focus-visible {
4292
+ .c-chart__treemap-node--selected {
4293
+ stroke: var(--atomix-primary-border-subtle);
4294
+ stroke-width: 2;
4295
+ filter: drop-shadow(0 16px 48px rgba(0, 0, 0, 0.175));
4296
+ }
4297
+ .c-chart__treemap-node:focus-visible {
4432
4298
  outline: 2px solid var(--atomix-focus-border-color);
4433
4299
  outline-offset: 2px;
4300
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4434
4301
  }
4435
- .c-chart--area .c-chart__canvas .area-path {
4436
- opacity: 0.3;
4437
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4438
- animation: chart-area-fade 1.5s ease-out;
4439
- }
4440
- .c-chart--area .c-chart__canvas .area-path:hover {
4441
- opacity: 0.45;
4442
- }
4443
- .c-chart--area .c-chart__canvas .line-path {
4444
- stroke-width: 2;
4445
- opacity: 0.9;
4446
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4447
- animation: chart-draw-line 2s ease-out;
4448
- }
4449
- .c-chart--area .c-chart__canvas .line-path:hover {
4450
- stroke-width: 3;
4451
- opacity: 1;
4302
+ .c-chart__treemap-label {
4303
+ font-size: 0.875rem;
4304
+ font-weight: 500;
4305
+ fill: var(--atomix-text-primary);
4306
+ text-anchor: middle;
4307
+ dominant-baseline: middle;
4308
+ pointer-events: none;
4309
+ -webkit-user-select: none;
4310
+ -moz-user-select: none;
4311
+ user-select: none;
4312
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
4452
4313
  }
4453
- .c-chart--bar .c-chart__canvas .bar,
4454
- .c-chart--bar .c-chart__canvas .c-chart__bar, .c-chart--horizontal-bar .c-chart__canvas .bar,
4455
- .c-chart--horizontal-bar .c-chart__canvas .c-chart__bar {
4314
+ .c-chart__funnel-segment {
4315
+ stroke: var(--atomix-border-color);
4316
+ stroke-width: 1;
4456
4317
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4457
4318
  cursor: pointer;
4458
- filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));
4459
- animation: chart-bar-grow 0.8s ease-out;
4460
- opacity: 1;
4319
+ shape-rendering: geometricPrecision;
4461
4320
  }
4462
- .c-chart--bar .c-chart__canvas .bar:hover, .c-chart--bar .c-chart__canvas .bar--hovered,
4463
- .c-chart--bar .c-chart__canvas .c-chart__bar:hover,
4464
- .c-chart--bar .c-chart__canvas .c-chart__bar--hovered, .c-chart--horizontal-bar .c-chart__canvas .bar:hover, .c-chart--horizontal-bar .c-chart__canvas .bar--hovered,
4465
- .c-chart--horizontal-bar .c-chart__canvas .c-chart__bar:hover,
4466
- .c-chart--horizontal-bar .c-chart__canvas .c-chart__bar--hovered {
4467
- opacity: 0.85;
4468
- filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2));
4321
+ .c-chart__funnel-segment:hover {
4322
+ opacity: 0.9;
4323
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4324
+ stroke-width: 1.5;
4469
4325
  }
4470
- .c-chart--bar .c-chart__canvas .bar:focus-visible,
4471
- .c-chart--bar .c-chart__canvas .c-chart__bar:focus-visible, .c-chart--horizontal-bar .c-chart__canvas .bar:focus-visible,
4472
- .c-chart--horizontal-bar .c-chart__canvas .c-chart__bar:focus-visible {
4473
- outline: 2px solid var(--atomix-primary-border-subtle);
4326
+ .c-chart__funnel-segment:focus-visible {
4327
+ outline: 2px solid var(--atomix-focus-border-color);
4474
4328
  outline-offset: 2px;
4329
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4475
4330
  }
4476
- .c-chart--bar .c-chart__canvas .bar[data-animated=true],
4477
- .c-chart--bar .c-chart__canvas .c-chart__bar[data-animated=true], .c-chart--horizontal-bar .c-chart__canvas .bar[data-animated=true],
4478
- .c-chart--horizontal-bar .c-chart__canvas .c-chart__bar[data-animated=true] {
4479
- animation: chart-bar-grow 0.8s ease-out;
4480
- }
4481
- .c-chart--bar .c-chart__canvas .bar-group .bar, .c-chart--horizontal-bar .c-chart__canvas .bar-group .bar {
4482
- animation-delay: calc(var(--bar-index) * 0.1s);
4483
- }
4484
- .c-chart--bar .c-chart__canvas .bar-value-label,
4485
- .c-chart--bar .c-chart__canvas .c-chart__bar-value-label, .c-chart--horizontal-bar .c-chart__canvas .bar-value-label,
4486
- .c-chart--horizontal-bar .c-chart__canvas .c-chart__bar-value-label {
4487
- font-size: 0.75rem;
4331
+ .c-chart__funnel-label {
4332
+ font-size: 0.875rem;
4488
4333
  font-weight: 500;
4489
- fill: var(--atomix-primary-text-emphasis);
4334
+ fill: var(--atomix-text-primary);
4490
4335
  text-anchor: middle;
4491
- opacity: 1;
4492
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4493
- font-feature-settings: "tnum";
4494
- font-variant-numeric: tabular-nums;
4336
+ dominant-baseline: middle;
4495
4337
  pointer-events: none;
4338
+ -webkit-user-select: none;
4339
+ -moz-user-select: none;
4340
+ user-select: none;
4341
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
4496
4342
  }
4497
- .c-chart--bar .c-chart__canvas .bar-value-label.visible,
4498
- .c-chart--bar .c-chart__canvas .c-chart__bar-value-label.visible, .c-chart--horizontal-bar .c-chart__canvas .bar-value-label.visible,
4499
- .c-chart--horizontal-bar .c-chart__canvas .c-chart__bar-value-label.visible {
4500
- opacity: 1;
4501
- }
4502
- .c-chart--bar .c-chart__canvas .bar-gradient stop, .c-chart--horizontal-bar .c-chart__canvas .bar-gradient stop {
4503
- transition: stop-opacity 0.3s ease;
4504
- }
4505
- .c-chart--bar .c-chart__canvas .bar {
4506
- transform-origin: bottom center;
4507
- animation: chart-bar-grow 0.8s ease-out;
4508
- }
4509
- .c-chart--bar .c-chart__canvas .bar:hover {
4510
- transform: scaleY(1.05);
4511
- }
4512
- .c-chart--horizontal-bar .c-chart__canvas .bar {
4513
- transform-origin: left center;
4514
- animation: chart-bar-grow-horizontal 0.8s ease-out;
4515
- }
4516
- .c-chart--horizontal-bar .c-chart__canvas .bar:hover {
4517
- transform: scaleX(1.05);
4518
- }
4519
- .c-chart--pie .c-chart__canvas .pie-slice,
4520
- .c-chart--pie .c-chart__canvas .donut-slice,
4521
- .c-chart--pie .c-chart__canvas .c-chart__pie-slice,
4522
- .c-chart--pie .c-chart__canvas .c-chart__donut-slice, .c-chart--donut .c-chart__canvas .pie-slice,
4523
- .c-chart--donut .c-chart__canvas .donut-slice,
4524
- .c-chart--donut .c-chart__canvas .c-chart__pie-slice,
4525
- .c-chart--donut .c-chart__canvas .c-chart__donut-slice, .c-chart--doughnut .c-chart__canvas .pie-slice,
4526
- .c-chart--doughnut .c-chart__canvas .donut-slice,
4527
- .c-chart--doughnut .c-chart__canvas .c-chart__pie-slice,
4528
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-slice {
4529
- transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
4530
- stroke: var(--atomix-primary-bg-subtle);
4531
- stroke-width: 2;
4532
- cursor: pointer;
4533
- transform-origin: center;
4534
- filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
4535
- opacity: 1;
4536
- animation: chart-pie-draw 1.5s ease-out;
4537
- }
4538
- .c-chart--pie .c-chart__canvas .pie-slice:hover, .c-chart--pie .c-chart__canvas .pie-slice--hovered,
4539
- .c-chart--pie .c-chart__canvas .donut-slice:hover,
4540
- .c-chart--pie .c-chart__canvas .donut-slice--hovered,
4541
- .c-chart--pie .c-chart__canvas .c-chart__pie-slice:hover,
4542
- .c-chart--pie .c-chart__canvas .c-chart__pie-slice--hovered,
4543
- .c-chart--pie .c-chart__canvas .c-chart__donut-slice:hover,
4544
- .c-chart--pie .c-chart__canvas .c-chart__donut-slice--hovered, .c-chart--donut .c-chart__canvas .pie-slice:hover, .c-chart--donut .c-chart__canvas .pie-slice--hovered,
4545
- .c-chart--donut .c-chart__canvas .donut-slice:hover,
4546
- .c-chart--donut .c-chart__canvas .donut-slice--hovered,
4547
- .c-chart--donut .c-chart__canvas .c-chart__pie-slice:hover,
4548
- .c-chart--donut .c-chart__canvas .c-chart__pie-slice--hovered,
4549
- .c-chart--donut .c-chart__canvas .c-chart__donut-slice:hover,
4550
- .c-chart--donut .c-chart__canvas .c-chart__donut-slice--hovered, .c-chart--doughnut .c-chart__canvas .pie-slice:hover, .c-chart--doughnut .c-chart__canvas .pie-slice--hovered,
4551
- .c-chart--doughnut .c-chart__canvas .donut-slice:hover,
4552
- .c-chart--doughnut .c-chart__canvas .donut-slice--hovered,
4553
- .c-chart--doughnut .c-chart__canvas .c-chart__pie-slice:hover,
4554
- .c-chart--doughnut .c-chart__canvas .c-chart__pie-slice--hovered,
4555
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-slice:hover,
4556
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-slice--hovered {
4557
- opacity: 0.8;
4558
- transform: scale(1.05);
4559
- stroke-width: 3;
4560
- filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.2));
4561
- }
4562
- .c-chart--pie .c-chart__canvas .pie-slice--selected,
4563
- .c-chart--pie .c-chart__canvas .donut-slice--selected,
4564
- .c-chart--pie .c-chart__canvas .c-chart__pie-slice--selected,
4565
- .c-chart--pie .c-chart__canvas .c-chart__donut-slice--selected, .c-chart--donut .c-chart__canvas .pie-slice--selected,
4566
- .c-chart--donut .c-chart__canvas .donut-slice--selected,
4567
- .c-chart--donut .c-chart__canvas .c-chart__pie-slice--selected,
4568
- .c-chart--donut .c-chart__canvas .c-chart__donut-slice--selected, .c-chart--doughnut .c-chart__canvas .pie-slice--selected,
4569
- .c-chart--doughnut .c-chart__canvas .donut-slice--selected,
4570
- .c-chart--doughnut .c-chart__canvas .c-chart__pie-slice--selected,
4571
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-slice--selected {
4572
- stroke: var(--atomix-primary-border-subtle);
4573
- stroke-width: 3;
4574
- }
4575
- .c-chart--pie .c-chart__canvas .pie-slice:focus-visible,
4576
- .c-chart--pie .c-chart__canvas .donut-slice:focus-visible,
4577
- .c-chart--pie .c-chart__canvas .c-chart__pie-slice:focus-visible,
4578
- .c-chart--pie .c-chart__canvas .c-chart__donut-slice:focus-visible, .c-chart--donut .c-chart__canvas .pie-slice:focus-visible,
4579
- .c-chart--donut .c-chart__canvas .donut-slice:focus-visible,
4580
- .c-chart--donut .c-chart__canvas .c-chart__pie-slice:focus-visible,
4581
- .c-chart--donut .c-chart__canvas .c-chart__donut-slice:focus-visible, .c-chart--doughnut .c-chart__canvas .pie-slice:focus-visible,
4582
- .c-chart--doughnut .c-chart__canvas .donut-slice:focus-visible,
4583
- .c-chart--doughnut .c-chart__canvas .c-chart__pie-slice:focus-visible,
4584
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-slice:focus-visible {
4585
- outline: 2px solid var(--atomix-primary-border-subtle);
4586
- outline-offset: 4px;
4587
- }
4588
- .c-chart--pie .c-chart__canvas .pie-label,
4589
- .c-chart--pie .c-chart__canvas .c-chart__pie-label,
4590
- .c-chart--pie .c-chart__canvas .c-chart__donut-label, .c-chart--donut .c-chart__canvas .pie-label,
4591
- .c-chart--donut .c-chart__canvas .c-chart__pie-label,
4592
- .c-chart--donut .c-chart__canvas .c-chart__donut-label, .c-chart--doughnut .c-chart__canvas .pie-label,
4593
- .c-chart--doughnut .c-chart__canvas .c-chart__pie-label,
4594
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-label {
4343
+ .c-chart__funnel-conversion {
4595
4344
  font-size: 0.75rem;
4596
4345
  font-weight: 600;
4597
- fill: var(--atomix-primary-text-emphasis);
4598
- text-anchor: middle;
4599
- pointer-events: none;
4600
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4601
- font-feature-settings: "tnum";
4602
- font-variant-numeric: tabular-nums;
4603
- }
4604
- .c-chart--donut .c-chart__canvas .donut-slice, .c-chart--doughnut .c-chart__canvas .donut-slice {
4605
- animation: chart-donut-draw 1.5s ease-out;
4606
- }
4607
- .c-chart--donut .c-chart__canvas .donut-center,
4608
- .c-chart--donut .c-chart__canvas .c-chart__donut-center, .c-chart--doughnut .c-chart__canvas .donut-center,
4609
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-center {
4610
- transition: fill 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4611
- }
4612
- .c-chart--donut .c-chart__canvas .c-chart__donut-center-bg, .c-chart--doughnut .c-chart__canvas .c-chart__donut-center-bg {
4613
- fill: var(--atomix-primary-bg-subtle);
4614
- }
4615
- .c-chart--donut .c-chart__canvas .donut-center-label,
4616
- .c-chart--donut .c-chart__canvas .c-chart__donut-center-label, .c-chart--doughnut .c-chart__canvas .donut-center-label,
4617
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-center-label {
4618
- font-size: 0.875rem;
4619
- font-weight: 500;
4620
4346
  fill: var(--atomix-secondary-text-emphasis);
4621
4347
  text-anchor: middle;
4622
- dominant-baseline: central;
4623
- font-feature-settings: "tnum";
4624
- font-variant-numeric: tabular-nums;
4625
- }
4626
- .c-chart--donut .c-chart__canvas .c-chart__donut-center-value, .c-chart--doughnut .c-chart__canvas .c-chart__donut-center-value {
4627
- font-size: 1.5rem;
4628
- font-weight: 700;
4629
- fill: var(--atomix-primary-text-emphasis);
4630
- text-anchor: middle;
4631
- dominant-baseline: central;
4632
- font-feature-settings: "tnum";
4633
- font-variant-numeric: tabular-nums;
4348
+ dominant-baseline: middle;
4349
+ pointer-events: none;
4350
+ -webkit-user-select: none;
4351
+ -moz-user-select: none;
4352
+ user-select: none;
4353
+ opacity: 0.8;
4634
4354
  }
4635
- .c-chart--scatter .c-chart__canvas .scatter-point,
4636
- .c-chart--scatter .c-chart__canvas .c-chart__scatter-point {
4637
- stroke: var(--atomix-primary-border-subtle);
4355
+ .c-chart__heatmap-cell {
4356
+ stroke: var(--atomix-border-color);
4638
4357
  stroke-width: 1;
4358
+ rx: 0.25rem;
4359
+ ry: 0.25rem;
4639
4360
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4640
4361
  cursor: pointer;
4641
- filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));
4642
- animation: chart-fade-in 0.6s ease-out;
4362
+ shape-rendering: geometricPrecision;
4643
4363
  }
4644
- .c-chart--scatter .c-chart__canvas .scatter-point:hover,
4645
- .c-chart--scatter .c-chart__canvas .c-chart__scatter-point:hover {
4646
- filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.3));
4364
+ .c-chart__heatmap-cell:hover {
4365
+ transform: scale(1.05);
4366
+ transform-origin: center;
4367
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4368
+ stroke-width: 2;
4369
+ z-index: 10;
4647
4370
  }
4648
- .c-chart--scatter .c-chart__canvas .scatter-point:focus-visible,
4649
- .c-chart--scatter .c-chart__canvas .c-chart__scatter-point:focus-visible {
4650
- outline: 2px solid var(--atomix-primary-border-subtle);
4371
+ .c-chart__heatmap-cell--hovered {
4372
+ transform: scale(1.05);
4373
+ transform-origin: center;
4374
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4375
+ stroke-width: 2;
4376
+ z-index: 10;
4377
+ }
4378
+ .c-chart__heatmap-cell:focus-visible {
4379
+ outline: 2px solid var(--atomix-focus-border-color);
4651
4380
  outline-offset: 2px;
4381
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4652
4382
  }
4653
- .c-chart--scatter .c-chart__canvas .c-chart__scatter-label {
4383
+ .c-chart__heatmap-label {
4654
4384
  font-size: 0.75rem;
4655
- fill: var(--atomix-primary-text-emphasis);
4385
+ font-weight: 400;
4386
+ fill: var(--atomix-text-primary);
4387
+ text-anchor: middle;
4388
+ dominant-baseline: middle;
4656
4389
  pointer-events: none;
4390
+ -webkit-user-select: none;
4391
+ -moz-user-select: none;
4392
+ user-select: none;
4657
4393
  }
4658
- .c-chart--bubble .c-chart__canvas .c-chart__bubble {
4659
- stroke: var(--atomix-primary-bg-subtle);
4660
- stroke-width: 2;
4661
- cursor: pointer;
4662
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4663
- }
4664
- .c-chart--bubble .c-chart__canvas .c-chart__bubble--animated {
4665
- transition: all 1s ease-out;
4666
- }
4667
- .c-chart--bubble .c-chart__canvas .c-chart__bubble:hover {
4668
- filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3));
4669
- }
4670
- .c-chart--bubble .c-chart__canvas .c-chart__bubble-label {
4394
+ .c-chart__heatmap-axis-label {
4671
4395
  font-size: 0.75rem;
4672
4396
  font-weight: 500;
4673
- fill: var(--atomix-tertiary-text-emphasis);
4397
+ fill: var(--atomix-secondary-text-emphasis);
4398
+ text-anchor: middle;
4399
+ dominant-baseline: middle;
4674
4400
  pointer-events: none;
4401
+ -webkit-user-select: none;
4402
+ -moz-user-select: none;
4403
+ user-select: none;
4675
4404
  }
4676
- .c-chart--bubble .c-chart__canvas .c-chart__bubble-label--center {
4677
- fill: var(--atomix-invert-text-emphasis);
4678
- font-weight: 700;
4679
- text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
4680
- }
4681
- .c-chart--radar .c-chart__canvas .c-chart__radar-grid {
4682
- stroke: var(--atomix-primary-border-subtle);
4683
- stroke-width: 1;
4684
- opacity: 0.3;
4685
- }
4686
- .c-chart--radar .c-chart__canvas .c-chart__radar-axis {
4687
- stroke: var(--atomix-primary-border-subtle);
4688
- stroke-width: 1;
4689
- opacity: 0.5;
4405
+ .c-chart__heatmap-legend-title {
4406
+ font-size: 0.875rem;
4407
+ font-weight: 600;
4408
+ fill: var(--atomix-text-primary);
4409
+ text-anchor: start;
4410
+ dominant-baseline: baseline;
4411
+ pointer-events: none;
4412
+ -webkit-user-select: none;
4413
+ -moz-user-select: none;
4414
+ user-select: none;
4690
4415
  }
4691
- .c-chart--radar .c-chart__canvas .c-chart__radar-label {
4416
+ .c-chart__heatmap-legend-label {
4692
4417
  font-size: 0.75rem;
4418
+ font-weight: 400;
4693
4419
  fill: var(--atomix-secondary-text-emphasis);
4420
+ text-anchor: start;
4421
+ dominant-baseline: middle;
4422
+ pointer-events: none;
4423
+ -webkit-user-select: none;
4424
+ -moz-user-select: none;
4425
+ user-select: none;
4694
4426
  }
4695
- .c-chart--radar .c-chart__canvas .c-chart__radar-fill {
4696
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4697
- }
4698
- .c-chart--radar .c-chart__canvas .c-chart__radar-fill:hover {
4699
- opacity: 0.5 !important;
4427
+ .c-chart__candlestick-candle {
4428
+ stroke: var(--atomix-border-color);
4429
+ stroke-width: 1;
4430
+ rx: 0.25rem;
4431
+ ry: 0.25rem;
4432
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4433
+ cursor: pointer;
4434
+ shape-rendering: geometricPrecision;
4700
4435
  }
4701
- .c-chart--radar .c-chart__canvas .c-chart__radar-line {
4702
- fill: none;
4703
- transition: stroke-width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4436
+ .c-chart__candlestick-candle:hover {
4437
+ opacity: 0.9;
4438
+ stroke-width: 1.5;
4439
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4704
4440
  }
4705
- .c-chart--radar .c-chart__canvas .c-chart__radar-line:hover {
4706
- stroke-width: 3 !important;
4441
+ .c-chart__candlestick-candle:focus-visible {
4442
+ outline: 2px solid var(--atomix-focus-border-color);
4443
+ outline-offset: 2px;
4444
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4707
4445
  }
4708
- .c-chart--radar .c-chart__canvas .c-chart__radar-point {
4709
- stroke: var(--atomix-primary-bg-subtle);
4710
- stroke-width: 2;
4711
- cursor: pointer;
4446
+ .c-chart__candlestick-wick {
4447
+ stroke: var(--atomix-tertiary-text-emphasis);
4448
+ stroke-width: 1;
4449
+ opacity: 0.8;
4712
4450
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4451
+ shape-rendering: geometricPrecision;
4713
4452
  }
4714
- .c-chart--radar .c-chart__canvas .c-chart__radar-point:hover {
4715
- transform: scale(1.3);
4716
- filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
4453
+ .c-chart__candlestick-wick:hover {
4454
+ opacity: 1;
4455
+ stroke-width: 1.2;
4717
4456
  }
4718
- .c-chart--candlestick .c-chart__canvas .candlestick,
4719
- .c-chart--candlestick .c-chart__canvas .c-chart__candlestick {
4720
- stroke-width: 1;
4721
- cursor: pointer;
4457
+ .c-chart__candlestick-volume {
4722
4458
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4723
- animation: chart-fade-in 0.6s ease-out;
4459
+ cursor: pointer;
4460
+ shape-rendering: geometricPrecision;
4724
4461
  }
4725
- .c-chart--candlestick .c-chart__canvas .candlestick--bullish,
4726
- .c-chart--candlestick .c-chart__canvas .c-chart__candlestick--bullish {
4727
- opacity: 0.8;
4462
+ .c-chart__candlestick-volume:hover {
4463
+ opacity: 0.6;
4728
4464
  }
4729
- .c-chart--candlestick .c-chart__canvas .candlestick--bearish,
4730
- .c-chart--candlestick .c-chart__canvas .c-chart__candlestick--bearish {
4731
- opacity: 1;
4465
+ .c-chart__bar {
4466
+ rx: 0.25rem;
4467
+ ry: 0.25rem;
4468
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4469
+ cursor: pointer;
4470
+ shape-rendering: geometricPrecision;
4732
4471
  }
4733
- .c-chart--candlestick .c-chart__canvas .candlestick:hover,
4734
- .c-chart--candlestick .c-chart__canvas .c-chart__candlestick:hover {
4735
- opacity: 0.8;
4736
- filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
4472
+ .c-chart__bar:hover {
4473
+ opacity: 0.85;
4474
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4737
4475
  }
4738
- .c-chart--candlestick .c-chart__canvas .c-chart__candlestick-highlight {
4739
- stroke-width: 2;
4740
- opacity: 0.5;
4476
+ .c-chart__bar--hovered {
4477
+ opacity: 0.85;
4478
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4741
4479
  }
4742
- .c-chart--candlestick .c-chart__canvas .wick,
4743
- .c-chart--candlestick .c-chart__canvas .c-chart__wick {
4744
- stroke-width: 1;
4745
- opacity: 0.8;
4480
+ .c-chart__bar:focus-visible {
4481
+ outline: 2px solid var(--atomix-focus-border-color);
4482
+ outline-offset: 2px;
4483
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4746
4484
  }
4747
- .c-chart--candlestick .c-chart__canvas .wick--hovered,
4748
- .c-chart--candlestick .c-chart__canvas .c-chart__wick--hovered {
4749
- stroke-width: 2;
4485
+ .c-chart__bar-value-label {
4486
+ font-size: 0.75rem;
4487
+ font-weight: 500;
4488
+ fill: var(--atomix-text-primary);
4489
+ text-anchor: middle;
4490
+ pointer-events: none;
4491
+ -webkit-user-select: none;
4492
+ -moz-user-select: none;
4493
+ user-select: none;
4750
4494
  }
4751
- .c-chart--candlestick .c-chart__canvas .c-chart__moving-average {
4752
- stroke-width: 2;
4753
- opacity: 0.8;
4495
+ .c-chart__line-path {
4496
+ fill: none;
4497
+ stroke-linecap: round;
4498
+ stroke-linejoin: round;
4499
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4500
+ shape-rendering: geometricPrecision;
4754
4501
  }
4755
- .c-chart--candlestick .c-chart__canvas .volume-bar {
4756
- opacity: 0.3;
4757
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4502
+ .c-chart__area-path {
4503
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4504
+ shape-rendering: geometricPrecision;
4758
4505
  }
4759
- .c-chart--candlestick .c-chart__canvas .volume-bar:hover {
4760
- opacity: 0.6;
4506
+ .c-chart__area-fill {
4507
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4508
+ shape-rendering: geometricPrecision;
4761
4509
  }
4762
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-background {
4763
- fill: var(--atomix-secondary-bg-subtle);
4764
- stroke: var(--atomix-primary-border-subtle);
4765
- stroke-width: 1;
4510
+ .c-chart__area-point {
4511
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4512
+ cursor: pointer;
4513
+ shape-rendering: geometricPrecision;
4766
4514
  }
4767
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-zone {
4768
- stroke: var(--atomix-primary-bg-subtle);
4769
- stroke-width: 2;
4515
+ .c-chart__area-point:hover {
4516
+ transform: scale(1.2);
4770
4517
  }
4771
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-tick--major {
4772
- stroke: var(--atomix-secondary-text-emphasis);
4773
- stroke-width: 2;
4518
+ .c-chart__area-point--hovered {
4519
+ transform: scale(1.2);
4774
4520
  }
4775
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-tick--minor {
4776
- stroke: var(--atomix-tertiary-text-emphasis);
4777
- stroke-width: 1;
4521
+ .c-chart__area-point:focus-visible {
4522
+ outline: 2px solid var(--atomix-focus-border-color);
4523
+ outline-offset: 2px;
4524
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4778
4525
  }
4779
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-tick-label {
4526
+ .c-chart__point-label {
4780
4527
  font-size: 0.75rem;
4781
- fill: var(--atomix-secondary-text-emphasis);
4528
+ font-weight: 500;
4529
+ text-anchor: middle;
4530
+ pointer-events: none;
4531
+ -webkit-user-select: none;
4532
+ -moz-user-select: none;
4533
+ user-select: none;
4782
4534
  }
4783
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-min-max-label {
4784
- font-size: 0.875rem;
4785
- font-weight: 700;
4786
- fill: var(--atomix-secondary-text-emphasis);
4535
+ .c-chart__pie-slice {
4536
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
4537
+ cursor: pointer;
4538
+ shape-rendering: geometricPrecision;
4787
4539
  }
4788
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-needle .c-chart__gauge-needle-line {
4540
+ .c-chart__pie-slice:hover {
4789
4541
  stroke-width: 3;
4790
- stroke-linecap: round;
4542
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4791
4543
  }
4792
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-needle .c-chart__gauge-needle-center {
4793
- stroke: var(--atomix-primary-bg-subtle);
4794
- stroke-width: 2;
4544
+ .c-chart__pie-slice--hovered {
4545
+ stroke-width: 3;
4546
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4795
4547
  }
4796
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-value {
4797
- font-size: 2rem;
4798
- font-weight: 700;
4799
- fill: var(--atomix-primary-text-emphasis);
4548
+ .c-chart__pie-slice:focus-visible {
4549
+ outline: 2px solid var(--atomix-focus-border-color);
4550
+ outline-offset: 2px;
4551
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4800
4552
  }
4801
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-label {
4802
- font-size: 0.875rem;
4803
- fill: var(--atomix-secondary-text-emphasis);
4553
+ .c-chart__pie-label {
4554
+ font-size: 0.75rem;
4555
+ font-weight: 500;
4556
+ fill: var(--atomix-text-primary);
4557
+ text-anchor: middle;
4558
+ dominant-baseline: middle;
4559
+ pointer-events: none;
4560
+ -webkit-user-select: none;
4561
+ -moz-user-select: none;
4562
+ user-select: none;
4563
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
4804
4564
  }
4805
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-segment {
4806
- stroke: var(--atomix-primary-bg-subtle);
4807
- stroke-width: 2;
4565
+ .c-chart__donut-slice {
4566
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
4808
4567
  cursor: pointer;
4809
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4568
+ shape-rendering: geometricPrecision;
4569
+ transform-origin: center;
4810
4570
  }
4811
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-segment--animated {
4812
- transition: all 1s ease-out;
4571
+ .c-chart__donut-slice:hover {
4572
+ transform: scale(1.02);
4573
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4813
4574
  }
4814
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-segment:hover {
4815
- opacity: 0.8;
4816
- filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2));
4575
+ .c-chart__donut-slice--hovered {
4576
+ transform: scale(1.02);
4577
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4817
4578
  }
4818
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-label {
4819
- font-size: 0.875rem;
4820
- font-weight: 700;
4579
+ .c-chart__donut-slice:focus-visible {
4580
+ outline: 2px solid var(--atomix-focus-border-color);
4581
+ outline-offset: 2px;
4582
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4583
+ }
4584
+ .c-chart__donut-label {
4585
+ font-size: 0.75rem;
4586
+ font-weight: 500;
4587
+ fill: var(--atomix-text-primary);
4588
+ text-anchor: middle;
4589
+ dominant-baseline: middle;
4821
4590
  pointer-events: none;
4591
+ -webkit-user-select: none;
4592
+ -moz-user-select: none;
4593
+ user-select: none;
4594
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
4822
4595
  }
4823
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-label--inside {
4824
- fill: var(--atomix-invert-text-emphasis);
4825
- text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
4596
+ .c-chart__donut-percentage {
4597
+ font-size: 0.75rem;
4598
+ font-weight: 600;
4599
+ fill: var(--atomix-secondary-text-emphasis);
4600
+ text-anchor: middle;
4601
+ dominant-baseline: middle;
4602
+ pointer-events: none;
4603
+ -webkit-user-select: none;
4604
+ -moz-user-select: none;
4605
+ user-select: none;
4826
4606
  }
4827
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-label--outside {
4828
- fill: var(--atomix-primary-text-emphasis);
4607
+ .c-chart__donut-center-label {
4608
+ font-size: 0.875rem;
4609
+ font-weight: 500;
4610
+ fill: var(--atomix-secondary-text-emphasis);
4611
+ text-anchor: middle;
4612
+ dominant-baseline: middle;
4613
+ pointer-events: none;
4614
+ -webkit-user-select: none;
4615
+ -moz-user-select: none;
4616
+ user-select: none;
4829
4617
  }
4830
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-value {
4831
- font-size: 0.75rem;
4618
+ .c-chart__donut-center-value {
4619
+ font-size: 1.25rem;
4620
+ font-weight: 700;
4621
+ fill: var(--atomix-text-primary);
4622
+ text-anchor: middle;
4623
+ dominant-baseline: middle;
4832
4624
  pointer-events: none;
4625
+ -webkit-user-select: none;
4626
+ -moz-user-select: none;
4627
+ user-select: none;
4833
4628
  }
4834
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-value--inside {
4835
- fill: var(--atomix-invert-text-emphasis);
4836
- text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
4629
+ .c-chart__scatter-point {
4630
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4631
+ cursor: pointer;
4632
+ shape-rendering: geometricPrecision;
4837
4633
  }
4838
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-value--outside {
4839
- fill: var(--atomix-secondary-text-emphasis);
4634
+ .c-chart__scatter-point:hover {
4635
+ transform: scale(1.2);
4636
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4840
4637
  }
4841
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-conversion {
4842
- font-size: 0.75rem;
4843
- fill: var(--atomix-secondary-text-emphasis);
4844
- font-style: italic;
4638
+ .c-chart__scatter-point:focus-visible {
4639
+ outline: 2px solid var(--atomix-focus-border-color);
4640
+ outline-offset: 2px;
4641
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4845
4642
  }
4846
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-axis-label {
4643
+ .c-chart__scatter-label {
4847
4644
  font-size: 0.75rem;
4848
- fill: var(--atomix-gray-7);
4849
4645
  font-weight: 500;
4646
+ fill: var(--atomix-text-primary);
4647
+ text-anchor: middle;
4648
+ pointer-events: none;
4850
4649
  -webkit-user-select: none;
4851
4650
  -moz-user-select: none;
4852
4651
  user-select: none;
4853
4652
  }
4854
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-cell {
4653
+ .c-chart__bubble {
4654
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4855
4655
  cursor: pointer;
4856
- transition: all 0.2s ease;
4857
- shape-rendering: crispEdges;
4656
+ shape-rendering: geometricPrecision;
4858
4657
  }
4859
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-cell--empty {
4860
- fill: var(--atomix-gray-2);
4861
- stroke: var(--atomix-gray-3);
4862
- stroke-width: 0.5;
4863
- opacity: 0.6;
4658
+ .c-chart__bubble:hover {
4659
+ transform: scale(1.1);
4660
+ filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1));
4864
4661
  }
4865
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-cell--hovered {
4662
+ .c-chart__bubble--hovered {
4866
4663
  transform: scale(1.1);
4867
- filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
4868
- z-index: 10;
4664
+ filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1));
4869
4665
  }
4870
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-cell:focus-visible {
4871
- outline: 2px solid var(--atomix-primary-6);
4872
- outline-offset: 1px;
4666
+ .c-chart__bubble:focus-visible {
4667
+ outline: 2px solid var(--atomix-focus-border-color);
4668
+ outline-offset: 2px;
4669
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4873
4670
  }
4874
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-value {
4875
- font-size: 9px;
4671
+ .c-chart__bubble-label {
4672
+ font-size: 0.75rem;
4876
4673
  font-weight: 500;
4674
+ fill: var(--atomix-text-primary);
4675
+ text-anchor: middle;
4676
+ dominant-baseline: middle;
4877
4677
  pointer-events: none;
4878
4678
  -webkit-user-select: none;
4879
4679
  -moz-user-select: none;
4880
4680
  user-select: none;
4881
- font-feature-settings: "tnum";
4882
- font-variant-numeric: tabular-nums;
4883
- }
4884
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-value--light {
4885
- fill: white;
4886
4681
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
4887
4682
  }
4888
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-value--dark {
4889
- fill: var(--atomix-gray-8);
4890
- }
4891
- .c-chart--heatmap .c-chart__canvas.c-chart--calendar .c-chart__heatmap-cell {
4892
- rx: 2;
4683
+ .c-chart__radar-grid-line {
4684
+ stroke: var(--atomix-border-color);
4685
+ stroke-width: 1;
4686
+ opacity: 0.3;
4687
+ shape-rendering: geometricPrecision;
4893
4688
  }
4894
- .c-chart--heatmap .c-chart__canvas.c-chart--grid .c-chart__heatmap-cell {
4895
- rx: 4;
4689
+ .c-chart__radar-axis-label {
4690
+ font-size: 0.75rem;
4691
+ font-weight: 500;
4692
+ fill: var(--atomix-secondary-text-emphasis);
4693
+ text-anchor: middle;
4694
+ dominant-baseline: middle;
4695
+ pointer-events: none;
4696
+ -webkit-user-select: none;
4697
+ -moz-user-select: none;
4698
+ user-select: none;
4896
4699
  }
4897
- .c-chart--treemap .c-chart__canvas .c-chart__treemap-node {
4898
- cursor: pointer;
4899
- stroke: var(--atomix-primary-bg-subtle);
4900
- stroke-width: 1;
4700
+ .c-chart__radar-area {
4901
4701
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4702
+ shape-rendering: geometricPrecision;
4902
4703
  }
4903
- .c-chart--treemap .c-chart__canvas .c-chart__treemap-node--animated {
4904
- transition: all 750ms ease-out;
4905
- }
4906
- .c-chart--treemap .c-chart__canvas .c-chart__treemap-node--hovered {
4907
- opacity: 0.8;
4704
+ .c-chart__radar-line {
4705
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4706
+ shape-rendering: geometricPrecision;
4707
+ stroke-linecap: round;
4708
+ stroke-linejoin: round;
4908
4709
  }
4909
- .c-chart--treemap .c-chart__canvas .c-chart__treemap-node--selected {
4910
- stroke-width: 2;
4710
+ .c-chart__radar-point {
4711
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4712
+ cursor: pointer;
4713
+ shape-rendering: geometricPrecision;
4911
4714
  }
4912
- .c-chart--treemap .c-chart__canvas .c-chart__treemap-label {
4913
- font-size: 0.75rem;
4914
- font-weight: 700;
4915
- fill: var(--atomix-invert-text-emphasis);
4916
- pointer-events: none;
4715
+ .c-chart__radar-point:hover {
4716
+ transform: scale(1.3);
4717
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4917
4718
  }
4918
- .c-chart--treemap .c-chart__canvas .c-chart__treemap-value {
4919
- font-size: 0.75rem;
4920
- fill: var(--atomix-invert-text-emphasis);
4921
- opacity: 0.8;
4922
- pointer-events: none;
4719
+ .c-chart__radar-point--hovered {
4720
+ transform: scale(1.3);
4721
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4923
4722
  }
4924
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-bar {
4925
- stroke: var(--atomix-primary-bg-subtle);
4926
- stroke-width: 2;
4927
- cursor: pointer;
4723
+ .c-chart__radar-point:focus-visible {
4724
+ outline: 2px solid var(--atomix-focus-border-color);
4725
+ outline-offset: 2px;
4726
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4727
+ }
4728
+ .c-chart__waterfall-bar {
4729
+ rx: 0.25rem;
4730
+ ry: 0.25rem;
4928
4731
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4732
+ cursor: pointer;
4733
+ shape-rendering: geometricPrecision;
4929
4734
  }
4930
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-bar--animated {
4931
- transition: all 1s ease-out;
4735
+ .c-chart__waterfall-bar:hover {
4736
+ opacity: 0.85;
4737
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4932
4738
  }
4933
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-bar:hover {
4934
- opacity: 0.8;
4935
- filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2));
4739
+ .c-chart__waterfall-bar--animated {
4740
+ animation: chart-bar-appear 1s ease-out;
4741
+ transform-origin: bottom center;
4742
+ }
4743
+ .c-chart__waterfall-bar:focus-visible {
4744
+ outline: 2px solid var(--atomix-focus-border-color);
4745
+ outline-offset: 2px;
4746
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4936
4747
  }
4937
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-value {
4748
+ .c-chart__waterfall-value {
4938
4749
  font-size: 0.75rem;
4939
- font-weight: 700;
4750
+ font-weight: 600;
4751
+ fill: var(--atomix-text-primary);
4752
+ text-anchor: middle;
4940
4753
  pointer-events: none;
4754
+ -webkit-user-select: none;
4755
+ -moz-user-select: none;
4756
+ user-select: none;
4941
4757
  }
4942
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-value--center {
4943
- fill: var(--atomix-invert-text-emphasis);
4944
- text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
4758
+ .c-chart__waterfall-value--center {
4759
+ dominant-baseline: middle;
4945
4760
  }
4946
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-value--outside {
4947
- fill: var(--atomix-primary-text-emphasis);
4761
+ .c-chart__waterfall-value--outside {
4762
+ dominant-baseline: auto;
4948
4763
  }
4949
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-connector {
4950
- stroke-width: 2;
4951
- opacity: 0.7;
4764
+ .c-chart__waterfall-connector {
4765
+ stroke: var(--atomix-border-color);
4766
+ stroke-width: 1;
4767
+ opacity: 0.6;
4768
+ shape-rendering: geometricPrecision;
4952
4769
  }
4953
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-cumulative-line {
4954
- stroke-width: 3;
4770
+ .c-chart__waterfall-cumulative-line {
4771
+ stroke-width: 2;
4955
4772
  stroke-linecap: round;
4956
4773
  stroke-linejoin: round;
4774
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4775
+ shape-rendering: geometricPrecision;
4957
4776
  }
4958
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-cumulative-point {
4959
- stroke: var(--atomix-primary-bg-subtle);
4960
- stroke-width: 2;
4961
- }
4962
- @keyframes chart-spin {
4963
- 0% {
4964
- transform: rotate(0deg);
4965
- }
4966
- 100% {
4967
- transform: rotate(360deg);
4968
- }
4969
- }
4970
- @keyframes chart-shimmer {
4971
- 0% {
4972
- left: -100%;
4973
- }
4974
- 100% {
4975
- left: 100%;
4976
- }
4977
- }
4978
- @keyframes chart-pulse {
4979
- 0%, 100% {
4980
- opacity: 0.8;
4981
- }
4982
- 50% {
4983
- opacity: 1;
4984
- }
4985
- }
4986
- @keyframes chart-draw-line {
4987
- 0% {
4988
- stroke-dashoffset: 1000;
4989
- }
4990
- 100% {
4991
- stroke-dashoffset: 0;
4992
- }
4993
- }
4994
- @keyframes chart-area-fade {
4995
- 0% {
4996
- opacity: 0;
4997
- }
4998
- 100% {
4999
- opacity: 0.3;
5000
- }
4777
+ .c-chart__waterfall-cumulative-point {
4778
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4779
+ cursor: pointer;
4780
+ shape-rendering: geometricPrecision;
5001
4781
  }
5002
- @keyframes chart-bar-grow {
5003
- 0% {
5004
- transform: scaleY(0);
5005
- }
5006
- 100% {
5007
- transform: scaleY(1);
5008
- }
4782
+ .c-chart__waterfall-cumulative-point:hover {
4783
+ transform: scale(1.3);
5009
4784
  }
5010
- @keyframes chart-bar-grow-horizontal {
5011
- 0% {
5012
- transform: scaleX(0);
5013
- }
5014
- 100% {
5015
- transform: scaleX(1);
5016
- }
4785
+ .c-chart__waterfall-cumulative-point:focus-visible {
4786
+ outline: 2px solid var(--atomix-focus-border-color);
4787
+ outline-offset: 2px;
4788
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
5017
4789
  }
5018
- @keyframes chart-pie-draw {
5019
- 0% {
5020
- stroke-dasharray: 0 628;
4790
+ @media (prefers-contrast: high) {
4791
+ .c-chart {
4792
+ border-width: calc(var(--atomix-border-width) * 2);
5021
4793
  }
5022
- 100% {
5023
- stroke-dasharray: 628 628;
4794
+ .c-chart--selected {
4795
+ border-width: calc(var(--atomix-border-width) * 3);
5024
4796
  }
5025
- }
5026
- @keyframes chart-donut-draw {
5027
- 0% {
5028
- stroke-dasharray: 0 628;
4797
+ .c-chart__action {
4798
+ border-width: calc(var(--atomix-border-width) * 2);
5029
4799
  }
5030
- 100% {
5031
- stroke-dasharray: 628 628;
4800
+ .c-chart__action:focus-visible {
4801
+ outline-width: calc(var(--atomix-border-width) * 3);
5032
4802
  }
5033
- }
5034
- @keyframes chart-fade-in {
5035
- 0% {
5036
- opacity: 0;
5037
- transform: translateY(10px);
4803
+ .c-chart__data-point {
4804
+ stroke-width: 2;
5038
4805
  }
5039
- 100% {
5040
- opacity: 1;
5041
- transform: translateY(0);
4806
+ .c-chart__data-point--selected {
4807
+ stroke-width: 3;
5042
4808
  }
5043
- }
5044
- @keyframes chart-scale-in {
5045
- 0% {
5046
- opacity: 0;
5047
- transform: scale(0.3);
4809
+ .c-chart__grid {
4810
+ stroke-width: 1;
4811
+ opacity: 0.6;
5048
4812
  }
5049
- 60% {
4813
+ .c-chart__grid--major {
4814
+ stroke-width: 1.5;
5050
4815
  opacity: 0.8;
5051
- transform: scale(1.1);
5052
- }
5053
- 100% {
5054
- opacity: 1;
5055
- transform: scale(1);
5056
- }
5057
- }
5058
- @keyframes chart-slide-in {
5059
- 0% {
5060
- opacity: 0;
5061
- transform: translateX(-20px);
5062
4816
  }
5063
- 100% {
4817
+ .c-chart__grid--zero {
4818
+ stroke-width: 2;
5064
4819
  opacity: 1;
5065
- transform: translateX(0);
5066
- }
5067
- }
5068
- @keyframes chart-bubble-grow {
5069
- 0% {
5070
- transform: scale(0);
5071
4820
  }
5072
- 100% {
5073
- transform: scale(1);
4821
+ .c-chart__treemap-node {
4822
+ stroke-width: 2;
5074
4823
  }
5075
- }
5076
- @keyframes chart-dash-flow {
5077
- 0% {
5078
- stroke-dashoffset: 0;
4824
+ .c-chart__treemap-node--selected {
4825
+ stroke-width: 3;
5079
4826
  }
5080
- 100% {
5081
- stroke-dashoffset: 10;
4827
+ .c-chart__treemap-node:focus-visible {
4828
+ outline-width: calc(var(--atomix-border-width) * 3);
5082
4829
  }
5083
- }
5084
- @keyframes chart-glow {
5085
- 0%, 100% {
5086
- filter: drop-shadow(0 0 5px currentColor);
4830
+ .c-chart__funnel-segment {
4831
+ stroke-width: 2;
5087
4832
  }
5088
- 50% {
5089
- filter: drop-shadow(0 0 15px currentColor);
4833
+ .c-chart__funnel-segment:focus-visible {
4834
+ outline-width: calc(var(--atomix-border-width) * 3);
5090
4835
  }
5091
- }
5092
- @keyframes chart-pulse-dot {
5093
- 0%, 100% {
5094
- opacity: 1;
5095
- transform: scale(1);
4836
+ .c-chart__heatmap-cell {
4837
+ stroke-width: 2;
5096
4838
  }
5097
- 50% {
5098
- opacity: 0.5;
5099
- transform: scale(1.2);
4839
+ .c-chart__heatmap-cell--hovered {
4840
+ stroke-width: 3;
5100
4841
  }
5101
- }
5102
- @keyframes chart-zoom-in {
5103
- 0% {
5104
- transform: scale(0.8);
5105
- opacity: 0;
4842
+ .c-chart__heatmap-cell:focus-visible {
4843
+ outline-width: calc(var(--atomix-border-width) * 3);
5106
4844
  }
5107
- 100% {
5108
- transform: scale(1);
5109
- opacity: 1;
4845
+ .c-chart__candlestick-candle {
4846
+ stroke-width: 2;
5110
4847
  }
5111
- }
5112
- @keyframes chart-slide-up {
5113
- 0% {
5114
- transform: translateY(20px);
5115
- opacity: 0;
4848
+ .c-chart__candlestick-candle:focus-visible {
4849
+ outline-width: calc(var(--atomix-border-width) * 3);
5116
4850
  }
5117
- 100% {
5118
- transform: translateY(0);
4851
+ .c-chart__candlestick-wick {
4852
+ stroke-width: 2;
5119
4853
  opacity: 1;
5120
4854
  }
5121
4855
  }
5122
- @media (max-width: 768px) {
4856
+ @media (prefers-reduced-motion: reduce) {
5123
4857
  .c-chart {
5124
- --atomix-chart-min-height: 10rem;
5125
- border-radius: 0.25rem;
4858
+ transition: none;
4859
+ animation: none;
5126
4860
  }
5127
- .c-chart__header {
5128
- flex-direction: column;
5129
- align-items: flex-start;
5130
- gap: 0.5rem;
4861
+ .c-chart::before, .c-chart::after {
4862
+ animation: none;
4863
+ transition: none;
5131
4864
  }
5132
- .c-chart__toolbar {
5133
- width: 100%;
5134
- justify-content: flex-end;
5135
- padding: 0.5rem;
5136
- gap: 0.5rem;
4865
+ .c-chart--elevated {
4866
+ transform: none;
5137
4867
  }
5138
- }
5139
- @media (max-width: 768px) and (max-width: 480px) {
5140
- .c-chart__toolbar {
5141
- flex-wrap: wrap;
5142
- justify-content: center;
4868
+ .c-chart--elevated:hover {
4869
+ transform: none;
5143
4870
  }
5144
- }
5145
- @media (max-width: 768px) {
5146
- .c-chart__action {
5147
- width: 2.25rem;
5148
- height: 2.25rem;
4871
+ .c-chart--clickable {
4872
+ transition: none;
5149
4873
  }
5150
- .c-chart__action svg {
5151
- width: 1.125rem;
5152
- height: 1.125rem;
4874
+ .c-chart--clickable:hover {
4875
+ transform: none;
5153
4876
  }
5154
- .c-chart__export-dropdown {
5155
- position: fixed;
5156
- top: 50%;
5157
- left: 50%;
5158
- transform: translate(-50%, -50%);
5159
- margin-top: 0;
5160
- min-width: 12.5rem;
5161
- max-width: 90vw;
5162
- }
5163
- .c-chart__legend {
5164
- flex-direction: column;
5165
- gap: 0.5rem;
4877
+ .c-chart--clickable:active {
4878
+ transform: none;
5166
4879
  }
5167
- .c-chart__legend-item {
5168
- justify-content: space-between;
5169
- width: 100%;
4880
+ .c-chart__action {
4881
+ transition: none;
5170
4882
  }
5171
- .c-chart:hover {
4883
+ .c-chart__action:hover {
5172
4884
  transform: none;
5173
4885
  }
5174
- }
5175
- @media (max-width: 480px) {
5176
- .c-chart {
5177
- --atomix-chart-min-height: 9rem;
5178
- --atomix-chart-padding: 0.5rem;
5179
- border-radius: 0.25rem;
4886
+ .c-chart__action svg {
4887
+ transition: none;
5180
4888
  }
5181
- .c-chart__title {
5182
- font-size: 1.125rem;
5183
- margin-bottom: 0.25rem;
4889
+ .c-chart__action svg:hover {
4890
+ transform: none;
5184
4891
  }
5185
- .c-chart__subtitle {
5186
- font-size: 0.75rem;
4892
+ .c-chart__data-point {
4893
+ transition: none;
5187
4894
  }
5188
- .c-chart__toolbar {
5189
- padding: 0.25rem;
5190
- gap: 0.25rem;
5191
- border-radius: 0.25rem;
4895
+ .c-chart__data-point--hovered {
4896
+ transform: none;
5192
4897
  }
5193
- .c-chart__action {
5194
- width: 1.75rem;
5195
- height: 1.75rem;
5196
- font-size: 0.75rem;
4898
+ .c-chart__treemap-node {
4899
+ transition: none;
5197
4900
  }
5198
- .c-chart__action svg {
5199
- width: 0.875rem;
5200
- height: 0.875rem;
4901
+ .c-chart__treemap-node:hover {
4902
+ transform: none;
5201
4903
  }
5202
- .c-chart__export-option {
5203
- padding: 0.25rem 0.5rem;
5204
- font-size: 0.6875rem;
4904
+ .c-chart__treemap-node--hovered {
4905
+ transform: none;
5205
4906
  }
5206
- }
5207
- @media (prefers-reduced-motion: reduce) {
5208
- .c-chart {
4907
+ .c-chart__funnel-segment {
5209
4908
  transition: none;
5210
4909
  }
5211
- .c-chart:hover {
4910
+ .c-chart__funnel-segment:hover {
5212
4911
  transform: none;
5213
4912
  }
5214
- .c-chart * {
5215
- animation-duration: 0.01s !important;
5216
- transition-duration: 0.01s !important;
5217
- }
5218
- .c-chart__real-time-indicator::before {
5219
- animation: none;
4913
+ .c-chart__heatmap-cell {
4914
+ transition: none;
5220
4915
  }
5221
- }
5222
- .c-chart:focus-within .c-chart__data-point:focus {
5223
- outline: 2px solid var(--atomix-primary-6);
5224
- outline-offset: 2px;
5225
- z-index: 10;
5226
- }
5227
- .c-chart:focus-within__canvas svg {
5228
- outline: 2px solid var(--atomix-primary-border-subtle);
5229
- outline-offset: 2px;
5230
- }
5231
- @media (prefers-contrast: high) {
5232
- .c-chart {
5233
- border-width: 2px;
5234
- background-color: white;
5235
- color: black;
5236
- -webkit-backdrop-filter: none;
5237
- backdrop-filter: none;
4916
+ .c-chart__heatmap-cell:hover {
4917
+ transform: none;
5238
4918
  }
5239
- .c-chart__grid {
5240
- stroke-width: 2;
5241
- opacity: 0.8;
5242
- stroke: black;
4919
+ .c-chart__heatmap-cell--hovered {
4920
+ transform: none;
5243
4921
  }
5244
- .c-chart__title {
5245
- color: black;
4922
+ .c-chart__candlestick-candle {
4923
+ transition: none;
5246
4924
  }
5247
- .c-chart__data-point {
5248
- stroke: black;
5249
- stroke-width: 2;
4925
+ .c-chart__candlestick-candle:hover {
4926
+ transform: none;
5250
4927
  }
5251
- .c-chart__crosshair line {
5252
- stroke: black;
5253
- opacity: 1;
4928
+ .c-chart__candlestick-wick {
4929
+ transition: none;
5254
4930
  }
5255
- .c-chart__zoom-indicator {
5256
- background: black;
5257
- color: white;
5258
- border: 2px solid white;
4931
+ .c-chart__candlestick-volume {
4932
+ transition: none;
5259
4933
  }
5260
- .c-chart .line-path {
5261
- stroke-width: 3 !important;
4934
+ .c-chart__empty {
4935
+ animation: none;
5262
4936
  }
5263
- .c-chart .bar {
5264
- stroke: black;
5265
- stroke-width: 2;
4937
+ .c-chart--loading .c-chart__content::after {
4938
+ animation: none;
5266
4939
  }
5267
- }
5268
- @media print {
5269
- .c-chart {
5270
- page-break-inside: avoid;
5271
- -moz-column-break-inside: avoid;
5272
- break-inside: avoid;
5273
- box-shadow: none;
5274
- border: 2px solid black;
5275
- background: white;
4940
+ .c-chart__waterfall-bar--animated {
4941
+ animation: none;
5276
4942
  }
5277
- .c-chart__toolbar {
5278
- display: none;
4943
+ .c-chart__canvas svg {
4944
+ animation: none;
4945
+ opacity: 1;
5279
4946
  }
5280
- .c-chart__crosshair, .c-chart__zoom-indicator, .c-chart__real-time-indicator {
5281
- display: none;
4947
+ }
4948
+ @keyframes chart-bar-appear {
4949
+ 0% {
4950
+ opacity: 0;
4951
+ transform: scaleY(0);
5282
4952
  }
5283
- .c-chart * {
5284
- animation: none !important;
5285
- transition: none !important;
4953
+ 100% {
4954
+ opacity: 1;
4955
+ transform: scaleY(1);
5286
4956
  }
5287
4957
  }
5288
4958
  .c-checkbox-group {
@@ -5662,20 +5332,27 @@ a, a:hover {
5662
5332
  display: flex;
5663
5333
  opacity: 0;
5664
5334
  visibility: hidden;
5665
- transform-origin: top center;
5666
5335
  transition: opacity var(--atomix-dropdown-animation-duration) var(--atomix-dropdown-animation-timing), visibility var(--atomix-dropdown-animation-duration) var(--atomix-dropdown-animation-timing), transform var(--atomix-dropdown-animation-duration) var(--atomix-dropdown-animation-timing);
5667
- transform: translateY(-15px) scale(0.95);
5668
5336
  pointer-events: none;
5337
+ }
5338
+ .c-dropdown__menu-wrapper:not(.is-glass) {
5669
5339
  will-change: transform, opacity, visibility;
5340
+ transform: translateY(-15px) scale(0.95);
5341
+ transform-origin: top center;
5670
5342
  }
5671
- .c-dropdown__menu-wrapper.is-open {
5343
+ .c-dropdown__menu-wrapper.is-open:not(.is-glass) {
5672
5344
  opacity: 1;
5673
5345
  transform: translateY(0) scale(1);
5674
5346
  visibility: visible;
5675
5347
  animation: atomix-dropdown-fade-in var(--atomix-dropdown-animation-duration) var(--atomix-dropdown-animation-timing) forwards;
5676
5348
  pointer-events: auto;
5677
5349
  }
5678
- .c-dropdown__menu-wrapper:not(.is-open) {
5350
+ .c-dropdown__menu-wrapper.is-open.is-glass {
5351
+ opacity: 1;
5352
+ visibility: visible;
5353
+ pointer-events: auto;
5354
+ }
5355
+ .c-dropdown__menu-wrapper:not(.is-open):not(.is-glass) {
5679
5356
  animation: atomix-dropdown-fade-out var(--atomix-dropdown-animation-duration) var(--atomix-dropdown-animation-timing) forwards;
5680
5357
  }
5681
5358
  .c-dropdown__menu-wrapper--bottom-start {
@@ -6196,22 +5873,41 @@ a, a:hover {
6196
5873
  --atomix-footer-padding-x: 1rem;
6197
5874
  --atomix-footer-padding-y: 3rem;
6198
5875
  --atomix-footer-container-max-width: 1200px;
6199
- --atomix-footer-bg: var(--atomix-surface);
6200
- --atomix-footer-color: var(--atomix-text);
5876
+ --atomix-footer-bg: var(--atomix-primary-bg);
5877
+ --atomix-footer-color: var(--atomix-primary-text-emphasis);
6201
5878
  --atomix-footer-border-width: 1px;
6202
- --atomix-footer-border-color: var(--atomix-border);
5879
+ --atomix-footer-border-color: var(--atomix-primary-border-subtle);
6203
5880
  --atomix-footer-brand-margin-bottom: 1.5rem;
6204
5881
  --atomix-footer-section-margin-bottom: 2rem;
6205
5882
  --atomix-footer-social-gap: 0.75rem;
6206
5883
  --atomix-footer-newsletter-padding: 1.5rem;
6207
5884
  --atomix-footer-bottom-padding-top: 1.5rem;
6208
5885
  --atomix-footer-bottom-margin-top: 2rem;
5886
+ --atomix-footer-brand-logo-margin-bottom: 1rem;
5887
+ --atomix-footer-brand-logo-hover-opacity: 0.8;
5888
+ --atomix-footer-section-header-gap: 0.5rem;
5889
+ --atomix-footer-section-toggle-padding: 0.75rem 0;
5890
+ --atomix-footer-bg-rgb: var(--atomix-primary-bg);
5891
+ --atomix-disabled-opacity: 0.6;
6209
5892
  background-color: var(--atomix-footer-bg);
6210
5893
  color: var(--atomix-footer-color);
6211
5894
  border-top: var(--atomix-footer-border-width) solid var(--atomix-footer-border-color);
6212
5895
  padding: var(--atomix-footer-padding-y) 0;
6213
5896
  position: relative;
6214
5897
  }
5898
+ .c-footer--glass {
5899
+ padding: 0;
5900
+ margin: 0;
5901
+ border-radius: 0;
5902
+ box-shadow: none;
5903
+ background: transparent;
5904
+ }
5905
+ .c-footer--glass .c-footer__glass {
5906
+ background-color: rgba(var(--atomix-footer-bg-rgb), 0.5, true);
5907
+ color: var(--atomix-footer-color);
5908
+ border-top: var(--atomix-footer-border-width) solid var(--atomix-footer-border-color);
5909
+ padding: var(--atomix-footer-padding-y) 0;
5910
+ }
6215
5911
  .c-footer__container {
6216
5912
  display: flex;
6217
5913
  flex-direction: column;
@@ -6221,28 +5917,42 @@ a, a:hover {
6221
5917
  padding: 0 var(--atomix-footer-padding-x);
6222
5918
  }
6223
5919
  .c-footer__sections {
6224
- display: grid;
6225
- grid-gap: var(--atomix-footer-section-margin-bottom);
6226
- gap: var(--atomix-footer-section-margin-bottom);
6227
5920
  margin-bottom: var(--atomix-footer-bottom-margin-top);
6228
- grid-template-columns: 1fr;
5921
+ width: 100%;
5922
+ max-width: var(--atomix-footer-container-max-width);
5923
+ margin-left: auto;
5924
+ margin-right: auto;
6229
5925
  }
6230
- @media (min-width: 768px) {
6231
- .c-footer__sections {
6232
- grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
6233
- gap: clamp(2rem, 4vw, 3rem);
6234
- }
5926
+ .c-footer__sections--centered {
5927
+ justify-content: center;
5928
+ align-items: center;
5929
+ }
5930
+ .c-footer__sections--stacked {
5931
+ display: flex;
5932
+ flex-direction: column;
5933
+ align-items: center;
5934
+ text-align: center;
5935
+ gap: clamp(1.5rem, 4vw, 2.5rem);
5936
+ max-width: 600px;
5937
+ margin-left: auto;
5938
+ margin-right: auto;
6235
5939
  }
6236
5940
  .c-footer__brand {
5941
+ grid-area: brand;
6237
5942
  margin-bottom: var(--atomix-footer-brand-margin-bottom);
6238
5943
  }
5944
+ @media (min-width: 768px) {
5945
+ .c-footer__brand {
5946
+ margin-bottom: 0;
5947
+ }
5948
+ }
6239
5949
  .c-footer__brand-logo {
6240
5950
  display: inline-block;
6241
- margin-bottom: 1rem;
5951
+ margin-bottom: var(--atomix-footer-brand-logo-margin-bottom);
6242
5952
  transition: opacity 0.2s ease;
6243
5953
  }
6244
5954
  .c-footer__brand-logo:hover {
6245
- opacity: 0.8;
5955
+ opacity: var(--atomix-footer-brand-logo-hover-opacity);
6246
5956
  }
6247
5957
  .c-footer__brand-logo img {
6248
5958
  max-width: 200px;
@@ -6255,18 +5965,23 @@ a, a:hover {
6255
5965
  margin: 0;
6256
5966
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
6257
5967
  font-weight: 600;
6258
- color: var(--atomix-text-emphasis);
5968
+ color: var(--atomix-primary-text-emphasis);
6259
5969
  line-height: 1.2;
6260
5970
  }
6261
5971
  .c-footer__brand-description {
6262
5972
  margin-top: 0.5rem;
6263
5973
  font-size: 0.875rem;
6264
- color: var(--atomix-text-muted);
5974
+ color: var(--atomix-secondary-text-emphasis);
6265
5975
  line-height: 1.6;
6266
5976
  max-width: 35ch;
6267
5977
  }
6268
5978
  .c-footer__section {
6269
- margin-bottom: var(--atomix-footer-section-margin-bottom);
5979
+ margin-bottom: 0;
5980
+ }
5981
+ @media (max-width: 575.98px) {
5982
+ .c-footer__section {
5983
+ margin-bottom: var(--atomix-footer-section-margin-bottom);
5984
+ }
6270
5985
  }
6271
5986
  .c-footer__section-header {
6272
5987
  margin-bottom: 1rem;
@@ -6274,14 +5989,14 @@ a, a:hover {
6274
5989
  .c-footer__section-header-content {
6275
5990
  display: flex;
6276
5991
  align-items: center;
6277
- gap: 0.5rem;
5992
+ gap: var(--atomix-footer-section-header-gap);
6278
5993
  }
6279
5994
  .c-footer__section-toggle {
6280
5995
  display: flex;
6281
5996
  align-items: center;
6282
5997
  justify-content: space-between;
6283
5998
  width: 100%;
6284
- padding: 0.75rem 0;
5999
+ padding: var(--atomix-footer-section-toggle-padding);
6285
6000
  background: none;
6286
6001
  border: none;
6287
6002
  cursor: pointer;
@@ -6300,9 +6015,10 @@ a, a:hover {
6300
6015
  }
6301
6016
  .c-footer__section-title {
6302
6017
  margin: 0;
6018
+ width: 100%;
6303
6019
  font-size: 1.125rem;
6304
6020
  font-weight: 600;
6305
- color: var(--atomix-text-emphasis);
6021
+ color: var(--atomix-primary-text-emphasis);
6306
6022
  line-height: 1.3;
6307
6023
  }
6308
6024
  .c-footer__section-icon {
@@ -6314,7 +6030,7 @@ a, a:hover {
6314
6030
  .c-footer__section-chevron {
6315
6031
  font-size: 0.875rem;
6316
6032
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
6317
- color: var(--atomix-text-muted);
6033
+ color: var(--atomix-gray-6);
6318
6034
  }
6319
6035
  .c-footer__section-content {
6320
6036
  display: flex;
@@ -6349,9 +6065,9 @@ a, a:hover {
6349
6065
  align-items: center;
6350
6066
  gap: 0.5rem;
6351
6067
  padding: 0.25rem 0;
6352
- color: var(--atomix-text);
6068
+ color: var(--atomix-primary-text-emphasis);
6353
6069
  text-decoration: none;
6354
- transition: color 0.15s ease-in-out;
6070
+ transition: all 0.15s ease-in-out;
6355
6071
  border-radius: 0.25rem;
6356
6072
  position: relative;
6357
6073
  }
@@ -6367,7 +6083,7 @@ a, a:hover {
6367
6083
  }
6368
6084
  .c-footer__link:hover, .c-footer__link:focus {
6369
6085
  color: var(--atomix-primary);
6370
- text-decoration: underline;
6086
+ text-decoration: none;
6371
6087
  }
6372
6088
  .c-footer__link:hover::before, .c-footer__link:focus::before {
6373
6089
  width: 100%;
@@ -6384,10 +6100,10 @@ a, a:hover {
6384
6100
  width: 100%;
6385
6101
  }
6386
6102
  .c-footer__link--disabled {
6387
- color: var(--atomix-text-disabled);
6103
+ color: var(--atomix-disabled-text-emphasis);
6388
6104
  cursor: not-allowed;
6389
6105
  pointer-events: none;
6390
- opacity: 0.6;
6106
+ opacity: var(--atomix-disabled-opacity);
6391
6107
  }
6392
6108
  .c-footer__link-icon {
6393
6109
  display: flex;
@@ -6418,11 +6134,11 @@ a, a:hover {
6418
6134
  justify-content: center;
6419
6135
  width: 2.5rem;
6420
6136
  height: 2.5rem;
6421
- background-color: var(--atomix-surface-variant);
6422
- color: var(--atomix-text);
6137
+ background-color: var(--atomix-secondary-bg-subtle);
6138
+ color: var(--atomix-primary-text-emphasis);
6423
6139
  border-radius: 50%;
6424
6140
  text-decoration: none;
6425
- transition: all 0.15s ease-in-out;
6141
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
6426
6142
  position: relative;
6427
6143
  overflow: hidden;
6428
6144
  }
@@ -6436,7 +6152,7 @@ a, a:hover {
6436
6152
  }
6437
6153
  .c-footer__social-link:hover, .c-footer__social-link:focus {
6438
6154
  background-color: var(--atomix-primary);
6439
- color: var(--atomix-primary-contrast);
6155
+ color: var(--atomix-component-active-color);
6440
6156
  transform: translateY(-3px) scale(1.05);
6441
6157
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
6442
6158
  }
@@ -6456,7 +6172,7 @@ a, a:hover {
6456
6172
  height: 3rem;
6457
6173
  }
6458
6174
  .c-footer__social-link--disabled {
6459
- opacity: 0.5;
6175
+ opacity: var(--atomix-disabled-opacity);
6460
6176
  cursor: not-allowed;
6461
6177
  pointer-events: none;
6462
6178
  }
@@ -6503,7 +6219,7 @@ a, a:hover {
6503
6219
  background: linear-gradient(135deg, #25d366, #66bb6a);
6504
6220
  }
6505
6221
  .c-footer__newsletter {
6506
- background-color: linear-gradient(135deg, var(--atomix-surface-variant), rgba(var(--atomix-surface-variant), 0.8));
6222
+ background-color: linear-gradient(135deg, var(--atomix-secondary-bg-subtle), rgba(var(--atomix-secondary-bg-subtle), 0.8));
6507
6223
  padding: 1.5rem;
6508
6224
  border-radius: 0.5rem;
6509
6225
  border: 1px solid var(--atomix-border-subtle);
@@ -6523,20 +6239,24 @@ a, a:hover {
6523
6239
  margin: 0 0 0.5rem 0;
6524
6240
  font-size: clamp(1.125rem, 2vw, 1.125rem);
6525
6241
  font-weight: 600;
6526
- color: var(--atomix-text-emphasis);
6242
+ color: var(--atomix-primary-text-emphasis);
6527
6243
  line-height: 1.3;
6528
6244
  }
6529
6245
  .c-footer__newsletter-description {
6530
6246
  margin: 0 0 1rem 0;
6531
6247
  font-size: 0.875rem;
6532
- color: var(--atomix-text-muted);
6248
+ color: var(--atomix-secondary-text-emphasis);
6533
6249
  line-height: 1.6;
6534
6250
  max-width: 45ch;
6251
+ width: 100%;
6252
+ box-sizing: border-box;
6535
6253
  }
6536
6254
  .c-footer__newsletter-form {
6537
6255
  display: flex;
6538
6256
  gap: 0.75rem;
6539
6257
  align-items: flex-end;
6258
+ width: 100%;
6259
+ max-width: 100%;
6540
6260
  }
6541
6261
  @media (max-width: 575.98px) {
6542
6262
  .c-footer__newsletter-form {
@@ -6559,12 +6279,13 @@ a, a:hover {
6559
6279
  flex: 1 1;
6560
6280
  padding: 0.75rem 1rem;
6561
6281
  font-size: 0.875rem;
6562
- background-color: var(--atomix-surface);
6563
- color: var(--atomix-text);
6564
- border: 1px solid var(--atomix-border);
6282
+ background-color: var(--atomix-primary-bg-subtle);
6283
+ color: var(--atomix-primary-text-emphasis);
6284
+ border: 1px solid var(--atomix-primary-border);
6565
6285
  border-radius: 0.375rem;
6566
6286
  outline: none;
6567
6287
  transition: all 0.3s ease;
6288
+ box-sizing: border-box;
6568
6289
  }
6569
6290
  .c-footer__newsletter-input:focus {
6570
6291
  border-color: var(--atomix-primary);
@@ -6572,12 +6293,12 @@ a, a:hover {
6572
6293
  transform: translateY(-1px);
6573
6294
  }
6574
6295
  .c-footer__newsletter-input::-moz-placeholder {
6575
- color: var(--atomix-text-muted);
6296
+ color: var(--atomix-gray-6);
6576
6297
  -moz-transition: opacity 0.3s ease;
6577
6298
  transition: opacity 0.3s ease;
6578
6299
  }
6579
6300
  .c-footer__newsletter-input::placeholder {
6580
- color: var(--atomix-text-muted);
6301
+ color: var(--atomix-gray-6);
6581
6302
  transition: opacity 0.3s ease;
6582
6303
  }
6583
6304
  .c-footer__newsletter-input:focus::-moz-placeholder {
@@ -6588,13 +6309,13 @@ a, a:hover {
6588
6309
  }
6589
6310
  .c-footer__newsletter-button {
6590
6311
  padding: 0.75rem 1.5rem;
6591
- background-color: var(--atomix-primary);
6592
- color: var(--atomix-primary-contrast);
6312
+ background-color: var(--atomix-brand-bg-subtle);
6313
+ color: var(--atomix-brand-text-emphasis);
6593
6314
  border: none;
6594
6315
  border-radius: 0.375rem;
6595
6316
  font-weight: 500;
6596
6317
  cursor: pointer;
6597
- transition: background-color 0.15s ease-in-out;
6318
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
6598
6319
  white-space: nowrap;
6599
6320
  position: relative;
6600
6321
  overflow: hidden;
@@ -6608,7 +6329,7 @@ a, a:hover {
6608
6329
  transition: transform 0.6s ease;
6609
6330
  }
6610
6331
  .c-footer__newsletter-button:hover, .c-footer__newsletter-button:focus {
6611
- background-color: var(--atomix-primary-hover);
6332
+ background-color: var(--atomix-secondary-bg-subtle);
6612
6333
  transform: translateY(-2px);
6613
6334
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
6614
6335
  }
@@ -6624,7 +6345,7 @@ a, a:hover {
6624
6345
  align-items: center;
6625
6346
  justify-content: space-between;
6626
6347
  padding-top: var(--atomix-footer-bottom-padding-top);
6627
- border-top: 1px solid var(--atomix-border);
6348
+ border-top: 1px solid var(--atomix-primary-border-subtle);
6628
6349
  position: relative;
6629
6350
  }
6630
6351
  @media (max-width: 575.98px) {
@@ -6636,7 +6357,7 @@ a, a:hover {
6636
6357
  }
6637
6358
  .c-footer__copyright {
6638
6359
  font-size: 0.875rem;
6639
- color: var(--atomix-text-muted);
6360
+ color: var(--atomix-tertiary-text-emphasis);
6640
6361
  line-height: 1.5;
6641
6362
  }
6642
6363
  .c-footer__copyright a {
@@ -6653,16 +6374,18 @@ a, a:hover {
6653
6374
  align-items: center;
6654
6375
  gap: 0.5rem;
6655
6376
  padding: 0.75rem 1.25rem;
6656
- background-color: var(--atomix-surface-variant);
6377
+ background-color: var(--atomix-secondary-bg);
6657
6378
  border: 1px solid var(--atomix-border-subtle);
6658
- color: var(--atomix-text);
6379
+ color: var(--atomix-primary-text-emphasis);
6659
6380
  font-size: 0.875rem;
6660
6381
  font-weight: 500;
6661
6382
  cursor: pointer;
6662
- transition: color 0.15s ease-in-out;
6383
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
6663
6384
  border-radius: 2rem;
6664
6385
  position: relative;
6665
6386
  overflow: hidden;
6387
+ text-decoration: none;
6388
+ outline: none;
6666
6389
  }
6667
6390
  .c-footer__back-to-top::before {
6668
6391
  content: "";
@@ -6670,14 +6393,14 @@ a, a:hover {
6670
6393
  inset: 0;
6671
6394
  background: linear-gradient(45deg, transparent 30%, rgba(255, 255, 255, 0.1) 50%, transparent 70%);
6672
6395
  transform: translateX(-100%);
6673
- transition: transform 0.6s ease;
6396
+ transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
6674
6397
  }
6675
6398
  .c-footer__back-to-top:hover, .c-footer__back-to-top:focus {
6676
- color: var(--atomix-primary);
6399
+ color: var(--atomix-secondary-text-emphasis);
6677
6400
  background-color: var(--atomix-primary);
6678
6401
  border-color: var(--atomix-primary);
6679
- transform: translateY(-2px);
6680
- box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
6402
+ transform: translateY(-3px);
6403
+ box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
6681
6404
  }
6682
6405
  .c-footer__back-to-top:hover::before, .c-footer__back-to-top:focus::before {
6683
6406
  transform: translateX(100%);
@@ -6685,6 +6408,10 @@ a, a:hover {
6685
6408
  .c-footer__back-to-top:hover .c-footer__back-to-top-icon, .c-footer__back-to-top:focus .c-footer__back-to-top-icon {
6686
6409
  transform: translateY(-2px);
6687
6410
  }
6411
+ .c-footer__back-to-top:active {
6412
+ transform: translateY(-1px);
6413
+ box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15);
6414
+ }
6688
6415
  .c-footer__back-to-top:focus-visible {
6689
6416
  outline: 2px solid var(--atomix-primary);
6690
6417
  outline-offset: 2px;
@@ -6692,7 +6419,7 @@ a, a:hover {
6692
6419
  .c-footer__back-to-top-icon {
6693
6420
  font-size: 1.25em;
6694
6421
  font-weight: bold;
6695
- transition: transform 0.3s ease;
6422
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
6696
6423
  }
6697
6424
  @media (max-width: 575.98px) {
6698
6425
  .c-footer__back-to-top-text {
@@ -6703,30 +6430,12 @@ a, a:hover {
6703
6430
  margin: 2rem 0;
6704
6431
  border: none;
6705
6432
  height: 1px;
6706
- background: linear-gradient(90deg, transparent, 1px solid var(--atomix-border), transparent);
6433
+ background: linear-gradient(90deg, transparent, 1px solid var(--atomix-primary-border-subtle), transparent);
6707
6434
  opacity: 0.5;
6708
6435
  }
6709
- @media (min-width: 768px) {
6710
- .c-footer--columns .c-footer__sections {
6711
- display: grid;
6712
- grid-template-columns: minmax(300px, 1fr) 2fr minmax(250px, 1fr);
6713
- grid-gap: clamp(2rem, 5vw, 4rem);
6714
- gap: clamp(2rem, 5vw, 4rem);
6715
- align-items: start;
6716
- }
6717
- }
6718
- @media (min-width: 992px) {
6719
- .c-footer--columns .c-footer__sections {
6720
- grid-template-columns: minmax(350px, 1fr) 3fr minmax(300px, 1fr);
6721
- }
6722
- }
6723
6436
  .c-footer--centered {
6724
6437
  text-align: center;
6725
6438
  }
6726
- .c-footer--centered .c-footer__sections {
6727
- justify-content: center;
6728
- align-items: center;
6729
- }
6730
6439
  .c-footer--centered .c-footer__social {
6731
6440
  justify-content: center;
6732
6441
  }
@@ -6736,13 +6445,14 @@ a, a:hover {
6736
6445
  }
6737
6446
  .c-footer--minimal {
6738
6447
  --atomix-footer-padding-y: 2rem;
6448
+ --atomix-footer-social-gap: 0.75;
6739
6449
  }
6740
6450
  .c-footer--minimal .c-footer__sections {
6741
6451
  margin-bottom: 1rem;
6742
6452
  gap: 1.5rem;
6743
6453
  }
6744
6454
  .c-footer--minimal .c-footer__section {
6745
- margin-bottom: 1rem;
6455
+ margin-bottom: 0;
6746
6456
  }
6747
6457
  .c-footer--minimal .c-footer__newsletter {
6748
6458
  padding: 1.5rem;
@@ -6757,15 +6467,26 @@ a, a:hover {
6757
6467
  margin-left: auto;
6758
6468
  margin-right: auto;
6759
6469
  }
6470
+ .c-footer--flexible .c-footer__section-col {
6471
+ flex: 1 1 auto;
6472
+ min-width: 250px;
6473
+ }
6474
+ .c-footer--sidebar .c-footer__sections--columns {
6475
+ align-items: flex-start;
6476
+ }
6477
+ .c-footer--wide .c-footer__sections {
6478
+ max-width: 100%;
6479
+ padding: 0 1rem;
6480
+ }
6760
6481
  .c-footer--sm {
6761
6482
  --atomix-footer-padding-y: 2rem;
6762
6483
  --atomix-footer-section-margin-bottom: 1.5rem;
6763
- --atomix-footer-brand-margin-bottom: 1rem;
6764
6484
  --atomix-footer-social-gap: 0.75rem;
6765
6485
  }
6766
6486
  .c-footer--md {
6767
6487
  --atomix-footer-padding-y: 3rem;
6768
6488
  --atomix-footer-section-margin-bottom: 2rem;
6489
+ --atomix-footer-social-gap: 1rem;
6769
6490
  }
6770
6491
  .c-footer--lg {
6771
6492
  --atomix-footer-padding-y: 4rem;
@@ -6779,7 +6500,7 @@ a, a:hover {
6779
6500
  .c-footer--primary {
6780
6501
  --atomix-footer-bg: var(--atomix-primary-bg-subtle);
6781
6502
  --atomix-footer-border-color: var(--atomix-primary-border-subtle);
6782
- --atomix-footer-color: var(--atomix-primary-text);
6503
+ --atomix-footer-color: var(--atomix-primary-text-emphasis);
6783
6504
  }
6784
6505
  .c-footer--primary .c-footer__brand-name h3,
6785
6506
  .c-footer--primary .c-footer__section-title {
@@ -6787,10 +6508,10 @@ a, a:hover {
6787
6508
  }
6788
6509
  .c-footer--primary .c-footer__brand-description,
6789
6510
  .c-footer--primary .c-footer__copyright {
6790
- color: var(--atomix-primary-text-muted);
6511
+ color: var(--atomix-gray-6);
6791
6512
  }
6792
6513
  .c-footer--primary .c-footer__link {
6793
- color: var(--atomix-primary-text);
6514
+ color: var(--atomix-primary-text-emphasis);
6794
6515
  }
6795
6516
  .c-footer--primary .c-footer__link:hover, .c-footer--primary .c-footer__link:focus {
6796
6517
  color: var(--atomix-primary);
@@ -6799,8 +6520,8 @@ a, a:hover {
6799
6520
  background-color: var(--atomix-primary);
6800
6521
  }
6801
6522
  .c-footer--primary .c-footer__newsletter {
6802
- background: linear-gradient(135deg, var(--atomix-primary-bg), rgba(var(--atomix-primary-bg-rgb), 0.8));
6803
- border-color: var(--atomix-primary-border);
6523
+ background: linear-gradient(135deg, var(--atomix-primary-bg-subtle), rgba(var(--atomix-primary-bg-subtle), 0.8));
6524
+ border-color: var(--atomix-primary-border-subtle);
6804
6525
  }
6805
6526
  .c-footer--primary .c-footer__newsletter::before {
6806
6527
  background: linear-gradient(90deg, transparent, var(--atomix-primary), transparent);
@@ -6808,7 +6529,7 @@ a, a:hover {
6808
6529
  .c-footer--secondary {
6809
6530
  --atomix-footer-bg: var(--atomix-secondary-bg-subtle);
6810
6531
  --atomix-footer-border-color: var(--atomix-secondary-border-subtle);
6811
- --atomix-footer-color: var(--atomix-secondary-text);
6532
+ --atomix-footer-color: var(--atomix-secondary-text-emphasis);
6812
6533
  }
6813
6534
  .c-footer--secondary .c-footer__brand-name h3,
6814
6535
  .c-footer--secondary .c-footer__section-title {
@@ -6816,10 +6537,10 @@ a, a:hover {
6816
6537
  }
6817
6538
  .c-footer--secondary .c-footer__brand-description,
6818
6539
  .c-footer--secondary .c-footer__copyright {
6819
- color: var(--atomix-secondary-text-muted);
6540
+ color: var(--atomix-gray-6);
6820
6541
  }
6821
6542
  .c-footer--secondary .c-footer__link {
6822
- color: var(--atomix-secondary-text);
6543
+ color: var(--atomix-secondary-text-emphasis);
6823
6544
  }
6824
6545
  .c-footer--secondary .c-footer__link:hover, .c-footer--secondary .c-footer__link:focus {
6825
6546
  color: var(--atomix-secondary);
@@ -6828,8 +6549,8 @@ a, a:hover {
6828
6549
  background-color: var(--atomix-secondary);
6829
6550
  }
6830
6551
  .c-footer--secondary .c-footer__newsletter {
6831
- background: linear-gradient(135deg, var(--atomix-secondary-bg), rgba(var(--atomix-secondary-bg-rgb), 0.8));
6832
- border-color: var(--atomix-secondary-border);
6552
+ background: linear-gradient(135deg, var(--atomix-secondary-bg-subtle), rgba(var(--atomix-secondary-bg-subtle), 0.8));
6553
+ border-color: var(--atomix-secondary-border-subtle);
6833
6554
  }
6834
6555
  .c-footer--secondary .c-footer__newsletter::before {
6835
6556
  background: linear-gradient(90deg, transparent, var(--atomix-secondary), transparent);
@@ -6837,7 +6558,7 @@ a, a:hover {
6837
6558
  .c-footer--tertiary {
6838
6559
  --atomix-footer-bg: var(--atomix-tertiary-bg-subtle);
6839
6560
  --atomix-footer-border-color: var(--atomix-tertiary-border-subtle);
6840
- --atomix-footer-color: var(--atomix-tertiary-text);
6561
+ --atomix-footer-color: var(--atomix-tertiary-text-emphasis);
6841
6562
  }
6842
6563
  .c-footer--tertiary .c-footer__brand-name h3,
6843
6564
  .c-footer--tertiary .c-footer__section-title {
@@ -6845,10 +6566,10 @@ a, a:hover {
6845
6566
  }
6846
6567
  .c-footer--tertiary .c-footer__brand-description,
6847
6568
  .c-footer--tertiary .c-footer__copyright {
6848
- color: var(--atomix-tertiary-text-muted);
6569
+ color: var(--atomix-gray-6);
6849
6570
  }
6850
6571
  .c-footer--tertiary .c-footer__link {
6851
- color: var(--atomix-tertiary-text);
6572
+ color: var(--atomix-tertiary-text-emphasis);
6852
6573
  }
6853
6574
  .c-footer--tertiary .c-footer__link:hover, .c-footer--tertiary .c-footer__link:focus {
6854
6575
  color: var(--atomix-tertiary);
@@ -6857,8 +6578,8 @@ a, a:hover {
6857
6578
  background-color: var(--atomix-tertiary);
6858
6579
  }
6859
6580
  .c-footer--tertiary .c-footer__newsletter {
6860
- background: linear-gradient(135deg, var(--atomix-tertiary-bg), rgba(var(--atomix-tertiary-bg-rgb), 0.8));
6861
- border-color: var(--atomix-tertiary-border);
6581
+ background: linear-gradient(135deg, var(--atomix-tertiary-bg-subtle), rgba(var(--atomix-tertiary-bg-subtle), 0.8));
6582
+ border-color: var(--atomix-tertiary-border-subtle);
6862
6583
  }
6863
6584
  .c-footer--tertiary .c-footer__newsletter::before {
6864
6585
  background: linear-gradient(90deg, transparent, var(--atomix-tertiary), transparent);
@@ -6866,7 +6587,7 @@ a, a:hover {
6866
6587
  .c-footer--invert {
6867
6588
  --atomix-footer-bg: var(--atomix-invert-bg-subtle);
6868
6589
  --atomix-footer-border-color: var(--atomix-invert-border-subtle);
6869
- --atomix-footer-color: var(--atomix-invert-text);
6590
+ --atomix-footer-color: var(--atomix-invert-text-emphasis);
6870
6591
  }
6871
6592
  .c-footer--invert .c-footer__brand-name h3,
6872
6593
  .c-footer--invert .c-footer__section-title {
@@ -6874,10 +6595,10 @@ a, a:hover {
6874
6595
  }
6875
6596
  .c-footer--invert .c-footer__brand-description,
6876
6597
  .c-footer--invert .c-footer__copyright {
6877
- color: var(--atomix-invert-text-muted);
6598
+ color: var(--atomix-gray-6);
6878
6599
  }
6879
6600
  .c-footer--invert .c-footer__link {
6880
- color: var(--atomix-invert-text);
6601
+ color: var(--atomix-invert-text-emphasis);
6881
6602
  }
6882
6603
  .c-footer--invert .c-footer__link:hover, .c-footer--invert .c-footer__link:focus {
6883
6604
  color: var(--atomix-invert);
@@ -6886,8 +6607,8 @@ a, a:hover {
6886
6607
  background-color: var(--atomix-invert);
6887
6608
  }
6888
6609
  .c-footer--invert .c-footer__newsletter {
6889
- background: linear-gradient(135deg, var(--atomix-invert-bg), rgba(var(--atomix-invert-bg-rgb), 0.8));
6890
- border-color: var(--atomix-invert-border);
6610
+ background: linear-gradient(135deg, var(--atomix-invert-bg-subtle), rgba(var(--atomix-invert-bg-subtle), 0.8));
6611
+ border-color: var(--atomix-invert-border-subtle);
6891
6612
  }
6892
6613
  .c-footer--invert .c-footer__newsletter::before {
6893
6614
  background: linear-gradient(90deg, transparent, var(--atomix-invert), transparent);
@@ -6895,7 +6616,7 @@ a, a:hover {
6895
6616
  .c-footer--brand {
6896
6617
  --atomix-footer-bg: var(--atomix-brand-bg-subtle);
6897
6618
  --atomix-footer-border-color: var(--atomix-brand-border-subtle);
6898
- --atomix-footer-color: var(--atomix-brand-text);
6619
+ --atomix-footer-color: var(--atomix-brand-text-emphasis);
6899
6620
  }
6900
6621
  .c-footer--brand .c-footer__brand-name h3,
6901
6622
  .c-footer--brand .c-footer__section-title {
@@ -6903,10 +6624,10 @@ a, a:hover {
6903
6624
  }
6904
6625
  .c-footer--brand .c-footer__brand-description,
6905
6626
  .c-footer--brand .c-footer__copyright {
6906
- color: var(--atomix-brand-text-muted);
6627
+ color: var(--atomix-gray-6);
6907
6628
  }
6908
6629
  .c-footer--brand .c-footer__link {
6909
- color: var(--atomix-brand-text);
6630
+ color: var(--atomix-brand-text-emphasis);
6910
6631
  }
6911
6632
  .c-footer--brand .c-footer__link:hover, .c-footer--brand .c-footer__link:focus {
6912
6633
  color: var(--atomix-brand);
@@ -6915,8 +6636,8 @@ a, a:hover {
6915
6636
  background-color: var(--atomix-brand);
6916
6637
  }
6917
6638
  .c-footer--brand .c-footer__newsletter {
6918
- background: linear-gradient(135deg, var(--atomix-brand-bg), rgba(var(--atomix-brand-bg-rgb), 0.8));
6919
- border-color: var(--atomix-brand-border);
6639
+ background: linear-gradient(135deg, var(--atomix-brand-bg-subtle), rgba(var(--atomix-brand-bg-subtle), 0.8));
6640
+ border-color: var(--atomix-brand-border-subtle);
6920
6641
  }
6921
6642
  .c-footer--brand .c-footer__newsletter::before {
6922
6643
  background: linear-gradient(90deg, transparent, var(--atomix-brand), transparent);
@@ -6924,7 +6645,7 @@ a, a:hover {
6924
6645
  .c-footer--error {
6925
6646
  --atomix-footer-bg: var(--atomix-error-bg-subtle);
6926
6647
  --atomix-footer-border-color: var(--atomix-error-border-subtle);
6927
- --atomix-footer-color: var(--atomix-error-text);
6648
+ --atomix-footer-color: var(--atomix-error-text-emphasis);
6928
6649
  }
6929
6650
  .c-footer--error .c-footer__brand-name h3,
6930
6651
  .c-footer--error .c-footer__section-title {
@@ -6932,10 +6653,10 @@ a, a:hover {
6932
6653
  }
6933
6654
  .c-footer--error .c-footer__brand-description,
6934
6655
  .c-footer--error .c-footer__copyright {
6935
- color: var(--atomix-error-text-muted);
6656
+ color: var(--atomix-gray-6);
6936
6657
  }
6937
6658
  .c-footer--error .c-footer__link {
6938
- color: var(--atomix-error-text);
6659
+ color: var(--atomix-error-text-emphasis);
6939
6660
  }
6940
6661
  .c-footer--error .c-footer__link:hover, .c-footer--error .c-footer__link:focus {
6941
6662
  color: var(--atomix-error);
@@ -6944,8 +6665,8 @@ a, a:hover {
6944
6665
  background-color: var(--atomix-error);
6945
6666
  }
6946
6667
  .c-footer--error .c-footer__newsletter {
6947
- background: linear-gradient(135deg, var(--atomix-error-bg), rgba(var(--atomix-error-bg-rgb), 0.8));
6948
- border-color: var(--atomix-error-border);
6668
+ background: linear-gradient(135deg, var(--atomix-error-bg-subtle), rgba(var(--atomix-error-bg-subtle), 0.8));
6669
+ border-color: var(--atomix-error-border-subtle);
6949
6670
  }
6950
6671
  .c-footer--error .c-footer__newsletter::before {
6951
6672
  background: linear-gradient(90deg, transparent, var(--atomix-error), transparent);
@@ -6953,7 +6674,7 @@ a, a:hover {
6953
6674
  .c-footer--success {
6954
6675
  --atomix-footer-bg: var(--atomix-success-bg-subtle);
6955
6676
  --atomix-footer-border-color: var(--atomix-success-border-subtle);
6956
- --atomix-footer-color: var(--atomix-success-text);
6677
+ --atomix-footer-color: var(--atomix-success-text-emphasis);
6957
6678
  }
6958
6679
  .c-footer--success .c-footer__brand-name h3,
6959
6680
  .c-footer--success .c-footer__section-title {
@@ -6961,10 +6682,10 @@ a, a:hover {
6961
6682
  }
6962
6683
  .c-footer--success .c-footer__brand-description,
6963
6684
  .c-footer--success .c-footer__copyright {
6964
- color: var(--atomix-success-text-muted);
6685
+ color: var(--atomix-gray-6);
6965
6686
  }
6966
6687
  .c-footer--success .c-footer__link {
6967
- color: var(--atomix-success-text);
6688
+ color: var(--atomix-success-text-emphasis);
6968
6689
  }
6969
6690
  .c-footer--success .c-footer__link:hover, .c-footer--success .c-footer__link:focus {
6970
6691
  color: var(--atomix-success);
@@ -6973,8 +6694,8 @@ a, a:hover {
6973
6694
  background-color: var(--atomix-success);
6974
6695
  }
6975
6696
  .c-footer--success .c-footer__newsletter {
6976
- background: linear-gradient(135deg, var(--atomix-success-bg), rgba(var(--atomix-success-bg-rgb), 0.8));
6977
- border-color: var(--atomix-success-border);
6697
+ background: linear-gradient(135deg, var(--atomix-success-bg-subtle), rgba(var(--atomix-success-bg-subtle), 0.8));
6698
+ border-color: var(--atomix-success-border-subtle);
6978
6699
  }
6979
6700
  .c-footer--success .c-footer__newsletter::before {
6980
6701
  background: linear-gradient(90deg, transparent, var(--atomix-success), transparent);
@@ -6982,7 +6703,7 @@ a, a:hover {
6982
6703
  .c-footer--warning {
6983
6704
  --atomix-footer-bg: var(--atomix-warning-bg-subtle);
6984
6705
  --atomix-footer-border-color: var(--atomix-warning-border-subtle);
6985
- --atomix-footer-color: var(--atomix-warning-text);
6706
+ --atomix-footer-color: var(--atomix-warning-text-emphasis);
6986
6707
  }
6987
6708
  .c-footer--warning .c-footer__brand-name h3,
6988
6709
  .c-footer--warning .c-footer__section-title {
@@ -6990,10 +6711,10 @@ a, a:hover {
6990
6711
  }
6991
6712
  .c-footer--warning .c-footer__brand-description,
6992
6713
  .c-footer--warning .c-footer__copyright {
6993
- color: var(--atomix-warning-text-muted);
6714
+ color: var(--atomix-gray-6);
6994
6715
  }
6995
6716
  .c-footer--warning .c-footer__link {
6996
- color: var(--atomix-warning-text);
6717
+ color: var(--atomix-warning-text-emphasis);
6997
6718
  }
6998
6719
  .c-footer--warning .c-footer__link:hover, .c-footer--warning .c-footer__link:focus {
6999
6720
  color: var(--atomix-warning);
@@ -7002,8 +6723,8 @@ a, a:hover {
7002
6723
  background-color: var(--atomix-warning);
7003
6724
  }
7004
6725
  .c-footer--warning .c-footer__newsletter {
7005
- background: linear-gradient(135deg, var(--atomix-warning-bg), rgba(var(--atomix-warning-bg-rgb), 0.8));
7006
- border-color: var(--atomix-warning-border);
6726
+ background: linear-gradient(135deg, var(--atomix-warning-bg-subtle), rgba(var(--atomix-warning-bg-subtle), 0.8));
6727
+ border-color: var(--atomix-warning-border-subtle);
7007
6728
  }
7008
6729
  .c-footer--warning .c-footer__newsletter::before {
7009
6730
  background: linear-gradient(90deg, transparent, var(--atomix-warning), transparent);
@@ -7011,7 +6732,7 @@ a, a:hover {
7011
6732
  .c-footer--info {
7012
6733
  --atomix-footer-bg: var(--atomix-info-bg-subtle);
7013
6734
  --atomix-footer-border-color: var(--atomix-info-border-subtle);
7014
- --atomix-footer-color: var(--atomix-info-text);
6735
+ --atomix-footer-color: var(--atomix-info-text-emphasis);
7015
6736
  }
7016
6737
  .c-footer--info .c-footer__brand-name h3,
7017
6738
  .c-footer--info .c-footer__section-title {
@@ -7019,10 +6740,10 @@ a, a:hover {
7019
6740
  }
7020
6741
  .c-footer--info .c-footer__brand-description,
7021
6742
  .c-footer--info .c-footer__copyright {
7022
- color: var(--atomix-info-text-muted);
6743
+ color: var(--atomix-gray-6);
7023
6744
  }
7024
6745
  .c-footer--info .c-footer__link {
7025
- color: var(--atomix-info-text);
6746
+ color: var(--atomix-info-text-emphasis);
7026
6747
  }
7027
6748
  .c-footer--info .c-footer__link:hover, .c-footer--info .c-footer__link:focus {
7028
6749
  color: var(--atomix-info);
@@ -7031,8 +6752,8 @@ a, a:hover {
7031
6752
  background-color: var(--atomix-info);
7032
6753
  }
7033
6754
  .c-footer--info .c-footer__newsletter {
7034
- background: linear-gradient(135deg, var(--atomix-info-bg), rgba(var(--atomix-info-bg-rgb), 0.8));
7035
- border-color: var(--atomix-info-border);
6755
+ background: linear-gradient(135deg, var(--atomix-info-bg-subtle), rgba(var(--atomix-info-bg-subtle), 0.8));
6756
+ border-color: var(--atomix-info-border-subtle);
7036
6757
  }
7037
6758
  .c-footer--info .c-footer__newsletter::before {
7038
6759
  background: linear-gradient(90deg, transparent, var(--atomix-info), transparent);
@@ -7040,7 +6761,7 @@ a, a:hover {
7040
6761
  .c-footer--light {
7041
6762
  --atomix-footer-bg: var(--atomix-light-bg-subtle);
7042
6763
  --atomix-footer-border-color: var(--atomix-light-border-subtle);
7043
- --atomix-footer-color: var(--atomix-light-text);
6764
+ --atomix-footer-color: var(--atomix-light-text-emphasis);
7044
6765
  }
7045
6766
  .c-footer--light .c-footer__brand-name h3,
7046
6767
  .c-footer--light .c-footer__section-title {
@@ -7048,10 +6769,10 @@ a, a:hover {
7048
6769
  }
7049
6770
  .c-footer--light .c-footer__brand-description,
7050
6771
  .c-footer--light .c-footer__copyright {
7051
- color: var(--atomix-light-text-muted);
6772
+ color: var(--atomix-gray-6);
7052
6773
  }
7053
6774
  .c-footer--light .c-footer__link {
7054
- color: var(--atomix-light-text);
6775
+ color: var(--atomix-light-text-emphasis);
7055
6776
  }
7056
6777
  .c-footer--light .c-footer__link:hover, .c-footer--light .c-footer__link:focus {
7057
6778
  color: var(--atomix-light);
@@ -7060,8 +6781,8 @@ a, a:hover {
7060
6781
  background-color: var(--atomix-light);
7061
6782
  }
7062
6783
  .c-footer--light .c-footer__newsletter {
7063
- background: linear-gradient(135deg, var(--atomix-light-bg), rgba(var(--atomix-light-bg-rgb), 0.8));
7064
- border-color: var(--atomix-light-border);
6784
+ background: linear-gradient(135deg, var(--atomix-light-bg-subtle), rgba(var(--atomix-light-bg-subtle), 0.8));
6785
+ border-color: var(--atomix-light-border-subtle);
7065
6786
  }
7066
6787
  .c-footer--light .c-footer__newsletter::before {
7067
6788
  background: linear-gradient(90deg, transparent, var(--atomix-light), transparent);
@@ -7069,7 +6790,7 @@ a, a:hover {
7069
6790
  .c-footer--dark {
7070
6791
  --atomix-footer-bg: var(--atomix-dark-bg-subtle);
7071
6792
  --atomix-footer-border-color: var(--atomix-dark-border-subtle);
7072
- --atomix-footer-color: var(--atomix-dark-text);
6793
+ --atomix-footer-color: var(--atomix-dark-text-emphasis);
7073
6794
  }
7074
6795
  .c-footer--dark .c-footer__brand-name h3,
7075
6796
  .c-footer--dark .c-footer__section-title {
@@ -7077,10 +6798,10 @@ a, a:hover {
7077
6798
  }
7078
6799
  .c-footer--dark .c-footer__brand-description,
7079
6800
  .c-footer--dark .c-footer__copyright {
7080
- color: var(--atomix-dark-text-muted);
6801
+ color: var(--atomix-gray-6);
7081
6802
  }
7082
6803
  .c-footer--dark .c-footer__link {
7083
- color: var(--atomix-dark-text);
6804
+ color: var(--atomix-dark-text-emphasis);
7084
6805
  }
7085
6806
  .c-footer--dark .c-footer__link:hover, .c-footer--dark .c-footer__link:focus {
7086
6807
  color: var(--atomix-dark);
@@ -7089,8 +6810,8 @@ a, a:hover {
7089
6810
  background-color: var(--atomix-dark);
7090
6811
  }
7091
6812
  .c-footer--dark .c-footer__newsletter {
7092
- background: linear-gradient(135deg, var(--atomix-dark-bg), rgba(var(--atomix-dark-bg-rgb), 0.8));
7093
- border-color: var(--atomix-dark-border);
6813
+ background: linear-gradient(135deg, var(--atomix-dark-bg-subtle), rgba(var(--atomix-dark-bg-subtle), 0.8));
6814
+ border-color: var(--atomix-dark-border-subtle);
7094
6815
  }
7095
6816
  .c-footer--dark .c-footer__newsletter::before {
7096
6817
  background: linear-gradient(90deg, transparent, var(--atomix-dark), transparent);
@@ -7098,34 +6819,12 @@ a, a:hover {
7098
6819
  .c-footer--sticky {
7099
6820
  position: sticky;
7100
6821
  bottom: 0;
7101
- z-index: 10;
6822
+ z-index: 100;
7102
6823
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.1);
7103
6824
  -webkit-backdrop-filter: blur(10px);
7104
6825
  backdrop-filter: blur(10px);
7105
6826
  background-color: rgba(var(--atomix-footer-bg-rgb), 0.95);
7106
6827
  }
7107
- @media (prefers-color-scheme: dark) {
7108
- .c-footer {
7109
- --atomix-footer-bg: var(--atomix-surface-dark);
7110
- --atomix-footer-color: var(--atomix-text-dark);
7111
- --atomix-footer-border-color: var(--atomix-border-dark);
7112
- }
7113
- }
7114
- .dark-mode .c-footer {
7115
- --atomix-footer-bg: var(--atomix-surface-dark);
7116
- --atomix-footer-color: var(--atomix-text-dark);
7117
- --atomix-footer-border-color: var(--atomix-border-dark);
7118
- }
7119
- .dark-mode .c-footer .c-footer__newsletter {
7120
- background: linear-gradient(135deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02));
7121
- border-color: rgba(255, 255, 255, 0.1);
7122
- }
7123
- .dark-mode .c-footer .c-footer__social-link {
7124
- background-color: rgba(255, 255, 255, 0.1);
7125
- }
7126
- .dark-mode .c-footer .c-footer__social-link:hover {
7127
- background-color: rgba(255, 255, 255, 0.2);
7128
- }
7129
6828
  @media (prefers-reduced-motion: reduce) {
7130
6829
  .c-footer *,
7131
6830
  .c-footer *::before,
@@ -7450,10 +7149,10 @@ a, a:hover {
7450
7149
  .c-input--glass {
7451
7150
  background-color: color-mix(in srgb, var(--atomix-input-bg) 50%, transparent);
7452
7151
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.1) inset;
7152
+ border-color: color-mix(in srgb, var(--atomix-input-border-color) 50%, transparent);
7453
7153
  }
7454
7154
  .c-input--glass:focus, .c-input--glass:hover {
7455
- background-color: color-mix(in srgb, var(--atomix-input-bg) 50%, transparent);
7456
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.2) inset, 0 0 0 2px rgba(var(--atomix-primary-rgb, 122, 255, 215), 0.3);
7155
+ background-color: color-mix(in srgb, var(--atomix-input-bg) 90%, transparent);
7457
7156
  }
7458
7157
  .c-input--glass.c-input--textarea {
7459
7158
  resize: vertical;
@@ -7528,6 +7227,7 @@ a, a:hover {
7528
7227
  --atomix-list-item-dash-width: 1rem;
7529
7228
  --atomix-list-item-dash-height: 0.125rem;
7530
7229
  padding-left: var(--atomix-list-padding-left);
7230
+ list-style: none;
7531
7231
  }
7532
7232
  .c-list__item {
7533
7233
  color: var(--atomix-list-color);
@@ -8181,6 +7881,8 @@ a, a:hover {
8181
7881
  width: 100%;
8182
7882
  height: 100%;
8183
7883
  display: none;
7884
+ }
7885
+ .c-modal:not(.c-modal--glass) {
8184
7886
  z-index: 1040;
8185
7887
  }
8186
7888
  .c-modal__backdrop {
@@ -11089,6 +10791,9 @@ a, a:hover {
11089
10791
  --atomix-upload-disabled-opacity: 0.6;
11090
10792
  --atomix-upload-loader-control-icon-size: 18px;
11091
10793
  --atomix-upload-loader-contorl-color: var(--atomix-body-color);
10794
+ --atomix-upload-helper-text-opacity: 0.7;
10795
+ --atomix-upload-text-opacity: 0.8;
10796
+ --atomix-upload-text-margin-bottom: 1rem;
11092
10797
  width: 100%;
11093
10798
  max-width: var(--atomix-upload-width);
11094
10799
  padding: var(--atomix-upload-padding-y) var(--atomix-upload-padding-x);
@@ -11109,24 +10814,47 @@ a, a:hover {
11109
10814
  padding: var(--atomix-upload-inner-padding-y) var(--atomix-upload-inner-padding-x);
11110
10815
  border-radius: var(--atomix-upload-border-radius);
11111
10816
  border: var(--atomix-upload-border-width) dashed var(--atomix-upload-border-color);
10817
+ cursor: pointer;
10818
+ transition: all 0.3s ease-in-out;
10819
+ }
10820
+ .c-upload__inner:hover {
10821
+ border-color: var(--atomix-primary-6);
10822
+ background-color: var(--atomix-primary-bg-subtle);
10823
+ transform: translateY(-2px);
10824
+ box-shadow: var(--atomix-box-shadow);
11112
10825
  }
11113
10826
  .c-upload__icon {
11114
10827
  font-size: var(--atomix-upload-icon-size);
11115
- padding: var(--atomix-upload-icon-padding);
11116
- background-color: var(--atomix-upload-icon-bg);
11117
- border-radius: 50rem;
10828
+ padding: 12;
10829
+ color: var(--atomix-primary-6);
10830
+ background-color: var(--atomix-primary-bg-subtle);
10831
+ border-radius: var(--atomix-border-radius-pill);
10832
+ margin-bottom: 12;
10833
+ transition: all 0.3s ease-in-out;
10834
+ }
10835
+ .c-upload__icon:hover {
10836
+ color: var(--atomix-primary-7);
10837
+ background-color: var(--atomix-primary-border-subtle);
10838
+ transform: scale(1.05);
11118
10839
  }
11119
10840
  .c-upload__title {
11120
10841
  color: var(--atomix-upload-title-color);
11121
10842
  font-size: var(--atomix-upload-title-font-size);
11122
10843
  font-weight: var(--atomix-upload-title-font-weight);
11123
10844
  margin-top: var(--atomix-upload-title-margin-top);
10845
+ margin-bottom: var(--atomix-upload-title-margin-bottom);
10846
+ text-align: center;
10847
+ line-height: 1.4;
11124
10848
  }
11125
10849
  .c-upload__text {
11126
10850
  color: var(--atomix-upload-text-color);
11127
10851
  font-size: var(--atomix-upload-text-font-size);
11128
10852
  font-weight: var(--atomix-upload-text-font-weight);
11129
10853
  margin-top: var(--atomix-upload-text-margin-top);
10854
+ margin-bottom: var(--atomix-upload-text-margin-bottom);
10855
+ text-align: center;
10856
+ line-height: 1.5;
10857
+ opacity: var(--atomix-upload-text-opacity);
11130
10858
  }
11131
10859
  .c-upload__btn {
11132
10860
  margin-top: var(--atomix-upload-btn-margin-top);
@@ -11136,6 +10864,9 @@ a, a:hover {
11136
10864
  font-size: var(--atomix-upload-helper-text-font-size);
11137
10865
  font-weight: var(--atomix-upload-helper-text-font-weight);
11138
10866
  margin-top: var(--atomix-upload-helper-text-margin-top);
10867
+ text-align: center;
10868
+ opacity: var(--atomix-upload-helper-text-opacity);
10869
+ line-height: 1.4;
11139
10870
  }
11140
10871
  .c-upload__row {
11141
10872
  width: 100%;
@@ -11154,6 +10885,7 @@ a, a:hover {
11154
10885
  .c-upload__loader {
11155
10886
  --upload-loader-percentage: 0;
11156
10887
  display: flex;
10888
+ align-items: center;
11157
10889
  justify-content: space-between;
11158
10890
  position: relative;
11159
10891
  width: 100%;
@@ -11162,6 +10894,8 @@ a, a:hover {
11162
10894
  border: var(--atomix-upload-loader-border-width) solid var(--atomix-upload-loader-border-color);
11163
10895
  border-radius: var(--atomix-upload-loader-border-radius);
11164
10896
  margin-top: var(--atomix-upload-loader-margin-top);
10897
+ background-color: var(--atomix-body-bg);
10898
+ box-shadow: var(--atomix-box-shadow-sm);
11165
10899
  overflow: hidden;
11166
10900
  }
11167
10901
  .c-upload__loader-title {
@@ -11186,6 +10920,20 @@ a, a:hover {
11186
10920
  .c-upload__loader-close {
11187
10921
  color: var(--atomix-upload-loader-contorl-color);
11188
10922
  font-size: var(--atomix-upload-loader-control-icon-size);
10923
+ background: none;
10924
+ border: none;
10925
+ cursor: pointer;
10926
+ padding: 4;
10927
+ border-radius: var(--atomix-border-radius-sm);
10928
+ transition: all 0.2s ease-in-out;
10929
+ }
10930
+ .c-upload__loader-close:hover {
10931
+ background-color: var(--atomix-danger-bg-subtle);
10932
+ color: var(--atomix-danger-text-emphasis);
10933
+ }
10934
+ .c-upload__loader-close:focus {
10935
+ outline: 2px solid var(--atomix-focus-border-color);
10936
+ outline-offset: 2px;
11189
10937
  }
11190
10938
  .c-upload__loader-bar {
11191
10939
  width: 22px;
@@ -11250,6 +10998,112 @@ a, a:hover {
11250
10998
  .c-upload--disabled .c-upload__btn {
11251
10999
  pointer-events: none;
11252
11000
  }
11001
+ .c-upload--disabled .c-upload__inner {
11002
+ cursor: not-allowed;
11003
+ }
11004
+ .c-upload--disabled .c-upload__inner:hover {
11005
+ transform: none;
11006
+ box-shadow: none;
11007
+ border-color: var(--atomix-upload-border-color);
11008
+ background-color: transparent;
11009
+ }
11010
+ .c-upload--dragging .c-upload__inner {
11011
+ border-color: var(--atomix-primary-6);
11012
+ background-color: var(--atomix-primary-bg-subtle);
11013
+ transform: scale(1.02);
11014
+ box-shadow: var(--atomix-box-shadow-lg);
11015
+ }
11016
+ .c-upload--dragging .c-upload__icon {
11017
+ color: var(--atomix-primary-7);
11018
+ background-color: var(--atomix-primary-border-subtle);
11019
+ transform: scale(1.1);
11020
+ }
11021
+ .c-upload--dragging .c-upload__title {
11022
+ color: var(--atomix-primary-6);
11023
+ }
11024
+ .c-upload--loading .c-upload__loader-bar circle:nth-child(2) {
11025
+ stroke: var(--atomix-primary-6);
11026
+ }
11027
+ .c-upload--success .c-upload__loader-bar circle:nth-child(2) {
11028
+ stroke: var(--atomix-success-6);
11029
+ }
11030
+ .c-upload--error .c-upload__loader-bar circle:nth-child(2) {
11031
+ stroke: var(--atomix-error-6);
11032
+ }
11033
+ .c-upload__input {
11034
+ position: absolute;
11035
+ width: 1px;
11036
+ height: 1px;
11037
+ padding: 0;
11038
+ margin: -1px;
11039
+ overflow: hidden;
11040
+ clip: rect(0, 0, 0, 0);
11041
+ white-space: nowrap;
11042
+ border: 0;
11043
+ }
11044
+ @media (max-width: 768px) {
11045
+ .c-upload {
11046
+ max-width: 100%;
11047
+ }
11048
+ .c-upload__inner {
11049
+ padding: 16 12;
11050
+ }
11051
+ .c-upload__icon {
11052
+ font-size: 28;
11053
+ padding: 8;
11054
+ margin-bottom: 8;
11055
+ }
11056
+ .c-upload__title {
11057
+ font-size: var(--atomix-font-size-md);
11058
+ }
11059
+ .c-upload__text {
11060
+ font-size: var(--atomix-font-size-xs);
11061
+ }
11062
+ .c-upload__loader {
11063
+ padding: 8 12;
11064
+ flex-direction: column;
11065
+ align-items: flex-start;
11066
+ gap: 8;
11067
+ }
11068
+ .c-upload__loader-control {
11069
+ align-self: flex-end;
11070
+ }
11071
+ }
11072
+ @media (prefers-reduced-motion: reduce) {
11073
+ .c-upload__inner {
11074
+ transition: none;
11075
+ }
11076
+ .c-upload__inner:hover {
11077
+ transform: none;
11078
+ }
11079
+ .c-upload__icon {
11080
+ transition: none;
11081
+ }
11082
+ .c-upload__icon:hover {
11083
+ transform: none;
11084
+ }
11085
+ .c-upload--dragging .c-upload__inner {
11086
+ transform: none;
11087
+ }
11088
+ .c-upload--dragging .c-upload__icon {
11089
+ transform: none;
11090
+ }
11091
+ }
11092
+ @media (prefers-contrast: high) {
11093
+ .c-upload__inner {
11094
+ border-width: 3px;
11095
+ }
11096
+ .c-upload--dragging .c-upload__inner {
11097
+ border-width: 4px;
11098
+ }
11099
+ .c-upload__loader {
11100
+ border-width: 2px;
11101
+ }
11102
+ }
11103
+ .c-upload__inner:focus-visible {
11104
+ outline: 2px solid var(--atomix-focus-border-color);
11105
+ outline-offset: 2px;
11106
+ }
11253
11107
  .c-video-player {
11254
11108
  --atomix--video-player-bg: #000;
11255
11109
  --atomix--video-player-border-radius: 8px;