Compose, don't design
Every element is a TFrame or a TForm. Nest them in code with generics and anonymous methods: SetContentAsFrame
Core concepts
Build Delphi FMX screens the way Flutter does — by composing small, reusable elements in code. Named routes, a scaffold, layout containers and ready-made elements, all on top of TFrameStand.

FMXER is a small visual framework for Embarcadero Delphi FireMonkey (FMX), inspired by Google Flutter: instead of designing every screen in the form designer, you compose screens in code out of reusable elements — frames and forms — and let FMXER create, place, show and free them for you.
uses FMXER.Navigator, FMXER.ScaffoldForm, FMXER.ColumnForm, FMXER.TextFrame, FMXER.ButtonFrame;
procedure TMainForm.FormCreate(Sender: TObject);
begin
Navigator(FormStand1)
.DefineRoute<TScaffoldForm>('home'
, procedure (Home: TScaffoldForm)
begin
Home
.SetTitle('Hello, FMXER!')
.SetContentAsForm<TColumnForm>(
procedure (Col: TColumnForm)
begin
Col
.AddFrame<TTextFrame>(50
, procedure (Text: TTextFrame)
begin
Text.SetContent('A screen composed in code');
end
)
.AddFrame<TButtonFrame>(60
, procedure (Button: TButtonFrame)
begin
Button
.SetText('Say hello')
.SetOnClickHandler(
procedure
begin
Home.ShowSnackBar('Hello!', 2000);
end
);
end
);
end
);
end
);
Navigator.RouteTo('home');
end;FMXER is built on TFrameStand and TFormStand: every element is shown through a stand, so transitions and visual effects come from a TStyleBook, not from code.