UNPKG

@fewings/fancy-react

Version:
121 lines (89 loc) 4.18 kB
<p align="center"> <a href="https://github.com/livemehere/fewings"> <img src="https://github.com/livemehere/fewings/blob/master/img/logo.png?raw=true" alt="logo" width="200" /> </a> <h1 align="center">@fewings/fancy-react</h1> <p align="center"> 화려한 스타일과 효과를 갖춘 React 컴포넌트 모음 <br/> 애니메이션과 시각적 효과를 활용한 인터렉션 컴포넌트를 제공합니다 </p> <p align="center"> <a href="https://livemehere.github.io/fewings/?path=/docs/fancy-react-animatenumber--docs">DEMO</a> &middot; <a href="https://www.npmjs.com/package/@fewings/fancy-react">npm</a> &middot; <a href="https://github.com/livemehere/fewings/blob/master/packages/fancy-react/README.md">English</a> </p> </p> ## 소개 `@fewings/fancy-react`는 애니메이션과 인터랙션이 강화된 React 컴포넌트 라이브러리입니다. Motion 라이브러리를 기반으로 부드럽고 시각적으로 흥미로운 UI 요소를 제공합니다. 현재 제공 중인 컴포넌트: - `AnimateNumber`: 숫자가 변경될 때 애니메이션을 적용하여 부드럽게 전환됩니다. ## 설치 ```bash # npm npm install @fewings/fancy-react motion # yarn yarn add @fewings/fancy-react motion # pnpm pnpm add @fewings/fancy-react motion ``` > ⚠️ 이 패키지는 `motion` 라이브러리에 의존성이 있습니다. ## AnimateNumber 사용하기 AnimateNumber 컴포넌트는 숫자 값이 변경될 때 부드러운 애니메이션 효과를 적용합니다. 숫자가 증가하거나 감소할 때 사용자 경험을 향상시킵니다. ### 기본 사용법 ```tsx import { AnimateNumber } from "@fewings/fancy-react/AnimateNumber"; function Counter() { const [count, setCount] = useState(0); return ( <div> <AnimateNumber value={count} /> <button onClick={() => setCount(count + 1)}>증가</button> <button onClick={() => setCount(count - 1)}>감소</button> </div> ); } ``` ### 애니메이션 속도 조정 ```tsx <AnimateNumber value={count} countDur={0.8} // 숫자 카운팅 애니메이션 지속 시간() sizeDur={0.5} // 너비 변경 애니메이션 지속 시간() /> ``` ### 숫자 형식 지정 원하는 형식으로 숫자를 표시할 수 있습니다: ```tsx <AnimateNumber value={price} format={(value) => `₩${value.toLocaleString()}`} /> ``` ### 스타일 적용 일반 div 요소처럼 스타일을 지정할 수 있습니다: ```tsx <AnimateNumber value={score} style={{ fontSize: "2rem", fontWeight: "bold", color: "#2563eb", }} /> ``` ## AnimateNumber 속성 | 속성 | 타입 | 기본값 | 설명 | | ---------- | --------------------------- | ----------------- | ------------------------------------ | | `value` | `number` | 필수 | 표시할 숫자 값 | | `countDur` | `number` | `0.5` | 숫자 카운팅 애니메이션 지속 시간(초) | | `sizeDur` | `number` | `0.3` | 너비 변경 애니메이션 지속 시간(초) | | `format` | `(value: number) => string` | `(v) => \`${v}\`` | 숫자 형식을 지정하는 함수 | 추가로 컴포넌트는 `div` 요소의 모든 표준 속성을 지원합니다. ## 원리 AnimateNumber 컴포넌트는 내부적으로 다음과 같은 방식으로 작동합니다: 1. 숫자가 변경되면 이전 값에서 새 값으로의 전환을 감지합니다. 2. 숫자의 각 자릿수를 개별적으로 애니메이션화합니다. 3. 숫자가 증가하거나 감소할 때 방향에 따라 적절한 애니메이션 효과를 적용합니다. 4. 너비 변경이 필요한 경우 부드러운 크기 조정 애니메이션을 적용합니다. ## Contributing 기여는 언제나 환영합니다! 제안, 버그 신고 또는 기능 요청이 있으시면 [GitHub 저장소](https://github.com/livemehere/fewings)에 이슈를 열거나 풀 리퀘스트를 제출해주세요.