@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.
- package/LICENSE +21 -0
- package/README.md +70 -2
- package/dist/chunk-A7JCTGZO.js +230 -0
- package/dist/chunk-A7JCTGZO.js.map +1 -0
- package/dist/core.cjs +238 -0
- package/dist/core.cjs.map +1 -0
- package/dist/core.d.cts +77 -0
- package/dist/core.d.ts +77 -0
- package/dist/core.js +3 -0
- package/dist/core.js.map +1 -0
- package/dist/index.cjs +4288 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.css +1118 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.cts +532 -0
- package/dist/index.d.ts +532 -0
- package/dist/index.js +4029 -0
- package/dist/index.js.map +1 -0
- package/package.json +60 -3
- package/src/components/animations/CountUp/CountUp.css +4 -0
- package/src/components/animations/CountUp/CountUp.tsx +100 -0
- package/src/components/animations/CountUp/index.ts +2 -0
- package/src/components/animations/FadeIn/FadeIn.css +43 -0
- package/src/components/animations/FadeIn/FadeIn.tsx +72 -0
- package/src/components/animations/FadeIn/index.ts +2 -0
- package/src/components/animations/Magnetic/Magnetic.css +11 -0
- package/src/components/animations/Magnetic/Magnetic.tsx +107 -0
- package/src/components/animations/Magnetic/index.ts +2 -0
- package/src/components/animations/ScaleIn/ScaleIn.css +24 -0
- package/src/components/animations/ScaleIn/ScaleIn.tsx +65 -0
- package/src/components/animations/ScaleIn/index.ts +2 -0
- package/src/components/animations/Spotlight/Spotlight.css +93 -0
- package/src/components/animations/Spotlight/Spotlight.tsx +100 -0
- package/src/components/animations/Spotlight/index.ts +2 -0
- package/src/components/animations/Tilt/Tilt.css +35 -0
- package/src/components/animations/Tilt/Tilt.tsx +123 -0
- package/src/components/animations/Tilt/index.ts +2 -0
- package/src/components/animations/index.ts +12 -0
- package/src/components/backgrounds/Aurora/Aurora.css +33 -0
- package/src/components/backgrounds/Aurora/Aurora.tsx +147 -0
- package/src/components/backgrounds/Aurora/index.ts +2 -0
- package/src/components/backgrounds/Caustics/Caustics.css +34 -0
- package/src/components/backgrounds/Caustics/Caustics.tsx +142 -0
- package/src/components/backgrounds/Caustics/index.ts +2 -0
- package/src/components/backgrounds/Contours/Contours.css +42 -0
- package/src/components/backgrounds/Contours/Contours.tsx +147 -0
- package/src/components/backgrounds/Contours/index.ts +2 -0
- package/src/components/backgrounds/DotField/DotField.css +44 -0
- package/src/components/backgrounds/DotField/DotField.tsx +135 -0
- package/src/components/backgrounds/DotField/index.ts +2 -0
- package/src/components/backgrounds/DragonScales/DragonScales.css +44 -0
- package/src/components/backgrounds/DragonScales/DragonScales.tsx +250 -0
- package/src/components/backgrounds/DragonScales/index.ts +2 -0
- package/src/components/backgrounds/Filaments/Filaments.css +38 -0
- package/src/components/backgrounds/Filaments/Filaments.tsx +138 -0
- package/src/components/backgrounds/Filaments/index.ts +2 -0
- package/src/components/backgrounds/FlipTiles/FlipTiles.css +44 -0
- package/src/components/backgrounds/FlipTiles/FlipTiles.tsx +368 -0
- package/src/components/backgrounds/FlipTiles/index.ts +2 -0
- package/src/components/backgrounds/Halo/Halo.css +43 -0
- package/src/components/backgrounds/Halo/Halo.tsx +122 -0
- package/src/components/backgrounds/Halo/index.ts +2 -0
- package/src/components/backgrounds/MeshGradient/MeshGradient.css +43 -0
- package/src/components/backgrounds/MeshGradient/MeshGradient.tsx +195 -0
- package/src/components/backgrounds/MeshGradient/index.ts +2 -0
- package/src/components/backgrounds/PixelVortex/PixelVortex.css +44 -0
- package/src/components/backgrounds/PixelVortex/PixelVortex.tsx +278 -0
- package/src/components/backgrounds/PixelVortex/index.ts +2 -0
- package/src/components/backgrounds/Planet/Planet.css +39 -0
- package/src/components/backgrounds/Planet/Planet.tsx +736 -0
- package/src/components/backgrounds/Planet/index.ts +2 -0
- package/src/components/backgrounds/SilkWaves/SilkWaves.css +44 -0
- package/src/components/backgrounds/SilkWaves/SilkWaves.tsx +144 -0
- package/src/components/backgrounds/SilkWaves/index.ts +2 -0
- package/src/components/backgrounds/Velvet/Velvet.css +35 -0
- package/src/components/backgrounds/Velvet/Velvet.tsx +246 -0
- package/src/components/backgrounds/Velvet/index.ts +2 -0
- package/src/components/backgrounds/index.ts +26 -0
- package/src/components/index.ts +4 -0
- package/src/components/media/AsciiImage/AsciiImage.css +16 -0
- package/src/components/media/AsciiImage/AsciiImage.tsx +366 -0
- package/src/components/media/AsciiImage/index.ts +2 -0
- package/src/components/media/index.ts +2 -0
- package/src/components/text/GradientText/GradientText.css +32 -0
- package/src/components/text/GradientText/GradientText.tsx +27 -0
- package/src/components/text/GradientText/index.ts +2 -0
- package/src/components/text/Marquee/Marquee.css +91 -0
- package/src/components/text/Marquee/Marquee.tsx +130 -0
- package/src/components/text/Marquee/index.ts +2 -0
- package/src/components/text/ParticleText/ParticleText.css +16 -0
- package/src/components/text/ParticleText/ParticleText.tsx +279 -0
- package/src/components/text/ParticleText/index.ts +2 -0
- package/src/components/text/RotatingText/RotatingText.css +133 -0
- package/src/components/text/RotatingText/RotatingText.tsx +112 -0
- package/src/components/text/RotatingText/index.ts +2 -0
- package/src/components/text/ScrambleText/ScrambleText.css +48 -0
- package/src/components/text/ScrambleText/ScrambleText.tsx +141 -0
- package/src/components/text/ScrambleText/index.ts +2 -0
- package/src/components/text/ScrollMarquee/ScrollMarquee.css +33 -0
- package/src/components/text/ScrollMarquee/ScrollMarquee.tsx +110 -0
- package/src/components/text/ScrollMarquee/index.ts +2 -0
- package/src/components/text/ScrollReveal/ScrollReveal.css +51 -0
- package/src/components/text/ScrollReveal/ScrollReveal.tsx +186 -0
- package/src/components/text/ScrollReveal/index.ts +2 -0
- package/src/components/text/SplitReveal/SplitReveal.css +52 -0
- package/src/components/text/SplitReveal/SplitReveal.tsx +127 -0
- package/src/components/text/SplitReveal/index.ts +2 -0
- package/src/components/text/Typewriter/Typewriter.css +37 -0
- package/src/components/text/Typewriter/Typewriter.tsx +80 -0
- package/src/components/text/Typewriter/index.ts +2 -0
- package/src/components/text/WaveText/WaveText.css +28 -0
- package/src/components/text/WaveText/WaveText.tsx +52 -0
- package/src/components/text/WaveText/index.ts +2 -0
- 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":[]}
|
package/dist/index.d.cts
ADDED
|
@@ -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 };
|