Generates reactive HTML forms directly from type definitions. These forms can be used with ScalaJS and Outwatch and the generated HTML/CSS is fully customizable. Scala 2.13 and 3 are supported. Here's a Demo and it's Code.
libraryDependencies += "com.github.fdietze" %%% "formidable" % "<version>"
import outwatch._
import outwatch.dsl._
import colibri.reactive._
import formidable._
case class Person(name: String, age: Option[Int])
val state:Var[Person] = Form.state[Person]
div(
Form[Person].render(state),
div(state.map(_.toString)),
)
Formidable defines a typeclass Form[T]
with many default instances:
- Primitives:
Int
,Double
,Long
,String
,Boolean
Option[T]
Seq[T]
,Vector[T]
,List[T]
- sealed traits
- tuples
- case classes
- recursive types
- generic types
Automatic derivation is achieved using Magnolia.