@shohojdhara/atomix 0.2.3 → 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 (225) hide show
  1. package/README.md +19 -0
  2. package/dist/atomix.css +1703 -1544
  3. package/dist/atomix.min.css +4 -4
  4. package/dist/index.d.ts +1465 -963
  5. package/dist/index.esm.js +16289 -25908
  6. package/dist/index.esm.js.map +1 -1
  7. package/dist/index.js +15650 -21780
  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 +1608 -1450
  14. package/dist/themes/boomdevs.min.css +5 -5
  15. package/dist/themes/esrar.css +1702 -1543
  16. package/dist/themes/esrar.min.css +4 -4
  17. package/dist/themes/flashtrade.css +15159 -0
  18. package/dist/themes/flashtrade.min.css +86 -0
  19. package/dist/themes/mashroom.css +1699 -1540
  20. package/dist/themes/mashroom.min.css +7 -7
  21. package/dist/themes/shaj-default.css +1693 -1534
  22. package/dist/themes/shaj-default.min.css +4 -4
  23. package/package.json +6 -17
  24. package/src/components/Accordion/Accordion.stories.tsx +662 -21
  25. package/src/components/Accordion/Accordion.tsx +21 -14
  26. package/src/components/AtomixGlass/AtomixGlass.test.tsx +106 -72
  27. package/src/components/AtomixGlass/AtomixGlass.tsx +529 -1195
  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 +792 -68
  34. package/src/components/AtomixGlass/stories/AtomixGlass.stories.tsx +1250 -0
  35. package/src/components/AtomixGlass/stories/Examples.stories.tsx +5768 -0
  36. package/src/components/AtomixGlass/stories/Modes.stories.tsx +1065 -0
  37. package/src/components/AtomixGlass/stories/Playground.stories.tsx +1129 -0
  38. package/src/components/AtomixGlass/stories/ShaderVariants.stories.tsx +395 -0
  39. package/src/components/AtomixGlass/stories/shared-components.tsx +301 -0
  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 +76 -55
  44. package/src/components/Badge/Badge.tsx +12 -14
  45. package/src/components/Breadcrumb/Breadcrumb.tsx +23 -4
  46. package/src/components/Button/Button.stories.tsx +501 -20
  47. package/src/components/Button/Button.tsx +5 -8
  48. package/src/components/Callout/Callout.stories.tsx +86 -35
  49. package/src/components/Callout/Callout.tsx +31 -9
  50. package/src/components/Card/Card.stories.tsx +565 -2
  51. package/src/components/Card/Card.tsx +15 -4
  52. package/src/components/Card/ElevationCard.tsx +2 -0
  53. package/src/components/Chart/AnimatedChart.tsx +179 -156
  54. package/src/components/Chart/AreaChart.tsx +123 -12
  55. package/src/components/Chart/BarChart.tsx +91 -100
  56. package/src/components/Chart/BaseChart.tsx +80 -0
  57. package/src/components/Chart/BubbleChart.tsx +114 -290
  58. package/src/components/Chart/CandlestickChart.tsx +282 -622
  59. package/src/components/Chart/Chart.stories.tsx +576 -179
  60. package/src/components/Chart/Chart.tsx +374 -75
  61. package/src/components/Chart/ChartRenderer.tsx +371 -220
  62. package/src/components/Chart/ChartToolbar.tsx +372 -61
  63. package/src/components/Chart/ChartTooltip.tsx +33 -18
  64. package/src/components/Chart/DonutChart.tsx +172 -254
  65. package/src/components/Chart/FunnelChart.tsx +169 -240
  66. package/src/components/Chart/GaugeChart.tsx +224 -392
  67. package/src/components/Chart/HeatmapChart.tsx +302 -440
  68. package/src/components/Chart/LineChart.tsx +148 -103
  69. package/src/components/Chart/MultiAxisChart.tsx +267 -395
  70. package/src/components/Chart/PieChart.tsx +114 -64
  71. package/src/components/Chart/RadarChart.tsx +202 -218
  72. package/src/components/Chart/ScatterChart.tsx +111 -97
  73. package/src/components/Chart/TreemapChart.tsx +147 -222
  74. package/src/components/Chart/WaterfallChart.tsx +253 -291
  75. package/src/components/Chart/index.ts +11 -9
  76. package/src/components/Chart/types.ts +85 -9
  77. package/src/components/Chart/utils.ts +66 -0
  78. package/src/components/ColorModeToggle/ColorModeToggle.tsx +6 -3
  79. package/src/components/Countdown/Countdown.tsx +4 -0
  80. package/src/components/DataTable/DataTable.tsx +2 -1
  81. package/src/components/DatePicker/DatePicker.stories.tsx +689 -12
  82. package/src/components/DatePicker/DatePicker.tsx +3 -9
  83. package/src/components/DatePicker/types.ts +5 -0
  84. package/src/components/Dropdown/Dropdown.stories.tsx +32 -25
  85. package/src/components/Dropdown/Dropdown.tsx +26 -28
  86. package/src/components/EdgePanel/EdgePanel.stories.tsx +473 -2
  87. package/src/components/EdgePanel/EdgePanel.tsx +101 -13
  88. package/src/components/Footer/Footer.stories.tsx +187 -60
  89. package/src/components/Footer/Footer.test.tsx +134 -0
  90. package/src/components/Footer/Footer.tsx +133 -34
  91. package/src/components/Footer/FooterLink.tsx +1 -1
  92. package/src/components/Footer/FooterSection.tsx +53 -36
  93. package/src/components/Footer/FooterSocialLink.tsx +32 -29
  94. package/src/components/Footer/README.md +82 -3
  95. package/src/components/Footer/index.ts +1 -1
  96. package/src/components/Form/Checkbox.stories.tsx +13 -5
  97. package/src/components/Form/Checkbox.tsx +3 -6
  98. package/src/components/Form/Form.stories.tsx +10 -3
  99. package/src/components/Form/Form.tsx +2 -0
  100. package/src/components/Form/FormGroup.tsx +2 -1
  101. package/src/components/Form/Input.stories.tsx +12 -11
  102. package/src/components/Form/Input.tsx +97 -95
  103. package/src/components/Form/Radio.stories.tsx +22 -7
  104. package/src/components/Form/Radio.tsx +3 -6
  105. package/src/components/Form/Select.stories.tsx +21 -6
  106. package/src/components/Form/Select.tsx +3 -5
  107. package/src/components/Form/Textarea.stories.tsx +13 -11
  108. package/src/components/Form/Textarea.tsx +88 -86
  109. package/src/components/Hero/Hero.stories.tsx +2 -3
  110. package/src/components/Hero/Hero.tsx +5 -6
  111. package/src/components/Icon/Icon.tsx +12 -1
  112. package/src/components/List/List.tsx +2 -1
  113. package/src/components/List/ListGroup.tsx +2 -1
  114. package/src/components/Messages/Messages.stories.tsx +113 -0
  115. package/src/components/Messages/Messages.tsx +52 -9
  116. package/src/components/Modal/Modal.stories.tsx +48 -32
  117. package/src/components/Modal/Modal.tsx +19 -24
  118. package/src/components/Navigation/Menu/MegaMenu.tsx +2 -2
  119. package/src/components/Navigation/Menu/Menu.tsx +2 -2
  120. package/src/components/Navigation/Nav/Nav.stories.tsx +469 -0
  121. package/src/components/Navigation/Nav/Nav.tsx +22 -4
  122. package/src/components/Navigation/Nav/NavDropdown.tsx +10 -1
  123. package/src/components/Navigation/Navbar/Navbar.stories.tsx +413 -0
  124. package/src/components/Navigation/Navbar/Navbar.tsx +70 -29
  125. package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +340 -0
  126. package/src/components/Navigation/SideMenu/SideMenu.tsx +29 -2
  127. package/src/components/Pagination/Pagination.stories.tsx +13 -6
  128. package/src/components/Pagination/Pagination.tsx +7 -6
  129. package/src/components/PhotoViewer/PhotoViewer.tsx +2 -1
  130. package/src/components/Popover/Popover.stories.tsx +32 -24
  131. package/src/components/Popover/Popover.tsx +4 -1
  132. package/src/components/ProductReview/ProductReview.tsx +8 -2
  133. package/src/components/Progress/Progress.tsx +19 -3
  134. package/src/components/Rating/Rating.stories.tsx +11 -6
  135. package/src/components/Rating/Rating.tsx +3 -5
  136. package/src/components/River/River.tsx +5 -5
  137. package/src/components/SectionIntro/SectionIntro.tsx +8 -2
  138. package/src/components/Slider/Slider.stories.tsx +4 -4
  139. package/src/components/Slider/Slider.tsx +4 -3
  140. package/src/components/Spinner/Spinner.tsx +19 -3
  141. package/src/components/Steps/Steps.stories.tsx +5 -4
  142. package/src/components/Steps/Steps.tsx +8 -5
  143. package/src/components/Tab/Tab.stories.tsx +4 -3
  144. package/src/components/Tab/Tab.tsx +8 -6
  145. package/src/components/Testimonial/Testimonial.tsx +8 -2
  146. package/src/components/Todo/Todo.tsx +2 -1
  147. package/src/components/Toggle/Toggle.stories.tsx +5 -4
  148. package/src/components/Toggle/Toggle.tsx +8 -5
  149. package/src/components/Tooltip/Tooltip.stories.tsx +40 -30
  150. package/src/components/Tooltip/Tooltip.tsx +9 -2
  151. package/src/components/Upload/Upload.stories.tsx +252 -0
  152. package/src/components/Upload/Upload.tsx +92 -53
  153. package/src/components/VideoPlayer/VideoPlayer.tsx +3 -1
  154. package/src/components/index.ts +0 -4
  155. package/src/layouts/Grid/Grid.stories.tsx +10 -23
  156. package/src/layouts/Grid/Grid.tsx +20 -1
  157. package/src/layouts/Grid/GridCol.tsx +76 -48
  158. package/src/lib/composables/useAtomixGlass.ts +861 -44
  159. package/src/lib/composables/useBarChart.ts +21 -4
  160. package/src/lib/composables/useChart.ts +227 -370
  161. package/src/lib/composables/useChartExport.ts +19 -78
  162. package/src/lib/composables/useChartToolbar.ts +11 -21
  163. package/src/lib/composables/useEdgePanel.ts +125 -71
  164. package/src/lib/composables/useFooter.ts +3 -3
  165. package/src/lib/composables/useGlassContainer.ts +16 -7
  166. package/src/lib/composables/useLineChart.ts +11 -2
  167. package/src/lib/composables/usePieChart.ts +4 -14
  168. package/src/lib/composables/useRiver.ts +5 -0
  169. package/src/lib/composables/useSlider.ts +62 -24
  170. package/src/lib/composables/useVideoPlayer.ts +60 -63
  171. package/src/lib/constants/components.ts +147 -32
  172. package/src/lib/types/components.ts +355 -25
  173. package/src/lib/utils/displacement-generator.ts +55 -49
  174. package/src/lib/utils/icons.ts +1 -1
  175. package/src/lib/utils/index.ts +16 -10
  176. package/src/styles/01-settings/_settings.accordion.scss +19 -19
  177. package/src/styles/01-settings/_settings.animations.scss +5 -5
  178. package/src/styles/01-settings/_settings.avatar-group.scss +1 -1
  179. package/src/styles/01-settings/_settings.avatar.scss +17 -17
  180. package/src/styles/01-settings/_settings.background.scss +0 -3
  181. package/src/styles/01-settings/_settings.badge.scss +1 -1
  182. package/src/styles/01-settings/_settings.breadcrumb.scss +1 -1
  183. package/src/styles/01-settings/_settings.card.scss +1 -1
  184. package/src/styles/01-settings/_settings.chart.scss +65 -2
  185. package/src/styles/01-settings/_settings.dropdown.scss +1 -1
  186. package/src/styles/01-settings/_settings.edge-panel.scss +1 -1
  187. package/src/styles/01-settings/_settings.footer.scss +35 -42
  188. package/src/styles/01-settings/_settings.input.scss +1 -1
  189. package/src/styles/01-settings/_settings.list.scss +1 -1
  190. package/src/styles/01-settings/_settings.rating.scss +1 -1
  191. package/src/styles/01-settings/_settings.tabs.scss +1 -1
  192. package/src/styles/01-settings/_settings.upload.scss +6 -5
  193. package/src/styles/02-tools/_tools.animations.scss +4 -5
  194. package/src/styles/02-tools/_tools.background.scss +1 -13
  195. package/src/styles/02-tools/_tools.glass.scss +0 -1
  196. package/src/styles/02-tools/_tools.utility-api.scss +91 -48
  197. package/src/styles/03-generic/_generic.root.scss +1 -4
  198. package/src/styles/04-elements/_elements.body.scss +0 -1
  199. package/src/styles/06-components/_components.atomix-glass.scss +249 -0
  200. package/src/styles/06-components/_components.badge.scss +8 -23
  201. package/src/styles/06-components/_components.button.scss +8 -3
  202. package/src/styles/06-components/_components.callout.scss +10 -5
  203. package/src/styles/06-components/_components.card.scss +2 -14
  204. package/src/styles/06-components/_components.chart.scss +969 -1449
  205. package/src/styles/06-components/_components.dropdown.scss +19 -7
  206. package/src/styles/06-components/_components.edge-panel.scss +103 -0
  207. package/src/styles/06-components/_components.footer.scss +166 -85
  208. package/src/styles/06-components/_components.input.scss +8 -9
  209. package/src/styles/06-components/_components.list.scss +1 -0
  210. package/src/styles/06-components/_components.messages.scss +176 -0
  211. package/src/styles/06-components/_components.modal.scss +16 -4
  212. package/src/styles/06-components/_components.navbar.scss +12 -1
  213. package/src/styles/06-components/_components.side-menu.scss +5 -0
  214. package/src/styles/06-components/_components.skeleton.scss +8 -6
  215. package/src/styles/06-components/_components.upload.scss +219 -4
  216. package/src/styles/06-components/old.chart.styles.scss +1 -30
  217. package/src/styles/99-utilities/_index.scss +1 -0
  218. package/src/styles/99-utilities/_utilities.glass-fixes.scss +1 -0
  219. package/src/styles/99-utilities/_utilities.scss +1 -1
  220. package/src/components/AtomixGlass/AtomixGlass.stories.tsx +0 -3011
  221. package/src/components/AtomixGlass/AtomixGlassComprehensivePreview.stories.tsx +0 -1369
  222. package/src/components/Chart/AdvancedChart.tsx +0 -624
  223. package/src/components/Chart/LineChartNew.tsx +0 -167
  224. package/src/components/Chart/RealTimeChart.tsx +0 -436
  225. package/src/components/DatePicker/DatePicker copy.tsx +0 -551
