{"id":13406496,"url":"https://github.com/crisbeto/angular-svg-round-progressbar","last_synced_at":"2025-05-14T02:06:47.580Z","repository":{"id":16649734,"uuid":"19405131","full_name":"crisbeto/angular-svg-round-progressbar","owner":"crisbeto","description":"Angular module that uses SVG to create a circular progressbar","archived":false,"fork":false,"pushed_at":"2024-12-18T12:35:55.000Z","size":2521,"stargazers_count":739,"open_issues_count":52,"forks_count":173,"subscribers_count":30,"default_branch":"master","last_synced_at":"2025-05-04T17:41:58.915Z","etag":null,"topics":["angular","hacktoberfest","progress","progress-circle","svg"],"latest_commit_sha":null,"homepage":"https://crisbeto.github.io/angular-svg-round-progressbar/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crisbeto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-05-03T14:52:58.000Z","updated_at":"2025-05-04T14:09:23.000Z","dependencies_parsed_at":"2023-12-04T05:34:02.570Z","dependency_job_id":"94258c1c-36d0-40cb-bba5-63c67db1ad4a","html_url":"https://github.com/crisbeto/angular-svg-round-progressbar","commit_stats":{"total_commits":202,"total_committers":12,"mean_commits":"16.833333333333332","dds":0.5148514851485149,"last_synced_commit":"daf4d45ba676c288d776aef31c80c98e61b33630"},"previous_names":[],"tags_count":60,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crisbeto%2Fangular-svg-round-progressbar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crisbeto%2Fangular-svg-round-progressbar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crisbeto%2Fangular-svg-round-progressbar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crisbeto%2Fangular-svg-round-progressbar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crisbeto","download_url":"https://codeload.github.com/crisbeto/angular-svg-round-progressbar/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252571462,"owners_count":21769841,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","hacktoberfest","progress","progress-circle","svg"],"created_at":"2024-07-30T19:02:31.838Z","updated_at":"2025-05-14T02:06:42.568Z","avatar_url":"https://github.com/crisbeto.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","Uncategorized","Third Party Components"],"sub_categories":["Uncategorized","Loaders"],"readme":"# Angular SVG round progressbar\nAngular module that uses SVG to create a circular progressbar\n\n## [Demo](https://crisbeto.github.io/angular-svg-round-progressbar/)\n\n## [Click here for the Angular 1.x version](https://github.com/crisbeto/angular-svg-round-progressbar/tree/angular-1.x)\n\n## Install\nFirst you have to install the module through npm:\n\n```bash\nnpm install angular-svg-round-progressbar --save\n```\n\nAfterwards you need to import the `RoundProgressModule` in your module:\n\n```typescript\nimport {NgModule} from '@angular/core';\nimport {RoundProgressModule} from 'angular-svg-round-progressbar';\n\n@NgModule({\n  imports: [RoundProgressModule]\n})\nexport class YourModule {}\n```\n\nOr `RoundProgressComponent`, if you're using standalone:\n\n```typescript\nimport {Component} from '@angular/core';\nimport {RoundProgressComponent} from 'angular-svg-round-progressbar';\n\n@Component({\n  standalone: true,\n  imports: [RoundProgressComponent],\n  template: '...'\n})\nexport class YourComponent {}\n```\n\nIf you're using SystemJS as your module loader, there is also a UMD bundle at `./node_modules/angular-svg-round-progressbar/bundles/angular-svg-round-progressbar.umd.js`.\n\n## Options\n| Name           | Description                                                                                               | Required  | Default value     | Possible values   |\n| ---            | ---                                                                                                       | ---       | ---               | ---               |\n| `current`      | The current progress. Limited by the `max` option.                                                        | Yes       | `undefined`       | `number`          |\n| `max`          | The progress' maximum value.                                                                              | Yes       | `undefined`       | `number`          |\n| `radius`       | Radius of the circle.                                                                                     | No        | `125`             | `number`          |\n| `color`        | The color of the `current` value on the circle.                                                           | No        | `#45ccce`         | `string`          |\n| `background`   | Color of the circle's background.                                                                         | No        | `#eaeaea`         | `string`          |\n| `stroke`       | Specifies the circle's thickness.                                                                         | No        | `15`              | `number`          |\n| `semicircle`   | Whether the progressbar should be a full circle or a semicircle.                                          | No        | `false`           | `boolean`         |\n| `clockwise`    | Whether the progressbar should rotate clockwise or counter-clockwise.                                     | No        | `true`            | `boolean`         |\n| `responsive`   | Whether the progressbar should fit inside its parent container. **Note** Turning this option on will override the specified radius in order to make the circle fit in its parent. The radius to stroke ratio won't change.                                     | No        | `false`            | `boolean`           |\n| `rounded`      | Whether the current progress ending should be rounded or straight.                                        | No        | `false`           | `boolean`           |\n| `duration`     | The duration of the animation. Pass 0 for no animation.                                                   | No        | `800`             | `number`          |\n| `animationDelay` | Milliseconds to wait before starting an animation.                                                     | No         | `0`               | `number`          |\n| `onRender`     | Callback function that gets executed every time the circle is animated. The function gets called with the current progress as it is being animated.                                | No        | `undefined`       | `Function`         |\n| `animation`    | The easing function that will be used when animating.                                                     | No        | easeOutCubic      | linearEase \u003cbr\u003e easeInQuad \u003cbr\u003e easeOutQuad \u003cbr\u003e easeInOutQuad \u003cbr\u003e easeInCubic \u003cbr\u003e easeOutCubic \u003cbr\u003e easeInOutCubic \u003cbr\u003e easeInQuart \u003cbr\u003e easeOutQuart \u003cbr\u003e easeInOutQuart \u003cbr\u003e easeInQuint \u003cbr\u003e easeOutQuint \u003cbr\u003e easeInOutQuint \u003cbr\u003e easeInSine \u003cbr\u003e easeOutSine \u003cbr\u003e easeInOutSine \u003cbr\u003e easeInExpo \u003cbr\u003e easeOutExpo \u003cbr\u003e easeInOutExpo \u003cbr\u003e easeInCirc \u003cbr\u003e easeOutCirc \u003cbr\u003e easeInOutCirc \u003cbr\u003e easeInElastic \u003cbr\u003e easeOutElastic \u003cbr\u003e easeInOutElastic \u003cbr\u003e easeInBack \u003cbr\u003e easeOutBack \u003cbr\u003e easeInOutBack \u003cbr\u003e easeInBounce \u003cbr\u003e easeOutBounce \u003cbr\u003e easeInOutBounce \u003cbr\u003e |\n\n\n### Minimal example:\n```html\n\u003cround-progress [current]=\"current\" [max]=\"max\"/\u003e\n```\n\n### Full example:\n```html\n\u003cround-progress\n    [current]=\"current\"\n    [max]=\"max\"\n    [color]=\"'#45ccce'\"\n    [background]=\"'#eaeaea'\"\n    [radius]=\"125\"\n    [stroke]=\"20\"\n    [semicircle]=\"true\"\n    [rounded]=\"true\"\n    [clockwise]=\"false\"\n    [responsive]=\"false\"\n    [duration]=\"800\"\n    [animation]=\"'easeInOutQuart'\"\n    [animationDelay]=\"0\"\n    (onRender)=\"doSomethingWithCurrentValue($event)\"/\u003e\n```\n\n### Configuring the default values\nThe module comes with some pre-configured options for things like colors, size, stroke etc. If these\ndon't match your app's design, you can change the global defaults by providing a new value for the\n`ROUND_PROGRESS_DEFAULTS` injection token. Whenever an option isn't defined on a `round-progress`\nelement, it's value will be taken from the defaults.\n\n```typescript\nimport {NgModule} from '@angular/core';\nimport {\n  RoundProgressModule,\n  RoundProgressConfig,\n  ROUND_PROGRESS_DEFAULTS\n} from 'angular-svg-round-progressbar';\n\n@NgModule({\n  imports: [RoundProgressModule],\n  providers: [{\n    provide: ROUND_PROGRESS_DEFAULTS,\n    useValue: {\n      color: '#f00',\n      background: '#0f0'\n    }\n  }]\n})\nexport class YourModule {};\n```\n\n## Browser support\n* Internet Explorer 9+\n* Firefox 28.0+\n* Chrome 31+\n* Safari 5.1+\n* and pretty much any browser that supports SVG\n\n**Note:** Some older browsers may require (a [polyfill for `requestAnimationFrame`](https://gist.github.com/paulirish/1579671)).\n[Read more about the `requestAnimationFrame` browser support.](https://caniuse.com/#feat=requestanimationframe)\n\n\n## Development\nThe project uses `yarn` to manage dependencies to make sure that you [have it installed](https://yarnpkg.com/getting-started/install).\n\n*  `yarn` to install development dependencies.\n*  `yarn lint` to lint the source files.\n*  `yarn start` to run a development server. Go to `localhost:4200` to see the demo.\n*  `yarn build-lib` to build the library in production mode.\n*  `yarn build-demo` to build the demo in production mode.\n*  `yarn release-lib` to build the library and release it to npm.\n*  `yarn release-demo` to build the demo and deploy it to GitHub Pages.\n\n## Credits\n* [Modernizr](https://modernizr.com/) for the SVG support test\n* [Robert Penner](https://www.robertpenner.com/easing/) for the easing function\n* [opsb](https://stackoverflow.com/questions/5736398/how-to-calculate-the-svg-path-for-an-arc-of-a-circle) for some of the math\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrisbeto%2Fangular-svg-round-progressbar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrisbeto%2Fangular-svg-round-progressbar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrisbeto%2Fangular-svg-round-progressbar/lists"}