lion/packages/field/README.md
Thomas Allmer ec8da8f12c feat: release inital public lion version
Co-authored-by: Mikhail Bashkirov <mikhail.bashkirov@ing.com>
Co-authored-by: Thijs Louisse <thijs.louisse@ing.com>
Co-authored-by: Joren Broekema <joren.broekema@ing.com>
Co-authored-by: Gerjan van Geest <gerjan.van.geest@ing.com>
Co-authored-by: Erik Kroes <erik.kroes@ing.com>
Co-authored-by: Lars den Bakker <lars.den.bakker@ing.com>
2019-04-26 10:37:57 +02:00

1.8 KiB

Form Fundaments

Fields are the most fundamental building block of the Form System. They are the basis of both fields and fieldsets.

What are fields?

Fields are the actual form controls the end user interacts with. They extend the LionField class, which on its turn uses the FormControlMixin. Fields provide a normalized, predictable API for platform components and customly made form controls. On top of this, they feature:

  • data synchronization with models
  • formatting of view values
  • advanced validation possibilities
  • creation of advanced user interaction scenarios via interaction states
  • provision of labels, help texts in an easy, declaritive manner
  • better focus management
  • accessibility out of the box
  • advanced styling possibilities: map your own Design System to the internal HTML structure

Platform wrappers

  • LionInput, a wrapper for <input>
  • LionTextarea, a wrapper for <textarea>
  • LionSelect, a wrapper for <select>

Custom wrappers

Whenever a native form control doesn't exist or is not sufficient, a custom form control should be created. One could think of components like:

  • slider
  • combobox
  • autocomplete
  • etc...

What are fieldsets?

Fieldsets are groups of fields. They can be considered fields on their own as well, since they partly share the normalized api via FormControlMixin. Fieldsets are the basis for:

  • LionFieldset
  • LionForm
  • LionRadioGroup
  • LionCheckboxGroup

Other Resources

  • FormControlMixin (TODO: document)
  • LionField (TODO: document)
  • Model values
  • FormatMixin
  • InteractionStateMixin (TODO: document)
  • ValidateMixin (TODO: document)
  • FocusMixin (TODO: document)
  • FieldCustomMixin (TODO: document)