Getting Started
To use forms4s in your project, add the following dependencies:
libraryDependencies ++= Seq(
"io.github.forms4s" %% "forms4s-core" % "0.1.0", // Core functionality
"io.github.forms4s" %% "forms4s-circe" % "0.1.0", // JSON handling
"io.github.forms4s" %% "forms4s-tyrian" % "0.1.0" // UI rendering
)
Basic Usage
Here's a simple example of how to use forms4s:
case class MyForm(name: String, age: Int) derives ToFormElem
val form = summon[ToFormElem[MyForm]].get
// Create an empty form state
val formState: FormElementState = FormElementState.empty(form)
// Render the form (using Tyrian in this example)
import forms4s.tyrian.BootstrapFormRenderer
val formHtml = BootstrapFormRenderer.renderForm(formState)
// Extract form data as JSON
import forms4s.circe.*
val formData = formState.extractJson
// Load JSON into a form
val rebuiltState = formState.load(formData)