@hua-labs/motion-core 2.1.0-alpha.1 → 2.1.0-alpha.10
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/README.md +48 -232
- package/dist/index.d.mts +1091 -0
- package/dist/index.d.ts +1091 -33
- package/dist/index.js +4241 -62
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4187 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +15 -8
- package/dist/.tsbuildinfo +0 -1
- package/dist/core/MotionEngine.d.ts +0 -111
- package/dist/core/MotionEngine.d.ts.map +0 -1
- package/dist/core/MotionEngine.js +0 -206
- package/dist/core/MotionEngine.js.map +0 -1
- package/dist/core/PerformanceOptimizer.d.ts +0 -124
- package/dist/core/PerformanceOptimizer.d.ts.map +0 -1
- package/dist/core/PerformanceOptimizer.js +0 -334
- package/dist/core/PerformanceOptimizer.js.map +0 -1
- package/dist/core/TransitionEffects.d.ts +0 -76
- package/dist/core/TransitionEffects.d.ts.map +0 -1
- package/dist/core/TransitionEffects.js +0 -321
- package/dist/core/TransitionEffects.js.map +0 -1
- package/dist/hooks/useBounceIn.d.ts +0 -12
- package/dist/hooks/useBounceIn.d.ts.map +0 -1
- package/dist/hooks/useBounceIn.js +0 -75
- package/dist/hooks/useBounceIn.js.map +0 -1
- package/dist/hooks/useButtonEffect.d.ts +0 -48
- package/dist/hooks/useButtonEffect.d.ts.map +0 -1
- package/dist/hooks/useButtonEffect.js +0 -311
- package/dist/hooks/useButtonEffect.js.map +0 -1
- package/dist/hooks/useCardList.d.ts +0 -23
- package/dist/hooks/useCardList.d.ts.map +0 -1
- package/dist/hooks/useCardList.js +0 -119
- package/dist/hooks/useCardList.js.map +0 -1
- package/dist/hooks/useClickToggle.d.ts +0 -30
- package/dist/hooks/useClickToggle.d.ts.map +0 -1
- package/dist/hooks/useClickToggle.js +0 -137
- package/dist/hooks/useClickToggle.js.map +0 -1
- package/dist/hooks/useFadeIn.d.ts +0 -3
- package/dist/hooks/useFadeIn.d.ts.map +0 -1
- package/dist/hooks/useFadeIn.js +0 -107
- package/dist/hooks/useFadeIn.js.map +0 -1
- package/dist/hooks/useFocusToggle.d.ts +0 -30
- package/dist/hooks/useFocusToggle.d.ts.map +0 -1
- package/dist/hooks/useFocusToggle.js +0 -137
- package/dist/hooks/useFocusToggle.js.map +0 -1
- package/dist/hooks/useGesture.d.ts +0 -45
- package/dist/hooks/useGesture.d.ts.map +0 -1
- package/dist/hooks/useGesture.js +0 -274
- package/dist/hooks/useGesture.js.map +0 -1
- package/dist/hooks/useGestureMotion.d.ts +0 -26
- package/dist/hooks/useGestureMotion.d.ts.map +0 -1
- package/dist/hooks/useGestureMotion.js +0 -167
- package/dist/hooks/useGestureMotion.js.map +0 -1
- package/dist/hooks/useGradient.d.ts +0 -14
- package/dist/hooks/useGradient.d.ts.map +0 -1
- package/dist/hooks/useGradient.js +0 -87
- package/dist/hooks/useGradient.js.map +0 -1
- package/dist/hooks/useHoverMotion.d.ts +0 -5
- package/dist/hooks/useHoverMotion.d.ts.map +0 -1
- package/dist/hooks/useHoverMotion.js +0 -48
- package/dist/hooks/useHoverMotion.js.map +0 -1
- package/dist/hooks/useLoadingSpinner.d.ts +0 -30
- package/dist/hooks/useLoadingSpinner.d.ts.map +0 -1
- package/dist/hooks/useLoadingSpinner.js +0 -283
- package/dist/hooks/useLoadingSpinner.js.map +0 -1
- package/dist/hooks/useMotion.d.ts +0 -103
- package/dist/hooks/useMotion.d.ts.map +0 -1
- package/dist/hooks/useMotion.js +0 -266
- package/dist/hooks/useMotion.js.map +0 -1
- package/dist/hooks/useMotionState.d.ts +0 -29
- package/dist/hooks/useMotionState.d.ts.map +0 -1
- package/dist/hooks/useMotionState.js +0 -202
- package/dist/hooks/useMotionState.js.map +0 -1
- package/dist/hooks/useNavigation.d.ts +0 -40
- package/dist/hooks/useNavigation.d.ts.map +0 -1
- package/dist/hooks/useNavigation.js +0 -212
- package/dist/hooks/useNavigation.js.map +0 -1
- package/dist/hooks/usePageMotions.d.ts +0 -17
- package/dist/hooks/usePageMotions.d.ts.map +0 -1
- package/dist/hooks/usePageMotions.js +0 -352
- package/dist/hooks/usePageMotions.js.map +0 -1
- package/dist/hooks/usePulse.d.ts +0 -10
- package/dist/hooks/usePulse.d.ts.map +0 -1
- package/dist/hooks/usePulse.js +0 -108
- package/dist/hooks/usePulse.js.map +0 -1
- package/dist/hooks/useRepeat.d.ts +0 -21
- package/dist/hooks/useRepeat.d.ts.map +0 -1
- package/dist/hooks/useRepeat.js +0 -65
- package/dist/hooks/useRepeat.js.map +0 -1
- package/dist/hooks/useScaleIn.d.ts +0 -13
- package/dist/hooks/useScaleIn.d.ts.map +0 -1
- package/dist/hooks/useScaleIn.js +0 -72
- package/dist/hooks/useScaleIn.js.map +0 -1
- package/dist/hooks/useScrollProgress.d.ts +0 -11
- package/dist/hooks/useScrollProgress.d.ts.map +0 -1
- package/dist/hooks/useScrollProgress.js +0 -37
- package/dist/hooks/useScrollProgress.js.map +0 -1
- package/dist/hooks/useScrollReveal.d.ts +0 -14
- package/dist/hooks/useScrollReveal.d.ts.map +0 -1
- package/dist/hooks/useScrollReveal.js +0 -116
- package/dist/hooks/useScrollReveal.js.map +0 -1
- package/dist/hooks/useScrollToggle.d.ts +0 -17
- package/dist/hooks/useScrollToggle.d.ts.map +0 -1
- package/dist/hooks/useScrollToggle.js +0 -119
- package/dist/hooks/useScrollToggle.js.map +0 -1
- package/dist/hooks/useSimplePageMotion.d.ts +0 -29
- package/dist/hooks/useSimplePageMotion.d.ts.map +0 -1
- package/dist/hooks/useSimplePageMotion.js +0 -145
- package/dist/hooks/useSimplePageMotion.js.map +0 -1
- package/dist/hooks/useSkeleton.d.ts +0 -21
- package/dist/hooks/useSkeleton.d.ts.map +0 -1
- package/dist/hooks/useSkeleton.js +0 -139
- package/dist/hooks/useSkeleton.js.map +0 -1
- package/dist/hooks/useSlideDown.d.ts +0 -25
- package/dist/hooks/useSlideDown.d.ts.map +0 -1
- package/dist/hooks/useSlideDown.js +0 -263
- package/dist/hooks/useSlideDown.js.map +0 -1
- package/dist/hooks/useSlideLeft.d.ts +0 -13
- package/dist/hooks/useSlideLeft.d.ts.map +0 -1
- package/dist/hooks/useSlideLeft.js +0 -72
- package/dist/hooks/useSlideLeft.js.map +0 -1
- package/dist/hooks/useSlideRight.d.ts +0 -13
- package/dist/hooks/useSlideRight.d.ts.map +0 -1
- package/dist/hooks/useSlideRight.js +0 -72
- package/dist/hooks/useSlideRight.js.map +0 -1
- package/dist/hooks/useSlideUp.d.ts +0 -3
- package/dist/hooks/useSlideUp.d.ts.map +0 -1
- package/dist/hooks/useSlideUp.js +0 -122
- package/dist/hooks/useSlideUp.js.map +0 -1
- package/dist/hooks/useSmartMotion.d.ts +0 -31
- package/dist/hooks/useSmartMotion.d.ts.map +0 -1
- package/dist/hooks/useSmartMotion.js +0 -257
- package/dist/hooks/useSmartMotion.js.map +0 -1
- package/dist/hooks/useSpringMotion.d.ts +0 -22
- package/dist/hooks/useSpringMotion.d.ts.map +0 -1
- package/dist/hooks/useSpringMotion.js +0 -133
- package/dist/hooks/useSpringMotion.js.map +0 -1
- package/dist/hooks/useToggleMotion.d.ts +0 -16
- package/dist/hooks/useToggleMotion.d.ts.map +0 -1
- package/dist/hooks/useToggleMotion.js +0 -53
- package/dist/hooks/useToggleMotion.js.map +0 -1
- package/dist/hooks/useUnifiedMotion.d.ts +0 -51
- package/dist/hooks/useUnifiedMotion.d.ts.map +0 -1
- package/dist/hooks/useUnifiedMotion.js +0 -106
- package/dist/hooks/useUnifiedMotion.js.map +0 -1
- package/dist/hooks/useVisibilityToggle.d.ts +0 -15
- package/dist/hooks/useVisibilityToggle.d.ts.map +0 -1
- package/dist/hooks/useVisibilityToggle.js +0 -106
- package/dist/hooks/useVisibilityToggle.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/managers/MotionStateManager.d.ts +0 -63
- package/dist/managers/MotionStateManager.d.ts.map +0 -1
- package/dist/managers/MotionStateManager.js +0 -159
- package/dist/managers/MotionStateManager.js.map +0 -1
- package/dist/presets/index.d.ts +0 -16
- package/dist/presets/index.d.ts.map +0 -1
- package/dist/presets/index.js +0 -120
- package/dist/presets/index.js.map +0 -1
- package/dist/types/common.d.ts +0 -155
- package/dist/types/common.d.ts.map +0 -1
- package/dist/types/common.js +0 -5
- package/dist/types/common.js.map +0 -1
- package/dist/types/index.d.ts +0 -77
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -5
- package/dist/types/index.js.map +0 -1
- package/dist/utils/easing.d.ts +0 -98
- package/dist/utils/easing.d.ts.map +0 -1
- package/dist/utils/easing.js +0 -233
- package/dist/utils/easing.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,276 +1,92 @@
|
|
|
1
1
|
# @hua-labs/motion-core
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
프로덕션
|
|
3
|
+
Production-ready React animation hooks — zero dependencies, SSR-ready.
|
|
4
|
+
프로덕션 레디 React 애니메이션 훅 — 의존성 없음, SSR 지원.
|
|
5
5
|
|
|
6
6
|
[](https://www.npmjs.com/package/@hua-labs/motion-core)
|
|
7
|
+
[](https://www.npmjs.com/package/@hua-labs/motion-core)
|
|
7
8
|
[](https://github.com/HUA-Labs/HUA-Labs-public/blob/main/LICENSE)
|
|
9
|
+
[](https://www.typescriptlang.org/)
|
|
10
|
+
[](https://reactjs.org/)
|
|
8
11
|
|
|
9
|
-
>
|
|
12
|
+
> **Alpha**: APIs may change before stable release. | **알파**: 안정 릴리스 전 API가 변경될 수 있습니다.
|
|
10
13
|
|
|
11
|
-
|
|
14
|
+
## Overview | 개요
|
|
12
15
|
|
|
13
|
-
|
|
16
|
+
A collection of 25+ React animation hooks built on a ref-based engine. Direct DOM manipulation for consistent performance with zero external dependencies. All hooks are TypeScript-native and SSR-compatible.
|
|
14
17
|
|
|
15
|
-
|
|
18
|
+
ref 기반 엔진으로 구축된 25개 이상의 React 애니메이션 훅 컬렉션입니다. 외부 의존성 없이 직접 DOM 조작으로 일관된 성능을 제공합니다. 모든 훅은 TypeScript 네이티브이며 SSR 호환됩니다.
|
|
16
19
|
|
|
17
|
-
|
|
20
|
+
## Features
|
|
18
21
|
|
|
19
|
-
|
|
22
|
+
- **25+ animation hooks** — Fade, slide, scale, scroll, interactions, gestures
|
|
23
|
+
- **Zero dependencies** — Pure JavaScript motion engine
|
|
24
|
+
- **Ref-based** — Direct DOM manipulation for consistent performance
|
|
25
|
+
- **SSR compatible** — Works with Next.js, Remix, and SSR frameworks
|
|
26
|
+
- **Tested** — 517 test cases
|
|
20
27
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
### Key Features
|
|
24
|
-
|
|
25
|
-
- **30+ Optimized Hooks** - Fade, slide, scale, scroll, parallax, and gesture animations
|
|
26
|
-
- **Performance First** - Direct ref manipulation for consistent 60fps
|
|
27
|
-
- **Zero Dependencies** - Pure JavaScript motion engine (~15KB gzipped)
|
|
28
|
-
- **TypeScript Native** - Complete type safety with inferred types
|
|
29
|
-
- **SSR Compatible** - Works with Next.js, Remix, and all SSR frameworks
|
|
30
|
-
- **Battle Tested** - 74%+ coverage with 517 test cases
|
|
31
|
-
|
|
32
|
-
### Installation
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
npm install @hua-labs/motion-core
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
yarn add @hua-labs/motion-core
|
|
40
|
-
```
|
|
28
|
+
## Installation | 설치
|
|
41
29
|
|
|
42
30
|
```bash
|
|
43
31
|
pnpm add @hua-labs/motion-core
|
|
44
32
|
```
|
|
45
33
|
|
|
46
|
-
|
|
34
|
+
Peer dependencies: `react >= 19.0.0`, `react-dom >= 19.0.0`
|
|
35
|
+
|
|
36
|
+
## Quick Start | 빠른 시작
|
|
47
37
|
|
|
48
38
|
```tsx
|
|
49
|
-
import React from 'react';
|
|
50
39
|
import { useFadeIn, useSlideUp } from '@hua-labs/motion-core';
|
|
51
40
|
|
|
52
|
-
function
|
|
41
|
+
function Hero() {
|
|
53
42
|
const fadeIn = useFadeIn({ duration: 800 });
|
|
54
43
|
const slideUp = useSlideUp({ delay: 200 });
|
|
55
44
|
|
|
56
45
|
return (
|
|
57
46
|
<div>
|
|
58
|
-
<h1 ref={fadeIn.ref} style={fadeIn.style}>
|
|
59
|
-
|
|
60
|
-
</h1>
|
|
61
|
-
<p ref={slideUp.ref} style={slideUp.style}>
|
|
62
|
-
Beautiful animations made simple
|
|
63
|
-
</p>
|
|
47
|
+
<h1 ref={fadeIn.ref} style={fadeIn.style}>Welcome</h1>
|
|
48
|
+
<p ref={slideUp.ref} style={slideUp.style}>Animated content</p>
|
|
64
49
|
</div>
|
|
65
50
|
);
|
|
66
51
|
}
|
|
67
52
|
```
|
|
68
53
|
|
|
69
|
-
##
|
|
70
|
-
|
|
71
|
-
### Basic Motion Hooks (9)
|
|
72
|
-
- `useFadeIn` - Fade in animation
|
|
73
|
-
- `useSlideUp` - Slide up animation
|
|
74
|
-
- `useSlideLeft` - Slide left animation
|
|
75
|
-
- `useSlideRight` - Slide right animation
|
|
76
|
-
- `useSlideDown` - Advanced slide down with bounce/overshoot
|
|
77
|
-
- `useScaleIn` - Scale in animation
|
|
78
|
-
- `useBounceIn` - Bounce in animation
|
|
79
|
-
- `usePulse` - Pulse animation
|
|
80
|
-
- `useSkeleton` - Skeleton loading animation
|
|
81
|
-
|
|
82
|
-
### Interaction Hooks (4)
|
|
83
|
-
- `useHoverMotion` - Hover-triggered animations
|
|
84
|
-
- `useClickToggle` - Click-triggered animations
|
|
85
|
-
- `useFocusToggle` - Focus-triggered animations
|
|
86
|
-
- `useVisibilityToggle` - Visibility-controlled animations
|
|
87
|
-
|
|
88
|
-
### Scroll Hooks (3)
|
|
89
|
-
- `useScrollReveal` - Scroll-triggered reveal animations
|
|
90
|
-
- `useScrollToggle` - Scroll-based toggle animations
|
|
91
|
-
- `useScrollProgress` - Scroll progress tracking
|
|
92
|
-
|
|
93
|
-
### Utility Hooks (2)
|
|
94
|
-
- `useMotionState` - Motion state management
|
|
95
|
-
- `useRepeat` - Repeating animations
|
|
96
|
-
|
|
97
|
-
### Advanced Hooks (7)
|
|
98
|
-
- `useMotion` - Core motion engine
|
|
99
|
-
- `useSpringMotion` - Spring physics animations
|
|
100
|
-
- `useGradient` - Gradient animations
|
|
101
|
-
- `useNavigation` - Navigation animations
|
|
102
|
-
- `useButtonEffect` - Button interaction effects
|
|
103
|
-
- `useCardList` - Card list animations
|
|
104
|
-
- `useLoadingSpinner` - Loading spinner animations
|
|
105
|
-
|
|
106
|
-
## API Reference
|
|
107
|
-
|
|
108
|
-
All hooks return a consistent interface:
|
|
109
|
-
|
|
110
|
-
```tsx
|
|
111
|
-
interface BaseMotionReturn<T = HTMLElement> {
|
|
112
|
-
ref: RefObject<T>;
|
|
113
|
-
style: CSSProperties;
|
|
114
|
-
isVisible: boolean;
|
|
115
|
-
isAnimating: boolean;
|
|
116
|
-
progress: number;
|
|
117
|
-
start: () => void;
|
|
118
|
-
stop: () => void;
|
|
119
|
-
reset: () => void;
|
|
120
|
-
pause: () => void;
|
|
121
|
-
resume: () => void;
|
|
122
|
-
}
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### Common Options
|
|
54
|
+
## API Overview | API 개요
|
|
126
55
|
|
|
127
|
-
|
|
128
|
-
interface BaseMotionOptions {
|
|
129
|
-
duration?: number; // Animation duration in ms (default: 1000)
|
|
130
|
-
delay?: number; // Animation delay in ms (default: 0)
|
|
131
|
-
easing?: string; // CSS easing function (default: 'ease-out')
|
|
132
|
-
autoStart?: boolean; // Auto-start animation (default: true)
|
|
133
|
-
onStart?: () => void; // Start callback
|
|
134
|
-
onComplete?: () => void; // Complete callback
|
|
135
|
-
onStop?: () => void; // Stop callback
|
|
136
|
-
onReset?: () => void; // Reset callback
|
|
137
|
-
}
|
|
138
|
-
```
|
|
56
|
+
All hooks return a consistent `BaseMotionReturn` interface:
|
|
139
57
|
|
|
140
|
-
|
|
58
|
+
| Property | Type | Description |
|
|
59
|
+
|----------|------|-------------|
|
|
60
|
+
| `ref` | `RefObject<T>` | Attach to target element |
|
|
61
|
+
| `style` | `CSSProperties` | Apply to element |
|
|
62
|
+
| `isVisible` | `boolean` | Visibility state |
|
|
63
|
+
| `isAnimating` | `boolean` | Animation in progress |
|
|
64
|
+
| `start/stop/reset/pause/resume` | `() => void` | Playback controls |
|
|
141
65
|
|
|
142
|
-
|
|
66
|
+
**Available hooks by category:**
|
|
143
67
|
|
|
144
|
-
|
|
145
|
-
|
|
68
|
+
| Category | Hooks |
|
|
69
|
+
|----------|-------|
|
|
70
|
+
| Basic | `useFadeIn`, `useSlideUp`, `useSlideLeft`, `useSlideRight`, `useScaleIn`, `useBounceIn`, `usePulse`, `useSpringMotion`, `useGradient` |
|
|
71
|
+
| Interaction | `useHoverMotion`, `useClickToggle`, `useFocusToggle`, `useToggleMotion` |
|
|
72
|
+
| Scroll | `useScrollReveal`, `useScrollProgress` |
|
|
73
|
+
| List | `useStaggerMotion`, `useCardList`, `useSkeleton` |
|
|
74
|
+
| Utility | `useMotionState`, `useRepeat`, `useSmartMotion`, `useUnifiedMotion`, `useSimplePageMotion`, `usePageMotions`, `useGesture`, `useGestureMotion` |
|
|
146
75
|
|
|
147
|
-
|
|
148
|
-
const { ref, style, start, stop } = useFadeIn({
|
|
149
|
-
duration: 1000,
|
|
150
|
-
autoStart: false
|
|
151
|
-
});
|
|
76
|
+
## Documentation | 문서
|
|
152
77
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
<div ref={ref} style={style}>
|
|
156
|
-
This will fade in
|
|
157
|
-
</div>
|
|
158
|
-
<button onClick={start}>Start</button>
|
|
159
|
-
<button onClick={stop}>Stop</button>
|
|
160
|
-
</div>
|
|
161
|
-
);
|
|
162
|
-
}
|
|
163
|
-
```
|
|
78
|
+
- [Detailed Guide](./DETAILED_GUIDE.md)
|
|
79
|
+
- [📚 Documentation Site | 문서 사이트](https://docs.hua-labs.com)
|
|
164
80
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
```tsx
|
|
168
|
-
import { useScrollReveal } from '@hua-labs/motion-core';
|
|
169
|
-
|
|
170
|
-
function ScrollRevealExample() {
|
|
171
|
-
const { ref, style } = useScrollReveal({
|
|
172
|
-
threshold: 0.3,
|
|
173
|
-
triggerOnce: true
|
|
174
|
-
});
|
|
175
|
-
|
|
176
|
-
return (
|
|
177
|
-
<div ref={ref} style={style}>
|
|
178
|
-
This appears when scrolled into view
|
|
179
|
-
</div>
|
|
180
|
-
);
|
|
181
|
-
}
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
### Hover Interaction
|
|
185
|
-
|
|
186
|
-
```tsx
|
|
187
|
-
import { useHoverMotion } from '@hua-labs/motion-core';
|
|
188
|
-
|
|
189
|
-
function HoverExample() {
|
|
190
|
-
const { ref, style, hover, leave } = useHoverMotion({
|
|
191
|
-
scale: 1.1,
|
|
192
|
-
duration: 300
|
|
193
|
-
});
|
|
194
|
-
|
|
195
|
-
return (
|
|
196
|
-
<div
|
|
197
|
-
ref={ref}
|
|
198
|
-
style={style}
|
|
199
|
-
onMouseEnter={hover}
|
|
200
|
-
onMouseLeave={leave}
|
|
201
|
-
>
|
|
202
|
-
Hover me!
|
|
203
|
-
</div>
|
|
204
|
-
);
|
|
205
|
-
}
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
## TypeScript Support
|
|
209
|
-
|
|
210
|
-
HUA Motion Core is built with TypeScript and provides comprehensive type definitions:
|
|
211
|
-
|
|
212
|
-
```tsx
|
|
213
|
-
import { useFadeIn, BaseMotionReturn, FadeInOptions } from '@hua-labs/motion-core';
|
|
214
|
-
|
|
215
|
-
// Full type safety
|
|
216
|
-
const fadeIn: BaseMotionReturn<HTMLDivElement> = useFadeIn({
|
|
217
|
-
duration: 1000,
|
|
218
|
-
opacity: { from: 0, to: 1 }
|
|
219
|
-
} as FadeInOptions);
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
## Related Packages
|
|
223
|
-
|
|
224
|
-
- **[@hua-labs/motion-advanced](../../hua-motion-advanced)** - Advanced motion hooks and orchestration
|
|
225
|
-
- **[@hua-labs/motion](../../hua-motion)** - Unified package (Core + Advanced re-export)
|
|
226
|
-
|
|
227
|
-
## Roadmap
|
|
228
|
-
|
|
229
|
-
- **Motion Core** - Essential hooks ✅ (Current)
|
|
230
|
-
- **Motion Advanced** - Complex animations ✅ (Available)
|
|
231
|
-
- **Motion Enterprise** - Team solutions (Planned)
|
|
232
|
-
|
|
233
|
-
### Documentation
|
|
234
|
-
|
|
235
|
-
- [Detailed Guide](./DETAILED_GUIDE.md) - Complete API reference and advanced usage
|
|
236
|
-
- [TypeScript Definitions](./dist/index.d.ts) - Type definitions
|
|
237
|
-
|
|
238
|
-
### Browser Support
|
|
239
|
-
|
|
240
|
-
- Chrome 60+
|
|
241
|
-
- Firefox 60+
|
|
242
|
-
- Safari 12+
|
|
243
|
-
- Edge 79+
|
|
244
|
-
|
|
245
|
-
---
|
|
246
|
-
|
|
247
|
-
## Korean
|
|
248
|
-
|
|
249
|
-
### 개요
|
|
250
|
-
|
|
251
|
-
React를 위한 프로덕션 준비 완료 모션 훅 30개 이상의 컬렉션입니다. 외부 의존성 없이 부드러운 60fps 애니메이션을 제공하는 ref 기반 엔진으로 구축되었습니다. 모든 훅은 TypeScript 네이티브이며 SSR과 호환됩니다.
|
|
252
|
-
|
|
253
|
-
### 주요 기능
|
|
254
|
-
|
|
255
|
-
- **30개 이상의 최적화된 훅** - 페이드, 슬라이드, 스케일, 스크롤, 패럴랙스, 제스처 애니메이션
|
|
256
|
-
- **성능 우선** - 일관된 60fps를 위한 직접 ref 조작
|
|
257
|
-
- **의존성 없음** - 순수 JavaScript 모션 엔진 (~15KB gzipped)
|
|
258
|
-
- **TypeScript 네이티브** - 타입 추론이 포함된 완전한 타입 안전성
|
|
259
|
-
- **SSR 호환** - Next.js, Remix 및 모든 SSR 프레임워크와 작동
|
|
260
|
-
- **검증 완료** - 517개 테스트 케이스로 74% 이상 커버리지
|
|
261
|
-
|
|
262
|
-
### 설치
|
|
263
|
-
|
|
264
|
-
```bash
|
|
265
|
-
npm install @hua-labs/motion-core
|
|
266
|
-
```
|
|
81
|
+
## Related Packages | 관련 패키지
|
|
267
82
|
|
|
268
|
-
|
|
83
|
+
- [`@hua-labs/pro`](https://www.npmjs.com/package/@hua-labs/pro) — Advanced motion hooks (orchestration, auto-animations)
|
|
84
|
+
- [`@hua-labs/hua-ux`](https://www.npmjs.com/package/@hua-labs/hua-ux) — UX framework (includes motion)
|
|
269
85
|
|
|
270
|
-
|
|
86
|
+
## Requirements | 요구사항
|
|
271
87
|
|
|
272
|
-
|
|
88
|
+
React >= 19.0.0 · React DOM >= 19.0.0 · TypeScript >= 5.9
|
|
273
89
|
|
|
274
90
|
## License
|
|
275
91
|
|
|
276
|
-
MIT
|
|
92
|
+
MIT — [HUA Labs](https://github.com/HUA-Labs/HUA-Labs-public)
|