@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
@@ -2121,60 +2121,183 @@ a, a:hover {
2121
2121
  margin-left: calc(var(--atomix-avatar-size) * -1 * var(--atomix-avatar-group-stacked-overlap) / 100);
2122
2122
  z-index: 1;
2123
2123
  }
2124
- .atomix-glass__layer, .atomix-glass__overlay, .atomix-glass__base, .atomix-glass__border-1, .atomix-glass__border-2 {
2125
- pointer-events: none;
2124
+ .c-atomix-glass {
2125
+ position: relative;
2126
+ --atomix-glass-radius: var(--atomix-radius-md, 16px);
2127
+ --atomix-glass-transform: none;
2128
+ --atomix-glass-transition: opacity var(--atomix-transition-duration, 0.2s) ease-out;
2129
+ --atomix-glass-position: absolute;
2130
+ --atomix-glass-container-width: 100%;
2131
+ --atomix-glass-container-height: 100%;
2132
+ --atomix-glass-border-width: var(--atomix-spacing-0-5, 0.09375rem);
2133
+ }
2134
+ .c-atomix-glass__hover-1, .c-atomix-glass__hover-2, .c-atomix-glass__hover-3, .c-atomix-glass__base, .c-atomix-glass__overlay {
2126
2135
  position: absolute;
2127
2136
  inset: 0;
2128
- border-radius: inherit;
2129
- transform: inherit;
2130
- transition: inherit;
2137
+ pointer-events: none;
2138
+ border-radius: var(--atomix-glass-radius);
2139
+ transform: var(--atomix-glass-transform);
2140
+ transition: var(--atomix-glass-transition);
2141
+ }
2142
+ .c-atomix-glass__hover-1, .c-atomix-glass__hover-2, .c-atomix-glass__hover-3 {
2143
+ mix-blend-mode: overlay;
2144
+ opacity: var(--atomix-glass-hover-1-opacity, 0);
2145
+ background: var(--atomix-glass-hover-1-gradient, none);
2146
+ }
2147
+ .c-atomix-glass__hover-1 {
2148
+ transition: opacity 0.2s ease-out;
2149
+ opacity: var(--atomix-glass-hover-1-opacity, 0);
2150
+ background: var(--atomix-glass-hover-1-gradient, none);
2151
+ }
2152
+ .c-atomix-glass__hover-2 {
2153
+ transition: opacity 0.4s ease-out;
2154
+ opacity: var(--atomix-glass-hover-2-opacity, 0);
2155
+ background: var(--atomix-glass-hover-2-gradient, none);
2156
+ }
2157
+ .c-atomix-glass__hover-3 {
2158
+ transition: opacity 0.6s ease-out;
2159
+ opacity: var(--atomix-glass-hover-3-opacity, 0);
2160
+ background: var(--atomix-glass-hover-3-gradient, none);
2161
+ }
2162
+ .c-atomix-glass__base {
2163
+ mix-blend-mode: soft-light;
2164
+ opacity: var(--atomix-glass-base-opacity, 0);
2165
+ background: var(--atomix-glass-base-gradient, none);
2166
+ }
2167
+ .c-atomix-glass__overlay {
2168
+ mix-blend-mode: overlay;
2169
+ opacity: var(--atomix-glass-overlay-opacity, 0);
2170
+ background: var(--atomix-glass-overlay-gradient, none);
2171
+ }
2172
+ .c-atomix-glass__overlay-highlight {
2173
+ position: absolute;
2174
+ inset: var(--atomix-spacing-0-5, 0.125rem);
2175
+ pointer-events: none;
2176
+ border-radius: var(--atomix-glass-radius);
2177
+ transform: var(--atomix-glass-transform);
2178
+ transition: var(--atomix-glass-transition);
2179
+ mix-blend-mode: screen;
2131
2180
  }
2132
- .atomix-glass__border-1, .atomix-glass__border-2 {
2181
+ .c-atomix-glass__border-1, .c-atomix-glass__border-2 {
2182
+ padding: var(--atomix-glass-border-width);
2133
2183
  box-sizing: border-box;
2134
- padding: 1.5px;
2135
- -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
2184
+ overflow: hidden;
2185
+ pointer-events: none;
2186
+ -webkit-mask: linear-gradient(var(--atomix-black, #000000) 0 0) content-box, linear-gradient(var(--atomix-black, #000000) 0 0);
2136
2187
  -webkit-mask-composite: xor;
2137
- mask-composite: exclude;
2138
- 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);
2139
- transition-property: transform;
2140
- }
2141
- .atomix-glass__border-1 {
2142
- z-index: 5;
2143
- opacity: 0.3;
2188
+ -webkit-mask: linear-gradient(var(--atomix-black, #000000) 0 0) content-box, linear-gradient(var(--atomix-black, #000000) 0 0);
2189
+ mask: linear-gradient(var(--atomix-black, #000000) 0 0) content-box, linear-gradient(var(--atomix-black, #000000) 0 0);
2190
+ -webkit-mask-composite: xor;
2191
+ mask-composite: exclude;
2192
+ position: var(--atomix-glass-position);
2193
+ top: var(--atomix-glass-top);
2194
+ left: var(--atomix-glass-left);
2195
+ width: var(--atomix-glass-width);
2196
+ height: var(--atomix-glass-height);
2197
+ border-radius: var(--atomix-glass-radius);
2198
+ transform: var(--atomix-glass-transform);
2199
+ transition: var(--atomix-glass-transition);
2200
+ }
2201
+ .c-atomix-glass__border-1 {
2202
+ opacity: var(--atomix-opacity-20, 0.2);
2144
2203
  mix-blend-mode: screen;
2204
+ z-index: var(--atomix-z-index-5, 5);
2205
+ background: var(--atomix-glass-border-gradient-1, none);
2206
+ 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));
2207
+ }
2208
+ .c-atomix-glass__border-2 {
2209
+ mix-blend-mode: overlay;
2210
+ z-index: var(--atomix-z-index-6, 6);
2211
+ background: var(--atomix-glass-border-gradient-2, none);
2212
+ 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));
2213
+ }
2214
+ .c-atomix-glass__container {
2215
+ width: var(--atomix-glass-container-width);
2216
+ height: var(--atomix-glass-container-height);
2217
+ position: relative;
2218
+ border-radius: var(--atomix-glass-radius);
2219
+ transition: border-radius 0.25s ease-out;
2145
2220
  }
2146
- .atomix-glass__border-2 {
2147
- z-index: 6;
2221
+ .c-atomix-glass__inner {
2222
+ width: var(--atomix-glass-container-width);
2223
+ height: var(--atomix-glass-container-height);
2224
+ position: relative;
2225
+ border-radius: var(--atomix-glass-radius);
2148
2226
  }
2149
- .atomix-glass__hover-1, .atomix-glass__hover-2, .atomix-glass__hover-3 {
2227
+ .c-atomix-glass__filter {
2150
2228
  position: absolute;
2151
- inset: 0;
2229
+ top: 0;
2230
+ left: 0;
2231
+ width: 100%;
2232
+ height: 100%;
2152
2233
  pointer-events: none;
2153
- border-radius: inherit;
2154
- transform: inherit;
2155
- transition: inherit;
2156
- transition-property: transform, opacity;
2157
2234
  }
2158
- .atomix-glass__hover-1 {
2159
- opacity: 0;
2235
+ .c-atomix-glass__filter-overlay {
2236
+ position: absolute;
2237
+ inset: 0;
2238
+ pointer-events: none;
2160
2239
  }
2161
- .atomix-glass__hover-2 {
2162
- overflow: hidden;
2163
- opacity: 0;
2240
+ .c-atomix-glass__filter-shadow {
2241
+ position: absolute;
2242
+ inset: var(--atomix-glass-border-width);
2243
+ pointer-events: none;
2164
2244
  }
2165
- .atomix-glass__hover-3 {
2166
- opacity: 0;
2245
+ .c-atomix-glass__content {
2246
+ position: relative;
2247
+ width: var(--atomix-glass-container-width);
2248
+ height: var(--atomix-glass-container-height);
2167
2249
  }
2168
- .atomix-glass__base {
2250
+ .c-atomix-glass__background-layer {
2251
+ position: absolute;
2252
+ pointer-events: none;
2253
+ border-radius: var(--atomix-glass-radius);
2254
+ transform: var(--atomix-glass-transform);
2255
+ transition: var(--atomix-glass-transition);
2169
2256
  will-change: transform;
2170
- transition-property: transform, opacity;
2171
- opacity: 0;
2172
2257
  }
2173
- .atomix-glass__overlay {
2258
+ .c-atomix-glass__background-layer--dark {
2259
+ background-color: var(--atomix-gray-9, #1f2937);
2260
+ }
2261
+ .c-atomix-glass__background-layer--black {
2262
+ background-color: var(--atomix-black, #000000);
2174
2263
  mix-blend-mode: overlay;
2175
- will-change: transform;
2176
- transition-property: transform, opacity;
2177
- opacity: 0;
2264
+ }
2265
+ .c-atomix-glass__background-layer--dark.c-atomix-glass__background-layer--over-light {
2266
+ opacity: var(--atomix-opacity-50, 0.5);
2267
+ }
2268
+ .c-atomix-glass__background-layer--black.c-atomix-glass__background-layer--over-light {
2269
+ opacity: var(--atomix-opacity-25, 0.25);
2270
+ }
2271
+ .c-atomix-glass__background-layer--hidden {
2272
+ opacity: var(--atomix-opacity-0, 0);
2273
+ }
2274
+ .c-atomix-glass--reduced-motion {
2275
+ --atomix-glass-transition: none;
2276
+ }
2277
+ .c-atomix-glass--reduced-motion * {
2278
+ transition: none !important;
2279
+ }
2280
+ .c-atomix-glass--high-contrast {
2281
+ border: var(--atomix-spacing-0-5, 2px) solid currentColor;
2282
+ outline: var(--atomix-spacing-0-5, 2px) solid transparent;
2283
+ outline-offset: var(--atomix-spacing-0-5, 2px);
2284
+ }
2285
+ .c-atomix-glass--disabled-effects {
2286
+ --atomix-glass-transform: none;
2287
+ --atomix-glass-transition: none;
2288
+ }
2289
+ @media (prefers-reduced-motion: reduce) {
2290
+ .c-atomix-glass {
2291
+ --atomix-glass-transition: none;
2292
+ }
2293
+ .c-atomix-glass * {
2294
+ transition: none !important;
2295
+ }
2296
+ }
2297
+ @media (prefers-contrast: high) {
2298
+ .c-atomix-glass {
2299
+ border-width: var(--atomix-spacing-0-5, 0.125rem);
2300
+ }
2178
2301
  }
2179
2302
  .c-badge {
2180
2303
  --atomix-tag-font-size: 0.75rem;
@@ -3192,19 +3315,8 @@ a, a:hover {
3192
3315
  padding-top: 0;
3193
3316
  }
3194
3317
  .c-card--glass {
3195
- background-color: transparent;
3196
- padding: 0;
3197
- border: none;
3198
- display: block;
3199
- border-radius: 0;
3200
- }
3201
- .c-card--glass .c-card__glass-content {
3202
- padding: var(--atomix-card-spacer-y) var(--atomix-card-spacer-x);
3203
- max-width: var(--atomix-card-width);
3204
- border-radius: var(--atomix-card-border-radius);
3205
- width: 100%;
3318
+ max-width: none;
3206
3319
  background-color: color-mix(in srgb, var(--atomix-card-bg) 50%, transparent);
3207
- background-blend-mode: overlay;
3208
3320
  }
3209
3321
  .is-elevated .c-card {
3210
3322
  box-shadow: var(--atomix-box-shadow-lg, 0 16px 48px rgba(0, 0, 0, 0.175));
@@ -3226,126 +3338,49 @@ a, a:hover {
3226
3338
  border: var(--atomix-chart-border-width) solid var(--atomix-chart-border-color);
3227
3339
  border-radius: var(--atomix-chart-border-radius);
3228
3340
  overflow: hidden;
3229
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06);
3341
+ 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);
3230
3342
  position: relative;
3231
3343
  min-height: var(--atomix-chart-min-height);
3232
3344
  width: 100%;
3233
3345
  max-width: 100%;
3234
- background-color: var(--atomix-chart-bg);
3235
- transition-property: all;
3236
- transition-duration: 0.2s;
3237
- transition-timing-function: ease-in-out;
3238
- transition-delay: 0s;
3346
+ background: var(--atomix-chart-bg);
3347
+ backdrop-filter: blur(10px);
3348
+ -webkit-backdrop-filter: blur(10px);
3239
3349
  }
3240
- .c-chart::after {
3350
+ .c-chart::before {
3241
3351
  content: "";
3242
3352
  position: absolute;
3243
3353
  inset: 0;
3244
- background: linear-gradient(135deg, rgba(var(--atomix-primary-rgb), 0.1) 0%, transparent 50%, rgba(var(--atomix-secondary-rgb), 0.05) 100%);
3354
+ 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%);
3245
3355
  pointer-events: none;
3246
3356
  z-index: 1;
3357
+ opacity: 1;
3358
+ transition: opacity 0.3s ease;
3247
3359
  }
3248
- .c-chart:hover {
3249
- box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
3250
- border-color: var(--atomix-primary-border-subtle);
3251
- }
3252
- .c-chart:focus-visible {
3253
- 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);
3254
- }
3255
- .c-chart--xs {
3256
- --atomix-chart-min-height: 7rem;
3257
- --atomix-chart-padding: 0.5rem;
3258
- font-size: 0.75rem;
3259
- }
3260
- .c-chart--sm {
3261
- --atomix-chart-min-height: 9rem;
3262
- --atomix-chart-padding: 0.75rem;
3263
- font-size: 0.875rem;
3264
- }
3265
- .c-chart--md {
3266
- --atomix-chart-min-height: ;
3267
- --atomix-chart-padding: 1rem;
3268
- font-size: 1rem;
3269
- }
3270
- .c-chart--lg {
3271
- --atomix-chart-min-height: ;
3272
- --atomix-chart-padding: 1.5rem;
3273
- font-size: 1.125rem;
3274
- }
3275
- .c-chart--xl {
3276
- --atomix-chart-min-height: ;
3277
- --atomix-chart-padding: 2rem;
3278
- font-size: 1.25rem;
3279
- }
3280
- .c-chart--2xl {
3281
- --atomix-chart-min-height: ;
3282
- --atomix-chart-padding: 2.5rem;
3283
- font-size: 1.25rem;
3284
- }
3285
- .c-chart--full {
3286
- height: 100vh;
3287
- min-height: auto;
3288
- border-radius: 0;
3289
- }
3290
- .c-chart--auto {
3291
- height: auto;
3292
- min-height: 8rem;
3293
- }
3294
- .c-chart--primary {
3295
- --atomix-chart-primary-color: var(--atomix-primary-6);
3296
- --atomix-chart-border-color: var(--atomix-primary-border-subtle);
3297
- }
3298
- .c-chart--primary:hover {
3299
- border-color: var(--atomix-primary-border-subtle);
3300
- }
3301
- .c-chart--secondary {
3302
- --atomix-chart-primary-color: var(--atomix-secondary-6);
3303
- --atomix-chart-border-color: var(--atomix-secondary-border-subtle);
3304
- }
3305
- .c-chart--secondary:hover {
3306
- border-color: var(--atomix-secondary-border-subtle);
3307
- }
3308
- .c-chart--success {
3309
- --atomix-chart-primary-color: var(--atomix-success-6);
3310
- --atomix-chart-border-color: var(--atomix-success-border-subtle);
3311
- }
3312
- .c-chart--success:hover {
3313
- border-color: var(--atomix-success-border-subtle);
3314
- }
3315
- .c-chart--info {
3316
- --atomix-chart-primary-color: var(--atomix-info-6);
3317
- --atomix-chart-border-color: var(--atomix-info-border-subtle);
3318
- }
3319
- .c-chart--info:hover {
3320
- border-color: var(--atomix-info-border-subtle);
3321
- }
3322
- .c-chart--warning {
3323
- --atomix-chart-primary-color: var(--atomix-warning-6);
3324
- --atomix-chart-border-color: var(--atomix-warning-border-subtle);
3325
- }
3326
- .c-chart--warning:hover {
3327
- border-color: var(--atomix-warning-border-subtle);
3328
- }
3329
- .c-chart--error {
3330
- --atomix-chart-primary-color: var(--atomix-error-6);
3331
- --atomix-chart-border-color: var(--atomix-error-border-subtle);
3332
- }
3333
- .c-chart--error:hover {
3334
- border-color: var(--atomix-error-border-subtle);
3335
- }
3336
- .c-chart--light {
3337
- --atomix-chart-primary-color: var(--atomix-light-6);
3338
- --atomix-chart-border-color: var(--atomix-light-border-subtle);
3339
- }
3340
- .c-chart--light:hover {
3341
- border-color: var(--atomix-light-border-subtle);
3360
+ .c-chart::after {
3361
+ content: "";
3362
+ position: absolute;
3363
+ inset: 0;
3364
+ border-radius: inherit;
3365
+ padding: 1px;
3366
+ background: linear-gradient(135deg, rgba(var(--atomix-primary-rgb), 0.1), rgba(var(--atomix-secondary-rgb), 0.05), transparent);
3367
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
3368
+ -webkit-mask-composite: xor;
3369
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
3370
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
3371
+ -webkit-mask-composite: xor;
3372
+ mask-composite: exclude;
3373
+ pointer-events: none;
3374
+ z-index: 2;
3375
+ opacity: 0;
3376
+ transition: opacity 0.3s ease;
3342
3377
  }
3343
- .c-chart--dark {
3344
- --atomix-chart-primary-color: var(--atomix-dark-6);
3345
- --atomix-chart-border-color: var(--atomix-dark-border-subtle);
3378
+ .c-chart:hover {
3379
+ 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);
3380
+ border-color: rgba(var(--atomix-primary-rgb), 0.2);
3346
3381
  }
3347
- .c-chart--dark:hover {
3348
- border-color: var(--atomix-dark-border-subtle);
3382
+ .c-chart:hover::after {
3383
+ opacity: 1;
3349
3384
  }
3350
3385
  .c-chart--loading .c-chart__content {
3351
3386
  position: relative;
@@ -3365,38 +3400,6 @@ a, a:hover {
3365
3400
  opacity: 0.3;
3366
3401
  filter: blur(1px);
3367
3402
  }
3368
- .c-chart--interactive {
3369
- cursor: pointer;
3370
- -webkit-user-select: none;
3371
- -moz-user-select: none;
3372
- user-select: none;
3373
- }
3374
- .c-chart--interactive:hover {
3375
- transform: translateY(-2px);
3376
- box-shadow: 0 16px 48px rgba(0, 0, 0, 0.15);
3377
- }
3378
- .c-chart--interactive:active {
3379
- transform: translateY(0);
3380
- box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
3381
- transition-duration: 0.1s;
3382
- }
3383
- .c-chart--interactive:focus-visible {
3384
- transform: translateY(-1px);
3385
- }
3386
- .c-chart--disabled {
3387
- pointer-events: none;
3388
- opacity: 0.6;
3389
- }
3390
- .c-chart--disabled .c-chart__content {
3391
- filter: grayscale(80%) opacity(0.6);
3392
- }
3393
- .c-chart--disabled .c-chart__canvas {
3394
- pointer-events: none;
3395
- }
3396
- .c-chart--disabled:hover {
3397
- transform: none;
3398
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06);
3399
- }
3400
3403
  .c-chart--fullscreen {
3401
3404
  position: fixed;
3402
3405
  top: 0;
@@ -3406,29 +3409,58 @@ a, a:hover {
3406
3409
  z-index: 9999;
3407
3410
  border-radius: 0;
3408
3411
  box-shadow: none;
3409
- background: var(--atomix-primary-bg-default);
3412
+ background: var(--atomix-body-bg);
3410
3413
  }
3411
3414
  .c-chart--elevated {
3412
- box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
3413
- transform: translateY(-2px);
3415
+ 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);
3414
3416
  }
3415
3417
  .c-chart--elevated:hover {
3416
- box-shadow: 0 16px 48px rgba(0, 0, 0, 0.15);
3417
- transform: translateY(-4px);
3418
+ 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);
3418
3419
  }
3419
- .c-chart--flat {
3420
+ .c-chart--glass {
3421
+ background: transparent;
3422
+ border: none;
3420
3423
  box-shadow: none;
3421
- border: 2px solid var(--atomix-primary-border-subtle);
3422
3424
  }
3423
- .c-chart--flat:hover {
3424
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06);
3425
+ .c-chart--glass .c-chart__content {
3426
+ position: relative;
3427
+ }
3428
+ .c-chart--glass .c-chart__canvas {
3429
+ position: relative;
3430
+ }
3431
+ .c-chart--glass .c-chart__toolbar {
3432
+ position: relative;
3433
+ }
3434
+ .c-chart--disabled {
3435
+ opacity: 0.6;
3436
+ cursor: not-allowed;
3437
+ pointer-events: none;
3438
+ pointer-events: none;
3439
+ opacity: 0.6;
3440
+ }
3441
+ .c-chart--disabled:hover, .c-chart--disabled:focus, .c-chart--disabled:active {
3442
+ background-color: inherit;
3443
+ color: inherit;
3425
3444
  transform: none;
3426
3445
  }
3427
- .c-chart--rounded {
3428
- border-radius: 1rem;
3446
+ .c-chart--selected {
3447
+ border-color: rgba(var(--atomix-primary-rgb), 0.3);
3448
+ 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);
3449
+ background: linear-gradient(135deg, rgba(var(--atomix-primary-rgb), 0.08) 0%, rgba(var(--atomix-primary-rgb), 0.04) 100%), var(--atomix-chart-bg);
3429
3450
  }
3430
- .c-chart--square {
3431
- border-radius: 0;
3451
+ .c-chart--active {
3452
+ border-color: var(--atomix-primary-border-subtle);
3453
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
3454
+ }
3455
+ .c-chart--clickable {
3456
+ cursor: pointer;
3457
+ }
3458
+ .c-chart--clickable:hover {
3459
+ 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);
3460
+ border-color: rgba(var(--atomix-primary-rgb), 0.25);
3461
+ }
3462
+ .c-chart--clickable:active {
3463
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.12);
3432
3464
  }
3433
3465
  .c-chart__header {
3434
3466
  padding: var(--atomix-chart-padding);
@@ -3506,7 +3538,6 @@ a, a:hover {
3506
3538
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3507
3539
  position: relative;
3508
3540
  overflow: hidden;
3509
- font-size: 0.875rem;
3510
3541
  }
3511
3542
  .c-chart__action::before {
3512
3543
  content: "";
@@ -3538,8 +3569,11 @@ a, a:hover {
3538
3569
  transform: scale(1.1);
3539
3570
  }
3540
3571
  .c-chart__action:focus-visible {
3541
- outline: 2px solid var(--atomix-primary-6);
3572
+ outline: 2px solid var(--atomix-focus-border-color);
3542
3573
  outline-offset: 2px;
3574
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
3575
+ }
3576
+ .c-chart__action:focus-visible {
3543
3577
  border-color: var(--atomix-primary-border-subtle);
3544
3578
  }
3545
3579
  .c-chart__action:active {
@@ -3565,45 +3599,6 @@ a, a:hover {
3565
3599
  background-color: transparent;
3566
3600
  border-color: transparent;
3567
3601
  }
3568
- .c-chart__action--primary {
3569
- background-color: var(--atomix-primary-6);
3570
- color: white;
3571
- border-color: var(--atomix-primary-6);
3572
- }
3573
- .c-chart__action--primary:hover {
3574
- background-color: var(--atomix-primary-7);
3575
- border-color: var(--atomix-primary-7);
3576
- }
3577
- .c-chart__action--primary:active {
3578
- background-color: var(--atomix-primary-8);
3579
- }
3580
- .c-chart__action--success {
3581
- background-color: var(--atomix-success-6);
3582
- color: white;
3583
- border-color: var(--atomix-success-6);
3584
- }
3585
- .c-chart__action--success:hover {
3586
- background-color: var(--atomix-success-7);
3587
- border-color: var(--atomix-success-7);
3588
- }
3589
- .c-chart__action--warning {
3590
- background-color: var(--atomix-warning-6);
3591
- color: white;
3592
- border-color: var(--atomix-warning-6);
3593
- }
3594
- .c-chart__action--warning:hover {
3595
- background-color: var(--atomix-warning-7);
3596
- border-color: var(--atomix-warning-7);
3597
- }
3598
- .c-chart__action--danger {
3599
- background-color: var(--atomix-error-6);
3600
- color: white;
3601
- border-color: var(--atomix-error-6);
3602
- }
3603
- .c-chart__action--danger:hover {
3604
- background-color: var(--atomix-error-7);
3605
- border-color: var(--atomix-error-7);
3606
- }
3607
3602
  .c-chart__export-group {
3608
3603
  position: relative;
3609
3604
  display: flex;
@@ -3625,7 +3620,7 @@ a, a:hover {
3625
3620
  border-radius: 0.5rem;
3626
3621
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
3627
3622
  padding: 0.25rem;
3628
- min-width: 7.5rem;
3623
+ min-width: 7rem;
3629
3624
  z-index: 1000;
3630
3625
  opacity: 0;
3631
3626
  visibility: hidden;
@@ -3655,8 +3650,8 @@ a, a:hover {
3655
3650
  color: var(--atomix-primary-text-emphasis);
3656
3651
  }
3657
3652
  .c-chart__export-option:focus-visible {
3658
- outline: 2px solid var(--atomix-primary-6);
3659
- outline-offset: -2px;
3653
+ outline: calc(var(--atomix-border-width) * 2) solid var(--atomix-primary-6);
3654
+ outline-offset: calc(var(--atomix-border-width) * -2);
3660
3655
  }
3661
3656
  .c-chart__export-option:disabled {
3662
3657
  opacity: 0.4;
@@ -3666,201 +3661,178 @@ a, a:hover {
3666
3661
  .c-chart__export-option:not(:last-child) {
3667
3662
  margin-bottom: 0.25rem;
3668
3663
  }
3669
- .c-chart__content {
3670
- flex: 1 1;
3671
- position: relative;
3672
- padding: var(--atomix-chart-padding);
3673
- display: flex;
3674
- align-items: center;
3675
- justify-content: center;
3676
- min-height: 8rem;
3677
- }
3678
- .c-chart__content::before {
3679
- content: "";
3664
+ .c-chart__settings-menu {
3680
3665
  position: absolute;
3681
- top: 0;
3682
- left: 0;
3666
+ top: 100%;
3683
3667
  right: 0;
3684
- bottom: 0;
3685
- background-image: radial-gradient(circle at 1px 1px, var(--atomix-primary-border-subtle) 1px, transparent 0);
3686
- background-size: 1.25rem 1.25rem;
3687
- opacity: 0.03;
3688
- pointer-events: none;
3689
- z-index: 0;
3668
+ margin-top: 0.25rem;
3669
+ background: var(--atomix-primary-bg-default);
3670
+ border: 1px solid var(--atomix-primary-border-subtle);
3671
+ border-radius: 0.5rem;
3672
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
3673
+ padding: 0.5rem;
3674
+ min-width: 8.75rem;
3675
+ z-index: 1000;
3676
+ opacity: 0;
3677
+ visibility: hidden;
3678
+ transform: translateY(-8px);
3679
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3680
+ -webkit-backdrop-filter: blur(8px);
3681
+ backdrop-filter: blur(8px);
3690
3682
  }
3691
- .c-chart__content::after {
3692
- content: "";
3693
- position: absolute;
3694
- inset: 0;
3695
- background: linear-gradient(135deg, rgba(255, 255, 255, 0.02) 0%, transparent 50%, rgba(0, 0, 0, 0.02) 100%);
3696
- pointer-events: none;
3697
- z-index: 1;
3683
+ .c-chart__settings-menu-title {
3684
+ font-size: 0.875rem;
3685
+ font-weight: 600;
3686
+ color: var(--atomix-text-primary);
3687
+ margin-bottom: 0.5rem;
3688
+ padding-bottom: 0.5rem;
3689
+ border-bottom: 1px solid var(--atomix-border-color);
3698
3690
  }
3699
- .c-chart__canvas {
3700
- width: 100%;
3701
- height: 100%;
3702
- position: relative;
3703
- overflow: hidden;
3704
- border-radius: 0.25rem;
3705
- z-index: 2;
3706
- }
3707
- .c-chart__canvas svg {
3708
- width: 100%;
3709
- height: 100%;
3710
- shape-rendering: geometricPrecision;
3711
- text-rendering: optimizeLegibility;
3712
- image-rendering: -webkit-optimize-contrast;
3713
- image-rendering: crisp-edges;
3714
- }
3715
- .c-chart__canvas canvas {
3716
- width: 100%;
3717
- height: 100%;
3718
- image-rendering: -webkit-optimize-contrast;
3719
- image-rendering: crisp-edges;
3691
+ .c-chart__settings-menu-content {
3692
+ display: flex;
3693
+ flex-direction: column;
3694
+ gap: 0.25rem;
3720
3695
  }
3721
- .c-chart__crosshair {
3722
- pointer-events: none;
3696
+ .c-chart__settings-menu-item {
3697
+ display: flex;
3698
+ align-items: center;
3699
+ justify-content: space-between;
3700
+ padding: 0.375rem 0;
3701
+ gap: 0.75rem;
3723
3702
  }
3724
- .c-chart__crosshair line, .c-chart__crosshair-line {
3725
- stroke: var(--atomix-primary-border-subtle);
3726
- stroke-width: 1;
3727
- stroke-dasharray: 4, 4;
3703
+ .c-chart__settings-menu-item--info {
3728
3704
  opacity: 0.7;
3705
+ font-size: 0.75rem;
3729
3706
  }
3730
- .c-chart__crosshair line--vertical, .c-chart__crosshair line--horizontal, .c-chart__crosshair-line--vertical, .c-chart__crosshair-line--horizontal {
3731
- opacity: 0.7;
3707
+ .c-chart__settings-menu-toggle {
3708
+ display: flex;
3709
+ align-items: center;
3710
+ gap: 0.5rem;
3711
+ cursor: pointer;
3712
+ width: 100%;
3713
+ -webkit-user-select: none;
3714
+ -moz-user-select: none;
3715
+ user-select: none;
3732
3716
  }
3733
- .c-chart__zoom-indicator {
3734
- position: absolute;
3735
- top: 10px;
3736
- right: 10px;
3737
- background: rgba(0, 0, 0, 0.8);
3738
- color: white;
3739
- padding: 4px 8px;
3740
- border-radius: 0.25rem;
3717
+ .c-chart__settings-menu-toggle input[type=checkbox] {
3718
+ width: 1rem;
3719
+ height: 1rem;
3720
+ cursor: pointer;
3721
+ accent-color: var(--atomix-primary);
3722
+ flex-shrink: 0;
3723
+ }
3724
+ .c-chart__settings-menu-label {
3741
3725
  font-size: 0.75rem;
3742
3726
  font-weight: 500;
3743
- pointer-events: none;
3744
- z-index: 10;
3745
- }
3746
- .c-chart__navigator {
3747
- opacity: 0.8;
3748
- }
3749
- .c-chart__navigator rect {
3750
- fill: rgba(0, 0, 0, 0.05);
3751
- stroke: var(--atomix-gray-3);
3752
- stroke-width: 1;
3727
+ color: var(--atomix-text-primary);
3728
+ flex: 1 1;
3753
3729
  }
3754
- .c-chart__navigator path {
3755
- stroke-width: 1;
3756
- fill: none;
3757
- opacity: 0.6;
3730
+ .c-chart__settings-menu-value {
3731
+ font-size: 0.75rem;
3732
+ font-weight: 600;
3733
+ color: var(--atomix-secondary-text-emphasis);
3734
+ text-transform: capitalize;
3758
3735
  }
3759
- .c-chart__real-time-indicator {
3760
- position: absolute;
3761
- top: 10px;
3762
- left: 10px;
3736
+ .c-chart__toolbar-group {
3763
3737
  display: flex;
3764
3738
  align-items: center;
3765
- gap: 6px;
3766
- background: var(--atomix-success-bg-subtle);
3767
- color: var(--atomix-success-text-emphasis);
3768
- padding: 4px 8px;
3769
- border-radius: 0.25rem;
3739
+ gap: 0.5rem;
3740
+ position: relative;
3741
+ }
3742
+ .c-chart__toolbar-group:hover .c-chart__export-dropdown,
3743
+ .c-chart__toolbar-group:hover .c-chart__settings-menu {
3744
+ opacity: 1;
3745
+ visibility: visible;
3746
+ transform: translateY(0);
3747
+ }
3748
+ .c-chart__toolbar-separator {
3749
+ width: 1px;
3750
+ height: 1.5rem;
3751
+ background: var(--atomix-border-color);
3752
+ margin: 0 0.5rem;
3753
+ }
3754
+ .c-chart__toolbar-label {
3770
3755
  font-size: 0.75rem;
3771
3756
  font-weight: 500;
3772
- border: 1px solid var(--atomix-success-border-subtle);
3773
- }
3774
- .c-chart__real-time-indicator::before {
3775
- content: "";
3776
- width: 6px;
3777
- height: 6px;
3778
- background: var(--atomix-success-6);
3779
- border-radius: 50%;
3780
- animation: chart-pulse-dot 2s ease-in-out infinite;
3757
+ color: var(--atomix-secondary-text-emphasis);
3758
+ text-transform: uppercase;
3759
+ letter-spacing: 0.5px;
3760
+ margin-right: 0.5rem;
3781
3761
  }
3782
- .c-chart__legend {
3783
- display: flex;
3784
- flex-wrap: wrap;
3785
- gap: 0.75rem;
3762
+ .c-chart__content {
3763
+ flex: 1 1;
3764
+ position: relative;
3786
3765
  padding: var(--atomix-chart-padding);
3787
- border-top: var(--atomix-chart-border-width) solid var(--atomix-brand-border-subtle);
3788
- z-index: 2;
3789
- }
3790
- .c-chart__legend-item {
3791
3766
  display: flex;
3792
3767
  align-items: center;
3793
- gap: 0.5rem;
3794
- cursor: pointer;
3795
- padding: 0.5rem 0.75rem;
3796
- border-radius: 0.5rem;
3797
- border: var(--atomix-chart-border-width) solid transparent;
3798
- background-color: transparent;
3799
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3800
- -webkit-user-select: none;
3801
- -moz-user-select: none;
3802
- user-select: none;
3803
- position: relative;
3768
+ justify-content: center;
3769
+ min-height: 8rem;
3770
+ z-index: 3;
3771
+ contain: layout;
3804
3772
  overflow: hidden;
3805
3773
  }
3806
- .c-chart__legend-item::before {
3774
+ .c-chart__content::before {
3807
3775
  content: "";
3808
3776
  position: absolute;
3809
- inset: 0;
3810
- background: var(--atomix-secondary-bg-subtle);
3811
- opacity: 0;
3812
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3813
- }
3814
- .c-chart__legend-item:hover {
3815
- background-color: var(--atomix-secondary-bg-subtle);
3816
- border-color: var(--atomix-primary-border-subtle);
3817
- transform: translateY(-1px);
3818
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06);
3819
- }
3820
- .c-chart__legend-item:hover::before {
3821
- opacity: 1;
3822
- }
3823
- .c-chart__legend-item:focus-visible:focus-visible {
3824
- outline: 2px solid var(--atomix-focus-border-color);
3825
- outline-offset: 2px;
3826
- box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
3827
- }
3828
- .c-chart__legend-item:active {
3829
- transform: translateY(0);
3830
- }
3831
- .c-chart__legend-item[data-visible=false] {
3777
+ top: 0;
3778
+ left: 0;
3779
+ right: 0;
3780
+ bottom: 0;
3781
+ background-image: radial-gradient(circle at 1px 1px, rgba(var(--atomix-primary-rgb), 0.08) 1px, transparent 0);
3782
+ background-size: 16px 16px;
3832
3783
  opacity: 0.4;
3833
- filter: grayscale(60%);
3834
- }
3835
- .c-chart__legend-item[data-visible=false] .c-chart__legend-label {
3836
- text-decoration: line-through;
3784
+ pointer-events: none;
3785
+ z-index: 0;
3837
3786
  }
3838
- .c-chart__legend-item[data-visible=false] .c-chart__legend-color {
3839
- opacity: 0.3;
3840
- filter: grayscale(100%);
3787
+ .c-chart__content::after {
3788
+ content: "";
3789
+ position: absolute;
3790
+ inset: 0;
3791
+ background: linear-gradient(180deg, rgba(var(--atomix-primary-rgb), 0.03) 0%, transparent 30%, transparent 70%, rgba(var(--atomix-secondary-rgb), 0.02) 100%);
3792
+ pointer-events: none;
3793
+ z-index: 1;
3841
3794
  }
3842
- .c-chart__legend-color {
3843
- width: 0.75rem;
3844
- height: 0.75rem;
3845
- border-radius: 0.25rem;
3846
- border: var(--atomix-chart-border-width) solid var(--atomix-primary-border-subtle);
3847
- flex-shrink: 0;
3848
- box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
3849
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3795
+ .c-chart__canvas {
3796
+ width: 100%;
3797
+ height: 100%;
3850
3798
  position: relative;
3799
+ overflow: hidden;
3800
+ border-radius: 0.25rem;
3801
+ z-index: 2;
3802
+ background: transparent;
3803
+ min-height: 200px;
3804
+ contain: layout style paint;
3851
3805
  }
3852
- .c-chart__legend-label {
3853
- color: var(--atomix-primary-text-emphasis);
3854
- font-weight: 500;
3855
- letter-spacing: -0.01em;
3856
- transition: color 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3857
- position: relative;
3858
- z-index: 1;
3806
+ .c-chart__canvas svg {
3807
+ display: block;
3808
+ shape-rendering: geometricPrecision;
3809
+ text-rendering: optimizeLegibility;
3810
+ image-rendering: -webkit-optimize-contrast;
3811
+ image-rendering: crisp-edges;
3812
+ will-change: contents;
3813
+ -webkit-backface-visibility: hidden;
3814
+ backface-visibility: hidden;
3815
+ transform: translateZ(0);
3816
+ opacity: 0;
3817
+ animation: chart-fade-in 0.3s ease-out forwards;
3818
+ }
3819
+ @keyframes chart-fade-in {
3820
+ from {
3821
+ opacity: 0;
3822
+ }
3823
+ to {
3824
+ opacity: 1;
3825
+ }
3826
+ }
3827
+ .c-chart__canvas canvas {
3828
+ width: 100%;
3829
+ height: 100%;
3830
+ display: block;
3831
+ image-rendering: -webkit-optimize-contrast;
3832
+ image-rendering: crisp-edges;
3859
3833
  }
3860
3834
  .c-chart__tooltip {
3861
3835
  position: fixed;
3862
- top: 0;
3863
- left: 0;
3864
3836
  -webkit-backdrop-filter: blur(1rem);
3865
3837
  backdrop-filter: blur(1rem);
3866
3838
  border-radius: 0.75rem;
@@ -3891,8 +3863,8 @@ a, a:hover {
3891
3863
  gap: 0.5rem;
3892
3864
  }
3893
3865
  .c-chart__tooltip-color-indicator {
3894
- width: 12px;
3895
- height: 12px;
3866
+ width: 0.75rem;
3867
+ height: 0.75rem;
3896
3868
  border-radius: 50%;
3897
3869
  flex-shrink: 0;
3898
3870
  }
@@ -3926,64 +3898,10 @@ a, a:hover {
3926
3898
  color: var(--atomix-primary-text-emphasis);
3927
3899
  font-weight: 500;
3928
3900
  }
3929
- .c-chart__axis {
3930
- position: relative;
3931
- z-index: 55;
3932
- }
3933
- .c-chart__axis--x {
3934
- text-anchor: middle;
3935
- dominant-baseline: hanging;
3936
- }
3937
- .c-chart__axis--y {
3938
- text-anchor: end;
3939
- dominant-baseline: middle;
3940
- }
3941
- .c-chart__axis-line {
3942
- stroke: var(--atomix-primary-border-subtle);
3943
- stroke-width: 1;
3944
- opacity: 0.6;
3945
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3946
- }
3947
- .c-chart__axis-line--x, .c-chart__axis-line--y {
3948
- stroke-width: 2;
3949
- }
3950
- .c-chart__axis-line:hover {
3951
- opacity: 0.8;
3952
- }
3953
- .c-chart__tick-line {
3954
- stroke: var(--atomix-primary-border-subtle);
3955
- stroke-width: 1;
3956
- }
3957
- .c-chart__tick-label {
3958
- font-size: 0.75rem;
3959
- fill: var(--atomix-secondary-text-emphasis);
3960
- }
3961
- .c-chart__axis-label {
3962
- font-size: 0.75rem;
3963
- font-weight: 500;
3964
- fill: var(--atomix-tertiary-text-emphasis);
3965
- text-anchor: middle;
3966
- }
3967
- .c-chart__plot-area {
3968
- fill: rgba(248, 250, 252, 0.5);
3969
- stroke: var(--atomix-primary-border-subtle);
3970
- stroke-width: 1;
3971
- }
3972
- .c-chart__value-label {
3973
- font-size: 0.75rem;
3974
- fill: var(--atomix-primary-text-emphasis);
3975
- pointer-events: none;
3976
- }
3977
- .c-chart__data-label {
3978
- font-size: 0.75rem;
3979
- fill: var(--atomix-secondary-text-emphasis);
3980
- pointer-events: none;
3981
- }
3982
3901
  .c-chart__grid {
3983
3902
  stroke: var(--atomix-primary-border-subtle);
3984
3903
  stroke-width: 0.5;
3985
3904
  stroke-dasharray: 2, 4;
3986
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3987
3905
  }
3988
3906
  .c-chart__grid--major {
3989
3907
  stroke-width: 1;
@@ -3998,80 +3916,54 @@ a, a:hover {
3998
3916
  stroke-dasharray: none;
3999
3917
  opacity: 0.6;
4000
3918
  }
4001
- .c-chart__grid:hover {
3919
+ .c-chart__axis-line {
3920
+ stroke: var(--atomix-border-color);
3921
+ stroke-width: 1;
4002
3922
  opacity: 0.6;
4003
3923
  }
3924
+ .c-chart__axis-label {
3925
+ font-size: 0.75rem;
3926
+ font-weight: 500;
3927
+ fill: var(--atomix-tertiary-text-emphasis);
3928
+ }
3929
+ .c-chart__legend-item-color {
3930
+ width: 0.75rem;
3931
+ height: 0.75rem;
3932
+ flex-shrink: 0;
3933
+ }
3934
+ .c-chart__legend-item-text {
3935
+ font-size: 0.75rem;
3936
+ fill: var(--atomix-text-primary);
3937
+ }
3938
+ .c-chart__data-line {
3939
+ stroke-width: 2.5;
3940
+ fill: none;
3941
+ }
3942
+ .c-chart__data-line--hovered {
3943
+ stroke-width: 3.5;
3944
+ }
4004
3945
  .c-chart__data-point {
4005
3946
  cursor: pointer;
4006
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
4007
- transform-origin: center center;
3947
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4008
3948
  }
4009
3949
  .c-chart__data-point:hover {
4010
3950
  opacity: 0.8;
4011
- filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
4012
3951
  }
4013
3952
  .c-chart__data-point:focus-visible {
4014
- outline: 2px solid var(--atomix-primary-border-subtle);
3953
+ outline: 2px solid var(--atomix-focus-border-color);
4015
3954
  outline-offset: 2px;
3955
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4016
3956
  }
4017
- .c-chart__data-point:active {
4018
- transform: scale(1.05);
4019
- }
4020
- .c-chart__data-point[data-highlighted=true] {
4021
- transform: scale(1.2);
4022
- filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3));
4023
- z-index: 10;
4024
- animation: chart-glow 2s ease-in-out infinite;
3957
+ .c-chart__data-point--hovered {
3958
+ opacity: 0.9;
3959
+ transform: scale(1.1);
4025
3960
  }
4026
- .c-chart__data-point[data-selected=true] {
4027
- stroke: var(--atomix-primary-border-subtle);
3961
+ .c-chart__data-point--selected {
3962
+ opacity: 1;
4028
3963
  stroke-width: 2;
4029
- filter: drop-shadow(0 0 0 2px var(--atomix-primary-border-subtle));
4030
- }
4031
- .c-chart__data-point[data-animated=true] {
4032
- animation: chart-scale-in 0.5s ease-out;
3964
+ filter: drop-shadow(0 0 4px currentColor);
4033
3965
  }
4034
- .c-chart__loading {
4035
- display: flex;
4036
- flex-direction: column;
4037
- align-items: center;
4038
- justify-content: center;
4039
- gap: 1rem;
4040
- color: var(--atomix-secondary-text-emphasis);
4041
- font-size: 0.875rem;
4042
- min-height: 8rem;
4043
- animation: chart-fade-in 0.6s ease-out;
4044
- }
4045
- .c-chart__loading-spinner {
4046
- width: 2rem;
4047
- height: 2rem;
4048
- border: 3px solid var(--atomix-primary-border-subtle);
4049
- border-top: 3px solid var(--atomix-primary-text-emphasis);
4050
- border-radius: 50%;
4051
- animation: chart-spin 1.2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
4052
- }
4053
- .c-chart__loading-text {
4054
- font-weight: 500;
4055
- opacity: 0.8;
4056
- animation: chart-pulse 2s ease-in-out infinite;
4057
- }
4058
- .c-chart__error {
4059
- display: flex;
4060
- flex-direction: column;
4061
- align-items: center;
4062
- justify-content: center;
4063
- gap: 0.75rem;
4064
- color: var(--atomix-error-text-emphasis);
4065
- font-size: 0.875rem;
4066
- text-align: center;
4067
- padding: 2rem;
4068
- min-height: 8rem;
4069
- background-color: var(--atomix-error-bg-subtle);
4070
- border-radius: 0.5rem;
4071
- border: var(--atomix-chart-border-width) solid var(--atomix-error-border-subtle);
4072
- animation: chart-fade-in 0.6s ease-out;
4073
- }
4074
- .c-chart__empty {
3966
+ .c-chart__empty {
4075
3967
  display: flex;
4076
3968
  flex-direction: column;
4077
3969
  align-items: center;
@@ -4085,924 +3977,701 @@ a, a:hover {
4085
3977
  opacity: 0.6;
4086
3978
  animation: chart-fade-in 0.6s ease-out;
4087
3979
  }
4088
- .c-chart--line .c-chart__canvas .line-path,
4089
- .c-chart--line .c-chart__canvas .c-chart__line-path {
4090
- fill: none;
4091
- stroke-width: 2.5;
4092
- stroke-linecap: round;
4093
- stroke-linejoin: round;
4094
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4095
- filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));
4096
- stroke-dasharray: 1000;
4097
- stroke-dashoffset: 1000;
4098
- animation: chart-draw-line 2s ease-out forwards;
4099
- }
4100
- .c-chart--line .c-chart__canvas .line-path:hover,
4101
- .c-chart--line .c-chart__canvas .c-chart__line-path:hover {
4102
- stroke-width: 3.5;
4103
- filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
4104
- }
4105
- .c-chart--line .c-chart__canvas .trend-line {
4106
- stroke-dasharray: 5, 5;
4107
- opacity: 0.7;
4108
- animation: chart-dash-flow 2s linear infinite;
4109
- }
4110
- .c-chart--line .c-chart__canvas .moving-average {
4111
- stroke-dasharray: 4, 4;
4112
- opacity: 0.6;
4113
- stroke-width: 1;
4114
- fill: none;
4115
- }
4116
- .c-chart--line .c-chart__canvas .area-path,
4117
- .c-chart--line .c-chart__canvas .c-chart__area-path {
4118
- opacity: 0.15;
4119
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4120
- animation: chart-area-fade 1.5s ease-out;
3980
+ .c-chart__toolbar--sm {
3981
+ gap: 0.25rem;
4121
3982
  }
4122
- .c-chart--line .c-chart__canvas .area-path:hover,
4123
- .c-chart--line .c-chart__canvas .c-chart__area-path:hover {
4124
- opacity: 0.25;
3983
+ .c-chart__toolbar--lg {
3984
+ padding: 0.5rem;
3985
+ gap: 0.75rem;
4125
3986
  }
4126
- .c-chart--line .c-chart__canvas .chart-point-label {
4127
- font-size: 0.75rem;
3987
+ .c-chart__legend-item--active {
3988
+ opacity: 1;
4128
3989
  font-weight: 600;
4129
- text-anchor: middle;
4130
- dominant-baseline: middle;
4131
- pointer-events: none;
4132
- opacity: 0;
4133
- transition: opacity 0.2s ease;
4134
3990
  }
4135
- .c-chart--line .c-chart__canvas .chart-point-label.visible {
4136
- opacity: 1;
3991
+ .c-chart__legend-item--inactive {
3992
+ opacity: 0.5;
4137
3993
  }
4138
- .c-chart--line .c-chart__canvas .data-point {
4139
- r: 4;
3994
+ .c-chart__treemap-node {
3995
+ stroke: var(--atomix-border-color);
3996
+ stroke-width: 1;
4140
3997
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4141
3998
  cursor: pointer;
3999
+ shape-rendering: geometricPrecision;
4000
+ }
4001
+ .c-chart__treemap-node:hover {
4002
+ transform: scale(1.02);
4003
+ filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1));
4004
+ stroke-width: 1.5;
4142
4005
  }
4143
- .c-chart--line .c-chart__canvas .data-point:hover {
4144
- r: 6;
4145
- filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
4006
+ .c-chart__treemap-node--hovered {
4007
+ transform: scale(1.02);
4008
+ filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1));
4009
+ stroke-width: 1.5;
4146
4010
  }
4147
- .c-chart--line .c-chart__canvas .data-point[data-highlighted=true] {
4148
- r: 8;
4149
- stroke-width: 3;
4011
+ .c-chart__treemap-node--selected {
4012
+ stroke: var(--atomix-primary-border-subtle);
4013
+ stroke-width: 2;
4014
+ filter: drop-shadow(0 8px 24px rgba(0, 0, 0, 0.12));
4150
4015
  }
4151
- .c-chart--line .c-chart__canvas .data-point:focus-visible {
4016
+ .c-chart__treemap-node:focus-visible {
4152
4017
  outline: 2px solid var(--atomix-focus-border-color);
4153
4018
  outline-offset: 2px;
4019
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4154
4020
  }
4155
- .c-chart--area .c-chart__canvas .area-path {
4156
- opacity: 0.3;
4157
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4158
- animation: chart-area-fade 1.5s ease-out;
4159
- }
4160
- .c-chart--area .c-chart__canvas .area-path:hover {
4161
- opacity: 0.45;
4162
- }
4163
- .c-chart--area .c-chart__canvas .line-path {
4164
- stroke-width: 2;
4165
- opacity: 0.9;
4166
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4167
- animation: chart-draw-line 2s ease-out;
4168
- }
4169
- .c-chart--area .c-chart__canvas .line-path:hover {
4170
- stroke-width: 3;
4171
- opacity: 1;
4021
+ .c-chart__treemap-label {
4022
+ font-size: 0.875rem;
4023
+ font-weight: 500;
4024
+ fill: var(--atomix-text-primary);
4025
+ text-anchor: middle;
4026
+ dominant-baseline: middle;
4027
+ pointer-events: none;
4028
+ -webkit-user-select: none;
4029
+ -moz-user-select: none;
4030
+ user-select: none;
4031
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
4172
4032
  }
4173
- .c-chart--bar .c-chart__canvas .bar,
4174
- .c-chart--bar .c-chart__canvas .c-chart__bar, .c-chart--horizontal-bar .c-chart__canvas .bar,
4175
- .c-chart--horizontal-bar .c-chart__canvas .c-chart__bar {
4033
+ .c-chart__funnel-segment {
4034
+ stroke: var(--atomix-border-color);
4035
+ stroke-width: 1;
4176
4036
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4177
4037
  cursor: pointer;
4178
- filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));
4179
- animation: chart-bar-grow 0.8s ease-out;
4180
- opacity: 1;
4038
+ shape-rendering: geometricPrecision;
4181
4039
  }
4182
- .c-chart--bar .c-chart__canvas .bar:hover, .c-chart--bar .c-chart__canvas .bar--hovered,
4183
- .c-chart--bar .c-chart__canvas .c-chart__bar:hover,
4184
- .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,
4185
- .c-chart--horizontal-bar .c-chart__canvas .c-chart__bar:hover,
4186
- .c-chart--horizontal-bar .c-chart__canvas .c-chart__bar--hovered {
4187
- opacity: 0.85;
4188
- filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2));
4040
+ .c-chart__funnel-segment:hover {
4041
+ opacity: 0.9;
4042
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.06));
4043
+ stroke-width: 1.5;
4189
4044
  }
4190
- .c-chart--bar .c-chart__canvas .bar:focus-visible,
4191
- .c-chart--bar .c-chart__canvas .c-chart__bar:focus-visible, .c-chart--horizontal-bar .c-chart__canvas .bar:focus-visible,
4192
- .c-chart--horizontal-bar .c-chart__canvas .c-chart__bar:focus-visible {
4193
- outline: 2px solid var(--atomix-primary-border-subtle);
4045
+ .c-chart__funnel-segment:focus-visible {
4046
+ outline: 2px solid var(--atomix-focus-border-color);
4194
4047
  outline-offset: 2px;
4048
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4195
4049
  }
4196
- .c-chart--bar .c-chart__canvas .bar[data-animated=true],
4197
- .c-chart--bar .c-chart__canvas .c-chart__bar[data-animated=true], .c-chart--horizontal-bar .c-chart__canvas .bar[data-animated=true],
4198
- .c-chart--horizontal-bar .c-chart__canvas .c-chart__bar[data-animated=true] {
4199
- animation: chart-bar-grow 0.8s ease-out;
4200
- }
4201
- .c-chart--bar .c-chart__canvas .bar-group .bar, .c-chart--horizontal-bar .c-chart__canvas .bar-group .bar {
4202
- animation-delay: calc(var(--bar-index) * 0.1s);
4203
- }
4204
- .c-chart--bar .c-chart__canvas .bar-value-label,
4205
- .c-chart--bar .c-chart__canvas .c-chart__bar-value-label, .c-chart--horizontal-bar .c-chart__canvas .bar-value-label,
4206
- .c-chart--horizontal-bar .c-chart__canvas .c-chart__bar-value-label {
4207
- font-size: 0.75rem;
4050
+ .c-chart__funnel-label {
4051
+ font-size: 0.875rem;
4208
4052
  font-weight: 500;
4209
- fill: var(--atomix-primary-text-emphasis);
4053
+ fill: var(--atomix-text-primary);
4210
4054
  text-anchor: middle;
4211
- opacity: 1;
4212
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4213
- font-feature-settings: "tnum";
4214
- font-variant-numeric: tabular-nums;
4055
+ dominant-baseline: middle;
4215
4056
  pointer-events: none;
4057
+ -webkit-user-select: none;
4058
+ -moz-user-select: none;
4059
+ user-select: none;
4060
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
4216
4061
  }
4217
- .c-chart--bar .c-chart__canvas .bar-value-label.visible,
4218
- .c-chart--bar .c-chart__canvas .c-chart__bar-value-label.visible, .c-chart--horizontal-bar .c-chart__canvas .bar-value-label.visible,
4219
- .c-chart--horizontal-bar .c-chart__canvas .c-chart__bar-value-label.visible {
4220
- opacity: 1;
4221
- }
4222
- .c-chart--bar .c-chart__canvas .bar-gradient stop, .c-chart--horizontal-bar .c-chart__canvas .bar-gradient stop {
4223
- transition: stop-opacity 0.3s ease;
4224
- }
4225
- .c-chart--bar .c-chart__canvas .bar {
4226
- transform-origin: bottom center;
4227
- animation: chart-bar-grow 0.8s ease-out;
4228
- }
4229
- .c-chart--bar .c-chart__canvas .bar:hover {
4230
- transform: scaleY(1.05);
4231
- }
4232
- .c-chart--horizontal-bar .c-chart__canvas .bar {
4233
- transform-origin: left center;
4234
- animation: chart-bar-grow-horizontal 0.8s ease-out;
4235
- }
4236
- .c-chart--horizontal-bar .c-chart__canvas .bar:hover {
4237
- transform: scaleX(1.05);
4238
- }
4239
- .c-chart--pie .c-chart__canvas .pie-slice,
4240
- .c-chart--pie .c-chart__canvas .donut-slice,
4241
- .c-chart--pie .c-chart__canvas .c-chart__pie-slice,
4242
- .c-chart--pie .c-chart__canvas .c-chart__donut-slice, .c-chart--donut .c-chart__canvas .pie-slice,
4243
- .c-chart--donut .c-chart__canvas .donut-slice,
4244
- .c-chart--donut .c-chart__canvas .c-chart__pie-slice,
4245
- .c-chart--donut .c-chart__canvas .c-chart__donut-slice, .c-chart--doughnut .c-chart__canvas .pie-slice,
4246
- .c-chart--doughnut .c-chart__canvas .donut-slice,
4247
- .c-chart--doughnut .c-chart__canvas .c-chart__pie-slice,
4248
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-slice {
4249
- transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
4250
- stroke: var(--atomix-primary-bg-subtle);
4251
- stroke-width: 2;
4252
- cursor: pointer;
4253
- transform-origin: center;
4254
- filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
4255
- opacity: 1;
4256
- animation: chart-pie-draw 1.5s ease-out;
4257
- }
4258
- .c-chart--pie .c-chart__canvas .pie-slice:hover, .c-chart--pie .c-chart__canvas .pie-slice--hovered,
4259
- .c-chart--pie .c-chart__canvas .donut-slice:hover,
4260
- .c-chart--pie .c-chart__canvas .donut-slice--hovered,
4261
- .c-chart--pie .c-chart__canvas .c-chart__pie-slice:hover,
4262
- .c-chart--pie .c-chart__canvas .c-chart__pie-slice--hovered,
4263
- .c-chart--pie .c-chart__canvas .c-chart__donut-slice:hover,
4264
- .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,
4265
- .c-chart--donut .c-chart__canvas .donut-slice:hover,
4266
- .c-chart--donut .c-chart__canvas .donut-slice--hovered,
4267
- .c-chart--donut .c-chart__canvas .c-chart__pie-slice:hover,
4268
- .c-chart--donut .c-chart__canvas .c-chart__pie-slice--hovered,
4269
- .c-chart--donut .c-chart__canvas .c-chart__donut-slice:hover,
4270
- .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,
4271
- .c-chart--doughnut .c-chart__canvas .donut-slice:hover,
4272
- .c-chart--doughnut .c-chart__canvas .donut-slice--hovered,
4273
- .c-chart--doughnut .c-chart__canvas .c-chart__pie-slice:hover,
4274
- .c-chart--doughnut .c-chart__canvas .c-chart__pie-slice--hovered,
4275
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-slice:hover,
4276
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-slice--hovered {
4277
- opacity: 0.8;
4278
- transform: scale(1.05);
4279
- stroke-width: 3;
4280
- filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.2));
4281
- }
4282
- .c-chart--pie .c-chart__canvas .pie-slice--selected,
4283
- .c-chart--pie .c-chart__canvas .donut-slice--selected,
4284
- .c-chart--pie .c-chart__canvas .c-chart__pie-slice--selected,
4285
- .c-chart--pie .c-chart__canvas .c-chart__donut-slice--selected, .c-chart--donut .c-chart__canvas .pie-slice--selected,
4286
- .c-chart--donut .c-chart__canvas .donut-slice--selected,
4287
- .c-chart--donut .c-chart__canvas .c-chart__pie-slice--selected,
4288
- .c-chart--donut .c-chart__canvas .c-chart__donut-slice--selected, .c-chart--doughnut .c-chart__canvas .pie-slice--selected,
4289
- .c-chart--doughnut .c-chart__canvas .donut-slice--selected,
4290
- .c-chart--doughnut .c-chart__canvas .c-chart__pie-slice--selected,
4291
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-slice--selected {
4292
- stroke: var(--atomix-primary-border-subtle);
4293
- stroke-width: 3;
4294
- }
4295
- .c-chart--pie .c-chart__canvas .pie-slice:focus-visible,
4296
- .c-chart--pie .c-chart__canvas .donut-slice:focus-visible,
4297
- .c-chart--pie .c-chart__canvas .c-chart__pie-slice:focus-visible,
4298
- .c-chart--pie .c-chart__canvas .c-chart__donut-slice:focus-visible, .c-chart--donut .c-chart__canvas .pie-slice:focus-visible,
4299
- .c-chart--donut .c-chart__canvas .donut-slice:focus-visible,
4300
- .c-chart--donut .c-chart__canvas .c-chart__pie-slice:focus-visible,
4301
- .c-chart--donut .c-chart__canvas .c-chart__donut-slice:focus-visible, .c-chart--doughnut .c-chart__canvas .pie-slice:focus-visible,
4302
- .c-chart--doughnut .c-chart__canvas .donut-slice:focus-visible,
4303
- .c-chart--doughnut .c-chart__canvas .c-chart__pie-slice:focus-visible,
4304
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-slice:focus-visible {
4305
- outline: 2px solid var(--atomix-primary-border-subtle);
4306
- outline-offset: 4px;
4307
- }
4308
- .c-chart--pie .c-chart__canvas .pie-label,
4309
- .c-chart--pie .c-chart__canvas .c-chart__pie-label,
4310
- .c-chart--pie .c-chart__canvas .c-chart__donut-label, .c-chart--donut .c-chart__canvas .pie-label,
4311
- .c-chart--donut .c-chart__canvas .c-chart__pie-label,
4312
- .c-chart--donut .c-chart__canvas .c-chart__donut-label, .c-chart--doughnut .c-chart__canvas .pie-label,
4313
- .c-chart--doughnut .c-chart__canvas .c-chart__pie-label,
4314
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-label {
4062
+ .c-chart__funnel-conversion {
4315
4063
  font-size: 0.75rem;
4316
4064
  font-weight: 600;
4317
- fill: var(--atomix-primary-text-emphasis);
4318
- text-anchor: middle;
4319
- pointer-events: none;
4320
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4321
- font-feature-settings: "tnum";
4322
- font-variant-numeric: tabular-nums;
4323
- }
4324
- .c-chart--donut .c-chart__canvas .donut-slice, .c-chart--doughnut .c-chart__canvas .donut-slice {
4325
- animation: chart-donut-draw 1.5s ease-out;
4326
- }
4327
- .c-chart--donut .c-chart__canvas .donut-center,
4328
- .c-chart--donut .c-chart__canvas .c-chart__donut-center, .c-chart--doughnut .c-chart__canvas .donut-center,
4329
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-center {
4330
- transition: fill 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4331
- }
4332
- .c-chart--donut .c-chart__canvas .c-chart__donut-center-bg, .c-chart--doughnut .c-chart__canvas .c-chart__donut-center-bg {
4333
- fill: var(--atomix-primary-bg-subtle);
4334
- }
4335
- .c-chart--donut .c-chart__canvas .donut-center-label,
4336
- .c-chart--donut .c-chart__canvas .c-chart__donut-center-label, .c-chart--doughnut .c-chart__canvas .donut-center-label,
4337
- .c-chart--doughnut .c-chart__canvas .c-chart__donut-center-label {
4338
- font-size: 0.875rem;
4339
- font-weight: 500;
4340
4065
  fill: var(--atomix-secondary-text-emphasis);
4341
4066
  text-anchor: middle;
4342
- dominant-baseline: central;
4343
- font-feature-settings: "tnum";
4344
- font-variant-numeric: tabular-nums;
4345
- }
4346
- .c-chart--donut .c-chart__canvas .c-chart__donut-center-value, .c-chart--doughnut .c-chart__canvas .c-chart__donut-center-value {
4347
- font-size: 1.5rem;
4348
- font-weight: 700;
4349
- fill: var(--atomix-primary-text-emphasis);
4350
- text-anchor: middle;
4351
- dominant-baseline: central;
4352
- font-feature-settings: "tnum";
4353
- font-variant-numeric: tabular-nums;
4067
+ dominant-baseline: middle;
4068
+ pointer-events: none;
4069
+ -webkit-user-select: none;
4070
+ -moz-user-select: none;
4071
+ user-select: none;
4072
+ opacity: 0.8;
4354
4073
  }
4355
- .c-chart--scatter .c-chart__canvas .scatter-point,
4356
- .c-chart--scatter .c-chart__canvas .c-chart__scatter-point {
4357
- stroke: var(--atomix-primary-border-subtle);
4074
+ .c-chart__heatmap-cell {
4075
+ stroke: var(--atomix-border-color);
4358
4076
  stroke-width: 1;
4077
+ rx: 0.25rem;
4078
+ ry: 0.25rem;
4359
4079
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4360
4080
  cursor: pointer;
4361
- filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));
4362
- animation: chart-fade-in 0.6s ease-out;
4081
+ shape-rendering: geometricPrecision;
4082
+ }
4083
+ .c-chart__heatmap-cell:hover {
4084
+ transform: scale(1.05);
4085
+ transform-origin: center;
4086
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.06));
4087
+ stroke-width: 2;
4088
+ z-index: 10;
4363
4089
  }
4364
- .c-chart--scatter .c-chart__canvas .scatter-point:hover,
4365
- .c-chart--scatter .c-chart__canvas .c-chart__scatter-point:hover {
4366
- filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.3));
4090
+ .c-chart__heatmap-cell--hovered {
4091
+ transform: scale(1.05);
4092
+ transform-origin: center;
4093
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.06));
4094
+ stroke-width: 2;
4095
+ z-index: 10;
4367
4096
  }
4368
- .c-chart--scatter .c-chart__canvas .scatter-point:focus-visible,
4369
- .c-chart--scatter .c-chart__canvas .c-chart__scatter-point:focus-visible {
4370
- outline: 2px solid var(--atomix-primary-border-subtle);
4097
+ .c-chart__heatmap-cell:focus-visible {
4098
+ outline: 2px solid var(--atomix-focus-border-color);
4371
4099
  outline-offset: 2px;
4100
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4372
4101
  }
4373
- .c-chart--scatter .c-chart__canvas .c-chart__scatter-label {
4102
+ .c-chart__heatmap-label {
4374
4103
  font-size: 0.75rem;
4375
- fill: var(--atomix-primary-text-emphasis);
4104
+ font-weight: 400;
4105
+ fill: var(--atomix-text-primary);
4106
+ text-anchor: middle;
4107
+ dominant-baseline: middle;
4376
4108
  pointer-events: none;
4109
+ -webkit-user-select: none;
4110
+ -moz-user-select: none;
4111
+ user-select: none;
4377
4112
  }
4378
- .c-chart--bubble .c-chart__canvas .c-chart__bubble {
4379
- stroke: var(--atomix-primary-bg-subtle);
4380
- stroke-width: 2;
4381
- cursor: pointer;
4382
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4383
- }
4384
- .c-chart--bubble .c-chart__canvas .c-chart__bubble--animated {
4385
- transition: all 1s ease-out;
4386
- }
4387
- .c-chart--bubble .c-chart__canvas .c-chart__bubble:hover {
4388
- filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3));
4389
- }
4390
- .c-chart--bubble .c-chart__canvas .c-chart__bubble-label {
4113
+ .c-chart__heatmap-axis-label {
4391
4114
  font-size: 0.75rem;
4392
4115
  font-weight: 500;
4393
- fill: var(--atomix-tertiary-text-emphasis);
4116
+ fill: var(--atomix-secondary-text-emphasis);
4117
+ text-anchor: middle;
4118
+ dominant-baseline: middle;
4394
4119
  pointer-events: none;
4120
+ -webkit-user-select: none;
4121
+ -moz-user-select: none;
4122
+ user-select: none;
4395
4123
  }
4396
- .c-chart--bubble .c-chart__canvas .c-chart__bubble-label--center {
4397
- fill: var(--atomix-invert-text-emphasis);
4398
- font-weight: 700;
4399
- text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
4400
- }
4401
- .c-chart--radar .c-chart__canvas .c-chart__radar-grid {
4402
- stroke: var(--atomix-primary-border-subtle);
4403
- stroke-width: 1;
4404
- opacity: 0.3;
4405
- }
4406
- .c-chart--radar .c-chart__canvas .c-chart__radar-axis {
4407
- stroke: var(--atomix-primary-border-subtle);
4408
- stroke-width: 1;
4409
- opacity: 0.5;
4124
+ .c-chart__heatmap-legend-title {
4125
+ font-size: 0.875rem;
4126
+ font-weight: 600;
4127
+ fill: var(--atomix-text-primary);
4128
+ text-anchor: start;
4129
+ dominant-baseline: baseline;
4130
+ pointer-events: none;
4131
+ -webkit-user-select: none;
4132
+ -moz-user-select: none;
4133
+ user-select: none;
4410
4134
  }
4411
- .c-chart--radar .c-chart__canvas .c-chart__radar-label {
4135
+ .c-chart__heatmap-legend-label {
4412
4136
  font-size: 0.75rem;
4137
+ font-weight: 400;
4413
4138
  fill: var(--atomix-secondary-text-emphasis);
4139
+ text-anchor: start;
4140
+ dominant-baseline: middle;
4141
+ pointer-events: none;
4142
+ -webkit-user-select: none;
4143
+ -moz-user-select: none;
4144
+ user-select: none;
4414
4145
  }
4415
- .c-chart--radar .c-chart__canvas .c-chart__radar-fill {
4416
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4417
- }
4418
- .c-chart--radar .c-chart__canvas .c-chart__radar-fill:hover {
4419
- opacity: 0.5 !important;
4146
+ .c-chart__candlestick-candle {
4147
+ stroke: var(--atomix-border-color);
4148
+ stroke-width: 1;
4149
+ rx: 0.25rem;
4150
+ ry: 0.25rem;
4151
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4152
+ cursor: pointer;
4153
+ shape-rendering: geometricPrecision;
4420
4154
  }
4421
- .c-chart--radar .c-chart__canvas .c-chart__radar-line {
4422
- fill: none;
4423
- transition: stroke-width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4155
+ .c-chart__candlestick-candle:hover {
4156
+ opacity: 0.9;
4157
+ stroke-width: 1.5;
4158
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.06));
4424
4159
  }
4425
- .c-chart--radar .c-chart__canvas .c-chart__radar-line:hover {
4426
- stroke-width: 3 !important;
4160
+ .c-chart__candlestick-candle:focus-visible {
4161
+ outline: 2px solid var(--atomix-focus-border-color);
4162
+ outline-offset: 2px;
4163
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4427
4164
  }
4428
- .c-chart--radar .c-chart__canvas .c-chart__radar-point {
4429
- stroke: var(--atomix-primary-bg-subtle);
4430
- stroke-width: 2;
4431
- cursor: pointer;
4165
+ .c-chart__candlestick-wick {
4166
+ stroke: var(--atomix-tertiary-text-emphasis);
4167
+ stroke-width: 1;
4168
+ opacity: 0.8;
4432
4169
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4170
+ shape-rendering: geometricPrecision;
4433
4171
  }
4434
- .c-chart--radar .c-chart__canvas .c-chart__radar-point:hover {
4435
- transform: scale(1.3);
4436
- filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
4172
+ .c-chart__candlestick-wick:hover {
4173
+ opacity: 1;
4174
+ stroke-width: 1.2;
4437
4175
  }
4438
- .c-chart--candlestick .c-chart__canvas .candlestick,
4439
- .c-chart--candlestick .c-chart__canvas .c-chart__candlestick {
4440
- stroke-width: 1;
4441
- cursor: pointer;
4176
+ .c-chart__candlestick-volume {
4442
4177
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4443
- animation: chart-fade-in 0.6s ease-out;
4178
+ cursor: pointer;
4179
+ shape-rendering: geometricPrecision;
4444
4180
  }
4445
- .c-chart--candlestick .c-chart__canvas .candlestick--bullish,
4446
- .c-chart--candlestick .c-chart__canvas .c-chart__candlestick--bullish {
4447
- opacity: 0.8;
4181
+ .c-chart__candlestick-volume:hover {
4182
+ opacity: 0.6;
4448
4183
  }
4449
- .c-chart--candlestick .c-chart__canvas .candlestick--bearish,
4450
- .c-chart--candlestick .c-chart__canvas .c-chart__candlestick--bearish {
4451
- opacity: 1;
4184
+ .c-chart__bar {
4185
+ rx: 0.25rem;
4186
+ ry: 0.25rem;
4187
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4188
+ cursor: pointer;
4189
+ shape-rendering: geometricPrecision;
4452
4190
  }
4453
- .c-chart--candlestick .c-chart__canvas .candlestick:hover,
4454
- .c-chart--candlestick .c-chart__canvas .c-chart__candlestick:hover {
4455
- opacity: 0.8;
4456
- filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
4191
+ .c-chart__bar:hover {
4192
+ opacity: 0.85;
4193
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.06));
4457
4194
  }
4458
- .c-chart--candlestick .c-chart__canvas .c-chart__candlestick-highlight {
4459
- stroke-width: 2;
4460
- opacity: 0.5;
4195
+ .c-chart__bar--hovered {
4196
+ opacity: 0.85;
4197
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.06));
4461
4198
  }
4462
- .c-chart--candlestick .c-chart__canvas .wick,
4463
- .c-chart--candlestick .c-chart__canvas .c-chart__wick {
4464
- stroke-width: 1;
4465
- opacity: 0.8;
4199
+ .c-chart__bar:focus-visible {
4200
+ outline: 2px solid var(--atomix-focus-border-color);
4201
+ outline-offset: 2px;
4202
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4466
4203
  }
4467
- .c-chart--candlestick .c-chart__canvas .wick--hovered,
4468
- .c-chart--candlestick .c-chart__canvas .c-chart__wick--hovered {
4469
- stroke-width: 2;
4204
+ .c-chart__bar-value-label {
4205
+ font-size: 0.75rem;
4206
+ font-weight: 500;
4207
+ fill: var(--atomix-text-primary);
4208
+ text-anchor: middle;
4209
+ pointer-events: none;
4210
+ -webkit-user-select: none;
4211
+ -moz-user-select: none;
4212
+ user-select: none;
4470
4213
  }
4471
- .c-chart--candlestick .c-chart__canvas .c-chart__moving-average {
4472
- stroke-width: 2;
4473
- opacity: 0.8;
4214
+ .c-chart__line-path {
4215
+ fill: none;
4216
+ stroke-linecap: round;
4217
+ stroke-linejoin: round;
4218
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4219
+ shape-rendering: geometricPrecision;
4474
4220
  }
4475
- .c-chart--candlestick .c-chart__canvas .volume-bar {
4476
- opacity: 0.3;
4477
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4221
+ .c-chart__area-path {
4222
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4223
+ shape-rendering: geometricPrecision;
4478
4224
  }
4479
- .c-chart--candlestick .c-chart__canvas .volume-bar:hover {
4480
- opacity: 0.6;
4225
+ .c-chart__area-fill {
4226
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4227
+ shape-rendering: geometricPrecision;
4481
4228
  }
4482
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-background {
4483
- fill: var(--atomix-secondary-bg-subtle);
4484
- stroke: var(--atomix-primary-border-subtle);
4485
- stroke-width: 1;
4229
+ .c-chart__area-point {
4230
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4231
+ cursor: pointer;
4232
+ shape-rendering: geometricPrecision;
4486
4233
  }
4487
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-zone {
4488
- stroke: var(--atomix-primary-bg-subtle);
4489
- stroke-width: 2;
4234
+ .c-chart__area-point:hover {
4235
+ transform: scale(1.2);
4490
4236
  }
4491
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-tick--major {
4492
- stroke: var(--atomix-secondary-text-emphasis);
4493
- stroke-width: 2;
4237
+ .c-chart__area-point--hovered {
4238
+ transform: scale(1.2);
4494
4239
  }
4495
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-tick--minor {
4496
- stroke: var(--atomix-tertiary-text-emphasis);
4497
- stroke-width: 1;
4240
+ .c-chart__area-point:focus-visible {
4241
+ outline: 2px solid var(--atomix-focus-border-color);
4242
+ outline-offset: 2px;
4243
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4498
4244
  }
4499
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-tick-label {
4245
+ .c-chart__point-label {
4500
4246
  font-size: 0.75rem;
4501
- fill: var(--atomix-secondary-text-emphasis);
4247
+ font-weight: 500;
4248
+ text-anchor: middle;
4249
+ pointer-events: none;
4250
+ -webkit-user-select: none;
4251
+ -moz-user-select: none;
4252
+ user-select: none;
4502
4253
  }
4503
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-min-max-label {
4504
- font-size: 0.875rem;
4505
- font-weight: 700;
4506
- fill: var(--atomix-secondary-text-emphasis);
4254
+ .c-chart__pie-slice {
4255
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
4256
+ cursor: pointer;
4257
+ shape-rendering: geometricPrecision;
4507
4258
  }
4508
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-needle .c-chart__gauge-needle-line {
4259
+ .c-chart__pie-slice:hover {
4509
4260
  stroke-width: 3;
4510
- stroke-linecap: round;
4261
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.06));
4511
4262
  }
4512
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-needle .c-chart__gauge-needle-center {
4513
- stroke: var(--atomix-primary-bg-subtle);
4514
- stroke-width: 2;
4263
+ .c-chart__pie-slice--hovered {
4264
+ stroke-width: 3;
4265
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.06));
4515
4266
  }
4516
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-value {
4517
- font-size: 2rem;
4518
- font-weight: 700;
4519
- fill: var(--atomix-primary-text-emphasis);
4267
+ .c-chart__pie-slice:focus-visible {
4268
+ outline: 2px solid var(--atomix-focus-border-color);
4269
+ outline-offset: 2px;
4270
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4520
4271
  }
4521
- .c-chart--gauge .c-chart__canvas .c-chart__gauge-label {
4522
- font-size: 0.875rem;
4523
- fill: var(--atomix-secondary-text-emphasis);
4272
+ .c-chart__pie-label {
4273
+ font-size: 0.75rem;
4274
+ font-weight: 500;
4275
+ fill: var(--atomix-text-primary);
4276
+ text-anchor: middle;
4277
+ dominant-baseline: middle;
4278
+ pointer-events: none;
4279
+ -webkit-user-select: none;
4280
+ -moz-user-select: none;
4281
+ user-select: none;
4282
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
4524
4283
  }
4525
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-segment {
4526
- stroke: var(--atomix-primary-bg-subtle);
4527
- stroke-width: 2;
4284
+ .c-chart__donut-slice {
4285
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
4528
4286
  cursor: pointer;
4529
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4287
+ shape-rendering: geometricPrecision;
4288
+ transform-origin: center;
4530
4289
  }
4531
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-segment--animated {
4532
- transition: all 1s ease-out;
4290
+ .c-chart__donut-slice:hover {
4291
+ transform: scale(1.02);
4292
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.06));
4533
4293
  }
4534
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-segment:hover {
4535
- opacity: 0.8;
4536
- filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2));
4294
+ .c-chart__donut-slice--hovered {
4295
+ transform: scale(1.02);
4296
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.06));
4537
4297
  }
4538
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-label {
4539
- font-size: 0.875rem;
4540
- font-weight: 700;
4298
+ .c-chart__donut-slice:focus-visible {
4299
+ outline: 2px solid var(--atomix-focus-border-color);
4300
+ outline-offset: 2px;
4301
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4302
+ }
4303
+ .c-chart__donut-label {
4304
+ font-size: 0.75rem;
4305
+ font-weight: 500;
4306
+ fill: var(--atomix-text-primary);
4307
+ text-anchor: middle;
4308
+ dominant-baseline: middle;
4541
4309
  pointer-events: none;
4310
+ -webkit-user-select: none;
4311
+ -moz-user-select: none;
4312
+ user-select: none;
4313
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
4542
4314
  }
4543
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-label--inside {
4544
- fill: var(--atomix-invert-text-emphasis);
4545
- text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
4315
+ .c-chart__donut-percentage {
4316
+ font-size: 0.75rem;
4317
+ font-weight: 600;
4318
+ fill: var(--atomix-secondary-text-emphasis);
4319
+ text-anchor: middle;
4320
+ dominant-baseline: middle;
4321
+ pointer-events: none;
4322
+ -webkit-user-select: none;
4323
+ -moz-user-select: none;
4324
+ user-select: none;
4546
4325
  }
4547
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-label--outside {
4548
- fill: var(--atomix-primary-text-emphasis);
4326
+ .c-chart__donut-center-label {
4327
+ font-size: 0.875rem;
4328
+ font-weight: 500;
4329
+ fill: var(--atomix-secondary-text-emphasis);
4330
+ text-anchor: middle;
4331
+ dominant-baseline: middle;
4332
+ pointer-events: none;
4333
+ -webkit-user-select: none;
4334
+ -moz-user-select: none;
4335
+ user-select: none;
4549
4336
  }
4550
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-value {
4551
- font-size: 0.75rem;
4337
+ .c-chart__donut-center-value {
4338
+ font-size: 1.25rem;
4339
+ font-weight: 700;
4340
+ fill: var(--atomix-text-primary);
4341
+ text-anchor: middle;
4342
+ dominant-baseline: middle;
4552
4343
  pointer-events: none;
4344
+ -webkit-user-select: none;
4345
+ -moz-user-select: none;
4346
+ user-select: none;
4553
4347
  }
4554
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-value--inside {
4555
- fill: var(--atomix-invert-text-emphasis);
4556
- text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
4348
+ .c-chart__scatter-point {
4349
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4350
+ cursor: pointer;
4351
+ shape-rendering: geometricPrecision;
4557
4352
  }
4558
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-value--outside {
4559
- fill: var(--atomix-secondary-text-emphasis);
4353
+ .c-chart__scatter-point:hover {
4354
+ transform: scale(1.2);
4355
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.06));
4560
4356
  }
4561
- .c-chart--funnel .c-chart__canvas .c-chart__funnel-conversion {
4562
- font-size: 0.75rem;
4563
- fill: var(--atomix-secondary-text-emphasis);
4564
- font-style: italic;
4357
+ .c-chart__scatter-point:focus-visible {
4358
+ outline: 2px solid var(--atomix-focus-border-color);
4359
+ outline-offset: 2px;
4360
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4565
4361
  }
4566
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-axis-label {
4362
+ .c-chart__scatter-label {
4567
4363
  font-size: 0.75rem;
4568
- fill: var(--atomix-gray-7);
4569
4364
  font-weight: 500;
4365
+ fill: var(--atomix-text-primary);
4366
+ text-anchor: middle;
4367
+ pointer-events: none;
4570
4368
  -webkit-user-select: none;
4571
4369
  -moz-user-select: none;
4572
4370
  user-select: none;
4573
4371
  }
4574
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-cell {
4372
+ .c-chart__bubble {
4373
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4575
4374
  cursor: pointer;
4576
- transition: all 0.2s ease;
4577
- shape-rendering: crispEdges;
4375
+ shape-rendering: geometricPrecision;
4578
4376
  }
4579
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-cell--empty {
4580
- fill: var(--atomix-gray-2);
4581
- stroke: var(--atomix-gray-3);
4582
- stroke-width: 0.5;
4583
- opacity: 0.6;
4377
+ .c-chart__bubble:hover {
4378
+ transform: scale(1.1);
4379
+ filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1));
4584
4380
  }
4585
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-cell--hovered {
4381
+ .c-chart__bubble--hovered {
4586
4382
  transform: scale(1.1);
4587
- filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
4588
- z-index: 10;
4383
+ filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1));
4589
4384
  }
4590
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-cell:focus-visible {
4591
- outline: 2px solid var(--atomix-primary-6);
4592
- outline-offset: 1px;
4385
+ .c-chart__bubble:focus-visible {
4386
+ outline: 2px solid var(--atomix-focus-border-color);
4387
+ outline-offset: 2px;
4388
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4593
4389
  }
4594
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-value {
4595
- font-size: 9px;
4390
+ .c-chart__bubble-label {
4391
+ font-size: 0.75rem;
4596
4392
  font-weight: 500;
4393
+ fill: var(--atomix-text-primary);
4394
+ text-anchor: middle;
4395
+ dominant-baseline: middle;
4597
4396
  pointer-events: none;
4598
4397
  -webkit-user-select: none;
4599
4398
  -moz-user-select: none;
4600
4399
  user-select: none;
4601
- font-feature-settings: "tnum";
4602
- font-variant-numeric: tabular-nums;
4603
- }
4604
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-value--light {
4605
- fill: white;
4606
4400
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
4607
4401
  }
4608
- .c-chart--heatmap .c-chart__canvas .c-chart__heatmap-value--dark {
4609
- fill: var(--atomix-gray-8);
4610
- }
4611
- .c-chart--heatmap .c-chart__canvas.c-chart--calendar .c-chart__heatmap-cell {
4612
- rx: 2;
4402
+ .c-chart__radar-grid-line {
4403
+ stroke: var(--atomix-border-color);
4404
+ stroke-width: 1;
4405
+ opacity: 0.3;
4406
+ shape-rendering: geometricPrecision;
4613
4407
  }
4614
- .c-chart--heatmap .c-chart__canvas.c-chart--grid .c-chart__heatmap-cell {
4615
- rx: 4;
4408
+ .c-chart__radar-axis-label {
4409
+ font-size: 0.75rem;
4410
+ font-weight: 500;
4411
+ fill: var(--atomix-secondary-text-emphasis);
4412
+ text-anchor: middle;
4413
+ dominant-baseline: middle;
4414
+ pointer-events: none;
4415
+ -webkit-user-select: none;
4416
+ -moz-user-select: none;
4417
+ user-select: none;
4616
4418
  }
4617
- .c-chart--treemap .c-chart__canvas .c-chart__treemap-node {
4618
- cursor: pointer;
4619
- stroke: var(--atomix-primary-bg-subtle);
4620
- stroke-width: 1;
4419
+ .c-chart__radar-area {
4621
4420
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4421
+ shape-rendering: geometricPrecision;
4622
4422
  }
4623
- .c-chart--treemap .c-chart__canvas .c-chart__treemap-node--animated {
4624
- transition: all 750ms ease-out;
4423
+ .c-chart__radar-line {
4424
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4425
+ shape-rendering: geometricPrecision;
4426
+ stroke-linecap: round;
4427
+ stroke-linejoin: round;
4625
4428
  }
4626
- .c-chart--treemap .c-chart__canvas .c-chart__treemap-node--hovered {
4627
- opacity: 0.8;
4429
+ .c-chart__radar-point {
4430
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4431
+ cursor: pointer;
4432
+ shape-rendering: geometricPrecision;
4628
4433
  }
4629
- .c-chart--treemap .c-chart__canvas .c-chart__treemap-node--selected {
4630
- stroke-width: 2;
4434
+ .c-chart__radar-point:hover {
4435
+ transform: scale(1.3);
4436
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.06));
4631
4437
  }
4632
- .c-chart--treemap .c-chart__canvas .c-chart__treemap-label {
4633
- font-size: 0.75rem;
4634
- font-weight: 700;
4635
- fill: var(--atomix-invert-text-emphasis);
4636
- pointer-events: none;
4438
+ .c-chart__radar-point--hovered {
4439
+ transform: scale(1.3);
4440
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.06));
4637
4441
  }
4638
- .c-chart--treemap .c-chart__canvas .c-chart__treemap-value {
4639
- font-size: 0.75rem;
4640
- fill: var(--atomix-invert-text-emphasis);
4641
- opacity: 0.8;
4642
- pointer-events: none;
4442
+ .c-chart__radar-point:focus-visible {
4443
+ outline: 2px solid var(--atomix-focus-border-color);
4444
+ outline-offset: 2px;
4445
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4643
4446
  }
4644
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-bar {
4645
- stroke: var(--atomix-primary-bg-subtle);
4646
- stroke-width: 2;
4647
- cursor: pointer;
4447
+ .c-chart__waterfall-bar {
4448
+ rx: 0.25rem;
4449
+ ry: 0.25rem;
4648
4450
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4451
+ cursor: pointer;
4452
+ shape-rendering: geometricPrecision;
4453
+ }
4454
+ .c-chart__waterfall-bar:hover {
4455
+ opacity: 0.85;
4456
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.06));
4649
4457
  }
4650
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-bar--animated {
4651
- transition: all 1s ease-out;
4458
+ .c-chart__waterfall-bar--animated {
4459
+ animation: chart-bar-appear 1s ease-out;
4460
+ transform-origin: bottom center;
4652
4461
  }
4653
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-bar:hover {
4654
- opacity: 0.8;
4655
- filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2));
4462
+ .c-chart__waterfall-bar:focus-visible {
4463
+ outline: 2px solid var(--atomix-focus-border-color);
4464
+ outline-offset: 2px;
4465
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4656
4466
  }
4657
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-value {
4467
+ .c-chart__waterfall-value {
4658
4468
  font-size: 0.75rem;
4659
- font-weight: 700;
4469
+ font-weight: 600;
4470
+ fill: var(--atomix-text-primary);
4471
+ text-anchor: middle;
4660
4472
  pointer-events: none;
4473
+ -webkit-user-select: none;
4474
+ -moz-user-select: none;
4475
+ user-select: none;
4661
4476
  }
4662
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-value--center {
4663
- fill: var(--atomix-invert-text-emphasis);
4664
- text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
4477
+ .c-chart__waterfall-value--center {
4478
+ dominant-baseline: middle;
4665
4479
  }
4666
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-value--outside {
4667
- fill: var(--atomix-primary-text-emphasis);
4480
+ .c-chart__waterfall-value--outside {
4481
+ dominant-baseline: auto;
4668
4482
  }
4669
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-connector {
4670
- stroke-width: 2;
4671
- opacity: 0.7;
4483
+ .c-chart__waterfall-connector {
4484
+ stroke: var(--atomix-border-color);
4485
+ stroke-width: 1;
4486
+ opacity: 0.6;
4487
+ shape-rendering: geometricPrecision;
4672
4488
  }
4673
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-cumulative-line {
4674
- stroke-width: 3;
4489
+ .c-chart__waterfall-cumulative-line {
4490
+ stroke-width: 2;
4675
4491
  stroke-linecap: round;
4676
4492
  stroke-linejoin: round;
4493
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4494
+ shape-rendering: geometricPrecision;
4677
4495
  }
4678
- .c-chart--waterfall .c-chart__canvas .c-chart__waterfall-cumulative-point {
4679
- stroke: var(--atomix-primary-bg-subtle);
4680
- stroke-width: 2;
4681
- }
4682
- @keyframes chart-spin {
4683
- 0% {
4684
- transform: rotate(0deg);
4685
- }
4686
- 100% {
4687
- transform: rotate(360deg);
4688
- }
4689
- }
4690
- @keyframes chart-shimmer {
4691
- 0% {
4692
- left: -100%;
4693
- }
4694
- 100% {
4695
- left: 100%;
4696
- }
4697
- }
4698
- @keyframes chart-pulse {
4699
- 0%, 100% {
4700
- opacity: 0.8;
4701
- }
4702
- 50% {
4703
- opacity: 1;
4704
- }
4705
- }
4706
- @keyframes chart-draw-line {
4707
- 0% {
4708
- stroke-dashoffset: 1000;
4709
- }
4710
- 100% {
4711
- stroke-dashoffset: 0;
4712
- }
4713
- }
4714
- @keyframes chart-area-fade {
4715
- 0% {
4716
- opacity: 0;
4717
- }
4718
- 100% {
4719
- opacity: 0.3;
4720
- }
4496
+ .c-chart__waterfall-cumulative-point {
4497
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4498
+ cursor: pointer;
4499
+ shape-rendering: geometricPrecision;
4721
4500
  }
4722
- @keyframes chart-bar-grow {
4723
- 0% {
4724
- transform: scaleY(0);
4725
- }
4726
- 100% {
4727
- transform: scaleY(1);
4728
- }
4501
+ .c-chart__waterfall-cumulative-point:hover {
4502
+ transform: scale(1.3);
4729
4503
  }
4730
- @keyframes chart-bar-grow-horizontal {
4731
- 0% {
4732
- transform: scaleX(0);
4733
- }
4734
- 100% {
4735
- transform: scaleX(1);
4736
- }
4504
+ .c-chart__waterfall-cumulative-point:focus-visible {
4505
+ outline: 2px solid var(--atomix-focus-border-color);
4506
+ outline-offset: 2px;
4507
+ box-shadow: 0 0 0 2px var(--atomix-focus-border-color);
4737
4508
  }
4738
- @keyframes chart-pie-draw {
4739
- 0% {
4740
- stroke-dasharray: 0 628;
4509
+ @media (prefers-contrast: high) {
4510
+ .c-chart {
4511
+ border-width: calc(var(--atomix-border-width) * 2);
4741
4512
  }
4742
- 100% {
4743
- stroke-dasharray: 628 628;
4513
+ .c-chart--selected {
4514
+ border-width: calc(var(--atomix-border-width) * 3);
4744
4515
  }
4745
- }
4746
- @keyframes chart-donut-draw {
4747
- 0% {
4748
- stroke-dasharray: 0 628;
4516
+ .c-chart__action {
4517
+ border-width: calc(var(--atomix-border-width) * 2);
4749
4518
  }
4750
- 100% {
4751
- stroke-dasharray: 628 628;
4519
+ .c-chart__action:focus-visible {
4520
+ outline-width: calc(var(--atomix-border-width) * 3);
4752
4521
  }
4753
- }
4754
- @keyframes chart-fade-in {
4755
- 0% {
4756
- opacity: 0;
4757
- transform: translateY(10px);
4522
+ .c-chart__data-point {
4523
+ stroke-width: 2;
4758
4524
  }
4759
- 100% {
4760
- opacity: 1;
4761
- transform: translateY(0);
4525
+ .c-chart__data-point--selected {
4526
+ stroke-width: 3;
4762
4527
  }
4763
- }
4764
- @keyframes chart-scale-in {
4765
- 0% {
4766
- opacity: 0;
4767
- transform: scale(0.3);
4528
+ .c-chart__grid {
4529
+ stroke-width: 1;
4530
+ opacity: 0.6;
4768
4531
  }
4769
- 60% {
4532
+ .c-chart__grid--major {
4533
+ stroke-width: 1.5;
4770
4534
  opacity: 0.8;
4771
- transform: scale(1.1);
4772
- }
4773
- 100% {
4774
- opacity: 1;
4775
- transform: scale(1);
4776
- }
4777
- }
4778
- @keyframes chart-slide-in {
4779
- 0% {
4780
- opacity: 0;
4781
- transform: translateX(-20px);
4782
4535
  }
4783
- 100% {
4536
+ .c-chart__grid--zero {
4537
+ stroke-width: 2;
4784
4538
  opacity: 1;
4785
- transform: translateX(0);
4786
- }
4787
- }
4788
- @keyframes chart-bubble-grow {
4789
- 0% {
4790
- transform: scale(0);
4791
4539
  }
4792
- 100% {
4793
- transform: scale(1);
4540
+ .c-chart__treemap-node {
4541
+ stroke-width: 2;
4794
4542
  }
4795
- }
4796
- @keyframes chart-dash-flow {
4797
- 0% {
4798
- stroke-dashoffset: 0;
4543
+ .c-chart__treemap-node--selected {
4544
+ stroke-width: 3;
4799
4545
  }
4800
- 100% {
4801
- stroke-dashoffset: 10;
4546
+ .c-chart__treemap-node:focus-visible {
4547
+ outline-width: calc(var(--atomix-border-width) * 3);
4802
4548
  }
4803
- }
4804
- @keyframes chart-glow {
4805
- 0%, 100% {
4806
- filter: drop-shadow(0 0 5px currentColor);
4549
+ .c-chart__funnel-segment {
4550
+ stroke-width: 2;
4807
4551
  }
4808
- 50% {
4809
- filter: drop-shadow(0 0 15px currentColor);
4552
+ .c-chart__funnel-segment:focus-visible {
4553
+ outline-width: calc(var(--atomix-border-width) * 3);
4810
4554
  }
4811
- }
4812
- @keyframes chart-pulse-dot {
4813
- 0%, 100% {
4814
- opacity: 1;
4815
- transform: scale(1);
4555
+ .c-chart__heatmap-cell {
4556
+ stroke-width: 2;
4816
4557
  }
4817
- 50% {
4818
- opacity: 0.5;
4819
- transform: scale(1.2);
4558
+ .c-chart__heatmap-cell--hovered {
4559
+ stroke-width: 3;
4820
4560
  }
4821
- }
4822
- @keyframes chart-zoom-in {
4823
- 0% {
4824
- transform: scale(0.8);
4825
- opacity: 0;
4561
+ .c-chart__heatmap-cell:focus-visible {
4562
+ outline-width: calc(var(--atomix-border-width) * 3);
4826
4563
  }
4827
- 100% {
4828
- transform: scale(1);
4829
- opacity: 1;
4564
+ .c-chart__candlestick-candle {
4565
+ stroke-width: 2;
4830
4566
  }
4831
- }
4832
- @keyframes chart-slide-up {
4833
- 0% {
4834
- transform: translateY(20px);
4835
- opacity: 0;
4567
+ .c-chart__candlestick-candle:focus-visible {
4568
+ outline-width: calc(var(--atomix-border-width) * 3);
4836
4569
  }
4837
- 100% {
4838
- transform: translateY(0);
4570
+ .c-chart__candlestick-wick {
4571
+ stroke-width: 2;
4839
4572
  opacity: 1;
4840
4573
  }
4841
4574
  }
4842
- @media (max-width: 768px) {
4575
+ @media (prefers-reduced-motion: reduce) {
4843
4576
  .c-chart {
4844
- --atomix-chart-min-height: 10rem;
4845
- border-radius: 0.5rem;
4577
+ transition: none;
4578
+ animation: none;
4846
4579
  }
4847
- .c-chart__header {
4848
- flex-direction: column;
4849
- align-items: flex-start;
4850
- gap: 0.5rem;
4580
+ .c-chart::before, .c-chart::after {
4581
+ animation: none;
4582
+ transition: none;
4851
4583
  }
4852
- .c-chart__toolbar {
4853
- width: 100%;
4854
- justify-content: flex-end;
4855
- padding: 0.5rem;
4856
- gap: 0.5rem;
4584
+ .c-chart--elevated {
4585
+ transform: none;
4857
4586
  }
4858
- }
4859
- @media (max-width: 768px) and (max-width: 480px) {
4860
- .c-chart__toolbar {
4861
- flex-wrap: wrap;
4862
- justify-content: center;
4587
+ .c-chart--elevated:hover {
4588
+ transform: none;
4863
4589
  }
4864
- }
4865
- @media (max-width: 768px) {
4866
- .c-chart__action {
4867
- width: 2.25rem;
4868
- height: 2.25rem;
4590
+ .c-chart--clickable {
4591
+ transition: none;
4869
4592
  }
4870
- .c-chart__action svg {
4871
- width: 1.125rem;
4872
- height: 1.125rem;
4593
+ .c-chart--clickable:hover {
4594
+ transform: none;
4873
4595
  }
4874
- .c-chart__export-dropdown {
4875
- position: fixed;
4876
- top: 50%;
4877
- left: 50%;
4878
- transform: translate(-50%, -50%);
4879
- margin-top: 0;
4880
- min-width: 12.5rem;
4881
- max-width: 90vw;
4882
- }
4883
- .c-chart__legend {
4884
- flex-direction: column;
4885
- gap: 0.5rem;
4596
+ .c-chart--clickable:active {
4597
+ transform: none;
4886
4598
  }
4887
- .c-chart__legend-item {
4888
- justify-content: space-between;
4889
- width: 100%;
4599
+ .c-chart__action {
4600
+ transition: none;
4890
4601
  }
4891
- .c-chart:hover {
4602
+ .c-chart__action:hover {
4892
4603
  transform: none;
4893
4604
  }
4894
- }
4895
- @media (max-width: 480px) {
4896
- .c-chart {
4897
- --atomix-chart-min-height: 9rem;
4898
- --atomix-chart-padding: 0.5rem;
4899
- border-radius: 0.25rem;
4605
+ .c-chart__action svg {
4606
+ transition: none;
4900
4607
  }
4901
- .c-chart__title {
4902
- font-size: 1.125rem;
4903
- margin-bottom: 0.25rem;
4608
+ .c-chart__action svg:hover {
4609
+ transform: none;
4904
4610
  }
4905
- .c-chart__subtitle {
4906
- font-size: 0.75rem;
4611
+ .c-chart__data-point {
4612
+ transition: none;
4907
4613
  }
4908
- .c-chart__toolbar {
4909
- padding: 0.25rem;
4910
- gap: 0.25rem;
4911
- border-radius: 0.25rem;
4614
+ .c-chart__data-point--hovered {
4615
+ transform: none;
4912
4616
  }
4913
- .c-chart__action {
4914
- width: 1.75rem;
4915
- height: 1.75rem;
4916
- font-size: 0.75rem;
4617
+ .c-chart__treemap-node {
4618
+ transition: none;
4917
4619
  }
4918
- .c-chart__action svg {
4919
- width: 0.875rem;
4920
- height: 0.875rem;
4620
+ .c-chart__treemap-node:hover {
4621
+ transform: none;
4921
4622
  }
4922
- .c-chart__export-option {
4923
- padding: 0.25rem 0.5rem;
4924
- font-size: 0.6875rem;
4623
+ .c-chart__treemap-node--hovered {
4624
+ transform: none;
4925
4625
  }
4926
- }
4927
- @media (prefers-reduced-motion: reduce) {
4928
- .c-chart {
4626
+ .c-chart__funnel-segment {
4929
4627
  transition: none;
4930
4628
  }
4931
- .c-chart:hover {
4629
+ .c-chart__funnel-segment:hover {
4932
4630
  transform: none;
4933
4631
  }
4934
- .c-chart * {
4935
- animation-duration: 0.01s !important;
4936
- transition-duration: 0.01s !important;
4937
- }
4938
- .c-chart__real-time-indicator::before {
4939
- animation: none;
4632
+ .c-chart__heatmap-cell {
4633
+ transition: none;
4940
4634
  }
4941
- }
4942
- .c-chart:focus-within .c-chart__data-point:focus {
4943
- outline: 2px solid var(--atomix-primary-6);
4944
- outline-offset: 2px;
4945
- z-index: 10;
4946
- }
4947
- .c-chart:focus-within__canvas svg {
4948
- outline: 2px solid var(--atomix-primary-border-subtle);
4949
- outline-offset: 2px;
4950
- }
4951
- @media (prefers-contrast: high) {
4952
- .c-chart {
4953
- border-width: 2px;
4954
- background-color: white;
4955
- color: black;
4956
- -webkit-backdrop-filter: none;
4957
- backdrop-filter: none;
4635
+ .c-chart__heatmap-cell:hover {
4636
+ transform: none;
4958
4637
  }
4959
- .c-chart__grid {
4960
- stroke-width: 2;
4961
- opacity: 0.8;
4962
- stroke: black;
4638
+ .c-chart__heatmap-cell--hovered {
4639
+ transform: none;
4963
4640
  }
4964
- .c-chart__title {
4965
- color: black;
4641
+ .c-chart__candlestick-candle {
4642
+ transition: none;
4966
4643
  }
4967
- .c-chart__data-point {
4968
- stroke: black;
4969
- stroke-width: 2;
4644
+ .c-chart__candlestick-candle:hover {
4645
+ transform: none;
4970
4646
  }
4971
- .c-chart__crosshair line {
4972
- stroke: black;
4973
- opacity: 1;
4647
+ .c-chart__candlestick-wick {
4648
+ transition: none;
4974
4649
  }
4975
- .c-chart__zoom-indicator {
4976
- background: black;
4977
- color: white;
4978
- border: 2px solid white;
4650
+ .c-chart__candlestick-volume {
4651
+ transition: none;
4979
4652
  }
4980
- .c-chart .line-path {
4981
- stroke-width: 3 !important;
4653
+ .c-chart__empty {
4654
+ animation: none;
4982
4655
  }
4983
- .c-chart .bar {
4984
- stroke: black;
4985
- stroke-width: 2;
4656
+ .c-chart--loading .c-chart__content::after {
4657
+ animation: none;
4986
4658
  }
4987
- }
4988
- @media print {
4989
- .c-chart {
4990
- page-break-inside: avoid;
4991
- -moz-column-break-inside: avoid;
4992
- break-inside: avoid;
4993
- box-shadow: none;
4994
- border: 2px solid black;
4995
- background: white;
4659
+ .c-chart__waterfall-bar--animated {
4660
+ animation: none;
4996
4661
  }
4997
- .c-chart__toolbar {
4998
- display: none;
4662
+ .c-chart__canvas svg {
4663
+ animation: none;
4664
+ opacity: 1;
4999
4665
  }
5000
- .c-chart__crosshair, .c-chart__zoom-indicator, .c-chart__real-time-indicator {
5001
- display: none;
4666
+ }
4667
+ @keyframes chart-bar-appear {
4668
+ 0% {
4669
+ opacity: 0;
4670
+ transform: scaleY(0);
5002
4671
  }
5003
- .c-chart * {
5004
- animation: none !important;
5005
- transition: none !important;
4672
+ 100% {
4673
+ opacity: 1;
4674
+ transform: scaleY(1);
5006
4675
  }
5007
4676
  }
5008
4677
  .c-checkbox-group {
@@ -5382,20 +5051,27 @@ a, a:hover {
5382
5051
  display: flex;
5383
5052
  opacity: 0;
5384
5053
  visibility: hidden;
5385
- transform-origin: top center;
5386
5054
  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);
5387
- transform: translateY(-15px) scale(0.95);
5388
5055
  pointer-events: none;
5056
+ }
5057
+ .c-dropdown__menu-wrapper:not(.is-glass) {
5389
5058
  will-change: transform, opacity, visibility;
5059
+ transform: translateY(-15px) scale(0.95);
5060
+ transform-origin: top center;
5061
+ }
5062
+ .c-dropdown__menu-wrapper.is-open:not(.is-glass) {
5063
+ opacity: 1;
5064
+ transform: translateY(0) scale(1);
5065
+ visibility: visible;
5066
+ animation: atomix-dropdown-fade-in var(--atomix-dropdown-animation-duration) var(--atomix-dropdown-animation-timing) forwards;
5067
+ pointer-events: auto;
5390
5068
  }
5391
- .c-dropdown__menu-wrapper.is-open {
5069
+ .c-dropdown__menu-wrapper.is-open.is-glass {
5392
5070
  opacity: 1;
5393
- transform: translateY(0) scale(1);
5394
5071
  visibility: visible;
5395
- animation: atomix-dropdown-fade-in var(--atomix-dropdown-animation-duration) var(--atomix-dropdown-animation-timing) forwards;
5396
5072
  pointer-events: auto;
5397
5073
  }
5398
- .c-dropdown__menu-wrapper:not(.is-open) {
5074
+ .c-dropdown__menu-wrapper:not(.is-open):not(.is-glass) {
5399
5075
  animation: atomix-dropdown-fade-out var(--atomix-dropdown-animation-duration) var(--atomix-dropdown-animation-timing) forwards;
5400
5076
  }
5401
5077
  .c-dropdown__menu-wrapper--bottom-start {
@@ -5916,22 +5592,41 @@ a, a:hover {
5916
5592
  --atomix-footer-padding-x: 1rem;
5917
5593
  --atomix-footer-padding-y: 3rem;
5918
5594
  --atomix-footer-container-max-width: 1200px;
5919
- --atomix-footer-bg: var(--atomix-surface);
5920
- --atomix-footer-color: var(--atomix-text);
5595
+ --atomix-footer-bg: var(--atomix-primary-bg);
5596
+ --atomix-footer-color: var(--atomix-primary-text-emphasis);
5921
5597
  --atomix-footer-border-width: 1px;
5922
- --atomix-footer-border-color: var(--atomix-border);
5598
+ --atomix-footer-border-color: var(--atomix-primary-border-subtle);
5923
5599
  --atomix-footer-brand-margin-bottom: 1.5rem;
5924
5600
  --atomix-footer-section-margin-bottom: 2rem;
5925
5601
  --atomix-footer-social-gap: 0.75rem;
5926
5602
  --atomix-footer-newsletter-padding: 1.5rem;
5927
5603
  --atomix-footer-bottom-padding-top: 1.5rem;
5928
5604
  --atomix-footer-bottom-margin-top: 2rem;
5605
+ --atomix-footer-brand-logo-margin-bottom: 1rem;
5606
+ --atomix-footer-brand-logo-hover-opacity: 0.8;
5607
+ --atomix-footer-section-header-gap: 0.5rem;
5608
+ --atomix-footer-section-toggle-padding: 0.75rem 0;
5609
+ --atomix-footer-bg-rgb: var(--atomix-primary-bg);
5610
+ --atomix-disabled-opacity: 0.6;
5929
5611
  background-color: var(--atomix-footer-bg);
5930
5612
  color: var(--atomix-footer-color);
5931
5613
  border-top: var(--atomix-footer-border-width) solid var(--atomix-footer-border-color);
5932
5614
  padding: var(--atomix-footer-padding-y) 0;
5933
5615
  position: relative;
5934
5616
  }
5617
+ .c-footer--glass {
5618
+ padding: 0;
5619
+ margin: 0;
5620
+ border-radius: 0;
5621
+ box-shadow: none;
5622
+ background: transparent;
5623
+ }
5624
+ .c-footer--glass .c-footer__glass {
5625
+ background-color: rgba(var(--atomix-footer-bg-rgb), 0.5, true);
5626
+ color: var(--atomix-footer-color);
5627
+ border-top: var(--atomix-footer-border-width) solid var(--atomix-footer-border-color);
5628
+ padding: var(--atomix-footer-padding-y) 0;
5629
+ }
5935
5630
  .c-footer__container {
5936
5631
  display: flex;
5937
5632
  flex-direction: column;
@@ -5941,28 +5636,42 @@ a, a:hover {
5941
5636
  padding: 0 var(--atomix-footer-padding-x);
5942
5637
  }
5943
5638
  .c-footer__sections {
5944
- display: grid;
5945
- grid-gap: var(--atomix-footer-section-margin-bottom);
5946
- gap: var(--atomix-footer-section-margin-bottom);
5947
5639
  margin-bottom: var(--atomix-footer-bottom-margin-top);
5948
- grid-template-columns: 1fr;
5640
+ width: 100%;
5641
+ max-width: var(--atomix-footer-container-max-width);
5642
+ margin-left: auto;
5643
+ margin-right: auto;
5949
5644
  }
5950
- @media (min-width: 768px) {
5951
- .c-footer__sections {
5952
- grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
5953
- gap: clamp(2rem, 4vw, 3rem);
5954
- }
5645
+ .c-footer__sections--centered {
5646
+ justify-content: center;
5647
+ align-items: center;
5648
+ }
5649
+ .c-footer__sections--stacked {
5650
+ display: flex;
5651
+ flex-direction: column;
5652
+ align-items: center;
5653
+ text-align: center;
5654
+ gap: clamp(1.5rem, 4vw, 2.5rem);
5655
+ max-width: 600px;
5656
+ margin-left: auto;
5657
+ margin-right: auto;
5955
5658
  }
5956
5659
  .c-footer__brand {
5660
+ grid-area: brand;
5957
5661
  margin-bottom: var(--atomix-footer-brand-margin-bottom);
5958
5662
  }
5663
+ @media (min-width: 768px) {
5664
+ .c-footer__brand {
5665
+ margin-bottom: 0;
5666
+ }
5667
+ }
5959
5668
  .c-footer__brand-logo {
5960
5669
  display: inline-block;
5961
- margin-bottom: 1rem;
5670
+ margin-bottom: var(--atomix-footer-brand-logo-margin-bottom);
5962
5671
  transition: opacity 0.2s ease;
5963
5672
  }
5964
5673
  .c-footer__brand-logo:hover {
5965
- opacity: 0.8;
5674
+ opacity: var(--atomix-footer-brand-logo-hover-opacity);
5966
5675
  }
5967
5676
  .c-footer__brand-logo img {
5968
5677
  max-width: 200px;
@@ -5975,18 +5684,23 @@ a, a:hover {
5975
5684
  margin: 0;
5976
5685
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
5977
5686
  font-weight: 600;
5978
- color: var(--atomix-text-emphasis);
5687
+ color: var(--atomix-primary-text-emphasis);
5979
5688
  line-height: 1.2;
5980
5689
  }
5981
5690
  .c-footer__brand-description {
5982
5691
  margin-top: 0.5rem;
5983
5692
  font-size: 0.875rem;
5984
- color: var(--atomix-text-muted);
5693
+ color: var(--atomix-secondary-text-emphasis);
5985
5694
  line-height: 1.6;
5986
5695
  max-width: 35ch;
5987
5696
  }
5988
5697
  .c-footer__section {
5989
- margin-bottom: var(--atomix-footer-section-margin-bottom);
5698
+ margin-bottom: 0;
5699
+ }
5700
+ @media (max-width: 575.98px) {
5701
+ .c-footer__section {
5702
+ margin-bottom: var(--atomix-footer-section-margin-bottom);
5703
+ }
5990
5704
  }
5991
5705
  .c-footer__section-header {
5992
5706
  margin-bottom: 1rem;
@@ -5994,14 +5708,14 @@ a, a:hover {
5994
5708
  .c-footer__section-header-content {
5995
5709
  display: flex;
5996
5710
  align-items: center;
5997
- gap: 0.5rem;
5711
+ gap: var(--atomix-footer-section-header-gap);
5998
5712
  }
5999
5713
  .c-footer__section-toggle {
6000
5714
  display: flex;
6001
5715
  align-items: center;
6002
5716
  justify-content: space-between;
6003
5717
  width: 100%;
6004
- padding: 0.75rem 0;
5718
+ padding: var(--atomix-footer-section-toggle-padding);
6005
5719
  background: none;
6006
5720
  border: none;
6007
5721
  cursor: pointer;
@@ -6020,9 +5734,10 @@ a, a:hover {
6020
5734
  }
6021
5735
  .c-footer__section-title {
6022
5736
  margin: 0;
5737
+ width: 100%;
6023
5738
  font-size: 1.125rem;
6024
5739
  font-weight: 600;
6025
- color: var(--atomix-text-emphasis);
5740
+ color: var(--atomix-primary-text-emphasis);
6026
5741
  line-height: 1.3;
6027
5742
  }
6028
5743
  .c-footer__section-icon {
@@ -6034,7 +5749,7 @@ a, a:hover {
6034
5749
  .c-footer__section-chevron {
6035
5750
  font-size: 0.875rem;
6036
5751
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
6037
- color: var(--atomix-text-muted);
5752
+ color: var(--atomix-gray-6);
6038
5753
  }
6039
5754
  .c-footer__section-content {
6040
5755
  display: flex;
@@ -6069,9 +5784,9 @@ a, a:hover {
6069
5784
  align-items: center;
6070
5785
  gap: 0.5rem;
6071
5786
  padding: 0.25rem 0;
6072
- color: var(--atomix-text);
5787
+ color: var(--atomix-primary-text-emphasis);
6073
5788
  text-decoration: none;
6074
- transition: color 0.15s ease-in-out;
5789
+ transition: all 0.15s ease-in-out;
6075
5790
  border-radius: 0.25rem;
6076
5791
  position: relative;
6077
5792
  }
@@ -6087,7 +5802,7 @@ a, a:hover {
6087
5802
  }
6088
5803
  .c-footer__link:hover, .c-footer__link:focus {
6089
5804
  color: var(--atomix-primary);
6090
- text-decoration: underline;
5805
+ text-decoration: none;
6091
5806
  }
6092
5807
  .c-footer__link:hover::before, .c-footer__link:focus::before {
6093
5808
  width: 100%;
@@ -6104,10 +5819,10 @@ a, a:hover {
6104
5819
  width: 100%;
6105
5820
  }
6106
5821
  .c-footer__link--disabled {
6107
- color: var(--atomix-text-disabled);
5822
+ color: var(--atomix-disabled-text-emphasis);
6108
5823
  cursor: not-allowed;
6109
5824
  pointer-events: none;
6110
- opacity: 0.6;
5825
+ opacity: var(--atomix-disabled-opacity);
6111
5826
  }
6112
5827
  .c-footer__link-icon {
6113
5828
  display: flex;
@@ -6138,11 +5853,11 @@ a, a:hover {
6138
5853
  justify-content: center;
6139
5854
  width: 2.5rem;
6140
5855
  height: 2.5rem;
6141
- background-color: var(--atomix-surface-variant);
6142
- color: var(--atomix-text);
5856
+ background-color: var(--atomix-secondary-bg-subtle);
5857
+ color: var(--atomix-primary-text-emphasis);
6143
5858
  border-radius: 50%;
6144
5859
  text-decoration: none;
6145
- transition: all 0.15s ease-in-out;
5860
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
6146
5861
  position: relative;
6147
5862
  overflow: hidden;
6148
5863
  }
@@ -6156,7 +5871,7 @@ a, a:hover {
6156
5871
  }
6157
5872
  .c-footer__social-link:hover, .c-footer__social-link:focus {
6158
5873
  background-color: var(--atomix-primary);
6159
- color: var(--atomix-primary-contrast);
5874
+ color: var(--atomix-component-active-color);
6160
5875
  transform: translateY(-3px) scale(1.05);
6161
5876
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
6162
5877
  }
@@ -6176,7 +5891,7 @@ a, a:hover {
6176
5891
  height: 3rem;
6177
5892
  }
6178
5893
  .c-footer__social-link--disabled {
6179
- opacity: 0.5;
5894
+ opacity: var(--atomix-disabled-opacity);
6180
5895
  cursor: not-allowed;
6181
5896
  pointer-events: none;
6182
5897
  }
@@ -6223,7 +5938,7 @@ a, a:hover {
6223
5938
  background: linear-gradient(135deg, #25d366, #66bb6a);
6224
5939
  }
6225
5940
  .c-footer__newsletter {
6226
- background-color: linear-gradient(135deg, var(--atomix-surface-variant), rgba(var(--atomix-surface-variant), 0.8));
5941
+ background-color: linear-gradient(135deg, var(--atomix-secondary-bg-subtle), rgba(var(--atomix-secondary-bg-subtle), 0.8));
6227
5942
  padding: 1.5rem;
6228
5943
  border-radius: 0.5rem;
6229
5944
  border: 1px solid var(--atomix-border-subtle);
@@ -6243,20 +5958,24 @@ a, a:hover {
6243
5958
  margin: 0 0 0.5rem 0;
6244
5959
  font-size: clamp(1.125rem, 2vw, 1.125rem);
6245
5960
  font-weight: 600;
6246
- color: var(--atomix-text-emphasis);
5961
+ color: var(--atomix-primary-text-emphasis);
6247
5962
  line-height: 1.3;
6248
5963
  }
6249
5964
  .c-footer__newsletter-description {
6250
5965
  margin: 0 0 1rem 0;
6251
5966
  font-size: 0.875rem;
6252
- color: var(--atomix-text-muted);
5967
+ color: var(--atomix-secondary-text-emphasis);
6253
5968
  line-height: 1.6;
6254
5969
  max-width: 45ch;
5970
+ width: 100%;
5971
+ box-sizing: border-box;
6255
5972
  }
6256
5973
  .c-footer__newsletter-form {
6257
5974
  display: flex;
6258
5975
  gap: 0.75rem;
6259
5976
  align-items: flex-end;
5977
+ width: 100%;
5978
+ max-width: 100%;
6260
5979
  }
6261
5980
  @media (max-width: 575.98px) {
6262
5981
  .c-footer__newsletter-form {
@@ -6279,12 +5998,13 @@ a, a:hover {
6279
5998
  flex: 1 1;
6280
5999
  padding: 0.75rem 1rem;
6281
6000
  font-size: 0.875rem;
6282
- background-color: var(--atomix-surface);
6283
- color: var(--atomix-text);
6284
- border: 1px solid var(--atomix-border);
6001
+ background-color: var(--atomix-primary-bg-subtle);
6002
+ color: var(--atomix-primary-text-emphasis);
6003
+ border: 1px solid var(--atomix-primary-border);
6285
6004
  border-radius: 0.375rem;
6286
6005
  outline: none;
6287
6006
  transition: all 0.3s ease;
6007
+ box-sizing: border-box;
6288
6008
  }
6289
6009
  .c-footer__newsletter-input:focus {
6290
6010
  border-color: var(--atomix-primary);
@@ -6292,12 +6012,12 @@ a, a:hover {
6292
6012
  transform: translateY(-1px);
6293
6013
  }
6294
6014
  .c-footer__newsletter-input::-moz-placeholder {
6295
- color: var(--atomix-text-muted);
6015
+ color: var(--atomix-gray-6);
6296
6016
  -moz-transition: opacity 0.3s ease;
6297
6017
  transition: opacity 0.3s ease;
6298
6018
  }
6299
6019
  .c-footer__newsletter-input::placeholder {
6300
- color: var(--atomix-text-muted);
6020
+ color: var(--atomix-gray-6);
6301
6021
  transition: opacity 0.3s ease;
6302
6022
  }
6303
6023
  .c-footer__newsletter-input:focus::-moz-placeholder {
@@ -6308,13 +6028,13 @@ a, a:hover {
6308
6028
  }
6309
6029
  .c-footer__newsletter-button {
6310
6030
  padding: 0.75rem 1.5rem;
6311
- background-color: var(--atomix-primary);
6312
- color: var(--atomix-primary-contrast);
6031
+ background-color: var(--atomix-brand-bg-subtle);
6032
+ color: var(--atomix-brand-text-emphasis);
6313
6033
  border: none;
6314
6034
  border-radius: 0.375rem;
6315
6035
  font-weight: 500;
6316
6036
  cursor: pointer;
6317
- transition: background-color 0.15s ease-in-out;
6037
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
6318
6038
  white-space: nowrap;
6319
6039
  position: relative;
6320
6040
  overflow: hidden;
@@ -6328,7 +6048,7 @@ a, a:hover {
6328
6048
  transition: transform 0.6s ease;
6329
6049
  }
6330
6050
  .c-footer__newsletter-button:hover, .c-footer__newsletter-button:focus {
6331
- background-color: var(--atomix-primary-hover);
6051
+ background-color: var(--atomix-secondary-bg-subtle);
6332
6052
  transform: translateY(-2px);
6333
6053
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
6334
6054
  }
@@ -6344,7 +6064,7 @@ a, a:hover {
6344
6064
  align-items: center;
6345
6065
  justify-content: space-between;
6346
6066
  padding-top: var(--atomix-footer-bottom-padding-top);
6347
- border-top: 1px solid var(--atomix-border);
6067
+ border-top: 1px solid var(--atomix-primary-border-subtle);
6348
6068
  position: relative;
6349
6069
  }
6350
6070
  @media (max-width: 575.98px) {
@@ -6356,7 +6076,7 @@ a, a:hover {
6356
6076
  }
6357
6077
  .c-footer__copyright {
6358
6078
  font-size: 0.875rem;
6359
- color: var(--atomix-text-muted);
6079
+ color: var(--atomix-tertiary-text-emphasis);
6360
6080
  line-height: 1.5;
6361
6081
  }
6362
6082
  .c-footer__copyright a {
@@ -6373,16 +6093,18 @@ a, a:hover {
6373
6093
  align-items: center;
6374
6094
  gap: 0.5rem;
6375
6095
  padding: 0.75rem 1.25rem;
6376
- background-color: var(--atomix-surface-variant);
6096
+ background-color: var(--atomix-secondary-bg);
6377
6097
  border: 1px solid var(--atomix-border-subtle);
6378
- color: var(--atomix-text);
6098
+ color: var(--atomix-primary-text-emphasis);
6379
6099
  font-size: 0.875rem;
6380
6100
  font-weight: 500;
6381
6101
  cursor: pointer;
6382
- transition: color 0.15s ease-in-out;
6102
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
6383
6103
  border-radius: 2rem;
6384
6104
  position: relative;
6385
6105
  overflow: hidden;
6106
+ text-decoration: none;
6107
+ outline: none;
6386
6108
  }
6387
6109
  .c-footer__back-to-top::before {
6388
6110
  content: "";
@@ -6390,14 +6112,14 @@ a, a:hover {
6390
6112
  inset: 0;
6391
6113
  background: linear-gradient(45deg, transparent 30%, rgba(255, 255, 255, 0.1) 50%, transparent 70%);
6392
6114
  transform: translateX(-100%);
6393
- transition: transform 0.6s ease;
6115
+ transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
6394
6116
  }
6395
6117
  .c-footer__back-to-top:hover, .c-footer__back-to-top:focus {
6396
- color: var(--atomix-primary);
6118
+ color: var(--atomix-secondary-text-emphasis);
6397
6119
  background-color: var(--atomix-primary);
6398
6120
  border-color: var(--atomix-primary);
6399
- transform: translateY(-2px);
6400
- box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
6121
+ transform: translateY(-3px);
6122
+ box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
6401
6123
  }
6402
6124
  .c-footer__back-to-top:hover::before, .c-footer__back-to-top:focus::before {
6403
6125
  transform: translateX(100%);
@@ -6405,6 +6127,10 @@ a, a:hover {
6405
6127
  .c-footer__back-to-top:hover .c-footer__back-to-top-icon, .c-footer__back-to-top:focus .c-footer__back-to-top-icon {
6406
6128
  transform: translateY(-2px);
6407
6129
  }
6130
+ .c-footer__back-to-top:active {
6131
+ transform: translateY(-1px);
6132
+ box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15);
6133
+ }
6408
6134
  .c-footer__back-to-top:focus-visible {
6409
6135
  outline: 2px solid var(--atomix-primary);
6410
6136
  outline-offset: 2px;
@@ -6412,7 +6138,7 @@ a, a:hover {
6412
6138
  .c-footer__back-to-top-icon {
6413
6139
  font-size: 1.25em;
6414
6140
  font-weight: bold;
6415
- transition: transform 0.3s ease;
6141
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
6416
6142
  }
6417
6143
  @media (max-width: 575.98px) {
6418
6144
  .c-footer__back-to-top-text {
@@ -6423,30 +6149,12 @@ a, a:hover {
6423
6149
  margin: 2rem 0;
6424
6150
  border: none;
6425
6151
  height: 1px;
6426
- background: linear-gradient(90deg, transparent, 1px solid var(--atomix-border), transparent);
6152
+ background: linear-gradient(90deg, transparent, 1px solid var(--atomix-primary-border-subtle), transparent);
6427
6153
  opacity: 0.5;
6428
6154
  }
6429
- @media (min-width: 768px) {
6430
- .c-footer--columns .c-footer__sections {
6431
- display: grid;
6432
- grid-template-columns: minmax(300px, 1fr) 2fr minmax(250px, 1fr);
6433
- grid-gap: clamp(2rem, 5vw, 4rem);
6434
- gap: clamp(2rem, 5vw, 4rem);
6435
- align-items: start;
6436
- }
6437
- }
6438
- @media (min-width: 992px) {
6439
- .c-footer--columns .c-footer__sections {
6440
- grid-template-columns: minmax(350px, 1fr) 3fr minmax(300px, 1fr);
6441
- }
6442
- }
6443
6155
  .c-footer--centered {
6444
6156
  text-align: center;
6445
6157
  }
6446
- .c-footer--centered .c-footer__sections {
6447
- justify-content: center;
6448
- align-items: center;
6449
- }
6450
6158
  .c-footer--centered .c-footer__social {
6451
6159
  justify-content: center;
6452
6160
  }
@@ -6456,13 +6164,14 @@ a, a:hover {
6456
6164
  }
6457
6165
  .c-footer--minimal {
6458
6166
  --atomix-footer-padding-y: 2rem;
6167
+ --atomix-footer-social-gap: 0.75;
6459
6168
  }
6460
6169
  .c-footer--minimal .c-footer__sections {
6461
6170
  margin-bottom: 1rem;
6462
6171
  gap: 1.5rem;
6463
6172
  }
6464
6173
  .c-footer--minimal .c-footer__section {
6465
- margin-bottom: 1rem;
6174
+ margin-bottom: 0;
6466
6175
  }
6467
6176
  .c-footer--minimal .c-footer__newsletter {
6468
6177
  padding: 1.5rem;
@@ -6477,15 +6186,26 @@ a, a:hover {
6477
6186
  margin-left: auto;
6478
6187
  margin-right: auto;
6479
6188
  }
6189
+ .c-footer--flexible .c-footer__section-col {
6190
+ flex: 1 1 auto;
6191
+ min-width: 250px;
6192
+ }
6193
+ .c-footer--sidebar .c-footer__sections--columns {
6194
+ align-items: flex-start;
6195
+ }
6196
+ .c-footer--wide .c-footer__sections {
6197
+ max-width: 100%;
6198
+ padding: 0 1rem;
6199
+ }
6480
6200
  .c-footer--sm {
6481
6201
  --atomix-footer-padding-y: 2rem;
6482
6202
  --atomix-footer-section-margin-bottom: 1.5rem;
6483
- --atomix-footer-brand-margin-bottom: 1rem;
6484
6203
  --atomix-footer-social-gap: 0.75rem;
6485
6204
  }
6486
6205
  .c-footer--md {
6487
6206
  --atomix-footer-padding-y: 3rem;
6488
6207
  --atomix-footer-section-margin-bottom: 2rem;
6208
+ --atomix-footer-social-gap: 1rem;
6489
6209
  }
6490
6210
  .c-footer--lg {
6491
6211
  --atomix-footer-padding-y: 4rem;
@@ -6499,7 +6219,7 @@ a, a:hover {
6499
6219
  .c-footer--primary {
6500
6220
  --atomix-footer-bg: var(--atomix-primary-bg-subtle);
6501
6221
  --atomix-footer-border-color: var(--atomix-primary-border-subtle);
6502
- --atomix-footer-color: var(--atomix-primary-text);
6222
+ --atomix-footer-color: var(--atomix-primary-text-emphasis);
6503
6223
  }
6504
6224
  .c-footer--primary .c-footer__brand-name h3,
6505
6225
  .c-footer--primary .c-footer__section-title {
@@ -6507,10 +6227,10 @@ a, a:hover {
6507
6227
  }
6508
6228
  .c-footer--primary .c-footer__brand-description,
6509
6229
  .c-footer--primary .c-footer__copyright {
6510
- color: var(--atomix-primary-text-muted);
6230
+ color: var(--atomix-gray-6);
6511
6231
  }
6512
6232
  .c-footer--primary .c-footer__link {
6513
- color: var(--atomix-primary-text);
6233
+ color: var(--atomix-primary-text-emphasis);
6514
6234
  }
6515
6235
  .c-footer--primary .c-footer__link:hover, .c-footer--primary .c-footer__link:focus {
6516
6236
  color: var(--atomix-primary);
@@ -6519,8 +6239,8 @@ a, a:hover {
6519
6239
  background-color: var(--atomix-primary);
6520
6240
  }
6521
6241
  .c-footer--primary .c-footer__newsletter {
6522
- background: linear-gradient(135deg, var(--atomix-primary-bg), rgba(var(--atomix-primary-bg-rgb), 0.8));
6523
- border-color: var(--atomix-primary-border);
6242
+ background: linear-gradient(135deg, var(--atomix-primary-bg-subtle), rgba(var(--atomix-primary-bg-subtle), 0.8));
6243
+ border-color: var(--atomix-primary-border-subtle);
6524
6244
  }
6525
6245
  .c-footer--primary .c-footer__newsletter::before {
6526
6246
  background: linear-gradient(90deg, transparent, var(--atomix-primary), transparent);
@@ -6528,7 +6248,7 @@ a, a:hover {
6528
6248
  .c-footer--secondary {
6529
6249
  --atomix-footer-bg: var(--atomix-secondary-bg-subtle);
6530
6250
  --atomix-footer-border-color: var(--atomix-secondary-border-subtle);
6531
- --atomix-footer-color: var(--atomix-secondary-text);
6251
+ --atomix-footer-color: var(--atomix-secondary-text-emphasis);
6532
6252
  }
6533
6253
  .c-footer--secondary .c-footer__brand-name h3,
6534
6254
  .c-footer--secondary .c-footer__section-title {
@@ -6536,10 +6256,10 @@ a, a:hover {
6536
6256
  }
6537
6257
  .c-footer--secondary .c-footer__brand-description,
6538
6258
  .c-footer--secondary .c-footer__copyright {
6539
- color: var(--atomix-secondary-text-muted);
6259
+ color: var(--atomix-gray-6);
6540
6260
  }
6541
6261
  .c-footer--secondary .c-footer__link {
6542
- color: var(--atomix-secondary-text);
6262
+ color: var(--atomix-secondary-text-emphasis);
6543
6263
  }
6544
6264
  .c-footer--secondary .c-footer__link:hover, .c-footer--secondary .c-footer__link:focus {
6545
6265
  color: var(--atomix-secondary);
@@ -6548,8 +6268,8 @@ a, a:hover {
6548
6268
  background-color: var(--atomix-secondary);
6549
6269
  }
6550
6270
  .c-footer--secondary .c-footer__newsletter {
6551
- background: linear-gradient(135deg, var(--atomix-secondary-bg), rgba(var(--atomix-secondary-bg-rgb), 0.8));
6552
- border-color: var(--atomix-secondary-border);
6271
+ background: linear-gradient(135deg, var(--atomix-secondary-bg-subtle), rgba(var(--atomix-secondary-bg-subtle), 0.8));
6272
+ border-color: var(--atomix-secondary-border-subtle);
6553
6273
  }
6554
6274
  .c-footer--secondary .c-footer__newsletter::before {
6555
6275
  background: linear-gradient(90deg, transparent, var(--atomix-secondary), transparent);
@@ -6557,7 +6277,7 @@ a, a:hover {
6557
6277
  .c-footer--tertiary {
6558
6278
  --atomix-footer-bg: var(--atomix-tertiary-bg-subtle);
6559
6279
  --atomix-footer-border-color: var(--atomix-tertiary-border-subtle);
6560
- --atomix-footer-color: var(--atomix-tertiary-text);
6280
+ --atomix-footer-color: var(--atomix-tertiary-text-emphasis);
6561
6281
  }
6562
6282
  .c-footer--tertiary .c-footer__brand-name h3,
6563
6283
  .c-footer--tertiary .c-footer__section-title {
@@ -6565,10 +6285,10 @@ a, a:hover {
6565
6285
  }
6566
6286
  .c-footer--tertiary .c-footer__brand-description,
6567
6287
  .c-footer--tertiary .c-footer__copyright {
6568
- color: var(--atomix-tertiary-text-muted);
6288
+ color: var(--atomix-gray-6);
6569
6289
  }
6570
6290
  .c-footer--tertiary .c-footer__link {
6571
- color: var(--atomix-tertiary-text);
6291
+ color: var(--atomix-tertiary-text-emphasis);
6572
6292
  }
6573
6293
  .c-footer--tertiary .c-footer__link:hover, .c-footer--tertiary .c-footer__link:focus {
6574
6294
  color: var(--atomix-tertiary);
@@ -6577,8 +6297,8 @@ a, a:hover {
6577
6297
  background-color: var(--atomix-tertiary);
6578
6298
  }
6579
6299
  .c-footer--tertiary .c-footer__newsletter {
6580
- background: linear-gradient(135deg, var(--atomix-tertiary-bg), rgba(var(--atomix-tertiary-bg-rgb), 0.8));
6581
- border-color: var(--atomix-tertiary-border);
6300
+ background: linear-gradient(135deg, var(--atomix-tertiary-bg-subtle), rgba(var(--atomix-tertiary-bg-subtle), 0.8));
6301
+ border-color: var(--atomix-tertiary-border-subtle);
6582
6302
  }
6583
6303
  .c-footer--tertiary .c-footer__newsletter::before {
6584
6304
  background: linear-gradient(90deg, transparent, var(--atomix-tertiary), transparent);
@@ -6586,7 +6306,7 @@ a, a:hover {
6586
6306
  .c-footer--invert {
6587
6307
  --atomix-footer-bg: var(--atomix-invert-bg-subtle);
6588
6308
  --atomix-footer-border-color: var(--atomix-invert-border-subtle);
6589
- --atomix-footer-color: var(--atomix-invert-text);
6309
+ --atomix-footer-color: var(--atomix-invert-text-emphasis);
6590
6310
  }
6591
6311
  .c-footer--invert .c-footer__brand-name h3,
6592
6312
  .c-footer--invert .c-footer__section-title {
@@ -6594,10 +6314,10 @@ a, a:hover {
6594
6314
  }
6595
6315
  .c-footer--invert .c-footer__brand-description,
6596
6316
  .c-footer--invert .c-footer__copyright {
6597
- color: var(--atomix-invert-text-muted);
6317
+ color: var(--atomix-gray-6);
6598
6318
  }
6599
6319
  .c-footer--invert .c-footer__link {
6600
- color: var(--atomix-invert-text);
6320
+ color: var(--atomix-invert-text-emphasis);
6601
6321
  }
6602
6322
  .c-footer--invert .c-footer__link:hover, .c-footer--invert .c-footer__link:focus {
6603
6323
  color: var(--atomix-invert);
@@ -6606,8 +6326,8 @@ a, a:hover {
6606
6326
  background-color: var(--atomix-invert);
6607
6327
  }
6608
6328
  .c-footer--invert .c-footer__newsletter {
6609
- background: linear-gradient(135deg, var(--atomix-invert-bg), rgba(var(--atomix-invert-bg-rgb), 0.8));
6610
- border-color: var(--atomix-invert-border);
6329
+ background: linear-gradient(135deg, var(--atomix-invert-bg-subtle), rgba(var(--atomix-invert-bg-subtle), 0.8));
6330
+ border-color: var(--atomix-invert-border-subtle);
6611
6331
  }
6612
6332
  .c-footer--invert .c-footer__newsletter::before {
6613
6333
  background: linear-gradient(90deg, transparent, var(--atomix-invert), transparent);
@@ -6615,7 +6335,7 @@ a, a:hover {
6615
6335
  .c-footer--brand {
6616
6336
  --atomix-footer-bg: var(--atomix-brand-bg-subtle);
6617
6337
  --atomix-footer-border-color: var(--atomix-brand-border-subtle);
6618
- --atomix-footer-color: var(--atomix-brand-text);
6338
+ --atomix-footer-color: var(--atomix-brand-text-emphasis);
6619
6339
  }
6620
6340
  .c-footer--brand .c-footer__brand-name h3,
6621
6341
  .c-footer--brand .c-footer__section-title {
@@ -6623,10 +6343,10 @@ a, a:hover {
6623
6343
  }
6624
6344
  .c-footer--brand .c-footer__brand-description,
6625
6345
  .c-footer--brand .c-footer__copyright {
6626
- color: var(--atomix-brand-text-muted);
6346
+ color: var(--atomix-gray-6);
6627
6347
  }
6628
6348
  .c-footer--brand .c-footer__link {
6629
- color: var(--atomix-brand-text);
6349
+ color: var(--atomix-brand-text-emphasis);
6630
6350
  }
6631
6351
  .c-footer--brand .c-footer__link:hover, .c-footer--brand .c-footer__link:focus {
6632
6352
  color: var(--atomix-brand);
@@ -6635,8 +6355,8 @@ a, a:hover {
6635
6355
  background-color: var(--atomix-brand);
6636
6356
  }
6637
6357
  .c-footer--brand .c-footer__newsletter {
6638
- background: linear-gradient(135deg, var(--atomix-brand-bg), rgba(var(--atomix-brand-bg-rgb), 0.8));
6639
- border-color: var(--atomix-brand-border);
6358
+ background: linear-gradient(135deg, var(--atomix-brand-bg-subtle), rgba(var(--atomix-brand-bg-subtle), 0.8));
6359
+ border-color: var(--atomix-brand-border-subtle);
6640
6360
  }
6641
6361
  .c-footer--brand .c-footer__newsletter::before {
6642
6362
  background: linear-gradient(90deg, transparent, var(--atomix-brand), transparent);
@@ -6644,7 +6364,7 @@ a, a:hover {
6644
6364
  .c-footer--error {
6645
6365
  --atomix-footer-bg: var(--atomix-error-bg-subtle);
6646
6366
  --atomix-footer-border-color: var(--atomix-error-border-subtle);
6647
- --atomix-footer-color: var(--atomix-error-text);
6367
+ --atomix-footer-color: var(--atomix-error-text-emphasis);
6648
6368
  }
6649
6369
  .c-footer--error .c-footer__brand-name h3,
6650
6370
  .c-footer--error .c-footer__section-title {
@@ -6652,10 +6372,10 @@ a, a:hover {
6652
6372
  }
6653
6373
  .c-footer--error .c-footer__brand-description,
6654
6374
  .c-footer--error .c-footer__copyright {
6655
- color: var(--atomix-error-text-muted);
6375
+ color: var(--atomix-gray-6);
6656
6376
  }
6657
6377
  .c-footer--error .c-footer__link {
6658
- color: var(--atomix-error-text);
6378
+ color: var(--atomix-error-text-emphasis);
6659
6379
  }
6660
6380
  .c-footer--error .c-footer__link:hover, .c-footer--error .c-footer__link:focus {
6661
6381
  color: var(--atomix-error);
@@ -6664,8 +6384,8 @@ a, a:hover {
6664
6384
  background-color: var(--atomix-error);
6665
6385
  }
6666
6386
  .c-footer--error .c-footer__newsletter {
6667
- background: linear-gradient(135deg, var(--atomix-error-bg), rgba(var(--atomix-error-bg-rgb), 0.8));
6668
- border-color: var(--atomix-error-border);
6387
+ background: linear-gradient(135deg, var(--atomix-error-bg-subtle), rgba(var(--atomix-error-bg-subtle), 0.8));
6388
+ border-color: var(--atomix-error-border-subtle);
6669
6389
  }
6670
6390
  .c-footer--error .c-footer__newsletter::before {
6671
6391
  background: linear-gradient(90deg, transparent, var(--atomix-error), transparent);
@@ -6673,7 +6393,7 @@ a, a:hover {
6673
6393
  .c-footer--success {
6674
6394
  --atomix-footer-bg: var(--atomix-success-bg-subtle);
6675
6395
  --atomix-footer-border-color: var(--atomix-success-border-subtle);
6676
- --atomix-footer-color: var(--atomix-success-text);
6396
+ --atomix-footer-color: var(--atomix-success-text-emphasis);
6677
6397
  }
6678
6398
  .c-footer--success .c-footer__brand-name h3,
6679
6399
  .c-footer--success .c-footer__section-title {
@@ -6681,10 +6401,10 @@ a, a:hover {
6681
6401
  }
6682
6402
  .c-footer--success .c-footer__brand-description,
6683
6403
  .c-footer--success .c-footer__copyright {
6684
- color: var(--atomix-success-text-muted);
6404
+ color: var(--atomix-gray-6);
6685
6405
  }
6686
6406
  .c-footer--success .c-footer__link {
6687
- color: var(--atomix-success-text);
6407
+ color: var(--atomix-success-text-emphasis);
6688
6408
  }
6689
6409
  .c-footer--success .c-footer__link:hover, .c-footer--success .c-footer__link:focus {
6690
6410
  color: var(--atomix-success);
@@ -6693,8 +6413,8 @@ a, a:hover {
6693
6413
  background-color: var(--atomix-success);
6694
6414
  }
6695
6415
  .c-footer--success .c-footer__newsletter {
6696
- background: linear-gradient(135deg, var(--atomix-success-bg), rgba(var(--atomix-success-bg-rgb), 0.8));
6697
- border-color: var(--atomix-success-border);
6416
+ background: linear-gradient(135deg, var(--atomix-success-bg-subtle), rgba(var(--atomix-success-bg-subtle), 0.8));
6417
+ border-color: var(--atomix-success-border-subtle);
6698
6418
  }
6699
6419
  .c-footer--success .c-footer__newsletter::before {
6700
6420
  background: linear-gradient(90deg, transparent, var(--atomix-success), transparent);
@@ -6702,7 +6422,7 @@ a, a:hover {
6702
6422
  .c-footer--warning {
6703
6423
  --atomix-footer-bg: var(--atomix-warning-bg-subtle);
6704
6424
  --atomix-footer-border-color: var(--atomix-warning-border-subtle);
6705
- --atomix-footer-color: var(--atomix-warning-text);
6425
+ --atomix-footer-color: var(--atomix-warning-text-emphasis);
6706
6426
  }
6707
6427
  .c-footer--warning .c-footer__brand-name h3,
6708
6428
  .c-footer--warning .c-footer__section-title {
@@ -6710,10 +6430,10 @@ a, a:hover {
6710
6430
  }
6711
6431
  .c-footer--warning .c-footer__brand-description,
6712
6432
  .c-footer--warning .c-footer__copyright {
6713
- color: var(--atomix-warning-text-muted);
6433
+ color: var(--atomix-gray-6);
6714
6434
  }
6715
6435
  .c-footer--warning .c-footer__link {
6716
- color: var(--atomix-warning-text);
6436
+ color: var(--atomix-warning-text-emphasis);
6717
6437
  }
6718
6438
  .c-footer--warning .c-footer__link:hover, .c-footer--warning .c-footer__link:focus {
6719
6439
  color: var(--atomix-warning);
@@ -6722,8 +6442,8 @@ a, a:hover {
6722
6442
  background-color: var(--atomix-warning);
6723
6443
  }
6724
6444
  .c-footer--warning .c-footer__newsletter {
6725
- background: linear-gradient(135deg, var(--atomix-warning-bg), rgba(var(--atomix-warning-bg-rgb), 0.8));
6726
- border-color: var(--atomix-warning-border);
6445
+ background: linear-gradient(135deg, var(--atomix-warning-bg-subtle), rgba(var(--atomix-warning-bg-subtle), 0.8));
6446
+ border-color: var(--atomix-warning-border-subtle);
6727
6447
  }
6728
6448
  .c-footer--warning .c-footer__newsletter::before {
6729
6449
  background: linear-gradient(90deg, transparent, var(--atomix-warning), transparent);
@@ -6731,7 +6451,7 @@ a, a:hover {
6731
6451
  .c-footer--info {
6732
6452
  --atomix-footer-bg: var(--atomix-info-bg-subtle);
6733
6453
  --atomix-footer-border-color: var(--atomix-info-border-subtle);
6734
- --atomix-footer-color: var(--atomix-info-text);
6454
+ --atomix-footer-color: var(--atomix-info-text-emphasis);
6735
6455
  }
6736
6456
  .c-footer--info .c-footer__brand-name h3,
6737
6457
  .c-footer--info .c-footer__section-title {
@@ -6739,10 +6459,10 @@ a, a:hover {
6739
6459
  }
6740
6460
  .c-footer--info .c-footer__brand-description,
6741
6461
  .c-footer--info .c-footer__copyright {
6742
- color: var(--atomix-info-text-muted);
6462
+ color: var(--atomix-gray-6);
6743
6463
  }
6744
6464
  .c-footer--info .c-footer__link {
6745
- color: var(--atomix-info-text);
6465
+ color: var(--atomix-info-text-emphasis);
6746
6466
  }
6747
6467
  .c-footer--info .c-footer__link:hover, .c-footer--info .c-footer__link:focus {
6748
6468
  color: var(--atomix-info);
@@ -6751,8 +6471,8 @@ a, a:hover {
6751
6471
  background-color: var(--atomix-info);
6752
6472
  }
6753
6473
  .c-footer--info .c-footer__newsletter {
6754
- background: linear-gradient(135deg, var(--atomix-info-bg), rgba(var(--atomix-info-bg-rgb), 0.8));
6755
- border-color: var(--atomix-info-border);
6474
+ background: linear-gradient(135deg, var(--atomix-info-bg-subtle), rgba(var(--atomix-info-bg-subtle), 0.8));
6475
+ border-color: var(--atomix-info-border-subtle);
6756
6476
  }
6757
6477
  .c-footer--info .c-footer__newsletter::before {
6758
6478
  background: linear-gradient(90deg, transparent, var(--atomix-info), transparent);
@@ -6760,7 +6480,7 @@ a, a:hover {
6760
6480
  .c-footer--light {
6761
6481
  --atomix-footer-bg: var(--atomix-light-bg-subtle);
6762
6482
  --atomix-footer-border-color: var(--atomix-light-border-subtle);
6763
- --atomix-footer-color: var(--atomix-light-text);
6483
+ --atomix-footer-color: var(--atomix-light-text-emphasis);
6764
6484
  }
6765
6485
  .c-footer--light .c-footer__brand-name h3,
6766
6486
  .c-footer--light .c-footer__section-title {
@@ -6768,10 +6488,10 @@ a, a:hover {
6768
6488
  }
6769
6489
  .c-footer--light .c-footer__brand-description,
6770
6490
  .c-footer--light .c-footer__copyright {
6771
- color: var(--atomix-light-text-muted);
6491
+ color: var(--atomix-gray-6);
6772
6492
  }
6773
6493
  .c-footer--light .c-footer__link {
6774
- color: var(--atomix-light-text);
6494
+ color: var(--atomix-light-text-emphasis);
6775
6495
  }
6776
6496
  .c-footer--light .c-footer__link:hover, .c-footer--light .c-footer__link:focus {
6777
6497
  color: var(--atomix-light);
@@ -6780,8 +6500,8 @@ a, a:hover {
6780
6500
  background-color: var(--atomix-light);
6781
6501
  }
6782
6502
  .c-footer--light .c-footer__newsletter {
6783
- background: linear-gradient(135deg, var(--atomix-light-bg), rgba(var(--atomix-light-bg-rgb), 0.8));
6784
- border-color: var(--atomix-light-border);
6503
+ background: linear-gradient(135deg, var(--atomix-light-bg-subtle), rgba(var(--atomix-light-bg-subtle), 0.8));
6504
+ border-color: var(--atomix-light-border-subtle);
6785
6505
  }
6786
6506
  .c-footer--light .c-footer__newsletter::before {
6787
6507
  background: linear-gradient(90deg, transparent, var(--atomix-light), transparent);
@@ -6789,7 +6509,7 @@ a, a:hover {
6789
6509
  .c-footer--dark {
6790
6510
  --atomix-footer-bg: var(--atomix-dark-bg-subtle);
6791
6511
  --atomix-footer-border-color: var(--atomix-dark-border-subtle);
6792
- --atomix-footer-color: var(--atomix-dark-text);
6512
+ --atomix-footer-color: var(--atomix-dark-text-emphasis);
6793
6513
  }
6794
6514
  .c-footer--dark .c-footer__brand-name h3,
6795
6515
  .c-footer--dark .c-footer__section-title {
@@ -6797,10 +6517,10 @@ a, a:hover {
6797
6517
  }
6798
6518
  .c-footer--dark .c-footer__brand-description,
6799
6519
  .c-footer--dark .c-footer__copyright {
6800
- color: var(--atomix-dark-text-muted);
6520
+ color: var(--atomix-gray-6);
6801
6521
  }
6802
6522
  .c-footer--dark .c-footer__link {
6803
- color: var(--atomix-dark-text);
6523
+ color: var(--atomix-dark-text-emphasis);
6804
6524
  }
6805
6525
  .c-footer--dark .c-footer__link:hover, .c-footer--dark .c-footer__link:focus {
6806
6526
  color: var(--atomix-dark);
@@ -6809,8 +6529,8 @@ a, a:hover {
6809
6529
  background-color: var(--atomix-dark);
6810
6530
  }
6811
6531
  .c-footer--dark .c-footer__newsletter {
6812
- background: linear-gradient(135deg, var(--atomix-dark-bg), rgba(var(--atomix-dark-bg-rgb), 0.8));
6813
- border-color: var(--atomix-dark-border);
6532
+ background: linear-gradient(135deg, var(--atomix-dark-bg-subtle), rgba(var(--atomix-dark-bg-subtle), 0.8));
6533
+ border-color: var(--atomix-dark-border-subtle);
6814
6534
  }
6815
6535
  .c-footer--dark .c-footer__newsletter::before {
6816
6536
  background: linear-gradient(90deg, transparent, var(--atomix-dark), transparent);
@@ -6818,34 +6538,12 @@ a, a:hover {
6818
6538
  .c-footer--sticky {
6819
6539
  position: sticky;
6820
6540
  bottom: 0;
6821
- z-index: 10;
6541
+ z-index: 100;
6822
6542
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.1);
6823
6543
  -webkit-backdrop-filter: blur(10px);
6824
6544
  backdrop-filter: blur(10px);
6825
6545
  background-color: rgba(var(--atomix-footer-bg-rgb), 0.95);
6826
6546
  }
6827
- @media (prefers-color-scheme: dark) {
6828
- .c-footer {
6829
- --atomix-footer-bg: var(--atomix-surface-dark);
6830
- --atomix-footer-color: var(--atomix-text-dark);
6831
- --atomix-footer-border-color: var(--atomix-border-dark);
6832
- }
6833
- }
6834
- .dark-mode .c-footer {
6835
- --atomix-footer-bg: var(--atomix-surface-dark);
6836
- --atomix-footer-color: var(--atomix-text-dark);
6837
- --atomix-footer-border-color: var(--atomix-border-dark);
6838
- }
6839
- .dark-mode .c-footer .c-footer__newsletter {
6840
- background: linear-gradient(135deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02));
6841
- border-color: rgba(255, 255, 255, 0.1);
6842
- }
6843
- .dark-mode .c-footer .c-footer__social-link {
6844
- background-color: rgba(255, 255, 255, 0.1);
6845
- }
6846
- .dark-mode .c-footer .c-footer__social-link:hover {
6847
- background-color: rgba(255, 255, 255, 0.2);
6848
- }
6849
6547
  @media (prefers-reduced-motion: reduce) {
6850
6548
  .c-footer *,
6851
6549
  .c-footer *::before,
@@ -7170,10 +6868,10 @@ a, a:hover {
7170
6868
  .c-input--glass {
7171
6869
  background-color: color-mix(in srgb, var(--atomix-input-bg) 50%, transparent);
7172
6870
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.1) inset;
6871
+ border-color: color-mix(in srgb, var(--atomix-input-border-color) 50%, transparent);
7173
6872
  }
7174
6873
  .c-input--glass:focus, .c-input--glass:hover {
7175
- background-color: color-mix(in srgb, var(--atomix-input-bg) 50%, transparent);
7176
- 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);
6874
+ background-color: color-mix(in srgb, var(--atomix-input-bg) 90%, transparent);
7177
6875
  }
7178
6876
  .c-input--glass.c-input--textarea {
7179
6877
  resize: vertical;
@@ -7248,6 +6946,7 @@ a, a:hover {
7248
6946
  --atomix-list-item-dash-width: 0.75rem;
7249
6947
  --atomix-list-item-dash-height: 0.125rem;
7250
6948
  padding-left: var(--atomix-list-padding-left);
6949
+ list-style: none;
7251
6950
  }
7252
6951
  .c-list__item {
7253
6952
  color: var(--atomix-list-color);
@@ -7901,6 +7600,8 @@ a, a:hover {
7901
7600
  width: 100%;
7902
7601
  height: 100%;
7903
7602
  display: none;
7603
+ }
7604
+ .c-modal:not(.c-modal--glass) {
7904
7605
  z-index: 1040;
7905
7606
  }
7906
7607
  .c-modal__backdrop {
@@ -10809,6 +10510,9 @@ a, a:hover {
10809
10510
  --atomix-upload-disabled-opacity: 0.5;
10810
10511
  --atomix-upload-loader-control-icon-size: 1.25rem;
10811
10512
  --atomix-upload-loader-contorl-color: var(--atomix-body-color);
10513
+ --atomix-upload-helper-text-opacity: 0.7;
10514
+ --atomix-upload-text-opacity: 0.8;
10515
+ --atomix-upload-text-margin-bottom: 1rem;
10812
10516
  width: 100%;
10813
10517
  max-width: var(--atomix-upload-width);
10814
10518
  padding: var(--atomix-upload-padding-y) var(--atomix-upload-padding-x);
@@ -10829,24 +10533,47 @@ a, a:hover {
10829
10533
  padding: var(--atomix-upload-inner-padding-y) var(--atomix-upload-inner-padding-x);
10830
10534
  border-radius: var(--atomix-upload-border-radius);
10831
10535
  border: var(--atomix-upload-border-width) dashed var(--atomix-upload-border-color);
10536
+ cursor: pointer;
10537
+ transition: all 0.3s ease-in-out;
10538
+ }
10539
+ .c-upload__inner:hover {
10540
+ border-color: var(--atomix-primary-6);
10541
+ background-color: var(--atomix-primary-bg-subtle);
10542
+ transform: translateY(-2px);
10543
+ box-shadow: var(--atomix-box-shadow);
10832
10544
  }
10833
10545
  .c-upload__icon {
10834
10546
  font-size: var(--atomix-upload-icon-size);
10835
- padding: var(--atomix-upload-icon-padding);
10836
- background-color: var(--atomix-upload-icon-bg);
10837
- border-radius: 50rem;
10547
+ padding: 12;
10548
+ color: var(--atomix-primary-6);
10549
+ background-color: var(--atomix-primary-bg-subtle);
10550
+ border-radius: var(--atomix-border-radius-pill);
10551
+ margin-bottom: 12;
10552
+ transition: all 0.3s ease-in-out;
10553
+ }
10554
+ .c-upload__icon:hover {
10555
+ color: var(--atomix-primary-7);
10556
+ background-color: var(--atomix-primary-border-subtle);
10557
+ transform: scale(1.05);
10838
10558
  }
10839
10559
  .c-upload__title {
10840
10560
  color: var(--atomix-upload-title-color);
10841
10561
  font-size: var(--atomix-upload-title-font-size);
10842
10562
  font-weight: var(--atomix-upload-title-font-weight);
10843
10563
  margin-top: var(--atomix-upload-title-margin-top);
10564
+ margin-bottom: var(--atomix-upload-title-margin-bottom);
10565
+ text-align: center;
10566
+ line-height: 1.4;
10844
10567
  }
10845
10568
  .c-upload__text {
10846
10569
  color: var(--atomix-upload-text-color);
10847
10570
  font-size: var(--atomix-upload-text-font-size);
10848
10571
  font-weight: var(--atomix-upload-text-font-weight);
10849
10572
  margin-top: var(--atomix-upload-text-margin-top);
10573
+ margin-bottom: var(--atomix-upload-text-margin-bottom);
10574
+ text-align: center;
10575
+ line-height: 1.5;
10576
+ opacity: var(--atomix-upload-text-opacity);
10850
10577
  }
10851
10578
  .c-upload__btn {
10852
10579
  margin-top: var(--atomix-upload-btn-margin-top);
@@ -10856,6 +10583,9 @@ a, a:hover {
10856
10583
  font-size: var(--atomix-upload-helper-text-font-size);
10857
10584
  font-weight: var(--atomix-upload-helper-text-font-weight);
10858
10585
  margin-top: var(--atomix-upload-helper-text-margin-top);
10586
+ text-align: center;
10587
+ opacity: var(--atomix-upload-helper-text-opacity);
10588
+ line-height: 1.4;
10859
10589
  }
10860
10590
  .c-upload__row {
10861
10591
  width: 100%;
@@ -10874,6 +10604,7 @@ a, a:hover {
10874
10604
  .c-upload__loader {
10875
10605
  --upload-loader-percentage: 0;
10876
10606
  display: flex;
10607
+ align-items: center;
10877
10608
  justify-content: space-between;
10878
10609
  position: relative;
10879
10610
  width: 100%;
@@ -10882,6 +10613,8 @@ a, a:hover {
10882
10613
  border: var(--atomix-upload-loader-border-width) solid var(--atomix-upload-loader-border-color);
10883
10614
  border-radius: var(--atomix-upload-loader-border-radius);
10884
10615
  margin-top: var(--atomix-upload-loader-margin-top);
10616
+ background-color: var(--atomix-body-bg);
10617
+ box-shadow: var(--atomix-box-shadow-sm);
10885
10618
  overflow: hidden;
10886
10619
  }
10887
10620
  .c-upload__loader-title {
@@ -10906,6 +10639,20 @@ a, a:hover {
10906
10639
  .c-upload__loader-close {
10907
10640
  color: var(--atomix-upload-loader-contorl-color);
10908
10641
  font-size: var(--atomix-upload-loader-control-icon-size);
10642
+ background: none;
10643
+ border: none;
10644
+ cursor: pointer;
10645
+ padding: 4;
10646
+ border-radius: var(--atomix-border-radius-sm);
10647
+ transition: all 0.2s ease-in-out;
10648
+ }
10649
+ .c-upload__loader-close:hover {
10650
+ background-color: var(--atomix-danger-bg-subtle);
10651
+ color: var(--atomix-danger-text-emphasis);
10652
+ }
10653
+ .c-upload__loader-close:focus {
10654
+ outline: 2px solid var(--atomix-focus-border-color);
10655
+ outline-offset: 2px;
10909
10656
  }
10910
10657
  .c-upload__loader-bar {
10911
10658
  width: 22px;
@@ -10970,6 +10717,112 @@ a, a:hover {
10970
10717
  .c-upload--disabled .c-upload__btn {
10971
10718
  pointer-events: none;
10972
10719
  }
10720
+ .c-upload--disabled .c-upload__inner {
10721
+ cursor: not-allowed;
10722
+ }
10723
+ .c-upload--disabled .c-upload__inner:hover {
10724
+ transform: none;
10725
+ box-shadow: none;
10726
+ border-color: var(--atomix-upload-border-color);
10727
+ background-color: transparent;
10728
+ }
10729
+ .c-upload--dragging .c-upload__inner {
10730
+ border-color: var(--atomix-primary-6);
10731
+ background-color: var(--atomix-primary-bg-subtle);
10732
+ transform: scale(1.02);
10733
+ box-shadow: var(--atomix-box-shadow-lg);
10734
+ }
10735
+ .c-upload--dragging .c-upload__icon {
10736
+ color: var(--atomix-primary-7);
10737
+ background-color: var(--atomix-primary-border-subtle);
10738
+ transform: scale(1.1);
10739
+ }
10740
+ .c-upload--dragging .c-upload__title {
10741
+ color: var(--atomix-primary-6);
10742
+ }
10743
+ .c-upload--loading .c-upload__loader-bar circle:nth-child(2) {
10744
+ stroke: var(--atomix-primary-6);
10745
+ }
10746
+ .c-upload--success .c-upload__loader-bar circle:nth-child(2) {
10747
+ stroke: var(--atomix-success-6);
10748
+ }
10749
+ .c-upload--error .c-upload__loader-bar circle:nth-child(2) {
10750
+ stroke: var(--atomix-error-6);
10751
+ }
10752
+ .c-upload__input {
10753
+ position: absolute;
10754
+ width: 1px;
10755
+ height: 1px;
10756
+ padding: 0;
10757
+ margin: -1px;
10758
+ overflow: hidden;
10759
+ clip: rect(0, 0, 0, 0);
10760
+ white-space: nowrap;
10761
+ border: 0;
10762
+ }
10763
+ @media (max-width: 768px) {
10764
+ .c-upload {
10765
+ max-width: 100%;
10766
+ }
10767
+ .c-upload__inner {
10768
+ padding: 16 12;
10769
+ }
10770
+ .c-upload__icon {
10771
+ font-size: 28;
10772
+ padding: 8;
10773
+ margin-bottom: 8;
10774
+ }
10775
+ .c-upload__title {
10776
+ font-size: var(--atomix-font-size-md);
10777
+ }
10778
+ .c-upload__text {
10779
+ font-size: var(--atomix-font-size-xs);
10780
+ }
10781
+ .c-upload__loader {
10782
+ padding: 8 12;
10783
+ flex-direction: column;
10784
+ align-items: flex-start;
10785
+ gap: 8;
10786
+ }
10787
+ .c-upload__loader-control {
10788
+ align-self: flex-end;
10789
+ }
10790
+ }
10791
+ @media (prefers-reduced-motion: reduce) {
10792
+ .c-upload__inner {
10793
+ transition: none;
10794
+ }
10795
+ .c-upload__inner:hover {
10796
+ transform: none;
10797
+ }
10798
+ .c-upload__icon {
10799
+ transition: none;
10800
+ }
10801
+ .c-upload__icon:hover {
10802
+ transform: none;
10803
+ }
10804
+ .c-upload--dragging .c-upload__inner {
10805
+ transform: none;
10806
+ }
10807
+ .c-upload--dragging .c-upload__icon {
10808
+ transform: none;
10809
+ }
10810
+ }
10811
+ @media (prefers-contrast: high) {
10812
+ .c-upload__inner {
10813
+ border-width: 3px;
10814
+ }
10815
+ .c-upload--dragging .c-upload__inner {
10816
+ border-width: 4px;
10817
+ }
10818
+ .c-upload__loader {
10819
+ border-width: 2px;
10820
+ }
10821
+ }
10822
+ .c-upload__inner:focus-visible {
10823
+ outline: 2px solid var(--atomix-focus-border-color);
10824
+ outline-offset: 2px;
10825
+ }
10973
10826
  .c-video-player {
10974
10827
  --atomix--video-player-bg: #000;
10975
10828
  --atomix--video-player-border-radius: 12px;