# Animate Number URL: /breeze/components/animate-number Source: https://github.com/daangn/seed-design/blob/dev/docs/content/breeze/components/animate-number.mdx 숫자를 부드럽게 애니메이션하는 유틸리티 컴포넌트 ## Preview ```tsx import AnimateNumber from "seed-design/breeze/animate-number/animate-number"; import { ActionButton } from "seed-design/ui/action-button"; import { HStack } from "@seed-design/react"; import { useState } from "react"; export default function AnimateNumberPreview() { const [value, setValue] = useState(1); return (
setValue(value - 1)}> -1 setValue(value + 1)}> +1
); } ``` ## Installation Dependency: - npm: npm install motion - pnpm: pnpm add motion - yarn: yarn add motion - bun: bun add motion Snippet: - npm: npx @seed-design/cli@latest add breeze:animate-number - pnpm: pnpm dlx @seed-design/cli@latest add breeze:animate-number - yarn: yarn dlx @seed-design/cli@latest add breeze:animate-number - bun: bun x @seed-design/cli@latest add breeze:animate-number ## Configuration animate-number 컴포넌트는 motion의 `m.` 컴포넌트를 사용합니다. lazy loading을 위해 프로젝트에 MotionProvider를 설정해야 합니다. 자세한 내용은 [Motion Lazy Motion 문서](https://motion.dev/docs/react-lazy-motion)를 참고하세요. ```tsx title="MotionProvider.tsx" "use client"; import { LazyMotion } from "motion/react"; import type { ReactNode } from "react"; const loadFeatures = () => import("motion/react").then((res) => res.domAnimation); export function MotionProvider({ children }: { children: ReactNode }) { return {children}; } ``` ```tsx title="index.tsx" import { createRoot } from 'react-dom/client' import App from './App.tsx' import { MotionProvider } from './MotionProvider.tsx' createRoot(document.getElementById('root')!).render( ) ``` ## Props ## Examples ### Comma ```tsx import AnimateNumber from "seed-design/breeze/animate-number/animate-number"; import { ActionButton } from "seed-design/ui/action-button"; import { useState } from "react"; export default function AnimateNumberComma() { const [value, setValue] = useState(1234); return (
setValue(Math.floor(Math.random() * 99999) + 1)} > 랜덤 숫자 (1-99999)
); } ``` ### Gradient ```tsx import AnimateNumber from "seed-design/breeze/animate-number/animate-number"; import { ActionButton } from "seed-design/ui/action-button"; import { useState } from "react"; export default function AnimateNumberGradient() { const [value, setValue] = useState(999); return (
setValue(Math.floor(Math.random() * 99999) + 1)} > 랜덤 숫자 (1-99999)
); } ``` ### Custom Style ```tsx import AnimateNumber from "seed-design/breeze/animate-number/animate-number"; import { ActionButton } from "seed-design/ui/action-button"; import { HStack } from "@seed-design/react"; import { useState } from "react"; export default function AnimateNumberCustomStyle() { const [value, setValue] = useState(42); return (
setValue(Math.floor(Math.random() * 99999) + 1)} > 랜덤 숫자
); } ```