React/React Native countdown timer component in a circle shape with color and progress animation.
a11y
supportyarn add react-countdown-circle-timer
Check out the full documentation for demos and use cases.
yarn add react-native-countdown-circle-timer
This component has a peer dependency on react-native-svg
. Read the full documentation for the installation guide, as well as demos and use cases.
Prop Name | Type | Default | Description |
---|---|---|---|
duration | number | required | Countdown duration in seconds |
colors | [color HEX: string, transition duration: number 0 ~ 1][] | required | Array of tuples: 1st param - color in HEX format; 2nd param - time to transition to next color represented as a fraction of the total duration |
initialRemainingTime | number | - | Sets the initial remaining time when the countdown starts. By default the countdown starts at the duration provided. |
size | number | 180 | Width and height of the SVG element |
strokeWidth | number | 12 | Path stroke width |
strokeLinecap | round | square | round |
trailColor | string | #d9d9d9 | Circle trail color - takes any valid color format (HEX, rgb, rgba, etc.) |
rotation | clockwise | counterclockwise | clockwise |
isPlaying | boolean | false | Play and pause animation |
* isLinearGradient | boolean | false | * Apples linear gradient on top of the circle. The gradient doesn’t follow the circle path. Works best with two colors. |
gradientUniqueKey | string | - | Unique ID for the linearGradient element. It takes random ID if it’s not provided. |
children | ReactNode | function({ remainingTime: number, elapsedTime: number }): number | string |
onComplete | function(totalElapsedTime: number): void | [shouldRepeat: boolean, delay: number] | - |
ariaLabel | string | Countdown timer | Aria label for the whole component |
renderAriaTime | function({ remainingTime: number, elapsedTime: number }): string | - | Render prop function to customize the text message that will be read by the screen reader during the countdown. |
Author: vydimitrov
GitHub: https://github.com/vydimitrov/react-countdown-circle-timer
#react #react-native #mobile-apps