{"id":3091,"url":"https://github.com/NikolaKirev/OnboardKit","last_synced_at":"2025-08-06T16:32:07.425Z","repository":{"id":50548787,"uuid":"98033863","full_name":"NikolaKirev/OnboardKit","owner":"NikolaKirev","description":"Customisable user onboarding for your iOS app","archived":false,"fork":false,"pushed_at":"2024-06-21T11:12:52.000Z","size":1454,"stargazers_count":539,"open_issues_count":10,"forks_count":67,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-11-28T16:51:06.108Z","etag":null,"topics":["ios","onboarding","swift","uikit","viewcontroller","walkthrough"],"latest_commit_sha":null,"homepage":null,"language":"Swift","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/NikolaKirev.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}},"created_at":"2017-07-22T13:43:00.000Z","updated_at":"2024-11-16T02:18:36.000Z","dependencies_parsed_at":"2022-08-31T11:53:06.450Z","dependency_job_id":null,"html_url":"https://github.com/NikolaKirev/OnboardKit","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NikolaKirev%2FOnboardKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NikolaKirev%2FOnboardKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NikolaKirev%2FOnboardKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NikolaKirev%2FOnboardKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NikolaKirev","download_url":"https://codeload.github.com/NikolaKirev/OnboardKit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228923746,"owners_count":17992573,"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":["ios","onboarding","swift","uikit","viewcontroller","walkthrough"],"created_at":"2024-01-05T20:16:31.136Z","updated_at":"2024-12-09T16:31:17.161Z","avatar_url":"https://github.com/NikolaKirev.png","language":"Swift","funding_links":[],"categories":["Walkthrough / Intro / Tutorial","Libs","UI [🔝](#readme)","iOS Apps (Search Results)"],"sub_categories":["Web View","UI"],"readme":"![OnboardKit](Assets/banner.png)\n\n[![Swift 5.0](https://img.shields.io/badge/Swift-5.0-orange.svg?style=flat)](https://developer.apple.com/swift/)\n[![Version](https://img.shields.io/cocoapods/v/OnboardKit.svg?style=flat)](http://cocoapods.org/pods/OnboardKit)\n[![License](https://img.shields.io/cocoapods/l/OnboardKit.svg?style=flat)](http://cocoapods.org/pods/OnboardKit)\n[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)\n[![Twitter](https://img.shields.io/badge/twitter-@NikolaKirev-blue.svg?style=flat)](https://twitter.com/NikolaKirev)\n\n# OnboardKit\n*Customizable user onboarding for your UIKit app in Swift*\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://media.giphy.com/media/3ohjV8gDG3kE5dbWSI/giphy.gif\" /\u003e\u003c/p\u003e\n\n## Requirements\n\n* Swift 5.0\n* Xcode 10\n* iOS 11.0+\n\n## Installation\n\n#### [Carthage](https://github.com/Carthage/Carthage)\n\n````bash\ngithub \"NikolaKirev/OnboardKit\"\n````\n\n#### [CocoaPods](http://cocoapods.org)\n\n````ruby\nuse_frameworks!\n\n# Latest release in CocoaPods\npod 'OnboardKit'\n\n# Get the latest on master\npod 'OnboardKit', :git =\u003e 'https://github.com/NikolaKirev/OnboardKit.git', :branch =\u003e 'master'\n````\n\nDon't forget to `import OnboardKit` in the file you intend to use it.\n\n## Usage\n\n1. Create and populate a bunch of `OnboardPage` instances\n````swift\nlet page = OnboardPage(title: \"Welcome to OnboardKit\",\n                       imageName: \"Onboarding1\",\n                       description: \"OnboardKit helps you add onboarding to your iOS app\")\n````\n2. Create an `OnboardViewController`\n````swift\nlet onboardingViewController = OnboardViewController(pageItems: [pageOne, ...])\n````\n3. Present the view controller\n````swift\nonboardingViewController.presentFrom(self, animated: true)\n````\n(use this convenience method to make sure you present it modally)\n\n## Customization\n\n![Custom examples](Assets/custom_examples.png)\n\n#### Customizing Fonts and Colors\nYou can customize the look of your onboarding by changing the default colors and fonts.\n\n1. Initialize an `AppearanceConfiguration` instance with the desired custom style properties\n````swift\nlet appearance = AppearanceConfiguration(tintColor: .orange,\n                                         titleColor: .red,\n                                         textColor: .white,\n                                         backgroundColor: .black,\n                                         imageContentMode: .scaleAspectFit,\n                                         titleFont: UIFont.boldSystemFont(ofSize: 32.0),\n                                         textFont: UIFont.boldSystemFont(ofSize: 17.0))\n````\n2. Pass the `AppearanceConfiguration` instance as a parameter when initialising an `OnboardViewController`\n````swift\nlet onboardingVC = OnboardViewController(pageItems: onboardingPages,\n                                         appearanceConfiguration: appearance)\n````\n\n##### List of customizable properties:\n- `tintColor` - used for tinting the advance and action buttons\n- `titleColor` - used to set title color (textColor is used if not specified)\n- `textColor` - used to set description text color\n- `backgroundColor` - used to set view background color\n- `imageContentMode` - used to set the content mode of page imageViews\n- `titleFont` - used to set the title font (used for the action button font as well) \n- `textFont` - used to set the description text font (used for the advance button font as well)\n- `advanceButtonStyling` - a block used to customize the advance button\n- `actionButtonStyling` - a block used to customize the action button\n\n#### Customizing Buttons\nTo customize the style of the advance and action buttons on each page of the onboarding flow, you can use a `ButtonStyling` closure.\n\n1. Create the closure\n````swift\nlet advanceButtonStyling: OnboardViewController.ButtonStyling = { button in\n    button.setTitleColor(UIColor.lightGray, for: .normal)\n    button.titleLabel?.font = UIFont.systemFont(ofSize: 16.0, weight: .semibold)\n}\n````\n2. Pass the closure in the `AppearanceConfiguration` initializer\n````swift\nlet appearance = OnboardViewController.AppearanceConfiguration(tintColor: .orange,\n                                                               advanceButtonStyling: advanceButtonStyling)\n````\n\n## Author\n\n### Nikola Kirev\n\n* Website: [http://nikolakirev.com](http://nikolakirev.com)\n* Twitter: [@NikolaKirev](http://twitter.com/nikolakirev)\n\n## License\n\nOnboardKit is available under the MIT license. See the [LICENSE](https://github.com/NikolaKirev/OnboardKit/blob/master/LICENSE) file for more info.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNikolaKirev%2FOnboardKit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNikolaKirev%2FOnboardKit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNikolaKirev%2FOnboardKit/lists"}