@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
package/dist/core.d.cts
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
|
|
4
|
+
type ColorScheme = 'light' | 'dark';
|
|
5
|
+
/**
|
|
6
|
+
* 跟随页面主题实时切换明暗:主题由页面(<html data-theme> 或 .dark/.light)决定,
|
|
7
|
+
* 组件只做镜像,不读取系统偏好。
|
|
8
|
+
*/
|
|
9
|
+
declare function useColorScheme(): ColorScheme;
|
|
10
|
+
|
|
11
|
+
interface ReducedMotionProviderProps {
|
|
12
|
+
/** true 时子树内的动画只呈现静止状态,false 强制播放 */
|
|
13
|
+
reduced: boolean;
|
|
14
|
+
children: ReactNode;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* 在不改动系统设置的前提下,强制某棵子树播放或静止。
|
|
18
|
+
* 子树内的动画都读取该值,优先级高于系统偏好。
|
|
19
|
+
*/
|
|
20
|
+
declare function ReducedMotionProvider({ reduced, children }: ReducedMotionProviderProps): react.JSX.Element;
|
|
21
|
+
declare function usePrefersReducedMotion(): boolean;
|
|
22
|
+
|
|
23
|
+
interface ShaderFrame {
|
|
24
|
+
gl: WebGLRenderingContext;
|
|
25
|
+
/** 按名称取 uniform 位置(带缓存) */
|
|
26
|
+
uniform: (name: string) => WebGLUniformLocation | null;
|
|
27
|
+
/** 当前使用的设备像素比 */
|
|
28
|
+
dpr: number;
|
|
29
|
+
}
|
|
30
|
+
interface ShaderCanvasOptions {
|
|
31
|
+
/**
|
|
32
|
+
* 全屏片元着色器。每帧自动写入:
|
|
33
|
+
* - uResolution:画布尺寸(设备像素)
|
|
34
|
+
* - uTime:累计动画时间(秒,已乘 speed)
|
|
35
|
+
* - uPointer:平滑后的指针位置(设备像素,原点左上);无指针时沿轨迹缓慢游走
|
|
36
|
+
*/
|
|
37
|
+
fragmentShader: string;
|
|
38
|
+
/** 每次绘制前写入组件自定义的 uniform */
|
|
39
|
+
onDraw?: (frame: ShaderFrame) => void;
|
|
40
|
+
speed?: number;
|
|
41
|
+
interactive?: boolean;
|
|
42
|
+
/** 减弱动态效果时停留的时间点 */
|
|
43
|
+
stillTime?: number;
|
|
44
|
+
/** 内部渲染分辨率上限(设备像素比),默认 2;重着色器可调低以省填充率 */
|
|
45
|
+
maxDpr?: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 把一个全屏片元着色器渲染到 canvas 上:负责尺寸与 DPR、指针跟随、
|
|
49
|
+
* 离屏/后台暂停,以及减弱动态效果时只绘制静止帧。
|
|
50
|
+
*/
|
|
51
|
+
declare function useShaderCanvas(options: ShaderCanvasOptions): react.RefObject<HTMLCanvasElement | null>;
|
|
52
|
+
|
|
53
|
+
type ClassValue = string | number | null | undefined | false | ClassValue[];
|
|
54
|
+
declare function cn(...values: ClassValue[]): string;
|
|
55
|
+
|
|
56
|
+
type LinearRgb = [number, number, number];
|
|
57
|
+
/** hex(#rgb / #rrggbb)转线性空间 RGB,供着色器在线性空间计算光照 */
|
|
58
|
+
declare function hexToLinearRgb(hex: string): LinearRgb;
|
|
59
|
+
|
|
60
|
+
type SplitTextBy = 'char' | 'word';
|
|
61
|
+
interface SplitTextUnit {
|
|
62
|
+
char: string;
|
|
63
|
+
index: number;
|
|
64
|
+
}
|
|
65
|
+
type SplitTextSegment = {
|
|
66
|
+
kind: 'space';
|
|
67
|
+
key: string;
|
|
68
|
+
value: string;
|
|
69
|
+
} | {
|
|
70
|
+
kind: 'word';
|
|
71
|
+
key: string;
|
|
72
|
+
units: SplitTextUnit[];
|
|
73
|
+
};
|
|
74
|
+
/** 按空白切分文本,保留空白片段,并为每个动画单元分配全局序号 */
|
|
75
|
+
declare const splitTextUnits: (text: string, by: SplitTextBy) => SplitTextSegment[];
|
|
76
|
+
|
|
77
|
+
export { type ClassValue, type ColorScheme, type LinearRgb, ReducedMotionProvider, type ReducedMotionProviderProps, type ShaderCanvasOptions, type ShaderFrame, type SplitTextBy, type SplitTextSegment, type SplitTextUnit, cn, hexToLinearRgb, splitTextUnits, useColorScheme, usePrefersReducedMotion, useShaderCanvas };
|
package/dist/core.d.ts
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
|
|
4
|
+
type ColorScheme = 'light' | 'dark';
|
|
5
|
+
/**
|
|
6
|
+
* 跟随页面主题实时切换明暗:主题由页面(<html data-theme> 或 .dark/.light)决定,
|
|
7
|
+
* 组件只做镜像,不读取系统偏好。
|
|
8
|
+
*/
|
|
9
|
+
declare function useColorScheme(): ColorScheme;
|
|
10
|
+
|
|
11
|
+
interface ReducedMotionProviderProps {
|
|
12
|
+
/** true 时子树内的动画只呈现静止状态,false 强制播放 */
|
|
13
|
+
reduced: boolean;
|
|
14
|
+
children: ReactNode;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* 在不改动系统设置的前提下,强制某棵子树播放或静止。
|
|
18
|
+
* 子树内的动画都读取该值,优先级高于系统偏好。
|
|
19
|
+
*/
|
|
20
|
+
declare function ReducedMotionProvider({ reduced, children }: ReducedMotionProviderProps): react.JSX.Element;
|
|
21
|
+
declare function usePrefersReducedMotion(): boolean;
|
|
22
|
+
|
|
23
|
+
interface ShaderFrame {
|
|
24
|
+
gl: WebGLRenderingContext;
|
|
25
|
+
/** 按名称取 uniform 位置(带缓存) */
|
|
26
|
+
uniform: (name: string) => WebGLUniformLocation | null;
|
|
27
|
+
/** 当前使用的设备像素比 */
|
|
28
|
+
dpr: number;
|
|
29
|
+
}
|
|
30
|
+
interface ShaderCanvasOptions {
|
|
31
|
+
/**
|
|
32
|
+
* 全屏片元着色器。每帧自动写入:
|
|
33
|
+
* - uResolution:画布尺寸(设备像素)
|
|
34
|
+
* - uTime:累计动画时间(秒,已乘 speed)
|
|
35
|
+
* - uPointer:平滑后的指针位置(设备像素,原点左上);无指针时沿轨迹缓慢游走
|
|
36
|
+
*/
|
|
37
|
+
fragmentShader: string;
|
|
38
|
+
/** 每次绘制前写入组件自定义的 uniform */
|
|
39
|
+
onDraw?: (frame: ShaderFrame) => void;
|
|
40
|
+
speed?: number;
|
|
41
|
+
interactive?: boolean;
|
|
42
|
+
/** 减弱动态效果时停留的时间点 */
|
|
43
|
+
stillTime?: number;
|
|
44
|
+
/** 内部渲染分辨率上限(设备像素比),默认 2;重着色器可调低以省填充率 */
|
|
45
|
+
maxDpr?: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 把一个全屏片元着色器渲染到 canvas 上:负责尺寸与 DPR、指针跟随、
|
|
49
|
+
* 离屏/后台暂停,以及减弱动态效果时只绘制静止帧。
|
|
50
|
+
*/
|
|
51
|
+
declare function useShaderCanvas(options: ShaderCanvasOptions): react.RefObject<HTMLCanvasElement | null>;
|
|
52
|
+
|
|
53
|
+
type ClassValue = string | number | null | undefined | false | ClassValue[];
|
|
54
|
+
declare function cn(...values: ClassValue[]): string;
|
|
55
|
+
|
|
56
|
+
type LinearRgb = [number, number, number];
|
|
57
|
+
/** hex(#rgb / #rrggbb)转线性空间 RGB,供着色器在线性空间计算光照 */
|
|
58
|
+
declare function hexToLinearRgb(hex: string): LinearRgb;
|
|
59
|
+
|
|
60
|
+
type SplitTextBy = 'char' | 'word';
|
|
61
|
+
interface SplitTextUnit {
|
|
62
|
+
char: string;
|
|
63
|
+
index: number;
|
|
64
|
+
}
|
|
65
|
+
type SplitTextSegment = {
|
|
66
|
+
kind: 'space';
|
|
67
|
+
key: string;
|
|
68
|
+
value: string;
|
|
69
|
+
} | {
|
|
70
|
+
kind: 'word';
|
|
71
|
+
key: string;
|
|
72
|
+
units: SplitTextUnit[];
|
|
73
|
+
};
|
|
74
|
+
/** 按空白切分文本,保留空白片段,并为每个动画单元分配全局序号 */
|
|
75
|
+
declare const splitTextUnits: (text: string, by: SplitTextBy) => SplitTextSegment[];
|
|
76
|
+
|
|
77
|
+
export { type ClassValue, type ColorScheme, type LinearRgb, ReducedMotionProvider, type ReducedMotionProviderProps, type ShaderCanvasOptions, type ShaderFrame, type SplitTextBy, type SplitTextSegment, type SplitTextUnit, cn, hexToLinearRgb, splitTextUnits, useColorScheme, usePrefersReducedMotion, useShaderCanvas };
|
package/dist/core.js
ADDED
package/dist/core.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"core.js"}
|