Gathering detailed insights and metrics for react-slot-counter
Gathering detailed insights and metrics for react-slot-counter
Gathering detailed insights and metrics for react-slot-counter
Gathering detailed insights and metrics for react-slot-counter
npm install react-slot-counter
78.5
Supply Chain
92.5
Quality
82.8
Maintenance
100
Vulnerability
100
License
Module System
Min. Node Version
Typescript Support
Node Version
NPM Version
113 Stars
193 Commits
12 Forks
2 Watching
15 Branches
5 Contributors
Updated on 26 Nov 2024
TypeScript (86.73%)
CSS (7.03%)
HTML (3.35%)
JavaScript (2.3%)
SCSS (0.59%)
Cumulative downloads
Total Downloads
Last day
-3.2%
2,149
Compared to previous day
Last week
5.1%
10,963
Compared to previous week
Last month
14.8%
44,710
Compared to previous month
Last year
1,177.2%
266,169
Compared to previous year
24
π Elevate Your UI with Dynamic, Eye-Catching Counters - React Slot Counter
Make Your Numbers Pop π: Simple and Dynamic Counters for Your UI
speed
: Adjust animation speed more intuitively with the new speed
prop.delay
: Each column's animation start can now be delayed using the delay
prop.React Slot Counter is your go-to solution for adding animated, interactive counters to your web applications. With customizable animations, diverse input compatibility, and easy integration, it's designed to make your numbers not just visible but visually striking.
1npm install react-slot-counter
Import SlotCounter
and use it in your component. Here's a simple example:
1import React from 'react'; 2import SlotCounter from 'react-slot-counter'; 3 4function App() { 5 return ( 6 <> 7 <SlotCounter value={123456} /> 8 <SlotCounter value={36.5} /> 9 <SlotCounter value="1,234,567" /> 10 <SlotCounter value={['1', '2', '3', '4', '5', '6']} /> 11 <SlotCounter value="??????" /> 12 </> 13 ); 14} 15 16export default App;
Explore more at the demo page.
Detailed props for customizing SlotCounter to fit your UI needs:
Prop | Type | Default | Description |
---|---|---|---|
value (required) | number | string | string[] | JSX.Element[] | The value to be displayed. It can be a number or a string with numbers and commas. | |
startValue | number | string | string[] | JSX.Element[] | The initial value to be displayed before the animation starts. It sets the beginning of the slot machine animation. | |
startValueOnce | boolean | false | If set to true, the animation starts from the startValue only for the first render. For subsequent animations, it starts from the last value. |
duration | number | 0.7 | The duration of the animation in seconds. |
speed | number | 1.4 | The speed of counter when running. |
delay | number | The delay time of each columns | |
dummyCharacters | string[] | JSX.Element[] | Defaults to random numbers from 0 to 9 | An array of dummy characters to be used in the animation. |
dummyCharacterCount | number | 6 | The number of dummy characters to be displayed in the animation before reaching the target character. |
autoAnimationStart | boolean | true | Determines whether the animation should start automatically when the component is first mounted. |
animateUnchanged | boolean | false | Determines whether to animate only the characters that have changed. |
hasInfiniteList | boolean | false | Determines whether the list should appear as continuous, with the end of the target character seamlessly connected to the beginning. |
containerClassName | string | The class name of container. | |
charClassName | string | The class name of each character. | |
separatorClassName | string | The class name of the separator character (. or , ). | |
valueClassName | string | The class name for the value of the slot, making it possible to customize the styling and visibility of the value. | |
numberSlotClassName | string | The class name for the number slot, allowing you to customize the styling of the number slot. | |
numberClassName | string | The class name for the number, allowing you to customize the styling of the number. | |
sequentialAnimationMode | boolean | false | Determines if the animation should increment or decrement sequentially from the startValue to value instead of random animation. |
useMonospaceWidth | boolean | false | Ensures that all numeric characters occupy the same horizontal space, just like they would in a monospace font. |
direction | 'bottom-top' | 'top-bottom' | 'bottom-top' | Sets the direction of the slot machine animation. Accepted values are 'bottom-top' and 'top-bottom' . |
debounceDelay | number | 0 | Specifies the delay in milliseconds for debouncing animations. When the value changes rapidly, it allows the animation to execute smoothly. |
animateOnVisible | boolean | rootMargin: string, triggerOnce: boolean | false | rootMargin: '0px' , triggerOnce: false | Activates the animation when the component is visible in the viewport. rootMargin sets the margin around the viewport for triggering the animation, while triggerOnce determines if the animation should occur only once (true) or every time the component becomes visible (false). |
startFromLastDigit | boolean | false | Determines the order in which the digits animate. When set to true , the animation will start from the last digit and progress backward to the first digit. When false , the animation will start from the first digit and proceed forward. |
Manipulate the behavior with refreshStyles and startAnimation methods.
Method | Type | Description |
---|---|---|
refreshStyles | () => void | Recalculates the styles for the SlotCounter component. Useful for scenarios where the font size changes or the window is resized, forcing a re-render to apply the new styles. |
startAnimation | (options?: Options) => void | Initiates the animation of the component with optional customization parameters. |
startAnimation
MethodProperty | Type | Optional | Default | Description |
---|---|---|---|---|
duration | number | Yes | None | A number representing the duration of the animation in seconds. Overrides the duration prop if provided. |
dummyCharacterCount | number | Yes | None | A number indicating how many dummy characters should be shown before the target character. Overrides the dummyCharacterCount prop if provided. |
direction | string | Yes | 'bottom-top' | Sets the direction of the slot machine animation. Accepted values: 'bottom-top' , 'top-bottom' . Overrides the direction prop if provided. |
Ref Example:
1import React, { useRef } from 'react'; 2import SlotCounter from 'react-slot-counter'; 3 4function App() { 5 const counterRef = useRef(null); 6 7 const handleStartClick = () => { 8 counterRef.current?.startAnimation(); 9 }; 10 11 return ( 12 <> 13 <SlotCounter value={123456} ref={counterRef} /> 14 <button onClick={handleStartClick}>Start</button> 15 </> 16 ); 17} 18 19export default App;
Check out our CHANGELOG.md for the latest updates.
Your contributions are welcome! Let's make this project even better together.
Thanks go to these wonderful people:
Max |
Nick - Ngoc Pham |
Vincent Huang |
larsjuvik |
BαΊ£o HΓ . |
Support us with a star β on GitHub!
This project is proudly licensed under the MIT License.
No vulnerabilities found.
No security vulnerabilities found.