@shohojdhara/atomix 0.6.3 → 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.
Files changed (77) hide show
  1. package/dist/atomix.css +119 -40
  2. package/dist/atomix.css.map +1 -1
  3. package/dist/atomix.min.css +1 -1
  4. package/dist/atomix.min.css.map +1 -1
  5. package/dist/atomix.umd.js +1 -1
  6. package/dist/atomix.umd.js.map +1 -1
  7. package/dist/atomix.umd.min.js +1 -1
  8. package/dist/charts.d.ts +30 -1
  9. package/dist/charts.js +566 -597
  10. package/dist/charts.js.map +1 -1
  11. package/dist/core.d.ts +30 -1
  12. package/dist/core.js +600 -624
  13. package/dist/core.js.map +1 -1
  14. package/dist/forms.d.ts +30 -1
  15. package/dist/forms.js +1122 -1163
  16. package/dist/forms.js.map +1 -1
  17. package/dist/heavy.d.ts +31 -89
  18. package/dist/heavy.js +1015 -1045
  19. package/dist/heavy.js.map +1 -1
  20. package/dist/index.d.ts +378 -104
  21. package/dist/index.esm.js +10959 -10837
  22. package/dist/index.esm.js.map +1 -1
  23. package/dist/index.js +10935 -10812
  24. package/dist/index.js.map +1 -1
  25. package/dist/index.min.js +1 -1
  26. package/dist/index.min.js.map +1 -1
  27. package/package.json +1 -1
  28. package/src/components/Accordion/Accordion.tsx +2 -5
  29. package/src/components/AtomixGlass/AtomixGlass.test.tsx +14 -16
  30. package/src/components/AtomixGlass/AtomixGlass.tsx +137 -355
  31. package/src/components/AtomixGlass/AtomixGlassContainer.tsx +32 -249
  32. package/src/components/AtomixGlass/GlassFilter.tsx +62 -68
  33. package/src/components/AtomixGlass/README.md +2 -1
  34. package/src/components/AtomixGlass/__snapshots__/AtomixGlass.test.tsx.snap +19 -18
  35. package/src/components/AtomixGlass/glass-border-styles.test.ts +58 -0
  36. package/src/components/AtomixGlass/glass-border-styles.ts +136 -0
  37. package/src/components/AtomixGlass/glass-utils.ts +411 -6
  38. package/src/components/AtomixGlass/stories/AnimationFeatures.stories.tsx +158 -537
  39. package/src/components/AtomixGlass/stories/Border.stories.tsx +149 -0
  40. package/src/components/AtomixGlass/stories/Examples.stories.tsx +229 -89
  41. package/src/components/AtomixGlass/stories/Playground.stories.tsx +29 -340
  42. package/src/components/AtomixGlass/stories/argTypes.ts +30 -13
  43. package/src/components/AtomixGlass/stories/premium-presets.ts +206 -0
  44. package/src/components/AtomixGlass/stories/shared-components.tsx +52 -8
  45. package/src/components/Badge/Badge.tsx +4 -4
  46. package/src/components/Button/Button.tsx +2 -6
  47. package/src/components/Callout/Callout.test.tsx +4 -3
  48. package/src/components/Callout/Callout.tsx +2 -5
  49. package/src/components/Dropdown/Dropdown.tsx +3 -7
  50. package/src/components/Form/Checkbox.tsx +2 -8
  51. package/src/components/Form/Input.tsx +2 -9
  52. package/src/components/Form/Radio.tsx +2 -9
  53. package/src/components/Form/Select.tsx +2 -7
  54. package/src/components/Form/Textarea.tsx +2 -9
  55. package/src/components/Messages/Messages.tsx +2 -8
  56. package/src/components/Modal/Modal.tsx +4 -5
  57. package/src/components/Navigation/Nav/Nav.tsx +2 -6
  58. package/src/components/Navigation/Navbar/Navbar.tsx +2 -9
  59. package/src/components/Navigation/SideMenu/SideMenu.tsx +2 -6
  60. package/src/components/Pagination/Pagination.tsx +2 -10
  61. package/src/components/Popover/Popover.tsx +2 -9
  62. package/src/components/Progress/Progress.tsx +2 -7
  63. package/src/components/Rating/Rating.tsx +2 -10
  64. package/src/components/Spinner/Spinner.tsx +2 -7
  65. package/src/components/Steps/Steps.tsx +2 -10
  66. package/src/components/Tabs/Tabs.tsx +2 -9
  67. package/src/components/Toggle/Toggle.tsx +2 -10
  68. package/src/components/Tooltip/Tooltip.tsx +2 -5
  69. package/src/lib/composables/useAtomixGlass.ts +41 -10
  70. package/src/lib/composables/useAtomixGlassStyles.ts +59 -75
  71. package/src/lib/composables/usePerformanceMonitor.ts +5 -0
  72. package/src/lib/constants/components.ts +358 -46
  73. package/src/lib/types/components.ts +33 -1
  74. package/src/styles/01-settings/_settings.atomix-glass.scss +69 -31
  75. package/src/styles/02-tools/_tools.glass.scss +45 -3
  76. package/src/styles/06-components/_components.atomix-glass.scss +114 -77
  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
- 'Real-world examples showing how to use AtomixGlass in different design contexts and applications.',
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={40}
238
- blurAmount={0.06}
239
- saturation={120}
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={80}
415
- blurAmount={2.5}
416
- saturation={160}
417
- aberrationIntensity={3}
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={50} blurAmount={1.5} mode="standard" elasticity={0}>
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={100}
780
- blurAmount={2}
781
- saturation={150}
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={50}
928
- blurAmount={1}
929
- saturation={130}
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={55}
1221
- blurAmount={3}
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={0} borderRadius={20} mode="standard">
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={100}
1513
- blurAmount={3}
1514
- saturation={170}
1515
- aberrationIntensity={3}
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={1} saturation={120} borderRadius={50} mode="standard">
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={1}
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={100}
2204
- blurAmount={1}
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={45}
2560
- blurAmount={5}
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={0.8}
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={45} blurAmount={1} borderRadius={24} mode="standard">
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={45} blurAmount={4} borderRadius={24} mode="standard">
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={200}
3656
- blurAmount={5}
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={60}
4018
- blurAmount={1.1}
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={30}
4297
- blurAmount={2}
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={120}
4540
- blurAmount={2}
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={0}
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={100}
4925
- blurAmount={3}
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={60}
5549
- blurAmount={0}
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={60}
5612
- blurAmount={0}
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={220}
5691
- blurAmount={0}
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={60}
5737
- blurAmount={0}
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={60}
5784
- blurAmount={0}
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={120}
5903
- blurAmount={0}
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={60}
5973
- blurAmount={1}
5974
- saturation={130}
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={1}
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={25}
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={50}
6396
- blurAmount={2}
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={12}
6481
- blurAmount={5}
6482
- saturation={130}
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={15}
6590
- blurAmount={2}
6591
- saturation={140}
6729
+ displacementScale={18}
6730
+ blurAmount={22}
6731
+ saturation={180}
6592
6732
  aberrationIntensity={1.2}
6593
6733
  borderRadius={24}
6594
6734
  mode="polar"