{"id":14974360,"url":"https://github.com/joaosousa88/react-native-progress-steps","last_synced_at":"2025-07-18T18:34:46.782Z","repository":{"id":44997801,"uuid":"415962838","full_name":"joaosousa88/react-native-progress-steps","owner":"joaosousa88","description":"A lightweight and simple React Native component that tracks your progress by steps.","archived":false,"fork":false,"pushed_at":"2022-01-17T12:33:28.000Z","size":1411,"stargazers_count":17,"open_issues_count":2,"forks_count":5,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-15T20:42:49.422Z","etag":null,"topics":["customizable","lightweight","progress","react-native","steps"],"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/joaosousa88.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-10-11T14:30:21.000Z","updated_at":"2025-04-24T05:58:47.000Z","dependencies_parsed_at":"2022-08-24T01:00:36.110Z","dependency_job_id":null,"html_url":"https://github.com/joaosousa88/react-native-progress-steps","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/joaosousa88/react-native-progress-steps","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaosousa88%2Freact-native-progress-steps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaosousa88%2Freact-native-progress-steps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaosousa88%2Freact-native-progress-steps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaosousa88%2Freact-native-progress-steps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joaosousa88","download_url":"https://codeload.github.com/joaosousa88/react-native-progress-steps/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaosousa88%2Freact-native-progress-steps/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265810185,"owners_count":23831946,"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":["customizable","lightweight","progress","react-native","steps"],"created_at":"2024-09-24T13:50:27.264Z","updated_at":"2025-07-18T18:34:46.766Z","avatar_url":"https://github.com/joaosousa88.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @joaosousa/react-native-progress-steps\n\nA lightweight and simple React Native component that tracks your progress by steps.\n\n![example 1](https://res.cloudinary.com/dwdhvtj90/image/upload/v1635955323/github/example-1.gif)\n![example horizontal](https://res.cloudinary.com/dwdhvtj90/image/upload/v1639762623/github/example-horizontal.gif)\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n- [Properties](#properties)\n  - [ProgressSteps](#progresssteps)\n    - [Steps array model](#steps-array-model)\n    - [Colors customization model](#colors-customization-model)\n- [Demos](#demos)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\nUsing yarn:\n\n```sh\nyarn add @joaosousa/react-native-progress-steps\n```\n\nUsing npm:\n\n```sh\nnpm install @joaosousa/react-native-progress-steps\n```\n\n## Usage\n\nYou can use it as is, using default components:\n\n```js\nimport ProgressSteps, { Title, Content } from '@joaosousa/react-native-progress-steps';\n\nconst [step, setStep] = useState(0);\n\n\u003cProgressSteps\n  currentStep={step}\n  steps={[\n    {\n      id: /* Your id */,\n      title: \u003cTitle\u003e{/* Your title */}\u003c/Title\u003e,\n      content: \u003cContent\u003e{/* Your content */}\u003c/Content\u003e,\n    },\n    {\n      id: /* Your id */,\n      title: \u003cTitle\u003e{/* Your title */}\u003c/Title\u003e,\n      content: \u003cContent\u003e{/* Your content */}\u003c/Content\u003e,\n    },\n  ]}\n/\u003e;\n\n```\n\nIf you want to customize, you can use the property `colors` following the structure on the example below:\n\n```js\nimport ProgressSteps, { Title, Content } from '@joaosousa/react-native-progress-steps';\n\nconst [step, setStep] = useState(0);\n\n\u003cProgressSteps\n  currentStep={step}\n  steps={[\n    {\n      id: /* Your id */,\n      title: \u003cTitle\u003e{/* Your title */}\u003c/Title\u003e,\n      content: \u003cContent\u003e{/* Your content */}\u003c/Content\u003e,\n    },\n    {\n      id: /* Your id */,\n      title: \u003cTitle\u003e{/* Your title */}\u003c/Title\u003e,\n      content: \u003cContent\u003e{/* Your content */}\u003c/Content\u003e,\n    },\n  ]}\n  colors={{\n    title: {\n      text: {\n        normal: '#94d2bd',\n        active: '#005f73',\n        completed: '#005f73',\n      },\n    },\n    marker: {\n      text: {\n        normal: '#94d2bd',\n        active: '#005f73',\n        completed: '#f4f3ee',\n      },\n      line: {\n        normal: '#94d2bd',\n        active: '#005f73',\n        completed: '#005f73',\n      },\n    },\n  }}\n/\u003e\n```\n\nOr, alternatively, with your own custom components:\n\n```js\nimport ProgressSteps from '@joaosousa/react-native-progress-steps';\nimport YourMarker from './YourMarker';\nimport YourTitle from './YourTitle';\nimport YourContent from './YourContent';\n\nconst [step, setStep] = useState(0);\n\n\u003cProgressSteps\n  marker={\u003cYourMarker /\u003e}\n  currentStep={step}\n  steps={[\n    {\n      id: /*Your id*/,\n      title: \u003cYourTitle\u003e{/*Your title*/}\u003c/YourTitle\u003e,\n      content: \u003cYourContent\u003e{/* Your content */}\u003c/YourContent\u003e,\n    },\n    {\n      id: /*Your id*/,\n      title: \u003cYourTitle\u003e{/*Your title*/}\u003c/YourTitle\u003e,\n      content: \u003cYourContent\u003e{/* Your content */}\u003c/YourContent\u003e,\n    },\n  ]}\n/\u003e;\n\n```\n\nTo help you make visual changes, the property `stepState` will be automatically injected in your custom components with the following data:\n\n```js\n{\n  stepIndex: number;\n  isActive: boolean;\n  isCompleted: boolean;\n  isFirst: boolean;\n  isFirstInteraction: boolean;\n  isLast: boolean;\n}\n```\n\nHere is an example of `stepState` usage in a custom component:\n\n```js\nimport { Text } from 'react-native';\n\nconst CustomTitle = ({ children, stepState: { isCompleted } }) =\u003e {\n  if (isCompleted) {\n    return \u003cText\u003eWell done! This step was completed.\u003c/Text\u003e;\n  }\n\n  return \u003cText\u003e{children}\u003c/Text\u003e;\n};\n\nexport default CustomTitle;\n```\n\n## Properties\n\n### ProgressSteps\n\n| Name        | Description                                    | Default    | Type                                  | Optional |\n| ----------- | ---------------------------------------------- | ---------- | ------------------------------------- | -------- |\n| currentStep | The index of the currently active step         | none       | Number                                | No       |\n| steps       | List of steps                                  | none       | [Array](#steps-array-model)           | No       |\n| orientation | Support for vertical or horizontal orientation | 'vertical' | String                                | Yes      |\n| marker      | Custom step identifier                         | Marker     | ReactElement                          | Yes      |\n| colors      | Property that let you add customization        | none       | [Object](#colors-customization-model) | Yes      |\n\n#### Steps array model\n\n```js\n[\n  {\n    id?: string | number,\n    title: ReactElement,\n    content?: ReactElement,\n  },\n  ...\n]\n```\n\n#### Colors customization model\n\n```js\n{\n  title?: {\n    text: {\n      normal: string,\n      active: string,\n      completed: string\n    }\n  },\n  marker?: {\n    text: {\n      normal: string,\n      active: string,\n      completed: string\n    },\n    line: {\n      normal: string,\n      active: string,\n      completed: string\n    }\n  }\n}\n\n```\n\n## Demos\n\n| Example 1                                                                                        | Example 2                                                                                        | Example 3                                                                                        |\n| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |\n| ![example 1](https://res.cloudinary.com/dwdhvtj90/image/upload/v1635955323/github/example-1.gif) | ![example 2](https://res.cloudinary.com/dwdhvtj90/image/upload/v1635955315/github/example-2.gif) | ![example 3](https://res.cloudinary.com/dwdhvtj90/image/upload/v1635955314/github/example-3.gif) |\n| [example/src/examples/Example1](example/src/examples/Example1)                                   | [example/src/examples/Example2](example/src/examples/Example2)                                   | [example/src/examples/Example3](example/src/examples/Example3)                                   |\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","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoaosousa88%2Freact-native-progress-steps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoaosousa88%2Freact-native-progress-steps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoaosousa88%2Freact-native-progress-steps/lists"}