@shohojdhara/atomix 0.4.8 → 0.5.0
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/atomix.config.ts +58 -1
- package/dist/atomix.css +148 -120
- package/dist/atomix.css.map +1 -1
- package/dist/atomix.min.css +1 -1
- package/dist/atomix.min.css.map +1 -1
- package/dist/charts.d.ts +33 -0
- package/dist/charts.js +1227 -122
- package/dist/charts.js.map +1 -1
- package/dist/core.d.ts +33 -10
- package/dist/core.js +1052 -41
- package/dist/core.js.map +1 -1
- package/dist/forms.d.ts +33 -0
- package/dist/forms.js +2086 -1035
- package/dist/forms.js.map +1 -1
- package/dist/heavy.d.ts +42 -1
- package/dist/heavy.js +1620 -600
- package/dist/heavy.js.map +1 -1
- package/dist/index.d.ts +441 -270
- package/dist/index.esm.js +1900 -638
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1935 -670
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +6 -3
- package/scripts/atomix-cli.js +148 -4
- package/scripts/cli/__tests__/basic.test.js +3 -2
- package/scripts/cli/__tests__/clean.test.js +278 -0
- package/scripts/cli/__tests__/component-validator.test.js +433 -0
- package/scripts/cli/__tests__/generator.test.js +613 -0
- package/scripts/cli/__tests__/glass-motion.test.js +256 -0
- package/scripts/cli/__tests__/integration.test.js +719 -108
- package/scripts/cli/__tests__/migrate.test.js +74 -0
- package/scripts/cli/__tests__/security.test.js +206 -0
- package/scripts/cli/__tests__/test-setup.js +3 -1
- package/scripts/cli/__tests__/theme-bridge.test.js +507 -0
- package/scripts/cli/__tests__/token-provider.test.js +361 -0
- package/scripts/cli/__tests__/utils.test.js +5 -5
- package/scripts/cli/commands/benchmark.js +105 -0
- package/scripts/cli/commands/build-theme.js +4 -1
- package/scripts/cli/commands/clean.js +109 -0
- package/scripts/cli/commands/doctor.js +88 -0
- package/scripts/cli/commands/generate.js +135 -14
- package/scripts/cli/commands/init.js +45 -18
- package/scripts/cli/commands/migrate.js +106 -0
- package/scripts/cli/commands/sync-tokens.js +206 -0
- package/scripts/cli/commands/theme-bridge.js +248 -0
- package/scripts/cli/commands/tokens.js +157 -0
- package/scripts/cli/commands/validate.js +194 -0
- package/scripts/cli/internal/ai-engine.js +156 -0
- package/scripts/cli/internal/component-validator.js +443 -0
- package/scripts/cli/internal/config-loader.js +162 -0
- package/scripts/cli/internal/filesystem.js +102 -2
- package/scripts/cli/internal/generator.js +359 -39
- package/scripts/cli/internal/glass-generator.js +398 -0
- package/scripts/cli/internal/hook-generator.js +369 -0
- package/scripts/cli/internal/hooks.js +61 -0
- package/scripts/cli/internal/itcss-generator.js +565 -0
- package/scripts/cli/internal/motion-generator.js +679 -0
- package/scripts/cli/internal/template-engine.js +301 -0
- package/scripts/cli/internal/theme-bridge.js +664 -0
- package/scripts/cli/internal/tokens/engine.js +122 -0
- package/scripts/cli/internal/tokens/provider.js +34 -0
- package/scripts/cli/internal/tokens/providers/figma.js +50 -0
- package/scripts/cli/internal/tokens/providers/style-dictionary.js +48 -0
- package/scripts/cli/internal/tokens/providers/w3c.js +48 -0
- package/scripts/cli/internal/tokens/token-provider.js +443 -0
- package/scripts/cli/internal/tokens/token-validator.js +513 -0
- package/scripts/cli/internal/validator.js +276 -0
- package/scripts/cli/internal/wizard.js +60 -6
- package/scripts/cli/mappings.js +23 -0
- package/scripts/cli/migration-tools.js +164 -94
- package/scripts/cli/plugins/style-dictionary.js +46 -0
- package/scripts/cli/templates/README.md +525 -95
- package/scripts/cli/templates/common-templates.js +40 -14
- package/scripts/cli/templates/components/react-component.ts +282 -0
- package/scripts/cli/templates/config/project-config.ts +112 -0
- package/scripts/cli/templates/hooks/use-component.ts +477 -0
- package/scripts/cli/templates/index.js +19 -4
- package/scripts/cli/templates/index.ts +171 -0
- package/scripts/cli/templates/next-templates.js +72 -0
- package/scripts/cli/templates/react-templates.js +70 -126
- package/scripts/cli/templates/scss-templates.js +35 -35
- package/scripts/cli/templates/stories/storybook-story.ts +241 -0
- package/scripts/cli/templates/styles/scss-component.ts +255 -0
- package/scripts/cli/templates/tests/vitest-test.ts +229 -0
- package/scripts/cli/templates/token-templates.js +337 -1
- package/scripts/cli/templates/tokens/token-generators.ts +1088 -0
- package/scripts/cli/templates/types/component-types.ts +145 -0
- package/scripts/cli/templates/utils/testing-utils.ts +144 -0
- package/scripts/cli/templates/vanilla-templates.js +39 -0
- package/scripts/cli/token-manager.js +8 -2
- package/scripts/cli/utils/cache-manager.js +240 -0
- package/scripts/cli/utils/detector.js +46 -0
- package/scripts/cli/utils/diagnostics.js +289 -0
- package/scripts/cli/utils/error.js +45 -3
- package/scripts/cli/utils/helpers.js +24 -0
- package/scripts/cli/utils/logger.js +1 -1
- package/scripts/cli/utils/security.js +302 -0
- package/scripts/cli/utils/telemetry.js +115 -0
- package/scripts/cli/utils/validation.js +4 -38
- package/scripts/cli/utils.js +46 -0
- package/src/components/Accordion/Accordion.stories.tsx +0 -18
- package/src/components/Accordion/Accordion.test.tsx +0 -17
- package/src/components/Accordion/Accordion.tsx +0 -4
- package/src/components/AtomixGlass/AtomixGlass.tsx +102 -2
- package/src/components/AtomixGlass/AtomixGlassContainer.tsx +125 -12
- package/src/components/AtomixGlass/PerformanceDashboard.tsx +219 -0
- package/src/components/AtomixGlass/README.md +25 -10
- package/src/components/AtomixGlass/animation-system.ts +578 -0
- package/src/components/AtomixGlass/shader-utils.ts +3 -0
- package/src/components/AtomixGlass/stories/AnimationFeatures.stories.tsx +653 -0
- package/src/components/AtomixGlass/stories/AnimationTests.stories.tsx +95 -0
- package/src/components/AtomixGlass/stories/CardExamples.stories.tsx +212 -0
- package/src/components/AtomixGlass/stories/DashboardExamples.stories.tsx +348 -0
- package/src/components/AtomixGlass/stories/EcommerceExamples.stories.tsx +410 -0
- package/src/components/AtomixGlass/stories/FormExamples.stories.tsx +436 -0
- package/src/components/AtomixGlass/stories/HeroExamples.stories.tsx +264 -0
- package/src/components/AtomixGlass/stories/InteractivePlayground.stories.tsx +247 -0
- package/src/components/AtomixGlass/stories/MobileUIExamples.stories.tsx +418 -0
- package/src/components/AtomixGlass/stories/ModalExamples.stories.tsx +402 -0
- package/src/components/AtomixGlass/stories/Overview.stories.tsx +157 -6
- package/src/components/AtomixGlass/stories/Playground.stories.tsx +658 -93
- package/src/components/AtomixGlass/stories/PresetGallery.stories.tsx +335 -0
- package/src/components/AtomixGlass/stories/WidgetExamples.stories.tsx +441 -0
- package/src/components/AtomixGlass/stories/argTypes.ts +384 -0
- package/src/components/AtomixGlass/stories/shared-components.tsx +91 -1
- package/src/components/AtomixGlass/stories/types.ts +127 -0
- package/src/components/Avatar/Avatar.tsx +1 -1
- package/src/components/Button/Button.stories.disabled-link.tsx +10 -0
- package/src/components/Button/Button.stories.tsx +10 -0
- package/src/components/Button/Button.test.tsx +16 -11
- package/src/components/Button/Button.tsx +4 -4
- package/src/components/Card/Card.tsx +1 -1
- package/src/components/Dropdown/Dropdown.tsx +12 -12
- package/src/components/Form/Select.tsx +62 -3
- package/src/components/Modal/Modal.tsx +14 -3
- package/src/components/Navigation/Navbar/Navbar.tsx +44 -0
- package/src/components/Slider/Slider.stories.tsx +3 -3
- package/src/components/Slider/Slider.tsx +38 -0
- package/src/components/Steps/Steps.tsx +3 -3
- package/src/components/Tabs/Tabs.tsx +77 -8
- package/src/components/Testimonial/Testimonial.tsx +1 -1
- package/src/components/TypedButton/TypedButton.stories.tsx +59 -0
- package/src/components/TypedButton/TypedButton.tsx +39 -0
- package/src/components/TypedButton/index.ts +2 -0
- package/src/components/VideoPlayer/VideoPlayer.tsx +11 -4
- package/src/lib/composables/index.ts +4 -7
- package/src/lib/composables/types.ts +45 -0
- package/src/lib/composables/useAccordion.ts +0 -7
- package/src/lib/composables/useAtomixGlass.ts +144 -5
- package/src/lib/composables/useChartExport.ts +3 -13
- package/src/lib/composables/useDropdown.ts +66 -0
- package/src/lib/composables/useFocusTrap.ts +80 -0
- package/src/lib/composables/usePerformanceMonitor.ts +448 -0
- package/src/lib/composables/useResponsiveGlass.presets.ts +192 -0
- package/src/lib/composables/useResponsiveGlass.ts +441 -0
- package/src/lib/composables/useTooltip.ts +16 -0
- package/src/lib/composables/useTypedButton.ts +66 -0
- package/src/lib/config/index.ts +62 -5
- package/src/lib/constants/components.ts +55 -0
- package/src/lib/theme/devtools/__tests__/useHistory.test.tsx +150 -0
- package/src/lib/theme/tokens/centralized-tokens.ts +120 -0
- package/src/lib/theme/utils/__tests__/domUtils.test.ts +101 -0
- package/src/lib/types/components.ts +37 -11
- package/src/lib/types/glass.ts +35 -0
- package/src/lib/types/index.ts +1 -0
- package/src/lib/utils/displacement-generator.ts +1 -1
- package/src/styles/01-settings/_settings.testtypecheck.scss +53 -0
- package/src/styles/01-settings/_settings.typedbutton.scss +53 -0
- package/src/styles/06-components/_components.testbutton.scss +212 -0
- package/src/styles/06-components/_components.testtypecheck.scss +212 -0
- package/src/styles/06-components/_components.typedbutton.scss +212 -0
- package/src/styles/99-utilities/_index.scss +1 -0
- package/src/styles/99-utilities/_utilities.text.scss +1 -1
- package/src/styles/99-utilities/_utilities.touch-target.scss +36 -0
- package/src/styles/06-components/old.chart.styles.scss +0 -2788
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PresetGallery.stories.tsx
|
|
3
|
+
*
|
|
4
|
+
* Gallery of pre-configured AtomixGlass presets for common use cases.
|
|
5
|
+
* Provides quick starting points for different glass effects and styles.
|
|
6
|
+
*
|
|
7
|
+
* @package Atomix
|
|
8
|
+
* @component AtomixGlass
|
|
9
|
+
*/
|
|
10
|
+
import React from 'react';
|
|
11
|
+
import { Meta, StoryObj } from '@storybook/react';
|
|
12
|
+
import AtomixGlass from '../AtomixGlass';
|
|
13
|
+
import { BackgroundWrapper, backgroundImages, StoryErrorBoundary } from './shared-components';
|
|
14
|
+
import { baseArgTypes } from './argTypes';
|
|
15
|
+
|
|
16
|
+
import { Button } from '../../Button/Button';
|
|
17
|
+
import { Badge } from '../../Badge';
|
|
18
|
+
|
|
19
|
+
const meta: Meta<typeof AtomixGlass> = {
|
|
20
|
+
title: 'Components/AtomixGlass/Preset Gallery',
|
|
21
|
+
component: AtomixGlass,
|
|
22
|
+
parameters: {
|
|
23
|
+
layout: 'centered',
|
|
24
|
+
docs: {
|
|
25
|
+
description: {
|
|
26
|
+
component:
|
|
27
|
+
'Curated collection of pre-configured AtomixGlass presets for common design scenarios. Each preset is optimized for specific use cases and can be customized further.',
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
tags: ['autodocs'],
|
|
32
|
+
argTypes: baseArgTypes,
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export default meta;
|
|
36
|
+
type Story = StoryObj<typeof AtomixGlass>;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Crystal Clear Preset
|
|
40
|
+
*
|
|
41
|
+
* Minimal glass effect with subtle distortion - perfect for clean, modern interfaces.
|
|
42
|
+
*/
|
|
43
|
+
export const CrystalClear: Story = {
|
|
44
|
+
render: () => (
|
|
45
|
+
<StoryErrorBoundary>
|
|
46
|
+
<BackgroundWrapper backgroundImage={backgroundImages[2]}>
|
|
47
|
+
<div style={{ maxWidth: '500px' }}>
|
|
48
|
+
<AtomixGlass
|
|
49
|
+
displacementScale={40}
|
|
50
|
+
blurAmount={0.75}
|
|
51
|
+
saturation={120}
|
|
52
|
+
aberrationIntensity={1.5}
|
|
53
|
+
borderRadius={20}
|
|
54
|
+
mode="standard"
|
|
55
|
+
padding="40px"
|
|
56
|
+
>
|
|
57
|
+
<div className="u-text-center u-text-white">
|
|
58
|
+
<Badge variant="secondary" className="u-mb-3">Crystal Clear</Badge>
|
|
59
|
+
<h2 className="u-mt-0 u-text-2xl u-font-bold u-mb-2">
|
|
60
|
+
Minimal Glass Effect
|
|
61
|
+
</h2>
|
|
62
|
+
<p className="u-text-sm u-opacity-90 u-mb-4" style={{ lineHeight: 1.6 }}>
|
|
63
|
+
Clean and subtle glass morphism with minimal distortion. Perfect for
|
|
64
|
+
modern, minimalist interfaces that need just a touch of depth.
|
|
65
|
+
</p>
|
|
66
|
+
<div className="u-flex u-gap-2 u-justify-center" style={{ gap: '8px' }}>
|
|
67
|
+
<Button glass size="sm" variant="primary">Primary</Button>
|
|
68
|
+
<Button glass size="sm" variant="outline-light">Secondary</Button>
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
|
+
</AtomixGlass>
|
|
72
|
+
</div>
|
|
73
|
+
</BackgroundWrapper>
|
|
74
|
+
</StoryErrorBoundary>
|
|
75
|
+
),
|
|
76
|
+
parameters: {
|
|
77
|
+
docs: {
|
|
78
|
+
description: {
|
|
79
|
+
story:
|
|
80
|
+
'Minimal preset with low displacement (40), moderate blur (0.75), and subtle aberration (1.5) for clean interfaces.',
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Frosted Glass Preset
|
|
88
|
+
*
|
|
89
|
+
* Classic frosted glass effect with strong blur - ideal for cards and modals.
|
|
90
|
+
*/
|
|
91
|
+
export const FrostedGlass: Story = {
|
|
92
|
+
render: () => (
|
|
93
|
+
<StoryErrorBoundary>
|
|
94
|
+
<BackgroundWrapper backgroundImage={backgroundImages[6]} overlay overlayOpacity={0.3}>
|
|
95
|
+
<div style={{ maxWidth: '500px' }}>
|
|
96
|
+
<AtomixGlass
|
|
97
|
+
displacementScale={60}
|
|
98
|
+
blurAmount={2}
|
|
99
|
+
saturation={130}
|
|
100
|
+
aberrationIntensity={2}
|
|
101
|
+
borderRadius={24}
|
|
102
|
+
mode="standard"
|
|
103
|
+
padding="40px"
|
|
104
|
+
>
|
|
105
|
+
<div className="u-text-center u-text-white">
|
|
106
|
+
<Badge variant="primary" className="u-mb-3">Frosted Glass</Badge>
|
|
107
|
+
<h2 className="u-mt-0 u-text-2xl u-font-bold u-mb-2">
|
|
108
|
+
Classic Frosted Effect
|
|
109
|
+
</h2>
|
|
110
|
+
<p className="u-text-sm u-opacity-90 u-mb-4" style={{ lineHeight: 1.6 }}>
|
|
111
|
+
Strong blur creates a pronounced frosted glass appearance. Excellent
|
|
112
|
+
for cards, modals, and overlays that need to stand out.
|
|
113
|
+
</p>
|
|
114
|
+
<div
|
|
115
|
+
style={{
|
|
116
|
+
display: 'grid',
|
|
117
|
+
gridTemplateColumns: 'repeat(2, 1fr)',
|
|
118
|
+
gap: '16px',
|
|
119
|
+
marginTop: '24px',
|
|
120
|
+
}}
|
|
121
|
+
>
|
|
122
|
+
{[
|
|
123
|
+
{ label: 'Blur', value: '2.0' },
|
|
124
|
+
{ label: 'Displacement', value: '60' },
|
|
125
|
+
{ label: 'Saturation', value: '130%' },
|
|
126
|
+
{ label: 'Aberration', value: '2.0' },
|
|
127
|
+
].map((stat, index) => (
|
|
128
|
+
<div
|
|
129
|
+
key={index}
|
|
130
|
+
style={{
|
|
131
|
+
background: 'rgba(255,255,255,0.1)',
|
|
132
|
+
padding: '12px',
|
|
133
|
+
borderRadius: '12px',
|
|
134
|
+
}}
|
|
135
|
+
>
|
|
136
|
+
<p className="u-m-0 u-text-xs u-opacity-70">{stat.label}</p>
|
|
137
|
+
<p className="u-m-0 u-text-lg u-font-bold">{stat.value}</p>
|
|
138
|
+
</div>
|
|
139
|
+
))}
|
|
140
|
+
</div>
|
|
141
|
+
</div>
|
|
142
|
+
</AtomixGlass>
|
|
143
|
+
</div>
|
|
144
|
+
</BackgroundWrapper>
|
|
145
|
+
</StoryErrorBoundary>
|
|
146
|
+
),
|
|
147
|
+
parameters: {
|
|
148
|
+
docs: {
|
|
149
|
+
description: {
|
|
150
|
+
story:
|
|
151
|
+
'Classic frosted glass preset with high blur (2.0), moderate displacement (60), and balanced saturation (130%).',
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
},
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Liquid Chrome Preset
|
|
159
|
+
*
|
|
160
|
+
* High-distortion metallic liquid effect using shader mode.
|
|
161
|
+
*/
|
|
162
|
+
export const LiquidChrome: Story = {
|
|
163
|
+
render: () => (
|
|
164
|
+
<StoryErrorBoundary>
|
|
165
|
+
<BackgroundWrapper backgroundImage={backgroundImages[0]} overlay overlayOpacity={0.4}>
|
|
166
|
+
<div style={{ maxWidth: '500px' }}>
|
|
167
|
+
<AtomixGlass
|
|
168
|
+
displacementScale={90}
|
|
169
|
+
blurAmount={1.5}
|
|
170
|
+
saturation={180}
|
|
171
|
+
aberrationIntensity={3}
|
|
172
|
+
borderRadius={28}
|
|
173
|
+
mode="shader"
|
|
174
|
+
shaderVariant="liquidGlass"
|
|
175
|
+
padding="40px"
|
|
176
|
+
>
|
|
177
|
+
<div className="u-text-center u-text-white">
|
|
178
|
+
<Badge variant="success" className="u-mb-3">Liquid Chrome</Badge>
|
|
179
|
+
<h2 className="u-mt-0 u-text-2xl u-font-bold u-mb-2">
|
|
180
|
+
Metallic Liquid Effect
|
|
181
|
+
</h2>
|
|
182
|
+
<p className="u-text-sm u-opacity-90 u-mb-4" style={{ lineHeight: 1.6 }}>
|
|
183
|
+
High-displacement shader-based effect creating a flowing, metallic
|
|
184
|
+
liquid appearance. Perfect for premium, eye-catching designs.
|
|
185
|
+
</p>
|
|
186
|
+
|
|
187
|
+
<div
|
|
188
|
+
style={{
|
|
189
|
+
background: 'linear-gradient(135deg, rgba(255,255,255,0.1), rgba(255,255,255,0.05))',
|
|
190
|
+
padding: '20px',
|
|
191
|
+
borderRadius: '16px',
|
|
192
|
+
marginTop: '24px',
|
|
193
|
+
}}
|
|
194
|
+
>
|
|
195
|
+
<p className="u-m-0 u-text-xs u-font-semibold u-mb-2">Best For:</p>
|
|
196
|
+
<ul
|
|
197
|
+
className="u-m-0 u-text-sm u-opacity-90"
|
|
198
|
+
style={{ textAlign: 'left', paddingLeft: '20px' }}
|
|
199
|
+
>
|
|
200
|
+
<li>Premium product showcases</li>
|
|
201
|
+
<li>Hero sections</li>
|
|
202
|
+
<li>Feature highlights</li>
|
|
203
|
+
<li>Landing page focal points</li>
|
|
204
|
+
</ul>
|
|
205
|
+
</div>
|
|
206
|
+
</div>
|
|
207
|
+
</AtomixGlass>
|
|
208
|
+
</div>
|
|
209
|
+
</BackgroundWrapper>
|
|
210
|
+
</StoryErrorBoundary>
|
|
211
|
+
),
|
|
212
|
+
parameters: {
|
|
213
|
+
docs: {
|
|
214
|
+
description: {
|
|
215
|
+
story:
|
|
216
|
+
'Premium liquid chrome preset using shader mode with high displacement (90), elevated saturation (180%), and strong aberration (3).',
|
|
217
|
+
},
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Apple Fluid Preset
|
|
224
|
+
*
|
|
225
|
+
* Apple-inspired fluid glass effect with organic movement.
|
|
226
|
+
*/
|
|
227
|
+
export const AppleFluid: Story = {
|
|
228
|
+
render: () => (
|
|
229
|
+
<StoryErrorBoundary>
|
|
230
|
+
<BackgroundWrapper backgroundImage={backgroundImages[4]} overlay overlayOpacity={0.3}>
|
|
231
|
+
<div style={{ maxWidth: '500px' }}>
|
|
232
|
+
<AtomixGlass
|
|
233
|
+
displacementScale={75}
|
|
234
|
+
blurAmount={1}
|
|
235
|
+
saturation={150}
|
|
236
|
+
aberrationIntensity={2.5}
|
|
237
|
+
borderRadius={26}
|
|
238
|
+
mode="shader"
|
|
239
|
+
shaderVariant="appleFluid"
|
|
240
|
+
padding="40px"
|
|
241
|
+
>
|
|
242
|
+
<div className="u-text-center u-text-white">
|
|
243
|
+
<Badge variant="outline-light" className="u-mb-3">Apple Fluid</Badge>
|
|
244
|
+
<h2 className="u-mt-0 u-text-2xl u-font-bold u-mb-2">
|
|
245
|
+
Organic Fluid Motion
|
|
246
|
+
</h2>
|
|
247
|
+
<p className="u-text-sm u-opacity-90 u-mb-4" style={{ lineHeight: 1.6 }}>
|
|
248
|
+
Inspired by Apple's fluid design language. Creates smooth, organic
|
|
249
|
+
glass distortions that feel alive and dynamic.
|
|
250
|
+
</p>
|
|
251
|
+
|
|
252
|
+
<div className="u-flex u-gap-2 u-justify-center u-flex-wrap" style={{ gap: '8px' }}>
|
|
253
|
+
<Badge variant="secondary">Balanced</Badge>
|
|
254
|
+
<Badge variant="secondary">Organic</Badge>
|
|
255
|
+
<Badge variant="secondary">Dynamic</Badge>
|
|
256
|
+
</div>
|
|
257
|
+
|
|
258
|
+
<Button glass size="lg" variant="primary" className="u-mt-4">
|
|
259
|
+
Explore Preset
|
|
260
|
+
</Button>
|
|
261
|
+
</div>
|
|
262
|
+
</AtomixGlass>
|
|
263
|
+
</div>
|
|
264
|
+
</BackgroundWrapper>
|
|
265
|
+
</StoryErrorBoundary>
|
|
266
|
+
),
|
|
267
|
+
parameters: {
|
|
268
|
+
docs: {
|
|
269
|
+
description: {
|
|
270
|
+
story:
|
|
271
|
+
'Apple-inspired fluid preset with shader mode, balanced displacement (75), and enhanced saturation (150%) for organic effects.',
|
|
272
|
+
},
|
|
273
|
+
},
|
|
274
|
+
},
|
|
275
|
+
};
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* Performance Mode Preset
|
|
279
|
+
*
|
|
280
|
+
* Optimized for mobile devices with reduced effects for better performance.
|
|
281
|
+
*/
|
|
282
|
+
export const PerformanceMode: Story = {
|
|
283
|
+
render: () => (
|
|
284
|
+
<StoryErrorBoundary>
|
|
285
|
+
<BackgroundWrapper backgroundImage={backgroundImages[1]}>
|
|
286
|
+
<div style={{ maxWidth: '500px' }}>
|
|
287
|
+
<AtomixGlass
|
|
288
|
+
displacementScale={50}
|
|
289
|
+
blurAmount={0}
|
|
290
|
+
saturation={120}
|
|
291
|
+
aberrationIntensity={1.5}
|
|
292
|
+
borderRadius={20}
|
|
293
|
+
mode="standard"
|
|
294
|
+
devicePreset="performance"
|
|
295
|
+
disableResponsiveBreakpoints={false}
|
|
296
|
+
padding="40px"
|
|
297
|
+
>
|
|
298
|
+
<div className="u-text-center u-text-white">
|
|
299
|
+
<Badge variant="success" className="u-mb-3">Performance Mode</Badge>
|
|
300
|
+
<h2 className="u-mt-0 u-text-2xl u-font-bold u-mb-2">
|
|
301
|
+
Mobile Optimized
|
|
302
|
+
</h2>
|
|
303
|
+
<p className="u-text-sm u-opacity-90 u-mb-4" style={{ lineHeight: 1.6 }}>
|
|
304
|
+
Reduced effects for optimal performance on mobile devices. Maintains
|
|
305
|
+
the glass aesthetic while minimizing GPU load.
|
|
306
|
+
</p>
|
|
307
|
+
|
|
308
|
+
<div
|
|
309
|
+
style={{
|
|
310
|
+
background: 'rgba(34, 197, 94, 0.15)',
|
|
311
|
+
border: '1px solid rgba(34, 197, 94, 0.3)',
|
|
312
|
+
padding: '16px',
|
|
313
|
+
borderRadius: '12px',
|
|
314
|
+
marginTop: '20px',
|
|
315
|
+
}}
|
|
316
|
+
>
|
|
317
|
+
<p className="u-m-0 u-text-xs u-font-semibold" style={{ color: '#86efac' }}>
|
|
318
|
+
✓ Optimized for 60 FPS on mobile
|
|
319
|
+
</p>
|
|
320
|
+
</div>
|
|
321
|
+
</div>
|
|
322
|
+
</AtomixGlass>
|
|
323
|
+
</div>
|
|
324
|
+
</BackgroundWrapper>
|
|
325
|
+
</StoryErrorBoundary>
|
|
326
|
+
),
|
|
327
|
+
parameters: {
|
|
328
|
+
docs: {
|
|
329
|
+
description: {
|
|
330
|
+
story:
|
|
331
|
+
'Performance-optimized preset with zero blur, low displacement (50), and reduced saturation (120%) for mobile devices.',
|
|
332
|
+
},
|
|
333
|
+
},
|
|
334
|
+
},
|
|
335
|
+
};
|