{"id":17571193,"url":"https://github.com/xantredev/react-native-skia-ui","last_synced_at":"2026-05-15T08:41:55.879Z","repository":{"id":226742950,"uuid":"769535545","full_name":"XantreDev/react-native-skia-ui","owner":"XantreDev","description":"Cross platform UI primitives implemented with `@shopify/react-native-skia`","archived":false,"fork":false,"pushed_at":"2024-06-02T14:54:03.000Z","size":1830,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-23T16:50:15.973Z","etag":null,"topics":["components","react-native","reanimated","skia"],"latest_commit_sha":null,"homepage":"","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/XantreDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null}},"created_at":"2024-03-09T11:01:56.000Z","updated_at":"2025-08-31T08:10:18.000Z","dependencies_parsed_at":"2024-10-22T16:32:28.782Z","dependency_job_id":null,"html_url":"https://github.com/XantreDev/react-native-skia-ui","commit_stats":null,"previous_names":["xantregodlike/react-native-skia-ui","xantredev/react-native-skia-ui"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/XantreDev/react-native-skia-ui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XantreDev%2Freact-native-skia-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XantreDev%2Freact-native-skia-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XantreDev%2Freact-native-skia-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XantreDev%2Freact-native-skia-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/XantreDev","download_url":"https://codeload.github.com/XantreDev/react-native-skia-ui/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XantreDev%2Freact-native-skia-ui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278794397,"owners_count":26046968,"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","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["components","react-native","reanimated","skia"],"created_at":"2024-10-21T18:06:17.050Z","updated_at":"2025-10-07T14:52:13.946Z","avatar_url":"https://github.com/XantreDev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `react-native-skia-ui`\n\n[showcase.webm](https://github.com/XantreGodlike/react-native-skia-ui/assets/57757211/f9579007-d8aa-438c-8083-915c8fb2ad41)\n\nCross platform UI primitives implemented with `@shopify/react-native-skia`.\nThis library provides functionality of system UI components like `ActivityIndicator` for Android, IOS and Web.\n\n### Why not use `ActivityIndicator` from `react-native`?\n\n- `react-native-skia-ui` components are highly customizable, you can change the color, size, stroke width, stroke cap, etc.\n- `react-native-skia-ui` allows you to animate the progress of the `ActivityIndicator` (for example, you can animate the progress of `MaterialCircularProgressIndicator.Determinate`). It's powered by `react-native-reanimated`.\n- `react-native-skia-ui` components are consistent across platforms. For example, `MaterialCircularProgressIndicator` looks the same on Android, IOS and Web (unlike `ActivityIndicator` from `react-native`).\n\n### Cases when you should use `ActivityIndicator` from `react-native`:\n\n- You don't need to customize the `ActivityIndicator` and you don't need to animate it.\n- You need native look and feel of the `ActivityIndicator` on Android and IOS (for most cases, it's what you need).\n\nComponents are ported from flutter and are implemented using `@shopify/react-native-skia` and `react-native-reanimated`.\n\n## Installation\n\n```sh\nnpm install react-native-skia-ui\n```\n\n### Peer Dependencies\n\nThis library has the following peer dependencies:\n\n- `@shopify/react-native-skia`\n- `react-native-reanimated`\n\nIf you don't have them installed, you can install them with:\n\n```sh\nnpm install @shopify/react-native-skia react-native-reanimated\n```\n\n## Usage\n\nFor now, the library only provides a few components:\n\n### `react-native-skia-ui/material-circular-progress-indicator`\n\n- `MaterialCircularProgressIndicator.Determinate`\n- `MaterialCircularProgressIndicator.Indeterminate`\n- `MaterialCircularProgressIndicator` (blend of the two above)\n\n### `react-native-skia-ui/cupertino-activity-indicator`\n\n- `CupertinoActivityIndicator`\n- `CupertinoActivityIndicator.PartiallyRevealed`\n\n[Example](./example/src//App.tsx)\n\n```tsx\nimport * as React from 'react';\n\nimport { StyleSheet, Text, View } from 'react-native';\nimport { MaterialCircularProgressIndicator } from 'react-native-skia-ui/material-circular-progress-indicator';\nimport { useSharedValue, withTiming } from 'react-native-reanimated';\nimport { CupertinoActivityIndicator } from 'react-native-skia-ui/cupertino-activity-indicator';\nexport default function App() {\n  const progress = useSharedValue(0);\n  React.useEffect(() =\u003e {\n    const id = setInterval(() =\u003e {\n      progress.value = withTiming(Math.random(), { duration: 1000 });\n    }, 1000);\n\n    return () =\u003e clearInterval(id);\n  });\n\n  return (\n    \u003cView style={styles.container}\u003e\n      \u003cText\u003eDeterminate progress indicators\u003c/Text\u003e\n      \u003cMaterialCircularProgressIndicator.Determinate\n        size={56}\n        valueColor=\"green\"\n        strokeWidth={5}\n        strokeCap=\"round\"\n        value={progress}\n      /\u003e\n      \u003cMaterialCircularProgressIndicator.Determinate\n        size={100}\n        valueColor=\"blue\"\n        strokeWidth={4}\n        strokeCap=\"round\"\n        value={progress}\n      /\u003e\n      \u003cCupertinoActivityIndicator.PartiallyRevealed\n        color=\"black\"\n        progress={progress}\n        radius={50}\n      /\u003e\n\n      \u003cText\u003eIndeterminate progress indicators\u003c/Text\u003e\n      \u003cMaterialCircularProgressIndicator.Indeterminate\n        size={40}\n        valueColor=\"black\"\n      /\u003e\n      \u003cMaterialCircularProgressIndicator.Indeterminate\n        size={100}\n        valueColor=\"red\"\n        backgroundColor={'#f0f0f0'}\n        strokeWidth={8}\n        strokeCap=\"round\"\n      /\u003e\n      \u003cCupertinoActivityIndicator color=\"black\" radius={50} /\u003e\n    \u003c/View\u003e\n  );\n}\n```\n\n## Contributing\n\nSee the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.\n\n## License\n\nMIT\n\n---\n\nMade with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxantredev%2Freact-native-skia-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxantredev%2Freact-native-skia-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxantredev%2Freact-native-skia-ui/lists"}