@@ -0,0 +1,1065 @@
1
+ /**
2
+ * Modes.stories.tsx
3
+ *
4
+ * Professional showcase of AtomixGlass rendering modes with modern layouts.
5
+ * Each mode demonstrates unique visual characteristics and displacement patterns.
6
+ *
7
+ * @package Atomix
8
+ * @component AtomixGlass
9
+ */
10
+
11
+ import { Meta, StoryObj } from '@storybook/react';
12
+ import AtomixGlass from '../AtomixGlass';
13
+ import { BackgroundWrapper } from './shared-components';
14
+ import React, { useState } from 'react';
15
+ import { Grid, GridCol, Container } from '../../../layouts/Grid';
16
+
17
+ const meta: Meta<typeof AtomixGlass> = {
18
+ title: 'Components/AtomixGlass/Modes',
19
+ component: AtomixGlass,
20
+ parameters: {
21
+ layout: 'fullscreen',
22
+ docs: {
23
+ description: {
24
+ component:
25
+ 'Explore four distinct rendering modes in AtomixGlass. Each mode offers unique displacement patterns, visual characteristics, and performance profiles optimized for different use cases.',
26
+ },
27
+ },
28
+ },
29
+ tags: ['autodocs'],
30
+ };
31
+
32
+ export default meta;
33
+ type Story = StoryObj<typeof AtomixGlass>;
34
+
35
+ /**
36
+ * Mode Comparison Gallery
37
+ *
38
+ * A comprehensive showcase comparing all four rendering modes side-by-side.
39
+ * Perfect for understanding the visual differences and selecting the right mode for your needs.
40
+ */
41
+ export const ModeGallery: Story = {
42
+ parameters: {
43
+ docs: {
44
+ description: {
45
+ story:
46
+ 'Interactive gallery showcasing all four rendering modes. Click any card to see the mode in action with optimized settings.',
47
+ },
48
+ },
49
+ },
50
+ render: () => {
51
+ // eslint-disable-next-line react-hooks/rules-of-hooks
52
+ const [selectedMode, setSelectedMode] = useState<string | null>(null);
53
+
54
+ const modes = [
55
+ {
56
+ id: 'standard',
57
+ name: 'Standard',
58
+ icon: '✨',
59
+ gradient: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
60
+ description: 'Balanced displacement with uniform distortion patterns',
61
+ features: [
62
+ 'Optimal performance',
63
+ 'Uniform displacement',
64
+ 'Smooth transitions',
65
+ 'Best for production',
66
+ ],
67
+ settings: {
68
+ displacementScale: 120,
69
+ blurAmount: 1.5,
70
+ saturation: 140,
71
+ aberrationIntensity: 2,
72
+ },
73
+ useCase: 'Perfect for cards, modals, and general UI elements',
74
+ },
75
+ {
76
+ id: 'polar',
77
+ name: 'Polar',
78
+ icon: '🌀',
79
+ gradient: 'linear-gradient(135deg, #f093fb 0%, #f5576c 100%)',
80
+ description: 'Circular refraction with radial displacement patterns',
81
+ features: [
82
+ 'Circular distortion',
83
+ 'Radial patterns',
84
+ 'Dynamic center point',
85
+ 'Eye-catching effect',
86
+ ],
87
+ settings: {
88
+ displacementScale: 100,
89
+ blurAmount: 1.2,
90
+ saturation: 150,
91
+ aberrationIntensity: 2.5,
92
+ },
93
+ useCase: 'Ideal for hero sections and feature highlights',
94
+ },
95
+ {
96
+ id: 'prominent',
97
+ name: 'Prominent',
98
+ icon: '💫',
99
+ gradient: 'linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)',
100
+ description: 'Enhanced displacement with stronger edge effects',
101
+ features: [
102
+ 'Amplified distortion',
103
+ 'Edge enhancement',
104
+ 'High visual impact',
105
+ 'Premium feel',
106
+ ],
107
+ settings: {
108
+ displacementScale: 140,
109
+ blurAmount: 1.8,
110
+ saturation: 155,
111
+ aberrationIntensity: 3,
112
+ },
113
+ useCase: 'Great for call-to-action elements and premium content',
114
+ },
115
+ {
116
+ id: 'shader',
117
+ name: 'Shader',
118
+ icon: '🔮',
119
+ gradient: 'linear-gradient(135deg, #fa709a 0%, #fee140 100%)',
120
+ description: 'Advanced shader-based rendering with maximum visual fidelity',
121
+ features: [
122
+ 'Shader-based effects',
123
+ 'Maximum quality',
124
+ 'Time-based animation',
125
+ 'Apple-style fluid',
126
+ ],
127
+ settings: {
128
+ displacementScale: 25,
129
+ blurAmount: 2,
130
+ saturation: 160,
131
+ aberrationIntensity: 2.8,
132
+ },
133
+ useCase: 'Best for hero sections and premium experiences',
134
+ },
135
+ ];
136
+
137
+ return (
138
+ <BackgroundWrapper
139
+ backgroundImage="https://images.unsplash.com/photo-1760196339465-e403a30d662e?ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&q=80&w=1493"
140
+ height="100vh"
141
+ width="100vw"
142
+ overlayOpacity={0.3}
143
+ borderRadius="0"
144
+ >
145
+ <div style={{ width: '100%', maxWidth: '1400px', padding: '60px 40px' }}>
146
+ {/* Header Section */}
147
+ <div style={{ textAlign: 'center', marginBottom: '60px' }}>
148
+ <AtomixGlass
149
+ mode="standard"
150
+ displacementScale={80}
151
+ blurAmount={1}
152
+ saturation={130}
153
+ cornerRadius={20}
154
+ elasticity={0.12}
155
+ className="u-mb-4 d-inline-block"
156
+ >
157
+ Four Rendering Modes
158
+ </AtomixGlass>
159
+ <h1
160
+ style={{
161
+ margin: '0 0 16px 0',
162
+ fontSize: '48px',
163
+ fontWeight: 700,
164
+ color: '#fff',
165
+ letterSpacing: '-1px',
166
+ textShadow: '0 4px 12px rgba(0,0,0,0.3)',
167
+ }}
168
+ >
169
+ AtomixGlass Modes
170
+ </h1>
171
+ <p
172
+ style={{
173
+ fontSize: '18px',
174
+ color: 'rgba(255, 255, 255, 0.85)',
175
+ maxWidth: '680px',
176
+ margin: '0 auto',
177
+ lineHeight: 1.6,
178
+ textShadow: '0 2px 4px rgba(0,0,0,0.2)',
179
+ }}
180
+ >
181
+ Choose from four distinct rendering modes, each optimized for different visual styles
182
+ and performance requirements.
183
+ </p>
184
+ </div>
185
+
186
+ {/* Modes Grid */}
187
+ <Container>
188
+ <Grid>
189
+ {modes.map(mode => {
190
+ const isSelected = selectedMode === mode.id;
191
+
192
+ return (
193
+ <GridCol xs={12} md={6} className="u-mb-4">
194
+ <AtomixGlass
195
+ key={mode.id}
196
+ mode={mode.id as any}
197
+ displacementScale={mode.settings.displacementScale}
198
+ blurAmount={mode.settings.blurAmount}
199
+ saturation={mode.settings.saturation}
200
+ aberrationIntensity={mode.settings.aberrationIntensity}
201
+ shaderVariant={mode.id === 'shader' ? 'premiumGlass' : undefined}
202
+ elasticity={0}
203
+ cornerRadius={24}
204
+ onClick={() => setSelectedMode(isSelected ? null : mode.id)}
205
+ style={{
206
+ cursor: 'pointer',
207
+ transition: 'all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1)',
208
+ transform: isSelected ? 'scale(1.03)' : 'scale(1)',
209
+ }}
210
+ >
211
+ <div
212
+ style={{
213
+ padding: '32px 28px',
214
+ minHeight: '420px',
215
+ display: 'flex',
216
+ flexDirection: 'column',
217
+ transition: 'all 0.3s ease',
218
+ }}
219
+ >
220
+ {/* Icon and Badge */}
221
+ <div style={{ marginBottom: '24px' }}>
222
+ <div
223
+ style={{
224
+ width: '64px',
225
+ height: '64px',
226
+ borderRadius: '18px',
227
+ background: mode.gradient,
228
+ display: 'flex',
229
+ alignItems: 'center',
230
+ justifyContent: 'center',
231
+ fontSize: '32px',
232
+ marginBottom: '16px',
233
+ boxShadow: '0 8px 24px rgba(0,0,0,0.25)',
234
+ position: 'relative',
235
+ }}
236
+ >
237
+ <div
238
+ style={{
239
+ position: 'absolute',
240
+ inset: '-3px',
241
+ borderRadius: '20px',
242
+ background: mode.gradient,
243
+ opacity: 0.4,
244
+ filter: 'blur(10px)',
245
+ }}
246
+ />
247
+ <span style={{ position: 'relative', zIndex: 1 }}>{mode.icon}</span>
248
+ </div>
249
+ </div>
250
+
251
+ {/* Content */}
252
+ <div style={{ flex: 1 }}>
253
+ <h3
254
+ style={{
255
+ margin: '0 0 12px 0',
256
+ fontSize: '26px',
257
+ fontWeight: 600,
258
+ color: '#fff',
259
+ letterSpacing: '-0.5px',
260
+ }}
261
+ >
262
+ {mode.name}
263
+ </h3>
264
+ <p
265
+ style={{
266
+ margin: '0 0 20px 0',
267
+ fontSize: '14px',
268
+ lineHeight: 1.6,
269
+ color: 'rgba(255, 255, 255, 0.8)',
270
+ }}
271
+ >
272
+ {mode.description}
273
+ </p>
274
+
275
+ {/* Features List */}
276
+ <div
277
+ style={{
278
+ display: 'flex',
279
+ flexDirection: 'column',
280
+ gap: '8px',
281
+ marginBottom: '20px',
282
+ }}
283
+ >
284
+ {mode.features.map((feature, idx) => (
285
+ <div
286
+ key={idx}
287
+ style={{
288
+ display: 'flex',
289
+ alignItems: 'center',
290
+ gap: '8px',
291
+ fontSize: '13px',
292
+ color: 'rgba(255, 255, 255, 0.75)',
293
+ }}
294
+ >
295
+ <div
296
+ style={{
297
+ width: '4px',
298
+ height: '4px',
299
+ borderRadius: '50%',
300
+ background: mode.gradient,
301
+ }}
302
+ />
303
+ {feature}
304
+ </div>
305
+ ))}
306
+ </div>
307
+
308
+ {/* Use Case */}
309
+ <div
310
+ style={{
311
+ padding: '12px 16px',
312
+ borderRadius: '12px',
313
+ background: 'rgba(255, 255, 255, 0.08)',
314
+ border: '1px solid rgba(255, 255, 255, 0.1)',
315
+ fontSize: '12px',
316
+ lineHeight: 1.5,
317
+ color: 'rgba(255, 255, 255, 0.7)',
318
+ marginTop: 'auto',
319
+ }}
320
+ >
321
+ <strong style={{ color: '#fff' }}>Use Case:</strong> {mode.useCase}
322
+ </div>
323
+ </div>
324
+
325
+ {/* Settings Info */}
326
+ <div
327
+ style={{
328
+ marginTop: '20px',
329
+ paddingTop: '16px',
330
+ borderTop: '1px solid rgba(255, 255, 255, 0.1)',
331
+ display: 'flex',
332
+ flexWrap: 'wrap',
333
+ gap: '8px',
334
+ }}
335
+ >
336
+ {Object.entries(mode.settings).map(([key, value]) => (
337
+ <span
338
+ key={key}
339
+ style={{
340
+ padding: '4px 10px',
341
+ fontSize: '11px',
342
+ borderRadius: '8px',
343
+ background: 'rgba(0, 0, 0, 0.2)',
344
+ color: 'rgba(255, 255, 255, 0.6)',
345
+ fontFamily: 'monospace',
346
+ }}
347
+ >
348
+ {key.replace(/([A-Z])/g, ' $1').trim()}: {value}
349
+ </span>
350
+ ))}
351
+ </div>
352
+ </div>
353
+ </AtomixGlass>
354
+ </GridCol>
355
+ );
356
+ })}
357
+ </Grid>
358
+ </Container>
359
+
360
+ {/* Info Card */}
361
+ <AtomixGlass
362
+ mode="standard"
363
+ displacementScale={80}
364
+ blurAmount={1}
365
+ saturation={130}
366
+ cornerRadius={20}
367
+ elasticity={0.12}
368
+ className="u-mt-8"
369
+ >
370
+ <div
371
+ style={{
372
+ padding: '28px 32px',
373
+ display: 'flex',
374
+ alignItems: 'center',
375
+ gap: '24px',
376
+ flexWrap: 'wrap',
377
+ }}
378
+ >
379
+ <div
380
+ style={{
381
+ fontSize: '36px',
382
+ width: '56px',
383
+ height: '56px',
384
+ display: 'flex',
385
+ alignItems: 'center',
386
+ justifyContent: 'center',
387
+ borderRadius: '16px',
388
+ background: 'rgba(255, 255, 255, 0.15)',
389
+ }}
390
+ >
391
+ 💡
392
+ </div>
393
+ <div style={{ flex: 1, minWidth: '280px' }}>
394
+ <h4
395
+ style={{
396
+ margin: '0 0 8px 0',
397
+ fontSize: '18px',
398
+ fontWeight: 600,
399
+ color: '#fff',
400
+ }}
401
+ >
402
+ Choosing the Right Mode
403
+ </h4>
404
+ <p
405
+ style={{
406
+ margin: 0,
407
+ fontSize: '14px',
408
+ lineHeight: 1.6,
409
+ color: 'rgba(255, 255, 255, 0.8)',
410
+ }}
411
+ >
412
+ <strong>Standard</strong> offers the best balance for most uses.{' '}
413
+ <strong>Polar</strong> creates eye-catching radial effects.{' '}
414
+ <strong>Prominent</strong> amplifies visual impact for premium content.{' '}
415
+ <strong>Shader</strong> delivers maximum quality with advanced GPU-accelerated
416
+ rendering.
417
+ </p>
418
+ </div>
419
+ </div>
420
+ </AtomixGlass>
421
+ </div>
422
+ </BackgroundWrapper>
423
+ );
424
+ },
425
+ };
426
+
427
+ /**
428
+ * Shader Mode
429
+ *
430
+ * Advanced GPU-accelerated shader rendering with time-based animations.
431
+ * The pinnacle of AtomixGlass visual quality with Apple-style fluid effects.
432
+ */
433
+ export const Shader: Story = {
434
+ args: {
435
+ children: (
436
+ <div style={{ padding: '40px 36px', textAlign: 'center', maxWidth: '440px' }}>
437
+ <div
438
+ style={{
439
+ width: '68px',
440
+ height: '68px',
441
+ margin: '0 auto 24px',
442
+ borderRadius: '20px',
443
+ background:
444
+ 'url(https://images.unsplash.com/photo-1760196339465-e403a30d662e?ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&q=80&w=1493)',
445
+ display: 'flex',
446
+ alignItems: 'center',
447
+ justifyContent: 'center',
448
+ fontSize: '36px',
449
+ boxShadow: '0 12px 32px rgba(250, 112, 154, 0.5)',
450
+ }}
451
+ >
452
+ 🔮
453
+ </div>
454
+ <h2
455
+ style={{
456
+ margin: '0 0 16px 0',
457
+ fontSize: '32px',
458
+ fontWeight: 700,
459
+ color: '#fff',
460
+ letterSpacing: '-0.5px',
461
+ }}
462
+ >
463
+ Shader Mode
464
+ </h2>
465
+ <p
466
+ style={{
467
+ margin: '0 0 24px 0',
468
+ fontSize: '16px',
469
+ lineHeight: 1.7,
470
+ color: 'rgba(255, 255, 255, 0.85)',
471
+ }}
472
+ >
473
+ GPU-accelerated shader rendering with maximum visual fidelity. Features time-based
474
+ animations and Apple-style liquid glass effects.
475
+ </p>
476
+ <div
477
+ style={{
478
+ display: 'grid',
479
+ gridTemplateColumns: '1fr 1fr',
480
+ gap: '12px',
481
+ }}
482
+ >
483
+ {[
484
+ { label: 'Technology', value: '🖥️ GPU Shader' },
485
+ { label: 'Fidelity', value: '🌟 Maximum' },
486
+ { label: 'Animation', value: '⏰ Time-based' },
487
+ { label: 'Style', value: '🍎 Apple-like' },
488
+ ].map(item => (
489
+ <div
490
+ key={item.label}
491
+ style={{
492
+ padding: '12px',
493
+ borderRadius: '12px',
494
+ background: 'rgba(255, 255, 255, 0.1)',
495
+ backdropFilter: 'blur(8px)',
496
+ border: '1px solid rgba(255, 255, 255, 0.15)',
497
+ }}
498
+ >
499
+ <div
500
+ style={{
501
+ fontSize: '11px',
502
+ textTransform: 'uppercase',
503
+ fontWeight: 600,
504
+ letterSpacing: '0.5px',
505
+ color: 'rgba(255, 255, 255, 0.6)',
506
+ marginBottom: '4px',
507
+ }}
508
+ >
509
+ {item.label}
510
+ </div>
511
+ <div style={{ fontSize: '13px', color: '#fff', fontWeight: 600 }}>{item.value}</div>
512
+ </div>
513
+ ))}
514
+ </div>
515
+ </div>
516
+ ),
517
+ displacementScale: 25,
518
+ blurAmount: 2,
519
+ saturation: 160,
520
+ aberrationIntensity: 2.8,
521
+ elasticity: 0.2,
522
+ cornerRadius: 28,
523
+ mode: 'shader',
524
+ shaderVariant: 'premiumGlass',
525
+ },
526
+ decorators: [
527
+ Story => (
528
+ <BackgroundWrapper
529
+ backgroundImage="https://images.unsplash.com/photo-1557683316-973673baf926?q=80&w=3029&auto=format&fit=crop"
530
+ height="100vh"
531
+ width="100vw"
532
+ overlayOpacity={0.3}
533
+ borderRadius="0"
534
+ >
535
+ <Story />
536
+ </BackgroundWrapper>
537
+ ),
538
+ ],
539
+ parameters: {
540
+ docs: {
541
+ description: {
542
+ story:
543
+ 'Shader mode uses advanced GPU-accelerated rendering for maximum visual quality. Features time-based animations and multiple shader variants including liquidGlass, appleFluid, and premiumGlass.',
544
+ },
545
+ },
546
+ },
547
+ };
548
+
549
+ /**
550
+ * Shader Variants Gallery
551
+ *
552
+ * A comprehensive showcase of all available shader variants with their unique characteristics.
553
+ * Each variant is optimized for different visual styles and use cases.
554
+ */
555
+ export const ShaderVariants: Story = {
556
+ parameters: {
557
+ docs: {
558
+ description: {
559
+ story:
560
+ 'Explore five premium shader variants, each offering distinct visual characteristics from liquid glass to metallic effects. Click any card to see it in action.',
561
+ },
562
+ },
563
+ },
564
+ render: () => {
565
+ // eslint-disable-next-line react-hooks/rules-of-hooks
566
+ const [activeVariant, setActiveVariant] = useState<string | null>(null);
567
+
568
+ const variants = [
569
+ {
570
+ id: 'liquidGlass',
571
+ name: 'Liquid Glass',
572
+ icon: '💧',
573
+ gradient: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
574
+ shadowColor: 'rgba(102, 126, 234, 0.6)',
575
+ description:
576
+ 'Enhanced liquid glass with time-based animations and multi-layered organic distortion',
577
+ features: [
578
+ 'Time-based animation',
579
+ 'Multi-layer distortion',
580
+ 'Chromatic aberration',
581
+ 'Depth effects',
582
+ 'Organic flow patterns',
583
+ ],
584
+ specs: {
585
+ complexity: 'High',
586
+ performance: 'Good',
587
+ animation: 'Continuous',
588
+ gpuLoad: 'Medium',
589
+ },
590
+ displacementScale: 20,
591
+ },
592
+ {
593
+ id: 'appleFluid',
594
+ name: 'Apple Fluid',
595
+ icon: '🌊',
596
+ gradient: 'linear-gradient(135deg, #f093fb 0%, #f5576c 100%)',
597
+ shadowColor: 'rgba(245, 87, 108, 0.6)',
598
+ description: 'Premium fluid glass with vortex effects and high-quality organic distortion',
599
+ features: [
600
+ 'Vortex effects',
601
+ '5-octave noise',
602
+ 'Fluid dynamics',
603
+ 'Mouse-driven flow',
604
+ 'Apple-style rendering',
605
+ ],
606
+ specs: {
607
+ complexity: 'Very High',
608
+ performance: 'Good',
609
+ animation: 'Interactive',
610
+ gpuLoad: 'High',
611
+ },
612
+ displacementScale: 20,
613
+ },
614
+ {
615
+ id: 'premiumGlass',
616
+ name: 'Premium Glass',
617
+ icon: '💎',
618
+ gradient: 'linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)',
619
+ shadowColor: 'rgba(79, 172, 254, 0.6)',
620
+ description: 'High-end glass with advanced refraction and multi-layer depth effects',
621
+ features: [
622
+ 'Advanced refraction',
623
+ 'Multi-layer depth',
624
+ 'Radial distortion',
625
+ 'Edge-aware rendering',
626
+ 'Premium quality',
627
+ ],
628
+ specs: {
629
+ complexity: 'High',
630
+ performance: 'Excellent',
631
+ animation: 'Smooth',
632
+ gpuLoad: 'Medium',
633
+ },
634
+ displacementScale: 20,
635
+ },
636
+ {
637
+ id: 'liquidMetal',
638
+ name: 'Liquid Metal',
639
+ icon: '✨',
640
+ gradient: 'linear-gradient(135deg, #ffecd2 0%, #fcb69f 100%)',
641
+ shadowColor: 'rgba(252, 182, 159, 0.6)',
642
+ description: 'Metallic liquid effect with shimmer and wave patterns',
643
+ features: [
644
+ 'Metallic waves',
645
+ 'Shimmer effect',
646
+ '4-octave noise',
647
+ 'High-frequency animation',
648
+ 'Reflective surface',
649
+ ],
650
+ specs: {
651
+ complexity: 'High',
652
+ performance: 'Good',
653
+ animation: 'Fast',
654
+ gpuLoad: 'Medium-High',
655
+ },
656
+ displacementScale: 20,
657
+ },
658
+ ];
659
+
660
+ return (
661
+ <BackgroundWrapper
662
+ backgroundImage="https://images.unsplash.com/photo-1530569427831-a0a4b8a0d206?q=80&w=2071&auto=format&fit=crop"
663
+ height="100vh"
664
+ width="100vw"
665
+ overlayOpacity={0.35}
666
+ borderRadius="0"
667
+ >
668
+ <div style={{ width: '100%', maxWidth: '1600px', padding: '60px 40px' }}>
669
+ {/* Header */}
670
+ <div style={{ textAlign: 'center', marginBottom: '56px' }}>
671
+ <div
672
+ style={{
673
+ display: 'inline-block',
674
+ padding: '8px 20px',
675
+ borderRadius: '24px',
676
+ background: 'rgba(255, 255, 255, 0.12)',
677
+ backdropFilter: 'blur(12px)',
678
+ marginBottom: '20px',
679
+ fontSize: '13px',
680
+ fontWeight: 600,
681
+ letterSpacing: '1px',
682
+ textTransform: 'uppercase',
683
+ color: 'rgba(255, 255, 255, 0.9)',
684
+ border: '1px solid rgba(255, 255, 255, 0.15)',
685
+ }}
686
+ >
687
+ Premium Shader Technology
688
+ </div>
689
+ <h1
690
+ style={{
691
+ margin: '0 0 20px 0',
692
+ fontSize: '56px',
693
+ fontWeight: 700,
694
+ background: 'linear-gradient(135deg, #fff 0%, rgba(255,255,255,0.7) 100%)',
695
+ WebkitBackgroundClip: 'text',
696
+ WebkitTextFillColor: 'transparent',
697
+ backgroundClip: 'text',
698
+ letterSpacing: '-1.5px',
699
+ textShadow: '0 4px 12px rgba(0,0,0,0.1)',
700
+ }}
701
+ >
702
+ Apple-Style Shader Variants
703
+ </h1>
704
+ <p
705
+ style={{
706
+ fontSize: '20px',
707
+ color: 'rgba(255, 255, 255, 0.85)',
708
+ maxWidth: '720px',
709
+ margin: '0 auto',
710
+ lineHeight: 1.6,
711
+ textShadow: '0 2px 4px rgba(0,0,0,0.2)',
712
+ }}
713
+ >
714
+ Experience the pinnacle of liquid glass design with GPU-accelerated shader variants
715
+ featuring time-based animations and organic flow patterns.
716
+ </p>
717
+ </div>
718
+
719
+ {/* Variants Grid */}
720
+ <div
721
+ style={{
722
+ display: 'grid',
723
+ gridTemplateColumns: 'repeat(auto-fit, minmax(340px, 1fr))',
724
+ gap: '32px',
725
+ marginBottom: '56px',
726
+ }}
727
+ >
728
+ {variants.map(variant => {
729
+ const isActive = activeVariant === variant.id;
730
+
731
+ return (
732
+ <AtomixGlass
733
+ key={variant.id}
734
+ mode="shader"
735
+ shaderVariant={variant.id as any}
736
+ displacementScale={variant.displacementScale}
737
+ blurAmount={1.5}
738
+ elasticity={0}
739
+ cornerRadius={28}
740
+ onClick={() => setActiveVariant(isActive ? null : variant.id)}
741
+ style={{
742
+ cursor: 'pointer',
743
+ transition: 'all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1)',
744
+ transform: isActive ? 'scale(1.02) translateY(-8px)' : 'scale(1)',
745
+ }}
746
+ >
747
+ <div
748
+ style={{
749
+ padding: '36px 28px',
750
+ minHeight: '500px',
751
+ display: 'flex',
752
+ flexDirection: 'column',
753
+ }}
754
+ >
755
+ {/* Header with icon */}
756
+ <div style={{ marginBottom: '28px' }}>
757
+ <div
758
+ style={{
759
+ width: '72px',
760
+ height: '72px',
761
+ borderRadius: '20px',
762
+ background: variant.gradient,
763
+ display: 'flex',
764
+ alignItems: 'center',
765
+ justifyContent: 'center',
766
+ fontSize: '40px',
767
+ marginBottom: '20px',
768
+ boxShadow: `0 12px 32px ${variant.shadowColor}`,
769
+ position: 'relative',
770
+ }}
771
+ >
772
+ <div
773
+ style={{
774
+ position: 'absolute',
775
+ inset: '-4px',
776
+ borderRadius: '24px',
777
+ background: variant.gradient,
778
+ opacity: 0.4,
779
+ filter: 'blur(16px)',
780
+ }}
781
+ />
782
+ <span style={{ position: 'relative', zIndex: 1 }}>{variant.icon}</span>
783
+ </div>
784
+ <div
785
+ style={{
786
+ display: 'inline-block',
787
+ padding: '5px 14px',
788
+ borderRadius: '14px',
789
+ background: 'rgba(102, 126, 234, 0.3)',
790
+ border: '1px solid rgba(102, 126, 234, 0.5)',
791
+ fontSize: '11px',
792
+ fontWeight: 700,
793
+ letterSpacing: '0.5px',
794
+ textTransform: 'uppercase',
795
+ color: '#fff',
796
+ }}
797
+ >
798
+ Active
799
+ </div>
800
+ </div>
801
+
802
+ {/* Title and description */}
803
+ <h3
804
+ style={{
805
+ margin: '0 0 12px 0',
806
+ fontSize: '28px',
807
+ fontWeight: 700,
808
+ color: '#fff',
809
+ letterSpacing: '-0.5px',
810
+ }}
811
+ >
812
+ {variant.name}
813
+ </h3>
814
+ <p
815
+ style={{
816
+ margin: '0 0 24px 0',
817
+ fontSize: '15px',
818
+ lineHeight: 1.7,
819
+ color: 'rgba(255, 255, 255, 0.8)',
820
+ }}
821
+ >
822
+ {variant.description}
823
+ </p>
824
+
825
+ {/* Features */}
826
+ <div
827
+ style={{
828
+ marginBottom: '24px',
829
+ flex: 1,
830
+ }}
831
+ >
832
+ <div
833
+ style={{
834
+ fontSize: '12px',
835
+ fontWeight: 700,
836
+ letterSpacing: '1px',
837
+ textTransform: 'uppercase',
838
+ color: 'rgba(255, 255, 255, 0.6)',
839
+ marginBottom: '12px',
840
+ }}
841
+ >
842
+ Features
843
+ </div>
844
+ <div style={{ display: 'flex', flexDirection: 'column', gap: '10px' }}>
845
+ {variant.features.map((feature, idx) => (
846
+ <div
847
+ key={idx}
848
+ style={{
849
+ display: 'flex',
850
+ alignItems: 'center',
851
+ gap: '10px',
852
+ padding: '10px 14px',
853
+ borderRadius: '10px',
854
+ background: 'rgba(255, 255, 255, 0.08)',
855
+ backdropFilter: 'blur(8px)',
856
+ fontSize: '13px',
857
+ color: 'rgba(255, 255, 255, 0.85)',
858
+ fontWeight: 500,
859
+ }}
860
+ >
861
+ <div
862
+ style={{
863
+ width: '6px',
864
+ height: '6px',
865
+ borderRadius: '50%',
866
+ background: variant.gradient,
867
+ flexShrink: 0,
868
+ }}
869
+ />
870
+ {feature}
871
+ </div>
872
+ ))}
873
+ </div>
874
+ </div>
875
+
876
+ {/* Specs Grid */}
877
+ <div
878
+ style={{
879
+ display: 'grid',
880
+ gridTemplateColumns: '1fr 1fr',
881
+ gap: '10px',
882
+ paddingTop: '20px',
883
+ borderTop: '1px solid rgba(255, 255, 255, 0.12)',
884
+ }}
885
+ >
886
+ {Object.entries(variant.specs).map(([key, value]) => (
887
+ <div
888
+ key={key}
889
+ style={{
890
+ padding: '10px 12px',
891
+ borderRadius: '10px',
892
+ background: 'rgba(0, 0, 0, 0.2)',
893
+ backdropFilter: 'blur(4px)',
894
+ }}
895
+ >
896
+ <div
897
+ style={{
898
+ fontSize: '10px',
899
+ textTransform: 'uppercase',
900
+ fontWeight: 700,
901
+ letterSpacing: '0.5px',
902
+ color: 'rgba(255, 255, 255, 0.5)',
903
+ marginBottom: '4px',
904
+ }}
905
+ >
906
+ {key}
907
+ </div>
908
+ <div
909
+ style={{
910
+ fontSize: '13px',
911
+ color: '#fff',
912
+ fontWeight: 600,
913
+ }}
914
+ >
915
+ {value}
916
+ </div>
917
+ </div>
918
+ ))}
919
+ </div>
920
+ </div>
921
+ </AtomixGlass>
922
+ );
923
+ })}
924
+ </div>
925
+
926
+ {/* Usage Guide */}
927
+ <AtomixGlass
928
+ mode="shader"
929
+ shaderVariant="liquidGlass"
930
+ displacementScale={20}
931
+ blurAmount={1.2}
932
+ elasticity={0}
933
+ >
934
+ <div
935
+ style={{
936
+ display: 'grid',
937
+ gridTemplateColumns: 'repeat(auto-fit, minmax(300px, 1fr))',
938
+ gap: '24px',
939
+ }}
940
+ >
941
+ <div style={{ padding: '28px 24px' }}>
942
+ <div
943
+ style={{
944
+ fontSize: '32px',
945
+ marginBottom: '16px',
946
+ }}
947
+ >
948
+ 💡
949
+ </div>
950
+ <h4
951
+ style={{
952
+ margin: '0 0 12px 0',
953
+ fontSize: '20px',
954
+ fontWeight: 600,
955
+ color: '#fff',
956
+ }}
957
+ >
958
+ Usage Guide
959
+ </h4>
960
+ <p
961
+ style={{
962
+ margin: 0,
963
+ fontSize: '14px',
964
+ lineHeight: 1.7,
965
+ color: 'rgba(255, 255, 255, 0.8)',
966
+ }}
967
+ >
968
+ Set{' '}
969
+ <code
970
+ style={{
971
+ background: 'rgba(255,255,255,0.15)',
972
+ padding: '2px 8px',
973
+ borderRadius: '6px',
974
+ fontSize: '13px',
975
+ fontFamily: 'monospace',
976
+ }}
977
+ >
978
+ mode="shader"
979
+ </code>{' '}
980
+ and choose your preferred{' '}
981
+ <code
982
+ style={{
983
+ background: 'rgba(255,255,255,0.15)',
984
+ padding: '2px 8px',
985
+ borderRadius: '6px',
986
+ fontSize: '13px',
987
+ fontFamily: 'monospace',
988
+ }}
989
+ >
990
+ shaderVariant
991
+ </code>{' '}
992
+ for GPU-accelerated rendering.
993
+ </p>
994
+ </div>
995
+
996
+ <div style={{ padding: '28px 24px' }}>
997
+ <div
998
+ style={{
999
+ fontSize: '32px',
1000
+ marginBottom: '16px',
1001
+ }}
1002
+ >
1003
+
1004
+ </div>
1005
+ <h4
1006
+ style={{
1007
+ margin: '0 0 12px 0',
1008
+ fontSize: '20px',
1009
+ fontWeight: 600,
1010
+ color: '#fff',
1011
+ }}
1012
+ >
1013
+ Performance
1014
+ </h4>
1015
+ <p
1016
+ style={{
1017
+ margin: 0,
1018
+ fontSize: '14px',
1019
+ lineHeight: 1.7,
1020
+ color: 'rgba(255, 255, 255, 0.8)',
1021
+ }}
1022
+ >
1023
+ All shader variants are GPU-accelerated for smooth 60fps animations. Premium Glass
1024
+ offers the best performance-to-quality ratio.
1025
+ </p>
1026
+ </div>
1027
+
1028
+ <div style={{ padding: '28px 24px' }}>
1029
+ <div
1030
+ style={{
1031
+ fontSize: '32px',
1032
+ marginBottom: '16px',
1033
+ }}
1034
+ >
1035
+ 🎨
1036
+ </div>
1037
+ <h4
1038
+ style={{
1039
+ margin: '0 0 12px 0',
1040
+ fontSize: '20px',
1041
+ fontWeight: 600,
1042
+ color: '#fff',
1043
+ }}
1044
+ >
1045
+ Best Practices
1046
+ </h4>
1047
+ <p
1048
+ style={{
1049
+ margin: 0,
1050
+ fontSize: '14px',
1051
+ lineHeight: 1.7,
1052
+ color: 'rgba(255, 255, 255, 0.8)',
1053
+ }}
1054
+ >
1055
+ Use lower displacement scales (20-30) for shader mode. Combine with colorful
1056
+ backgrounds for maximum visual impact.
1057
+ </p>
1058
+ </div>
1059
+ </div>
1060
+ </AtomixGlass>
1061
+ </div>
1062
+ </BackgroundWrapper>
1063
+ );
1064
+ },
1065
+ };