Ready-made form inputs: text, price and password fields (with a live rules checklist and strength meter), dropdowns, date, time and colour pickers, and image and document uploads.
// Compose Multiplatform: Android, desktop JVM, iOS
implementation("io.github.omarshehe:forminput:2.1.0")
// Android Views (XML)
implementation("io.github.omarshehe:forminput-views:1.0.8")Releases up to 1.0.6 were published on JitPack as com.github.OmarShehe:FormInputs. From 1.0.8 the library is on Maven Central under a new group and artifact name. To update, remove the JitPack repository and change the dependency:
// before
implementation("com.github.OmarShehe:FormInputs:1.0.6")
// after
implementation("io.github.omarshehe:forminput-views:1.0.8")The Compose Multiplatform library is io.github.omarshehe:forminput. Kotlin packages are unchanged, so no code changes are needed.
./gradlew :app:installDebug opens a launcher with a Compose demo of every input and the old View sample. The code to copy is in the demo:
| You want | Look at |
|---|---|
| Every input and the state pattern | DemoSections.kt |
| A whole form from a list of states | DemoGeneratedForm.kt |
| Style, shape and colours | DemoStyle.kt |
| Your own texts or language | DemoLocalization.kt |
| The View (XML) inputs | activity_main.xml |
- State-driven. One state class per input; you keep the state and replace it with what
onValueChangereturns. - Customisable. A plain
Modifierchanges any size,FormInputThemesets style and shape for a whole form, and every field takestextStyleandcontentPadding. - Password field with an animated checklist and strength meter; rules can be switched off or replaced.
- Uploads with a file-size limit and a type icon per file.
- Accessible and translated. Screen-reader names on icon-only controls; built-in English and Swahili, replaceable through
FormInputStrings.
iOS is compile-checked only; picking a file there reports "not supported".
reference.md: every state, composable and option on one page. Every public composable also has KDoc.
This repo ships a Claude Code skill, .claude/skills/use-forminput/. It teaches an assistant which input to pick, the state pattern, styling, form-wide defaults, custom texts and the common mistakes, and it points to reference.md for exact parameters. Copy the folder into your own project's .claude/skills/ and the assistant picks it up when you build forms with forminput.
./gradlew :forminput:jvmTest runs the library tests. Publishing is described in PUBLISHING.md.
MIT, see LICENSE.
