Gathering detailed insights and metrics for react-native-circular-progress
Gathering detailed insights and metrics for react-native-circular-progress
Gathering detailed insights and metrics for react-native-circular-progress
Gathering detailed insights and metrics for react-native-circular-progress
react-native-circular-progress-indicator
React Native customizable circular progress indicator
react-native-circular-slider-with-updates
3 types Circular Slider Component for React Native
@2hats/react-native-circular-progress
React Native component for creating animated, circular progress with ReactART
react-native-progress-ring
A performant, simple, flexible circular progress ring component for all React Native apps (Expo and Bare) 🔥
React Native component for creating animated, circular progress with ReactART
npm install react-native-circular-progress
Typescript
Module System
Node Version
NPM Version
JavaScript (67.61%)
TypeScript (32.39%)
Total Downloads
0
Last Day
0
Last Week
0
Last Month
0
Last Year
0
MIT License
2,221 Stars
247 Commits
426 Forks
21 Watchers
16 Branches
53 Contributors
Updated on Jul 05, 2025
Latest Version
1.4.1
Package Id
react-native-circular-progress@1.4.1
Unpacked Size
20.48 kB
Size
5.84 kB
File Count
7
NPM Version
10.1.0
Node Version
20.9.0
Published on
Oct 26, 2024
Cumulative downloads
Total Downloads
Last Day
0%
NaN
Compared to previous day
Last Week
0%
NaN
Compared to previous week
Last Month
0%
NaN
Compared to previous month
Last Year
0%
NaN
Compared to previous year
1
3
React Native component for creating animated, circular progress. Useful for displaying users points for example.
Install this component and react-native-svg
:
npm i --save react-native-circular-progress react-native-svg
Link native code for SVG:
react-native link react-native-svg
1import { AnimatedCircularProgress } from 'react-native-circular-progress'; 2 3<AnimatedCircularProgress 4 size={120} 5 width={15} 6 fill={100} 7 tintColor="#00e0ff" 8 onAnimationComplete={() => console.log('onAnimationComplete')} 9 backgroundColor="#3d5875" />
You can also define a function that'll receive current progress and for example display it inside the circle:
1<AnimatedCircularProgress 2 size={200} 3 width={3} 4 fill={this.state.fill} 5 tintColor="#00e0ff" 6 backgroundColor="#3d5875"> 7 { 8 (fill) => ( 9 <Text> 10 { this.state.fill } 11 </Text> 12 ) 13 } 14</AnimatedCircularProgress>
You can also define a function that'll receive the location at the top of the progress circle and render a custom SVG element:
1<AnimatedCircularProgress 2 size={120} 3 width={15} 4 fill={100} 5 tintColor="#00e0ff" 6 backgroundColor="#3d5875" 7 padding={10} 8 renderCap={({ center }) => <Circle cx={center.x} cy={center.y} r="10" fill="blue" />} 9 />
Finally, you can manually trigger a duration-based timing animation by putting a ref on the component and calling the animate(toValue, duration, easing)
function like so:
1<AnimatedCircularProgress 2 ref={(ref) => this.circularProgress = ref} 3 ... 4/>
1this.circularProgress.animate(100, 8000, Easing.quad); // Will fill the progress bar linearly in 8 seconds
The animate
-function returns the timing animation so you can chain, run in parallel etc.
You can configure the CircularProgress-component by passing the following props:
Name | Type | Default value | Description |
---|---|---|---|
size | number|Animated.Value | required | Width and height of circle |
width | number | required | Thickness of the progress line |
backgroundWidth | number | width | Thickness of background circle |
fill | number (0-100) | 0 | Current progress / fill |
tintColor | string | black | Color of the progress line |
tintTransparency | boolean | true | Transparency of the progress line |
backgroundColor | string | If unspecified, no background line will be rendered | |
rotation | number (-360 - 360) | 90 | Angle from which the progress starts from |
lineCap | string | butt | Shape used at ends of progress line. Possible values: butt, round, square |
arcSweepAngle | number (0-360) | 360 | If you don't want a full circle, specify the arc angle |
style | ViewPropTypes.style | Extra styling for the main container | |
children | function | Pass a function as a child. It received the current fill-value as an argument | |
childrenContainerStyle | ViewPropTypes.style | Extra styling for the children container | |
padding | number | 0 | Padding applied around the circle to allow for a cap that bleeds outside its boundary |
dashedBackground | object | { width: 0, gap: 0 } | Bar background as dashed type |
dashedTint | object | { width: 0, gap: 0 } | Bar tint as dashed type |
renderCap | function | undefined | Function that's invoked during rendering to draw at the tip of the progress circle |
The following props can further be used on AnimatedCircularProgress
:
Name | Type | Default value | Description |
---|---|---|---|
prefill | number (0-100) | 0 | Initial fill-value before animation starts |
duration | number | 500 | Duration of animation in ms |
delay | number | 0 | Delay of animation in ms |
easing | function | Easing.out(Easing.ease) | Animation easing function |
onAnimationComplete | function | Function that's invoked when the animation completes (both on mount and if called with .animate() ) | |
onFillChange | function | Function that returns current progress on every change | |
tintColorSecondary | string | the same as tintColor | To change fill color from tintColor to tintColorSecondary as animation progresses |
AnimatedCircularProgress
also exposes the following functions:
Name | Arguments | Description |
---|---|---|
animate | (toVal: number, duration: number, ease: function) | Animate the progress bar to a specific value |
reAnimate | (prefill: number, toVal: number, duration: number, ease: function) | Re-run animation with a specified prefill-value |
1git clone https://github.com/bgryszko/react-native-circular-progress.git 2cd react-native-circular-progress/example-app 3yarn 4yarn start
MIT
Special thanks to Chalk+Chisel for creating working environment where people grow. This component was created for one of the projects we're working on.
No vulnerabilities found.
Reason
no binaries found in the repo
Reason
license file detected
Details
Reason
Found 13/16 approved changesets -- score normalized to 8
Reason
0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
security policy file not detected
Details
Reason
project is not fuzzed
Details
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
Reason
63 existing vulnerabilities detected
Details
Score
Last Scanned on 2025-07-07
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More