@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
|
@@ -122,7 +122,7 @@ export const WithGlassEffect: Story = {
|
|
|
122
122
|
placeItems: 'center',
|
|
123
123
|
}}
|
|
124
124
|
>
|
|
125
|
-
<Card {...args}
|
|
125
|
+
<Card {...args} style={{ ['--atomix-card-width' as string]: '300px' }} />
|
|
126
126
|
</div>
|
|
127
127
|
),
|
|
128
128
|
args: {
|
|
@@ -168,11 +168,12 @@ export const WithCustomGlassEffect: Story = {
|
|
|
168
168
|
displacementScale: 60,
|
|
169
169
|
aberrationIntensity: 2"
|
|
170
170
|
glass={{
|
|
171
|
-
blurAmount:
|
|
171
|
+
blurAmount: 2,
|
|
172
172
|
saturation: 160,
|
|
173
173
|
displacementScale: 60,
|
|
174
174
|
aberrationIntensity: 2,
|
|
175
175
|
mode: 'standard',
|
|
176
|
+
overLight: false,
|
|
176
177
|
}}
|
|
177
178
|
/>
|
|
178
179
|
</GridCol>
|
|
@@ -190,6 +191,7 @@ export const WithCustomGlassEffect: Story = {
|
|
|
190
191
|
displacementScale: 60,
|
|
191
192
|
aberrationIntensity: 2,
|
|
192
193
|
mode: 'polar',
|
|
194
|
+
overLight: false,
|
|
193
195
|
}}
|
|
194
196
|
/>
|
|
195
197
|
</GridCol>
|
|
@@ -243,3 +245,564 @@ export const WithCustomGlassEffect: Story = {
|
|
|
243
245
|
),
|
|
244
246
|
},
|
|
245
247
|
};
|
|
248
|
+
|
|
249
|
+
// Glass Mode Variants - Standard
|
|
250
|
+
export const GlassModeStandard: Story = {
|
|
251
|
+
render: args => (
|
|
252
|
+
<div
|
|
253
|
+
style={{
|
|
254
|
+
backgroundImage: 'url(https://images.unsplash.com/photo-1518837695005-2083093ee35b?w=1920)',
|
|
255
|
+
backgroundSize: 'cover',
|
|
256
|
+
backgroundPosition: 'center',
|
|
257
|
+
height: '95vh',
|
|
258
|
+
width: '95vw',
|
|
259
|
+
padding: '3rem',
|
|
260
|
+
borderRadius: '12px',
|
|
261
|
+
display: 'flex',
|
|
262
|
+
flexDirection: 'column',
|
|
263
|
+
alignItems: 'center',
|
|
264
|
+
justifyContent: 'center',
|
|
265
|
+
gap: '2rem',
|
|
266
|
+
}}
|
|
267
|
+
>
|
|
268
|
+
<div style={{ textAlign: 'center', color: 'white', textShadow: '0 2px 4px rgba(0,0,0,0.5)' }}>
|
|
269
|
+
<h3 style={{ fontSize: '1.5rem', marginBottom: '0.5rem' }}>Standard Glass Mode</h3>
|
|
270
|
+
<p style={{ fontSize: '0.875rem', opacity: 0.9 }}>
|
|
271
|
+
Classic glass morphism with blur and displacement
|
|
272
|
+
</p>
|
|
273
|
+
</div>
|
|
274
|
+
<div className="u-w-50">
|
|
275
|
+
<Card
|
|
276
|
+
title="Standard Glass Card"
|
|
277
|
+
text="This card uses the standard glass mode with classic blur and displacement effects."
|
|
278
|
+
image="https://images.unsplash.com/photo-1518837695005-2083093ee35b?w=800"
|
|
279
|
+
imageAlt="Standard glass"
|
|
280
|
+
glass={{
|
|
281
|
+
mode: 'standard',
|
|
282
|
+
displacementScale: 60,
|
|
283
|
+
blurAmount: 2,
|
|
284
|
+
saturation: 160,
|
|
285
|
+
aberrationIntensity: 2,
|
|
286
|
+
elasticity: 0,
|
|
287
|
+
}}
|
|
288
|
+
actions={
|
|
289
|
+
<React.Fragment>
|
|
290
|
+
<button className="c-btn c-btn--primary c-btn--sm">Learn More</button>
|
|
291
|
+
<button className="c-btn c-btn--secondary c-btn--sm">Details</button>
|
|
292
|
+
</React.Fragment>
|
|
293
|
+
}
|
|
294
|
+
/>
|
|
295
|
+
</div>
|
|
296
|
+
</div>
|
|
297
|
+
),
|
|
298
|
+
};
|
|
299
|
+
|
|
300
|
+
// Glass Mode Variants - Polar
|
|
301
|
+
export const GlassModePolar: Story = {
|
|
302
|
+
render: args => (
|
|
303
|
+
<div
|
|
304
|
+
style={{
|
|
305
|
+
backgroundImage: 'url(https://images.unsplash.com/photo-1557683316-973673baf926?w=1920)',
|
|
306
|
+
backgroundSize: 'cover',
|
|
307
|
+
backgroundPosition: 'center',
|
|
308
|
+
height: '95vh',
|
|
309
|
+
width: '95vw',
|
|
310
|
+
padding: '3rem',
|
|
311
|
+
borderRadius: '12px',
|
|
312
|
+
display: 'flex',
|
|
313
|
+
flexDirection: 'column',
|
|
314
|
+
alignItems: 'center',
|
|
315
|
+
justifyContent: 'center',
|
|
316
|
+
gap: '2rem',
|
|
317
|
+
}}
|
|
318
|
+
>
|
|
319
|
+
<div style={{ textAlign: 'center', color: 'white', textShadow: '0 2px 4px rgba(0,0,0,0.5)' }}>
|
|
320
|
+
<h3 style={{ fontSize: '1.5rem', marginBottom: '0.5rem' }}>Polar Glass Mode</h3>
|
|
321
|
+
<p style={{ fontSize: '0.875rem', opacity: 0.9 }}>Radial distortion effect from center</p>
|
|
322
|
+
</div>
|
|
323
|
+
<div className="u-w-50">
|
|
324
|
+
<Card
|
|
325
|
+
title="Polar Glass Card"
|
|
326
|
+
text="This card uses the polar glass mode with radial distortion effects emanating from the center."
|
|
327
|
+
image="https://images.unsplash.com/photo-1557683316-973673baf926?w=800"
|
|
328
|
+
imageAlt="Polar glass"
|
|
329
|
+
glass={{
|
|
330
|
+
mode: 'polar',
|
|
331
|
+
displacementScale: 80,
|
|
332
|
+
blurAmount: 1.5,
|
|
333
|
+
saturation: 180,
|
|
334
|
+
aberrationIntensity: 3,
|
|
335
|
+
elasticity: 0,
|
|
336
|
+
}}
|
|
337
|
+
actions={
|
|
338
|
+
<React.Fragment>
|
|
339
|
+
<button className="c-btn c-btn--primary c-btn--sm">Learn More</button>
|
|
340
|
+
<button className="c-btn c-btn--secondary c-btn--sm">Details</button>
|
|
341
|
+
</React.Fragment>
|
|
342
|
+
}
|
|
343
|
+
/>
|
|
344
|
+
</div>
|
|
345
|
+
</div>
|
|
346
|
+
),
|
|
347
|
+
};
|
|
348
|
+
|
|
349
|
+
// Glass Mode Variants - Prominent
|
|
350
|
+
export const GlassModeProminent: Story = {
|
|
351
|
+
render: args => (
|
|
352
|
+
<div
|
|
353
|
+
style={{
|
|
354
|
+
backgroundImage: 'url(https://images.unsplash.com/photo-1579546929518-9e396f3cc809?w=1920)',
|
|
355
|
+
backgroundSize: 'cover',
|
|
356
|
+
backgroundPosition: 'center',
|
|
357
|
+
height: '95vh',
|
|
358
|
+
width: '95vw',
|
|
359
|
+
padding: '3rem',
|
|
360
|
+
borderRadius: '12px',
|
|
361
|
+
display: 'flex',
|
|
362
|
+
flexDirection: 'column',
|
|
363
|
+
alignItems: 'center',
|
|
364
|
+
justifyContent: 'center',
|
|
365
|
+
gap: '2rem',
|
|
366
|
+
}}
|
|
367
|
+
>
|
|
368
|
+
<div style={{ textAlign: 'center', color: 'white', textShadow: '0 2px 4px rgba(0,0,0,0.5)' }}>
|
|
369
|
+
<h3 style={{ fontSize: '1.5rem', marginBottom: '0.5rem' }}>Prominent Glass Mode</h3>
|
|
370
|
+
<p style={{ fontSize: '0.875rem', opacity: 0.9 }}>Enhanced distortion with maximum depth</p>
|
|
371
|
+
</div>
|
|
372
|
+
<div className="u-w-50">
|
|
373
|
+
<Card
|
|
374
|
+
title="Prominent Glass Card"
|
|
375
|
+
text="This card uses the prominent glass mode with enhanced distortion and maximum visual depth."
|
|
376
|
+
image="https://images.unsplash.com/photo-1579546929518-9e396f3cc809?w=800"
|
|
377
|
+
imageAlt="Prominent glass"
|
|
378
|
+
glass={{
|
|
379
|
+
mode: 'prominent',
|
|
380
|
+
displacementScale: 100,
|
|
381
|
+
blurAmount: 2.5,
|
|
382
|
+
saturation: 200,
|
|
383
|
+
aberrationIntensity: 4,
|
|
384
|
+
elasticity: 0,
|
|
385
|
+
}}
|
|
386
|
+
actions={
|
|
387
|
+
<React.Fragment>
|
|
388
|
+
<button className="c-btn c-btn--primary c-btn--sm">Learn More</button>
|
|
389
|
+
<button className="c-btn c-btn--secondary c-btn--sm">Details</button>
|
|
390
|
+
</React.Fragment>
|
|
391
|
+
}
|
|
392
|
+
/>
|
|
393
|
+
</div>
|
|
394
|
+
</div>
|
|
395
|
+
),
|
|
396
|
+
};
|
|
397
|
+
|
|
398
|
+
// Glass Mode Variants - Shader
|
|
399
|
+
export const GlassModeShader: Story = {
|
|
400
|
+
render: args => (
|
|
401
|
+
<div
|
|
402
|
+
style={{
|
|
403
|
+
backgroundImage: 'url(https://images.unsplash.com/photo-1557682250-33bd709cbe85?w=1920)',
|
|
404
|
+
backgroundSize: 'cover',
|
|
405
|
+
backgroundPosition: 'center',
|
|
406
|
+
height: '95vh',
|
|
407
|
+
width: '95vw',
|
|
408
|
+
padding: '3rem',
|
|
409
|
+
borderRadius: '12px',
|
|
410
|
+
display: 'flex',
|
|
411
|
+
flexDirection: 'column',
|
|
412
|
+
alignItems: 'center',
|
|
413
|
+
justifyContent: 'center',
|
|
414
|
+
gap: '2rem',
|
|
415
|
+
}}
|
|
416
|
+
>
|
|
417
|
+
<div style={{ textAlign: 'center', color: 'white', textShadow: '0 2px 4px rgba(0,0,0,0.5)' }}>
|
|
418
|
+
<h3 style={{ fontSize: '1.5rem', marginBottom: '0.5rem' }}>Shader Glass Mode</h3>
|
|
419
|
+
<p style={{ fontSize: '0.875rem', opacity: 0.9 }}>GPU-accelerated liquid glass effect</p>
|
|
420
|
+
</div>
|
|
421
|
+
<div className="u-w-50">
|
|
422
|
+
<Card
|
|
423
|
+
title="Shader Glass Card"
|
|
424
|
+
text="This card uses the shader glass mode with GPU-accelerated liquid glass effects."
|
|
425
|
+
image="https://images.unsplash.com/photo-1557682250-33bd709cbe85?w=800"
|
|
426
|
+
imageAlt="Shader glass"
|
|
427
|
+
glass={{
|
|
428
|
+
mode: 'shader',
|
|
429
|
+
shaderVariant: 'liquidGlass',
|
|
430
|
+
displacementScale: 70,
|
|
431
|
+
blurAmount: 1.8,
|
|
432
|
+
saturation: 170,
|
|
433
|
+
elasticity: 0,
|
|
434
|
+
}}
|
|
435
|
+
actions={
|
|
436
|
+
<React.Fragment>
|
|
437
|
+
<button className="c-btn c-btn--primary c-btn--sm">Learn More</button>
|
|
438
|
+
<button className="c-btn c-btn--secondary c-btn--sm">Details</button>
|
|
439
|
+
</React.Fragment>
|
|
440
|
+
}
|
|
441
|
+
/>
|
|
442
|
+
</div>
|
|
443
|
+
</div>
|
|
444
|
+
),
|
|
445
|
+
};
|
|
446
|
+
|
|
447
|
+
// All Glass Modes Comparison
|
|
448
|
+
export const AllGlassModesComparison: Story = {
|
|
449
|
+
render: () => (
|
|
450
|
+
<div
|
|
451
|
+
style={{
|
|
452
|
+
backgroundImage: 'url(https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=1920)',
|
|
453
|
+
backgroundSize: 'cover',
|
|
454
|
+
backgroundPosition: 'center',
|
|
455
|
+
padding: '3rem',
|
|
456
|
+
borderRadius: '12px',
|
|
457
|
+
minHeight: '95vh',
|
|
458
|
+
overflow: 'auto',
|
|
459
|
+
}}
|
|
460
|
+
>
|
|
461
|
+
<Container>
|
|
462
|
+
<h2
|
|
463
|
+
style={{
|
|
464
|
+
textAlign: 'center',
|
|
465
|
+
color: 'white',
|
|
466
|
+
marginBottom: '3rem',
|
|
467
|
+
fontSize: '2rem',
|
|
468
|
+
textShadow: '0 2px 8px rgba(0,0,0,0.5)',
|
|
469
|
+
}}
|
|
470
|
+
>
|
|
471
|
+
Glass Mode Cards Comparison
|
|
472
|
+
</h2>
|
|
473
|
+
|
|
474
|
+
<Grid alignItems="stretch">
|
|
475
|
+
<GridCol sm={6} lg={3} className="u-mb-4">
|
|
476
|
+
<Card
|
|
477
|
+
title="Standard Glass"
|
|
478
|
+
text="Classic blur and displacement effects for a refined glass appearance."
|
|
479
|
+
image="https://images.unsplash.com/photo-1518837695005-2083093ee35b?w=400"
|
|
480
|
+
imageAlt="Standard"
|
|
481
|
+
glass={{
|
|
482
|
+
mode: 'standard',
|
|
483
|
+
displacementScale: 60,
|
|
484
|
+
blurAmount: 2,
|
|
485
|
+
saturation: 160,
|
|
486
|
+
aberrationIntensity: 2,
|
|
487
|
+
}}
|
|
488
|
+
actions={<button className="c-btn c-btn--primary c-btn--sm">View</button>}
|
|
489
|
+
/>
|
|
490
|
+
</GridCol>
|
|
491
|
+
|
|
492
|
+
<GridCol sm={6} lg={3} className="u-mb-4">
|
|
493
|
+
<Card
|
|
494
|
+
title="Polar Glass"
|
|
495
|
+
text="Radial distortion effects emanating from the center point."
|
|
496
|
+
image="https://images.unsplash.com/photo-1557683316-973673baf926?w=400"
|
|
497
|
+
imageAlt="Polar"
|
|
498
|
+
glass={{
|
|
499
|
+
mode: 'polar',
|
|
500
|
+
displacementScale: 80,
|
|
501
|
+
blurAmount: 1.5,
|
|
502
|
+
saturation: 180,
|
|
503
|
+
aberrationIntensity: 3,
|
|
504
|
+
}}
|
|
505
|
+
actions={<button className="c-btn c-btn--secondary c-btn--sm">View</button>}
|
|
506
|
+
/>
|
|
507
|
+
</GridCol>
|
|
508
|
+
|
|
509
|
+
<GridCol sm={6} lg={3} className="u-mb-4">
|
|
510
|
+
<Card
|
|
511
|
+
title="Prominent Glass"
|
|
512
|
+
text="Enhanced distortion with maximum depth and visual impact."
|
|
513
|
+
image="https://images.unsplash.com/photo-1579546929518-9e396f3cc809?w=400"
|
|
514
|
+
imageAlt="Prominent"
|
|
515
|
+
glass={{
|
|
516
|
+
mode: 'prominent',
|
|
517
|
+
displacementScale: 100,
|
|
518
|
+
blurAmount: 2.5,
|
|
519
|
+
saturation: 200,
|
|
520
|
+
aberrationIntensity: 4,
|
|
521
|
+
}}
|
|
522
|
+
actions={<button className="c-btn c-btn--success c-btn--sm">View</button>}
|
|
523
|
+
/>
|
|
524
|
+
</GridCol>
|
|
525
|
+
|
|
526
|
+
<GridCol sm={6} lg={3} className="u-mb-4">
|
|
527
|
+
<Card
|
|
528
|
+
title="Shader Glass"
|
|
529
|
+
text="GPU-accelerated liquid glass with smooth animations."
|
|
530
|
+
image="https://images.unsplash.com/photo-1557682250-33bd709cbe85?w=400"
|
|
531
|
+
imageAlt="Shader"
|
|
532
|
+
glass={{
|
|
533
|
+
mode: 'shader',
|
|
534
|
+
shaderVariant: 'liquidGlass',
|
|
535
|
+
displacementScale: 70,
|
|
536
|
+
blurAmount: 1.8,
|
|
537
|
+
saturation: 170,
|
|
538
|
+
}}
|
|
539
|
+
actions={<button className="c-btn c-btn--info c-btn--sm">View</button>}
|
|
540
|
+
/>
|
|
541
|
+
</GridCol>
|
|
542
|
+
</Grid>
|
|
543
|
+
</Container>
|
|
544
|
+
</div>
|
|
545
|
+
),
|
|
546
|
+
};
|
|
547
|
+
|
|
548
|
+
// Glass Card Gallery
|
|
549
|
+
export const GlassCardGallery: Story = {
|
|
550
|
+
render: () => (
|
|
551
|
+
<div
|
|
552
|
+
style={{
|
|
553
|
+
backgroundImage: 'url(https://images.unsplash.com/photo-1519681393784-d120267933ba?w=1920)',
|
|
554
|
+
backgroundSize: 'cover',
|
|
555
|
+
backgroundPosition: 'center',
|
|
556
|
+
padding: '3rem',
|
|
557
|
+
borderRadius: '12px',
|
|
558
|
+
minHeight: '95vh',
|
|
559
|
+
minWidth: '95vw',
|
|
560
|
+
overflow: 'auto',
|
|
561
|
+
}}
|
|
562
|
+
>
|
|
563
|
+
<Container>
|
|
564
|
+
<h2
|
|
565
|
+
style={{
|
|
566
|
+
textAlign: 'center',
|
|
567
|
+
color: 'white',
|
|
568
|
+
marginBottom: '3rem',
|
|
569
|
+
fontSize: '2rem',
|
|
570
|
+
textShadow: '0 2px 8px rgba(0,0,0,0.5)',
|
|
571
|
+
}}
|
|
572
|
+
>
|
|
573
|
+
Glass Card Gallery
|
|
574
|
+
</h2>
|
|
575
|
+
|
|
576
|
+
<Grid alignItems="stretch">
|
|
577
|
+
<GridCol sm={6} lg={4} className="u-mb-4">
|
|
578
|
+
<Card
|
|
579
|
+
title="Nature Photography"
|
|
580
|
+
text="Explore breathtaking landscapes and natural wonders from around the world."
|
|
581
|
+
image="https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=600"
|
|
582
|
+
imageAlt="Nature"
|
|
583
|
+
glass={true}
|
|
584
|
+
actions={
|
|
585
|
+
<React.Fragment>
|
|
586
|
+
<button className="c-btn c-btn--primary c-btn--sm">Explore</button>
|
|
587
|
+
<button className="c-btn c-btn--outline-primary c-btn--sm">Save</button>
|
|
588
|
+
</React.Fragment>
|
|
589
|
+
}
|
|
590
|
+
/>
|
|
591
|
+
</GridCol>
|
|
592
|
+
|
|
593
|
+
<GridCol sm={6} lg={4} className="u-mb-4">
|
|
594
|
+
<Card
|
|
595
|
+
title="Urban Architecture"
|
|
596
|
+
text="Discover modern architectural designs and city landscapes."
|
|
597
|
+
image="https://images.unsplash.com/photo-1480714378408-67cf0d13bc1b?w=600"
|
|
598
|
+
imageAlt="Architecture"
|
|
599
|
+
glass={true}
|
|
600
|
+
actions={
|
|
601
|
+
<React.Fragment>
|
|
602
|
+
<button className="c-btn c-btn--secondary c-btn--sm">Explore</button>
|
|
603
|
+
<button className="c-btn c-btn--outline-secondary c-btn--sm">Save</button>
|
|
604
|
+
</React.Fragment>
|
|
605
|
+
}
|
|
606
|
+
/>
|
|
607
|
+
</GridCol>
|
|
608
|
+
|
|
609
|
+
<GridCol sm={6} lg={4} className="u-mb-4">
|
|
610
|
+
<Card
|
|
611
|
+
title="Abstract Art"
|
|
612
|
+
text="Experience vibrant colors and unique artistic expressions."
|
|
613
|
+
image="https://images.unsplash.com/photo-1557672172-298e090bd0f1?w=600"
|
|
614
|
+
imageAlt="Abstract"
|
|
615
|
+
glass={true}
|
|
616
|
+
actions={
|
|
617
|
+
<React.Fragment>
|
|
618
|
+
<button className="c-btn c-btn--success c-btn--sm">Explore</button>
|
|
619
|
+
<button className="c-btn c-btn--outline-success c-btn--sm">Save</button>
|
|
620
|
+
</React.Fragment>
|
|
621
|
+
}
|
|
622
|
+
/>
|
|
623
|
+
</GridCol>
|
|
624
|
+
|
|
625
|
+
<GridCol sm={6} lg={4} className="u-mb-4">
|
|
626
|
+
<Card
|
|
627
|
+
title="Ocean Views"
|
|
628
|
+
text="Dive into serene ocean scenes and coastal beauty."
|
|
629
|
+
image="https://images.unsplash.com/photo-1505142468610-359e7d316be0?w=600"
|
|
630
|
+
imageAlt="Ocean"
|
|
631
|
+
glass={{
|
|
632
|
+
mode: 'polar',
|
|
633
|
+
displacementScale: 70,
|
|
634
|
+
blurAmount: 2,
|
|
635
|
+
}}
|
|
636
|
+
actions={
|
|
637
|
+
<React.Fragment>
|
|
638
|
+
<button className="c-btn c-btn--info c-btn--sm">Explore</button>
|
|
639
|
+
<button className="c-btn c-btn--outline-info c-btn--sm">Save</button>
|
|
640
|
+
</React.Fragment>
|
|
641
|
+
}
|
|
642
|
+
/>
|
|
643
|
+
</GridCol>
|
|
644
|
+
|
|
645
|
+
<GridCol sm={6} lg={4} className="u-mb-4">
|
|
646
|
+
<Card
|
|
647
|
+
title="Mountain Peaks"
|
|
648
|
+
text="Scale the heights with stunning mountain photography."
|
|
649
|
+
image="https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=600"
|
|
650
|
+
imageAlt="Mountains"
|
|
651
|
+
glass={{
|
|
652
|
+
mode: 'prominent',
|
|
653
|
+
displacementScale: 90,
|
|
654
|
+
}}
|
|
655
|
+
actions={
|
|
656
|
+
<React.Fragment>
|
|
657
|
+
<button className="c-btn c-btn--warning c-btn--sm">Explore</button>
|
|
658
|
+
<button className="c-btn c-btn--outline-warning c-btn--sm">Save</button>
|
|
659
|
+
</React.Fragment>
|
|
660
|
+
}
|
|
661
|
+
/>
|
|
662
|
+
</GridCol>
|
|
663
|
+
|
|
664
|
+
<GridCol sm={6} lg={4} className="u-mb-4">
|
|
665
|
+
<Card
|
|
666
|
+
title="Night Sky"
|
|
667
|
+
text="Gaze at the stars and celestial wonders above."
|
|
668
|
+
image="https://images.unsplash.com/photo-1419242902214-272b3f66ee7a?w=600"
|
|
669
|
+
imageAlt="Night Sky"
|
|
670
|
+
glass={{
|
|
671
|
+
mode: 'shader',
|
|
672
|
+
shaderVariant: 'liquidGlass',
|
|
673
|
+
}}
|
|
674
|
+
actions={
|
|
675
|
+
<React.Fragment>
|
|
676
|
+
<button className="c-btn c-btn--dark c-btn--sm">Explore</button>
|
|
677
|
+
<button className="c-btn c-btn--outline-dark c-btn--sm">Save</button>
|
|
678
|
+
</React.Fragment>
|
|
679
|
+
}
|
|
680
|
+
/>
|
|
681
|
+
</GridCol>
|
|
682
|
+
</Grid>
|
|
683
|
+
</Container>
|
|
684
|
+
</div>
|
|
685
|
+
),
|
|
686
|
+
};
|
|
687
|
+
|
|
688
|
+
// Glass Card Layouts
|
|
689
|
+
export const GlassCardLayouts: Story = {
|
|
690
|
+
render: () => (
|
|
691
|
+
<div
|
|
692
|
+
style={{
|
|
693
|
+
backgroundImage: 'url(https://images.unsplash.com/photo-1464822759023-fed622ff2c3b?w=1920)',
|
|
694
|
+
backgroundSize: 'cover',
|
|
695
|
+
backgroundPosition: 'center',
|
|
696
|
+
padding: '3rem',
|
|
697
|
+
borderRadius: '12px',
|
|
698
|
+
minHeight: '95vh',
|
|
699
|
+
minWidth: '95vw',
|
|
700
|
+
overflow: 'auto',
|
|
701
|
+
}}
|
|
702
|
+
>
|
|
703
|
+
<Container>
|
|
704
|
+
<h2
|
|
705
|
+
style={{
|
|
706
|
+
textAlign: 'center',
|
|
707
|
+
color: 'white',
|
|
708
|
+
marginBottom: '3rem',
|
|
709
|
+
fontSize: '2rem',
|
|
710
|
+
textShadow: '0 2px 8px rgba(0,0,0,0.5)',
|
|
711
|
+
}}
|
|
712
|
+
>
|
|
713
|
+
Glass Card Layouts
|
|
714
|
+
</h2>
|
|
715
|
+
|
|
716
|
+
<div style={{ display: 'flex', gap: '2rem' }}>
|
|
717
|
+
{/* Standard Layout */}
|
|
718
|
+
<div className="u-w-50">
|
|
719
|
+
<h3
|
|
720
|
+
style={{
|
|
721
|
+
color: 'white',
|
|
722
|
+
marginBottom: '1rem',
|
|
723
|
+
textShadow: '0 2px 4px rgba(0,0,0,0.5)',
|
|
724
|
+
}}
|
|
725
|
+
>
|
|
726
|
+
Standard Layout
|
|
727
|
+
</h3>
|
|
728
|
+
<Card
|
|
729
|
+
title="Standard Glass Card"
|
|
730
|
+
text="This is a standard glass card with vertical layout."
|
|
731
|
+
image="https://images.unsplash.com/photo-1464822759023-fed622ff2c3b?w=800"
|
|
732
|
+
imageAlt="Standard"
|
|
733
|
+
glass={true}
|
|
734
|
+
actions={
|
|
735
|
+
<React.Fragment>
|
|
736
|
+
<button className="c-btn c-btn--primary c-btn--sm">Action</button>
|
|
737
|
+
<button className="c-btn c-btn--outline-primary c-btn--sm">Cancel</button>
|
|
738
|
+
</React.Fragment>
|
|
739
|
+
}
|
|
740
|
+
/>
|
|
741
|
+
</div>
|
|
742
|
+
|
|
743
|
+
{/* Row Layout */}
|
|
744
|
+
<div className="u-w-50">
|
|
745
|
+
<h3
|
|
746
|
+
style={{
|
|
747
|
+
color: 'white',
|
|
748
|
+
marginBottom: '1rem',
|
|
749
|
+
textShadow: '0 2px 4px rgba(0,0,0,0.5)',
|
|
750
|
+
}}
|
|
751
|
+
>
|
|
752
|
+
Row Layout
|
|
753
|
+
</h3>
|
|
754
|
+
<Card
|
|
755
|
+
title="Row Glass Card"
|
|
756
|
+
text="This is a row glass card with horizontal layout."
|
|
757
|
+
image="https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=800"
|
|
758
|
+
imageAlt="Row"
|
|
759
|
+
row={true}
|
|
760
|
+
glass={{
|
|
761
|
+
mode: 'polar',
|
|
762
|
+
displacementScale: 60,
|
|
763
|
+
elasticity: 0,
|
|
764
|
+
}}
|
|
765
|
+
actions={
|
|
766
|
+
<React.Fragment>
|
|
767
|
+
<button className="c-btn c-btn--secondary c-btn--sm">Action</button>
|
|
768
|
+
<button className="c-btn c-btn--outline-secondary c-btn--sm">Cancel</button>
|
|
769
|
+
</React.Fragment>
|
|
770
|
+
}
|
|
771
|
+
/>
|
|
772
|
+
</div>
|
|
773
|
+
|
|
774
|
+
{/* Flat Layout */}
|
|
775
|
+
<div className="u-w-50">
|
|
776
|
+
<h3
|
|
777
|
+
style={{
|
|
778
|
+
color: 'white',
|
|
779
|
+
marginBottom: '1rem',
|
|
780
|
+
textShadow: '0 2px 4px rgba(0,0,0,0.5)',
|
|
781
|
+
}}
|
|
782
|
+
>
|
|
783
|
+
Flat Layout
|
|
784
|
+
</h3>
|
|
785
|
+
<Card
|
|
786
|
+
title="Flat Glass Card"
|
|
787
|
+
text="This is a flat glass card with edge-to-edge image."
|
|
788
|
+
image="https://images.unsplash.com/photo-1519681393784-d120267933ba?w=800"
|
|
789
|
+
imageAlt="Flat"
|
|
790
|
+
flat={true}
|
|
791
|
+
glass={{
|
|
792
|
+
mode: 'shader',
|
|
793
|
+
shaderVariant: 'liquidGlass',
|
|
794
|
+
elasticity: 0,
|
|
795
|
+
}}
|
|
796
|
+
actions={
|
|
797
|
+
<React.Fragment>
|
|
798
|
+
<button className="c-btn c-btn--success c-btn--sm">Action</button>
|
|
799
|
+
<button className="c-btn c-btn--outline-success c-btn--sm">Cancel</button>
|
|
800
|
+
</React.Fragment>
|
|
801
|
+
}
|
|
802
|
+
/>
|
|
803
|
+
</div>
|
|
804
|
+
</div>
|
|
805
|
+
</Container>
|
|
806
|
+
</div>
|
|
807
|
+
),
|
|
808
|
+
};
|
|
@@ -20,7 +20,7 @@ export const Card = forwardRef<HTMLDivElement, CardProps>(
|
|
|
20
20
|
className = '',
|
|
21
21
|
children,
|
|
22
22
|
onClick,
|
|
23
|
-
|
|
23
|
+
style,
|
|
24
24
|
glass,
|
|
25
25
|
...rest
|
|
26
26
|
},
|
|
@@ -35,7 +35,7 @@ export const Card = forwardRef<HTMLDivElement, CardProps>(
|
|
|
35
35
|
]
|
|
36
36
|
.filter(Boolean)
|
|
37
37
|
.join(' ');
|
|
38
|
-
|
|
38
|
+
|
|
39
39
|
const cardContent = (
|
|
40
40
|
<>
|
|
41
41
|
{(image || icon || header) && (
|
|
@@ -66,12 +66,23 @@ export const Card = forwardRef<HTMLDivElement, CardProps>(
|
|
|
66
66
|
if (glass) {
|
|
67
67
|
const glassProps = glass === true ? {} : glass;
|
|
68
68
|
return (
|
|
69
|
-
<
|
|
69
|
+
<AtomixGlass {...{ ...glassProps, elasticity: 0 }}>
|
|
70
|
+
{' '}
|
|
71
|
+
<div
|
|
72
|
+
ref={ref}
|
|
73
|
+
className={cardClasses + ' c-card--glass'}
|
|
74
|
+
onClick={onClick}
|
|
75
|
+
{...rest}
|
|
76
|
+
style={{ ...style }}
|
|
77
|
+
>
|
|
78
|
+
{cardContent}
|
|
79
|
+
</div>
|
|
80
|
+
</AtomixGlass>
|
|
70
81
|
);
|
|
71
82
|
}
|
|
72
83
|
|
|
73
84
|
return (
|
|
74
|
-
<div ref={ref} className={cardClasses} onClick={onClick} {...rest} style={{ ...
|
|
85
|
+
<div ref={ref} className={cardClasses} onClick={onClick} {...rest} style={{ ...style }}>
|
|
75
86
|
{cardContent}
|
|
76
87
|
</div>
|
|
77
88
|
);
|
|
@@ -6,6 +6,7 @@ import { ElevationCardProps } from '../../lib/types/components';
|
|
|
6
6
|
export const ElevationCard: React.FC<ElevationCardProps> = ({
|
|
7
7
|
elevationClass = 'is-elevated',
|
|
8
8
|
className = '',
|
|
9
|
+
style,
|
|
9
10
|
children,
|
|
10
11
|
onClick,
|
|
11
12
|
...props
|
|
@@ -24,6 +25,7 @@ export const ElevationCard: React.FC<ElevationCardProps> = ({
|
|
|
24
25
|
<div
|
|
25
26
|
className={`${className} ${cardProps.className}`}
|
|
26
27
|
ref={cardProps.ref}
|
|
28
|
+
style={style}
|
|
27
29
|
tabIndex={cardProps.tabIndex}
|
|
28
30
|
role={cardProps.role}
|
|
29
31
|
onMouseEnter={cardProps.onMouseEnter}
|