{"id":20846316,"url":"https://github.com/kofigyan/soronkostepper","last_synced_at":"2026-04-16T13:40:50.433Z","repository":{"id":201710667,"uuid":"223161867","full_name":"kofigyan/SoronkoStepper","owner":"kofigyan","description":"Intuitive and user-friendly implementation of a stepper","archived":false,"fork":false,"pushed_at":"2020-07-18T11:55:58.000Z","size":4684,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-19T05:09:22.008Z","etag":null,"topics":["android","kotlin-android","stepper","stepper-library"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kofigyan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-11-21T11:47:37.000Z","updated_at":"2020-08-16T20:12:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"53a52a2c-72be-44ad-96ac-00efa479bd20","html_url":"https://github.com/kofigyan/SoronkoStepper","commit_stats":null,"previous_names":["kofigyan/soronkostepper"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kofigyan%2FSoronkoStepper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kofigyan%2FSoronkoStepper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kofigyan%2FSoronkoStepper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kofigyan%2FSoronkoStepper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kofigyan","download_url":"https://codeload.github.com/kofigyan/SoronkoStepper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243207863,"owners_count":20253934,"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":["android","kotlin-android","stepper","stepper-library"],"created_at":"2024-11-18T02:15:44.357Z","updated_at":"2025-12-26T14:02:52.727Z","avatar_url":"https://github.com/kofigyan.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SoronkoStepper\nSoronkoStepper is an Android library implementation of a stepper to indicate the various states and transitions in an app.\n\n![alt tag](https://raw.githubusercontent.com/kofigyan/SoronkoStepper/master/screenshots/demo_re_re.gif)\n\n## Quick Start\n\nGet a feel of how it works:\n\n\u003ca href=\"https://play.google.com/store/apps/details?id=com.kofigyan.soronkostepperview\"\u003e\n  \u003cimg alt=\"Get it on Google Play\"\n       src=\"https://raw.githubusercontent.com/kofigyan/StateProgressBar/master/screenshots/google-play-badge.png\" /\u003e\n\u003c/a\u003e\n\n \n### Gradle\n\nAdd the following dependency to your build.gradle :\n```\ndependencies {\n  implementation 'com.kofigyan.soronkostepper:soronkostepper:0.0.3'   \n}\n```\n\n### XML\n\n```\n      \u003ccom.kofigyan.soronkostepper.SoronkoStepper\n         android:layout_width=\"match_parent\"\n         android:id=\"@+id/soronko_stepper\"\n         app:ssv_maxStepperNumber=\"five\"\n        app:ssv_currentStepperNumber=\"two\"\n       app:ssv_checkStepperCompleted=\"true\"\n       android:layout_height=\"wrap_content\"\n       app:ssv_currentStepperDescriptionColor=\"#009688\"\n       app:ssv_stepperBackgroundColor=\"#BDBDBD\"\n       app:ssv_stepperDescriptionColor=\"#808080\"\n       app:ssv_stepperForegroundColor=\"#009688\"\n       app:ssv_stepperNumberBackgroundColor=\"#808080\"\n       app:ssv_stepperNumberForegroundColor=\"#eeeeee\"/\u003e\n        \n\n\n```\n\nTo add description data to SoronkoStepper :\n\n```\n\n  private val descriptionData = arrayOf(\"Details\", \"Status\", \"Photo\", \"Confirm\", \"Done\")\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        setContentView(your_layout)\n        mStepper = findViewById(R.id.soronko_stepper)\n        mStepper.descriptionData = descriptionData\n    }\n\n```\n\n## XML Attributes\n\n        ssv_currentStepperNumber =\u003e Current stepper number. Must be one of the following constant values : one , two , three , four .\n        Related method : setCurrentStepperNumber(StepperNumber)\n\n        ssv_maxStepperNumber  =\u003e Maximum stepper number. Must be one of the following constant values : one , two , three , four .\n        Related method : setMaxStepperNumber(StepperNumber)\n\n        ssv_stepperBackgroundColor  =\u003e Stepper background color. Should be a color value. Possible forms are \"#rgb\", \"#argb\", \"#rrggbb\", or \"#aarrggbb\".\n        Related method : stepperBackgroundColor(int)\n\n        ssv_stepperForegroundColor  =\u003e Stepper foreground color. Should be a color value. Possible forms are \"#rgb\", \"#argb\", \"#rrggbb\", or \"#aarrggbb\".\n        Related method : stepperForegroundColor(int)\n\n        ssv_stepperNumberBackgroundColor =\u003e Stepper number background color. Should be a color value. Possible forms are \"#rgb\", \"#argb\", \"#rrggbb\", or \"#aarrggbb\".\n        Related method : stepperNumberBackgroundColor(int)\n\n        ssv_stepperNumberForegroundColor =\u003e Stepper number foreground color. Should be a color value. Possible forms are \"#rgb\", \"#argb\", \"#rrggbb\", or \"#aarrggbb\".\n        Related method : stepperNumberForegroundColor(int)\n\n        ssv_currentStepperDescriptionColor =\u003e Current stepper description color. Should be a color value. Possible forms are \"#rgb\", \"#argb\", \"#rrggbb\", or \"#aarrggbb\".\n        Related method : currentStepperDescriptionColor(int)\n\n        ssv_stepperDescriptionColor =\u003e Stepper description color. Should be a color value. Possible forms are \"#rgb\", \"#argb\", \"#rrggbb\", or \"#aarrggbb\".\n        Related method : stepperDescriptionColor(int)\n\n        ssv_stepperSize =\u003e Stepper size . Must be a dimension value with preferrable unit of dp eg. 25dp\n        Related method : stepperSize(float)\n\n        ssv_stepperTextSize =\u003e Stepper text(number) size . Must be a dimension value with preferrable unit of sp eg. 15sp\n        Related method : stepperNumberTextSize(float)\n\n        ssv_stepperDescriptionSize =\u003e Stepper description size . Must be a dimension value with preferrable unit of dp eg. 20dp\n        Related method : stepperDescriptionSize(Int)        \n \n        ssv_checkStepperCompleted =\u003e Check completed steppers . Must be a boolean value,either \"true\" or \"false\"\n        Related method : checkStepperCompleted(Boolean)        \n     \n        ssv_animationStartDelay =\u003e Stepper  animation start delay . Must be an integer value eg. \"500\" , \"1000\" , \"2000\" , \"5000\" , \"10000\" etc\n        Related method : animStartDelay(int)\n\n  \n\n\n## KOTLIN/JAVA\n\nSoronkoStepper mStepper = findViewById(R.id.soronko_stepper)\n\n     mStepper.stepperForegroundColor = ContextCompat.getColor(this, R.color.demo_stepper_foreground_color)\n     mStepper.stepperBackgroundColor = ContextCompat.getColor(this, android.R.color.darker_gray)\n                        \n     mStepper.stepperNumberForegroundColor = ContextCompat.getColor(this, android.R.color.white)\n     mStepper.stepperNumberBackgroundColor = ContextCompat.getColor(this, android.R.color.background_dark)\n                  \n    mStepper.stepperSize = 40f\n    mStepper.stepperNumberTextSize = 20f\n    \n    setCurrentStepperNumber(SoronkoStepper.StepperNumber.TWO)\n    \n    mStepper.stepperNumberTypeface = \"fonts/RobotoSlab-Light.ttf\"\n    \n    mStepper.checkStepperCompleted = true\n     \n    mStepper.stepperDescriptionSize = 18\n\n    currentStepperDescriptionColor =\n                        ContextCompat.getColor(this , R.color.description_foreground_color)\n\n    stepperDescriptionColor =\n                        ContextCompat.getColor(this , R.color.description_background_color)\n             \n    mStepper.stepperDescriptionTypeface = \"fonts/RobotoSlab-Light.ttf\"\n \n    mStepper.descriptionTruncateEnd = true\n    mStepper.descriptionMultilineTruncateEnd = 2\n     \n \n\n### EXTRA DEMOS(WITH CODES)\n\n- A One-Stepper SoronkoStepper\n\n ![alt tag](https://raw.githubusercontent.com/kofigyan/SoronkoStepper/master/screenshots/one_stepper.gif)\n\n```\n\u003ccom.kofigyan.soronkostepper.SoronkoStepper\n            android:layout_width=\"match_parent\"\n            android:id=\"@+id/soronko_stepper\"\n            app:ssv_maxStepperNumber=\"one\"\n            app:ssv_currentStepperNumber=\"one\"\n            android:layout_height=\"wrap_content\"/\u003e\n\n```\n\n - A Two-Stepper SoronkoStepper\n\n ![alt tag](https://raw.githubusercontent.com/kofigyan/SoronkoStepper/master/screenshots/two_stepper.gif)\n\n```\n\u003ccom.kofigyan.soronkostepper.SoronkoStepper\n            android:layout_width=\"match_parent\"\n            android:id=\"@+id/soronko_stepper\"\n            app:ssv_maxStepperNumber=\"two\"\n            app:ssv_currentStepperNumber=\"one\"\n            android:layout_height=\"wrap_content\"/\u003e\n\n```\n\n\n - A Three-Stepper SoronkoStepper\n\n  ![alt tag](https://raw.githubusercontent.com/kofigyan/SoronkoStepper/master/screenshots/three_stepper.gif)\n\n```\n  \u003ccom.kofigyan.soronkostepper.SoronkoStepper\n              android:layout_width=\"match_parent\"\n              android:id=\"@+id/soronko_stepper\"\n              app:ssv_maxStepperNumber=\"three\"\n              app:ssv_currentStepperNumber=\"two\"\n              android:layout_height=\"wrap_content\"/\u003e\n\n  ```\n\n\n  -  A Four-Stepper SoronkoStepper\n\n  ![alt tag](https://raw.githubusercontent.com/kofigyan/SoronkoStepper/master/screenshots/four_stepper_re_re.gif)\n\n```\n   \u003ccom.kofigyan.soronkostepper.SoronkoStepper\n               android:layout_width=\"match_parent\"\n               android:id=\"@+id/soronko_stepper\"\n               app:ssv_maxStepperNumber=\"four\"\n               app:ssv_currentStepperNumber=\"three\"\n               android:layout_height=\"wrap_content\"/\u003e\n\n```\n\n\n-  A Five-Stepper SoronkoStepper\n\n  ![alt tag](https://raw.githubusercontent.com/kofigyan/SoronkoStepper/master/screenshots/five_stepper.gif)\n\n```\n   \u003ccom.kofigyan.soronkostepper.SoronkoStepper\n               android:layout_width=\"match_parent\"\n               android:id=\"@+id/soronko_stepper\"\n               app:ssv_maxStepperNumber=\"five\"\n               app:ssv_currentStepperNumber=\"three\"\n               android:layout_height=\"wrap_content\"/\u003e\n\n```\n \n\n\n\n  -  Check Steppers Completed\n\n  ![alt tag](https://raw.githubusercontent.com/kofigyan/SoronkoStepper/master/screenshots/check_stepper_completed_re.gif)\n\n```\n   \u003ccom.kofigyan.soronkostepper.SoronkoStepper\n               android:layout_width=\"match_parent\"\n               android:id=\"@+id/soronko_stepper\"\n               app:ssv_checkStepperCompleted=\"true\"\n               app:ssv_maxStepperNumber=\"four\"\n               app:ssv_currentStepperNumber=\"three\"\n               android:layout_height=\"wrap_content\"/\u003e\n\n ```\n   \n   \n- Add Description Data to SoronkoStepper\n\n ![alt tag](https://raw.githubusercontent.com/kofigyan/SoronkoStepper/master/screenshots/description_stepper_re.gif)\n\n```\n \u003ccom.kofigyan.soronkostepper.SoronkoStepper\n                android:layout_width=\"match_parent\"\n                android:id=\"@+id/soronko_stepper\"\n                app:ssv_maxStepperNumber=\"four\"\n                app:ssv_currentStepperNumber=\"three\"\n                android:layout_height=\"wrap_content\"/\u003e\n\nprivate val descriptionData = arrayOf(\"Details\", \"Status\", \"Photo\", \"Confirm\", \"Done\")\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        setContentView(your_layout)\n        mStepper = findViewById(R.id.soronko_stepper)\n        mStepper.descriptionData = descriptionData\n    }\n\n```\n\n\n- Add Custom Font to Stepper Items and Stepper Description Data\n\n ![alt tag](https://raw.githubusercontent.com/kofigyan/SoronkoStepper/master/screenshots/typeface_stepper.gif)\n\n```\n private val descriptionData = arrayOf(\"Details\", \"Status\", \"Photo\", \"Confirm\", \"Done\")\n \n     override fun onCreate(savedInstanceState: Bundle?) {\n         super.onCreate(savedInstanceState)\n         setContentView(your_layout)\n         mStepper = findViewById(R.id.soronko_stepper)\n         mStepper.descriptionData = descriptionData\n        \n        mStepper.stepperNumberTypeface = \"fonts/RobotoSlab-Light.ttf\"\n        mStepper.stepperDescriptionTypeface = \"fonts/RobotoSlab-Light.ttf\"         \n         \n     }\n\n\n```\n\n\n- Change Colors (Stepper Background , Stepper Foreground, Stepper Number Background ,Stepper Number Foreground, Current Stepper Description, Stepper Description)\n\n ![alt tag](https://raw.githubusercontent.com/kofigyan/SoronkoStepper/master/screenshots/color_stepper.gif)\n\n ```\n \u003ccom.kofigyan.soronkostepper.SoronkoStepper\n             android:layout_marginTop=\"6dp\"\n             android:layout_width=\"match_parent\"\n             android:id=\"@+id/soronko_stepper\"\n             app:ssv_maxStepperNumber=\"four\"\n             app:ssv_currentStepperNumber=\"one\"\n             app:ssv_checkStepperCompleted=\"true\"\n             android:layout_height=\"wrap_content\"\n             app:ssv_currentStepperDescriptionColor=\"#009688\"\n             app:ssv_stepperBackgroundColor=\"#BDBDBD\"\n             app:ssv_stepperDescriptionColor=\"#808080\"\n             app:ssv_stepperForegroundColor=\"#009688\"\n             app:ssv_stepperNumberBackgroundColor=\"#808080\"\n             app:ssv_stepperNumberForegroundColor=\"#eeeeee\"/\u003e\n\n ```\n \n \n- Change Dimensions (Stepper, Stepper Number and Stepper Description sizes)\n\n ![alt tag](https://raw.githubusercontent.com/kofigyan/SoronkoStepper/master/screenshots/dimesion_stepper.gif)\n\n ```\n\u003ccom.kofigyan.soronkostepper.SoronkoStepper\n            android:layout_width=\"match_parent\"\n            android:id=\"@+id/soronko_stepper\"\n            app:ssv_maxStepperNumber=\"four\"\n            app:ssv_currentStepperNumber=\"two\"\n            app:ssv_stepperSize=\"45dp\"\n            app:ssv_stepperDescriptionSize=\"30dp\"\n            app:ssv_stepperTextSize=\"18sp\"\n            android:layout_height=\"wrap_content\"/\u003e\n```\n\n\n- Add Multiline Description Data to SoronkoStepper\n\n ![alt tag](https://raw.githubusercontent.com/kofigyan/SoronkoStepper/master/screenshots/multiline_stepper.gif)\n\n```\n     private val descriptionData = arrayOf(\"Details\\nPlace\", \"Status\\nPrice\", \"Photo\\nShoot\", \"Confirm\\nResponse\", \"Buy\\nDone\")\n\n  \n      override fun onCreate(savedInstanceState: Bundle?) {\n          super.onCreate(savedInstanceState)\n          setContentView(your_layout)\n          mStepper = findViewById(R.id.soronko_stepper)\n          mStepper.descriptionData = descriptionData\n          \n       }\n\n```\n\n- Ellipsized Description Data\n\n ![alt tag](https://raw.githubusercontent.com/kofigyan/SoronkoStepper/master/screenshots/ellipsized_stepper.gif)\n\n```\n\n   private val descriptionData4 = arrayOf(\"encyclopedia\", \"dictionaries\", \"bibliography\", \"librarian\" ,\"hostorian\")\n       \n       override fun onCreate(savedInstanceState: Bundle?) {\n           super.onCreate(savedInstanceState)\n           setContentView(your_layout)\n           mStepper = findViewById(R.id.soronko_stepper)\n           mStepper.descriptionData = descriptionData\n          \n         mStepper.descriptionTruncateEnd = true\n            \n       }\n```\n\n\n##  Developer\n\n  Kofi Gyan\n  (kofigyan2011@gmail.com) Currently opened to android engineer positions(remote/relocation)\n\n##  License\n\n Copyright 2016 Kofi Gyan.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n   `http://www.apache.org/licenses/LICENSE-2.0`\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkofigyan%2Fsoronkostepper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkofigyan%2Fsoronkostepper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkofigyan%2Fsoronkostepper/lists"}