@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.
- package/README.md +19 -0
- package/dist/atomix.css +1703 -1544
- package/dist/atomix.min.css +4 -4
- package/dist/index.d.ts +1465 -963
- package/dist/index.esm.js +16289 -25908
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +15650 -21780
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/themes/applemix.css +15008 -0
- package/dist/themes/applemix.min.css +72 -0
- package/dist/themes/boomdevs.css +1608 -1450
- package/dist/themes/boomdevs.min.css +5 -5
- package/dist/themes/esrar.css +1702 -1543
- package/dist/themes/esrar.min.css +4 -4
- package/dist/themes/flashtrade.css +15159 -0
- package/dist/themes/flashtrade.min.css +86 -0
- package/dist/themes/mashroom.css +1699 -1540
- package/dist/themes/mashroom.min.css +7 -7
- package/dist/themes/shaj-default.css +1693 -1534
- package/dist/themes/shaj-default.min.css +4 -4
- package/package.json +6 -17
- package/src/components/Accordion/Accordion.stories.tsx +662 -21
- package/src/components/Accordion/Accordion.tsx +21 -14
- package/src/components/AtomixGlass/AtomixGlass.test.tsx +106 -72
- package/src/components/AtomixGlass/AtomixGlass.tsx +529 -1195
- package/src/components/AtomixGlass/AtomixGlassContainer.tsx +400 -0
- package/src/components/AtomixGlass/GlassFilter.tsx +156 -0
- package/src/components/AtomixGlass/README.md +124 -2
- package/src/components/AtomixGlass/atomixGLass.old.tsx +1266 -0
- package/src/components/AtomixGlass/glass-utils.ts +263 -0
- package/src/components/AtomixGlass/shader-utils.ts +792 -68
- package/src/components/AtomixGlass/stories/AtomixGlass.stories.tsx +1250 -0
- package/src/components/AtomixGlass/stories/Examples.stories.tsx +5768 -0
- package/src/components/AtomixGlass/stories/Modes.stories.tsx +1065 -0
- package/src/components/AtomixGlass/stories/Playground.stories.tsx +1129 -0
- package/src/components/AtomixGlass/stories/ShaderVariants.stories.tsx +395 -0
- package/src/components/AtomixGlass/stories/shared-components.tsx +301 -0
- package/src/components/AtomixGlass/utils.ts +3 -3
- package/src/components/Avatar/Avatar.tsx +3 -0
- package/src/components/Avatar/AvatarGroup.tsx +2 -1
- package/src/components/Badge/Badge.stories.tsx +76 -55
- package/src/components/Badge/Badge.tsx +12 -14
- package/src/components/Breadcrumb/Breadcrumb.tsx +23 -4
- package/src/components/Button/Button.stories.tsx +501 -20
- package/src/components/Button/Button.tsx +5 -8
- package/src/components/Callout/Callout.stories.tsx +86 -35
- package/src/components/Callout/Callout.tsx +31 -9
- package/src/components/Card/Card.stories.tsx +565 -2
- package/src/components/Card/Card.tsx +15 -4
- package/src/components/Card/ElevationCard.tsx +2 -0
- package/src/components/Chart/AnimatedChart.tsx +179 -156
- package/src/components/Chart/AreaChart.tsx +123 -12
- package/src/components/Chart/BarChart.tsx +91 -100
- package/src/components/Chart/BaseChart.tsx +80 -0
- package/src/components/Chart/BubbleChart.tsx +114 -290
- package/src/components/Chart/CandlestickChart.tsx +282 -622
- package/src/components/Chart/Chart.stories.tsx +576 -179
- package/src/components/Chart/Chart.tsx +374 -75
- package/src/components/Chart/ChartRenderer.tsx +371 -220
- package/src/components/Chart/ChartToolbar.tsx +372 -61
- package/src/components/Chart/ChartTooltip.tsx +33 -18
- package/src/components/Chart/DonutChart.tsx +172 -254
- package/src/components/Chart/FunnelChart.tsx +169 -240
- package/src/components/Chart/GaugeChart.tsx +224 -392
- package/src/components/Chart/HeatmapChart.tsx +302 -440
- package/src/components/Chart/LineChart.tsx +148 -103
- package/src/components/Chart/MultiAxisChart.tsx +267 -395
- package/src/components/Chart/PieChart.tsx +114 -64
- package/src/components/Chart/RadarChart.tsx +202 -218
- package/src/components/Chart/ScatterChart.tsx +111 -97
- package/src/components/Chart/TreemapChart.tsx +147 -222
- package/src/components/Chart/WaterfallChart.tsx +253 -291
- package/src/components/Chart/index.ts +11 -9
- package/src/components/Chart/types.ts +85 -9
- package/src/components/Chart/utils.ts +66 -0
- package/src/components/ColorModeToggle/ColorModeToggle.tsx +6 -3
- package/src/components/Countdown/Countdown.tsx +4 -0
- package/src/components/DataTable/DataTable.tsx +2 -1
- package/src/components/DatePicker/DatePicker.stories.tsx +689 -12
- package/src/components/DatePicker/DatePicker.tsx +3 -9
- package/src/components/DatePicker/types.ts +5 -0
- package/src/components/Dropdown/Dropdown.stories.tsx +32 -25
- package/src/components/Dropdown/Dropdown.tsx +26 -28
- package/src/components/EdgePanel/EdgePanel.stories.tsx +473 -2
- package/src/components/EdgePanel/EdgePanel.tsx +101 -13
- package/src/components/Footer/Footer.stories.tsx +187 -60
- package/src/components/Footer/Footer.test.tsx +134 -0
- package/src/components/Footer/Footer.tsx +133 -34
- package/src/components/Footer/FooterLink.tsx +1 -1
- package/src/components/Footer/FooterSection.tsx +53 -36
- package/src/components/Footer/FooterSocialLink.tsx +32 -29
- package/src/components/Footer/README.md +82 -3
- package/src/components/Footer/index.ts +1 -1
- package/src/components/Form/Checkbox.stories.tsx +13 -5
- package/src/components/Form/Checkbox.tsx +3 -6
- package/src/components/Form/Form.stories.tsx +10 -3
- package/src/components/Form/Form.tsx +2 -0
- package/src/components/Form/FormGroup.tsx +2 -1
- package/src/components/Form/Input.stories.tsx +12 -11
- package/src/components/Form/Input.tsx +97 -95
- package/src/components/Form/Radio.stories.tsx +22 -7
- package/src/components/Form/Radio.tsx +3 -6
- package/src/components/Form/Select.stories.tsx +21 -6
- package/src/components/Form/Select.tsx +3 -5
- package/src/components/Form/Textarea.stories.tsx +13 -11
- package/src/components/Form/Textarea.tsx +88 -86
- package/src/components/Hero/Hero.stories.tsx +2 -3
- package/src/components/Hero/Hero.tsx +5 -6
- package/src/components/Icon/Icon.tsx +12 -1
- package/src/components/List/List.tsx +2 -1
- package/src/components/List/ListGroup.tsx +2 -1
- package/src/components/Messages/Messages.stories.tsx +113 -0
- package/src/components/Messages/Messages.tsx +52 -9
- package/src/components/Modal/Modal.stories.tsx +48 -32
- package/src/components/Modal/Modal.tsx +19 -24
- package/src/components/Navigation/Menu/MegaMenu.tsx +2 -2
- package/src/components/Navigation/Menu/Menu.tsx +2 -2
- package/src/components/Navigation/Nav/Nav.stories.tsx +469 -0
- package/src/components/Navigation/Nav/Nav.tsx +22 -4
- package/src/components/Navigation/Nav/NavDropdown.tsx +10 -1
- package/src/components/Navigation/Navbar/Navbar.stories.tsx +413 -0
- package/src/components/Navigation/Navbar/Navbar.tsx +70 -29
- package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +340 -0
- package/src/components/Navigation/SideMenu/SideMenu.tsx +29 -2
- package/src/components/Pagination/Pagination.stories.tsx +13 -6
- package/src/components/Pagination/Pagination.tsx +7 -6
- package/src/components/PhotoViewer/PhotoViewer.tsx +2 -1
- package/src/components/Popover/Popover.stories.tsx +32 -24
- package/src/components/Popover/Popover.tsx +4 -1
- package/src/components/ProductReview/ProductReview.tsx +8 -2
- package/src/components/Progress/Progress.tsx +19 -3
- package/src/components/Rating/Rating.stories.tsx +11 -6
- package/src/components/Rating/Rating.tsx +3 -5
- package/src/components/River/River.tsx +5 -5
- package/src/components/SectionIntro/SectionIntro.tsx +8 -2
- package/src/components/Slider/Slider.stories.tsx +4 -4
- package/src/components/Slider/Slider.tsx +4 -3
- package/src/components/Spinner/Spinner.tsx +19 -3
- package/src/components/Steps/Steps.stories.tsx +5 -4
- package/src/components/Steps/Steps.tsx +8 -5
- package/src/components/Tab/Tab.stories.tsx +4 -3
- package/src/components/Tab/Tab.tsx +8 -6
- package/src/components/Testimonial/Testimonial.tsx +8 -2
- package/src/components/Todo/Todo.tsx +2 -1
- package/src/components/Toggle/Toggle.stories.tsx +5 -4
- package/src/components/Toggle/Toggle.tsx +8 -5
- package/src/components/Tooltip/Tooltip.stories.tsx +40 -30
- package/src/components/Tooltip/Tooltip.tsx +9 -2
- package/src/components/Upload/Upload.stories.tsx +252 -0
- package/src/components/Upload/Upload.tsx +92 -53
- package/src/components/VideoPlayer/VideoPlayer.tsx +3 -1
- package/src/components/index.ts +0 -4
- package/src/layouts/Grid/Grid.stories.tsx +10 -23
- package/src/layouts/Grid/Grid.tsx +20 -1
- package/src/layouts/Grid/GridCol.tsx +76 -48
- package/src/lib/composables/useAtomixGlass.ts +861 -44
- package/src/lib/composables/useBarChart.ts +21 -4
- package/src/lib/composables/useChart.ts +227 -370
- package/src/lib/composables/useChartExport.ts +19 -78
- package/src/lib/composables/useChartToolbar.ts +11 -21
- package/src/lib/composables/useEdgePanel.ts +125 -71
- package/src/lib/composables/useFooter.ts +3 -3
- package/src/lib/composables/useGlassContainer.ts +16 -7
- package/src/lib/composables/useLineChart.ts +11 -2
- package/src/lib/composables/usePieChart.ts +4 -14
- package/src/lib/composables/useRiver.ts +5 -0
- package/src/lib/composables/useSlider.ts +62 -24
- package/src/lib/composables/useVideoPlayer.ts +60 -63
- package/src/lib/constants/components.ts +147 -32
- package/src/lib/types/components.ts +355 -25
- package/src/lib/utils/displacement-generator.ts +55 -49
- package/src/lib/utils/icons.ts +1 -1
- package/src/lib/utils/index.ts +16 -10
- package/src/styles/01-settings/_settings.accordion.scss +19 -19
- package/src/styles/01-settings/_settings.animations.scss +5 -5
- package/src/styles/01-settings/_settings.avatar-group.scss +1 -1
- package/src/styles/01-settings/_settings.avatar.scss +17 -17
- package/src/styles/01-settings/_settings.background.scss +0 -3
- package/src/styles/01-settings/_settings.badge.scss +1 -1
- package/src/styles/01-settings/_settings.breadcrumb.scss +1 -1
- package/src/styles/01-settings/_settings.card.scss +1 -1
- package/src/styles/01-settings/_settings.chart.scss +65 -2
- package/src/styles/01-settings/_settings.dropdown.scss +1 -1
- package/src/styles/01-settings/_settings.edge-panel.scss +1 -1
- package/src/styles/01-settings/_settings.footer.scss +35 -42
- package/src/styles/01-settings/_settings.input.scss +1 -1
- package/src/styles/01-settings/_settings.list.scss +1 -1
- package/src/styles/01-settings/_settings.rating.scss +1 -1
- package/src/styles/01-settings/_settings.tabs.scss +1 -1
- package/src/styles/01-settings/_settings.upload.scss +6 -5
- package/src/styles/02-tools/_tools.animations.scss +4 -5
- package/src/styles/02-tools/_tools.background.scss +1 -13
- package/src/styles/02-tools/_tools.glass.scss +0 -1
- package/src/styles/02-tools/_tools.utility-api.scss +91 -48
- package/src/styles/03-generic/_generic.root.scss +1 -4
- package/src/styles/04-elements/_elements.body.scss +0 -1
- package/src/styles/06-components/_components.atomix-glass.scss +249 -0
- package/src/styles/06-components/_components.badge.scss +8 -23
- package/src/styles/06-components/_components.button.scss +8 -3
- package/src/styles/06-components/_components.callout.scss +10 -5
- package/src/styles/06-components/_components.card.scss +2 -14
- package/src/styles/06-components/_components.chart.scss +969 -1449
- package/src/styles/06-components/_components.dropdown.scss +19 -7
- package/src/styles/06-components/_components.edge-panel.scss +103 -0
- package/src/styles/06-components/_components.footer.scss +166 -85
- package/src/styles/06-components/_components.input.scss +8 -9
- package/src/styles/06-components/_components.list.scss +1 -0
- package/src/styles/06-components/_components.messages.scss +176 -0
- package/src/styles/06-components/_components.modal.scss +16 -4
- package/src/styles/06-components/_components.navbar.scss +12 -1
- package/src/styles/06-components/_components.side-menu.scss +5 -0
- package/src/styles/06-components/_components.skeleton.scss +8 -6
- package/src/styles/06-components/_components.upload.scss +219 -4
- package/src/styles/06-components/old.chart.styles.scss +1 -30
- package/src/styles/99-utilities/_index.scss +1 -0
- package/src/styles/99-utilities/_utilities.glass-fixes.scss +1 -0
- package/src/styles/99-utilities/_utilities.scss +1 -1
- package/src/components/AtomixGlass/AtomixGlass.stories.tsx +0 -3011
- package/src/components/AtomixGlass/AtomixGlassComprehensivePreview.stories.tsx +0 -1369
- package/src/components/Chart/AdvancedChart.tsx +0 -624
- package/src/components/Chart/LineChartNew.tsx +0 -167
- package/src/components/Chart/RealTimeChart.tsx +0 -436
- 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
|
+
};
|