@shohojdhara/atomix 0.6.4 → 0.6.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/dist/atomix.css +117 -38
- package/dist/atomix.css.map +1 -1
- package/dist/atomix.min.css +1 -1
- package/dist/atomix.min.css.map +1 -1
- package/dist/atomix.umd.js +1 -1
- package/dist/atomix.umd.js.map +1 -1
- package/dist/atomix.umd.min.js +1 -1
- package/dist/charts.d.ts +30 -1
- package/dist/charts.js +566 -597
- package/dist/charts.js.map +1 -1
- package/dist/core.d.ts +30 -1
- package/dist/core.js +600 -624
- package/dist/core.js.map +1 -1
- package/dist/forms.d.ts +30 -1
- package/dist/forms.js +1122 -1163
- package/dist/forms.js.map +1 -1
- package/dist/heavy.d.ts +31 -89
- package/dist/heavy.js +1015 -1045
- package/dist/heavy.js.map +1 -1
- package/dist/index.d.ts +378 -104
- package/dist/index.esm.js +10959 -10837
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +10935 -10812
- 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 +1 -1
- package/src/components/Accordion/Accordion.tsx +2 -5
- package/src/components/AtomixGlass/AtomixGlass.test.tsx +14 -16
- package/src/components/AtomixGlass/AtomixGlass.tsx +137 -355
- package/src/components/AtomixGlass/AtomixGlassContainer.tsx +32 -249
- package/src/components/AtomixGlass/GlassFilter.tsx +62 -68
- package/src/components/AtomixGlass/README.md +2 -1
- package/src/components/AtomixGlass/__snapshots__/AtomixGlass.test.tsx.snap +19 -18
- package/src/components/AtomixGlass/glass-border-styles.test.ts +58 -0
- package/src/components/AtomixGlass/glass-border-styles.ts +136 -0
- package/src/components/AtomixGlass/glass-utils.ts +411 -6
- package/src/components/AtomixGlass/stories/AnimationFeatures.stories.tsx +158 -537
- package/src/components/AtomixGlass/stories/Border.stories.tsx +149 -0
- package/src/components/AtomixGlass/stories/Examples.stories.tsx +229 -89
- package/src/components/AtomixGlass/stories/Playground.stories.tsx +29 -340
- package/src/components/AtomixGlass/stories/argTypes.ts +30 -13
- package/src/components/AtomixGlass/stories/premium-presets.ts +206 -0
- package/src/components/AtomixGlass/stories/shared-components.tsx +52 -8
- package/src/components/Badge/Badge.tsx +4 -4
- package/src/components/Button/Button.tsx +2 -6
- package/src/components/Callout/Callout.test.tsx +4 -3
- package/src/components/Callout/Callout.tsx +2 -5
- package/src/components/Dropdown/Dropdown.tsx +3 -7
- package/src/components/Form/Checkbox.tsx +2 -8
- package/src/components/Form/Input.tsx +2 -9
- package/src/components/Form/Radio.tsx +2 -9
- package/src/components/Form/Select.tsx +2 -7
- package/src/components/Form/Textarea.tsx +2 -9
- package/src/components/Messages/Messages.tsx +2 -8
- package/src/components/Modal/Modal.tsx +4 -5
- package/src/components/Navigation/Nav/Nav.tsx +2 -6
- package/src/components/Navigation/Navbar/Navbar.tsx +2 -9
- package/src/components/Navigation/SideMenu/SideMenu.tsx +2 -6
- package/src/components/Pagination/Pagination.tsx +2 -10
- package/src/components/Popover/Popover.tsx +2 -9
- package/src/components/Progress/Progress.tsx +2 -7
- package/src/components/Rating/Rating.tsx +2 -10
- package/src/components/Spinner/Spinner.tsx +2 -7
- package/src/components/Steps/Steps.tsx +2 -10
- package/src/components/Tabs/Tabs.tsx +2 -9
- package/src/components/Toggle/Toggle.tsx +2 -10
- package/src/components/Tooltip/Tooltip.tsx +2 -5
- package/src/lib/composables/useAtomixGlass.ts +41 -10
- package/src/lib/composables/useAtomixGlassStyles.ts +59 -75
- package/src/lib/composables/usePerformanceMonitor.ts +5 -0
- package/src/lib/constants/components.ts +358 -46
- package/src/lib/types/components.ts +33 -1
- package/src/styles/01-settings/_settings.atomix-glass.scss +66 -28
- package/src/styles/02-tools/_tools.glass.scss +45 -3
- package/src/styles/06-components/_components.atomix-glass.scss +114 -77
- package/src/components/AtomixGlass/deprecated/AtomixGlass.deprecated.tsx +0 -390
|
@@ -11,7 +11,8 @@ import React from 'react';
|
|
|
11
11
|
import { useState, useEffect } from 'react';
|
|
12
12
|
import { Meta, StoryObj } from '@storybook/react';
|
|
13
13
|
import AtomixGlass from '../AtomixGlass';
|
|
14
|
-
import { BackgroundWrapper, backgroundImages } from './shared-components';
|
|
14
|
+
import { BackgroundWrapper, backgroundImages, PremiumScene } from './shared-components';
|
|
15
|
+
import { PREMIUM_GLASS, premiumTypography } from './premium-presets';
|
|
15
16
|
|
|
16
17
|
import { Button } from '../../Button';
|
|
17
18
|
import { Badge } from '../../Badge';
|
|
@@ -28,7 +29,7 @@ const meta: Meta<typeof AtomixGlass> = {
|
|
|
28
29
|
docs: {
|
|
29
30
|
description: {
|
|
30
31
|
component:
|
|
31
|
-
'
|
|
32
|
+
'Premium real-world previews — Apple-tuned glass (deep blur, subtle displacement) across product UI patterns.',
|
|
32
33
|
},
|
|
33
34
|
},
|
|
34
35
|
},
|
|
@@ -38,6 +39,41 @@ const meta: Meta<typeof AtomixGlass> = {
|
|
|
38
39
|
export default meta;
|
|
39
40
|
type Story = StoryObj<typeof AtomixGlass>;
|
|
40
41
|
|
|
42
|
+
/**
|
|
43
|
+
* Curated premium preview — card, chrome, and liquid presets side by side.
|
|
44
|
+
*/
|
|
45
|
+
export const PremiumShowcase: Story = {
|
|
46
|
+
render: () => (
|
|
47
|
+
<PremiumScene photoIndex={1} height="100vh">
|
|
48
|
+
<div
|
|
49
|
+
className="u-grid u-gap-6 u-w-100"
|
|
50
|
+
style={{
|
|
51
|
+
gridTemplateColumns: 'repeat(auto-fit, minmax(260px, 1fr))',
|
|
52
|
+
maxWidth: '960px',
|
|
53
|
+
margin: '0 auto',
|
|
54
|
+
fontFamily: premiumTypography.fontFamily,
|
|
55
|
+
}}
|
|
56
|
+
>
|
|
57
|
+
{(
|
|
58
|
+
[
|
|
59
|
+
{ preset: PREMIUM_GLASS.chrome, label: 'Chrome', sub: 'Nav · sidebar · player' },
|
|
60
|
+
{ preset: PREMIUM_GLASS.card, label: 'Card', sub: 'Panels · modals' },
|
|
61
|
+
{ preset: PREMIUM_GLASS.liquid, label: 'Liquid', sub: 'Shader · motion' },
|
|
62
|
+
] as const
|
|
63
|
+
).map(({ preset, label, sub }) => (
|
|
64
|
+
<AtomixGlass key={label} {...preset} elasticity={0}>
|
|
65
|
+
<div style={{ padding: '32px 28px', color: '#fff' }}>
|
|
66
|
+
<div style={{ fontSize: '11px', letterSpacing: '0.08em', opacity: 0.5 }}>PREMIUM</div>
|
|
67
|
+
<h3 style={{ margin: '8px 0 4px', fontSize: '22px', fontWeight: 700 }}>{label}</h3>
|
|
68
|
+
<p style={{ margin: 0, fontSize: '13px', color: premiumTypography.muted }}>{sub}</p>
|
|
69
|
+
</div>
|
|
70
|
+
</AtomixGlass>
|
|
71
|
+
))}
|
|
72
|
+
</div>
|
|
73
|
+
</PremiumScene>
|
|
74
|
+
),
|
|
75
|
+
};
|
|
76
|
+
|
|
41
77
|
/**
|
|
42
78
|
* Hero section example
|
|
43
79
|
*
|
|
@@ -52,18 +88,7 @@ export const HeroExample: Story = {
|
|
|
52
88
|
>
|
|
53
89
|
<div>
|
|
54
90
|
<div className="u-max-w-4xl u-mx-auto">
|
|
55
|
-
<AtomixGlass
|
|
56
|
-
displacementScale={150}
|
|
57
|
-
blurAmount={2.5}
|
|
58
|
-
saturation={160}
|
|
59
|
-
aberrationIntensity={4}
|
|
60
|
-
borderRadius={30}
|
|
61
|
-
mode="prominent"
|
|
62
|
-
withLiquidBlur={true}
|
|
63
|
-
withTimeAnimation={true}
|
|
64
|
-
withMultiLayerDistortion={true}
|
|
65
|
-
onClick={() => {}}
|
|
66
|
-
>
|
|
91
|
+
<AtomixGlass {...PREMIUM_GLASS.hero} borderRadius={30} elasticity={0.06} onClick={() => {}}>
|
|
67
92
|
<div
|
|
68
93
|
className="u-p-12 u-text-white u-text-center"
|
|
69
94
|
style={{ padding: '48px 40px', textAlign: 'center' }}
|
|
@@ -234,9 +259,9 @@ export const VideoBackground: Story = {
|
|
|
234
259
|
|
|
235
260
|
{/* Side Control Panel */}
|
|
236
261
|
<AtomixGlass
|
|
237
|
-
displacementScale={
|
|
238
|
-
blurAmount={
|
|
239
|
-
saturation={
|
|
262
|
+
displacementScale={24}
|
|
263
|
+
blurAmount={20}
|
|
264
|
+
saturation={180}
|
|
240
265
|
aberrationIntensity={1.5}
|
|
241
266
|
borderRadius={16}
|
|
242
267
|
mode="standard"
|
|
@@ -411,10 +436,10 @@ export const DashboardCards: Story = {
|
|
|
411
436
|
>
|
|
412
437
|
<div className="u-max-w-6xl u-mx-auto u-text-white" style={{ maxWidth: '1200px', margin: '0 auto', color: 'white' }}>
|
|
413
438
|
<AtomixGlass
|
|
414
|
-
displacementScale={
|
|
415
|
-
blurAmount={
|
|
416
|
-
saturation={
|
|
417
|
-
aberrationIntensity={
|
|
439
|
+
displacementScale={32}
|
|
440
|
+
blurAmount={26}
|
|
441
|
+
saturation={185}
|
|
442
|
+
aberrationIntensity={0.9}
|
|
418
443
|
borderRadius={24}
|
|
419
444
|
mode="prominent"
|
|
420
445
|
withLiquidBlur={true}
|
|
@@ -585,7 +610,7 @@ export const ProductCard: Story = {
|
|
|
585
610
|
}
|
|
586
611
|
>
|
|
587
612
|
<div className="u-w-75 u-mx-auto" style={{ width: '300px' }}>
|
|
588
|
-
<AtomixGlass displacementScale={
|
|
613
|
+
<AtomixGlass displacementScale={28} blurAmount={24} mode="standard" elasticity={0}>
|
|
589
614
|
<div className="u-p-3">
|
|
590
615
|
{/* Product Image */}
|
|
591
616
|
<div
|
|
@@ -776,9 +801,9 @@ export const NotificationCenter: Story = {
|
|
|
776
801
|
>
|
|
777
802
|
<div className="u-w-90 u-max-w-md u-mx-auto" style={{ width: '360px', maxWidth: 'none', margin: '0 auto' }}>
|
|
778
803
|
<AtomixGlass
|
|
779
|
-
displacementScale={
|
|
780
|
-
blurAmount={
|
|
781
|
-
saturation={
|
|
804
|
+
displacementScale={36}
|
|
805
|
+
blurAmount={22}
|
|
806
|
+
saturation={180}
|
|
782
807
|
aberrationIntensity={2.5}
|
|
783
808
|
borderRadius={20}
|
|
784
809
|
mode="polar"
|
|
@@ -924,9 +949,9 @@ export const LoginForm: Story = {
|
|
|
924
949
|
<div className="u-py-16 u-text-white">
|
|
925
950
|
<div className="u-max-w-md u-mx-auto" style={{ maxWidth: '380px' }}>
|
|
926
951
|
<AtomixGlass
|
|
927
|
-
displacementScale={
|
|
928
|
-
blurAmount={
|
|
929
|
-
saturation={
|
|
952
|
+
displacementScale={28}
|
|
953
|
+
blurAmount={20}
|
|
954
|
+
saturation={180}
|
|
930
955
|
aberrationIntensity={2}
|
|
931
956
|
borderRadius={24}
|
|
932
957
|
mode="standard"
|
|
@@ -1217,15 +1242,15 @@ export const SimpleMusicPlayer: Story = {
|
|
|
1217
1242
|
>
|
|
1218
1243
|
<div style={{ maxWidth: '380px' }} className="u-mx-auto">
|
|
1219
1244
|
<AtomixGlass
|
|
1220
|
-
displacementScale={
|
|
1221
|
-
blurAmount={
|
|
1245
|
+
displacementScale={28}
|
|
1246
|
+
blurAmount={24}
|
|
1222
1247
|
borderRadius={28}
|
|
1223
1248
|
elasticity={0.01}
|
|
1224
1249
|
mode="standard"
|
|
1225
1250
|
>
|
|
1226
1251
|
<div className="u-p-3">
|
|
1227
1252
|
{/* Album Art */}
|
|
1228
|
-
<AtomixGlass displacementScale={0} blurAmount={
|
|
1253
|
+
<AtomixGlass displacementScale={0} blurAmount={20} borderRadius={20} mode="standard">
|
|
1229
1254
|
<div
|
|
1230
1255
|
style={{
|
|
1231
1256
|
aspectRatio: '1:2',
|
|
@@ -1509,10 +1534,10 @@ export const MusicPlayer: Story = {
|
|
|
1509
1534
|
>
|
|
1510
1535
|
<div className="u-max-w-lg u-mx-auto" style={{ maxWidth: '500px', margin: '0 auto' }}>
|
|
1511
1536
|
<AtomixGlass
|
|
1512
|
-
displacementScale={
|
|
1513
|
-
blurAmount={
|
|
1514
|
-
saturation={
|
|
1515
|
-
aberrationIntensity={
|
|
1537
|
+
displacementScale={36}
|
|
1538
|
+
blurAmount={24}
|
|
1539
|
+
saturation={185}
|
|
1540
|
+
aberrationIntensity={0.9}
|
|
1516
1541
|
borderRadius={30}
|
|
1517
1542
|
mode="polar"
|
|
1518
1543
|
withLiquidBlur={true}
|
|
@@ -1899,7 +1924,7 @@ export const PricingTable: Story = {
|
|
|
1899
1924
|
|
|
1900
1925
|
{/* Billing Toggle */}
|
|
1901
1926
|
<div style={{ width: '100%', maxWidth: '200px', margin: '0 auto' }}>
|
|
1902
|
-
<AtomixGlass blurAmount={
|
|
1927
|
+
<AtomixGlass blurAmount={20} saturation={180} borderRadius={50} mode="standard">
|
|
1903
1928
|
<button
|
|
1904
1929
|
onClick={() => setBillingCycle('monthly')}
|
|
1905
1930
|
style={{
|
|
@@ -1966,7 +1991,7 @@ export const PricingTable: Story = {
|
|
|
1966
1991
|
<AtomixGlass
|
|
1967
1992
|
key={index}
|
|
1968
1993
|
displacementScale={plan.popular ? 100 : 40}
|
|
1969
|
-
blurAmount={
|
|
1994
|
+
blurAmount={20}
|
|
1970
1995
|
saturation={plan.popular ? 180 : 130}
|
|
1971
1996
|
aberrationIntensity={plan.popular ? 2 : 1.5}
|
|
1972
1997
|
borderRadius={24}
|
|
@@ -2200,8 +2225,8 @@ export const ChatInterface: Story = {
|
|
|
2200
2225
|
>
|
|
2201
2226
|
<div style={{ maxWidth: '450px', width: '100%' }} className="u-mx-auto">
|
|
2202
2227
|
<AtomixGlass
|
|
2203
|
-
displacementScale={
|
|
2204
|
-
blurAmount={
|
|
2228
|
+
displacementScale={36}
|
|
2229
|
+
blurAmount={20}
|
|
2205
2230
|
borderRadius={24}
|
|
2206
2231
|
elasticity={0.1}
|
|
2207
2232
|
mode="prominent"
|
|
@@ -2556,8 +2581,8 @@ export const ProfileCard: Story = {
|
|
|
2556
2581
|
>
|
|
2557
2582
|
<div style={{ width: '420px', maxWidth: '100%' }} className="u-mx-auto">
|
|
2558
2583
|
<AtomixGlass
|
|
2559
|
-
displacementScale={
|
|
2560
|
-
blurAmount={
|
|
2584
|
+
displacementScale={26}
|
|
2585
|
+
blurAmount={28}
|
|
2561
2586
|
borderRadius={24}
|
|
2562
2587
|
mode="standard"
|
|
2563
2588
|
elasticity={0.05}
|
|
@@ -2788,7 +2813,7 @@ export const ProfileCard: Story = {
|
|
|
2788
2813
|
}}
|
|
2789
2814
|
>
|
|
2790
2815
|
<AtomixGlass
|
|
2791
|
-
blurAmount={
|
|
2816
|
+
blurAmount={22}
|
|
2792
2817
|
borderRadius={16}
|
|
2793
2818
|
elasticity={0}
|
|
2794
2819
|
mode="standard"
|
|
@@ -2867,7 +2892,7 @@ export const SettingsPanel: Story = {
|
|
|
2867
2892
|
height="90vh"
|
|
2868
2893
|
>
|
|
2869
2894
|
<div className="u-mx-auto u-py-6" style={{ maxWidth: '550px' }}>
|
|
2870
|
-
<AtomixGlass displacementScale={
|
|
2895
|
+
<AtomixGlass displacementScale={26} blurAmount={20} borderRadius={24} mode="standard">
|
|
2871
2896
|
<div style={{ padding: '32px' }}>
|
|
2872
2897
|
{/* Header */}
|
|
2873
2898
|
<div className="u-mb-5">
|
|
@@ -3276,7 +3301,7 @@ export const EventCard: Story = {
|
|
|
3276
3301
|
height="90vh"
|
|
3277
3302
|
>
|
|
3278
3303
|
<div className="u-mx-auto u-py-6" style={{ maxWidth: '480px' }}>
|
|
3279
|
-
<AtomixGlass displacementScale={
|
|
3304
|
+
<AtomixGlass displacementScale={26} blurAmount={26} borderRadius={24} mode="standard">
|
|
3280
3305
|
{/* Event Image */}
|
|
3281
3306
|
<div
|
|
3282
3307
|
style={{
|
|
@@ -3652,8 +3677,8 @@ export const SocialMediaPost: Story = {
|
|
|
3652
3677
|
>
|
|
3653
3678
|
<div className="u-mx-auto u-py-6" style={{ maxWidth: '450px' }}>
|
|
3654
3679
|
<AtomixGlass
|
|
3655
|
-
displacementScale={
|
|
3656
|
-
blurAmount={
|
|
3680
|
+
displacementScale={56}
|
|
3681
|
+
blurAmount={28}
|
|
3657
3682
|
borderRadius={24}
|
|
3658
3683
|
mode="standard"
|
|
3659
3684
|
elasticity={0}
|
|
@@ -4014,8 +4039,8 @@ export const WeatherWidget: Story = {
|
|
|
4014
4039
|
>
|
|
4015
4040
|
<div className="u-mx-auto u-py-6" style={{ maxWidth: '500px' }}>
|
|
4016
4041
|
<AtomixGlass
|
|
4017
|
-
displacementScale={
|
|
4018
|
-
blurAmount={
|
|
4042
|
+
displacementScale={28}
|
|
4043
|
+
blurAmount={22}
|
|
4019
4044
|
saturation={190}
|
|
4020
4045
|
borderRadius={32}
|
|
4021
4046
|
mode="standard"
|
|
@@ -4293,8 +4318,8 @@ export const SearchResults: Story = {
|
|
|
4293
4318
|
>
|
|
4294
4319
|
<div className="u-mx-auto u-py-6" style={{ maxWidth: '900px' }}>
|
|
4295
4320
|
<AtomixGlass
|
|
4296
|
-
displacementScale={
|
|
4297
|
-
blurAmount={
|
|
4321
|
+
displacementScale={24}
|
|
4322
|
+
blurAmount={22}
|
|
4298
4323
|
borderRadius={30}
|
|
4299
4324
|
mode="standard"
|
|
4300
4325
|
onClick={() => {}}
|
|
@@ -4536,8 +4561,8 @@ export const PaymentForm: Story = {
|
|
|
4536
4561
|
>
|
|
4537
4562
|
<div style={{ minWidth: '300px', maxWidth: '400px' }} className="u-mx-auto">
|
|
4538
4563
|
<AtomixGlass
|
|
4539
|
-
displacementScale={
|
|
4540
|
-
blurAmount={
|
|
4564
|
+
displacementScale={24}
|
|
4565
|
+
blurAmount={22}
|
|
4541
4566
|
saturation={180}
|
|
4542
4567
|
borderRadius={28}
|
|
4543
4568
|
mode="standard"
|
|
@@ -4590,7 +4615,7 @@ export const PaymentForm: Story = {
|
|
|
4590
4615
|
<AtomixGlass
|
|
4591
4616
|
mode="standard"
|
|
4592
4617
|
displacementScale={0}
|
|
4593
|
-
blurAmount={
|
|
4618
|
+
blurAmount={20}
|
|
4594
4619
|
saturation={200}
|
|
4595
4620
|
elasticity={0}
|
|
4596
4621
|
>
|
|
@@ -4921,8 +4946,8 @@ export const NewsletterSubscription: Story = {
|
|
|
4921
4946
|
>
|
|
4922
4947
|
<div className="u-mx-auto u-py-6" style={{ maxWidth: '500px' }}>
|
|
4923
4948
|
<AtomixGlass
|
|
4924
|
-
displacementScale={
|
|
4925
|
-
blurAmount={
|
|
4949
|
+
displacementScale={36}
|
|
4950
|
+
blurAmount={24}
|
|
4926
4951
|
borderRadius={32}
|
|
4927
4952
|
mode="standard"
|
|
4928
4953
|
elasticity={0}
|
|
@@ -5545,8 +5570,8 @@ export const MobileUIExample: Story = {
|
|
|
5545
5570
|
return (
|
|
5546
5571
|
<div style={{ padding: '10px 0' }}>
|
|
5547
5572
|
<AtomixGlass
|
|
5548
|
-
displacementScale={
|
|
5549
|
-
blurAmount={
|
|
5573
|
+
displacementScale={28}
|
|
5574
|
+
blurAmount={20}
|
|
5550
5575
|
borderRadius={24}
|
|
5551
5576
|
mode="prominent"
|
|
5552
5577
|
onClick={() => null}
|
|
@@ -5608,8 +5633,8 @@ export const MobileUIExample: Story = {
|
|
|
5608
5633
|
<div style={{ height: '15px' }} />
|
|
5609
5634
|
|
|
5610
5635
|
<AtomixGlass
|
|
5611
|
-
displacementScale={
|
|
5612
|
-
blurAmount={
|
|
5636
|
+
displacementScale={28}
|
|
5637
|
+
blurAmount={20}
|
|
5613
5638
|
saturation={185}
|
|
5614
5639
|
elasticity={0.2}
|
|
5615
5640
|
borderRadius={30}
|
|
@@ -5687,8 +5712,8 @@ export const MobileUIExample: Story = {
|
|
|
5687
5712
|
return (
|
|
5688
5713
|
<div style={{ padding: '10px 0' }}>
|
|
5689
5714
|
<AtomixGlass
|
|
5690
|
-
displacementScale={
|
|
5691
|
-
blurAmount={
|
|
5715
|
+
displacementScale={56}
|
|
5716
|
+
blurAmount={20}
|
|
5692
5717
|
borderRadius={15}
|
|
5693
5718
|
mode="shader"
|
|
5694
5719
|
onClick={() => null}
|
|
@@ -5733,8 +5758,8 @@ export const MobileUIExample: Story = {
|
|
|
5733
5758
|
<div style={{ height: '15px' }} />
|
|
5734
5759
|
|
|
5735
5760
|
<AtomixGlass
|
|
5736
|
-
displacementScale={
|
|
5737
|
-
blurAmount={
|
|
5761
|
+
displacementScale={28}
|
|
5762
|
+
blurAmount={20}
|
|
5738
5763
|
borderRadius={15}
|
|
5739
5764
|
onClick={() => null}
|
|
5740
5765
|
>
|
|
@@ -5780,8 +5805,8 @@ export const MobileUIExample: Story = {
|
|
|
5780
5805
|
return (
|
|
5781
5806
|
<div style={{ padding: '10px 0' }}>
|
|
5782
5807
|
<AtomixGlass
|
|
5783
|
-
displacementScale={
|
|
5784
|
-
blurAmount={
|
|
5808
|
+
displacementScale={28}
|
|
5809
|
+
blurAmount={20}
|
|
5785
5810
|
borderRadius={15}
|
|
5786
5811
|
mode="standard"
|
|
5787
5812
|
onClick={() => null}
|
|
@@ -5899,8 +5924,8 @@ export const MobileUIExample: Story = {
|
|
|
5899
5924
|
return (
|
|
5900
5925
|
<div style={{ padding: '10px 0' }}>
|
|
5901
5926
|
<AtomixGlass
|
|
5902
|
-
displacementScale={
|
|
5903
|
-
blurAmount={
|
|
5927
|
+
displacementScale={24}
|
|
5928
|
+
blurAmount={20}
|
|
5904
5929
|
saturation={180}
|
|
5905
5930
|
elasticity={0.16}
|
|
5906
5931
|
borderRadius={15}
|
|
@@ -5969,9 +5994,9 @@ export const MobileUIExample: Story = {
|
|
|
5969
5994
|
<div style={{ textAlign: 'center', marginBottom: '40px' }}>
|
|
5970
5995
|
<AtomixGlass
|
|
5971
5996
|
mode="standard"
|
|
5972
|
-
displacementScale={
|
|
5973
|
-
blurAmount={
|
|
5974
|
-
saturation={
|
|
5997
|
+
displacementScale={28}
|
|
5998
|
+
blurAmount={20}
|
|
5999
|
+
saturation={180}
|
|
5975
6000
|
borderRadius={24}
|
|
5976
6001
|
elasticity={0.1}
|
|
5977
6002
|
style={{ marginBottom: '24px', display: 'inline-block' }}
|
|
@@ -6032,7 +6057,7 @@ export const MobileUIExample: Story = {
|
|
|
6032
6057
|
{/* Header */}
|
|
6033
6058
|
<AtomixGlass
|
|
6034
6059
|
displacementScale={20}
|
|
6035
|
-
blurAmount={
|
|
6060
|
+
blurAmount={20}
|
|
6036
6061
|
saturation={180}
|
|
6037
6062
|
elasticity={0}
|
|
6038
6063
|
borderRadius={26}
|
|
@@ -6065,7 +6090,7 @@ export const MobileUIExample: Story = {
|
|
|
6065
6090
|
|
|
6066
6091
|
{/* Bottom navigation */}
|
|
6067
6092
|
<AtomixGlass
|
|
6068
|
-
displacementScale={
|
|
6093
|
+
displacementScale={22}
|
|
6069
6094
|
elasticity={0}
|
|
6070
6095
|
borderRadius={18}
|
|
6071
6096
|
mode="shader"
|
|
@@ -6148,6 +6173,129 @@ export const MobileUIExample: Story = {
|
|
|
6148
6173
|
},
|
|
6149
6174
|
};
|
|
6150
6175
|
|
|
6176
|
+
/**
|
|
6177
|
+
* Apple Music–style layout: dark chrome, sidebar, and floating player bar.
|
|
6178
|
+
* Uses AtomixGlass defaults tuned for Apple's liquid-glass recipe.
|
|
6179
|
+
*/
|
|
6180
|
+
export const AppleMusicUI: Story = {
|
|
6181
|
+
render: () => (
|
|
6182
|
+
<div
|
|
6183
|
+
style={{
|
|
6184
|
+
minHeight: '90vh',
|
|
6185
|
+
background:
|
|
6186
|
+
'radial-gradient(ellipse 120% 80% at 70% 20%, #5c1030 0%, #1a0a12 45%, #0d0d0f 100%)',
|
|
6187
|
+
color: '#fff',
|
|
6188
|
+
fontFamily: premiumTypography.fontFamily,
|
|
6189
|
+
display: 'flex',
|
|
6190
|
+
overflow: 'hidden',
|
|
6191
|
+
}}
|
|
6192
|
+
>
|
|
6193
|
+
<AtomixGlass
|
|
6194
|
+
{...PREMIUM_GLASS.chrome}
|
|
6195
|
+
borderRadius={0}
|
|
6196
|
+
style={{ width: 220, flexShrink: 0 }}
|
|
6197
|
+
>
|
|
6198
|
+
<nav style={{ padding: '20px 12px', minHeight: '90vh' }}>
|
|
6199
|
+
<p
|
|
6200
|
+
style={{
|
|
6201
|
+
margin: '0 0 16px 12px',
|
|
6202
|
+
fontSize: 11,
|
|
6203
|
+
fontWeight: 600,
|
|
6204
|
+
letterSpacing: '0.06em',
|
|
6205
|
+
textTransform: 'uppercase',
|
|
6206
|
+
opacity: 0.45,
|
|
6207
|
+
}}
|
|
6208
|
+
>
|
|
6209
|
+
Library
|
|
6210
|
+
</p>
|
|
6211
|
+
{['Home', 'New', 'Radio'].map((item, i) => (
|
|
6212
|
+
<div
|
|
6213
|
+
key={item}
|
|
6214
|
+
style={{
|
|
6215
|
+
display: 'flex',
|
|
6216
|
+
alignItems: 'center',
|
|
6217
|
+
gap: 10,
|
|
6218
|
+
padding: '8px 12px',
|
|
6219
|
+
marginBottom: 4,
|
|
6220
|
+
borderRadius: 8,
|
|
6221
|
+
fontSize: 14,
|
|
6222
|
+
fontWeight: 500,
|
|
6223
|
+
background: i === 0 ? 'rgba(255, 45, 85, 0.22)' : 'transparent',
|
|
6224
|
+
color: i === 0 ? '#ff375f' : 'rgba(255,255,255,0.85)',
|
|
6225
|
+
}}
|
|
6226
|
+
>
|
|
6227
|
+
<Icon name={i === 0 ? 'House' : i === 1 ? 'Sparkle' : 'Radio'} />
|
|
6228
|
+
{item}
|
|
6229
|
+
</div>
|
|
6230
|
+
))}
|
|
6231
|
+
</nav>
|
|
6232
|
+
</AtomixGlass>
|
|
6233
|
+
|
|
6234
|
+
<main style={{ flex: 1, padding: '32px 40px 120px', position: 'relative' }}>
|
|
6235
|
+
<h1 style={{ margin: '0 0 28px', fontSize: 34, fontWeight: 700 }}>Home</h1>
|
|
6236
|
+
<div style={{ display: 'grid', gap: 16, maxWidth: 520 }}>
|
|
6237
|
+
<div
|
|
6238
|
+
style={{
|
|
6239
|
+
borderRadius: 14,
|
|
6240
|
+
padding: 28,
|
|
6241
|
+
background: 'linear-gradient(135deg, #8b1538 0%, #e91e63 55%, #ff6b9d 100%)',
|
|
6242
|
+
minHeight: 140,
|
|
6243
|
+
}}
|
|
6244
|
+
>
|
|
6245
|
+
<span style={{ fontSize: 28, opacity: 0.9 }}></span>
|
|
6246
|
+
<p style={{ margin: '12px 0 0', fontSize: 22, fontWeight: 600 }}>100 million songs.</p>
|
|
6247
|
+
</div>
|
|
6248
|
+
<div
|
|
6249
|
+
style={{
|
|
6250
|
+
borderRadius: 14,
|
|
6251
|
+
padding: 28,
|
|
6252
|
+
background: 'linear-gradient(135deg, #c026d3 0%, #e879f9 100%)',
|
|
6253
|
+
minHeight: 100,
|
|
6254
|
+
}}
|
|
6255
|
+
/>
|
|
6256
|
+
</div>
|
|
6257
|
+
|
|
6258
|
+
<div
|
|
6259
|
+
style={{
|
|
6260
|
+
position: 'absolute',
|
|
6261
|
+
left: '50%',
|
|
6262
|
+
bottom: 32,
|
|
6263
|
+
transform: 'translateX(-50%)',
|
|
6264
|
+
width: 'min(420px, 90%)',
|
|
6265
|
+
}}
|
|
6266
|
+
>
|
|
6267
|
+
<AtomixGlass {...PREMIUM_GLASS.pill}>
|
|
6268
|
+
<div
|
|
6269
|
+
style={{
|
|
6270
|
+
display: 'flex',
|
|
6271
|
+
alignItems: 'center',
|
|
6272
|
+
justifyContent: 'center',
|
|
6273
|
+
gap: 20,
|
|
6274
|
+
padding: '14px 28px',
|
|
6275
|
+
color: 'rgba(255,255,255,0.65)',
|
|
6276
|
+
}}
|
|
6277
|
+
>
|
|
6278
|
+
<Icon name="Shuffle" />
|
|
6279
|
+
<Icon name="SkipBack" />
|
|
6280
|
+
<Icon name="Play" />
|
|
6281
|
+
<Icon name="SkipForward" />
|
|
6282
|
+
<Icon name="Repeat" />
|
|
6283
|
+
</div>
|
|
6284
|
+
</AtomixGlass>
|
|
6285
|
+
</div>
|
|
6286
|
+
</main>
|
|
6287
|
+
</div>
|
|
6288
|
+
),
|
|
6289
|
+
parameters: {
|
|
6290
|
+
docs: {
|
|
6291
|
+
description: {
|
|
6292
|
+
story:
|
|
6293
|
+
'Apple Music–inspired dark UI with a glass sidebar and floating playback pill. Uses default AtomixGlass tuning (deep blur, low displacement, subtle tint).',
|
|
6294
|
+
},
|
|
6295
|
+
},
|
|
6296
|
+
},
|
|
6297
|
+
};
|
|
6298
|
+
|
|
6151
6299
|
/**
|
|
6152
6300
|
* Apple-inspired UI example showcasing the liquid glass effect
|
|
6153
6301
|
*
|
|
@@ -6271,15 +6419,7 @@ export const AppleInspiredUI: Story = {
|
|
|
6271
6419
|
}}
|
|
6272
6420
|
>
|
|
6273
6421
|
{/* Top menu bar - macOS style */}
|
|
6274
|
-
<AtomixGlass
|
|
6275
|
-
displacementScale={70}
|
|
6276
|
-
blurAmount={0}
|
|
6277
|
-
saturation={150}
|
|
6278
|
-
borderRadius={8}
|
|
6279
|
-
mode="shader"
|
|
6280
|
-
shaderVariant="premiumGlass"
|
|
6281
|
-
elasticity={0}
|
|
6282
|
-
>
|
|
6422
|
+
<AtomixGlass borderRadius={8} elasticity={0}>
|
|
6283
6423
|
<div
|
|
6284
6424
|
style={{
|
|
6285
6425
|
padding: '10px 16px',
|
|
@@ -6392,8 +6532,8 @@ export const AppleInspiredUI: Story = {
|
|
|
6392
6532
|
|
|
6393
6533
|
{/* Center widget - iOS style */}
|
|
6394
6534
|
<AtomixGlass
|
|
6395
|
-
displacementScale={
|
|
6396
|
-
blurAmount={
|
|
6535
|
+
displacementScale={28}
|
|
6536
|
+
blurAmount={22}
|
|
6397
6537
|
shaderVariant="premiumGlass"
|
|
6398
6538
|
borderRadius={24}
|
|
6399
6539
|
mode="shader"
|
|
@@ -6477,9 +6617,9 @@ export const AppleInspiredUI: Story = {
|
|
|
6477
6617
|
</div>
|
|
6478
6618
|
|
|
6479
6619
|
<AtomixGlass
|
|
6480
|
-
displacementScale={
|
|
6481
|
-
blurAmount={
|
|
6482
|
-
saturation={
|
|
6620
|
+
displacementScale={16}
|
|
6621
|
+
blurAmount={28}
|
|
6622
|
+
saturation={180}
|
|
6483
6623
|
aberrationIntensity={1}
|
|
6484
6624
|
borderRadius={16}
|
|
6485
6625
|
elasticity={0}
|
|
@@ -6586,9 +6726,9 @@ export const AppleInspiredUI: Story = {
|
|
|
6586
6726
|
|
|
6587
6727
|
{/* Bottom dock - macOS style */}
|
|
6588
6728
|
<AtomixGlass
|
|
6589
|
-
displacementScale={
|
|
6590
|
-
blurAmount={
|
|
6591
|
-
saturation={
|
|
6729
|
+
displacementScale={18}
|
|
6730
|
+
blurAmount={22}
|
|
6731
|
+
saturation={180}
|
|
6592
6732
|
aberrationIntensity={1.2}
|
|
6593
6733
|
borderRadius={24}
|
|
6594
6734
|
mode="polar"
|