@vanduo-oss/framework 1.3.3 → 1.3.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/vanduo.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! Vanduo v1.3.3 | Built: 2026-04-10T21:45:12.664Z | git:281f4f6 | development */
1
+ /*! Vanduo v1.3.5 | Built: 2026-04-15T18:39:53.955Z | git:3ca4f62 | development */
2
2
  *, :before, :after {
3
3
  box-sizing: border-box;
4
4
  }
@@ -1522,6 +1522,28 @@ pre code {
1522
1522
  --vd-shadow-md: 0 4px 6px #0000001a;
1523
1523
  --vd-shadow-lg: 0 10px 15px #0000001a;
1524
1524
  --vd-shadow-xl: 0 20px 25px #00000026;
1525
+ --glass-blur: 12px;
1526
+ --glass-saturate: 1.8;
1527
+ --glass-bg-opacity: .65;
1528
+ --glass-bg-light: rgba(255, 255, 255, var(--glass-bg-opacity));
1529
+ --glass-bg-dark: rgba(30, 30, 30, var(--glass-bg-opacity));
1530
+ --glass-border-alpha: .18;
1531
+ --glass-border-light: rgba(255, 255, 255, var(--glass-border-alpha));
1532
+ --glass-border-dark: #ffffff14;
1533
+ --glass-highlight-alpha: .25;
1534
+ --glass-shadow: 0 8px 32px #0000001f;
1535
+ --glass-noise-opacity: .03;
1536
+ --vd-glass-blur: var(--glass-blur);
1537
+ --vd-glass-saturate: var(--glass-saturate);
1538
+ --vd-glass-bg-opacity: var(--glass-bg-opacity);
1539
+ --vd-glass-bg-light: var(--glass-bg-light);
1540
+ --vd-glass-bg-dark: var(--glass-bg-dark);
1541
+ --vd-glass-border-alpha: var(--glass-border-alpha);
1542
+ --vd-glass-border-light: var(--glass-border-light);
1543
+ --vd-glass-border-dark: var(--glass-border-dark);
1544
+ --vd-glass-highlight-alpha: var(--glass-highlight-alpha);
1545
+ --vd-glass-shadow: var(--glass-shadow);
1546
+ --vd-glass-noise-opacity: var(--glass-noise-opacity);
1525
1547
  --vd-transition-fast: .15s ease;
1526
1548
  --vd-transition-normal: .25s ease;
1527
1549
  --vd-transition-slow: .35s ease;
@@ -1547,6 +1569,10 @@ pre code {
1547
1569
  --vd-shadow-sm: 0 1px 2px #0000004d;
1548
1570
  --vd-shadow-md: 0 4px 6px #0006;
1549
1571
  --vd-shadow-lg: 0 10px 15px #0006;
1572
+ --glass-bg-light: var(--glass-bg-dark);
1573
+ --glass-border-light: var(--glass-border-dark);
1574
+ --glass-shadow: 0 12px 36px #00000073;
1575
+ --glass-highlight-alpha: .16;
1550
1576
  }
1551
1577
 
1552
1578
  @media (prefers-color-scheme: dark) {
@@ -1562,6 +1588,10 @@ pre code {
1562
1588
  --vd-shadow-sm: 0 1px 2px #0000004d;
1563
1589
  --vd-shadow-md: 0 4px 6px #0006;
1564
1590
  --vd-shadow-lg: 0 10px 15px #0006;
1591
+ --glass-bg-light: var(--glass-bg-dark);
1592
+ --glass-border-light: var(--glass-border-dark);
1593
+ --glass-shadow: 0 12px 36px #00000073;
1594
+ --glass-highlight-alpha: .16;
1565
1595
  }
1566
1596
  }
1567
1597
 
@@ -1587,6 +1617,17 @@ pre code {
1587
1617
  --vd-shadow-sm: var(--shadow-sm);
1588
1618
  --vd-shadow-md: var(--shadow-md);
1589
1619
  --vd-shadow-lg: var(--shadow-lg);
1620
+ --vd-glass-blur: var(--glass-blur, 12px);
1621
+ --vd-glass-saturate: var(--glass-saturate, 1.8);
1622
+ --vd-glass-bg-opacity: var(--glass-bg-opacity, .65);
1623
+ --vd-glass-bg-light: var(--glass-bg-light, rgba(255, 255, 255, var(--vd-glass-bg-opacity)));
1624
+ --vd-glass-bg-dark: var(--glass-bg-dark, rgba(30, 30, 30, var(--vd-glass-bg-opacity)));
1625
+ --vd-glass-border-alpha: var(--glass-border-alpha, .18);
1626
+ --vd-glass-border-light: var(--glass-border-light, rgba(255, 255, 255, var(--vd-glass-border-alpha)));
1627
+ --vd-glass-border-dark: var(--glass-border-dark, #ffffff14);
1628
+ --vd-glass-highlight-alpha: var(--glass-highlight-alpha, .25);
1629
+ --vd-glass-shadow: var(--glass-shadow, 0 8px 32px #0000001f);
1630
+ --vd-glass-noise-opacity: var(--glass-noise-opacity, .03);
1590
1631
  --vd-font-family-base: var(--font-family-sans);
1591
1632
  --vd-font-family-mono: var(--font-family-mono);
1592
1633
  --vd-font-size-xs: var(--font-size-xs);
@@ -53162,6 +53203,13 @@ select[multiple].vd-input option, select[multiple] option, .select-input[multipl
53162
53203
  position: relative;
53163
53204
  }
53164
53205
 
53206
+ .vd-card-glass {
53207
+ background: var(--vd-glass-bg-light);
53208
+ border-color: var(--vd-glass-border-light);
53209
+ box-shadow: var(--vd-glass-shadow);
53210
+ -webkit-backdrop-filter: blur(var(--vd-glass-blur)) saturate(var(--vd-glass-saturate));
53211
+ }
53212
+
53165
53213
  .vd-card-elevated, .vd-card {
53166
53214
  box-shadow: var(--card-shadow-elevated);
53167
53215
  }
@@ -53423,6 +53471,24 @@ a.vd-card:active {
53423
53471
  position: relative;
53424
53472
  }
53425
53473
 
53474
+ .vd-navbar-glass {
53475
+ background: var(--vd-glass-bg-light);
53476
+ border-bottom: 1px solid var(--vd-glass-border-light);
53477
+ box-shadow: var(--vd-glass-shadow);
53478
+ -webkit-backdrop-filter: blur(var(--vd-glass-blur)) saturate(var(--vd-glass-saturate));
53479
+ transition: background var(--vd-transition-normal, .25s ease),
53480
+ border-color var(--vd-transition-normal, .25s ease),
53481
+ box-shadow var(--vd-transition-normal, .25s ease),
53482
+ backdrop-filter var(--vd-transition-normal, .25s ease);
53483
+ }
53484
+
53485
+ .vd-navbar-glass:not(.vd-navbar-scrolled) {
53486
+ box-shadow: none;
53487
+ -webkit-backdrop-filter: none;
53488
+ background: none;
53489
+ border-bottom-color: #0000;
53490
+ }
53491
+
53426
53492
  .vd-navbar-container {
53427
53493
  width: 100%;
53428
53494
  max-width: var(--container-max-width);
@@ -53791,6 +53857,12 @@ a.vd-card:active {
53791
53857
  box-shadow: -2px 0 8px #0000001a;
53792
53858
  }
53793
53859
 
53860
+ .vd-navbar-glass .vd-navbar-menu {
53861
+ background: var(--vd-glass-bg-light);
53862
+ border-left: 1px solid var(--vd-glass-border-light);
53863
+ -webkit-backdrop-filter: blur(var(--vd-glass-blur)) saturate(var(--vd-glass-saturate));
53864
+ }
53865
+
53794
53866
  .vd-navbar-menu.is-open {
53795
53867
  right: 0;
53796
53868
  }
@@ -54313,11 +54385,11 @@ a.vd-card:active {
54313
54385
  }
54314
54386
 
54315
54387
  :root {
54316
- --tooltip-bg: var(--color-gray-900);
54317
- --tooltip-bg-light: var(--color-white);
54388
+ --tooltip-bg: var(--color-white);
54389
+ --tooltip-bg-light: var(--color-gray-100);
54318
54390
  --tooltip-bg-dark: var(--color-gray-900);
54319
- --tooltip-text-color: var(--color-white);
54320
- --tooltip-text-color-light: var(--color-gray-900);
54391
+ --tooltip-text-color: var(--color-gray-900);
54392
+ --tooltip-text-color-light: var(--color-gray-800);
54321
54393
  --tooltip-text-color-dark: var(--color-white);
54322
54394
  --tooltip-padding-y: .5rem;
54323
54395
  --tooltip-padding-x: .8125rem;
@@ -54336,16 +54408,16 @@ a.vd-card:active {
54336
54408
  }
54337
54409
 
54338
54410
  [data-theme="dark"] {
54339
- --tooltip-bg: var(--color-gray-100);
54340
- --tooltip-text-color: var(--color-gray-900);
54411
+ --tooltip-bg: var(--color-gray-900);
54412
+ --tooltip-text-color: var(--color-white);
54341
54413
  --tooltip-bg-light: var(--color-gray-800);
54342
54414
  --tooltip-text-color-light: var(--color-gray-100);
54343
54415
  }
54344
54416
 
54345
54417
  @media (prefers-color-scheme: dark) {
54346
54418
  :root:not([data-theme]) {
54347
- --tooltip-bg: var(--color-gray-100);
54348
- --tooltip-text-color: var(--color-gray-900);
54419
+ --tooltip-bg: var(--color-gray-900);
54420
+ --tooltip-text-color: var(--color-white);
54349
54421
  --tooltip-bg-light: var(--color-gray-800);
54350
54422
  --tooltip-text-color-light: var(--color-gray-100);
54351
54423
  }
@@ -54374,6 +54446,14 @@ a.vd-card:active {
54374
54446
  position: absolute;
54375
54447
  }
54376
54448
 
54449
+ .vd-tooltip-glass {
54450
+ background: var(--vd-glass-bg-light);
54451
+ border: 1px solid var(--vd-glass-border-light);
54452
+ box-shadow: var(--vd-glass-shadow);
54453
+ color: var(--text-primary);
54454
+ -webkit-backdrop-filter: blur(var(--vd-glass-blur)) saturate(var(--vd-glass-saturate));
54455
+ }
54456
+
54377
54457
  .vd-tooltip.is-visible {
54378
54458
  opacity: 1;
54379
54459
  }
@@ -54434,6 +54514,22 @@ a.vd-card:active {
54434
54514
  transform: translateY(-50%);
54435
54515
  }
54436
54516
 
54517
+ .vd-tooltip-glass.vd-tooltip-top:before, .vd-tooltip-glass[data-placement="top"]:before {
54518
+ border-color: var(--vd-glass-bg-light) transparent transparent;
54519
+ }
54520
+
54521
+ .vd-tooltip-glass.vd-tooltip-bottom:before, .vd-tooltip-glass[data-placement="bottom"]:before {
54522
+ border-color: transparent transparent var(--vd-glass-bg-light);
54523
+ }
54524
+
54525
+ .vd-tooltip-glass.vd-tooltip-left:before, .vd-tooltip-glass[data-placement="left"]:before {
54526
+ border-color: transparent transparent transparent var(--vd-glass-bg-light);
54527
+ }
54528
+
54529
+ .vd-tooltip-glass.vd-tooltip-right:before, .vd-tooltip-glass[data-placement="right"]:before {
54530
+ border-color: transparent var(--vd-glass-bg-light) transparent transparent;
54531
+ }
54532
+
54437
54533
  .vd-tooltip-light {
54438
54534
  background-color: var(--tooltip-bg-light);
54439
54535
  color: var(--tooltip-text-color-light);
@@ -54826,6 +54922,13 @@ a.vd-card:active {
54826
54922
  transform: translateY(-10px);
54827
54923
  }
54828
54924
 
54925
+ .vd-dropdown-glass .vd-dropdown-menu {
54926
+ background: var(--vd-glass-bg-light);
54927
+ border-color: var(--vd-glass-border-light);
54928
+ box-shadow: var(--vd-glass-shadow);
54929
+ -webkit-backdrop-filter: blur(var(--vd-glass-blur)) saturate(var(--vd-glass-saturate));
54930
+ }
54931
+
54829
54932
  .vd-dropdown-menu.is-open {
54830
54933
  opacity: 1;
54831
54934
  display: block;
@@ -55014,6 +55117,10 @@ a.vd-card:active {
55014
55117
  left: 0;
55015
55118
  }
55016
55119
 
55120
+ .vd-modal-backdrop.vd-modal-glass-backdrop {
55121
+ -webkit-backdrop-filter: blur(calc(var(--vd-glass-blur) * .5));
55122
+ }
55123
+
55017
55124
  .vd-modal-backdrop.is-visible {
55018
55125
  opacity: 1;
55019
55126
  pointer-events: all;
@@ -55069,6 +55176,13 @@ a.vd-card:active {
55069
55176
  position: relative;
55070
55177
  }
55071
55178
 
55179
+ .vd-modal-glass .vd-modal-content {
55180
+ background: var(--vd-glass-bg-light);
55181
+ border-color: var(--vd-glass-border-light);
55182
+ box-shadow: var(--vd-glass-shadow);
55183
+ -webkit-backdrop-filter: blur(var(--vd-glass-blur)) saturate(var(--vd-glass-saturate));
55184
+ }
55185
+
55072
55186
  .vd-modal-header {
55073
55187
  padding: var(--modal-header-padding);
55074
55188
  border-bottom: 1px solid var(--modal-border-color);
@@ -57693,6 +57807,13 @@ a.vd-avatar:focus-visible, button.vd-avatar:focus-visible {
57693
57807
  transform: translateX(100%);
57694
57808
  }
57695
57809
 
57810
+ .vd-toast-glass {
57811
+ background: var(--vd-glass-bg-light);
57812
+ border-color: var(--vd-glass-border-light);
57813
+ box-shadow: var(--vd-glass-shadow);
57814
+ -webkit-backdrop-filter: blur(var(--vd-glass-blur)) saturate(var(--vd-glass-saturate));
57815
+ }
57816
+
57696
57817
  .vd-toast.is-visible {
57697
57818
  opacity: 1;
57698
57819
  transform: translateX(0);
@@ -61695,6 +61816,364 @@ input.vd-doc-search-input {
61695
61816
  }
61696
61817
  }
61697
61818
 
61819
+ :root {
61820
+ --vd-glass-float-shadow: 0 14px 42px #0003;
61821
+ --vd-glass-float-translate-y: -2px;
61822
+ }
61823
+
61824
+ .vd-glass, .vd-glass-md {
61825
+ background: var(--vd-glass-bg-light);
61826
+ border: 1px solid var(--vd-glass-border-light);
61827
+ box-shadow: var(--vd-glass-shadow);
61828
+ -webkit-backdrop-filter: blur(var(--vd-glass-blur)) saturate(var(--vd-glass-saturate));
61829
+ isolation: isolate;
61830
+ position: relative;
61831
+ overflow: hidden;
61832
+ }
61833
+
61834
+ .vd-glass:before, .vd-glass-md:before {
61835
+ content: "";
61836
+ background: linear-gradient(to bottom,
61837
+ rgba(255, 255, 255, var(--vd-glass-highlight-alpha)) 0%,
61838
+ #fff0 45%);
61839
+ pointer-events: none;
61840
+ z-index: 1;
61841
+ position: absolute;
61842
+ inset: 0;
61843
+ }
61844
+
61845
+ .vd-glass:after, .vd-glass-md:after {
61846
+ content: "";
61847
+ opacity: var(--vd-glass-noise-opacity);
61848
+ pointer-events: none;
61849
+ z-index: 2;
61850
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.15' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url('effects/%23n')' opacity='0.25'/%3E%3C/svg%3E");
61851
+ position: absolute;
61852
+ inset: 0;
61853
+ }
61854
+
61855
+ .vd-glass > *, .vd-glass-md > * {
61856
+ z-index: 3;
61857
+ position: relative;
61858
+ }
61859
+
61860
+ .vd-glass-sm {
61861
+ --vd-glass-blur: 6px;
61862
+ --vd-glass-saturate: 1.4;
61863
+ --vd-glass-bg-opacity: .55;
61864
+ }
61865
+
61866
+ .vd-glass-lg {
61867
+ --vd-glass-blur: 20px;
61868
+ --vd-glass-saturate: 2;
61869
+ --vd-glass-bg-opacity: .72;
61870
+ }
61871
+
61872
+ .vd-glass-xl {
61873
+ --vd-glass-blur: 28px;
61874
+ --vd-glass-saturate: 2.2;
61875
+ --vd-glass-bg-opacity: .78;
61876
+ }
61877
+
61878
+ .vd-glass-tinted {
61879
+ background: linear-gradient(135deg,
61880
+ var(--vd-glass-tint, var(--vd-color-primary-alpha-10)) 0%,
61881
+ transparent 70%),
61882
+ var(--vd-glass-bg-light);
61883
+ }
61884
+
61885
+ .vd-glass-floating {
61886
+ transition: transform var(--vd-transition-normal), box-shadow var(--vd-transition-normal);
61887
+ }
61888
+
61889
+ .vd-glass-floating:hover, .vd-glass-floating:focus-within {
61890
+ transform: translateY(var(--vd-glass-float-translate-y));
61891
+ box-shadow: var(--vd-glass-float-shadow);
61892
+ }
61893
+
61894
+ .vd-glass-contrast {
61895
+ --vd-glass-bg-opacity: .82;
61896
+ --vd-glass-border-alpha: .26;
61897
+ }
61898
+
61899
+ [data-glass-scroll] {
61900
+ transition: background var(--vd-transition-normal, .25s ease),
61901
+ border-color var(--vd-transition-normal, .25s ease),
61902
+ box-shadow var(--vd-transition-normal, .25s ease),
61903
+ backdrop-filter var(--vd-transition-normal, .25s ease);
61904
+ }
61905
+
61906
+ [data-glass-scroll]:not(.is-glass-active) {
61907
+ box-shadow: none !important;
61908
+ -webkit-backdrop-filter: none !important;
61909
+ background: none !important;
61910
+ border-color: #0000 !important;
61911
+ }
61912
+
61913
+ [data-glass-scroll]:not(.is-glass-active):before, [data-glass-scroll]:not(.is-glass-active):after {
61914
+ opacity: 0;
61915
+ }
61916
+
61917
+ @supports not (backdrop-filter: blur(1px)) {
61918
+ .vd-glass, .vd-glass-md {
61919
+ background: var(--vd-bg-primary);
61920
+ }
61921
+ }
61922
+
61923
+ @media (prefers-reduced-transparency: reduce) {
61924
+ .vd-glass, .vd-glass-sm, .vd-glass-md, .vd-glass-lg, .vd-glass-xl {
61925
+ -webkit-backdrop-filter: none;
61926
+ background: var(--vd-bg-primary);
61927
+ border-color: var(--vd-border-color);
61928
+ }
61929
+
61930
+ .vd-glass:before, .vd-glass:after, .vd-glass-md:before, .vd-glass-md:after {
61931
+ display: none;
61932
+ }
61933
+ }
61934
+
61935
+ @media (prefers-reduced-motion: reduce) {
61936
+ .vd-glass-floating {
61937
+ transition: none;
61938
+ }
61939
+
61940
+ .vd-glass-floating:hover, .vd-glass-floating:focus-within {
61941
+ transform: none;
61942
+ }
61943
+ }
61944
+
61945
+ :root {
61946
+ --morph-duration: .75s;
61947
+ --morph-easing: cubic-bezier(.2, .8, .35, 1);
61948
+ --morph-blur-peak: 11px;
61949
+ --morph-wave-color: var(--color-primary, #3b82f6);
61950
+ }
61951
+
61952
+ .vd-morph, [data-vd-morph] {
61953
+ cursor: pointer;
61954
+ -webkit-tap-highlight-color: transparent;
61955
+ position: relative;
61956
+ overflow: hidden;
61957
+ }
61958
+
61959
+ .vd-morph-wave {
61960
+ background: radial-gradient(circle at 32% 28%,
61961
+ #ffffff8c 0%,
61962
+ #ffffff2e 18%,
61963
+ transparent 38%),
61964
+ radial-gradient(circle at 68% 70%,
61965
+ #ffffff4d 0%,
61966
+ transparent 30%),
61967
+ radial-gradient(circle at 50% 50%,
61968
+ color-mix(in srgb, var(--morph-wave-color) 96%, #a8d8ff) 0%,
61969
+ color-mix(in srgb, var(--morph-wave-color) 82%, #7ec8ff) 35%,
61970
+ color-mix(in srgb, var(--morph-wave-color) 70%, #5ba4f5) 65%,
61971
+ color-mix(in srgb, var(--morph-wave-color) 90%, #4478f0) 100%);
61972
+ pointer-events: none;
61973
+ opacity: 0;
61974
+ will-change: width, height, opacity, filter;
61975
+ border-radius: 50%;
61976
+ position: absolute;
61977
+ transform: translate(-50%, -50%);
61978
+ }
61979
+
61980
+ .vd-morph.is-morphing .vd-morph-wave {
61981
+ animation: vd-morph-expand var(--morph-duration) var(--morph-easing) forwards;
61982
+ }
61983
+
61984
+ .vd-morph.is-morphing .vd-morph-wave:after {
61985
+ content: "";
61986
+ background: radial-gradient(circle at 50% 50%,
61987
+ color-mix(in srgb, var(--morph-wave-color) 70%, #b0e0ff) 0%,
61988
+ color-mix(in srgb, var(--morph-wave-color) 50%, #88c0ff) 45%,
61989
+ transparent 80%);
61990
+ opacity: 0;
61991
+ width: 0;
61992
+ height: 0;
61993
+ animation: vd-morph-expand2 var(--morph-duration) var(--morph-easing) 80ms forwards;
61994
+ border-radius: 50%;
61995
+ position: absolute;
61996
+ top: 50%;
61997
+ left: 50%;
61998
+ transform: translate(-50%, -50%);
61999
+ }
62000
+
62001
+ @keyframes vd-morph-expand {
62002
+ 0% {
62003
+ opacity: 0;
62004
+ filter: blur() saturate(2);
62005
+ width: 0;
62006
+ height: 0;
62007
+ }
62008
+
62009
+ 6% {
62010
+ opacity: 1;
62011
+ filter: blur(1px) saturate(2.2);
62012
+ }
62013
+
62014
+ 35% {
62015
+ opacity: .92;
62016
+ filter: blur(6px) saturate(1.7);
62017
+ }
62018
+
62019
+ 68% {
62020
+ opacity: .6;
62021
+ width: 360%;
62022
+ height: 360%;
62023
+ filter: blur(var(--morph-blur-peak)) saturate(1.3);
62024
+ }
62025
+
62026
+ 100% {
62027
+ opacity: 0;
62028
+ filter: blur(7px) saturate();
62029
+ width: 360%;
62030
+ height: 360%;
62031
+ }
62032
+ }
62033
+
62034
+ @keyframes vd-morph-expand2 {
62035
+ 0% {
62036
+ opacity: 0;
62037
+ filter: blur();
62038
+ width: 0;
62039
+ height: 0;
62040
+ }
62041
+
62042
+ 10% {
62043
+ opacity: .7;
62044
+ filter: blur(3px);
62045
+ }
62046
+
62047
+ 60% {
62048
+ opacity: .38;
62049
+ filter: blur(14px);
62050
+ width: 280%;
62051
+ height: 280%;
62052
+ }
62053
+
62054
+ 100% {
62055
+ opacity: 0;
62056
+ filter: blur(10px);
62057
+ width: 280%;
62058
+ height: 280%;
62059
+ }
62060
+ }
62061
+
62062
+ .vd-morph-shine {
62063
+ pointer-events: none;
62064
+ opacity: 0;
62065
+ will-change: left, opacity;
62066
+ background: linear-gradient(105deg, #0000 0%, #ffffff1a 35%, #ffffff85 50%, #ffffff1a 65%, #0000 100%);
62067
+ width: 80%;
62068
+ height: 100%;
62069
+ position: absolute;
62070
+ top: 0;
62071
+ left: -110%;
62072
+ transform: skewX(-12deg);
62073
+ }
62074
+
62075
+ .vd-morph.is-morphing .vd-morph-shine {
62076
+ animation: .72s cubic-bezier(.3, .65, .5, 1) 40ms forwards vd-morph-shine;
62077
+ }
62078
+
62079
+ @keyframes vd-morph-shine {
62080
+ 0% {
62081
+ opacity: 0;
62082
+ left: -110%;
62083
+ }
62084
+
62085
+ 15% {
62086
+ opacity: .9;
62087
+ }
62088
+
62089
+ 72% {
62090
+ opacity: .4;
62091
+ }
62092
+
62093
+ 100% {
62094
+ opacity: 0;
62095
+ left: 130%;
62096
+ }
62097
+ }
62098
+
62099
+ .vd-morph.morph-done {
62100
+ animation: .32s cubic-bezier(.34, 1.56, .64, 1) vd-morph-bounce;
62101
+ }
62102
+
62103
+ @keyframes vd-morph-bounce {
62104
+ 0% {
62105
+ transform: scale(.97);
62106
+ }
62107
+
62108
+ 60% {
62109
+ transform: scale(1.025);
62110
+ }
62111
+
62112
+ 100% {
62113
+ transform: scale(1);
62114
+ }
62115
+ }
62116
+
62117
+ .vd-morph-content {
62118
+ pointer-events: none;
62119
+ will-change: opacity, transform, filter;
62120
+ justify-content: center;
62121
+ align-items: center;
62122
+ gap: .45rem;
62123
+ display: flex;
62124
+ position: absolute;
62125
+ inset: 0;
62126
+ }
62127
+
62128
+ .vd-morph-current {
62129
+ opacity: 1;
62130
+ filter: blur();
62131
+ z-index: 2;
62132
+ transition: opacity .28s cubic-bezier(.4, 0, .6, 1), transform .28s cubic-bezier(.4, 0, .6, 1), filter .28s;
62133
+ transform: scale(1) translateY(0);
62134
+ }
62135
+
62136
+ .vd-morph-next {
62137
+ opacity: 0;
62138
+ filter: blur(3px);
62139
+ z-index: 1;
62140
+ transition: opacity .3s cubic-bezier(0, 0, .2, 1), transform .3s cubic-bezier(0, 0, .2, 1), filter .3s;
62141
+ transform: scale(.86) translateY(4px);
62142
+ }
62143
+
62144
+ .vd-morph.is-morphing .vd-morph-current {
62145
+ opacity: 0;
62146
+ filter: blur(4px);
62147
+ transition-duration: .2s;
62148
+ transition-delay: 0s;
62149
+ transform: scale(.82) translateY(-4px);
62150
+ }
62151
+
62152
+ .vd-morph.is-morphing .vd-morph-next {
62153
+ opacity: 1;
62154
+ filter: blur();
62155
+ transition-duration: .3s;
62156
+ transition-delay: .25s;
62157
+ transform: scale(1) translateY(0);
62158
+ }
62159
+
62160
+ .vd-morph-sm {
62161
+ --morph-duration: .5s;
62162
+ --morph-blur-peak: 7px;
62163
+ }
62164
+
62165
+ .vd-morph-lg {
62166
+ --morph-duration: 1s;
62167
+ --morph-blur-peak: 16px;
62168
+ }
62169
+
62170
+ @media (prefers-reduced-motion: reduce) {
62171
+ .vd-morph, .vd-morph-content, .vd-morph-wave, .vd-morph-shine {
62172
+ transition: none !important;
62173
+ animation: none !important;
62174
+ }
62175
+ }
62176
+
61698
62177
  :root {
61699
62178
  --draggable-bg: var(--color-white);
61700
62179
  --draggable-border-color: var(--border-color);
@@ -62475,12 +62954,25 @@ input.vd-doc-search-input {
62475
62954
  display: inline-flex;
62476
62955
  }
62477
62956
 
62957
+ .vd-fab-glass {
62958
+ background: var(--vd-glass-bg-light);
62959
+ color: var(--text-primary);
62960
+ border: 1px solid var(--vd-glass-border-light);
62961
+ box-shadow: var(--vd-glass-shadow);
62962
+ -webkit-backdrop-filter: blur(var(--vd-glass-blur)) saturate(var(--vd-glass-saturate));
62963
+ }
62964
+
62478
62965
  .vd-fab:hover {
62479
62966
  background: var(--fab-hover-bg);
62480
62967
  box-shadow: var(--fab-hover-shadow);
62481
62968
  transform: scale(1.05);
62482
62969
  }
62483
62970
 
62971
+ .vd-fab-glass:hover {
62972
+ background: var(--vd-glass-bg-light);
62973
+ box-shadow: var(--vd-glass-float-shadow, var(--vd-glass-shadow));
62974
+ }
62975
+
62484
62976
  .vd-fab:active {
62485
62977
  transform: scale(.95);
62486
62978
  }