Fresnel ist ein komplett in FPC geschriebenes open source GUI-Framework basierend auf CSS. Es hat Formulare wie die LCL, die sowohl in LCL-Anwendungen laufen, als auch eigenständig als native Anwendungen.
Ein Fresnel Formular kann mit dem Lazarus Designer und Object Inspector bearbeitet werden, und hat neben der lfm Datei noch eine css-Datei, die man live editieren kann. Dazu ein CSS Inspector.
https://wiki.freepascal.org/Fresnel
Fresnel läuft bereits unter Linux, Macos, Windows und im Browser per Webassembly.
Es gibt bereits viele der Standardkomponenten:
- Containers — TBody, TDiv, TSpan, TLabel, TImage, TPanel, TGroupBox
- Buttons and toggles — TButton, TCheckBox, TRadioButton, TToggle, TCheckGroup, TRadioGroup
- Text input — TEdit, TMemo, TButtonEdit, TWordsEdit
- Lists and combo boxes — TListBox, TColorListBox, TCheckListBox, TGroupedListBox, TComboBox
- Tabs, splitters — TTabs, TPageControl, TTabSheet, TSplitter, TStatusBar, TToast
- Trees and calendars — TTreeView, TCalendar, TCalendarEdit
- Grids — TGrid, TDBGrid
- Indicators and shapes — TProgressBar, TTrackBar, TSpinner, TShape
- Menus — TMainMenu, TPopupMenu
- A code editor - TFresnelSynEdit
- benutzt die fcl-css units
- kennt bereits über 150 Attribute
- Layouters: flow, flex und grid
- :root, :empty, :first-child, :last-child, :only-child and the -of-type versions.
- :nth-child(...) and friends, including the An+B of <selector> form.
- :not(...), :is(...), :where(...).
- pseudo classes, e.g. :hover, :focus, :enabled, :valid
- pseudo elements, e.g. ::selection
- units: px, %, rem, em, pt, fr, vw, vh, ...
- Stylesheets: type css, application css, form css, element style css
- custom attributes with var(...)
- nested and @media rules
Es gibt Testsuites, die auch die Komponenten testen.
Schönes Wochenende!