Skip to content

Fluent model

Mateu is not only declarative.

It also provides a fluent model made of records and interfaces that implement Component.

This model lets you build pages, apps and reusable UI blocks programmatically.


Represents an application shell.

Important fields include:

  • route
  • homeRoute
  • pageTitle
  • title
  • subtitle
  • menu
  • widgets
  • variant
  • logo

App is the fluent equivalent of a full application shell.


Represents a full page with:

  • title
  • subtitle
  • breadcrumbs
  • header
  • footer
  • content
  • toolbar
  • buttons
  • badges
  • kpis
  • actions

Use it when you want explicit control over a page structure.


Represents a fluent form with:

  • header
  • footer
  • content
  • toolbar
  • buttons

Use it when you want form composition without relying only on inferred declarative fields.


Represents a listing/table/card-style collection page.

Important capabilities include:

  • columns
  • filters
  • toolbar
  • search
  • selection
  • paging
  • lazy loading
  • detail path
  • header/footer content

Use it for searchable collections and listing screens.


Represents a fluent menu bar built from Actionable options.

Use it when navigation must be created explicitly.


Fluent representation of action behavior.

It includes settings for:

  • background
  • validationRequired
  • confirmationRequired
  • rowsSelectedRequired
  • href
  • js
  • sse
  • modal config
  • custom events

This matches the same conceptual space as the declarative @Action.


Mateu also exposes a fluent trigger model.

Core types include:

  • Trigger
  • OnLoadTrigger
  • OnSuccessTrigger
  • OnErrorTrigger
  • OnValueChangeTrigger
  • OnEnterTrigger
  • OnCustomEventTrigger

Use the fluent trigger model when dynamic interaction behavior should be described directly in code instead of only via annotations.


Small fluent metadata object with:

  • favicon
  • pageTitle
  • homeRoute

Useful in combination with UISupplier.


The fluent model gives you:

  • explicit component trees
  • explicit page composition
  • explicit app composition
  • a way to mix reusable UI blocks into declarative screens

Use declarative by default.
Use fluent when you need more control.