@elyri/motion 0.0.0-stage → 0.0.1

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 (114) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +70 -2
  3. package/dist/chunk-A7JCTGZO.js +230 -0
  4. package/dist/chunk-A7JCTGZO.js.map +1 -0
  5. package/dist/core.cjs +238 -0
  6. package/dist/core.cjs.map +1 -0
  7. package/dist/core.d.cts +77 -0
  8. package/dist/core.d.ts +77 -0
  9. package/dist/core.js +3 -0
  10. package/dist/core.js.map +1 -0
  11. package/dist/index.cjs +4288 -0
  12. package/dist/index.cjs.map +1 -0
  13. package/dist/index.css +1118 -0
  14. package/dist/index.css.map +1 -0
  15. package/dist/index.d.cts +532 -0
  16. package/dist/index.d.ts +532 -0
  17. package/dist/index.js +4029 -0
  18. package/dist/index.js.map +1 -0
  19. package/package.json +60 -3
  20. package/src/components/animations/CountUp/CountUp.css +4 -0
  21. package/src/components/animations/CountUp/CountUp.tsx +100 -0
  22. package/src/components/animations/CountUp/index.ts +2 -0
  23. package/src/components/animations/FadeIn/FadeIn.css +43 -0
  24. package/src/components/animations/FadeIn/FadeIn.tsx +72 -0
  25. package/src/components/animations/FadeIn/index.ts +2 -0
  26. package/src/components/animations/Magnetic/Magnetic.css +11 -0
  27. package/src/components/animations/Magnetic/Magnetic.tsx +107 -0
  28. package/src/components/animations/Magnetic/index.ts +2 -0
  29. package/src/components/animations/ScaleIn/ScaleIn.css +24 -0
  30. package/src/components/animations/ScaleIn/ScaleIn.tsx +65 -0
  31. package/src/components/animations/ScaleIn/index.ts +2 -0
  32. package/src/components/animations/Spotlight/Spotlight.css +93 -0
  33. package/src/components/animations/Spotlight/Spotlight.tsx +100 -0
  34. package/src/components/animations/Spotlight/index.ts +2 -0
  35. package/src/components/animations/Tilt/Tilt.css +35 -0
  36. package/src/components/animations/Tilt/Tilt.tsx +123 -0
  37. package/src/components/animations/Tilt/index.ts +2 -0
  38. package/src/components/animations/index.ts +12 -0
  39. package/src/components/backgrounds/Aurora/Aurora.css +33 -0
  40. package/src/components/backgrounds/Aurora/Aurora.tsx +147 -0
  41. package/src/components/backgrounds/Aurora/index.ts +2 -0
  42. package/src/components/backgrounds/Caustics/Caustics.css +34 -0
  43. package/src/components/backgrounds/Caustics/Caustics.tsx +142 -0
  44. package/src/components/backgrounds/Caustics/index.ts +2 -0
  45. package/src/components/backgrounds/Contours/Contours.css +42 -0
  46. package/src/components/backgrounds/Contours/Contours.tsx +147 -0
  47. package/src/components/backgrounds/Contours/index.ts +2 -0
  48. package/src/components/backgrounds/DotField/DotField.css +44 -0
  49. package/src/components/backgrounds/DotField/DotField.tsx +135 -0
  50. package/src/components/backgrounds/DotField/index.ts +2 -0
  51. package/src/components/backgrounds/DragonScales/DragonScales.css +44 -0
  52. package/src/components/backgrounds/DragonScales/DragonScales.tsx +250 -0
  53. package/src/components/backgrounds/DragonScales/index.ts +2 -0
  54. package/src/components/backgrounds/Filaments/Filaments.css +38 -0
  55. package/src/components/backgrounds/Filaments/Filaments.tsx +138 -0
  56. package/src/components/backgrounds/Filaments/index.ts +2 -0
  57. package/src/components/backgrounds/FlipTiles/FlipTiles.css +44 -0
  58. package/src/components/backgrounds/FlipTiles/FlipTiles.tsx +368 -0
  59. package/src/components/backgrounds/FlipTiles/index.ts +2 -0
  60. package/src/components/backgrounds/Halo/Halo.css +43 -0
  61. package/src/components/backgrounds/Halo/Halo.tsx +122 -0
  62. package/src/components/backgrounds/Halo/index.ts +2 -0
  63. package/src/components/backgrounds/MeshGradient/MeshGradient.css +43 -0
  64. package/src/components/backgrounds/MeshGradient/MeshGradient.tsx +195 -0
  65. package/src/components/backgrounds/MeshGradient/index.ts +2 -0
  66. package/src/components/backgrounds/PixelVortex/PixelVortex.css +44 -0
  67. package/src/components/backgrounds/PixelVortex/PixelVortex.tsx +278 -0
  68. package/src/components/backgrounds/PixelVortex/index.ts +2 -0
  69. package/src/components/backgrounds/Planet/Planet.css +39 -0
  70. package/src/components/backgrounds/Planet/Planet.tsx +736 -0
  71. package/src/components/backgrounds/Planet/index.ts +2 -0
  72. package/src/components/backgrounds/SilkWaves/SilkWaves.css +44 -0
  73. package/src/components/backgrounds/SilkWaves/SilkWaves.tsx +144 -0
  74. package/src/components/backgrounds/SilkWaves/index.ts +2 -0
  75. package/src/components/backgrounds/Velvet/Velvet.css +35 -0
  76. package/src/components/backgrounds/Velvet/Velvet.tsx +246 -0
  77. package/src/components/backgrounds/Velvet/index.ts +2 -0
  78. package/src/components/backgrounds/index.ts +26 -0
  79. package/src/components/index.ts +4 -0
  80. package/src/components/media/AsciiImage/AsciiImage.css +16 -0
  81. package/src/components/media/AsciiImage/AsciiImage.tsx +366 -0
  82. package/src/components/media/AsciiImage/index.ts +2 -0
  83. package/src/components/media/index.ts +2 -0
  84. package/src/components/text/GradientText/GradientText.css +32 -0
  85. package/src/components/text/GradientText/GradientText.tsx +27 -0
  86. package/src/components/text/GradientText/index.ts +2 -0
  87. package/src/components/text/Marquee/Marquee.css +91 -0
  88. package/src/components/text/Marquee/Marquee.tsx +130 -0
  89. package/src/components/text/Marquee/index.ts +2 -0
  90. package/src/components/text/ParticleText/ParticleText.css +16 -0
  91. package/src/components/text/ParticleText/ParticleText.tsx +279 -0
  92. package/src/components/text/ParticleText/index.ts +2 -0
  93. package/src/components/text/RotatingText/RotatingText.css +133 -0
  94. package/src/components/text/RotatingText/RotatingText.tsx +112 -0
  95. package/src/components/text/RotatingText/index.ts +2 -0
  96. package/src/components/text/ScrambleText/ScrambleText.css +48 -0
  97. package/src/components/text/ScrambleText/ScrambleText.tsx +141 -0
  98. package/src/components/text/ScrambleText/index.ts +2 -0
  99. package/src/components/text/ScrollMarquee/ScrollMarquee.css +33 -0
  100. package/src/components/text/ScrollMarquee/ScrollMarquee.tsx +110 -0
  101. package/src/components/text/ScrollMarquee/index.ts +2 -0
  102. package/src/components/text/ScrollReveal/ScrollReveal.css +51 -0
  103. package/src/components/text/ScrollReveal/ScrollReveal.tsx +186 -0
  104. package/src/components/text/ScrollReveal/index.ts +2 -0
  105. package/src/components/text/SplitReveal/SplitReveal.css +52 -0
  106. package/src/components/text/SplitReveal/SplitReveal.tsx +127 -0
  107. package/src/components/text/SplitReveal/index.ts +2 -0
  108. package/src/components/text/Typewriter/Typewriter.css +37 -0
  109. package/src/components/text/Typewriter/Typewriter.tsx +80 -0
  110. package/src/components/text/Typewriter/index.ts +2 -0
  111. package/src/components/text/WaveText/WaveText.css +28 -0
  112. package/src/components/text/WaveText/WaveText.tsx +52 -0
  113. package/src/components/text/WaveText/index.ts +2 -0
  114. package/src/components/text/index.ts +20 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/styles/tokens.css","../src/components/animations/CountUp/CountUp.css","../src/components/animations/FadeIn/FadeIn.css","../src/components/animations/Magnetic/Magnetic.css","../src/components/animations/ScaleIn/ScaleIn.css","../src/components/animations/Spotlight/Spotlight.css","../src/components/animations/Tilt/Tilt.css","../src/components/backgrounds/Aurora/Aurora.css","../src/components/backgrounds/Caustics/Caustics.css","../src/components/backgrounds/Contours/Contours.css","../src/components/backgrounds/DotField/DotField.css","../src/components/backgrounds/DragonScales/DragonScales.css","../src/components/backgrounds/Filaments/Filaments.css","../src/components/backgrounds/FlipTiles/FlipTiles.css","../src/components/backgrounds/Halo/Halo.css","../src/components/backgrounds/MeshGradient/MeshGradient.css","../src/components/backgrounds/PixelVortex/PixelVortex.css","../src/components/backgrounds/Planet/Planet.css","../src/components/backgrounds/SilkWaves/SilkWaves.css","../src/components/backgrounds/Velvet/Velvet.css","../src/components/media/AsciiImage/AsciiImage.css","../src/components/text/GradientText/GradientText.css","../src/components/text/Marquee/Marquee.css","../src/components/text/ParticleText/ParticleText.css","../src/components/text/RotatingText/RotatingText.css","../src/components/text/ScrambleText/ScrambleText.css","../src/components/text/ScrollMarquee/ScrollMarquee.css","../src/components/text/ScrollReveal/ScrollReveal.css","../src/components/text/SplitReveal/SplitReveal.css","../src/components/text/Typewriter/Typewriter.css","../src/components/text/WaveText/WaveText.css"],"sourcesContent":[":root {\n --elyri-ease-out: cubic-bezier(0.16, 1, 0.3, 1);\n --elyri-ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);\n --elyri-duration-fast: 200ms;\n --elyri-duration-base: 400ms;\n --elyri-duration-slow: 800ms;\n}\n",".elyri-count-up {\n /* 等宽数字,滚动过程中宽度不跳动 */\n font-variant-numeric: tabular-nums;\n}\n",".elyri-fade-in {\n --elyri-fade-in-distance: 24px;\n --elyri-fade-in-duration: var(--elyri-duration-base);\n --elyri-fade-in-delay: 0ms;\n\n opacity: 0;\n transition:\n opacity var(--elyri-fade-in-duration) var(--elyri-ease-out) var(--elyri-fade-in-delay),\n transform var(--elyri-fade-in-duration) var(--elyri-ease-out) var(--elyri-fade-in-delay);\n}\n\n.elyri-fade-in--up {\n transform: translate3d(0, var(--elyri-fade-in-distance), 0);\n}\n\n.elyri-fade-in--down {\n transform: translate3d(0, calc(var(--elyri-fade-in-distance) * -1), 0);\n}\n\n.elyri-fade-in--left {\n transform: translate3d(var(--elyri-fade-in-distance), 0, 0);\n}\n\n.elyri-fade-in--right {\n transform: translate3d(calc(var(--elyri-fade-in-distance) * -1), 0, 0);\n}\n\n.elyri-fade-in--none {\n transform: none;\n}\n\n.elyri-fade-in--visible {\n opacity: 1;\n transform: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .elyri-fade-in {\n opacity: 1;\n transform: none;\n transition: none;\n }\n}\n",".elyri-magnetic {\n display: inline-block;\n transform: translate3d(var(--elyri-magnetic-x, 0px), var(--elyri-magnetic-y, 0px), 0);\n will-change: transform;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .elyri-magnetic {\n transform: none;\n }\n}\n",".elyri-scale-in {\n --elyri-scale-in-from: 0.9;\n --elyri-scale-in-duration: var(--elyri-duration-base);\n --elyri-scale-in-delay: 0ms;\n\n opacity: 0;\n transform: scale(var(--elyri-scale-in-from));\n transition:\n opacity var(--elyri-scale-in-duration) var(--elyri-ease-out) var(--elyri-scale-in-delay),\n transform var(--elyri-scale-in-duration) var(--elyri-ease-out) var(--elyri-scale-in-delay);\n}\n\n.elyri-scale-in--visible {\n opacity: 1;\n transform: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .elyri-scale-in {\n opacity: 1;\n transform: none;\n transition: none;\n }\n}\n",".elyri-spotlight {\n --elyri-spotlight-x: 50%;\n --elyri-spotlight-y: 50%;\n\n position: relative;\n overflow: hidden;\n border-radius: var(--elyri-spotlight-radius, 16px);\n}\n\n/* 卡片内部的径向光斑 */\n.elyri-spotlight--glow::before {\n content: '';\n position: absolute;\n inset: 0;\n background: radial-gradient(\n var(--elyri-spotlight-size, 240px) circle at var(--elyri-spotlight-x) var(--elyri-spotlight-y),\n color-mix(in srgb, var(--elyri-spotlight-color, #7c8cff) 18%, transparent),\n transparent 70%\n );\n opacity: 0;\n transition: opacity var(--elyri-duration-base) var(--elyri-ease-out);\n pointer-events: none;\n}\n\n/* 只保留 1px 边框区域的光晕:content-box 与 border-box 两层遮罩求差 */\n.elyri-spotlight--border::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: inherit;\n padding: 1px;\n background: radial-gradient(\n calc(var(--elyri-spotlight-size, 240px) * 0.75) circle at var(--elyri-spotlight-x) var(--elyri-spotlight-y),\n var(--elyri-spotlight-color, #7c8cff),\n transparent 70%\n );\n -webkit-mask:\n linear-gradient(#000 0 0) content-box,\n linear-gradient(#000 0 0);\n -webkit-mask-composite: xor;\n mask:\n linear-gradient(#000 0 0) content-box,\n linear-gradient(#000 0 0);\n mask-composite: exclude;\n opacity: 0;\n transition: opacity var(--elyri-duration-base) var(--elyri-ease-out);\n pointer-events: none;\n}\n\n.elyri-spotlight--glow:hover::before,\n.elyri-spotlight--border:hover::after {\n opacity: 1;\n}\n\n/* 内部组件的边框光晕:给需要点亮的元素加 elyri-spotlight__item 即可 */\n.elyri-spotlight__item {\n position: relative;\n}\n\n.elyri-spotlight__item::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: inherit;\n padding: 1px;\n background: radial-gradient(\n calc(var(--elyri-spotlight-size, 240px) * 0.75) circle at var(--elyri-spotlight-x, -500px)\n var(--elyri-spotlight-y, -500px),\n var(--elyri-spotlight-color, #7c8cff),\n transparent 70%\n );\n -webkit-mask:\n linear-gradient(#000 0 0) content-box,\n linear-gradient(#000 0 0);\n -webkit-mask-composite: xor;\n mask:\n linear-gradient(#000 0 0) content-box,\n linear-gradient(#000 0 0);\n mask-composite: exclude;\n opacity: 0;\n transition: opacity var(--elyri-duration-base) var(--elyri-ease-out);\n pointer-events: none;\n}\n\n.elyri-spotlight:hover .elyri-spotlight__item::after {\n opacity: 1;\n}\n\n.elyri-spotlight__content {\n position: relative;\n z-index: 1;\n height: 100%;\n}\n",".elyri-tilt {\n position: relative;\n transform: perspective(var(--elyri-tilt-perspective, 800px)) rotateX(var(--elyri-tilt-rotate-x, 0deg))\n rotateY(var(--elyri-tilt-rotate-y, 0deg));\n transform-style: preserve-3d;\n will-change: transform;\n}\n\n.elyri-tilt__glare {\n position: absolute;\n inset: 0;\n border-radius: inherit;\n background: radial-gradient(\n circle at var(--elyri-tilt-glare-x, 50%) var(--elyri-tilt-glare-y, 50%),\n rgba(255, 255, 255, 0.4),\n transparent 55%\n );\n opacity: 0;\n transition: opacity var(--elyri-duration-base) var(--elyri-ease-out);\n pointer-events: none;\n}\n\n.elyri-tilt--active .elyri-tilt__glare {\n opacity: 1;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .elyri-tilt {\n transform: none;\n }\n\n .elyri-tilt__glare {\n display: none;\n }\n}\n",".elyri-aurora {\n --elyri-aurora-color: #3cffb0;\n\n position: relative;\n isolation: isolate;\n overflow: hidden;\n /* WebGL 不可用或尚未绘制时的底色 */\n background:\n radial-gradient(90% 60% at 50% 55%, color-mix(in srgb, var(--elyri-aurora-color) 14%, transparent), transparent),\n linear-gradient(#020409, #05091a);\n}\n\n.elyri-aurora__canvas {\n position: absolute;\n inset: 0;\n z-index: 0;\n display: block;\n width: 100%;\n height: 100%;\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--elyri-duration-slow) var(--elyri-ease-out);\n}\n\n.elyri-aurora__canvas[data-ready] {\n opacity: 1;\n}\n\n.elyri-aurora__content {\n position: relative;\n z-index: 1;\n height: 100%;\n}\n",".elyri-caustics {\n --elyri-caustics-color: #0a6fa8;\n\n position: relative;\n isolation: isolate;\n overflow: hidden;\n /* WebGL 不可用或尚未绘制时的底色 */\n background: linear-gradient(\n color-mix(in srgb, var(--elyri-caustics-color) 60%, #000),\n color-mix(in srgb, var(--elyri-caustics-color) 12%, #000)\n );\n}\n\n.elyri-caustics__canvas {\n position: absolute;\n inset: 0;\n z-index: 0;\n display: block;\n width: 100%;\n height: 100%;\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--elyri-duration-slow) var(--elyri-ease-out);\n}\n\n.elyri-caustics__canvas[data-ready] {\n opacity: 1;\n}\n\n.elyri-caustics__content {\n position: relative;\n z-index: 1;\n height: 100%;\n}\n",".elyri-contours {\n --elyri-contours-color: #8a90a6;\n --elyri-contours-bg: #0a0b0f;\n\n position: relative;\n isolation: isolate;\n overflow: hidden;\n /* WebGL 不可用或尚未绘制时的底色:同心细环近似等高线 */\n background:\n repeating-radial-gradient(\n circle at 62% 38%,\n transparent 0 26px,\n color-mix(in srgb, var(--elyri-contours-color) 30%, transparent) 26px 27px\n ),\n var(--elyri-contours-bg);\n}\n\n.elyri-contours[data-scheme='light'] {\n --elyri-contours-bg: #f9f9f7;\n}\n\n.elyri-contours__canvas {\n position: absolute;\n inset: 0;\n z-index: 0;\n display: block;\n width: 100%;\n height: 100%;\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--elyri-duration-slow) var(--elyri-ease-out);\n}\n\n.elyri-contours__canvas[data-ready] {\n opacity: 1;\n}\n\n.elyri-contours__content {\n position: relative;\n z-index: 1;\n height: 100%;\n}\n",".elyri-dot-field {\n --elyri-dot-field-color: #8a90a6;\n --elyri-dot-field-gap: 22px;\n --elyri-dot-field-bg: #0a0a0e;\n\n position: relative;\n isolation: isolate;\n overflow: hidden;\n /* WebGL 不可用或尚未绘制时的底色:静态点阵 */\n background:\n radial-gradient(\n circle at center,\n color-mix(in srgb, var(--elyri-dot-field-color) 55%, transparent) 1px,\n transparent 1.6px\n )\n 0 0 / var(--elyri-dot-field-gap) var(--elyri-dot-field-gap),\n var(--elyri-dot-field-bg);\n}\n\n.elyri-dot-field[data-scheme='light'] {\n --elyri-dot-field-bg: #fafafb;\n}\n\n.elyri-dot-field__canvas {\n position: absolute;\n inset: 0;\n z-index: 0;\n display: block;\n width: 100%;\n height: 100%;\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--elyri-duration-slow) var(--elyri-ease-out);\n}\n\n.elyri-dot-field__canvas[data-ready] {\n opacity: 1;\n}\n\n.elyri-dot-field__content {\n position: relative;\n z-index: 1;\n height: 100%;\n}\n",".elyri-dragon-scales {\n --elyri-dragon-scales-color: #7b3fe4;\n\n position: relative;\n isolation: isolate;\n overflow: hidden;\n /* WebGL 不可用或尚未绘制时的底色 */\n background: radial-gradient(\n 120% 90% at 50% 30%,\n color-mix(in srgb, var(--elyri-dragon-scales-color) 30%, #000),\n #030206 75%\n );\n}\n\n/* 浅色主题:兜底底色同步翻转为浅色,避免就绪前闪深色 */\n.elyri-dragon-scales[data-scheme='light'] {\n background: radial-gradient(\n 120% 90% at 50% 30%,\n #ffffff,\n color-mix(in srgb, var(--elyri-dragon-scales-color) 12%, #ffffff) 75%\n );\n}\n\n.elyri-dragon-scales__canvas {\n position: absolute;\n inset: 0;\n z-index: 0;\n display: block;\n width: 100%;\n height: 100%;\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--elyri-duration-slow) var(--elyri-ease-out);\n}\n\n.elyri-dragon-scales__canvas[data-ready] {\n opacity: 1;\n}\n\n.elyri-dragon-scales__content {\n position: relative;\n z-index: 1;\n height: 100%;\n}\n",".elyri-filaments {\n --elyri-filaments-color: #5b8cff;\n --elyri-filaments-bg: #06060a;\n\n position: relative;\n isolation: isolate;\n overflow: hidden;\n /* WebGL 不可用或尚未绘制时的底色:中央一道柔光 */\n background:\n radial-gradient(60% 14% at 50% 50%, color-mix(in srgb, var(--elyri-filaments-color) 30%, transparent), transparent),\n var(--elyri-filaments-bg);\n}\n\n.elyri-filaments[data-scheme='light'] {\n --elyri-filaments-bg: #f7f7fa;\n}\n\n.elyri-filaments__canvas {\n position: absolute;\n inset: 0;\n z-index: 0;\n display: block;\n width: 100%;\n height: 100%;\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--elyri-duration-slow) var(--elyri-ease-out);\n}\n\n.elyri-filaments__canvas[data-ready] {\n opacity: 1;\n}\n\n.elyri-filaments__content {\n position: relative;\n z-index: 1;\n height: 100%;\n}\n",".elyri-flip-tiles {\n --elyri-flip-tiles-color: #4f6bff;\n\n position: relative;\n isolation: isolate;\n overflow: hidden;\n /* WebGL 不可用或尚未绘制时的底色 */\n background: radial-gradient(\n 120% 90% at 50% 30%,\n color-mix(in srgb, var(--elyri-flip-tiles-color) 14%, #0c0c12),\n #030305 75%\n );\n}\n\n/* 浅色主题:兜底底色同步翻转为浅色,避免就绪前闪深色 */\n.elyri-flip-tiles[data-scheme='light'] {\n background: radial-gradient(\n 120% 90% at 50% 30%,\n #f4f4f7,\n color-mix(in srgb, var(--elyri-flip-tiles-color) 10%, #dcdce3) 75%\n );\n}\n\n.elyri-flip-tiles__canvas {\n position: absolute;\n inset: 0;\n z-index: 0;\n display: block;\n width: 100%;\n height: 100%;\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--elyri-duration-slow) var(--elyri-ease-out);\n}\n\n.elyri-flip-tiles__canvas[data-ready] {\n opacity: 1;\n}\n\n.elyri-flip-tiles__content {\n position: relative;\n z-index: 1;\n height: 100%;\n}\n",".elyri-halo {\n --elyri-halo-color: #8fb4ff;\n --elyri-halo-bg: #010102;\n\n position: relative;\n isolation: isolate;\n overflow: hidden;\n /* WebGL 不可用或尚未绘制时的底色 */\n background:\n radial-gradient(\n circle at 50% 50%,\n transparent 27vmin,\n color-mix(in srgb, var(--elyri-halo-color) 22%, transparent) 30vmin,\n transparent 33vmin\n ),\n var(--elyri-halo-bg);\n}\n\n.elyri-halo[data-scheme='light'] {\n --elyri-halo-bg: #f8f8fa;\n}\n\n.elyri-halo__canvas {\n position: absolute;\n inset: 0;\n z-index: 0;\n display: block;\n width: 100%;\n height: 100%;\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--elyri-duration-slow) var(--elyri-ease-out);\n}\n\n.elyri-halo__canvas[data-ready] {\n opacity: 1;\n}\n\n.elyri-halo__content {\n position: relative;\n z-index: 1;\n height: 100%;\n}\n",".elyri-mesh-gradient {\n --elyri-mesh-gradient-c0: #6e6af0;\n --elyri-mesh-gradient-c1: #f472b6;\n --elyri-mesh-gradient-c2: #fbbf77;\n --elyri-mesh-gradient-c3: #38bdf8;\n --elyri-mesh-gradient-base: #0b0b12;\n\n position: relative;\n isolation: isolate;\n overflow: hidden;\n /* WebGL 不可用或尚未绘制时的底色:四角色团的静态近似 */\n background:\n radial-gradient(60% 70% at 18% 22%, var(--elyri-mesh-gradient-c0), transparent 70%),\n radial-gradient(60% 70% at 82% 28%, var(--elyri-mesh-gradient-c1), transparent 70%),\n radial-gradient(60% 70% at 78% 82%, var(--elyri-mesh-gradient-c2), transparent 70%),\n radial-gradient(60% 70% at 22% 78%, var(--elyri-mesh-gradient-c3), transparent 70%), var(--elyri-mesh-gradient-base);\n}\n\n.elyri-mesh-gradient[data-scheme='light'] {\n --elyri-mesh-gradient-base: #f7f7fa;\n}\n\n.elyri-mesh-gradient__canvas {\n position: absolute;\n inset: 0;\n z-index: 0;\n display: block;\n width: 100%;\n height: 100%;\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--elyri-duration-slow) var(--elyri-ease-out);\n}\n\n.elyri-mesh-gradient__canvas[data-ready] {\n opacity: 1;\n}\n\n.elyri-mesh-gradient__content {\n position: relative;\n z-index: 1;\n height: 100%;\n}\n",".elyri-pixel-vortex {\n --elyri-pixel-vortex-color: #ff4d12;\n\n position: relative;\n isolation: isolate;\n overflow: hidden;\n /* WebGL 不可用或尚未绘制时的底色 */\n background: radial-gradient(\n circle at 50% 45%,\n color-mix(in srgb, var(--elyri-pixel-vortex-color) 45%, #000),\n #0a0706 70%\n );\n}\n\n/* 浅色主题:兜底底色同步翻转为浅色,避免就绪前闪深色 */\n.elyri-pixel-vortex[data-scheme='light'] {\n background: radial-gradient(\n circle at 50% 45%,\n color-mix(in srgb, var(--elyri-pixel-vortex-color) 18%, #ffffff),\n #f6f5f4 70%\n );\n}\n\n.elyri-pixel-vortex__canvas {\n position: absolute;\n inset: 0;\n z-index: 0;\n display: block;\n width: 100%;\n height: 100%;\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--elyri-duration-slow) var(--elyri-ease-out);\n}\n\n.elyri-pixel-vortex__canvas[data-ready] {\n opacity: 1;\n}\n\n.elyri-pixel-vortex__content {\n position: relative;\n z-index: 1;\n height: 100%;\n}\n",".elyri-planet {\n --elyri-planet-color: #c1532b;\n --elyri-planet-atmosphere: #f2a57c;\n --elyri-planet-horizon: 62%;\n\n position: relative;\n isolation: isolate;\n overflow: hidden;\n background:\n radial-gradient(\n 120% 60% at 50% calc(var(--elyri-planet-horizon) + 55%),\n color-mix(in srgb, var(--elyri-planet-color) 35%, #000) 70%,\n color-mix(in srgb, var(--elyri-planet-atmosphere) 45%, transparent) 72%,\n transparent 78%\n ),\n #030307;\n}\n\n.elyri-planet__canvas {\n position: absolute;\n inset: 0;\n z-index: 0;\n display: block;\n width: 100%;\n height: 100%;\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--elyri-duration-slow) var(--elyri-ease-out);\n}\n\n.elyri-planet__canvas[data-ready] {\n opacity: 1;\n}\n\n.elyri-planet__content {\n position: relative;\n z-index: 1;\n height: 100%;\n}\n",".elyri-silk-waves {\n --elyri-silk-waves-color: #9a6424;\n\n position: relative;\n isolation: isolate;\n overflow: hidden;\n /* WebGL 不可用或尚未绘制时的底色 */\n background: radial-gradient(\n 120% 90% at 40% 30%,\n color-mix(in srgb, var(--elyri-silk-waves-color) 45%, #000),\n #070503 75%\n );\n}\n\n/* 浅色主题:兜底底色同步翻转为浅色,避免就绪前闪深色 */\n.elyri-silk-waves[data-scheme='light'] {\n background: radial-gradient(\n 120% 90% at 40% 30%,\n #ffffff,\n color-mix(in srgb, var(--elyri-silk-waves-color) 18%, #ffffff) 75%\n );\n}\n\n.elyri-silk-waves__canvas {\n position: absolute;\n inset: 0;\n z-index: 0;\n display: block;\n width: 100%;\n height: 100%;\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--elyri-duration-slow) var(--elyri-ease-out);\n}\n\n.elyri-silk-waves__canvas[data-ready] {\n opacity: 1;\n}\n\n.elyri-silk-waves__content {\n position: relative;\n z-index: 1;\n height: 100%;\n}\n",".elyri-velvet {\n --elyri-velvet-color: #6a1230;\n\n position: relative;\n isolation: isolate;\n overflow: hidden;\n /* WebGL 不可用或尚未绘制时的底色 */\n background: radial-gradient(\n ellipse at 60% 30%,\n color-mix(in srgb, var(--elyri-velvet-color) 70%, #000),\n color-mix(in srgb, var(--elyri-velvet-color) 15%, #000)\n );\n}\n\n.elyri-velvet__canvas {\n position: absolute;\n inset: 0;\n z-index: 0;\n display: block;\n width: 100%;\n height: 100%;\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--elyri-duration-slow) var(--elyri-ease-out);\n}\n\n.elyri-velvet__canvas[data-ready] {\n opacity: 1;\n}\n\n.elyri-velvet__content {\n position: relative;\n z-index: 1;\n height: 100%;\n}\n",".elyri-ascii-image {\n display: block;\n width: 100%;\n font-family: var(--elyri-ascii-font, ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace);\n font-weight: 600;\n}\n\n.elyri-ascii-image__canvas,\n.elyri-ascii-image__fallback {\n display: block;\n width: 100%;\n}\n\n.elyri-ascii-image__fallback {\n height: auto;\n}\n",".elyri-gradient-text {\n --elyri-gradient-colors: #6d5cff, #22d3ee, #f472b6;\n\n background-image: linear-gradient(90deg, var(--elyri-gradient-colors));\n background-clip: text;\n -webkit-background-clip: text;\n color: transparent;\n -webkit-text-fill-color: transparent;\n}\n\n.elyri-gradient-text--animated {\n background-size: 200% 100%;\n /* --elyri-gradient-speed 为速度倍率,越大越快 */\n animation: elyri-gradient-text-flow calc(var(--elyri-duration-slow) / var(--elyri-gradient-speed, 1))\n var(--elyri-ease-in-out) infinite alternate;\n}\n\n@keyframes elyri-gradient-text-flow {\n from {\n background-position: 0% 50%;\n }\n\n to {\n background-position: 100% 50%;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .elyri-gradient-text--animated {\n animation: none;\n }\n}\n",".elyri-marquee {\n --elyri-marquee-duration: 20s;\n --elyri-marquee-repeat: 2;\n --elyri-marquee-gap: 0px;\n\n width: 100%;\n overflow: hidden;\n /* 隔离绘制,内容再重也不会波及页面其他部分(注意:不能用 layout 包含,否则自动高度会塌陷) */\n contain: paint;\n}\n\n/* 轨道宽度由内容撑开,整体平移一份内容宽度后与起点重合,从而实现无缝循环 */\n.elyri-marquee__track {\n display: flex;\n width: max-content;\n animation: elyri-marquee-x var(--elyri-marquee-duration) linear infinite;\n will-change: transform;\n}\n\n.elyri-marquee__copy {\n display: flex;\n flex: none;\n /* 份内元素之间按间距排列 */\n gap: var(--elyri-marquee-gap);\n /* 再补一份尾随间距,使相邻两份内容之间的间隔与份内一致,且循环周期正好是整份内容宽度 */\n padding-right: var(--elyri-marquee-gap);\n}\n\n@keyframes elyri-marquee-x {\n from {\n transform: translate3d(0, 0, 0);\n }\n to {\n transform: translate3d(calc(-100% / var(--elyri-marquee-repeat)), 0, 0);\n }\n}\n\n/* 纵向滚动改为上下平移,轨道沿列方向排列 */\n.elyri-marquee--vertical .elyri-marquee__track {\n flex-direction: column;\n width: auto;\n height: max-content;\n animation-name: elyri-marquee-y;\n}\n\n.elyri-marquee--vertical .elyri-marquee__copy {\n padding-right: 0;\n padding-bottom: var(--elyri-marquee-gap);\n}\n\n@keyframes elyri-marquee-y {\n from {\n transform: translate3d(0, 0, 0);\n }\n to {\n transform: translate3d(0, calc(-100% / var(--elyri-marquee-repeat)), 0);\n }\n}\n\n/* 反向播放即可实现向右 / 向下滚动 */\n.elyri-marquee--reverse .elyri-marquee__track {\n animation-direction: reverse;\n}\n\n/* 关闭无限重复时只播放一轮 */\n.elyri-marquee--once .elyri-marquee__track {\n animation-iteration-count: 1;\n}\n\n.elyri-marquee--pausable:hover .elyri-marquee__track {\n animation-play-state: paused;\n}\n\n/* 离开视口或页面切到后台时暂停,避免无谓的合成开销与耗电 */\n.elyri-marquee--paused .elyri-marquee__track {\n animation-play-state: paused;\n}\n\n.elyri-marquee--static .elyri-marquee__track {\n animation: none;\n transform: none;\n will-change: auto;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .elyri-marquee__track {\n animation: none;\n transform: none;\n will-change: auto;\n }\n}\n",".elyri-particle-text {\n position: relative;\n display: inline-block;\n /* 按原文排版,仅在 \\n 处换行,保证画布采样与占位尺寸一致 */\n white-space: pre;\n}\n\n/* 粒子就绪后原文只占位不显示,仍可被读屏软件读取 */\n.elyri-particle-text--ready .elyri-particle-text__label {\n color: transparent;\n}\n\n.elyri-particle-text__canvas {\n position: absolute;\n pointer-events: none;\n}\n",".elyri-rotating-text {\n display: inline-block;\n position: relative;\n overflow: hidden;\n vertical-align: bottom;\n white-space: nowrap;\n perspective: 600px;\n transition: width var(--elyri-rotating-text-duration, 500ms) var(--elyri-ease-in-out);\n}\n\n.elyri-rotating-text__word {\n display: inline-block;\n transform-style: preserve-3d;\n}\n\n.elyri-rotating-text__word--leaving {\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.elyri-rotating-text__char {\n display: inline-block;\n animation-duration: var(--elyri-rotating-text-duration, 500ms);\n animation-delay: calc(var(--elyri-rotating-text-index) * var(--elyri-rotating-text-stagger, 30ms));\n animation-fill-mode: both;\n}\n\n.elyri-rotating-text__word--entering .elyri-rotating-text__char {\n animation-name: elyri-rotating-text-in;\n animation-timing-function: var(--elyri-ease-out);\n}\n\n.elyri-rotating-text__word--leaving .elyri-rotating-text__char {\n animation-name: elyri-rotating-text-out;\n animation-timing-function: var(--elyri-ease-in-out);\n}\n\n@keyframes elyri-rotating-text-in {\n from {\n opacity: 0;\n transform: translateY(70%) rotateX(-90deg);\n filter: blur(6px);\n }\n\n to {\n opacity: 1;\n transform: none;\n filter: blur(0);\n }\n}\n\n@keyframes elyri-rotating-text-out {\n from {\n opacity: 1;\n transform: none;\n filter: blur(0);\n }\n\n to {\n opacity: 0;\n transform: translateY(-70%) rotateX(90deg);\n filter: blur(6px);\n }\n}\n\n/* 色块效果:文字包裹在圆角色块中,块宽随词平滑伸缩 */\n.elyri-rotating-text--block {\n --elyri-rotating-text-block-bg: #7c3aed;\n box-sizing: content-box;\n padding: 0.00em 0.36em;\n border-radius: 0.24em;\n background: var(--elyri-rotating-text-block-bg);\n color: var(--elyri-rotating-text-block-color, #fff);\n}\n\n/* 离场词与块内边距对齐,保证新旧词位置一致 */\n.elyri-rotating-text--block .elyri-rotating-text__word--leaving {\n padding: inherit;\n}\n\n.elyri-rotating-text--block .elyri-rotating-text__word--entering .elyri-rotating-text__char {\n animation-name: elyri-rotating-text-block-in;\n animation-duration: calc(var(--elyri-rotating-text-duration, 500ms) * 0.65);\n /* 让色块先开始伸缩,文字稍后再浮现 */\n animation-delay: calc(\n var(--elyri-rotating-text-duration, 500ms) * 0.3 + var(--elyri-rotating-text-index) *\n var(--elyri-rotating-text-stagger, 30ms)\n );\n}\n\n.elyri-rotating-text--block .elyri-rotating-text__word--leaving .elyri-rotating-text__char {\n animation-name: elyri-rotating-text-block-out;\n animation-duration: calc(var(--elyri-rotating-text-duration, 500ms) * 0.5);\n}\n\n@keyframes elyri-rotating-text-block-in {\n from {\n opacity: 0;\n transform: translateY(110%) scale(0.92);\n filter: blur(4px);\n }\n\n to {\n opacity: 1;\n transform: none;\n filter: blur(0);\n }\n}\n\n@keyframes elyri-rotating-text-block-out {\n from {\n opacity: 1;\n transform: none;\n filter: blur(0);\n }\n\n to {\n opacity: 0;\n transform: translateY(-110%) scale(0.92);\n filter: blur(4px);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .elyri-rotating-text {\n transition: none;\n }\n\n .elyri-rotating-text__char {\n animation: none;\n }\n}\n",".elyri-scramble-text {\n --elyri-scramble-accent: #22d3ee;\n --elyri-scramble-glow: 1;\n\n position: relative;\n display: inline;\n /* 保留原始空白,同时允许在空白处换行 */\n white-space: pre-wrap;\n font-variant-numeric: tabular-nums;\n}\n\n/* 供读屏软件读取的完整文本,视觉上隐藏 */\n.elyri-scramble-text__sr {\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n white-space: nowrap;\n}\n\n/* 保持 inline,避免单词内部出现额外的断行机会 */\n.elyri-scramble-text__char {\n position: relative;\n}\n\n/* 未定格时原字符只占位不显示 */\n.elyri-scramble-text__char--scrambled {\n color: transparent;\n}\n\n/* 乱码字符:叠在原字符的位置上居中,脱离文档流,不影响行宽 */\n.elyri-scramble-text__glyph {\n position: absolute;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n white-space: pre;\n pointer-events: none;\n user-select: none;\n color: var(--elyri-scramble-accent);\n opacity: 0.85;\n /* 辉光半径随强度倍率缩放,倍率为 0 时阴影与字形重合,等同关闭 */\n text-shadow:\n 0 0 calc(0.35em * var(--elyri-scramble-glow)) color-mix(in srgb, var(--elyri-scramble-accent) 70%, transparent),\n 0 0 calc(1em * var(--elyri-scramble-glow)) color-mix(in srgb, var(--elyri-scramble-accent) 35%, transparent);\n}\n",".elyri-scroll-marquee {\n --elyri-scroll-marquee-gap: 0.6em;\n\n display: flex;\n flex-direction: column;\n width: 100%;\n overflow: hidden;\n line-height: 1.15;\n white-space: nowrap;\n}\n\n/* 每行内容横向平铺,位移由页面滚动量驱动,相邻行方向相反 */\n.elyri-scroll-marquee__row {\n display: flex;\n width: max-content;\n /* --base 为 -1 时整体先左移一份内容宽度,让向右滚动时左侧也有内容可填,避免露白 */\n margin-left: calc(var(--elyri-scroll-marquee-base, 0) * var(--elyri-scroll-marquee-copy-width, 0px));\n will-change: transform;\n transform: translate3d(calc(var(--elyri-scroll-marquee-shift, 0px) * var(--elyri-scroll-marquee-dir, 1)), 0, 0);\n}\n\n/* 单份内容,padding 计入宽度以保证取模后无缝衔接 */\n.elyri-scroll-marquee__copy {\n flex: none;\n padding-right: var(--elyri-scroll-marquee-gap);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .elyri-scroll-marquee__row {\n transform: none;\n will-change: auto;\n }\n}\n",".elyri-scroll-reveal {\n /* 点亮范围占全文的比例:0 为全暗、1 为全亮,默认全亮以兼容 SSR 与无 JS 场景 */\n --elyri-scroll-reveal-progress: 1;\n --elyri-scroll-reveal-dim: 0.15;\n --elyri-scroll-reveal-blur: 0px;\n --elyri-scroll-reveal-height: 280px;\n\n display: block;\n height: var(--elyri-scroll-reveal-height);\n overflow-y: auto;\n overscroll-behavior: contain;\n}\n\n.elyri-scroll-reveal__content {\n /* 保留原始空白,同时允许在空白处换行 */\n white-space: pre-wrap;\n}\n\n/* 单词容器:整词不拆行,逐字模式下作为字符的布局外壳 */\n.elyri-scroll-reveal__word {\n display: inline-block;\n}\n\n/* 点亮单元:逐字模式下为单字,逐词模式下为单词;亮度随滚动进度点亮 */\n.elyri-scroll-reveal__unit {\n /* 本单元的点亮程度:点亮范围推进到第 index 个单元时从 0 过渡到 1 */\n --elyri-scroll-reveal-lit: clamp(\n 0,\n calc(var(--elyri-scroll-reveal-progress) * var(--elyri-scroll-reveal-count) - var(--elyri-scroll-reveal-index)),\n 1\n );\n\n display: inline-block;\n white-space: pre;\n opacity: calc(var(--elyri-scroll-reveal-dim) + (1 - var(--elyri-scroll-reveal-dim)) * var(--elyri-scroll-reveal-lit));\n}\n\n/* 开启模糊时,未点亮的单元同时带模糊 */\n.elyri-scroll-reveal--blur .elyri-scroll-reveal__unit {\n filter: blur(calc((1 - var(--elyri-scroll-reveal-lit)) * var(--elyri-scroll-reveal-blur)));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .elyri-scroll-reveal__unit {\n opacity: 1;\n }\n\n .elyri-scroll-reveal--blur .elyri-scroll-reveal__unit {\n filter: none;\n }\n}\n",".elyri-split-reveal {\n --elyri-split-reveal-duration: var(--elyri-duration-base);\n --elyri-split-reveal-delay: 0ms;\n --elyri-split-reveal-stagger: 40ms;\n --elyri-split-reveal-distance: 24px;\n\n display: inline;\n /* 保留原始空白,同时允许在空白处换行 */\n white-space: pre-wrap;\n}\n\n/* 单词容器:整词不拆行,逐字模式下作为字符的布局外壳 */\n.elyri-split-reveal__word {\n display: inline-block;\n}\n\n/* 动画单元:逐字模式下为单字,逐词模式下为单词 */\n.elyri-split-reveal__unit {\n display: inline-block;\n white-space: pre;\n opacity: 0;\n will-change: opacity, transform;\n}\n\n.elyri-split-reveal--visible .elyri-split-reveal__unit {\n animation: elyri-split-reveal-rise var(--elyri-split-reveal-duration) var(--elyri-ease-out) both;\n animation-delay: calc(\n var(--elyri-split-reveal-delay) + var(--elyri-split-reveal-index, 0) * var(--elyri-split-reveal-stagger)\n );\n}\n\n@keyframes elyri-split-reveal-rise {\n from {\n opacity: 0;\n transform: translate3d(0, var(--elyri-split-reveal-distance), 0);\n }\n\n to {\n opacity: 1;\n transform: none;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .elyri-split-reveal__unit {\n opacity: 1;\n }\n\n .elyri-split-reveal--visible .elyri-split-reveal__unit {\n animation: none;\n }\n}\n",".elyri-typewriter {\n display: inline;\n white-space: pre-wrap;\n}\n\n.elyri-typewriter__text {\n white-space: pre-wrap;\n}\n\n/* 块状光标,随 currentColor 取色 */\n.elyri-typewriter__cursor {\n display: inline-block;\n width: 2px;\n height: 1em;\n margin-left: 0.1em;\n border-radius: 1px;\n background: currentColor;\n vertical-align: -0.15em;\n animation: elyri-typewriter-blink 1s step-end infinite;\n}\n\n@keyframes elyri-typewriter-blink {\n 0%,\n 100% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .elyri-typewriter__cursor {\n animation: none;\n }\n}\n",".elyri-wave-text__word {\n display: inline-block;\n white-space: nowrap;\n}\n\n.elyri-wave-text__unit {\n display: inline-block;\n animation: elyri-wave-text-swing var(--elyri-wave-text-speed, 1200ms) var(--elyri-ease-in-out) infinite;\n animation-delay: calc(var(--elyri-wave-text-index) * var(--elyri-wave-text-stagger, 60ms) * -1);\n will-change: transform;\n}\n\n@keyframes elyri-wave-text-swing {\n 0%,\n 100% {\n transform: translateY(0);\n }\n\n 50% {\n transform: translateY(calc(var(--elyri-wave-text-amplitude, 6px) * -1));\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .elyri-wave-text__unit {\n animation: none;\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,532 @@
1
+ import * as react from 'react';
2
+ import { ReactNode, CSSProperties } from 'react';
3
+ import { ColorScheme } from './core.cjs';
4
+ export { ClassValue, LinearRgb, ReducedMotionProvider, ReducedMotionProviderProps, ShaderCanvasOptions, ShaderFrame, SplitTextBy, SplitTextSegment, SplitTextUnit, cn, hexToLinearRgb, splitTextUnits, useColorScheme, usePrefersReducedMotion, useShaderCanvas } from './core.cjs';
5
+
6
+ interface CountUpProps {
7
+ className?: string;
8
+ /** 目标数值 */
9
+ to: number;
10
+ /** 起始数值 */
11
+ from?: number;
12
+ /** 动画时长(毫秒) */
13
+ duration?: number;
14
+ /** 保留的小数位数 */
15
+ decimals?: number;
16
+ /** 是否使用千分位分隔符 */
17
+ separator?: boolean;
18
+ /** 数字前缀 */
19
+ prefix?: string;
20
+ /** 数字后缀 */
21
+ suffix?: string;
22
+ /** 是否只在首次进入视口时播放 */
23
+ once?: boolean;
24
+ }
25
+ /** 数字滚动:进入视口时从起始值过渡到目标值 */
26
+ declare function CountUp({ className, to, from, duration, decimals, separator, prefix, suffix, once, }: CountUpProps): react.JSX.Element;
27
+
28
+ type FadeInDirection = 'up' | 'down' | 'left' | 'right' | 'none';
29
+ interface FadeInProps {
30
+ children: ReactNode;
31
+ className?: string;
32
+ direction?: FadeInDirection;
33
+ delay?: number;
34
+ duration?: number;
35
+ distance?: number;
36
+ once?: boolean;
37
+ }
38
+ declare function FadeIn({ children, className, direction, delay, duration, distance, once, }: FadeInProps): react.JSX.Element;
39
+
40
+ interface MagneticProps {
41
+ children: ReactNode;
42
+ className?: string;
43
+ /** 吸附强度(0-1),元素向指针偏移的距离比例 */
44
+ strength?: number;
45
+ /** 元素边缘向外扩展的触发范围(像素) */
46
+ range?: number;
47
+ /** 指针离开触发范围后的回正时长(毫秒) */
48
+ resetDuration?: number;
49
+ }
50
+ /** 磁吸:指针靠近时元素被吸附偏移,离开后缓动回正 */
51
+ declare function Magnetic({ children, className, strength, range, resetDuration }: MagneticProps): react.JSX.Element;
52
+
53
+ interface ScaleInProps {
54
+ children: ReactNode;
55
+ className?: string;
56
+ /** 起始缩放比例 */
57
+ from?: number;
58
+ /** 延迟(毫秒) */
59
+ delay?: number;
60
+ /** 动画时长(毫秒) */
61
+ duration?: number;
62
+ /** 是否只在首次进入视口时触发 */
63
+ once?: boolean;
64
+ }
65
+ declare function ScaleIn({ children, className, from, delay, duration, once }: ScaleInProps): react.JSX.Element;
66
+
67
+ interface SpotlightProps {
68
+ children: ReactNode;
69
+ className?: string;
70
+ /** 光斑颜色 */
71
+ color?: string;
72
+ /** 光斑半径(像素) */
73
+ size?: number;
74
+ /** 是否显示卡片内部跟随指针的径向光晕 */
75
+ glow?: boolean;
76
+ /** 是否显示指针附近的边框光晕 */
77
+ borderGlow?: boolean;
78
+ /** 卡片圆角(像素) */
79
+ radius?: number;
80
+ }
81
+ /** 聚光卡片:指针位置泛起径向高光,可选择性地点亮边框;内部元素加 elyri-spotlight__item 可获得同款边框光晕 */
82
+ declare function Spotlight({ children, className, color, size, glow, borderGlow, radius, }: SpotlightProps): react.JSX.Element;
83
+
84
+ interface TiltProps {
85
+ children: ReactNode;
86
+ className?: string;
87
+ /** 最大倾斜角度(度) */
88
+ max?: number;
89
+ /** 透视距离(像素) */
90
+ perspective?: number;
91
+ /** 是否显示跟随指针的高光 */
92
+ glare?: boolean;
93
+ }
94
+ /** 指针跟随倾斜:根据指针在元素内的位置计算 3D 旋转 */
95
+ declare function Tilt({ children, className, max, perspective, glare }: TiltProps): react.JSX.Element;
96
+
97
+ interface AuroraProps {
98
+ children?: ReactNode;
99
+ className?: string;
100
+ /** 三段渐变色:帘底、中段、帘顶(hex) */
101
+ colors?: [string, string, string];
102
+ /** 动画速度倍率 */
103
+ speed?: number;
104
+ /** 极光亮度倍率 */
105
+ intensity?: number;
106
+ /** 是否显示星空 */
107
+ stars?: boolean;
108
+ /** 指针附近的极光是否增亮 */
109
+ interactive?: boolean;
110
+ }
111
+ declare function Aurora({ children, className, colors, speed, intensity, stars, interactive, }: AuroraProps): react.JSX.Element;
112
+
113
+ interface CausticsProps {
114
+ children?: ReactNode;
115
+ className?: string;
116
+ /** 水体颜色(hex) */
117
+ color?: string;
118
+ /** 焦散光色(hex) */
119
+ highlightColor?: string;
120
+ /** 光纹密度倍率 */
121
+ density?: number;
122
+ /** 动画速度倍率 */
123
+ speed?: number;
124
+ /** 指针处是否荡开水波并聚光 */
125
+ interactive?: boolean;
126
+ }
127
+ declare function Caustics({ children, className, color, highlightColor, density, speed, interactive, }: CausticsProps): react.JSX.Element;
128
+
129
+ interface ContoursProps {
130
+ children?: ReactNode;
131
+ className?: string;
132
+ /** 等高线颜色(hex) */
133
+ color?: string;
134
+ /** 指针附近等高线的强调色(hex) */
135
+ highlightColor?: string;
136
+ /** 等高线密度倍率 */
137
+ density?: number;
138
+ /** 动画速度倍率 */
139
+ speed?: number;
140
+ /** 指针处是否隆起一座小山 */
141
+ interactive?: boolean;
142
+ }
143
+ declare function Contours({ children, className, color, highlightColor, density, speed, interactive, }: ContoursProps): react.JSX.Element;
144
+
145
+ interface DotFieldProps {
146
+ children?: ReactNode;
147
+ className?: string;
148
+ /** 点的底色(hex) */
149
+ color?: string;
150
+ /** 波峰与指针附近的点所用的强调色(hex) */
151
+ highlightColor?: string;
152
+ /** 点阵间距(CSS 像素) */
153
+ gap?: number;
154
+ /** 动画速度倍率 */
155
+ speed?: number;
156
+ /** 指针附近的点是否被放大、推开 */
157
+ interactive?: boolean;
158
+ }
159
+ declare function DotField({ children, className, color, highlightColor, gap, speed, interactive, }: DotFieldProps): react.JSX.Element;
160
+
161
+ interface DragonScalesProps {
162
+ children?: ReactNode;
163
+ className?: string;
164
+ /** 鳞片本体色(hex) */
165
+ color?: string;
166
+ /** 反光条与鳞缘高光色(hex) */
167
+ highlightColor?: string;
168
+ /** 单片鳞宽度(px) */
169
+ scaleSize?: number;
170
+ /** 动画速度倍率 */
171
+ speed?: number;
172
+ /** 鳞片开合幅度 0-1,0 为关闭 */
173
+ flare?: number;
174
+ /** 光源是否跟随指针 */
175
+ interactive?: boolean;
176
+ /** 强制明暗方案,默认跟随页面主题 */
177
+ scheme?: ColorScheme;
178
+ }
179
+ declare function DragonScales({ children, className, color, highlightColor, scaleSize, speed, flare, interactive, scheme: forcedScheme, }: DragonScalesProps): react.JSX.Element;
180
+
181
+ interface FilamentsProps {
182
+ children?: ReactNode;
183
+ className?: string;
184
+ /** 光丝主色(hex) */
185
+ color?: string;
186
+ /** 沿光丝渐变的第二种颜色(hex) */
187
+ highlightColor?: string;
188
+ /** 光丝振幅倍率 */
189
+ amplitude?: number;
190
+ /** 动画速度倍率 */
191
+ speed?: number;
192
+ /** 指针处的光丝是否被拨动、弯向指针 */
193
+ interactive?: boolean;
194
+ }
195
+ declare function Filaments({ children, className, color, highlightColor, amplitude, speed, interactive, }: FilamentsProps): react.JSX.Element;
196
+
197
+ type FlipTilesPattern = 'wave' | 'ripple' | 'drift';
198
+ interface FlipTilesProps {
199
+ children?: ReactNode;
200
+ className?: string;
201
+ /** 立方体侧面的强调色(hex),翻滚时翻上来的就是这一面 */
202
+ color?: string;
203
+ /** 金属倒角与反光条的高光色(hex) */
204
+ highlightColor?: string;
205
+ /** 立方体间距(px),即单个立方体加缝隙的宽度 */
206
+ tileSize?: number;
207
+ /** 动画速度倍率 */
208
+ speed?: number;
209
+ /** 翻滚编排:成列扫过、中心涟漪或有机漂移 */
210
+ pattern?: FlipTilesPattern;
211
+ /** 指针处立方体升起(微凸)是否跟随指针 */
212
+ interactive?: boolean;
213
+ }
214
+ declare function FlipTiles({ children, className, color, highlightColor, tileSize, speed, pattern, interactive, }: FlipTilesProps): react.JSX.Element;
215
+
216
+ interface HaloProps {
217
+ children?: ReactNode;
218
+ className?: string;
219
+ /** 光环的两种渐变色(hex),沿圆周缓慢流转 */
220
+ colors?: [string, string];
221
+ /** 光环半径,相对画面高度的倍率 */
222
+ size?: number;
223
+ /** 动画速度倍率 */
224
+ speed?: number;
225
+ /** 光环中心是否轻微偏向指针 */
226
+ interactive?: boolean;
227
+ }
228
+ declare function Halo({ children, className, colors, size, speed, interactive, }: HaloProps): react.JSX.Element;
229
+
230
+ interface MeshGradientProps {
231
+ children?: ReactNode;
232
+ className?: string;
233
+ /** 自定义内联样式,可用于控制尺寸 */
234
+ style?: CSSProperties;
235
+ /** 四个色团的颜色(hex) */
236
+ colors?: [string, string, string, string];
237
+ /** 胶片颗粒强度,0 为关闭 */
238
+ grain?: number;
239
+ /** 动画速度倍率 */
240
+ speed?: number;
241
+ /** 指针处的色彩漩涡是否跟随指针 */
242
+ interactive?: boolean;
243
+ }
244
+ declare function MeshGradient({ children, className, style, colors, grain, speed, interactive, }: MeshGradientProps): react.JSX.Element;
245
+
246
+ interface PixelVortexProps {
247
+ children?: ReactNode;
248
+ className?: string;
249
+ /**
250
+ * 在 LED 屏上播放的视频地址。跨域视频需服务端允许 CORS;服务端还需支持 Range 请求,
251
+ * 否则大视频会整段下载而无法边下边播。未提供或加载失败时显示火焰流动效果。
252
+ */
253
+ videoSrc?: string;
254
+ /** 火焰主色(hex) */
255
+ color?: string;
256
+ /** 最亮处的高光色(hex) */
257
+ highlightColor?: string;
258
+ /** 单颗灯珠尺寸(CSS 像素) */
259
+ cellSize?: number;
260
+ /** 是否显示拼接屏接缝(每 16×10 颗灯珠一块) */
261
+ seams?: boolean;
262
+ /** 接缝宽度(CSS 像素) */
263
+ seamWidth?: number;
264
+ /** 动画速度倍率 */
265
+ speed?: number;
266
+ /** 光晕中心是否跟随指针 */
267
+ interactive?: boolean;
268
+ }
269
+ declare function PixelVortex({ children, className, videoSrc, color, highlightColor, cellSize, seams, seamWidth, speed, interactive, }: PixelVortexProps): react.JSX.Element;
270
+
271
+ type PlanetKind = 'mars' | 'jupiter' | 'earth';
272
+ interface PlanetProps {
273
+ children?: ReactNode;
274
+ className?: string;
275
+ planet?: PlanetKind;
276
+ color?: string;
277
+ terrainColor?: string;
278
+ atmosphereColor?: string;
279
+ atmosphere?: number;
280
+ craters?: number;
281
+ cityLights?: boolean;
282
+ stars?: number;
283
+ horizon?: number;
284
+ speed?: number;
285
+ sun?: boolean;
286
+ sunPosition?: {
287
+ x: number;
288
+ y: number;
289
+ };
290
+ interactive?: boolean;
291
+ }
292
+ declare function Planet({ children, className, planet, color, terrainColor, atmosphereColor, atmosphere, craters, cityLights, stars, horizon, speed, sun, sunPosition, interactive, }: PlanetProps): react.JSX.Element;
293
+
294
+ interface SilkWavesProps {
295
+ children?: ReactNode;
296
+ className?: string;
297
+ /** 丝绸本体色(hex) */
298
+ color?: string;
299
+ /** 光泽高光色(hex) */
300
+ highlightColor?: string;
301
+ /** 褶皱密度倍率 */
302
+ folds?: number;
303
+ /** 动画速度倍率 */
304
+ speed?: number;
305
+ /** 光源是否跟随指针 */
306
+ interactive?: boolean;
307
+ }
308
+ declare function SilkWaves({ children, className, color, highlightColor, folds, speed, interactive, }: SilkWavesProps): react.JSX.Element;
309
+
310
+ interface VelvetProps {
311
+ children?: ReactNode;
312
+ className?: string;
313
+ /** 丝绒本体色(hex) */
314
+ color?: string;
315
+ /** 绒面光晕色(hex) */
316
+ sheenColor?: string;
317
+ /** 褶皱密度倍率 */
318
+ folds?: number;
319
+ /** 绒毛质感强度,0 为光洁、1 为明显的毛绒颗粒 */
320
+ fuzz?: number;
321
+ /** 四周暗角强度,0 为无暗角 */
322
+ vignette?: number;
323
+ /** 动画速度倍率 */
324
+ speed?: number;
325
+ /** 光源是否跟随指针,指针划过是否留下渐消的压痕 */
326
+ interactive?: boolean;
327
+ }
328
+ declare function Velvet({ children, className, color, sheenColor, folds, fuzz, vignette, speed, interactive, }: VelvetProps): react.JSX.Element;
329
+
330
+ interface AsciiImageProps {
331
+ /** 图片地址。跨域图片需服务端允许 CORS,否则无法读取像素,会退回显示原图 */
332
+ src: string;
333
+ /** 替代文本,提供给读屏软件 */
334
+ alt?: string;
335
+ className?: string;
336
+ /** 每行字符数,越大细节越多 */
337
+ columns?: number;
338
+ /** 字符梯度,从稀疏到密集排列 */
339
+ characters?: string;
340
+ /** 是否按原图像素着色 */
341
+ colored?: boolean;
342
+ /** 单色模式下的字符颜色,默认继承文字颜色;也可用 CSS 变量 --elyri-ascii-color 覆盖 */
343
+ color?: string;
344
+ /** 反转明暗映射(默认深色主题下亮处字符密集,浅色主题下暗处字符密集) */
345
+ invert?: boolean;
346
+ /** 进入视口时是否自上而下解码显现 */
347
+ animated?: boolean;
348
+ /** 显现动画时长(毫秒) */
349
+ duration?: number;
350
+ /** 是否有一道斜向高光周期性扫过 */
351
+ shimmer?: boolean;
352
+ /** 每帧随机闪烁的字符比例(0-1),0 为关闭 */
353
+ flicker?: number;
354
+ /** 指针附近的字符是否被推开、提亮并乱码 */
355
+ interactive?: boolean;
356
+ /** 指针影响半径(CSS 像素) */
357
+ radius?: number;
358
+ }
359
+ declare function AsciiImage({ src, alt, className, columns, characters, colored, color, invert, animated, duration, shimmer, flicker, interactive, radius, }: AsciiImageProps): react.JSX.Element;
360
+
361
+ interface GradientTextProps {
362
+ children: ReactNode;
363
+ className?: string;
364
+ colors?: string[];
365
+ animated?: boolean;
366
+ /** 流动动画速度倍率 */
367
+ speed?: number;
368
+ }
369
+ declare function GradientText({ children, className, colors, animated, speed }: GradientTextProps): react.JSX.Element;
370
+
371
+ type MarqueeDirection = 'left' | 'right' | 'up' | 'down';
372
+ interface MarqueeProps {
373
+ /** 循环滚动的内容,任意节点,会被复制多份以形成无缝循环 */
374
+ children: ReactNode;
375
+ className?: string;
376
+ /** 滚动方向 */
377
+ direction?: MarqueeDirection;
378
+ /** 跑完一轮所需的秒数,数值越大越慢 */
379
+ duration?: number;
380
+ /** 最少重复份数;实际份数会按容器尺寸自动补足,保证循环无缝 */
381
+ repeat?: number;
382
+ /** 每份内容之间的间距,单位 px */
383
+ gap?: number;
384
+ /** 是否无限重复播放,关闭时只播放一轮 */
385
+ infinite?: boolean;
386
+ /** 鼠标悬停时是否暂停 */
387
+ pauseOnHover?: boolean;
388
+ }
389
+ declare function Marquee({ children, className, direction, duration, repeat, gap, infinite, pauseOnHover, }: MarqueeProps): react.JSX.Element;
390
+
391
+ interface ParticleTextProps {
392
+ /** 由粒子组成的文本,仅支持纯字符串,可用 \n 换行 */
393
+ children: string;
394
+ className?: string;
395
+ /** 粒子颜色,默认继承文字颜色;也可用 CSS 变量 --elyri-particle-color 覆盖 */
396
+ color?: string;
397
+ /** 单个粒子边长(CSS 像素) */
398
+ particleSize?: number;
399
+ /** 采样间距(CSS 像素),越小粒子越密 */
400
+ gap?: number;
401
+ /** 指针排斥半径(CSS 像素),0 为关闭交互 */
402
+ radius?: number;
403
+ /** 排斥力度倍率 */
404
+ force?: number;
405
+ /** 首次进入视口时粒子是否从四周飞入聚合成字 */
406
+ assemble?: boolean;
407
+ }
408
+ declare function ParticleText({ children, className, color, particleSize, gap, radius, force, assemble, }: ParticleTextProps): react.JSX.Element;
409
+
410
+ interface RotatingTextProps {
411
+ /** 轮播的词语列表,至少一个 */
412
+ words: string[];
413
+ className?: string;
414
+ /** 每个词的停留时长(毫秒) */
415
+ interval?: number;
416
+ /** 单词翻转进出的动画时长(毫秒) */
417
+ duration?: number;
418
+ /** 切换效果:flip 为 3D 翻转字符;block 为圆角色块包裹文字,块宽随词伸缩 */
419
+ variant?: 'flip' | 'block';
420
+ }
421
+ /** 词语轮换:多个词依次翻转切换,容器宽度随词宽平滑过渡 */
422
+ declare function RotatingText({ words, className, interval, duration, variant, }: RotatingTextProps): react.JSX.Element;
423
+
424
+ type ScrambleTextTrigger = 'view' | 'hover';
425
+ interface ScrambleTextProps {
426
+ /** 需要解码显现的文本,仅支持纯字符串 */
427
+ children: string;
428
+ className?: string;
429
+ /** 触发方式:进入视口或指针悬停 */
430
+ trigger?: ScrambleTextTrigger;
431
+ /** 乱码刷新间隔(毫秒) */
432
+ speed?: number;
433
+ /** 相邻字符依次定格的间隔(毫秒) */
434
+ stagger?: number;
435
+ /** 乱码字符池 */
436
+ characters?: string;
437
+ /** 乱码字符的强调色 */
438
+ accentColor?: string;
439
+ /** 乱码辉光强度倍率,0 为关闭,默认 1 */
440
+ glow?: number;
441
+ /** 视口模式下是否只在首次进入时触发 */
442
+ once?: boolean;
443
+ }
444
+ declare function ScrambleText({ children, className, trigger, speed, stagger, characters, accentColor, glow, once, }: ScrambleTextProps): react.JSX.Element;
445
+
446
+ type ScrollMarqueeDirection = 'left' | 'right';
447
+ interface ScrollMarqueeProps {
448
+ /** 需要滚动的文本,仅支持纯字符串 */
449
+ children: string;
450
+ className?: string;
451
+ /** 滚动方向 */
452
+ direction?: ScrollMarqueeDirection;
453
+ /** 页面每滚动 1px,文字横向移动的像素数 */
454
+ speed?: number;
455
+ /** 行数,相邻两行方向相反 */
456
+ rows?: number;
457
+ /** 内容重复份数,用于铺满并实现无缝循环 */
458
+ repeat?: number;
459
+ /** 是否无限循环,关闭时走满一份内容后停住 */
460
+ infinite?: boolean;
461
+ }
462
+ declare function ScrollMarquee({ children, className, direction, speed, rows, repeat, infinite, }: ScrollMarqueeProps): react.JSX.Element;
463
+
464
+ type ScrollRevealBy = 'char' | 'word';
465
+ interface ScrollRevealProps {
466
+ /** 需要点亮的文本,仅支持纯字符串 */
467
+ children: string;
468
+ className?: string;
469
+ /** 点亮单位:按单词或按字符 */
470
+ by?: ScrollRevealBy;
471
+ /** 滚动区域高度(像素),文本超出后可滚动 */
472
+ height?: number;
473
+ /** 未点亮时的不透明度,0 为完全不可见 */
474
+ dimOpacity?: number;
475
+ /** 未点亮时的模糊半径(像素),0 为不模糊 */
476
+ blur?: number;
477
+ }
478
+ /** 滚动点亮:随容器滚动,文本从头至尾逐单元点亮 */
479
+ declare function ScrollReveal({ children, className, by, height, dimOpacity, blur, }: ScrollRevealProps): react.JSX.Element;
480
+
481
+ type SplitRevealBy = 'char' | 'word';
482
+ interface SplitRevealProps {
483
+ /** 需要浮现的文本,仅支持纯字符串 */
484
+ children: string;
485
+ className?: string;
486
+ /** 拆分单位:按字符或按单词 */
487
+ by?: SplitRevealBy;
488
+ /** 起始延迟(毫秒) */
489
+ delay?: number;
490
+ /** 相邻单元之间的播放间隔(毫秒) */
491
+ stagger?: number;
492
+ /** 单个单元的动画时长(毫秒) */
493
+ duration?: number;
494
+ /** 位移距离(像素) */
495
+ distance?: number;
496
+ /** 是否只在首次进入视口时触发 */
497
+ once?: boolean;
498
+ }
499
+ declare function SplitReveal({ children, className, by, delay, stagger, duration, distance, once, }: SplitRevealProps): react.JSX.Element;
500
+
501
+ interface TypewriterProps {
502
+ /** 需要逐字输出的文本,仅支持纯字符串 */
503
+ children: string;
504
+ className?: string;
505
+ /** 每个字符的输入间隔(毫秒) */
506
+ speed?: number;
507
+ /** 开始输入前的延迟(毫秒) */
508
+ startDelay?: number;
509
+ /** 输入完成后是否循环重播 */
510
+ loop?: boolean;
511
+ /** 循环重播前的停顿(毫秒) */
512
+ loopDelay?: number;
513
+ /** 是否显示闪烁光标 */
514
+ cursor?: boolean;
515
+ }
516
+ declare function Typewriter({ children, className, speed, startDelay, loop, loopDelay, cursor, }: TypewriterProps): react.JSX.Element;
517
+
518
+ interface WaveTextProps {
519
+ /** 需要起伏的文本,仅支持纯字符串 */
520
+ children: string;
521
+ className?: string;
522
+ /** 振幅(像素) */
523
+ amplitude?: number;
524
+ /** 单个字符一次起伏的时长(毫秒) */
525
+ speed?: number;
526
+ /** 相邻字符的相位差(毫秒),越大波浪越稀疏 */
527
+ stagger?: number;
528
+ }
529
+ /** 波浪文字:字符按正弦节奏依次上下起伏 */
530
+ declare function WaveText({ children, className, amplitude, speed, stagger }: WaveTextProps): react.JSX.Element;
531
+
532
+ export { AsciiImage, type AsciiImageProps, Aurora, type AuroraProps, Caustics, type CausticsProps, ColorScheme, Contours, type ContoursProps, CountUp, type CountUpProps, DotField, type DotFieldProps, DragonScales, type DragonScalesProps, FadeIn, type FadeInDirection, type FadeInProps, Filaments, type FilamentsProps, FlipTiles, type FlipTilesPattern, type FlipTilesProps, GradientText, type GradientTextProps, Halo, type HaloProps, Magnetic, type MagneticProps, Marquee, type MarqueeDirection, type MarqueeProps, MeshGradient, type MeshGradientProps, ParticleText, type ParticleTextProps, PixelVortex, type PixelVortexProps, Planet, type PlanetKind, type PlanetProps, RotatingText, type RotatingTextProps, ScaleIn, type ScaleInProps, ScrambleText, type ScrambleTextProps, type ScrambleTextTrigger, ScrollMarquee, type ScrollMarqueeDirection, type ScrollMarqueeProps, ScrollReveal, type ScrollRevealBy, type ScrollRevealProps, SilkWaves, type SilkWavesProps, SplitReveal, type SplitRevealBy, type SplitRevealProps, Spotlight, type SpotlightProps, Tilt, type TiltProps, Typewriter, type TypewriterProps, Velvet, type VelvetProps, WaveText, type WaveTextProps };