{"_id":"react-number-easing","_rev":"13-95ba894fb831ea405f20b06dccec1c6d","name":"react-number-easing","dist-tags":{"latest":"1.1.0"},"versions":{"0.0.1":{"name":"react-number-easing","version":"0.0.1","keywords":["react","react-component","component","number","easing"],"author":{"name":"javierbyte"},"license":"ISC","_id":"react-number-easing@0.0.1","maintainers":[{"name":"javierbyte","email":"hola@javierbyte.com"}],"dist":{"shasum":"c19fe4e505066c70026d22abcaf09f0f570ae768","tarball":"https://registry.npmjs.org/react-number-easing/-/react-number-easing-0.0.1.tgz","integrity":"sha512-7Zqw9VO/E447+ij86HghdZcY5LPox9irfp4P8KZieL7Q338FsoIAGEjG/K41ZsWBkYEdJWfyKiQrJalPc83LaA==","signatures":[{"sig":"MEYCIQD1B0QOsg6miWEnEJsN9U5U1VBy47usYC6qZAlcTdwVxgIhANMyTSHfR+rd87EdYL/ASoqfVKDXjM8Yil95ZE1LD8BO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","_shasum":"c19fe4e505066c70026d22abcaf09f0f570ae768","gitHead":"8c7ffea035b30e15c41e562af90b737c0b8513ad","scripts":{"test":"echo \"Error: no test specified\" && exit 1","pages":"git subtree push --prefix gh-pages origin gh-pages","prepublish":"mkdir -p dist && babel src/index.jsx -u -o dist/index.js --stage 1"},"_npmUser":{"name":"javierbyte","email":"hola@javierbyte.com"},"_npmVersion":"2.7.4","description":"React component for fancy transition for numbers.","directories":{},"_nodeVersion":"0.12.2","dependencies":{"eases":"^1.0.6"}},"0.0.2":{"name":"react-number-easing","version":"0.0.2","keywords":["react","react-component","component","number","easing"],"author":{"name":"javierbyte"},"license":"ISC","_id":"react-number-easing@0.0.2","maintainers":[{"name":"javierbyte","email":"hola@javierbyte.com"}],"dist":{"shasum":"158a5feab1bfde58fd0e650e12c4aa74a06b49ce","tarball":"https://registry.npmjs.org/react-number-easing/-/react-number-easing-0.0.2.tgz","integrity":"sha512-5brIFj68gbPQ+3WXVdo2X8jddPMBmD7bYl4mlJMG/yroNC/ytlcbx2khoFXWXnhs14v7/jNGZgz+8GSjFq7vvw==","signatures":[{"sig":"MEUCIQD9RWZBjiaBOZSfZ8iS7/6DUBE3df38ViBEtpV+NvhBpwIgRbN7iejptWqXgqV0LVjo8V6A+R8DJhgu5NhFULKNdbc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","_shasum":"158a5feab1bfde58fd0e650e12c4aa74a06b49ce","gitHead":"bcf475e58705ad59925798e8f0a498bc729d0e8c","scripts":{"test":"echo \"Error: no test specified\" && exit 1","pages":"git subtree push --prefix gh-pages origin gh-pages","prepublish":"mkdir -p dist && babel src/index.jsx -u -o dist/index.js --stage 1"},"_npmUser":{"name":"javierbyte","email":"hi@javierbyte.com"},"_npmVersion":"3.0.0","description":"React component for fancy transition for numbers.","directories":{},"_nodeVersion":"0.12.6","dependencies":{"eases":"^1.0.6"}},"0.0.3":{"name":"react-number-easing","version":"0.0.3","keywords":["react","react-component","component","number","easing"],"author":{"name":"javierbyte"},"license":"ISC","_id":"react-number-easing@0.0.3","maintainers":[{"name":"javierbyte","email":"hola@javierbyte.com"}],"dist":{"shasum":"cbfb19f238a34536ebea904e38846a7fa1b2554e","tarball":"https://registry.npmjs.org/react-number-easing/-/react-number-easing-0.0.3.tgz","integrity":"sha512-n51KWQ3GpWFuL6nbJxku4y7RkvETQxZFlCddB4Zbj2M8fFmMyIuednrZ9SutfmunVGA3LEQ2ONt2hSC5EqDhkw==","signatures":[{"sig":"MEYCIQDaIaxnPhJxlbJV1n+bfiJts2NvscEzCXZwBWtFoXf8FwIhANY6P9RPzBOIJ0jOLQ17nH9hvcKxH71KaWy6j4sTfEwH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","_shasum":"cbfb19f238a34536ebea904e38846a7fa1b2554e","gitHead":"be6df9ca981474d363d2e656a1fa2070de033e3a","scripts":{"test":"echo \"Error: no test specified\" && exit 1","pages":"git subtree push --prefix gh-pages origin gh-pages","prepublish":"mkdir -p dist && babel src/index.jsx -u -o dist/index.js --stage 1"},"_npmUser":{"name":"javierbyte","email":"hi@javierbyte.com"},"_npmVersion":"3.0.0","description":"React component for fancy transition for numbers.","directories":{},"_nodeVersion":"0.12.6","dependencies":{"eases":"^1.0.6"}},"0.0.4":{"name":"react-number-easing","version":"0.0.4","keywords":["react","react-component","component","number","easing"],"author":{"name":"javierbyte"},"license":"ISC","_id":"react-number-easing@0.0.4","maintainers":[{"name":"javierbyte","email":"hola@javierbyte.com"}],"dist":{"shasum":"addb9b47d00803c6882463e44061e278e28b6fa9","tarball":"https://registry.npmjs.org/react-number-easing/-/react-number-easing-0.0.4.tgz","integrity":"sha512-5ZaJ4wHleBKPmpf9SdcAUUtiT8yJJQFEp4j6Ycmyc4dEf+AW25vVlh8lxLOPfheI80NLuMwkRDJ4mEgOwZi3Vg==","signatures":[{"sig":"MEUCIGZluqSgdTEe2yUpt6MQngs3Sk+8q7Z2D3Syv5QaAVgqAiEAqTmR36ZWbkOIDEMPRE4xhyME75qxKrFr8zfDeNThbEs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/index.js","_from":".","_shasum":"addb9b47d00803c6882463e44061e278e28b6fa9","gitHead":"2e734a2ae2ccbb1bd967119a08bf0dd0b68be56e","scripts":{"test":"echo \"Error: no test specified\" && exit 1","pages":"git subtree push --prefix gh-pages origin gh-pages","prepublish":"mkdir -p dist && babel src/index.jsx -u -o dist/index.js --stage 1"},"_npmUser":{"name":"javierbyte","email":"hi@javierbyte.com"},"_npmVersion":"2.15.9","description":"React component for fancy transition for numbers.","directories":{},"_nodeVersion":"4.6.1","dependencies":{"eases":"^1.0.6"},"_npmOperationalInternal":{"tmp":"tmp/react-number-easing-0.0.4.tgz_1481948762300_0.565056823194027","host":"packages-12-west.internal.npmjs.com"}},"1.0.0":{"name":"react-number-easing","version":"1.0.0","keywords":["react","react-component","component","number","easing"],"author":{"name":"javierbyte"},"license":"BSD-3-Clause","_id":"react-number-easing@1.0.0","maintainers":[{"name":"javierbyte","email":"hi@javierbyte.com"}],"dist":{"shasum":"cdecee848013e10d7f524d9b6032fb2373b396b8","tarball":"https://registry.npmjs.org/react-number-easing/-/react-number-easing-1.0.0.tgz","fileCount":20,"integrity":"sha512-U5nyg3WAt2QHj3LJ+URvIkUKbY+CYto83WiSy03IAQruXvvVL67PJLhMH61ehJz6QcthaZSnPp1xiZaqWgSctQ==","signatures":[{"sig":"MEQCICqqcct6pmDB+KyZug7O0t2T3+yYn1XpkDShYalcbsYeAiAu67M4vR6v3qJ03ZMLuaYNMp79sSswTakNGnMZxDpCMg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1395166,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflQlHCRA9TVsSAnZWagAAsjQP/R1quCBf5nG5sGnzRY4l\nNKdDMkyLMv+cq1LgagChOw9GeCy3agEgzHfjRiL2EQezv4cy11bJ0IVcEuEb\nW6BDLMb3B54/I/o50/GlrdI/NmflEVAP3VhQ4x8UWW8yM1YzZfOdp1IUNx//\n1RtLeE45W1AGc0uXsDtYo/uNj4+kGooe+xx+3o1k5lKeTGL32YMjTR0lODgl\n/h0DStJV35SrsdfANJQRyy9jmfszmTYyzqkv0FNgwoJM0pe/YFhDvBBVsf9w\neziUGiablNk8HWDO4AF9lXtGZPQ8IdWQEfTWL+zfqLH6JHlbLe0btshrNXbl\nLRxiMq7p3B76by3B0BJX/Qtck00h2hqgkVWAbrtOxHpYKEiKicWzHulb+DAk\nJT8CSAW5E4ZM2cuRyAylJHRyBFNSZm+rlKAPwsNcS6LxnKaFtcLP0z11zFmL\ncNcWF7BCFQ9qB29DCNMRri98diogQn5OuO5+QuA/sVYGnHfoyoDJ6A2Z4gNC\nD1rRwSEV45ewBLPowu3dAqn1EKDB1RwuGU+mh2d/SY7E9fYOZQDsBRbW5A6P\ny6ZAEqoc3aFHqA3jU1vVs6rT5OySr9qBpa9SVUhzRpAP504TeLUPYGVuJBtG\nJlWlG3KZ7wliMxA1XSayPAOE+sqAuTWh4XhumIGS37dAVnmj8kXsmVd4wdan\nXgWC\r\n=mWG8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","gitHead":"60f7a7fbd03dd3bf82add17e11c618d232863e27","_npmUser":{"name":"javierbyte","email":"hi@javierbyte.com"},"_npmVersion":"6.14.8","description":"React component for fancy transition for numbers.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"eases":"^1.0.6"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^17.0.1","react-dom":"^17.0.1"},"_npmOperationalInternal":{"tmp":"tmp/react-number-easing_1.0.0_1603602758552_0.2837826468592961","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"react-number-easing","version":"1.0.1","keywords":["react","react-component","component","number","easing"],"author":{"name":"javierbyte"},"license":"BSD-3-Clause","_id":"react-number-easing@1.0.1","maintainers":[{"name":"javierbyte","email":"hi@javierbyte.com"}],"homepage":"https://github.com/javierbyte/react-number-easing#readme","bugs":{"url":"https://github.com/javierbyte/react-number-easing/issues"},"dist":{"shasum":"c22fac72abd738bc91093010912381239002da78","tarball":"https://registry.npmjs.org/react-number-easing/-/react-number-easing-1.0.1.tgz","fileCount":20,"integrity":"sha512-TmxQqxh+PkVxki6YtZ/14bidj1IqTYBg/bv1m9IcRk3jt6n/uMkgF3bIwbF1lVY2UcEW2sHyxpsdZS3FGPWqwQ==","signatures":[{"sig":"MEUCID6YNxhcYvJqR2g5ONkqaTMrxy60ult2jfjtjrzQkA4fAiEA4KIGxsst5koAC0zLLRnzIr+OJbgfrpDNsreAT6vNc2Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1395303,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflQokCRA9TVsSAnZWagAAuhAQAIq3KzWCezn6EXGjkVPn\nEQjBsjSmiBzHyrdduzvqgXK5cu/4IXds6tHYVWqB6MJv0N7f8AELzaDVl+Hz\nattNd0KGONJc1+Mle7nEhcJj++cc6bxFzYViJ2SO8ez0jyjQbZSAyRP8Pcmp\nXmSf5l3zq1ILgS1bGqXMTjisruAynui+cZn/nSMy10NCbLDTcldaGMjjebr9\nnFad23c+wnae9HAQblLbG34lZWIK4puQ/SyaTZY6ym5D0lLVthNHAtm0X5r1\n3lycZ68bxq9RcGxrO5K04UqUxNOf+SkGj/+DilXchUW6PBYSvD5PQOt88D2W\nevY3hygJi5KnvhO4/Kba//cZ890WYr0WkbqaimCDWWjEF+bVRX41PsFEvtGo\nSEIPuiee2PokbOJuavsxDgMkvccSd0fizHG5n0OT8GfWWEeN5f1qnnnmq8GH\n8J6r4k7KWKj7wbI+Zvjjkcj96NikfLzmQPNzzqrfFa7wxfQGqYyGvbhIl7UK\n8BNEgneU6xefO80ZZ5UvVma8bUi6etcYNOvE4i8cX3FItcFCvFdnWdVLKsH/\n533JosHGRHRYG33iZdQf966KgOq1+cZEeLWEXBbmng5MQ2qfHJ5ZBQjWo1sB\nU4kHHPb/EdQuMAznYs3QtUwrQvhoOVClEFSe+ofUSh7KVsZuj9gIs19LOHMO\nA5OZ\r\n=eU+J\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","gitHead":"60f7a7fbd03dd3bf82add17e11c618d232863e27","_npmUser":{"name":"javierbyte","email":"hi@javierbyte.com"},"repository":{"url":"git+https://github.com/javierbyte/react-number-easing.git","type":"git"},"_npmVersion":"6.14.8","description":"React component for fancy transition for numbers.","directories":{},"_nodeVersion":"12.19.0","dependencies":{"eases":"^1.0.6"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^17.0.1","react-dom":"^17.0.1"},"_npmOperationalInternal":{"tmp":"tmp/react-number-easing_1.0.1_1603602980084_0.6962741076869736","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"react-number-easing","version":"1.0.2","keywords":["react","react-component","component","number","easing"],"author":{"name":"javierbyte"},"license":"BSD-3-Clause","_id":"react-number-easing@1.0.2","maintainers":[{"name":"javierbyte","email":"hi@javierbyte.com"}],"homepage":"https://github.com/javierbyte/react-number-easing#readme","bugs":{"url":"https://github.com/javierbyte/react-number-easing/issues"},"dist":{"shasum":"b37d5948dafcf0d548dec9df7150e429a2c1edc6","tarball":"https://registry.npmjs.org/react-number-easing/-/react-number-easing-1.0.2.tgz","fileCount":22,"integrity":"sha512-md5vahNBxXv9EFMt/V+YO5ojwSxf3kcgL6Bxe1ZIGUgK9CaO5OCGYG/s6nBf8GhQNKAIJ8wySEo2nlT5v8YZZQ==","signatures":[{"sig":"MEUCIFhLkA5e9Q+oROdqwM8XkORh2wNuWZCEHizDTbE0+pwsAiEA5q3o8zi6Hl3g+QtnV07zcN72MxbbJi2mCUjV9Skt6+w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1196070,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhulteCRA9TVsSAnZWagAAR+gQAIRQ8Rt8zncHvJkbCzRI\nUesWdci91xRJpomE2WZ4kfnDghAPXY8ceBZACf7sGmvAWdQ2jTFn4JhBbYs3\nM/bIWSdABunzcArW1mT2Y45kBvVcw9Jw8EORYJ548Un6UFnfO/7MhAaDQ/FS\nxjR1L4buULHLczhY//TIPyULL8ahYu0XTjsbQoQxmddK0Ba6yVojX17H0dM3\nP/lCj07wD2Rc9SwEcqJAgt/CRVHax4nwUWQ7t2qIa2mXHyyNxlQqic+vCFWG\nwp4lJPWFrE00KiNd/EB9nsY/gaPUOXUU2Li8fjfpNlhrPmiPBNsQO7HSmQ5u\noXyknmoQnFl5HczCob3fRkpCaVp9+EganTBX4Ym6BSMxx7ygkHGkZPfzM2lZ\nES3pWU3P1oLwKaAEXI1A9GIbmqV9CdArNl0X/4IwJrFzSRTmIcZ5oRJNJbUs\nL+Nem8+c8on8lEOBV7ePTJjdIKwVFCUFa/awMyFhTteByhorKpDFalSGJX5J\neDuzWd3gmDCyp/6iaDuSvL6mAymrBj422cduS6+jn3QutIaPdAriSPPBKad3\nma42MgSaFUT6GYux9pYX4bUDii6vN/zr5VOSvtGwxPmHqOh7JjjgKD1j3v+x\n7H+szYguEYgiJtBjk2TXDs5hX4OCP9xceIZgkVF+D3QnhjL2V3jiPO/yQymQ\nDuGW\r\n=4RhV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","gitHead":"63cfdbc49b14b06eb3690adf6f88c08b82dec56f","_npmUser":{"name":"javierbyte","email":"hi@javierbyte.com"},"repository":{"url":"git+https://github.com/javierbyte/react-number-easing.git","type":"git"},"_npmVersion":"6.14.15","description":"React component for fancy transition for numbers.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"eases":"^1.0.8"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.4.1","eslint-plugin-react":"^7.27.1"},"peerDependencies":{"react":"^17.0.1","react-dom":"^17.0.1"},"_npmOperationalInternal":{"tmp":"tmp/react-number-easing_1.0.2_1639603038126_0.6514603614164494","host":"s3://npm-registry-packages"}},"1.1.0":{"_id":"react-number-easing@1.1.0","bugs":{"url":"https://github.com/javierbyte/react-number-easing/issues"},"dist":{"shasum":"d5f8319485739f2b9514bce19da99dc20d238c21","tarball":"https://registry.npmjs.org/react-number-easing/-/react-number-easing-1.1.0.tgz","fileCount":6,"integrity":"sha512-LDC1hV6WA1Bzyyyzwb77jay/+lQraLBgKp9Vtv1aomPiq1/aBC9qt+KJ+AAEbUYdY7Oq7I/Ppz7IW1AU6olH/Q==","signatures":[{"sig":"MEYCIQDJAwXyCdMSx9iiSc1C7LXF9I+4+MAHgMpyA8NSouHDuAIhAIsArDfnDxEVt5+dpxUa0uDU5OFhIC/DbjkKArf+oLWZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD9Rv4IcqE+2u0ug/9TMP08jU/Mu5HvVrRO1y+/CwG+mwIgAyF/OZ6tee9J2FIrXzb8ha42E/HRBEOHRO1/3UMcrwE="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/react-number-easing@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11110},"main":"src/index.js","name":"react-number-easing","types":"src/index.d.ts","author":{"name":"javierbyte"},"gitHead":"f86532b28198f985c133285b70c387af4dd68fd0","license":"BSD-3-Clause","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","check":"pnpm build && pnpm lint && pnpm typecheck && pnpm test && pnpm test:types && pnpm check:package","typecheck":"tsc -p tsconfig.json --noEmit","test:types":"tsc -p test-d/tsconfig.node.json && tsc -p test-d/tsconfig.node16.json && tsc -p test-d/tsconfig.bundler.json","test:compat":"vitest run test/number-easing.test.ts","check:package":"node scripts/check-package.mjs","prepublishOnly":"pnpm check"},"typings":"src/index.d.ts","version":"1.1.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:87f0c4ec-ab36-41cb-86a8-1988ca4c0b41"}},"homepage":"https://github.com/javierbyte/react-number-easing#readme","keywords":["react","react-component","component","number","easing"],"repository":{"url":"git+https://github.com/javierbyte/react-number-easing.git","type":"git"},"_npmVersion":"11.17.0","description":"React component for fancy transition for numbers.","directories":{},"maintainers":[{"name":"javierbyte","email":"hi@javier.xyz"}],"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"eases":"^1.0.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.21.0","devDependencies":{"jsdom":"^26.1.0","react":"^19.1.1","eslint":"9.39.5","vitest":"^3.2.4","globals":"^16.3.0","react-dom":"^19.1.1","@eslint/js":"9.39.5","typescript":"^5.9.2","@types/node":"^24.3.0","@types/react":"^19.1.10","@types/react-dom":"^19.1.7","typescript-eslint":"^8.41.0","react-test-renderer":"^19.1.1","eslint-plugin-react-hooks":"^7.0.1","@types/react-test-renderer":"^19.1.0"},"peerDependencies":{"react":">=17 <20","react-dom":">=17 <20"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-number-easing_1.1.0_1787538236803_0.6461022888480004"}}},"time":{"created":"2015-05-09T09:21:28.786Z","modified":"2026-08-24T02:23:57.191Z","0.0.1":"2015-05-09T09:21:28.786Z","0.0.2":"2015-07-15T21:22:39.472Z","0.0.3":"2015-08-26T16:51:22.526Z","0.0.4":"2016-12-17T04:26:04.414Z","1.0.0":"2020-10-25T05:12:38.738Z","1.0.1":"2020-10-25T05:16:20.260Z","1.0.2":"2021-12-15T21:17:18.495Z","1.1.0":"2026-08-24T02:23:56.900Z"},"bugs":{"url":"https://github.com/javierbyte/react-number-easing/issues"},"author":{"name":"javierbyte"},"license":"BSD-3-Clause","homepage":"https://github.com/javierbyte/react-number-easing#readme","keywords":["react","react-component","component","number","easing"],"repository":{"url":"git+https://github.com/javierbyte/react-number-easing.git","type":"git"},"description":"React component for fancy transition for numbers.","maintainers":[{"name":"javierbyte","email":"hi@javier.xyz"}],"readme":"# [React Number Easing](https://javier.xyz/react-number-easing)\n\nReact component for animated number transitions. It supports React 17, 18, and\n19, TypeScript, server rendering, and the Next.js App Router.\n\n[› Online demo](https://javier.xyz/react-number-easing)\n\n[![react-number-easing screenshot](https://raw.githubusercontent.com/javierbyte/react-number-easing/main/assets/number-easing-infinite.gif)](https://javier.xyz/react-number-easing)\n\n## Installation\n\n```sh\npnpm add react-number-easing\n```\n\nThe package also works with npm, Yarn, and Bun.\n\n## Usage\n\n```jsx\nimport NumberEasing from 'react-number-easing';\n\nexport default function Total({ value }) {\n  return (\n    <NumberEasing\n      value={value}\n      speed={300}\n      decimals={0}\n      ease=\"quintInOut\"\n    />\n  );\n}\n```\n\nThe initial render displays the target value. Later `value` changes animate\nfrom the currently rendered value to the new target.\n\n## Props\n\n| Prop | Type | Default | Description |\n| --- | --- | --- | --- |\n| `value` | `number` | required | Target value displayed at the end of the animation. |\n| `speed` | `number` | `500` | Animation duration in milliseconds. |\n| `ease` | `EaseName` | `'quintInOut'` | Easing equation from [`eases`](https://github.com/mattdesl/eases). |\n| `decimals` | `number` | `0` | Decimal places passed to `Number(value).toFixed(decimals)`. |\n| `customFunctionRender` | `(value, decimals) => ReactNode` | default formatter | Replaces the default text formatter. |\n\nAll easing names and the component props are exported as TypeScript types:\n\n```tsx\nimport NumberEasing, {\n  type EaseName,\n  type NumberEasingProps,\n} from 'react-number-easing';\n\nconst ease: EaseName = 'cubicOut';\n\nconst props: NumberEasingProps = {\n  value: 1200,\n  decimals: 2,\n  ease,\n  customFunctionRender: (value, decimals) => (\n    <strong>{value.toLocaleString(undefined, {\n      minimumFractionDigits: decimals,\n      maximumFractionDigits: decimals,\n    })}</strong>\n  ),\n};\n\nexport default function Total() {\n  return <NumberEasing {...props} />;\n}\n```\n\n`TEaseTypes` remains available as an alias-compatible legacy type name.\n\n## Next.js App Router\n\nThe package declares its own client boundary, so a Server Component can render\nit directly when its props are serializable:\n\n```tsx\nimport NumberEasing from 'react-number-easing';\n\nexport default function Page() {\n  return <NumberEasing value={42} decimals={0} />;\n}\n```\n\n`customFunctionRender` is a function and therefore cannot cross a\nserver-to-client boundary. Put that usage in your own Client Component:\n\n```tsx\n'use client';\n\nimport NumberEasing from 'react-number-easing';\n\nexport default function FormattedTotal({ value }: { value: number }) {\n  return (\n    <NumberEasing\n      value={value}\n      decimals={2}\n      customFunctionRender={(current, decimals) => (\n        <strong>{current.toFixed(decimals)}</strong>\n      )}\n    />\n  );\n}\n```\n\nEffects run only in the browser. Server rendering and the client's first\nrender both display the same formatted target value, so hydration starts from\nmatching text.\n\n## Compatibility\n\n- React and React DOM 17 through 19\n- Next.js App Router and other React server-rendering frameworks\n- TypeScript declarations for Node, Node16/NodeNext, and bundler resolution\n- The historical default export and `react-number-easing/src/index.js` path\n\nThe v1 scheduler intentionally remains interval-based for compatibility.\nAnimation-driver changes, reduced-motion defaults, stricter runtime validation,\nand modern export-map encapsulation are deferred to v2.\n","readmeFilename":"README.md","users":{"tantan0309":true}}