Skip to main content

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)