@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
package/dist/atomix.css CHANGED
@@ -1726,60 +1726,183 @@ a, a:hover {
1726
1726
  margin-left: calc(var(--atomix-avatar-size) * -1 * var(--atomix-avatar-group-stacked-overlap) / 100);
1727
1727
  z-index: 1;
1728
1728
  }
1729
- .atomix-glass__layer, .atomix-glass__overlay, .atomix-glass__base, .atomix-glass__border-1, .atomix-glass__border-2 {
1730
- pointer-events: none;
1729
+ .c-atomix-glass {
1730
+ position: relative;
1731
+ --atomix-glass-radius: var(--atomix-radius-md, 16px);
1732
+ --atomix-glass-transform: none;
1733
+ --atomix-glass-transition: opacity var(--atomix-transition-duration, 0.2s) ease-out;
1734
+ --atomix-glass-position: absolute;
1735
+ --atomix-glass-container-width: 100%;
1736
+ --atomix-glass-container-height: 100%;
1737
+ --atomix-glass-border-width: var(--atomix-spacing-0-5, 0.09375rem);
1738
+ }
1739
+ .c-atomix-glass__hover-1, .c-atomix-glass__hover-2, .c-atomix-glass__hover-3, .c-atomix-glass__base, .c-atomix-glass__overlay {
1731
1740
  position: absolute;
1732
1741
  inset: 0;
1733
- border-radius: inherit;
1734
- transform: inherit;
1735
- transition: inherit;
1742
+ pointer-events: none;
1743
+ border-radius: var(--atomix-glass-radius);
1744
+ transform: var(--atomix-glass-transform);
1745
+ transition: var(--atomix-glass-transition);
1746
+ }
1747
+ .c-atomix-glass__hover-1, .c-atomix-glass__hover-2, .c-atomix-glass__hover-3 {
1748
+ mix-blend-mode: overlay;
1749
+ opacity: var(--atomix-glass-hover-1-opacity, 0);
1750
+ background: var(--atomix-glass-hover-1-gradient, none);
1751
+ }
1752
+ .c-atomix-glass__hover-1 {
1753
+ transition: opacity 0.2s ease-out;
1754
+ opacity: var(--atomix-glass-hover-1-opacity, 0);
1755
+ background: var(--atomix-glass-hover-1-gradient, none);
1756
+ }
1757
+ .c-atomix-glass__hover-2 {
1758
+ transition: opacity 0.4s ease-out;
1759
+ opacity: var(--atomix-glass-hover-2-opacity, 0);
1760
+ background: var(--atomix-glass-hover-2-gradient, none);
1761
+ }
1762
+ .c-atomix-glass__hover-3 {
1763
+ transition: opacity 0.6s ease-out;
1764
+ opacity: var(--atomix-glass-hover-3-opacity, 0);
1765
+ background: var(--atomix-glass-hover-3-gradient, none);
1766
+ }
1767
+ .c-atomix-glass__base {
1768
+ mix-blend-mode: soft-light;
1769
+ opacity: var(--atomix-glass-base-opacity, 0);
1770
+ background: var(--atomix-glass-base-gradient, none);
1771
+ }
1772
+ .c-atomix-glass__overlay {
1773
+ mix-blend-mode: overlay;
1774
+ opacity: var(--atomix-glass-overlay-opacity, 0);
1775
+ background: var(--atomix-glass-overlay-gradient, none);
1776
+ }
1777
+ .c-atomix-glass__overlay-highlight {
1778
+ position: absolute;
1779
+ inset: var(--atomix-spacing-0-5, 0.125rem);
1780
+ pointer-events: none;
1781
+ border-radius: var(--atomix-glass-radius);
1782
+ transform: var(--atomix-glass-transform);
1783
+ transition: var(--atomix-glass-transition);
1784
+ mix-blend-mode: screen;
1736
1785
  }
1737
- .atomix-glass__border-1, .atomix-glass__border-2 {
1786
+ .c-atomix-glass__border-1, .c-atomix-glass__border-2 {
1787
+ padding: var(--atomix-glass-border-width);
1738
1788
  box-sizing: border-box;
1739
- padding: 1.5px;
1740
- -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
1789
+ overflow: hidden;
1790
+ pointer-events: none;
1791
+ -webkit-mask: linear-gradient(var(--atomix-black, #000000) 0 0) content-box, linear-gradient(var(--atomix-black, #000000) 0 0);
1741
1792
  -webkit-mask-composite: xor;
1742
- mask-composite: exclude;
1743
- 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);
1744
- transition-property: transform;
1745
- }
1746
- .atomix-glass__border-1 {
1747
- z-index: 5;
1748
- opacity: 0.3;
1793
+ -webkit-mask: linear-gradient(var(--atomix-black, #000000) 0 0) content-box, linear-gradient(var(--atomix-black, #000000) 0 0);
1794
+ mask: linear-gradient(var(--atomix-black, #000000) 0 0) content-box, linear-gradient(var(--atomix-black, #000000) 0 0);
1795
+ -webkit-mask-composite: xor;
1796
+ mask-composite: exclude;
1797
+ position: var(--atomix-glass-position);
1798
+ top: var(--atomix-glass-top);
1799
+ left: var(--atomix-glass-left);
1800
+ width: var(--atomix-glass-width);
1801
+ height: var(--atomix-glass-height);
1802
+ border-radius: var(--atomix-glass-radius);
1803
+ transform: var(--atomix-glass-transform);
1804
+ transition: var(--atomix-glass-transition);
1805
+ }
1806
+ .c-atomix-glass__border-1 {
1807
+ opacity: var(--atomix-opacity-20, 0.2);
1749
1808
  mix-blend-mode: screen;
1809
+ z-index: var(--atomix-z-index-5, 5);
1810
+ background: var(--atomix-glass-border-gradient-1, none);
1811
+ 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));
1812
+ }
1813
+ .c-atomix-glass__border-2 {
1814
+ mix-blend-mode: overlay;
1815
+ z-index: var(--atomix-z-index-6, 6);
1816
+ background: var(--atomix-glass-border-gradient-2, none);
1817
+ 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));
1818
+ }
1819
+ .c-atomix-glass__container {
1820
+ width: var(--atomix-glass-container-width);
1821
+ height: var(--atomix-glass-container-height);
1822
+ position: relative;
1823
+ border-radius: var(--atomix-glass-radius);
1824
+ transition: border-radius 0.25s ease-out;
1750
1825
  }
1751
- .atomix-glass__border-2 {
1752
- z-index: 6;
1826
+ .c-atomix-glass__inner {
1827
+ width: var(--atomix-glass-container-width);
1828
+ height: var(--atomix-glass-container-height);
1829
+ position: relative;
1830
+ border-radius: var(--atomix-glass-radius);
1753
1831
  }
1754
- .atomix-glass__hover-1, .atomix-glass__hover-2, .atomix-glass__hover-3 {
1832
+ .c-atomix-glass__filter {
1755
1833
  position: absolute;
1756
- inset: 0;
1834
+ top: 0;
1835
+ left: 0;
1836
+ width: 100%;
1837
+ height: 100%;
1757
1838
  pointer-events: none;
1758
- border-radius: inherit;
1759
- transform: inherit;
1760
- transition: inherit;
1761
- transition-property: transform, opacity;
1762
1839
  }
1763
- .atomix-glass__hover-1 {
1764
- opacity: 0;
1840
+ .c-atomix-glass__filter-overlay {
1841
+ position: absolute;
1842
+ inset: 0;
1843
+ pointer-events: none;
1765
1844
  }
1766
- .atomix-glass__hover-2 {
1767
- overflow: hidden;
1768
- opacity: 0;
1845
+ .c-atomix-glass__filter-shadow {
1846
+ position: absolute;
1847
+ inset: var(--atomix-glass-border-width);
1848
+ pointer-events: none;
1769
1849
  }
1770
- .atomix-glass__hover-3 {
1771
- opacity: 0;
1850
+ .c-atomix-glass__content {
1851
+ position: relative;
1852
+ width: var(--atomix-glass-container-width);
1853
+ height: var(--atomix-glass-container-height);
1772
1854
  }
1773
- .atomix-glass__base {
1855
+ .c-atomix-glass__background-layer {
1856
+ position: absolute;
1857
+ pointer-events: none;
1858
+ border-radius: var(--atomix-glass-radius);
1859
+ transform: var(--atomix-glass-transform);
1860
+ transition: var(--atomix-glass-transition);
1774
1861
  will-change: transform;
1775
- transition-property: transform, opacity;
1776
- opacity: 0;
1777
1862
  }
1778
- .atomix-glass__overlay {
1863
+ .c-atomix-glass__background-layer--dark {
1864
+ background-color: var(--atomix-gray-9, #1f2937);
1865
+ }
1866
+ .c-atomix-glass__background-layer--black {
1867
+ background-color: var(--atomix-black, #000000);
1779
1868
  mix-blend-mode: overlay;
1780
- will-change: transform;
1781
- transition-property: transform, opacity;
1782
- opacity: 0;
1869
+ }
1870
+ .c-atomix-glass__background-layer--dark.c-atomix-glass__background-layer--over-light {
1871
+ opacity: var(--atomix-opacity-50, 0.5);
1872
+ }
1873
+ .c-atomix-glass__background-layer--black.c-atomix-glass__background-layer--over-light {
1874
+ opacity: var(--atomix-opacity-25, 0.25);
1875
+ }
1876
+ .c-atomix-glass__background-layer--hidden {
1877
+ opacity: var(--atomix-opacity-0, 0);
1878
+ }
1879
+ .c-atomix-glass--reduced-motion {
1880
+ --atomix-glass-transition: none;
1881
+ }
1882
+ .c-atomix-glass--reduced-motion * {
1883
+ transition: none !important;
1884
+ }
1885
+ .c-atomix-glass--high-contrast {
1886
+ border: var(--atomix-spacing-0-5, 2px) solid currentColor;
1887
+ outline: var(--atomix-spacing-0-5, 2px) solid transparent;
1888
+ outline-offset: var(--atomix-spacing-0-5, 2px);
1889
+ }
1890
+ .c-atomix-glass--disabled-effects {
1891
+ --atomix-glass-transform: none;
1892
+ --atomix-glass-transition: none;
1893
+ }
1894
+ @media (prefers-reduced-motion: reduce) {
1895
+ .c-atomix-glass {
1896
+ --atomix-glass-transition: none;
1897
+ }
1898
+ .c-atomix-glass * {
1899
+ transition: none !important;
1900
+ }
1901
+ }
1902
+ @media (prefers-contrast: high) {
1903
+ .c-atomix-glass {
1904
+ border-width: var(--atomix-spacing-0-5, 0.125rem);
1905
+ }
1783
1906
  }
1784
1907
  .c-badge {
1785
1908
  --atomix-tag-font-size: 0.75rem;
@@ -2797,19 +2920,8 @@ a, a:hover {
2797
2920
  padding-top: 0;
2798
2921
  }
2799
2922
  .c-card--glass {
2800
- background-color: transparent;
2801
- padding: 0;
2802
- border: none;
2803
- display: block;
2804
- border-radius: 0;
2805
- }
2806
- .c-card--glass .c-card__glass-content {
2807
- padding: var(--atomix-card-spacer-y) var(--atomix-card-spacer-x);
2808
- max-width: var(--atomix-card-width);
2809
- border-radius: var(--atomix-card-border-radius);
2810
- width: 100%;
2923
+ max-width: none;
2811
2924
  background-color: color-mix(in srgb, var(--atomix-card-bg) 50%, transparent);
2812
- background-blend-mode: overlay;
2813
2925
  }
2814
2926
  .is-elevated .c-card {
2815
2927
  box-shadow: var(--atomix-box-shadow-lg, 0 16px 48px rgba(0, 0, 0, 0.175));
@@ -2831,126 +2943,49 @@ a, a:hover {
2831
2943
  border: var(--atomix-chart-border-width) solid var(--atomix-chart-border-color);
2832
2944
  border-radius: var(--atomix-chart-border-radius);
2833
2945
  overflow: hidden;
2834
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.075);
2946
+ 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);
2835
2947
  position: relative;
2836
2948
  min-height: var(--atomix-chart-min-height);
2837
2949
  width: 100%;
2838
2950
  max-width: 100%;
2839
- background-color: var(--atomix-chart-bg);
2840
- transition-property: all;
2841
- transition-duration: 0.2s;
2842
- transition-timing-function: ease-in-out;
2843
- transition-delay: 0s;
2951
+ background: var(--atomix-chart-bg);
2952
+ backdrop-filter: blur(10px);
2953
+ -webkit-backdrop-filter: blur(10px);
2844
2954
  }
2845
- .c-chart::after {
2955
+ .c-chart::before {
2846
2956
  content: "";
2847
2957
  position: absolute;
2848
2958
  inset: 0;
2849
- background: linear-gradient(135deg, rgba(var(--atomix-primary-rgb), 0.1) 0%, transparent 50%, rgba(var(--atomix-secondary-rgb), 0.05) 100%);
2959
+ 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%);
2850
2960
  pointer-events: none;
2851
2961
  z-index: 1;
2962
+ opacity: 1;
2963
+ transition: opacity 0.3s ease;
2852
2964
  }
2853
- .c-chart:hover {
2854
- box-shadow: 0 16px 48px rgba(0, 0, 0, 0.175);
2855
- border-color: var(--atomix-primary-border-subtle);
2856
- }
2857
- .c-chart:focus-visible {
2858
- 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);
2859
- }
2860
- .c-chart--xs {
2861
- --atomix-chart-min-height: 7rem;
2862
- --atomix-chart-padding: 0.5rem;
2863
- font-size: 0.75rem;
2864
- }
2865
- .c-chart--sm {
2866
- --atomix-chart-min-height: 9rem;
2867
- --atomix-chart-padding: 0.75rem;
2868
- font-size: 0.875rem;
2869
- }
2870
- .c-chart--md {
2871
- --atomix-chart-min-height: 13rem;
2872
- --atomix-chart-padding: 1rem;
2873
- font-size: 1rem;
2874
- }
2875
- .c-chart--lg {
2876
- --atomix-chart-min-height: 18rem;
2877
- --atomix-chart-padding: 1.5rem;
2878
- font-size: 1.125rem;
2879
- }
2880
- .c-chart--xl {
2881
- --atomix-chart-min-height: 20rem;
2882
- --atomix-chart-padding: 2rem;
2883
- font-size: 1.25rem;
2884
- }
2885
- .c-chart--2xl {
2886
- --atomix-chart-min-height: ;
2887
- --atomix-chart-padding: 2.5rem;
2888
- font-size: 1.25rem;
2889
- }
2890
- .c-chart--full {
2891
- height: 100vh;
2892
- min-height: auto;
2893
- border-radius: 0;
2894
- }
2895
- .c-chart--auto {
2896
- height: auto;
2897
- min-height: 8rem;
2898
- }
2899
- .c-chart--primary {
2900
- --atomix-chart-primary-color: var(--atomix-primary-6);
2901
- --atomix-chart-border-color: var(--atomix-primary-border-subtle);
2902
- }
2903
- .c-chart--primary:hover {
2904
- border-color: var(--atomix-primary-border-subtle);
2905
- }
2906
- .c-chart--secondary {
2907
- --atomix-chart-primary-color: var(--atomix-secondary-6);
2908
- --atomix-chart-border-color: var(--atomix-secondary-border-subtle);
2909
- }
2910
- .c-chart--secondary:hover {
2911
- border-color: var(--atomix-secondary-border-subtle);
2912
- }
2913
- .c-chart--success {
2914
- --atomix-chart-primary-color: var(--atomix-success-6);
2915
- --atomix-chart-border-color: var(--atomix-success-border-subtle);
2916
- }
2917
- .c-chart--success:hover {
2918
- border-color: var(--atomix-success-border-subtle);
2919
- }
2920
- .c-chart--info {
2921
- --atomix-chart-primary-color: var(--atomix-info-6);
2922
- --atomix-chart-border-color: var(--atomix-info-border-subtle);
2923
- }
2924
- .c-chart--info:hover {
2925
- border-color: var(--atomix-info-border-subtle);
2926
- }
2927
- .c-chart--warning {
2928
- --atomix-chart-primary-color: var(--atomix-warning-6);
2929
- --atomix-chart-border-color: var(--atomix-warning-border-subtle);
2930
- }
2931
- .c-chart--warning:hover {
2932
- border-color: var(--atomix-warning-border-subtle);
2933
- }
2934
- .c-chart--error {
2935
- --atomix-chart-primary-color: var(--atomix-error-6);
2936
- --atomix-chart-border-color: var(--atomix-error-border-subtle);
2937
- }
2938
- .c-chart--error:hover {
2939
- border-color: var(--atomix-error-border-subtle);
2940
- }
2941
- .c-chart--light {
2942
- --atomix-chart-primary-color: var(--atomix-light-6);
2943
- --atomix-chart-border-color: var(--atomix-light-border-subtle);
2944
- }
2945
- .c-chart--light:hover {
2946
- border-color: var(--atomix-light-border-subtle);
2965
+ .c-chart::after {
2966
+ content: "";
2967
+ position: absolute;
2968
+ inset: 0;
2969
+ border-radius: inherit;
2970
+ padding: 1px;
2971
+ background: linear-gradient(135deg, rgba(var(--atomix-primary-rgb), 0.1), rgba(var(--atomix-secondary-rgb), 0.05), transparent);
2972
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2973
+ -webkit-mask-composite: xor;
2974
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2975
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2976
+ -webkit-mask-composite: xor;
2977
+ mask-composite: exclude;
2978
+ pointer-events: none;
2979
+ z-index: 2;
2980
+ opacity: 0;
2981
+ transition: opacity 0.3s ease;
2947
2982
  }
2948
- .c-chart--dark {
2949
- --atomix-chart-primary-color: var(--atomix-dark-6);
2950
- --atomix-chart-border-color: var(--atomix-dark-border-subtle);
2983
+ .c-chart:hover {
2984
+ 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);
2985
+ border-color: rgba(var(--atomix-primary-rgb), 0.2);
2951
2986
  }
2952
- .c-chart--dark:hover {
2953
- border-color: var(--atomix-dark-border-subtle);
2987
+ .c-chart:hover::after {
2988
+ opacity: 1;
2954
2989
  }
2955
2990
  .c-chart--loading .c-chart__content {
2956
2991
  position: relative;
@@ -2970,38 +3005,6 @@ a, a:hover {
2970
3005
  opacity: 0.3;
2971
3006
  filter: blur(1px);
2972
3007
  }
2973
- .c-chart--interactive {
2974
- cursor: pointer;
2975
- -webkit-user-select: none;
2976
- -moz-user-select: none;
2977
- user-select: none;
2978
- }
2979
- .c-chart--interactive:hover {
2980
- transform: translateY(-2px);
2981
- box-shadow: 0px 16px 64px -8px rgba(45, 54, 67, 0.14);
2982
- }
2983
- .c-chart--interactive:active {
2984
- transform: translateY(0);
2985
- box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
2986
- transition-duration: 0.1s;
2987
- }
2988
- .c-chart--interactive:focus-visible {
2989
- transform: translateY(-1px);
2990
- }
2991
- .c-chart--disabled {
2992
- pointer-events: none;
2993
- opacity: 0.6;
2994
- }
2995
- .c-chart--disabled .c-chart__content {
2996
- filter: grayscale(80%) opacity(0.6);
2997
- }
2998
- .c-chart--disabled .c-chart__canvas {
2999
- pointer-events: none;
3000
- }
3001
- .c-chart--disabled:hover {
3002
- transform: none;
3003
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.075);
3004
- }
3005
3008
  .c-chart--fullscreen {
3006
3009
  position: fixed;
3007
3010
  top: 0;
@@ -3011,29 +3014,58 @@ a, a:hover {
3011
3014
  z-index: 9999;
3012
3015
  border-radius: 0;
3013
3016
  box-shadow: none;
3014
- background: var(--atomix-primary-bg-default);
3017
+ background: var(--atomix-body-bg);
3015
3018
  }
3016
3019
  .c-chart--elevated {
3017
- box-shadow: 0 16px 48px rgba(0, 0, 0, 0.175);
3018
- transform: translateY(-2px);
3020
+ 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);
3019
3021
  }
3020
3022
  .c-chart--elevated:hover {
3021
- box-shadow: 0px 16px 64px -8px rgba(45, 54, 67, 0.14);
3022
- transform: translateY(-4px);
3023
+ 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);
3023
3024
  }
3024
- .c-chart--flat {
3025
+ .c-chart--glass {
3026
+ background: transparent;
3027
+ border: none;
3025
3028
  box-shadow: none;
3026
- border: 2px solid var(--atomix-primary-border-subtle);
3027
3029
  }
3028
- .c-chart--flat:hover {
3029
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.075);
3030
+ .c-chart--glass .c-chart__content {
3031
+ position: relative;
3032
+ }
3033
+ .c-chart--glass .c-chart__canvas {
3034
+ position: relative;
3035
+ }
3036
+ .c-chart--glass .c-chart__toolbar {
3037
+ position: relative;
3038
+ }
3039
+ .c-chart--disabled {
3040
+ opacity: 0.6;
3041
+ cursor: not-allowed;
3042
+ pointer-events: none;
3043
+ pointer-events: none;
3044
+ opacity: 0.6;
3045
+ }
3046
+ .c-chart--disabled:hover, .c-chart--disabled:focus, .c-chart--disabled:active {
3047
+ background-color: inherit;
3048
+ color: inherit;
3030
3049
  transform: none;
3031
3050
  }
3032
- .c-chart--rounded {
3033
- border-radius: 0.75rem;
3051
+ .c-chart--selected {
3052
+ border-color: rgba(var(--atomix-primary-rgb), 0.3);
3053
+ 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);
3054
+ background: linear-gradient(135deg, rgba(var(--atomix-primary-rgb), 0.08) 0%, rgba(var(--atomix-primary-rgb), 0.04) 100%), var(--atomix-chart-bg);
3034
3055
  }
3035
- .c-chart--square {
3036
- border-radius: 0;
3056
+ .c-chart--active {
3057
+ border-color: var(--atomix-primary-border-subtle);
3058
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
3059
+ }
3060
+ .c-chart--clickable {
3061
+ cursor: pointer;
3062
+ }
3063
+ .c-chart--clickable:hover {
3064
+ 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);
3065
+ border-color: rgba(var(--atomix-primary-rgb), 0.25);
3066
+ }
3067
+ .c-chart--clickable:active {
3068
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.12);
3037
3069
  }
3038
3070
  .c-chart__header {
3039
3071
  padding: var(--atomix-chart-padding);
@@ -3143,8 +3175,11 @@ a, a:hover {
3143
3175
  transform: scale(1.1);
3144
3176
  }
3145
3177
  .c-chart__action:focus-visible {
3146
- outline: 2px solid var(--atomix-primary-6);
3178
+ outline: 2px solid var(--atomix-focus-border-color);
3147
3179
  outline-offset: 2px;
3180
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
3181
+ }
3182
+ .c-chart__action:focus-visible {
3148
3183
  border-color: var(--atomix-primary-border-subtle);
3149
3184
  }
3150
3185
  .c-chart__action:active {
@@ -3170,45 +3205,6 @@ a, a:hover {
3170
3205
  background-color: transparent;
3171
3206
  border-color: transparent;
3172
3207
  }
3173
- .c-chart__action--primary {
3174
- background-color: var(--atomix-primary-6);
3175
- color: white;
3176
- border-color: var(--atomix-primary-6);
3177
- }
3178
- .c-chart__action--primary:hover {
3179
- background-color: var(--atomix-primary-7);
3180
- border-color: var(--atomix-primary-7);
3181
- }
3182
- .c-chart__action--primary:active {
3183
- background-color: var(--atomix-primary-8);
3184
- }
3185
- .c-chart__action--success {
3186
- background-color: var(--atomix-success-6);
3187
- color: white;
3188
- border-color: var(--atomix-success-6);
3189
- }
3190
- .c-chart__action--success:hover {
3191
- background-color: var(--atomix-success-7);
3192
- border-color: var(--atomix-success-7);
3193
- }
3194
- .c-chart__action--warning {
3195
- background-color: var(--atomix-warning-6);
3196
- color: white;
3197
- border-color: var(--atomix-warning-6);
3198
- }
3199
- .c-chart__action--warning:hover {
3200
- background-color: var(--atomix-warning-7);
3201
- border-color: var(--atomix-warning-7);
3202
- }
3203
- .c-chart__action--danger {
3204
- background-color: var(--atomix-error-6);
3205
- color: white;
3206
- border-color: var(--atomix-error-6);
3207
- }
3208
- .c-chart__action--danger:hover {
3209
- background-color: var(--atomix-error-7);
3210
- border-color: var(--atomix-error-7);
3211
- }
3212
3208
  .c-chart__export-group {
3213
3209
  position: relative;
3214
3210
  display: flex;
@@ -3230,7 +3226,7 @@ a, a:hover {
3230
3226
  border-radius: 0.25rem;
3231
3227
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.175);
3232
3228
  padding: 0.25rem;
3233
- min-width: 7.5rem;
3229
+ min-width: 7rem;
3234
3230
  z-index: 1000;
3235
3231
  opacity: 0;
3236
3232
  visibility: hidden;
@@ -3260,8 +3256,8 @@ a, a:hover {
3260
3256
  color: var(--atomix-primary-text-emphasis);
3261
3257
  }
3262
3258
  .c-chart__export-option:focus-visible {
3263
- outline: 2px solid var(--atomix-primary-6);
3264
- outline-offset: -2px;
3259
+ outline: calc(var(--atomix-border-width) * 2) solid var(--atomix-primary-6);
3260
+ outline-offset: calc(var(--atomix-border-width) * -2);
3265
3261
  }
3266
3262
  .c-chart__export-option:disabled {
3267
3263
  opacity: 0.4;
@@ -3271,201 +3267,178 @@ a, a:hover {
3271
3267
  .c-chart__export-option:not(:last-child) {
3272
3268
  margin-bottom: 0.25rem;
3273
3269
  }
3274
- .c-chart__content {
3275
- flex: 1 1;
3276
- position: relative;
3277
- padding: var(--atomix-chart-padding);
3278
- display: flex;
3279
- align-items: center;
3280
- justify-content: center;
3281
- min-height: 8rem;
3282
- }
3283
- .c-chart__content::before {
3284
- content: "";
3270
+ .c-chart__settings-menu {
3285
3271
  position: absolute;
3286
- top: 0;
3287
- left: 0;
3272
+ top: 100%;
3288
3273
  right: 0;
3289
- bottom: 0;
3290
- background-image: radial-gradient(circle at 1px 1px, var(--atomix-primary-border-subtle) 1px, transparent 0);
3291
- background-size: 1.25rem 1.25rem;
3292
- opacity: 0.03;
3293
- pointer-events: none;
3294
- z-index: 0;
3295
- }
3296
- .c-chart__content::after {
3297
- content: "";
3298
- position: absolute;
3299
- inset: 0;
3300
- background: linear-gradient(135deg, rgba(255, 255, 255, 0.02) 0%, transparent 50%, rgba(0, 0, 0, 0.02) 100%);
3301
- pointer-events: none;
3302
- z-index: 1;
3303
- }
3304
- .c-chart__canvas {
3305
- width: 100%;
3306
- height: 100%;
3307
- position: relative;
3308
- overflow: hidden;
3274
+ margin-top: 0.25rem;
3275
+ background: var(--atomix-primary-bg-default);
3276
+ border: 1px solid var(--atomix-primary-border-subtle);
3309
3277
  border-radius: 0.25rem;
3310
- z-index: 2;
3278
+ box-shadow: 0 16px 48px rgba(0, 0, 0, 0.175);
3279
+ padding: 0.5rem;
3280
+ min-width: 8.75rem;
3281
+ z-index: 1000;
3282
+ opacity: 0;
3283
+ visibility: hidden;
3284
+ transform: translateY(-8px);
3285
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3286
+ -webkit-backdrop-filter: blur(8px);
3287
+ backdrop-filter: blur(8px);
3311
3288
  }
3312
- .c-chart__canvas svg {
3313
- width: 100%;
3314
- height: 100%;
3315
- shape-rendering: geometricPrecision;
3316
- text-rendering: optimizeLegibility;
3317
- image-rendering: -webkit-optimize-contrast;
3318
- image-rendering: crisp-edges;
3289
+ .c-chart__settings-menu-title {
3290
+ font-size: 0.875rem;
3291
+ font-weight: 600;
3292
+ color: var(--atomix-text-primary);
3293
+ margin-bottom: 0.5rem;
3294
+ padding-bottom: 0.5rem;
3295
+ border-bottom: 1px solid var(--atomix-border-color);
3319
3296
  }
3320
- .c-chart__canvas canvas {
3321
- width: 100%;
3322
- height: 100%;
3323
- image-rendering: -webkit-optimize-contrast;
3324
- image-rendering: crisp-edges;
3297
+ .c-chart__settings-menu-content {
3298
+ display: flex;
3299
+ flex-direction: column;
3300
+ gap: 0.25rem;
3325
3301
  }
3326
- .c-chart__crosshair {
3327
- pointer-events: none;
3302
+ .c-chart__settings-menu-item {
3303
+ display: flex;
3304
+ align-items: center;
3305
+ justify-content: space-between;
3306
+ padding: 0.375rem 0;
3307
+ gap: 0.75rem;
3328
3308
  }
3329
- .c-chart__crosshair line, .c-chart__crosshair-line {
3330
- stroke: var(--atomix-primary-border-subtle);
3331
- stroke-width: 1;
3332
- stroke-dasharray: 4, 4;
3309
+ .c-chart__settings-menu-item--info {
3333
3310
  opacity: 0.7;
3311
+ font-size: 0.75rem;
3334
3312
  }
3335
- .c-chart__crosshair line--vertical, .c-chart__crosshair line--horizontal, .c-chart__crosshair-line--vertical, .c-chart__crosshair-line--horizontal {
3336
- opacity: 0.7;
3313
+ .c-chart__settings-menu-toggle {
3314
+ display: flex;
3315
+ align-items: center;
3316
+ gap: 0.5rem;
3317
+ cursor: pointer;
3318
+ width: 100%;
3319
+ -webkit-user-select: none;
3320
+ -moz-user-select: none;
3321
+ user-select: none;
3337
3322
  }
3338
- .c-chart__zoom-indicator {
3339
- position: absolute;
3340
- top: 10px;
3341
- right: 10px;
3342
- background: rgba(0, 0, 0, 0.8);
3343
- color: white;
3344
- padding: 4px 8px;
3345
- border-radius: 0.25rem;
3323
+ .c-chart__settings-menu-toggle input[type=checkbox] {
3324
+ width: 1rem;
3325
+ height: 1rem;
3326
+ cursor: pointer;
3327
+ accent-color: var(--atomix-primary);
3328
+ flex-shrink: 0;
3329
+ }
3330
+ .c-chart__settings-menu-label {
3346
3331
  font-size: 0.75rem;
3347
3332
  font-weight: 500;
3348
- pointer-events: none;
3349
- z-index: 10;
3350
- }
3351
- .c-chart__navigator {
3352
- opacity: 0.8;
3353
- }
3354
- .c-chart__navigator rect {
3355
- fill: rgba(0, 0, 0, 0.05);
3356
- stroke: var(--atomix-gray-3);
3357
- stroke-width: 1;
3333
+ color: var(--atomix-text-primary);
3334
+ flex: 1 1;
3358
3335
  }
3359
- .c-chart__navigator path {
3360
- stroke-width: 1;
3361
- fill: none;
3362
- opacity: 0.6;
3336
+ .c-chart__settings-menu-value {
3337
+ font-size: 0.75rem;
3338
+ font-weight: 600;
3339
+ color: var(--atomix-secondary-text-emphasis);
3340
+ text-transform: capitalize;
3363
3341
  }
3364
- .c-chart__real-time-indicator {
3365
- position: absolute;
3366
- top: 10px;
3367
- left: 10px;
3342
+ .c-chart__toolbar-group {
3368
3343
  display: flex;
3369
3344
  align-items: center;
3370
- gap: 6px;
3371
- background: var(--atomix-success-bg-subtle);
3372
- color: var(--atomix-success-text-emphasis);
3373
- padding: 4px 8px;
3374
- border-radius: 0.25rem;
3345
+ gap: 0.5rem;
3346
+ position: relative;
3347
+ }
3348
+ .c-chart__toolbar-group:hover .c-chart__export-dropdown,
3349
+ .c-chart__toolbar-group:hover .c-chart__settings-menu {
3350
+ opacity: 1;
3351
+ visibility: visible;
3352
+ transform: translateY(0);
3353
+ }
3354
+ .c-chart__toolbar-separator {
3355
+ width: 1px;
3356
+ height: 1.5rem;
3357
+ background: var(--atomix-border-color);
3358
+ margin: 0 0.5rem;
3359
+ }
3360
+ .c-chart__toolbar-label {
3375
3361
  font-size: 0.75rem;
3376
3362
  font-weight: 500;
3377
- border: 1px solid var(--atomix-success-border-subtle);
3378
- }
3379
- .c-chart__real-time-indicator::before {
3380
- content: "";
3381
- width: 6px;
3382
- height: 6px;
3383
- background: var(--atomix-success-6);
3384
- border-radius: 50%;
3385
- animation: chart-pulse-dot 2s ease-in-out infinite;
3363
+ color: var(--atomix-secondary-text-emphasis);
3364
+ text-transform: uppercase;
3365
+ letter-spacing: 0.5px;
3366
+ margin-right: 0.5rem;
3386
3367
  }
3387
- .c-chart__legend {
3388
- display: flex;
3389
- flex-wrap: wrap;
3390
- gap: 0.75rem;
3368
+ .c-chart__content {
3369
+ flex: 1 1;
3370
+ position: relative;
3391
3371
  padding: var(--atomix-chart-padding);
3392
- border-top: var(--atomix-chart-border-width) solid var(--atomix-brand-border-subtle);
3393
- z-index: 2;
3394
- }
3395
- .c-chart__legend-item {
3396
3372
  display: flex;
3397
3373
  align-items: center;
3398
- gap: 0.5rem;
3399
- cursor: pointer;
3400
- padding: 0.5rem 0.75rem;
3401
- border-radius: 0.25rem;
3402
- border: var(--atomix-chart-border-width) solid transparent;
3403
- background-color: transparent;
3404
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3405
- -webkit-user-select: none;
3406
- -moz-user-select: none;
3407
- user-select: none;
3408
- position: relative;
3374
+ justify-content: center;
3375
+ min-height: 8rem;
3376
+ z-index: 3;
3377
+ contain: layout;
3409
3378
  overflow: hidden;
3410
3379
  }
3411
- .c-chart__legend-item::before {
3380
+ .c-chart__content::before {
3412
3381
  content: "";
3413
3382
  position: absolute;
3414
- inset: 0;
3415
- background: var(--atomix-secondary-bg-subtle);
3416
- opacity: 0;
3417
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3418
- }
3419
- .c-chart__legend-item:hover {
3420
- background-color: var(--atomix-secondary-bg-subtle);
3421
- border-color: var(--atomix-primary-border-subtle);
3422
- transform: translateY(-1px);
3423
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.075);
3424
- }
3425
- .c-chart__legend-item:hover::before {
3426
- opacity: 1;
3427
- }
3428
- .c-chart__legend-item:focus-visible:focus-visible {
3429
- outline: 2px solid var(--atomix-focus-border-color);
3430
- outline-offset: 2px;
3431
- box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
3432
- }
3433
- .c-chart__legend-item:active {
3434
- transform: translateY(0);
3435
- }
3436
- .c-chart__legend-item[data-visible=false] {
3383
+ top: 0;
3384
+ left: 0;
3385
+ right: 0;
3386
+ bottom: 0;
3387
+ background-image: radial-gradient(circle at 1px 1px, rgba(var(--atomix-primary-rgb), 0.08) 1px, transparent 0);
3388
+ background-size: 16px 16px;
3437
3389
  opacity: 0.4;
3438
- filter: grayscale(60%);
3439
- }
3440
- .c-chart__legend-item[data-visible=false] .c-chart__legend-label {
3441
- text-decoration: line-through;
3390
+ pointer-events: none;
3391
+ z-index: 0;
3442
3392
  }
3443
- .c-chart__legend-item[data-visible=false] .c-chart__legend-color {
3444
- opacity: 0.3;
3445
- filter: grayscale(100%);
3393
+ .c-chart__content::after {
3394
+ content: "";
3395
+ position: absolute;
3396
+ inset: 0;
3397
+ background: linear-gradient(180deg, rgba(var(--atomix-primary-rgb), 0.03) 0%, transparent 30%, transparent 70%, rgba(var(--atomix-secondary-rgb), 0.02) 100%);
3398
+ pointer-events: none;
3399
+ z-index: 1;
3446
3400
  }
3447
- .c-chart__legend-color {
3448
- width: 0.75rem;
3449
- height: 0.75rem;
3450
- border-radius: 0.25rem;
3451
- border: var(--atomix-chart-border-width) solid var(--atomix-primary-border-subtle);
3452
- flex-shrink: 0;
3453
- box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
3454
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3401
+ .c-chart__canvas {
3402
+ width: 100%;
3403
+ height: 100%;
3455
3404
  position: relative;
3405
+ overflow: hidden;
3406
+ border-radius: 0.25rem;
3407
+ z-index: 2;
3408
+ background: transparent;
3409
+ min-height: 200px;
3410
+ contain: layout style paint;
3456
3411
  }
3457
- .c-chart__legend-label {
3458
- color: var(--atomix-primary-text-emphasis);
3459
- font-weight: 500;
3460
- letter-spacing: -0.01em;
3461
- transition: color 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3462
- position: relative;
3463
- z-index: 1;
3412
+ .c-chart__canvas svg {
3413
+ display: block;
3414
+ shape-rendering: geometricPrecision;
3415
+ text-rendering: optimizeLegibility;
3416
+ image-rendering: -webkit-optimize-contrast;
3417
+ image-rendering: crisp-edges;
3418
+ will-change: contents;
3419
+ -webkit-backface-visibility: hidden;
3420
+ backface-visibility: hidden;
3421
+ transform: translateZ(0);
3422
+ opacity: 0;
3423
+ animation: chart-fade-in 0.3s ease-out forwards;
3424
+ }
3425
+ @keyframes chart-fade-in {
3426
+ from {
3427
+ opacity: 0;
3428
+ }
3429
+ to {
3430
+ opacity: 1;
3431
+ }
3432
+ }
3433
+ .c-chart__canvas canvas {
3434
+ width: 100%;
3435
+ height: 100%;
3436
+ display: block;
3437
+ image-rendering: -webkit-optimize-contrast;
3438
+ image-rendering: crisp-edges;
3464
3439
  }
3465
3440
  .c-chart__tooltip {
3466
3441
  position: fixed;
3467
- top: 0;
3468
- left: 0;
3469
3442
  -webkit-backdrop-filter: blur(1rem);
3470
3443
  backdrop-filter: blur(1rem);
3471
3444
  border-radius: 0.625rem;
@@ -3497,8 +3470,8 @@ a, a:hover {
3497
3470
  gap: 0.5rem;
3498
3471
  }
3499
3472
  .c-chart__tooltip-color-indicator {
3500
- width: 12px;
3501
- height: 12px;
3473
+ width: 0.75rem;
3474
+ height: 0.75rem;
3502
3475
  border-radius: 50%;
3503
3476
  flex-shrink: 0;
3504
3477
  }
@@ -3532,64 +3505,10 @@ a, a:hover {
3532
3505
  color: var(--atomix-primary-text-emphasis);
3533
3506
  font-weight: 500;
3534
3507
  }
3535
- .c-chart__axis {
3536
- position: relative;
3537
- z-index: 55;
3538
- }
3539
- .c-chart__axis--x {
3540
- text-anchor: middle;
3541
- dominant-baseline: hanging;
3542
- }
3543
- .c-chart__axis--y {
3544
- text-anchor: end;
3545
- dominant-baseline: middle;
3546
- }
3547
- .c-chart__axis-line {
3548
- stroke: var(--atomix-primary-border-subtle);
3549
- stroke-width: 1;
3550
- opacity: 0.6;
3551
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3552
- }
3553
- .c-chart__axis-line--x, .c-chart__axis-line--y {
3554
- stroke-width: 2;
3555
- }
3556
- .c-chart__axis-line:hover {
3557
- opacity: 0.8;
3558
- }
3559
- .c-chart__tick-line {
3560
- stroke: var(--atomix-primary-border-subtle);
3561
- stroke-width: 1;
3562
- }
3563
- .c-chart__tick-label {
3564
- font-size: 0.75rem;
3565
- fill: var(--atomix-secondary-text-emphasis);
3566
- }
3567
- .c-chart__axis-label {
3568
- font-size: 0.75rem;
3569
- font-weight: 500;
3570
- fill: var(--atomix-tertiary-text-emphasis);
3571
- text-anchor: middle;
3572
- }
3573
- .c-chart__plot-area {
3574
- fill: rgba(248, 250, 252, 0.5);
3575
- stroke: var(--atomix-primary-border-subtle);
3576
- stroke-width: 1;
3577
- }
3578
- .c-chart__value-label {
3579
- font-size: 0.75rem;
3580
- fill: var(--atomix-primary-text-emphasis);
3581
- pointer-events: none;
3582
- }
3583
- .c-chart__data-label {
3584
- font-size: 0.75rem;
3585
- fill: var(--atomix-secondary-text-emphasis);
3586
- pointer-events: none;
3587
- }
3588
3508
  .c-chart__grid {
3589
3509
  stroke: var(--atomix-primary-border-subtle);
3590
3510
  stroke-width: 0.5;
3591
3511
  stroke-dasharray: 2, 4;
3592
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3593
3512
  }
3594
3513
  .c-chart__grid--major {
3595
3514
  stroke-width: 1;
@@ -3604,40 +3523,54 @@ a, a:hover {
3604
3523
  stroke-dasharray: none;
3605
3524
  opacity: 0.6;
3606
3525
  }
3607
- .c-chart__grid:hover {
3526
+ .c-chart__axis-line {
3527
+ stroke: var(--atomix-border-color);
3528
+ stroke-width: 1;
3608
3529
  opacity: 0.6;
3609
3530
  }
3531
+ .c-chart__axis-label {
3532
+ font-size: 0.75rem;
3533
+ font-weight: 500;
3534
+ fill: var(--atomix-tertiary-text-emphasis);
3535
+ }
3536
+ .c-chart__legend-item-color {
3537
+ width: 0.75rem;
3538
+ height: 0.75rem;
3539
+ flex-shrink: 0;
3540
+ }
3541
+ .c-chart__legend-item-text {
3542
+ font-size: 0.75rem;
3543
+ fill: var(--atomix-text-primary);
3544
+ }
3545
+ .c-chart__data-line {
3546
+ stroke-width: 2.5;
3547
+ fill: none;
3548
+ }
3549
+ .c-chart__data-line--hovered {
3550
+ stroke-width: 3.5;
3551
+ }
3610
3552
  .c-chart__data-point {
3611
3553
  cursor: pointer;
3612
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
3613
- transform-origin: center center;
3554
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3614
3555
  }
3615
3556
  .c-chart__data-point:hover {
3616
3557
  opacity: 0.8;
3617
- filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
3618
3558
  }
3619
3559
  .c-chart__data-point:focus-visible {
3620
- outline: 2px solid var(--atomix-primary-border-subtle);
3560
+ outline: 2px solid var(--atomix-focus-border-color);
3621
3561
  outline-offset: 2px;
3562
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
3622
3563
  }
3623
- .c-chart__data-point:active {
3624
- transform: scale(1.05);
3625
- }
3626
- .c-chart__data-point[data-highlighted=true] {
3627
- transform: scale(1.2);
3628
- filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3));
3629
- z-index: 10;
3630
- animation: chart-glow 2s ease-in-out infinite;
3564
+ .c-chart__data-point--hovered {
3565
+ opacity: 0.9;
3566
+ transform: scale(1.1);
3631
3567
  }
3632
- .c-chart__data-point[data-selected=true] {
3633
- stroke: var(--atomix-primary-border-subtle);
3568
+ .c-chart__data-point--selected {
3569
+ opacity: 1;
3634
3570
  stroke-width: 2;
3635
- filter: drop-shadow(0 0 0 2px var(--atomix-primary-border-subtle));
3636
- }
3637
- .c-chart__data-point[data-animated=true] {
3638
- animation: chart-scale-in 0.5s ease-out;
3571
+ filter: drop-shadow(0 0 4px currentColor);
3639
3572
  }
3640
- .c-chart__loading {
3573
+ .c-chart__empty {
3641
3574
  display: flex;
3642
3575
  flex-direction: column;
3643
3576
  align-items: center;
@@ -3645,970 +3578,707 @@ a, a:hover {
3645
3578
  gap: 1rem;
3646
3579
  color: var(--atomix-secondary-text-emphasis);
3647
3580
  font-size: 0.875rem;
3581
+ text-align: center;
3582
+ padding: 2rem;
3648
3583
  min-height: 8rem;
3584
+ opacity: 0.6;
3649
3585
  animation: chart-fade-in 0.6s ease-out;
3650
3586
  }
3651
- .c-chart__loading-spinner {
3652
- width: 2rem;
3653
- height: 2rem;
3654
- border: 3px solid var(--atomix-primary-border-subtle);
3655
- border-top: 3px solid var(--atomix-primary-text-emphasis);
3656
- border-radius: 50%;
3657
- animation: chart-spin 1.2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
3587
+ .c-chart__toolbar--sm {
3588
+ gap: 0.25rem;
3658
3589
  }
3659
- .c-chart__loading-text {
3660
- font-weight: 500;
3661
- opacity: 0.8;
3662
- animation: chart-pulse 2s ease-in-out infinite;
3663
- }
3664
- .c-chart__error {
3665
- display: flex;
3666
- flex-direction: column;
3667
- align-items: center;
3668
- justify-content: center;
3590
+ .c-chart__toolbar--lg {
3591
+ padding: 0.5rem;
3669
3592
  gap: 0.75rem;
3670
- color: var(--atomix-error-text-emphasis);
3671
- font-size: 0.875rem;
3672
- text-align: center;
3673
- padding: 2rem;
3674
- min-height: 8rem;
3675
- background-color: var(--atomix-error-bg-subtle);
3676
- border-radius: 0.25rem;
3677
- border: var(--atomix-chart-border-width) solid var(--atomix-error-border-subtle);
3678
- animation: chart-fade-in 0.6s ease-out;
3679
3593
  }
3680
- .c-chart__empty {
3681
- display: flex;
3682
- flex-direction: column;
3683
- align-items: center;
3684
- justify-content: center;
3685
- gap: 1rem;
3686
- color: var(--atomix-secondary-text-emphasis);
3687
- font-size: 0.875rem;
3688
- text-align: center;
3689
- padding: 2rem;
3690
- min-height: 8rem;
3691
- opacity: 0.6;
3692
- animation: chart-fade-in 0.6s ease-out;
3693
- }
3694
- .c-chart--line .c-chart__canvas .line-path,
3695
- .c-chart--line .c-chart__canvas .c-chart__line-path {
3696
- fill: none;
3697
- stroke-width: 2.5;
3698
- stroke-linecap: round;
3699
- stroke-linejoin: round;
3700
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3701
- filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));
3702
- stroke-dasharray: 1000;
3703
- stroke-dashoffset: 1000;
3704
- animation: chart-draw-line 2s ease-out forwards;
3705
- }
3706
- .c-chart--line .c-chart__canvas .line-path:hover,
3707
- .c-chart--line .c-chart__canvas .c-chart__line-path:hover {
3708
- stroke-width: 3.5;
3709
- filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
3710
- }
3711
- .c-chart--line .c-chart__canvas .trend-line {
3712
- stroke-dasharray: 5, 5;
3713
- opacity: 0.7;
3714
- animation: chart-dash-flow 2s linear infinite;
3715
- }
3716
- .c-chart--line .c-chart__canvas .moving-average {
3717
- stroke-dasharray: 4, 4;
3718
- opacity: 0.6;
3719
- stroke-width: 1;
3720
- fill: none;
3721
- }
3722
- .c-chart--line .c-chart__canvas .area-path,
3723
- .c-chart--line .c-chart__canvas .c-chart__area-path {
3724
- opacity: 0.15;
3725
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3726
- animation: chart-area-fade 1.5s ease-out;
3727
- }
3728
- .c-chart--line .c-chart__canvas .area-path:hover,
3729
- .c-chart--line .c-chart__canvas .c-chart__area-path:hover {
3730
- opacity: 0.25;
3731
- }
3732
- .c-chart--line .c-chart__canvas .chart-point-label {
3733
- font-size: 0.75rem;
3594
+ .c-chart__legend-item--active {
3595
+ opacity: 1;
3734
3596
  font-weight: 600;
3735
- text-anchor: middle;
3736
- dominant-baseline: middle;
3737
- pointer-events: none;
3738
- opacity: 0;
3739
- transition: opacity 0.2s ease;
3740
3597
  }
3741
- .c-chart--line .c-chart__canvas .chart-point-label.visible {
3742
- opacity: 1;
3598
+ .c-chart__legend-item--inactive {
3599
+ opacity: 0.5;
3743
3600
  }
3744
- .c-chart--line .c-chart__canvas .data-point {
3745
- r: 4;
3601
+ .c-chart__treemap-node {
3602
+ stroke: var(--atomix-border-color);
3603
+ stroke-width: 1;
3746
3604
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3747
3605
  cursor: pointer;
3606
+ shape-rendering: geometricPrecision;
3748
3607
  }
3749
- .c-chart--line .c-chart__canvas .data-point:hover {
3750
- r: 6;
3751
- filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
3608
+ .c-chart__treemap-node:hover {
3609
+ transform: scale(1.02);
3610
+ filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1));
3611
+ stroke-width: 1.5;
3752
3612
  }
3753
- .c-chart--line .c-chart__canvas .data-point[data-highlighted=true] {
3754
- r: 8;
3755
- stroke-width: 3;
3613
+ .c-chart__treemap-node--hovered {
3614
+ transform: scale(1.02);
3615
+ filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1));
3616
+ stroke-width: 1.5;
3756
3617
  }
3757
- .c-chart--line .c-chart__canvas .data-point:focus-visible {
3618
+ .c-chart__treemap-node--selected {
3619
+ stroke: var(--atomix-primary-border-subtle);
3620
+ stroke-width: 2;
3621
+ filter: drop-shadow(0 16px 48px rgba(0, 0, 0, 0.175));
3622
+ }
3623
+ .c-chart__treemap-node:focus-visible {
3758
3624
  outline: 2px solid var(--atomix-focus-border-color);
3759
3625
  outline-offset: 2px;
3626
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
3760
3627
  }
3761
- .c-chart--area .c-chart__canvas .area-path {
3762
- opacity: 0.3;
3763
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3764
- animation: chart-area-fade 1.5s ease-out;
3765
- }
3766
- .c-chart--area .c-chart__canvas .area-path:hover {
3767
- opacity: 0.45;
3768
- }
3769
- .c-chart--area .c-chart__canvas .line-path {
3770
- stroke-width: 2;
3771
- opacity: 0.9;
3772
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3773
- animation: chart-draw-line 2s ease-out;
3774
- }
3775
- .c-chart--area .c-chart__canvas .line-path:hover {
3776
- stroke-width: 3;
3777
- opacity: 1;
3628
+ .c-chart__treemap-label {
3629
+ font-size: 0.875rem;
3630
+ font-weight: 500;
3631
+ fill: var(--atomix-text-primary);
3632
+ text-anchor: middle;
3633
+ dominant-baseline: middle;
3634
+ pointer-events: none;
3635
+ -webkit-user-select: none;
3636
+ -moz-user-select: none;
3637
+ user-select: none;
3638
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
3778
3639
  }
3779
- .c-chart--bar .c-chart__canvas .bar,
3780
- .c-chart--bar .c-chart__canvas .c-chart__bar, .c-chart--horizontal-bar .c-chart__canvas .bar,
3781
- .c-chart--horizontal-bar .c-chart__canvas .c-chart__bar {
3640
+ .c-chart__funnel-segment {
3641
+ stroke: var(--atomix-border-color);
3642
+ stroke-width: 1;
3782
3643
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3783
3644
  cursor: pointer;
3784
- filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));
3785
- animation: chart-bar-grow 0.8s ease-out;
3786
- opacity: 1;
3645
+ shape-rendering: geometricPrecision;
3787
3646
  }
3788
- .c-chart--bar .c-chart__canvas .bar:hover, .c-chart--bar .c-chart__canvas .bar--hovered,
3789
- .c-chart--bar .c-chart__canvas .c-chart__bar:hover,
3790
- .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,
3791
- .c-chart--horizontal-bar .c-chart__canvas .c-chart__bar:hover,
3792
- .c-chart--horizontal-bar .c-chart__canvas .c-chart__bar--hovered {
3793
- opacity: 0.85;
3794
- filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2));
3647
+ .c-chart__funnel-segment:hover {
3648
+ opacity: 0.9;
3649
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
3650
+ stroke-width: 1.5;
3795
3651
  }
3796
- .c-chart--bar .c-chart__canvas .bar:focus-visible,
3797
- .c-chart--bar .c-chart__canvas .c-chart__bar:focus-visible, .c-chart--horizontal-bar .c-chart__canvas .bar:focus-visible,
3798
- .c-chart--horizontal-bar .c-chart__canvas .c-chart__bar:focus-visible {
3799
- outline: 2px solid var(--atomix-primary-border-subtle);
3652
+ .c-chart__funnel-segment:focus-visible {
3653
+ outline: 2px solid var(--atomix-focus-border-color);
3800
3654
  outline-offset: 2px;
3655
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
3801
3656
  }
3802
- .c-chart--bar .c-chart__canvas .bar[data-animated=true],
3803
- .c-chart--bar .c-chart__canvas .c-chart__bar[data-animated=true], .c-chart--horizontal-bar .c-chart__canvas .bar[data-animated=true],
3804
- .c-chart--horizontal-bar .c-chart__canvas .c-chart__bar[data-animated=true] {
3805
- animation: chart-bar-grow 0.8s ease-out;
3806
- }
3807
- .c-chart--bar .c-chart__canvas .bar-group .bar, .c-chart--horizontal-bar .c-chart__canvas .bar-group .bar {
3808
- animation-delay: calc(var(--bar-index) * 0.1s);
3809
- }
3810
- .c-chart--bar .c-chart__canvas .bar-value-label,
3811
- .c-chart--bar .c-chart__canvas .c-chart__bar-value-label, .c-chart--horizontal-bar .c-chart__canvas .bar-value-label,
3812
- .c-chart--horizontal-bar .c-chart__canvas .c-chart__bar-value-label {
3813
- font-size: 0.75rem;
3657
+ .c-chart__funnel-label {
3658
+ font-size: 0.875rem;
3814
3659
  font-weight: 500;
3815
- fill: var(--atomix-primary-text-emphasis);
3660
+ fill: var(--atomix-text-primary);
3816
3661
  text-anchor: middle;
3817
- opacity: 1;
3818
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3819
- font-feature-settings: "tnum";
3820
- font-variant-numeric: tabular-nums;
3662
+ dominant-baseline: middle;
3821
3663
  pointer-events: none;
3664
+ -webkit-user-select: none;
3665
+ -moz-user-select: none;
3666
+ user-select: none;
3667
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
3822
3668
  }
3823
- .c-chart--bar .c-chart__canvas .bar-value-label.visible,
3824
- .c-chart--bar .c-chart__canvas .c-chart__bar-value-label.visible, .c-chart--horizontal-bar .c-chart__canvas .bar-value-label.visible,
3825
- .c-chart--horizontal-bar .c-chart__canvas .c-chart__bar-value-label.visible {
3826
- opacity: 1;
3827
- }
3828
- .c-chart--bar .c-chart__canvas .bar-gradient stop, .c-chart--horizontal-bar .c-chart__canvas .bar-gradient stop {
3829
- transition: stop-opacity 0.3s ease;
3830
- }
3831
- .c-chart--bar .c-chart__canvas .bar {
3832
- transform-origin: bottom center;
3833
- animation: chart-bar-grow 0.8s ease-out;
3834
- }
3835
- .c-chart--bar .c-chart__canvas .bar:hover {
3836
- transform: scaleY(1.05);
3837
- }
3838
- .c-chart--horizontal-bar .c-chart__canvas .bar {
3839
- transform-origin: left center;
3840
- animation: chart-bar-grow-horizontal 0.8s ease-out;
3841
- }
3842
- .c-chart--horizontal-bar .c-chart__canvas .bar:hover {
3843
- transform: scaleX(1.05);
3844
- }
3845
- .c-chart--pie .c-chart__canvas .pie-slice,
3846
- .c-chart--pie .c-chart__canvas .donut-slice,
3847
- .c-chart--pie .c-chart__canvas .c-chart__pie-slice,
3848
- .c-chart--pie .c-chart__canvas .c-chart__donut-slice, .c-chart--donut .c-chart__canvas .pie-slice,
3849
- .c-chart--donut .c-chart__canvas .donut-slice,
3850
- .c-chart--donut .c-chart__canvas .c-chart__pie-slice,
3851
- .c-chart--donut .c-chart__canvas .c-chart__donut-slice, .c-chart--doughnut .c-chart__canvas .pie-slice,
3852
- .c-chart--doughnut .c-chart__canvas .donut-slice,
3853
- .c-chart--doughnut .c-chart__canvas .c-chart__pie-slice,
3854
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-slice {
3855
- transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
3856
- stroke: var(--atomix-primary-bg-subtle);
3857
- stroke-width: 2;
3858
- cursor: pointer;
3859
- transform-origin: center;
3860
- filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
3861
- opacity: 1;
3862
- animation: chart-pie-draw 1.5s ease-out;
3863
- }
3864
- .c-chart--pie .c-chart__canvas .pie-slice:hover, .c-chart--pie .c-chart__canvas .pie-slice--hovered,
3865
- .c-chart--pie .c-chart__canvas .donut-slice:hover,
3866
- .c-chart--pie .c-chart__canvas .donut-slice--hovered,
3867
- .c-chart--pie .c-chart__canvas .c-chart__pie-slice:hover,
3868
- .c-chart--pie .c-chart__canvas .c-chart__pie-slice--hovered,
3869
- .c-chart--pie .c-chart__canvas .c-chart__donut-slice:hover,
3870
- .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,
3871
- .c-chart--donut .c-chart__canvas .donut-slice:hover,
3872
- .c-chart--donut .c-chart__canvas .donut-slice--hovered,
3873
- .c-chart--donut .c-chart__canvas .c-chart__pie-slice:hover,
3874
- .c-chart--donut .c-chart__canvas .c-chart__pie-slice--hovered,
3875
- .c-chart--donut .c-chart__canvas .c-chart__donut-slice:hover,
3876
- .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,
3877
- .c-chart--doughnut .c-chart__canvas .donut-slice:hover,
3878
- .c-chart--doughnut .c-chart__canvas .donut-slice--hovered,
3879
- .c-chart--doughnut .c-chart__canvas .c-chart__pie-slice:hover,
3880
- .c-chart--doughnut .c-chart__canvas .c-chart__pie-slice--hovered,
3881
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-slice:hover,
3882
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-slice--hovered {
3883
- opacity: 0.8;
3884
- transform: scale(1.05);
3885
- stroke-width: 3;
3886
- filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.2));
3887
- }
3888
- .c-chart--pie .c-chart__canvas .pie-slice--selected,
3889
- .c-chart--pie .c-chart__canvas .donut-slice--selected,
3890
- .c-chart--pie .c-chart__canvas .c-chart__pie-slice--selected,
3891
- .c-chart--pie .c-chart__canvas .c-chart__donut-slice--selected, .c-chart--donut .c-chart__canvas .pie-slice--selected,
3892
- .c-chart--donut .c-chart__canvas .donut-slice--selected,
3893
- .c-chart--donut .c-chart__canvas .c-chart__pie-slice--selected,
3894
- .c-chart--donut .c-chart__canvas .c-chart__donut-slice--selected, .c-chart--doughnut .c-chart__canvas .pie-slice--selected,
3895
- .c-chart--doughnut .c-chart__canvas .donut-slice--selected,
3896
- .c-chart--doughnut .c-chart__canvas .c-chart__pie-slice--selected,
3897
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-slice--selected {
3898
- stroke: var(--atomix-primary-border-subtle);
3899
- stroke-width: 3;
3900
- }
3901
- .c-chart--pie .c-chart__canvas .pie-slice:focus-visible,
3902
- .c-chart--pie .c-chart__canvas .donut-slice:focus-visible,
3903
- .c-chart--pie .c-chart__canvas .c-chart__pie-slice:focus-visible,
3904
- .c-chart--pie .c-chart__canvas .c-chart__donut-slice:focus-visible, .c-chart--donut .c-chart__canvas .pie-slice:focus-visible,
3905
- .c-chart--donut .c-chart__canvas .donut-slice:focus-visible,
3906
- .c-chart--donut .c-chart__canvas .c-chart__pie-slice:focus-visible,
3907
- .c-chart--donut .c-chart__canvas .c-chart__donut-slice:focus-visible, .c-chart--doughnut .c-chart__canvas .pie-slice:focus-visible,
3908
- .c-chart--doughnut .c-chart__canvas .donut-slice:focus-visible,
3909
- .c-chart--doughnut .c-chart__canvas .c-chart__pie-slice:focus-visible,
3910
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-slice:focus-visible {
3911
- outline: 2px solid var(--atomix-primary-border-subtle);
3912
- outline-offset: 4px;
3913
- }
3914
- .c-chart--pie .c-chart__canvas .pie-label,
3915
- .c-chart--pie .c-chart__canvas .c-chart__pie-label,
3916
- .c-chart--pie .c-chart__canvas .c-chart__donut-label, .c-chart--donut .c-chart__canvas .pie-label,
3917
- .c-chart--donut .c-chart__canvas .c-chart__pie-label,
3918
- .c-chart--donut .c-chart__canvas .c-chart__donut-label, .c-chart--doughnut .c-chart__canvas .pie-label,
3919
- .c-chart--doughnut .c-chart__canvas .c-chart__pie-label,
3920
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-label {
3669
+ .c-chart__funnel-conversion {
3921
3670
  font-size: 0.75rem;
3922
3671
  font-weight: 600;
3923
- fill: var(--atomix-primary-text-emphasis);
3924
- text-anchor: middle;
3925
- pointer-events: none;
3926
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3927
- font-feature-settings: "tnum";
3928
- font-variant-numeric: tabular-nums;
3929
- }
3930
- .c-chart--donut .c-chart__canvas .donut-slice, .c-chart--doughnut .c-chart__canvas .donut-slice {
3931
- animation: chart-donut-draw 1.5s ease-out;
3932
- }
3933
- .c-chart--donut .c-chart__canvas .donut-center,
3934
- .c-chart--donut .c-chart__canvas .c-chart__donut-center, .c-chart--doughnut .c-chart__canvas .donut-center,
3935
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-center {
3936
- transition: fill 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3937
- }
3938
- .c-chart--donut .c-chart__canvas .c-chart__donut-center-bg, .c-chart--doughnut .c-chart__canvas .c-chart__donut-center-bg {
3939
- fill: var(--atomix-primary-bg-subtle);
3940
- }
3941
- .c-chart--donut .c-chart__canvas .donut-center-label,
3942
- .c-chart--donut .c-chart__canvas .c-chart__donut-center-label, .c-chart--doughnut .c-chart__canvas .donut-center-label,
3943
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-center-label {
3944
- font-size: 0.875rem;
3945
- font-weight: 500;
3946
3672
  fill: var(--atomix-secondary-text-emphasis);
3947
3673
  text-anchor: middle;
3948
- dominant-baseline: central;
3949
- font-feature-settings: "tnum";
3950
- font-variant-numeric: tabular-nums;
3951
- }
3952
- .c-chart--donut .c-chart__canvas .c-chart__donut-center-value, .c-chart--doughnut .c-chart__canvas .c-chart__donut-center-value {
3953
- font-size: 1.5rem;
3954
- font-weight: 700;
3955
- fill: var(--atomix-primary-text-emphasis);
3956
- text-anchor: middle;
3957
- dominant-baseline: central;
3958
- font-feature-settings: "tnum";
3959
- font-variant-numeric: tabular-nums;
3674
+ dominant-baseline: middle;
3675
+ pointer-events: none;
3676
+ -webkit-user-select: none;
3677
+ -moz-user-select: none;
3678
+ user-select: none;
3679
+ opacity: 0.8;
3960
3680
  }
3961
- .c-chart--scatter .c-chart__canvas .scatter-point,
3962
- .c-chart--scatter .c-chart__canvas .c-chart__scatter-point {
3963
- stroke: var(--atomix-primary-border-subtle);
3681
+ .c-chart__heatmap-cell {
3682
+ stroke: var(--atomix-border-color);
3964
3683
  stroke-width: 1;
3684
+ rx: 0.25rem;
3685
+ ry: 0.25rem;
3965
3686
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3966
3687
  cursor: pointer;
3967
- filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));
3968
- animation: chart-fade-in 0.6s ease-out;
3688
+ shape-rendering: geometricPrecision;
3969
3689
  }
3970
- .c-chart--scatter .c-chart__canvas .scatter-point:hover,
3971
- .c-chart--scatter .c-chart__canvas .c-chart__scatter-point:hover {
3972
- filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.3));
3690
+ .c-chart__heatmap-cell:hover {
3691
+ transform: scale(1.05);
3692
+ transform-origin: center;
3693
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
3694
+ stroke-width: 2;
3695
+ z-index: 10;
3696
+ }
3697
+ .c-chart__heatmap-cell--hovered {
3698
+ transform: scale(1.05);
3699
+ transform-origin: center;
3700
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
3701
+ stroke-width: 2;
3702
+ z-index: 10;
3973
3703
  }
3974
- .c-chart--scatter .c-chart__canvas .scatter-point:focus-visible,
3975
- .c-chart--scatter .c-chart__canvas .c-chart__scatter-point:focus-visible {
3976
- outline: 2px solid var(--atomix-primary-border-subtle);
3704
+ .c-chart__heatmap-cell:focus-visible {
3705
+ outline: 2px solid var(--atomix-focus-border-color);
3977
3706
  outline-offset: 2px;
3707
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
3978
3708
  }
3979
- .c-chart--scatter .c-chart__canvas .c-chart__scatter-label {
3709
+ .c-chart__heatmap-label {
3980
3710
  font-size: 0.75rem;
3981
- fill: var(--atomix-primary-text-emphasis);
3711
+ font-weight: 400;
3712
+ fill: var(--atomix-text-primary);
3713
+ text-anchor: middle;
3714
+ dominant-baseline: middle;
3982
3715
  pointer-events: none;
3716
+ -webkit-user-select: none;
3717
+ -moz-user-select: none;
3718
+ user-select: none;
3983
3719
  }
3984
- .c-chart--bubble .c-chart__canvas .c-chart__bubble {
3985
- stroke: var(--atomix-primary-bg-subtle);
3986
- stroke-width: 2;
3987
- cursor: pointer;
3988
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3989
- }
3990
- .c-chart--bubble .c-chart__canvas .c-chart__bubble--animated {
3991
- transition: all 1s ease-out;
3992
- }
3993
- .c-chart--bubble .c-chart__canvas .c-chart__bubble:hover {
3994
- filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3));
3995
- }
3996
- .c-chart--bubble .c-chart__canvas .c-chart__bubble-label {
3720
+ .c-chart__heatmap-axis-label {
3997
3721
  font-size: 0.75rem;
3998
3722
  font-weight: 500;
3999
- fill: var(--atomix-tertiary-text-emphasis);
3723
+ fill: var(--atomix-secondary-text-emphasis);
3724
+ text-anchor: middle;
3725
+ dominant-baseline: middle;
4000
3726
  pointer-events: none;
3727
+ -webkit-user-select: none;
3728
+ -moz-user-select: none;
3729
+ user-select: none;
4001
3730
  }
4002
- .c-chart--bubble .c-chart__canvas .c-chart__bubble-label--center {
4003
- fill: var(--atomix-invert-text-emphasis);
4004
- font-weight: 700;
4005
- text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
4006
- }
4007
- .c-chart--radar .c-chart__canvas .c-chart__radar-grid {
4008
- stroke: var(--atomix-primary-border-subtle);
4009
- stroke-width: 1;
4010
- opacity: 0.3;
4011
- }
4012
- .c-chart--radar .c-chart__canvas .c-chart__radar-axis {
4013
- stroke: var(--atomix-primary-border-subtle);
4014
- stroke-width: 1;
4015
- opacity: 0.5;
3731
+ .c-chart__heatmap-legend-title {
3732
+ font-size: 0.875rem;
3733
+ font-weight: 600;
3734
+ fill: var(--atomix-text-primary);
3735
+ text-anchor: start;
3736
+ dominant-baseline: baseline;
3737
+ pointer-events: none;
3738
+ -webkit-user-select: none;
3739
+ -moz-user-select: none;
3740
+ user-select: none;
4016
3741
  }
4017
- .c-chart--radar .c-chart__canvas .c-chart__radar-label {
3742
+ .c-chart__heatmap-legend-label {
4018
3743
  font-size: 0.75rem;
3744
+ font-weight: 400;
4019
3745
  fill: var(--atomix-secondary-text-emphasis);
3746
+ text-anchor: start;
3747
+ dominant-baseline: middle;
3748
+ pointer-events: none;
3749
+ -webkit-user-select: none;
3750
+ -moz-user-select: none;
3751
+ user-select: none;
4020
3752
  }
4021
- .c-chart--radar .c-chart__canvas .c-chart__radar-fill {
4022
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4023
- }
4024
- .c-chart--radar .c-chart__canvas .c-chart__radar-fill:hover {
4025
- opacity: 0.5 !important;
3753
+ .c-chart__candlestick-candle {
3754
+ stroke: var(--atomix-border-color);
3755
+ stroke-width: 1;
3756
+ rx: 0.25rem;
3757
+ ry: 0.25rem;
3758
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3759
+ cursor: pointer;
3760
+ shape-rendering: geometricPrecision;
4026
3761
  }
4027
- .c-chart--radar .c-chart__canvas .c-chart__radar-line {
4028
- fill: none;
4029
- transition: stroke-width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3762
+ .c-chart__candlestick-candle:hover {
3763
+ opacity: 0.9;
3764
+ stroke-width: 1.5;
3765
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4030
3766
  }
4031
- .c-chart--radar .c-chart__canvas .c-chart__radar-line:hover {
4032
- stroke-width: 3 !important;
3767
+ .c-chart__candlestick-candle:focus-visible {
3768
+ outline: 2px solid var(--atomix-focus-border-color);
3769
+ outline-offset: 2px;
3770
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4033
3771
  }
4034
- .c-chart--radar .c-chart__canvas .c-chart__radar-point {
4035
- stroke: var(--atomix-primary-bg-subtle);
4036
- stroke-width: 2;
4037
- cursor: pointer;
3772
+ .c-chart__candlestick-wick {
3773
+ stroke: var(--atomix-tertiary-text-emphasis);
3774
+ stroke-width: 1;
3775
+ opacity: 0.8;
4038
3776
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3777
+ shape-rendering: geometricPrecision;
4039
3778
  }
4040
- .c-chart--radar .c-chart__canvas .c-chart__radar-point:hover {
4041
- transform: scale(1.3);
4042
- filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
3779
+ .c-chart__candlestick-wick:hover {
3780
+ opacity: 1;
3781
+ stroke-width: 1.2;
4043
3782
  }
4044
- .c-chart--candlestick .c-chart__canvas .candlestick,
4045
- .c-chart--candlestick .c-chart__canvas .c-chart__candlestick {
4046
- stroke-width: 1;
4047
- cursor: pointer;
3783
+ .c-chart__candlestick-volume {
4048
3784
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4049
- animation: chart-fade-in 0.6s ease-out;
3785
+ cursor: pointer;
3786
+ shape-rendering: geometricPrecision;
4050
3787
  }
4051
- .c-chart--candlestick .c-chart__canvas .candlestick--bullish,
4052
- .c-chart--candlestick .c-chart__canvas .c-chart__candlestick--bullish {
4053
- opacity: 0.8;
3788
+ .c-chart__candlestick-volume:hover {
3789
+ opacity: 0.6;
4054
3790
  }
4055
- .c-chart--candlestick .c-chart__canvas .candlestick--bearish,
4056
- .c-chart--candlestick .c-chart__canvas .c-chart__candlestick--bearish {
4057
- opacity: 1;
3791
+ .c-chart__bar {
3792
+ rx: 0.25rem;
3793
+ ry: 0.25rem;
3794
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3795
+ cursor: pointer;
3796
+ shape-rendering: geometricPrecision;
4058
3797
  }
4059
- .c-chart--candlestick .c-chart__canvas .candlestick:hover,
4060
- .c-chart--candlestick .c-chart__canvas .c-chart__candlestick:hover {
4061
- opacity: 0.8;
4062
- filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
3798
+ .c-chart__bar:hover {
3799
+ opacity: 0.85;
3800
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4063
3801
  }
4064
- .c-chart--candlestick .c-chart__canvas .c-chart__candlestick-highlight {
4065
- stroke-width: 2;
4066
- opacity: 0.5;
3802
+ .c-chart__bar--hovered {
3803
+ opacity: 0.85;
3804
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4067
3805
  }
4068
- .c-chart--candlestick .c-chart__canvas .wick,
4069
- .c-chart--candlestick .c-chart__canvas .c-chart__wick {
4070
- stroke-width: 1;
4071
- opacity: 0.8;
3806
+ .c-chart__bar:focus-visible {
3807
+ outline: 2px solid var(--atomix-focus-border-color);
3808
+ outline-offset: 2px;
3809
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4072
3810
  }
4073
- .c-chart--candlestick .c-chart__canvas .wick--hovered,
4074
- .c-chart--candlestick .c-chart__canvas .c-chart__wick--hovered {
4075
- stroke-width: 2;
3811
+ .c-chart__bar-value-label {
3812
+ font-size: 0.75rem;
3813
+ font-weight: 500;
3814
+ fill: var(--atomix-text-primary);
3815
+ text-anchor: middle;
3816
+ pointer-events: none;
3817
+ -webkit-user-select: none;
3818
+ -moz-user-select: none;
3819
+ user-select: none;
4076
3820
  }
4077
- .c-chart--candlestick .c-chart__canvas .c-chart__moving-average {
4078
- stroke-width: 2;
4079
- opacity: 0.8;
3821
+ .c-chart__line-path {
3822
+ fill: none;
3823
+ stroke-linecap: round;
3824
+ stroke-linejoin: round;
3825
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3826
+ shape-rendering: geometricPrecision;
4080
3827
  }
4081
- .c-chart--candlestick .c-chart__canvas .volume-bar {
4082
- opacity: 0.3;
4083
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3828
+ .c-chart__area-path {
3829
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3830
+ shape-rendering: geometricPrecision;
4084
3831
  }
4085
- .c-chart--candlestick .c-chart__canvas .volume-bar:hover {
4086
- opacity: 0.6;
3832
+ .c-chart__area-fill {
3833
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3834
+ shape-rendering: geometricPrecision;
4087
3835
  }
4088
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-background {
4089
- fill: var(--atomix-secondary-bg-subtle);
4090
- stroke: var(--atomix-primary-border-subtle);
4091
- stroke-width: 1;
3836
+ .c-chart__area-point {
3837
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3838
+ cursor: pointer;
3839
+ shape-rendering: geometricPrecision;
4092
3840
  }
4093
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-zone {
4094
- stroke: var(--atomix-primary-bg-subtle);
4095
- stroke-width: 2;
3841
+ .c-chart__area-point:hover {
3842
+ transform: scale(1.2);
4096
3843
  }
4097
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-tick--major {
4098
- stroke: var(--atomix-secondary-text-emphasis);
4099
- stroke-width: 2;
3844
+ .c-chart__area-point--hovered {
3845
+ transform: scale(1.2);
4100
3846
  }
4101
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-tick--minor {
4102
- stroke: var(--atomix-tertiary-text-emphasis);
4103
- stroke-width: 1;
3847
+ .c-chart__area-point:focus-visible {
3848
+ outline: 2px solid var(--atomix-focus-border-color);
3849
+ outline-offset: 2px;
3850
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4104
3851
  }
4105
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-tick-label {
3852
+ .c-chart__point-label {
4106
3853
  font-size: 0.75rem;
4107
- fill: var(--atomix-secondary-text-emphasis);
3854
+ font-weight: 500;
3855
+ text-anchor: middle;
3856
+ pointer-events: none;
3857
+ -webkit-user-select: none;
3858
+ -moz-user-select: none;
3859
+ user-select: none;
4108
3860
  }
4109
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-min-max-label {
4110
- font-size: 0.875rem;
4111
- font-weight: 700;
4112
- fill: var(--atomix-secondary-text-emphasis);
3861
+ .c-chart__pie-slice {
3862
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
3863
+ cursor: pointer;
3864
+ shape-rendering: geometricPrecision;
4113
3865
  }
4114
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-needle .c-chart__gauge-needle-line {
3866
+ .c-chart__pie-slice:hover {
4115
3867
  stroke-width: 3;
4116
- stroke-linecap: round;
3868
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4117
3869
  }
4118
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-needle .c-chart__gauge-needle-center {
4119
- stroke: var(--atomix-primary-bg-subtle);
4120
- stroke-width: 2;
3870
+ .c-chart__pie-slice--hovered {
3871
+ stroke-width: 3;
3872
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4121
3873
  }
4122
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-value {
4123
- font-size: 2rem;
4124
- font-weight: 700;
4125
- fill: var(--atomix-primary-text-emphasis);
3874
+ .c-chart__pie-slice:focus-visible {
3875
+ outline: 2px solid var(--atomix-focus-border-color);
3876
+ outline-offset: 2px;
3877
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4126
3878
  }
4127
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-label {
4128
- font-size: 0.875rem;
4129
- fill: var(--atomix-secondary-text-emphasis);
3879
+ .c-chart__pie-label {
3880
+ font-size: 0.75rem;
3881
+ font-weight: 500;
3882
+ fill: var(--atomix-text-primary);
3883
+ text-anchor: middle;
3884
+ dominant-baseline: middle;
3885
+ pointer-events: none;
3886
+ -webkit-user-select: none;
3887
+ -moz-user-select: none;
3888
+ user-select: none;
3889
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
4130
3890
  }
4131
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-segment {
4132
- stroke: var(--atomix-primary-bg-subtle);
4133
- stroke-width: 2;
3891
+ .c-chart__donut-slice {
3892
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
4134
3893
  cursor: pointer;
4135
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3894
+ shape-rendering: geometricPrecision;
3895
+ transform-origin: center;
4136
3896
  }
4137
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-segment--animated {
4138
- transition: all 1s ease-out;
3897
+ .c-chart__donut-slice:hover {
3898
+ transform: scale(1.02);
3899
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4139
3900
  }
4140
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-segment:hover {
4141
- opacity: 0.8;
4142
- filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2));
3901
+ .c-chart__donut-slice--hovered {
3902
+ transform: scale(1.02);
3903
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4143
3904
  }
4144
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-label {
4145
- font-size: 0.875rem;
4146
- font-weight: 700;
3905
+ .c-chart__donut-slice:focus-visible {
3906
+ outline: 2px solid var(--atomix-focus-border-color);
3907
+ outline-offset: 2px;
3908
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
3909
+ }
3910
+ .c-chart__donut-label {
3911
+ font-size: 0.75rem;
3912
+ font-weight: 500;
3913
+ fill: var(--atomix-text-primary);
3914
+ text-anchor: middle;
3915
+ dominant-baseline: middle;
4147
3916
  pointer-events: none;
3917
+ -webkit-user-select: none;
3918
+ -moz-user-select: none;
3919
+ user-select: none;
3920
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
4148
3921
  }
4149
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-label--inside {
4150
- fill: var(--atomix-invert-text-emphasis);
4151
- text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
3922
+ .c-chart__donut-percentage {
3923
+ font-size: 0.75rem;
3924
+ font-weight: 600;
3925
+ fill: var(--atomix-secondary-text-emphasis);
3926
+ text-anchor: middle;
3927
+ dominant-baseline: middle;
3928
+ pointer-events: none;
3929
+ -webkit-user-select: none;
3930
+ -moz-user-select: none;
3931
+ user-select: none;
4152
3932
  }
4153
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-label--outside {
4154
- fill: var(--atomix-primary-text-emphasis);
3933
+ .c-chart__donut-center-label {
3934
+ font-size: 0.875rem;
3935
+ font-weight: 500;
3936
+ fill: var(--atomix-secondary-text-emphasis);
3937
+ text-anchor: middle;
3938
+ dominant-baseline: middle;
3939
+ pointer-events: none;
3940
+ -webkit-user-select: none;
3941
+ -moz-user-select: none;
3942
+ user-select: none;
4155
3943
  }
4156
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-value {
4157
- font-size: 0.75rem;
3944
+ .c-chart__donut-center-value {
3945
+ font-size: 1.25rem;
3946
+ font-weight: 700;
3947
+ fill: var(--atomix-text-primary);
3948
+ text-anchor: middle;
3949
+ dominant-baseline: middle;
4158
3950
  pointer-events: none;
3951
+ -webkit-user-select: none;
3952
+ -moz-user-select: none;
3953
+ user-select: none;
4159
3954
  }
4160
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-value--inside {
4161
- fill: var(--atomix-invert-text-emphasis);
4162
- text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
3955
+ .c-chart__scatter-point {
3956
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3957
+ cursor: pointer;
3958
+ shape-rendering: geometricPrecision;
4163
3959
  }
4164
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-value--outside {
4165
- fill: var(--atomix-secondary-text-emphasis);
3960
+ .c-chart__scatter-point:hover {
3961
+ transform: scale(1.2);
3962
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4166
3963
  }
4167
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-conversion {
4168
- font-size: 0.75rem;
4169
- fill: var(--atomix-secondary-text-emphasis);
4170
- font-style: italic;
3964
+ .c-chart__scatter-point:focus-visible {
3965
+ outline: 2px solid var(--atomix-focus-border-color);
3966
+ outline-offset: 2px;
3967
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4171
3968
  }
4172
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-axis-label {
3969
+ .c-chart__scatter-label {
4173
3970
  font-size: 0.75rem;
4174
- fill: var(--atomix-gray-7);
4175
3971
  font-weight: 500;
3972
+ fill: var(--atomix-text-primary);
3973
+ text-anchor: middle;
3974
+ pointer-events: none;
4176
3975
  -webkit-user-select: none;
4177
3976
  -moz-user-select: none;
4178
3977
  user-select: none;
4179
3978
  }
4180
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-cell {
3979
+ .c-chart__bubble {
3980
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4181
3981
  cursor: pointer;
4182
- transition: all 0.2s ease;
4183
- shape-rendering: crispEdges;
3982
+ shape-rendering: geometricPrecision;
4184
3983
  }
4185
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-cell--empty {
4186
- fill: var(--atomix-gray-2);
4187
- stroke: var(--atomix-gray-3);
4188
- stroke-width: 0.5;
4189
- opacity: 0.6;
3984
+ .c-chart__bubble:hover {
3985
+ transform: scale(1.1);
3986
+ filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1));
4190
3987
  }
4191
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-cell--hovered {
3988
+ .c-chart__bubble--hovered {
4192
3989
  transform: scale(1.1);
4193
- filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
4194
- z-index: 10;
3990
+ filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1));
4195
3991
  }
4196
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-cell:focus-visible {
4197
- outline: 2px solid var(--atomix-primary-6);
4198
- outline-offset: 1px;
3992
+ .c-chart__bubble:focus-visible {
3993
+ outline: 2px solid var(--atomix-focus-border-color);
3994
+ outline-offset: 2px;
3995
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4199
3996
  }
4200
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-value {
4201
- font-size: 9px;
3997
+ .c-chart__bubble-label {
3998
+ font-size: 0.75rem;
4202
3999
  font-weight: 500;
4000
+ fill: var(--atomix-text-primary);
4001
+ text-anchor: middle;
4002
+ dominant-baseline: middle;
4203
4003
  pointer-events: none;
4204
4004
  -webkit-user-select: none;
4205
4005
  -moz-user-select: none;
4206
4006
  user-select: none;
4207
- font-feature-settings: "tnum";
4208
- font-variant-numeric: tabular-nums;
4209
- }
4210
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-value--light {
4211
- fill: white;
4212
4007
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
4213
4008
  }
4214
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-value--dark {
4215
- fill: var(--atomix-gray-8);
4216
- }
4217
- .c-chart--heatmap .c-chart__canvas.c-chart--calendar .c-chart__heatmap-cell {
4218
- rx: 2;
4009
+ .c-chart__radar-grid-line {
4010
+ stroke: var(--atomix-border-color);
4011
+ stroke-width: 1;
4012
+ opacity: 0.3;
4013
+ shape-rendering: geometricPrecision;
4219
4014
  }
4220
- .c-chart--heatmap .c-chart__canvas.c-chart--grid .c-chart__heatmap-cell {
4221
- rx: 4;
4015
+ .c-chart__radar-axis-label {
4016
+ font-size: 0.75rem;
4017
+ font-weight: 500;
4018
+ fill: var(--atomix-secondary-text-emphasis);
4019
+ text-anchor: middle;
4020
+ dominant-baseline: middle;
4021
+ pointer-events: none;
4022
+ -webkit-user-select: none;
4023
+ -moz-user-select: none;
4024
+ user-select: none;
4222
4025
  }
4223
- .c-chart--treemap .c-chart__canvas .c-chart__treemap-node {
4224
- cursor: pointer;
4225
- stroke: var(--atomix-primary-bg-subtle);
4226
- stroke-width: 1;
4026
+ .c-chart__radar-area {
4227
4027
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4028
+ shape-rendering: geometricPrecision;
4228
4029
  }
4229
- .c-chart--treemap .c-chart__canvas .c-chart__treemap-node--animated {
4230
- transition: all 750ms ease-out;
4030
+ .c-chart__radar-line {
4031
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4032
+ shape-rendering: geometricPrecision;
4033
+ stroke-linecap: round;
4034
+ stroke-linejoin: round;
4231
4035
  }
4232
- .c-chart--treemap .c-chart__canvas .c-chart__treemap-node--hovered {
4233
- opacity: 0.8;
4036
+ .c-chart__radar-point {
4037
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4038
+ cursor: pointer;
4039
+ shape-rendering: geometricPrecision;
4234
4040
  }
4235
- .c-chart--treemap .c-chart__canvas .c-chart__treemap-node--selected {
4236
- stroke-width: 2;
4041
+ .c-chart__radar-point:hover {
4042
+ transform: scale(1.3);
4043
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4237
4044
  }
4238
- .c-chart--treemap .c-chart__canvas .c-chart__treemap-label {
4239
- font-size: 0.75rem;
4240
- font-weight: 700;
4241
- fill: var(--atomix-invert-text-emphasis);
4242
- pointer-events: none;
4045
+ .c-chart__radar-point--hovered {
4046
+ transform: scale(1.3);
4047
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4243
4048
  }
4244
- .c-chart--treemap .c-chart__canvas .c-chart__treemap-value {
4245
- font-size: 0.75rem;
4246
- fill: var(--atomix-invert-text-emphasis);
4247
- opacity: 0.8;
4248
- pointer-events: none;
4049
+ .c-chart__radar-point:focus-visible {
4050
+ outline: 2px solid var(--atomix-focus-border-color);
4051
+ outline-offset: 2px;
4052
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4249
4053
  }
4250
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-bar {
4251
- stroke: var(--atomix-primary-bg-subtle);
4252
- stroke-width: 2;
4253
- cursor: pointer;
4054
+ .c-chart__waterfall-bar {
4055
+ rx: 0.25rem;
4056
+ ry: 0.25rem;
4254
4057
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4058
+ cursor: pointer;
4059
+ shape-rendering: geometricPrecision;
4255
4060
  }
4256
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-bar--animated {
4257
- transition: all 1s ease-out;
4061
+ .c-chart__waterfall-bar:hover {
4062
+ opacity: 0.85;
4063
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.075));
4258
4064
  }
4259
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-bar:hover {
4260
- opacity: 0.8;
4261
- filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2));
4065
+ .c-chart__waterfall-bar--animated {
4066
+ animation: chart-bar-appear 1s ease-out;
4067
+ transform-origin: bottom center;
4068
+ }
4069
+ .c-chart__waterfall-bar:focus-visible {
4070
+ outline: 2px solid var(--atomix-focus-border-color);
4071
+ outline-offset: 2px;
4072
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4262
4073
  }
4263
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-value {
4074
+ .c-chart__waterfall-value {
4264
4075
  font-size: 0.75rem;
4265
- font-weight: 700;
4076
+ font-weight: 600;
4077
+ fill: var(--atomix-text-primary);
4078
+ text-anchor: middle;
4266
4079
  pointer-events: none;
4080
+ -webkit-user-select: none;
4081
+ -moz-user-select: none;
4082
+ user-select: none;
4267
4083
  }
4268
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-value--center {
4269
- fill: var(--atomix-invert-text-emphasis);
4270
- text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
4084
+ .c-chart__waterfall-value--center {
4085
+ dominant-baseline: middle;
4271
4086
  }
4272
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-value--outside {
4273
- fill: var(--atomix-primary-text-emphasis);
4087
+ .c-chart__waterfall-value--outside {
4088
+ dominant-baseline: auto;
4274
4089
  }
4275
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-connector {
4276
- stroke-width: 2;
4277
- opacity: 0.7;
4090
+ .c-chart__waterfall-connector {
4091
+ stroke: var(--atomix-border-color);
4092
+ stroke-width: 1;
4093
+ opacity: 0.6;
4094
+ shape-rendering: geometricPrecision;
4278
4095
  }
4279
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-cumulative-line {
4280
- stroke-width: 3;
4096
+ .c-chart__waterfall-cumulative-line {
4097
+ stroke-width: 2;
4281
4098
  stroke-linecap: round;
4282
4099
  stroke-linejoin: round;
4100
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4101
+ shape-rendering: geometricPrecision;
4283
4102
  }
4284
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-cumulative-point {
4285
- stroke: var(--atomix-primary-bg-subtle);
4286
- stroke-width: 2;
4287
- }
4288
- @keyframes chart-spin {
4289
- 0% {
4290
- transform: rotate(0deg);
4291
- }
4292
- 100% {
4293
- transform: rotate(360deg);
4294
- }
4295
- }
4296
- @keyframes chart-shimmer {
4297
- 0% {
4298
- left: -100%;
4299
- }
4300
- 100% {
4301
- left: 100%;
4302
- }
4303
- }
4304
- @keyframes chart-pulse {
4305
- 0%, 100% {
4306
- opacity: 0.8;
4307
- }
4308
- 50% {
4309
- opacity: 1;
4310
- }
4311
- }
4312
- @keyframes chart-draw-line {
4313
- 0% {
4314
- stroke-dashoffset: 1000;
4315
- }
4316
- 100% {
4317
- stroke-dashoffset: 0;
4318
- }
4319
- }
4320
- @keyframes chart-area-fade {
4321
- 0% {
4322
- opacity: 0;
4323
- }
4324
- 100% {
4325
- opacity: 0.3;
4326
- }
4103
+ .c-chart__waterfall-cumulative-point {
4104
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4105
+ cursor: pointer;
4106
+ shape-rendering: geometricPrecision;
4327
4107
  }
4328
- @keyframes chart-bar-grow {
4329
- 0% {
4330
- transform: scaleY(0);
4331
- }
4332
- 100% {
4333
- transform: scaleY(1);
4334
- }
4108
+ .c-chart__waterfall-cumulative-point:hover {
4109
+ transform: scale(1.3);
4335
4110
  }
4336
- @keyframes chart-bar-grow-horizontal {
4337
- 0% {
4338
- transform: scaleX(0);
4339
- }
4340
- 100% {
4341
- transform: scaleX(1);
4342
- }
4111
+ .c-chart__waterfall-cumulative-point:focus-visible {
4112
+ outline: 2px solid var(--atomix-focus-border-color);
4113
+ outline-offset: 2px;
4114
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4343
4115
  }
4344
- @keyframes chart-pie-draw {
4345
- 0% {
4346
- stroke-dasharray: 0 628;
4116
+ @media (prefers-contrast: high) {
4117
+ .c-chart {
4118
+ border-width: calc(var(--atomix-border-width) * 2);
4347
4119
  }
4348
- 100% {
4349
- stroke-dasharray: 628 628;
4120
+ .c-chart--selected {
4121
+ border-width: calc(var(--atomix-border-width) * 3);
4350
4122
  }
4351
- }
4352
- @keyframes chart-donut-draw {
4353
- 0% {
4354
- stroke-dasharray: 0 628;
4123
+ .c-chart__action {
4124
+ border-width: calc(var(--atomix-border-width) * 2);
4355
4125
  }
4356
- 100% {
4357
- stroke-dasharray: 628 628;
4126
+ .c-chart__action:focus-visible {
4127
+ outline-width: calc(var(--atomix-border-width) * 3);
4358
4128
  }
4359
- }
4360
- @keyframes chart-fade-in {
4361
- 0% {
4362
- opacity: 0;
4363
- transform: translateY(10px);
4129
+ .c-chart__data-point {
4130
+ stroke-width: 2;
4364
4131
  }
4365
- 100% {
4366
- opacity: 1;
4367
- transform: translateY(0);
4132
+ .c-chart__data-point--selected {
4133
+ stroke-width: 3;
4368
4134
  }
4369
- }
4370
- @keyframes chart-scale-in {
4371
- 0% {
4372
- opacity: 0;
4373
- transform: scale(0.3);
4135
+ .c-chart__grid {
4136
+ stroke-width: 1;
4137
+ opacity: 0.6;
4374
4138
  }
4375
- 60% {
4139
+ .c-chart__grid--major {
4140
+ stroke-width: 1.5;
4376
4141
  opacity: 0.8;
4377
- transform: scale(1.1);
4378
- }
4379
- 100% {
4380
- opacity: 1;
4381
- transform: scale(1);
4382
- }
4383
- }
4384
- @keyframes chart-slide-in {
4385
- 0% {
4386
- opacity: 0;
4387
- transform: translateX(-20px);
4388
4142
  }
4389
- 100% {
4143
+ .c-chart__grid--zero {
4144
+ stroke-width: 2;
4390
4145
  opacity: 1;
4391
- transform: translateX(0);
4392
- }
4393
- }
4394
- @keyframes chart-bubble-grow {
4395
- 0% {
4396
- transform: scale(0);
4397
4146
  }
4398
- 100% {
4399
- transform: scale(1);
4147
+ .c-chart__treemap-node {
4148
+ stroke-width: 2;
4400
4149
  }
4401
- }
4402
- @keyframes chart-dash-flow {
4403
- 0% {
4404
- stroke-dashoffset: 0;
4150
+ .c-chart__treemap-node--selected {
4151
+ stroke-width: 3;
4405
4152
  }
4406
- 100% {
4407
- stroke-dashoffset: 10;
4153
+ .c-chart__treemap-node:focus-visible {
4154
+ outline-width: calc(var(--atomix-border-width) * 3);
4408
4155
  }
4409
- }
4410
- @keyframes chart-glow {
4411
- 0%, 100% {
4412
- filter: drop-shadow(0 0 5px currentColor);
4156
+ .c-chart__funnel-segment {
4157
+ stroke-width: 2;
4413
4158
  }
4414
- 50% {
4415
- filter: drop-shadow(0 0 15px currentColor);
4159
+ .c-chart__funnel-segment:focus-visible {
4160
+ outline-width: calc(var(--atomix-border-width) * 3);
4416
4161
  }
4417
- }
4418
- @keyframes chart-pulse-dot {
4419
- 0%, 100% {
4420
- opacity: 1;
4421
- transform: scale(1);
4162
+ .c-chart__heatmap-cell {
4163
+ stroke-width: 2;
4422
4164
  }
4423
- 50% {
4424
- opacity: 0.5;
4425
- transform: scale(1.2);
4165
+ .c-chart__heatmap-cell--hovered {
4166
+ stroke-width: 3;
4426
4167
  }
4427
- }
4428
- @keyframes chart-zoom-in {
4429
- 0% {
4430
- transform: scale(0.8);
4431
- opacity: 0;
4168
+ .c-chart__heatmap-cell:focus-visible {
4169
+ outline-width: calc(var(--atomix-border-width) * 3);
4432
4170
  }
4433
- 100% {
4434
- transform: scale(1);
4435
- opacity: 1;
4171
+ .c-chart__candlestick-candle {
4172
+ stroke-width: 2;
4436
4173
  }
4437
- }
4438
- @keyframes chart-slide-up {
4439
- 0% {
4440
- transform: translateY(20px);
4441
- opacity: 0;
4174
+ .c-chart__candlestick-candle:focus-visible {
4175
+ outline-width: calc(var(--atomix-border-width) * 3);
4442
4176
  }
4443
- 100% {
4444
- transform: translateY(0);
4177
+ .c-chart__candlestick-wick {
4178
+ stroke-width: 2;
4445
4179
  opacity: 1;
4446
4180
  }
4447
4181
  }
4448
- @media (max-width: 768px) {
4182
+ @media (prefers-reduced-motion: reduce) {
4449
4183
  .c-chart {
4450
- --atomix-chart-min-height: 10rem;
4451
- border-radius: 0.25rem;
4184
+ transition: none;
4185
+ animation: none;
4452
4186
  }
4453
- .c-chart__header {
4454
- flex-direction: column;
4455
- align-items: flex-start;
4456
- gap: 0.5rem;
4187
+ .c-chart::before, .c-chart::after {
4188
+ animation: none;
4189
+ transition: none;
4457
4190
  }
4458
- .c-chart__toolbar {
4459
- width: 100%;
4460
- justify-content: flex-end;
4461
- padding: 0.5rem;
4462
- gap: 0.5rem;
4191
+ .c-chart--elevated {
4192
+ transform: none;
4463
4193
  }
4464
- }
4465
- @media (max-width: 768px) and (max-width: 480px) {
4466
- .c-chart__toolbar {
4467
- flex-wrap: wrap;
4468
- justify-content: center;
4194
+ .c-chart--elevated:hover {
4195
+ transform: none;
4469
4196
  }
4470
- }
4471
- @media (max-width: 768px) {
4472
- .c-chart__action {
4473
- width: 2.25rem;
4474
- height: 2.25rem;
4197
+ .c-chart--clickable {
4198
+ transition: none;
4475
4199
  }
4476
- .c-chart__action svg {
4477
- width: 1.125rem;
4478
- height: 1.125rem;
4200
+ .c-chart--clickable:hover {
4201
+ transform: none;
4479
4202
  }
4480
- .c-chart__export-dropdown {
4481
- position: fixed;
4482
- top: 50%;
4483
- left: 50%;
4484
- transform: translate(-50%, -50%);
4485
- margin-top: 0;
4486
- min-width: 12.5rem;
4487
- max-width: 90vw;
4488
- }
4489
- .c-chart__legend {
4490
- flex-direction: column;
4491
- gap: 0.5rem;
4203
+ .c-chart--clickable:active {
4204
+ transform: none;
4492
4205
  }
4493
- .c-chart__legend-item {
4494
- justify-content: space-between;
4495
- width: 100%;
4206
+ .c-chart__action {
4207
+ transition: none;
4496
4208
  }
4497
- .c-chart:hover {
4209
+ .c-chart__action:hover {
4498
4210
  transform: none;
4499
4211
  }
4500
- }
4501
- @media (max-width: 480px) {
4502
- .c-chart {
4503
- --atomix-chart-min-height: 9rem;
4504
- --atomix-chart-padding: 0.5rem;
4505
- border-radius: 0.25rem;
4212
+ .c-chart__action svg {
4213
+ transition: none;
4506
4214
  }
4507
- .c-chart__title {
4508
- font-size: 1.125rem;
4509
- margin-bottom: 0.25rem;
4215
+ .c-chart__action svg:hover {
4216
+ transform: none;
4510
4217
  }
4511
- .c-chart__subtitle {
4512
- font-size: 0.75rem;
4218
+ .c-chart__data-point {
4219
+ transition: none;
4513
4220
  }
4514
- .c-chart__toolbar {
4515
- padding: 0.25rem;
4516
- gap: 0.25rem;
4517
- border-radius: 0.25rem;
4221
+ .c-chart__data-point--hovered {
4222
+ transform: none;
4518
4223
  }
4519
- .c-chart__action {
4520
- width: 1.75rem;
4521
- height: 1.75rem;
4522
- font-size: 0.75rem;
4224
+ .c-chart__treemap-node {
4225
+ transition: none;
4523
4226
  }
4524
- .c-chart__action svg {
4525
- width: 0.875rem;
4526
- height: 0.875rem;
4227
+ .c-chart__treemap-node:hover {
4228
+ transform: none;
4527
4229
  }
4528
- .c-chart__export-option {
4529
- padding: 0.25rem 0.5rem;
4530
- font-size: 0.6875rem;
4230
+ .c-chart__treemap-node--hovered {
4231
+ transform: none;
4531
4232
  }
4532
- }
4533
- @media (prefers-reduced-motion: reduce) {
4534
- .c-chart {
4233
+ .c-chart__funnel-segment {
4535
4234
  transition: none;
4536
4235
  }
4537
- .c-chart:hover {
4236
+ .c-chart__funnel-segment:hover {
4538
4237
  transform: none;
4539
4238
  }
4540
- .c-chart * {
4541
- animation-duration: 0.01s !important;
4542
- transition-duration: 0.01s !important;
4543
- }
4544
- .c-chart__real-time-indicator::before {
4545
- animation: none;
4239
+ .c-chart__heatmap-cell {
4240
+ transition: none;
4546
4241
  }
4547
- }
4548
- .c-chart:focus-within .c-chart__data-point:focus {
4549
- outline: 2px solid var(--atomix-primary-6);
4550
- outline-offset: 2px;
4551
- z-index: 10;
4552
- }
4553
- .c-chart:focus-within__canvas svg {
4554
- outline: 2px solid var(--atomix-primary-border-subtle);
4555
- outline-offset: 2px;
4556
- }
4557
- @media (prefers-contrast: high) {
4558
- .c-chart {
4559
- border-width: 2px;
4560
- background-color: white;
4561
- color: black;
4562
- -webkit-backdrop-filter: none;
4563
- backdrop-filter: none;
4242
+ .c-chart__heatmap-cell:hover {
4243
+ transform: none;
4564
4244
  }
4565
- .c-chart__grid {
4566
- stroke-width: 2;
4567
- opacity: 0.8;
4568
- stroke: black;
4245
+ .c-chart__heatmap-cell--hovered {
4246
+ transform: none;
4569
4247
  }
4570
- .c-chart__title {
4571
- color: black;
4248
+ .c-chart__candlestick-candle {
4249
+ transition: none;
4572
4250
  }
4573
- .c-chart__data-point {
4574
- stroke: black;
4575
- stroke-width: 2;
4251
+ .c-chart__candlestick-candle:hover {
4252
+ transform: none;
4576
4253
  }
4577
- .c-chart__crosshair line {
4578
- stroke: black;
4579
- opacity: 1;
4254
+ .c-chart__candlestick-wick {
4255
+ transition: none;
4580
4256
  }
4581
- .c-chart__zoom-indicator {
4582
- background: black;
4583
- color: white;
4584
- border: 2px solid white;
4257
+ .c-chart__candlestick-volume {
4258
+ transition: none;
4585
4259
  }
4586
- .c-chart .line-path {
4587
- stroke-width: 3 !important;
4260
+ .c-chart__empty {
4261
+ animation: none;
4588
4262
  }
4589
- .c-chart .bar {
4590
- stroke: black;
4591
- stroke-width: 2;
4263
+ .c-chart--loading .c-chart__content::after {
4264
+ animation: none;
4592
4265
  }
4593
- }
4594
- @media print {
4595
- .c-chart {
4596
- page-break-inside: avoid;
4597
- -moz-column-break-inside: avoid;
4598
- break-inside: avoid;
4599
- box-shadow: none;
4600
- border: 2px solid black;
4601
- background: white;
4266
+ .c-chart__waterfall-bar--animated {
4267
+ animation: none;
4602
4268
  }
4603
- .c-chart__toolbar {
4604
- display: none;
4269
+ .c-chart__canvas svg {
4270
+ animation: none;
4271
+ opacity: 1;
4605
4272
  }
4606
- .c-chart__crosshair, .c-chart__zoom-indicator, .c-chart__real-time-indicator {
4607
- display: none;
4273
+ }
4274
+ @keyframes chart-bar-appear {
4275
+ 0% {
4276
+ opacity: 0;
4277
+ transform: scaleY(0);
4608
4278
  }
4609
- .c-chart * {
4610
- animation: none !important;
4611
- transition: none !important;
4279
+ 100% {
4280
+ opacity: 1;
4281
+ transform: scaleY(1);
4612
4282
  }
4613
4283
  }
4614
4284
  .c-checkbox-group {
@@ -4988,20 +4658,27 @@ a, a:hover {
4988
4658
  display: flex;
4989
4659
  opacity: 0;
4990
4660
  visibility: hidden;
4991
- transform-origin: top center;
4992
4661
  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);
4993
- transform: translateY(-15px) scale(0.95);
4994
4662
  pointer-events: none;
4663
+ }
4664
+ .c-dropdown__menu-wrapper:not(.is-glass) {
4995
4665
  will-change: transform, opacity, visibility;
4666
+ transform: translateY(-15px) scale(0.95);
4667
+ transform-origin: top center;
4996
4668
  }
4997
- .c-dropdown__menu-wrapper.is-open {
4669
+ .c-dropdown__menu-wrapper.is-open:not(.is-glass) {
4998
4670
  opacity: 1;
4999
4671
  transform: translateY(0) scale(1);
5000
4672
  visibility: visible;
5001
4673
  animation: atomix-dropdown-fade-in var(--atomix-dropdown-animation-duration) var(--atomix-dropdown-animation-timing) forwards;
5002
4674
  pointer-events: auto;
5003
4675
  }
5004
- .c-dropdown__menu-wrapper:not(.is-open) {
4676
+ .c-dropdown__menu-wrapper.is-open.is-glass {
4677
+ opacity: 1;
4678
+ visibility: visible;
4679
+ pointer-events: auto;
4680
+ }
4681
+ .c-dropdown__menu-wrapper:not(.is-open):not(.is-glass) {
5005
4682
  animation: atomix-dropdown-fade-out var(--atomix-dropdown-animation-duration) var(--atomix-dropdown-animation-timing) forwards;
5006
4683
  }
5007
4684
  .c-dropdown__menu-wrapper--bottom-start {
@@ -5522,22 +5199,41 @@ a, a:hover {
5522
5199
  --atomix-footer-padding-x: 1rem;
5523
5200
  --atomix-footer-padding-y: 3rem;
5524
5201
  --atomix-footer-container-max-width: 1200px;
5525
- --atomix-footer-bg: var(--atomix-surface);
5526
- --atomix-footer-color: var(--atomix-text);
5202
+ --atomix-footer-bg: var(--atomix-primary-bg);
5203
+ --atomix-footer-color: var(--atomix-primary-text-emphasis);
5527
5204
  --atomix-footer-border-width: 1px;
5528
- --atomix-footer-border-color: var(--atomix-border);
5205
+ --atomix-footer-border-color: var(--atomix-primary-border-subtle);
5529
5206
  --atomix-footer-brand-margin-bottom: 1.5rem;
5530
5207
  --atomix-footer-section-margin-bottom: 2rem;
5531
5208
  --atomix-footer-social-gap: 0.75rem;
5532
5209
  --atomix-footer-newsletter-padding: 1.5rem;
5533
5210
  --atomix-footer-bottom-padding-top: 1.5rem;
5534
5211
  --atomix-footer-bottom-margin-top: 2rem;
5212
+ --atomix-footer-brand-logo-margin-bottom: 1rem;
5213
+ --atomix-footer-brand-logo-hover-opacity: 0.8;
5214
+ --atomix-footer-section-header-gap: 0.5rem;
5215
+ --atomix-footer-section-toggle-padding: 0.75rem 0;
5216
+ --atomix-footer-bg-rgb: var(--atomix-primary-bg);
5217
+ --atomix-disabled-opacity: 0.6;
5535
5218
  background-color: var(--atomix-footer-bg);
5536
5219
  color: var(--atomix-footer-color);
5537
5220
  border-top: var(--atomix-footer-border-width) solid var(--atomix-footer-border-color);
5538
5221
  padding: var(--atomix-footer-padding-y) 0;
5539
5222
  position: relative;
5540
5223
  }
5224
+ .c-footer--glass {
5225
+ padding: 0;
5226
+ margin: 0;
5227
+ border-radius: 0;
5228
+ box-shadow: none;
5229
+ background: transparent;
5230
+ }
5231
+ .c-footer--glass .c-footer__glass {
5232
+ background-color: rgba(var(--atomix-footer-bg-rgb), 0.5, true);
5233
+ color: var(--atomix-footer-color);
5234
+ border-top: var(--atomix-footer-border-width) solid var(--atomix-footer-border-color);
5235
+ padding: var(--atomix-footer-padding-y) 0;
5236
+ }
5541
5237
  .c-footer__container {
5542
5238
  display: flex;
5543
5239
  flex-direction: column;
@@ -5547,28 +5243,42 @@ a, a:hover {
5547
5243
  padding: 0 var(--atomix-footer-padding-x);
5548
5244
  }
5549
5245
  .c-footer__sections {
5550
- display: grid;
5551
- grid-gap: var(--atomix-footer-section-margin-bottom);
5552
- gap: var(--atomix-footer-section-margin-bottom);
5553
5246
  margin-bottom: var(--atomix-footer-bottom-margin-top);
5554
- grid-template-columns: 1fr;
5247
+ width: 100%;
5248
+ max-width: var(--atomix-footer-container-max-width);
5249
+ margin-left: auto;
5250
+ margin-right: auto;
5555
5251
  }
5556
- @media (min-width: 768px) {
5557
- .c-footer__sections {
5558
- grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
5559
- gap: clamp(2rem, 4vw, 3rem);
5560
- }
5252
+ .c-footer__sections--centered {
5253
+ justify-content: center;
5254
+ align-items: center;
5255
+ }
5256
+ .c-footer__sections--stacked {
5257
+ display: flex;
5258
+ flex-direction: column;
5259
+ align-items: center;
5260
+ text-align: center;
5261
+ gap: clamp(1.5rem, 4vw, 2.5rem);
5262
+ max-width: 600px;
5263
+ margin-left: auto;
5264
+ margin-right: auto;
5561
5265
  }
5562
5266
  .c-footer__brand {
5267
+ grid-area: brand;
5563
5268
  margin-bottom: var(--atomix-footer-brand-margin-bottom);
5564
5269
  }
5270
+ @media (min-width: 768px) {
5271
+ .c-footer__brand {
5272
+ margin-bottom: 0;
5273
+ }
5274
+ }
5565
5275
  .c-footer__brand-logo {
5566
5276
  display: inline-block;
5567
- margin-bottom: 1rem;
5277
+ margin-bottom: var(--atomix-footer-brand-logo-margin-bottom);
5568
5278
  transition: opacity 0.2s ease;
5569
5279
  }
5570
5280
  .c-footer__brand-logo:hover {
5571
- opacity: 0.8;
5281
+ opacity: var(--atomix-footer-brand-logo-hover-opacity);
5572
5282
  }
5573
5283
  .c-footer__brand-logo img {
5574
5284
  max-width: 200px;
@@ -5581,18 +5291,23 @@ a, a:hover {
5581
5291
  margin: 0;
5582
5292
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
5583
5293
  font-weight: 600;
5584
- color: var(--atomix-text-emphasis);
5294
+ color: var(--atomix-primary-text-emphasis);
5585
5295
  line-height: 1.2;
5586
5296
  }
5587
5297
  .c-footer__brand-description {
5588
5298
  margin-top: 0.5rem;
5589
5299
  font-size: 0.875rem;
5590
- color: var(--atomix-text-muted);
5300
+ color: var(--atomix-secondary-text-emphasis);
5591
5301
  line-height: 1.6;
5592
5302
  max-width: 35ch;
5593
5303
  }
5594
5304
  .c-footer__section {
5595
- margin-bottom: var(--atomix-footer-section-margin-bottom);
5305
+ margin-bottom: 0;
5306
+ }
5307
+ @media (max-width: 575.98px) {
5308
+ .c-footer__section {
5309
+ margin-bottom: var(--atomix-footer-section-margin-bottom);
5310
+ }
5596
5311
  }
5597
5312
  .c-footer__section-header {
5598
5313
  margin-bottom: 1rem;
@@ -5600,14 +5315,14 @@ a, a:hover {
5600
5315
  .c-footer__section-header-content {
5601
5316
  display: flex;
5602
5317
  align-items: center;
5603
- gap: 0.5rem;
5318
+ gap: var(--atomix-footer-section-header-gap);
5604
5319
  }
5605
5320
  .c-footer__section-toggle {
5606
5321
  display: flex;
5607
5322
  align-items: center;
5608
5323
  justify-content: space-between;
5609
5324
  width: 100%;
5610
- padding: 0.75rem 0;
5325
+ padding: var(--atomix-footer-section-toggle-padding);
5611
5326
  background: none;
5612
5327
  border: none;
5613
5328
  cursor: pointer;
@@ -5626,9 +5341,10 @@ a, a:hover {
5626
5341
  }
5627
5342
  .c-footer__section-title {
5628
5343
  margin: 0;
5344
+ width: 100%;
5629
5345
  font-size: 1.125rem;
5630
5346
  font-weight: 600;
5631
- color: var(--atomix-text-emphasis);
5347
+ color: var(--atomix-primary-text-emphasis);
5632
5348
  line-height: 1.3;
5633
5349
  }
5634
5350
  .c-footer__section-icon {
@@ -5640,7 +5356,7 @@ a, a:hover {
5640
5356
  .c-footer__section-chevron {
5641
5357
  font-size: 0.875rem;
5642
5358
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
5643
- color: var(--atomix-text-muted);
5359
+ color: var(--atomix-gray-6);
5644
5360
  }
5645
5361
  .c-footer__section-content {
5646
5362
  display: flex;
@@ -5675,9 +5391,9 @@ a, a:hover {
5675
5391
  align-items: center;
5676
5392
  gap: 0.5rem;
5677
5393
  padding: 0.25rem 0;
5678
- color: var(--atomix-text);
5394
+ color: var(--atomix-primary-text-emphasis);
5679
5395
  text-decoration: none;
5680
- transition: color 0.15s ease-in-out;
5396
+ transition: all 0.15s ease-in-out;
5681
5397
  border-radius: 0.25rem;
5682
5398
  position: relative;
5683
5399
  }
@@ -5693,7 +5409,7 @@ a, a:hover {
5693
5409
  }
5694
5410
  .c-footer__link:hover, .c-footer__link:focus {
5695
5411
  color: var(--atomix-primary);
5696
- text-decoration: underline;
5412
+ text-decoration: none;
5697
5413
  }
5698
5414
  .c-footer__link:hover::before, .c-footer__link:focus::before {
5699
5415
  width: 100%;
@@ -5710,10 +5426,10 @@ a, a:hover {
5710
5426
  width: 100%;
5711
5427
  }
5712
5428
  .c-footer__link--disabled {
5713
- color: var(--atomix-text-disabled);
5429
+ color: var(--atomix-disabled-text-emphasis);
5714
5430
  cursor: not-allowed;
5715
5431
  pointer-events: none;
5716
- opacity: 0.6;
5432
+ opacity: var(--atomix-disabled-opacity);
5717
5433
  }
5718
5434
  .c-footer__link-icon {
5719
5435
  display: flex;
@@ -5744,11 +5460,11 @@ a, a:hover {
5744
5460
  justify-content: center;
5745
5461
  width: 2.5rem;
5746
5462
  height: 2.5rem;
5747
- background-color: var(--atomix-surface-variant);
5748
- color: var(--atomix-text);
5463
+ background-color: var(--atomix-secondary-bg-subtle);
5464
+ color: var(--atomix-primary-text-emphasis);
5749
5465
  border-radius: 50%;
5750
5466
  text-decoration: none;
5751
- transition: all 0.15s ease-in-out;
5467
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
5752
5468
  position: relative;
5753
5469
  overflow: hidden;
5754
5470
  }
@@ -5762,7 +5478,7 @@ a, a:hover {
5762
5478
  }
5763
5479
  .c-footer__social-link:hover, .c-footer__social-link:focus {
5764
5480
  background-color: var(--atomix-primary);
5765
- color: var(--atomix-primary-contrast);
5481
+ color: var(--atomix-component-active-color);
5766
5482
  transform: translateY(-3px) scale(1.05);
5767
5483
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
5768
5484
  }
@@ -5782,7 +5498,7 @@ a, a:hover {
5782
5498
  height: 3rem;
5783
5499
  }
5784
5500
  .c-footer__social-link--disabled {
5785
- opacity: 0.5;
5501
+ opacity: var(--atomix-disabled-opacity);
5786
5502
  cursor: not-allowed;
5787
5503
  pointer-events: none;
5788
5504
  }
@@ -5829,7 +5545,7 @@ a, a:hover {
5829
5545
  background: linear-gradient(135deg, #25d366, #66bb6a);
5830
5546
  }
5831
5547
  .c-footer__newsletter {
5832
- background-color: linear-gradient(135deg, var(--atomix-surface-variant), rgba(var(--atomix-surface-variant), 0.8));
5548
+ background-color: linear-gradient(135deg, var(--atomix-secondary-bg-subtle), rgba(var(--atomix-secondary-bg-subtle), 0.8));
5833
5549
  padding: 1.5rem;
5834
5550
  border-radius: 0.5rem;
5835
5551
  border: 1px solid var(--atomix-border-subtle);
@@ -5849,20 +5565,24 @@ a, a:hover {
5849
5565
  margin: 0 0 0.5rem 0;
5850
5566
  font-size: clamp(1.125rem, 2vw, 1.125rem);
5851
5567
  font-weight: 600;
5852
- color: var(--atomix-text-emphasis);
5568
+ color: var(--atomix-primary-text-emphasis);
5853
5569
  line-height: 1.3;
5854
5570
  }
5855
5571
  .c-footer__newsletter-description {
5856
5572
  margin: 0 0 1rem 0;
5857
5573
  font-size: 0.875rem;
5858
- color: var(--atomix-text-muted);
5574
+ color: var(--atomix-secondary-text-emphasis);
5859
5575
  line-height: 1.6;
5860
5576
  max-width: 45ch;
5577
+ width: 100%;
5578
+ box-sizing: border-box;
5861
5579
  }
5862
5580
  .c-footer__newsletter-form {
5863
5581
  display: flex;
5864
5582
  gap: 0.75rem;
5865
5583
  align-items: flex-end;
5584
+ width: 100%;
5585
+ max-width: 100%;
5866
5586
  }
5867
5587
  @media (max-width: 575.98px) {
5868
5588
  .c-footer__newsletter-form {
@@ -5885,12 +5605,13 @@ a, a:hover {
5885
5605
  flex: 1 1;
5886
5606
  padding: 0.75rem 1rem;
5887
5607
  font-size: 0.875rem;
5888
- background-color: var(--atomix-surface);
5889
- color: var(--atomix-text);
5890
- border: 1px solid var(--atomix-border);
5608
+ background-color: var(--atomix-primary-bg-subtle);
5609
+ color: var(--atomix-primary-text-emphasis);
5610
+ border: 1px solid var(--atomix-primary-border);
5891
5611
  border-radius: 0.375rem;
5892
5612
  outline: none;
5893
5613
  transition: all 0.3s ease;
5614
+ box-sizing: border-box;
5894
5615
  }
5895
5616
  .c-footer__newsletter-input:focus {
5896
5617
  border-color: var(--atomix-primary);
@@ -5898,12 +5619,12 @@ a, a:hover {
5898
5619
  transform: translateY(-1px);
5899
5620
  }
5900
5621
  .c-footer__newsletter-input::-moz-placeholder {
5901
- color: var(--atomix-text-muted);
5622
+ color: var(--atomix-gray-6);
5902
5623
  -moz-transition: opacity 0.3s ease;
5903
5624
  transition: opacity 0.3s ease;
5904
5625
  }
5905
5626
  .c-footer__newsletter-input::placeholder {
5906
- color: var(--atomix-text-muted);
5627
+ color: var(--atomix-gray-6);
5907
5628
  transition: opacity 0.3s ease;
5908
5629
  }
5909
5630
  .c-footer__newsletter-input:focus::-moz-placeholder {
@@ -5914,13 +5635,13 @@ a, a:hover {
5914
5635
  }
5915
5636
  .c-footer__newsletter-button {
5916
5637
  padding: 0.75rem 1.5rem;
5917
- background-color: var(--atomix-primary);
5918
- color: var(--atomix-primary-contrast);
5638
+ background-color: var(--atomix-brand-bg-subtle);
5639
+ color: var(--atomix-brand-text-emphasis);
5919
5640
  border: none;
5920
5641
  border-radius: 0.375rem;
5921
5642
  font-weight: 500;
5922
5643
  cursor: pointer;
5923
- transition: background-color 0.15s ease-in-out;
5644
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
5924
5645
  white-space: nowrap;
5925
5646
  position: relative;
5926
5647
  overflow: hidden;
@@ -5934,7 +5655,7 @@ a, a:hover {
5934
5655
  transition: transform 0.6s ease;
5935
5656
  }
5936
5657
  .c-footer__newsletter-button:hover, .c-footer__newsletter-button:focus {
5937
- background-color: var(--atomix-primary-hover);
5658
+ background-color: var(--atomix-secondary-bg-subtle);
5938
5659
  transform: translateY(-2px);
5939
5660
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
5940
5661
  }
@@ -5950,7 +5671,7 @@ a, a:hover {
5950
5671
  align-items: center;
5951
5672
  justify-content: space-between;
5952
5673
  padding-top: var(--atomix-footer-bottom-padding-top);
5953
- border-top: 1px solid var(--atomix-border);
5674
+ border-top: 1px solid var(--atomix-primary-border-subtle);
5954
5675
  position: relative;
5955
5676
  }
5956
5677
  @media (max-width: 575.98px) {
@@ -5962,7 +5683,7 @@ a, a:hover {
5962
5683
  }
5963
5684
  .c-footer__copyright {
5964
5685
  font-size: 0.875rem;
5965
- color: var(--atomix-text-muted);
5686
+ color: var(--atomix-tertiary-text-emphasis);
5966
5687
  line-height: 1.5;
5967
5688
  }
5968
5689
  .c-footer__copyright a {
@@ -5979,16 +5700,18 @@ a, a:hover {
5979
5700
  align-items: center;
5980
5701
  gap: 0.5rem;
5981
5702
  padding: 0.75rem 1.25rem;
5982
- background-color: var(--atomix-surface-variant);
5703
+ background-color: var(--atomix-secondary-bg);
5983
5704
  border: 1px solid var(--atomix-border-subtle);
5984
- color: var(--atomix-text);
5705
+ color: var(--atomix-primary-text-emphasis);
5985
5706
  font-size: 0.875rem;
5986
5707
  font-weight: 500;
5987
5708
  cursor: pointer;
5988
- transition: color 0.15s ease-in-out;
5709
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
5989
5710
  border-radius: 2rem;
5990
5711
  position: relative;
5991
5712
  overflow: hidden;
5713
+ text-decoration: none;
5714
+ outline: none;
5992
5715
  }
5993
5716
  .c-footer__back-to-top::before {
5994
5717
  content: "";
@@ -5996,14 +5719,14 @@ a, a:hover {
5996
5719
  inset: 0;
5997
5720
  background: linear-gradient(45deg, transparent 30%, rgba(255, 255, 255, 0.1) 50%, transparent 70%);
5998
5721
  transform: translateX(-100%);
5999
- transition: transform 0.6s ease;
5722
+ transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
6000
5723
  }
6001
5724
  .c-footer__back-to-top:hover, .c-footer__back-to-top:focus {
6002
- color: var(--atomix-primary);
5725
+ color: var(--atomix-secondary-text-emphasis);
6003
5726
  background-color: var(--atomix-primary);
6004
5727
  border-color: var(--atomix-primary);
6005
- transform: translateY(-2px);
6006
- box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
5728
+ transform: translateY(-3px);
5729
+ box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
6007
5730
  }
6008
5731
  .c-footer__back-to-top:hover::before, .c-footer__back-to-top:focus::before {
6009
5732
  transform: translateX(100%);
@@ -6011,6 +5734,10 @@ a, a:hover {
6011
5734
  .c-footer__back-to-top:hover .c-footer__back-to-top-icon, .c-footer__back-to-top:focus .c-footer__back-to-top-icon {
6012
5735
  transform: translateY(-2px);
6013
5736
  }
5737
+ .c-footer__back-to-top:active {
5738
+ transform: translateY(-1px);
5739
+ box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15);
5740
+ }
6014
5741
  .c-footer__back-to-top:focus-visible {
6015
5742
  outline: 2px solid var(--atomix-primary);
6016
5743
  outline-offset: 2px;
@@ -6018,7 +5745,7 @@ a, a:hover {
6018
5745
  .c-footer__back-to-top-icon {
6019
5746
  font-size: 1.25em;
6020
5747
  font-weight: bold;
6021
- transition: transform 0.3s ease;
5748
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
6022
5749
  }
6023
5750
  @media (max-width: 575.98px) {
6024
5751
  .c-footer__back-to-top-text {
@@ -6029,30 +5756,12 @@ a, a:hover {
6029
5756
  margin: 2rem 0;
6030
5757
  border: none;
6031
5758
  height: 1px;
6032
- background: linear-gradient(90deg, transparent, 1px solid var(--atomix-border), transparent);
5759
+ background: linear-gradient(90deg, transparent, 1px solid var(--atomix-primary-border-subtle), transparent);
6033
5760
  opacity: 0.5;
6034
5761
  }
6035
- @media (min-width: 768px) {
6036
- .c-footer--columns .c-footer__sections {
6037
- display: grid;
6038
- grid-template-columns: minmax(300px, 1fr) 2fr minmax(250px, 1fr);
6039
- grid-gap: clamp(2rem, 5vw, 4rem);
6040
- gap: clamp(2rem, 5vw, 4rem);
6041
- align-items: start;
6042
- }
6043
- }
6044
- @media (min-width: 992px) {
6045
- .c-footer--columns .c-footer__sections {
6046
- grid-template-columns: minmax(350px, 1fr) 3fr minmax(300px, 1fr);
6047
- }
6048
- }
6049
5762
  .c-footer--centered {
6050
5763
  text-align: center;
6051
5764
  }
6052
- .c-footer--centered .c-footer__sections {
6053
- justify-content: center;
6054
- align-items: center;
6055
- }
6056
5765
  .c-footer--centered .c-footer__social {
6057
5766
  justify-content: center;
6058
5767
  }
@@ -6062,13 +5771,14 @@ a, a:hover {
6062
5771
  }
6063
5772
  .c-footer--minimal {
6064
5773
  --atomix-footer-padding-y: 2rem;
5774
+ --atomix-footer-social-gap: 0.75;
6065
5775
  }
6066
5776
  .c-footer--minimal .c-footer__sections {
6067
5777
  margin-bottom: 1rem;
6068
5778
  gap: 1.5rem;
6069
5779
  }
6070
5780
  .c-footer--minimal .c-footer__section {
6071
- margin-bottom: 1rem;
5781
+ margin-bottom: 0;
6072
5782
  }
6073
5783
  .c-footer--minimal .c-footer__newsletter {
6074
5784
  padding: 1.5rem;
@@ -6083,15 +5793,26 @@ a, a:hover {
6083
5793
  margin-left: auto;
6084
5794
  margin-right: auto;
6085
5795
  }
5796
+ .c-footer--flexible .c-footer__section-col {
5797
+ flex: 1 1 auto;
5798
+ min-width: 250px;
5799
+ }
5800
+ .c-footer--sidebar .c-footer__sections--columns {
5801
+ align-items: flex-start;
5802
+ }
5803
+ .c-footer--wide .c-footer__sections {
5804
+ max-width: 100%;
5805
+ padding: 0 1rem;
5806
+ }
6086
5807
  .c-footer--sm {
6087
5808
  --atomix-footer-padding-y: 2rem;
6088
5809
  --atomix-footer-section-margin-bottom: 1.5rem;
6089
- --atomix-footer-brand-margin-bottom: 1rem;
6090
5810
  --atomix-footer-social-gap: 0.75rem;
6091
5811
  }
6092
5812
  .c-footer--md {
6093
5813
  --atomix-footer-padding-y: 3rem;
6094
5814
  --atomix-footer-section-margin-bottom: 2rem;
5815
+ --atomix-footer-social-gap: 1rem;
6095
5816
  }
6096
5817
  .c-footer--lg {
6097
5818
  --atomix-footer-padding-y: 4rem;
@@ -6105,7 +5826,7 @@ a, a:hover {
6105
5826
  .c-footer--primary {
6106
5827
  --atomix-footer-bg: var(--atomix-primary-bg-subtle);
6107
5828
  --atomix-footer-border-color: var(--atomix-primary-border-subtle);
6108
- --atomix-footer-color: var(--atomix-primary-text);
5829
+ --atomix-footer-color: var(--atomix-primary-text-emphasis);
6109
5830
  }
6110
5831
  .c-footer--primary .c-footer__brand-name h3,
6111
5832
  .c-footer--primary .c-footer__section-title {
@@ -6113,10 +5834,10 @@ a, a:hover {
6113
5834
  }
6114
5835
  .c-footer--primary .c-footer__brand-description,
6115
5836
  .c-footer--primary .c-footer__copyright {
6116
- color: var(--atomix-primary-text-muted);
5837
+ color: var(--atomix-gray-6);
6117
5838
  }
6118
5839
  .c-footer--primary .c-footer__link {
6119
- color: var(--atomix-primary-text);
5840
+ color: var(--atomix-primary-text-emphasis);
6120
5841
  }
6121
5842
  .c-footer--primary .c-footer__link:hover, .c-footer--primary .c-footer__link:focus {
6122
5843
  color: var(--atomix-primary);
@@ -6125,8 +5846,8 @@ a, a:hover {
6125
5846
  background-color: var(--atomix-primary);
6126
5847
  }
6127
5848
  .c-footer--primary .c-footer__newsletter {
6128
- background: linear-gradient(135deg, var(--atomix-primary-bg), rgba(var(--atomix-primary-bg-rgb), 0.8));
6129
- border-color: var(--atomix-primary-border);
5849
+ background: linear-gradient(135deg, var(--atomix-primary-bg-subtle), rgba(var(--atomix-primary-bg-subtle), 0.8));
5850
+ border-color: var(--atomix-primary-border-subtle);
6130
5851
  }
6131
5852
  .c-footer--primary .c-footer__newsletter::before {
6132
5853
  background: linear-gradient(90deg, transparent, var(--atomix-primary), transparent);
@@ -6134,7 +5855,7 @@ a, a:hover {
6134
5855
  .c-footer--secondary {
6135
5856
  --atomix-footer-bg: var(--atomix-secondary-bg-subtle);
6136
5857
  --atomix-footer-border-color: var(--atomix-secondary-border-subtle);
6137
- --atomix-footer-color: var(--atomix-secondary-text);
5858
+ --atomix-footer-color: var(--atomix-secondary-text-emphasis);
6138
5859
  }
6139
5860
  .c-footer--secondary .c-footer__brand-name h3,
6140
5861
  .c-footer--secondary .c-footer__section-title {
@@ -6142,10 +5863,10 @@ a, a:hover {
6142
5863
  }
6143
5864
  .c-footer--secondary .c-footer__brand-description,
6144
5865
  .c-footer--secondary .c-footer__copyright {
6145
- color: var(--atomix-secondary-text-muted);
5866
+ color: var(--atomix-gray-6);
6146
5867
  }
6147
5868
  .c-footer--secondary .c-footer__link {
6148
- color: var(--atomix-secondary-text);
5869
+ color: var(--atomix-secondary-text-emphasis);
6149
5870
  }
6150
5871
  .c-footer--secondary .c-footer__link:hover, .c-footer--secondary .c-footer__link:focus {
6151
5872
  color: var(--atomix-secondary);
@@ -6154,8 +5875,8 @@ a, a:hover {
6154
5875
  background-color: var(--atomix-secondary);
6155
5876
  }
6156
5877
  .c-footer--secondary .c-footer__newsletter {
6157
- background: linear-gradient(135deg, var(--atomix-secondary-bg), rgba(var(--atomix-secondary-bg-rgb), 0.8));
6158
- border-color: var(--atomix-secondary-border);
5878
+ background: linear-gradient(135deg, var(--atomix-secondary-bg-subtle), rgba(var(--atomix-secondary-bg-subtle), 0.8));
5879
+ border-color: var(--atomix-secondary-border-subtle);
6159
5880
  }
6160
5881
  .c-footer--secondary .c-footer__newsletter::before {
6161
5882
  background: linear-gradient(90deg, transparent, var(--atomix-secondary), transparent);
@@ -6163,7 +5884,7 @@ a, a:hover {
6163
5884
  .c-footer--tertiary {
6164
5885
  --atomix-footer-bg: var(--atomix-tertiary-bg-subtle);
6165
5886
  --atomix-footer-border-color: var(--atomix-tertiary-border-subtle);
6166
- --atomix-footer-color: var(--atomix-tertiary-text);
5887
+ --atomix-footer-color: var(--atomix-tertiary-text-emphasis);
6167
5888
  }
6168
5889
  .c-footer--tertiary .c-footer__brand-name h3,
6169
5890
  .c-footer--tertiary .c-footer__section-title {
@@ -6171,10 +5892,10 @@ a, a:hover {
6171
5892
  }
6172
5893
  .c-footer--tertiary .c-footer__brand-description,
6173
5894
  .c-footer--tertiary .c-footer__copyright {
6174
- color: var(--atomix-tertiary-text-muted);
5895
+ color: var(--atomix-gray-6);
6175
5896
  }
6176
5897
  .c-footer--tertiary .c-footer__link {
6177
- color: var(--atomix-tertiary-text);
5898
+ color: var(--atomix-tertiary-text-emphasis);
6178
5899
  }
6179
5900
  .c-footer--tertiary .c-footer__link:hover, .c-footer--tertiary .c-footer__link:focus {
6180
5901
  color: var(--atomix-tertiary);
@@ -6183,8 +5904,8 @@ a, a:hover {
6183
5904
  background-color: var(--atomix-tertiary);
6184
5905
  }
6185
5906
  .c-footer--tertiary .c-footer__newsletter {
6186
- background: linear-gradient(135deg, var(--atomix-tertiary-bg), rgba(var(--atomix-tertiary-bg-rgb), 0.8));
6187
- border-color: var(--atomix-tertiary-border);
5907
+ background: linear-gradient(135deg, var(--atomix-tertiary-bg-subtle), rgba(var(--atomix-tertiary-bg-subtle), 0.8));
5908
+ border-color: var(--atomix-tertiary-border-subtle);
6188
5909
  }
6189
5910
  .c-footer--tertiary .c-footer__newsletter::before {
6190
5911
  background: linear-gradient(90deg, transparent, var(--atomix-tertiary), transparent);
@@ -6192,7 +5913,7 @@ a, a:hover {
6192
5913
  .c-footer--invert {
6193
5914
  --atomix-footer-bg: var(--atomix-invert-bg-subtle);
6194
5915
  --atomix-footer-border-color: var(--atomix-invert-border-subtle);
6195
- --atomix-footer-color: var(--atomix-invert-text);
5916
+ --atomix-footer-color: var(--atomix-invert-text-emphasis);
6196
5917
  }
6197
5918
  .c-footer--invert .c-footer__brand-name h3,
6198
5919
  .c-footer--invert .c-footer__section-title {
@@ -6200,10 +5921,10 @@ a, a:hover {
6200
5921
  }
6201
5922
  .c-footer--invert .c-footer__brand-description,
6202
5923
  .c-footer--invert .c-footer__copyright {
6203
- color: var(--atomix-invert-text-muted);
5924
+ color: var(--atomix-gray-6);
6204
5925
  }
6205
5926
  .c-footer--invert .c-footer__link {
6206
- color: var(--atomix-invert-text);
5927
+ color: var(--atomix-invert-text-emphasis);
6207
5928
  }
6208
5929
  .c-footer--invert .c-footer__link:hover, .c-footer--invert .c-footer__link:focus {
6209
5930
  color: var(--atomix-invert);
@@ -6212,8 +5933,8 @@ a, a:hover {
6212
5933
  background-color: var(--atomix-invert);
6213
5934
  }
6214
5935
  .c-footer--invert .c-footer__newsletter {
6215
- background: linear-gradient(135deg, var(--atomix-invert-bg), rgba(var(--atomix-invert-bg-rgb), 0.8));
6216
- border-color: var(--atomix-invert-border);
5936
+ background: linear-gradient(135deg, var(--atomix-invert-bg-subtle), rgba(var(--atomix-invert-bg-subtle), 0.8));
5937
+ border-color: var(--atomix-invert-border-subtle);
6217
5938
  }
6218
5939
  .c-footer--invert .c-footer__newsletter::before {
6219
5940
  background: linear-gradient(90deg, transparent, var(--atomix-invert), transparent);
@@ -6221,7 +5942,7 @@ a, a:hover {
6221
5942
  .c-footer--brand {
6222
5943
  --atomix-footer-bg: var(--atomix-brand-bg-subtle);
6223
5944
  --atomix-footer-border-color: var(--atomix-brand-border-subtle);
6224
- --atomix-footer-color: var(--atomix-brand-text);
5945
+ --atomix-footer-color: var(--atomix-brand-text-emphasis);
6225
5946
  }
6226
5947
  .c-footer--brand .c-footer__brand-name h3,
6227
5948
  .c-footer--brand .c-footer__section-title {
@@ -6229,10 +5950,10 @@ a, a:hover {
6229
5950
  }
6230
5951
  .c-footer--brand .c-footer__brand-description,
6231
5952
  .c-footer--brand .c-footer__copyright {
6232
- color: var(--atomix-brand-text-muted);
5953
+ color: var(--atomix-gray-6);
6233
5954
  }
6234
5955
  .c-footer--brand .c-footer__link {
6235
- color: var(--atomix-brand-text);
5956
+ color: var(--atomix-brand-text-emphasis);
6236
5957
  }
6237
5958
  .c-footer--brand .c-footer__link:hover, .c-footer--brand .c-footer__link:focus {
6238
5959
  color: var(--atomix-brand);
@@ -6241,8 +5962,8 @@ a, a:hover {
6241
5962
  background-color: var(--atomix-brand);
6242
5963
  }
6243
5964
  .c-footer--brand .c-footer__newsletter {
6244
- background: linear-gradient(135deg, var(--atomix-brand-bg), rgba(var(--atomix-brand-bg-rgb), 0.8));
6245
- border-color: var(--atomix-brand-border);
5965
+ background: linear-gradient(135deg, var(--atomix-brand-bg-subtle), rgba(var(--atomix-brand-bg-subtle), 0.8));
5966
+ border-color: var(--atomix-brand-border-subtle);
6246
5967
  }
6247
5968
  .c-footer--brand .c-footer__newsletter::before {
6248
5969
  background: linear-gradient(90deg, transparent, var(--atomix-brand), transparent);
@@ -6250,7 +5971,7 @@ a, a:hover {
6250
5971
  .c-footer--error {
6251
5972
  --atomix-footer-bg: var(--atomix-error-bg-subtle);
6252
5973
  --atomix-footer-border-color: var(--atomix-error-border-subtle);
6253
- --atomix-footer-color: var(--atomix-error-text);
5974
+ --atomix-footer-color: var(--atomix-error-text-emphasis);
6254
5975
  }
6255
5976
  .c-footer--error .c-footer__brand-name h3,
6256
5977
  .c-footer--error .c-footer__section-title {
@@ -6258,10 +5979,10 @@ a, a:hover {
6258
5979
  }
6259
5980
  .c-footer--error .c-footer__brand-description,
6260
5981
  .c-footer--error .c-footer__copyright {
6261
- color: var(--atomix-error-text-muted);
5982
+ color: var(--atomix-gray-6);
6262
5983
  }
6263
5984
  .c-footer--error .c-footer__link {
6264
- color: var(--atomix-error-text);
5985
+ color: var(--atomix-error-text-emphasis);
6265
5986
  }
6266
5987
  .c-footer--error .c-footer__link:hover, .c-footer--error .c-footer__link:focus {
6267
5988
  color: var(--atomix-error);
@@ -6270,8 +5991,8 @@ a, a:hover {
6270
5991
  background-color: var(--atomix-error);
6271
5992
  }
6272
5993
  .c-footer--error .c-footer__newsletter {
6273
- background: linear-gradient(135deg, var(--atomix-error-bg), rgba(var(--atomix-error-bg-rgb), 0.8));
6274
- border-color: var(--atomix-error-border);
5994
+ background: linear-gradient(135deg, var(--atomix-error-bg-subtle), rgba(var(--atomix-error-bg-subtle), 0.8));
5995
+ border-color: var(--atomix-error-border-subtle);
6275
5996
  }
6276
5997
  .c-footer--error .c-footer__newsletter::before {
6277
5998
  background: linear-gradient(90deg, transparent, var(--atomix-error), transparent);
@@ -6279,7 +6000,7 @@ a, a:hover {
6279
6000
  .c-footer--success {
6280
6001
  --atomix-footer-bg: var(--atomix-success-bg-subtle);
6281
6002
  --atomix-footer-border-color: var(--atomix-success-border-subtle);
6282
- --atomix-footer-color: var(--atomix-success-text);
6003
+ --atomix-footer-color: var(--atomix-success-text-emphasis);
6283
6004
  }
6284
6005
  .c-footer--success .c-footer__brand-name h3,
6285
6006
  .c-footer--success .c-footer__section-title {
@@ -6287,10 +6008,10 @@ a, a:hover {
6287
6008
  }
6288
6009
  .c-footer--success .c-footer__brand-description,
6289
6010
  .c-footer--success .c-footer__copyright {
6290
- color: var(--atomix-success-text-muted);
6011
+ color: var(--atomix-gray-6);
6291
6012
  }
6292
6013
  .c-footer--success .c-footer__link {
6293
- color: var(--atomix-success-text);
6014
+ color: var(--atomix-success-text-emphasis);
6294
6015
  }
6295
6016
  .c-footer--success .c-footer__link:hover, .c-footer--success .c-footer__link:focus {
6296
6017
  color: var(--atomix-success);
@@ -6299,8 +6020,8 @@ a, a:hover {
6299
6020
  background-color: var(--atomix-success);
6300
6021
  }
6301
6022
  .c-footer--success .c-footer__newsletter {
6302
- background: linear-gradient(135deg, var(--atomix-success-bg), rgba(var(--atomix-success-bg-rgb), 0.8));
6303
- border-color: var(--atomix-success-border);
6023
+ background: linear-gradient(135deg, var(--atomix-success-bg-subtle), rgba(var(--atomix-success-bg-subtle), 0.8));
6024
+ border-color: var(--atomix-success-border-subtle);
6304
6025
  }
6305
6026
  .c-footer--success .c-footer__newsletter::before {
6306
6027
  background: linear-gradient(90deg, transparent, var(--atomix-success), transparent);
@@ -6308,7 +6029,7 @@ a, a:hover {
6308
6029
  .c-footer--warning {
6309
6030
  --atomix-footer-bg: var(--atomix-warning-bg-subtle);
6310
6031
  --atomix-footer-border-color: var(--atomix-warning-border-subtle);
6311
- --atomix-footer-color: var(--atomix-warning-text);
6032
+ --atomix-footer-color: var(--atomix-warning-text-emphasis);
6312
6033
  }
6313
6034
  .c-footer--warning .c-footer__brand-name h3,
6314
6035
  .c-footer--warning .c-footer__section-title {
@@ -6316,10 +6037,10 @@ a, a:hover {
6316
6037
  }
6317
6038
  .c-footer--warning .c-footer__brand-description,
6318
6039
  .c-footer--warning .c-footer__copyright {
6319
- color: var(--atomix-warning-text-muted);
6040
+ color: var(--atomix-gray-6);
6320
6041
  }
6321
6042
  .c-footer--warning .c-footer__link {
6322
- color: var(--atomix-warning-text);
6043
+ color: var(--atomix-warning-text-emphasis);
6323
6044
  }
6324
6045
  .c-footer--warning .c-footer__link:hover, .c-footer--warning .c-footer__link:focus {
6325
6046
  color: var(--atomix-warning);
@@ -6328,8 +6049,8 @@ a, a:hover {
6328
6049
  background-color: var(--atomix-warning);
6329
6050
  }
6330
6051
  .c-footer--warning .c-footer__newsletter {
6331
- background: linear-gradient(135deg, var(--atomix-warning-bg), rgba(var(--atomix-warning-bg-rgb), 0.8));
6332
- border-color: var(--atomix-warning-border);
6052
+ background: linear-gradient(135deg, var(--atomix-warning-bg-subtle), rgba(var(--atomix-warning-bg-subtle), 0.8));
6053
+ border-color: var(--atomix-warning-border-subtle);
6333
6054
  }
6334
6055
  .c-footer--warning .c-footer__newsletter::before {
6335
6056
  background: linear-gradient(90deg, transparent, var(--atomix-warning), transparent);
@@ -6337,7 +6058,7 @@ a, a:hover {
6337
6058
  .c-footer--info {
6338
6059
  --atomix-footer-bg: var(--atomix-info-bg-subtle);
6339
6060
  --atomix-footer-border-color: var(--atomix-info-border-subtle);
6340
- --atomix-footer-color: var(--atomix-info-text);
6061
+ --atomix-footer-color: var(--atomix-info-text-emphasis);
6341
6062
  }
6342
6063
  .c-footer--info .c-footer__brand-name h3,
6343
6064
  .c-footer--info .c-footer__section-title {
@@ -6345,10 +6066,10 @@ a, a:hover {
6345
6066
  }
6346
6067
  .c-footer--info .c-footer__brand-description,
6347
6068
  .c-footer--info .c-footer__copyright {
6348
- color: var(--atomix-info-text-muted);
6069
+ color: var(--atomix-gray-6);
6349
6070
  }
6350
6071
  .c-footer--info .c-footer__link {
6351
- color: var(--atomix-info-text);
6072
+ color: var(--atomix-info-text-emphasis);
6352
6073
  }
6353
6074
  .c-footer--info .c-footer__link:hover, .c-footer--info .c-footer__link:focus {
6354
6075
  color: var(--atomix-info);
@@ -6357,8 +6078,8 @@ a, a:hover {
6357
6078
  background-color: var(--atomix-info);
6358
6079
  }
6359
6080
  .c-footer--info .c-footer__newsletter {
6360
- background: linear-gradient(135deg, var(--atomix-info-bg), rgba(var(--atomix-info-bg-rgb), 0.8));
6361
- border-color: var(--atomix-info-border);
6081
+ background: linear-gradient(135deg, var(--atomix-info-bg-subtle), rgba(var(--atomix-info-bg-subtle), 0.8));
6082
+ border-color: var(--atomix-info-border-subtle);
6362
6083
  }
6363
6084
  .c-footer--info .c-footer__newsletter::before {
6364
6085
  background: linear-gradient(90deg, transparent, var(--atomix-info), transparent);
@@ -6366,7 +6087,7 @@ a, a:hover {
6366
6087
  .c-footer--light {
6367
6088
  --atomix-footer-bg: var(--atomix-light-bg-subtle);
6368
6089
  --atomix-footer-border-color: var(--atomix-light-border-subtle);
6369
- --atomix-footer-color: var(--atomix-light-text);
6090
+ --atomix-footer-color: var(--atomix-light-text-emphasis);
6370
6091
  }
6371
6092
  .c-footer--light .c-footer__brand-name h3,
6372
6093
  .c-footer--light .c-footer__section-title {
@@ -6374,10 +6095,10 @@ a, a:hover {
6374
6095
  }
6375
6096
  .c-footer--light .c-footer__brand-description,
6376
6097
  .c-footer--light .c-footer__copyright {
6377
- color: var(--atomix-light-text-muted);
6098
+ color: var(--atomix-gray-6);
6378
6099
  }
6379
6100
  .c-footer--light .c-footer__link {
6380
- color: var(--atomix-light-text);
6101
+ color: var(--atomix-light-text-emphasis);
6381
6102
  }
6382
6103
  .c-footer--light .c-footer__link:hover, .c-footer--light .c-footer__link:focus {
6383
6104
  color: var(--atomix-light);
@@ -6386,8 +6107,8 @@ a, a:hover {
6386
6107
  background-color: var(--atomix-light);
6387
6108
  }
6388
6109
  .c-footer--light .c-footer__newsletter {
6389
- background: linear-gradient(135deg, var(--atomix-light-bg), rgba(var(--atomix-light-bg-rgb), 0.8));
6390
- border-color: var(--atomix-light-border);
6110
+ background: linear-gradient(135deg, var(--atomix-light-bg-subtle), rgba(var(--atomix-light-bg-subtle), 0.8));
6111
+ border-color: var(--atomix-light-border-subtle);
6391
6112
  }
6392
6113
  .c-footer--light .c-footer__newsletter::before {
6393
6114
  background: linear-gradient(90deg, transparent, var(--atomix-light), transparent);
@@ -6395,7 +6116,7 @@ a, a:hover {
6395
6116
  .c-footer--dark {
6396
6117
  --atomix-footer-bg: var(--atomix-dark-bg-subtle);
6397
6118
  --atomix-footer-border-color: var(--atomix-dark-border-subtle);
6398
- --atomix-footer-color: var(--atomix-dark-text);
6119
+ --atomix-footer-color: var(--atomix-dark-text-emphasis);
6399
6120
  }
6400
6121
  .c-footer--dark .c-footer__brand-name h3,
6401
6122
  .c-footer--dark .c-footer__section-title {
@@ -6403,10 +6124,10 @@ a, a:hover {
6403
6124
  }
6404
6125
  .c-footer--dark .c-footer__brand-description,
6405
6126
  .c-footer--dark .c-footer__copyright {
6406
- color: var(--atomix-dark-text-muted);
6127
+ color: var(--atomix-gray-6);
6407
6128
  }
6408
6129
  .c-footer--dark .c-footer__link {
6409
- color: var(--atomix-dark-text);
6130
+ color: var(--atomix-dark-text-emphasis);
6410
6131
  }
6411
6132
  .c-footer--dark .c-footer__link:hover, .c-footer--dark .c-footer__link:focus {
6412
6133
  color: var(--atomix-dark);
@@ -6415,8 +6136,8 @@ a, a:hover {
6415
6136
  background-color: var(--atomix-dark);
6416
6137
  }
6417
6138
  .c-footer--dark .c-footer__newsletter {
6418
- background: linear-gradient(135deg, var(--atomix-dark-bg), rgba(var(--atomix-dark-bg-rgb), 0.8));
6419
- border-color: var(--atomix-dark-border);
6139
+ background: linear-gradient(135deg, var(--atomix-dark-bg-subtle), rgba(var(--atomix-dark-bg-subtle), 0.8));
6140
+ border-color: var(--atomix-dark-border-subtle);
6420
6141
  }
6421
6142
  .c-footer--dark .c-footer__newsletter::before {
6422
6143
  background: linear-gradient(90deg, transparent, var(--atomix-dark), transparent);
@@ -6424,34 +6145,12 @@ a, a:hover {
6424
6145
  .c-footer--sticky {
6425
6146
  position: sticky;
6426
6147
  bottom: 0;
6427
- z-index: 10;
6148
+ z-index: 100;
6428
6149
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.1);
6429
6150
  -webkit-backdrop-filter: blur(10px);
6430
6151
  backdrop-filter: blur(10px);
6431
6152
  background-color: rgba(var(--atomix-footer-bg-rgb), 0.95);
6432
6153
  }
6433
- @media (prefers-color-scheme: dark) {
6434
- .c-footer {
6435
- --atomix-footer-bg: var(--atomix-surface-dark);
6436
- --atomix-footer-color: var(--atomix-text-dark);
6437
- --atomix-footer-border-color: var(--atomix-border-dark);
6438
- }
6439
- }
6440
- .dark-mode .c-footer {
6441
- --atomix-footer-bg: var(--atomix-surface-dark);
6442
- --atomix-footer-color: var(--atomix-text-dark);
6443
- --atomix-footer-border-color: var(--atomix-border-dark);
6444
- }
6445
- .dark-mode .c-footer .c-footer__newsletter {
6446
- background: linear-gradient(135deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02));
6447
- border-color: rgba(255, 255, 255, 0.1);
6448
- }
6449
- .dark-mode .c-footer .c-footer__social-link {
6450
- background-color: rgba(255, 255, 255, 0.1);
6451
- }
6452
- .dark-mode .c-footer .c-footer__social-link:hover {
6453
- background-color: rgba(255, 255, 255, 0.2);
6454
- }
6455
6154
  @media (prefers-reduced-motion: reduce) {
6456
6155
  .c-footer *,
6457
6156
  .c-footer *::before,
@@ -6708,7 +6407,7 @@ a, a:hover {
6708
6407
  transition-delay: 0s;
6709
6408
  }
6710
6409
  .c-input:focus, .c-input:hover {
6711
- --atomix-input-border-color: var(--atomix-secondary-border-subtle);
6410
+ --atomix-input-border-color: var(--atomix-primary-border-subtle);
6712
6411
  }
6713
6412
  .c-input ::-webkit-input-placeholder {
6714
6413
  color: var(--atomix-input-placeholder-color);
@@ -6776,10 +6475,10 @@ a, a:hover {
6776
6475
  .c-input--glass {
6777
6476
  background-color: color-mix(in srgb, var(--atomix-input-bg) 50%, transparent);
6778
6477
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.1) inset;
6478
+ border-color: color-mix(in srgb, var(--atomix-input-border-color) 50%, transparent);
6779
6479
  }
6780
6480
  .c-input--glass:focus, .c-input--glass:hover {
6781
- background-color: color-mix(in srgb, var(--atomix-input-bg) 50%, transparent);
6782
- 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);
6481
+ background-color: color-mix(in srgb, var(--atomix-input-bg) 90%, transparent);
6783
6482
  }
6784
6483
  .c-input--glass.c-input--textarea {
6785
6484
  resize: vertical;
@@ -6854,6 +6553,7 @@ a, a:hover {
6854
6553
  --atomix-list-item-dash-width: 0.75rem;
6855
6554
  --atomix-list-item-dash-height: 0.125rem;
6856
6555
  padding-left: var(--atomix-list-padding-left);
6556
+ list-style: none;
6857
6557
  }
6858
6558
  .c-list__item {
6859
6559
  color: var(--atomix-list-color);
@@ -7507,6 +7207,8 @@ a, a:hover {
7507
7207
  width: 100%;
7508
7208
  height: 100%;
7509
7209
  display: none;
7210
+ }
7211
+ .c-modal:not(.c-modal--glass) {
7510
7212
  z-index: 1040;
7511
7213
  }
7512
7214
  .c-modal__backdrop {
@@ -10415,6 +10117,9 @@ a, a:hover {
10415
10117
  --atomix-upload-disabled-opacity: 0.5;
10416
10118
  --atomix-upload-loader-control-icon-size: 1.25rem;
10417
10119
  --atomix-upload-loader-contorl-color: var(--atomix-body-color);
10120
+ --atomix-upload-helper-text-opacity: 0.7;
10121
+ --atomix-upload-text-opacity: 0.8;
10122
+ --atomix-upload-text-margin-bottom: 1rem;
10418
10123
  width: 100%;
10419
10124
  max-width: var(--atomix-upload-width);
10420
10125
  padding: var(--atomix-upload-padding-y) var(--atomix-upload-padding-x);
@@ -10435,24 +10140,47 @@ a, a:hover {
10435
10140
  padding: var(--atomix-upload-inner-padding-y) var(--atomix-upload-inner-padding-x);
10436
10141
  border-radius: var(--atomix-upload-border-radius);
10437
10142
  border: var(--atomix-upload-border-width) dashed var(--atomix-upload-border-color);
10143
+ cursor: pointer;
10144
+ transition: all 0.3s ease-in-out;
10145
+ }
10146
+ .c-upload__inner:hover {
10147
+ border-color: var(--atomix-primary-6);
10148
+ background-color: var(--atomix-primary-bg-subtle);
10149
+ transform: translateY(-2px);
10150
+ box-shadow: var(--atomix-box-shadow);
10438
10151
  }
10439
10152
  .c-upload__icon {
10440
10153
  font-size: var(--atomix-upload-icon-size);
10441
- padding: var(--atomix-upload-icon-padding);
10442
- background-color: var(--atomix-upload-icon-bg);
10443
- border-radius: 50rem;
10154
+ padding: 12;
10155
+ color: var(--atomix-primary-6);
10156
+ background-color: var(--atomix-primary-bg-subtle);
10157
+ border-radius: var(--atomix-border-radius-pill);
10158
+ margin-bottom: 12;
10159
+ transition: all 0.3s ease-in-out;
10160
+ }
10161
+ .c-upload__icon:hover {
10162
+ color: var(--atomix-primary-7);
10163
+ background-color: var(--atomix-primary-border-subtle);
10164
+ transform: scale(1.05);
10444
10165
  }
10445
10166
  .c-upload__title {
10446
10167
  color: var(--atomix-upload-title-color);
10447
10168
  font-size: var(--atomix-upload-title-font-size);
10448
10169
  font-weight: var(--atomix-upload-title-font-weight);
10449
10170
  margin-top: var(--atomix-upload-title-margin-top);
10171
+ margin-bottom: var(--atomix-upload-title-margin-bottom);
10172
+ text-align: center;
10173
+ line-height: 1.4;
10450
10174
  }
10451
10175
  .c-upload__text {
10452
10176
  color: var(--atomix-upload-text-color);
10453
10177
  font-size: var(--atomix-upload-text-font-size);
10454
10178
  font-weight: var(--atomix-upload-text-font-weight);
10455
10179
  margin-top: var(--atomix-upload-text-margin-top);
10180
+ margin-bottom: var(--atomix-upload-text-margin-bottom);
10181
+ text-align: center;
10182
+ line-height: 1.5;
10183
+ opacity: var(--atomix-upload-text-opacity);
10456
10184
  }
10457
10185
  .c-upload__btn {
10458
10186
  margin-top: var(--atomix-upload-btn-margin-top);
@@ -10462,6 +10190,9 @@ a, a:hover {
10462
10190
  font-size: var(--atomix-upload-helper-text-font-size);
10463
10191
  font-weight: var(--atomix-upload-helper-text-font-weight);
10464
10192
  margin-top: var(--atomix-upload-helper-text-margin-top);
10193
+ text-align: center;
10194
+ opacity: var(--atomix-upload-helper-text-opacity);
10195
+ line-height: 1.4;
10465
10196
  }
10466
10197
  .c-upload__row {
10467
10198
  width: 100%;
@@ -10480,6 +10211,7 @@ a, a:hover {
10480
10211
  .c-upload__loader {
10481
10212
  --upload-loader-percentage: 0;
10482
10213
  display: flex;
10214
+ align-items: center;
10483
10215
  justify-content: space-between;
10484
10216
  position: relative;
10485
10217
  width: 100%;
@@ -10488,6 +10220,8 @@ a, a:hover {
10488
10220
  border: var(--atomix-upload-loader-border-width) solid var(--atomix-upload-loader-border-color);
10489
10221
  border-radius: var(--atomix-upload-loader-border-radius);
10490
10222
  margin-top: var(--atomix-upload-loader-margin-top);
10223
+ background-color: var(--atomix-body-bg);
10224
+ box-shadow: var(--atomix-box-shadow-sm);
10491
10225
  overflow: hidden;
10492
10226
  }
10493
10227
  .c-upload__loader-title {
@@ -10512,6 +10246,20 @@ a, a:hover {
10512
10246
  .c-upload__loader-close {
10513
10247
  color: var(--atomix-upload-loader-contorl-color);
10514
10248
  font-size: var(--atomix-upload-loader-control-icon-size);
10249
+ background: none;
10250
+ border: none;
10251
+ cursor: pointer;
10252
+ padding: 4;
10253
+ border-radius: var(--atomix-border-radius-sm);
10254
+ transition: all 0.2s ease-in-out;
10255
+ }
10256
+ .c-upload__loader-close:hover {
10257
+ background-color: var(--atomix-danger-bg-subtle);
10258
+ color: var(--atomix-danger-text-emphasis);
10259
+ }
10260
+ .c-upload__loader-close:focus {
10261
+ outline: 2px solid var(--atomix-focus-border-color);
10262
+ outline-offset: 2px;
10515
10263
  }
10516
10264
  .c-upload__loader-bar {
10517
10265
  width: 22px;
@@ -10576,6 +10324,112 @@ a, a:hover {
10576
10324
  .c-upload--disabled .c-upload__btn {
10577
10325
  pointer-events: none;
10578
10326
  }
10327
+ .c-upload--disabled .c-upload__inner {
10328
+ cursor: not-allowed;
10329
+ }
10330
+ .c-upload--disabled .c-upload__inner:hover {
10331
+ transform: none;
10332
+ box-shadow: none;
10333
+ border-color: var(--atomix-upload-border-color);
10334
+ background-color: transparent;
10335
+ }
10336
+ .c-upload--dragging .c-upload__inner {
10337
+ border-color: var(--atomix-primary-6);
10338
+ background-color: var(--atomix-primary-bg-subtle);
10339
+ transform: scale(1.02);
10340
+ box-shadow: var(--atomix-box-shadow-lg);
10341
+ }
10342
+ .c-upload--dragging .c-upload__icon {
10343
+ color: var(--atomix-primary-7);
10344
+ background-color: var(--atomix-primary-border-subtle);
10345
+ transform: scale(1.1);
10346
+ }
10347
+ .c-upload--dragging .c-upload__title {
10348
+ color: var(--atomix-primary-6);
10349
+ }
10350
+ .c-upload--loading .c-upload__loader-bar circle:nth-child(2) {
10351
+ stroke: var(--atomix-primary-6);
10352
+ }
10353
+ .c-upload--success .c-upload__loader-bar circle:nth-child(2) {
10354
+ stroke: var(--atomix-success-6);
10355
+ }
10356
+ .c-upload--error .c-upload__loader-bar circle:nth-child(2) {
10357
+ stroke: var(--atomix-error-6);
10358
+ }
10359
+ .c-upload__input {
10360
+ position: absolute;
10361
+ width: 1px;
10362
+ height: 1px;
10363
+ padding: 0;
10364
+ margin: -1px;
10365
+ overflow: hidden;
10366
+ clip: rect(0, 0, 0, 0);
10367
+ white-space: nowrap;
10368
+ border: 0;
10369
+ }
10370
+ @media (max-width: 768px) {
10371
+ .c-upload {
10372
+ max-width: 100%;
10373
+ }
10374
+ .c-upload__inner {
10375
+ padding: 16 12;
10376
+ }
10377
+ .c-upload__icon {
10378
+ font-size: 28;
10379
+ padding: 8;
10380
+ margin-bottom: 8;
10381
+ }
10382
+ .c-upload__title {
10383
+ font-size: var(--atomix-font-size-md);
10384
+ }
10385
+ .c-upload__text {
10386
+ font-size: var(--atomix-font-size-xs);
10387
+ }
10388
+ .c-upload__loader {
10389
+ padding: 8 12;
10390
+ flex-direction: column;
10391
+ align-items: flex-start;
10392
+ gap: 8;
10393
+ }
10394
+ .c-upload__loader-control {
10395
+ align-self: flex-end;
10396
+ }
10397
+ }
10398
+ @media (prefers-reduced-motion: reduce) {
10399
+ .c-upload__inner {
10400
+ transition: none;
10401
+ }
10402
+ .c-upload__inner:hover {
10403
+ transform: none;
10404
+ }
10405
+ .c-upload__icon {
10406
+ transition: none;
10407
+ }
10408
+ .c-upload__icon:hover {
10409
+ transform: none;
10410
+ }
10411
+ .c-upload--dragging .c-upload__inner {
10412
+ transform: none;
10413
+ }
10414
+ .c-upload--dragging .c-upload__icon {
10415
+ transform: none;
10416
+ }
10417
+ }
10418
+ @media (prefers-contrast: high) {
10419
+ .c-upload__inner {
10420
+ border-width: 3px;
10421
+ }
10422
+ .c-upload--dragging .c-upload__inner {
10423
+ border-width: 4px;
10424
+ }
10425
+ .c-upload__loader {
10426
+ border-width: 2px;
10427
+ }
10428
+ }
10429
+ .c-upload__inner:focus-visible {
10430
+ outline: 2px solid var(--atomix-focus-border-color);
10431
+ outline-offset: 2px;
10432
+ }
10579
10433
  .c-video-player {
10580
10434
  --atomix--video-player-bg: #000;
10581
10435
  --atomix--video-player-border-radius: 8px;