Author Topic: Fresnel announcement  (Read 1373 times)

mattias

  • Administrator
  • Full Member
  • *
  • Posts: 214
    • http://www.lazarus.freepascal.org
Fresnel announcement
« on: July 30, 2026, 03:14:47 pm »
Hi all,

I am excited to announce a milestone for Fresnel - a modern GUI component library for Free Pascal that brings web-like layout styling to desktop applications. After a lot of foundational work, the framework is now ready to be used for writing simple applications!

For those unfamiliar, Fresnel introduces a UI paradigm where the layout and look of custom-drawn controls are entirely governed by CSS, offering a flexible alternative or complement to traditional LCL controls.

## Key Highlights & Current Capabilities

* CSS-Driven Design: Separate design from logic cleanly using familiar CSS rules (inline styling, classes, IDs, selectors, and pseudo-classes like :hover).
* Modern Layout Engines: Supports flex, grid, and flow layouters for dynamic, responsive UI designs.
* Flexible Units & Typography: Define elements using em, vh, cm, mm, %, or px, along with font fallback support.
* Can coexist with LCL: Run Fresnel forms alongside LCL forms, or embed a Fresnel viewport directly inside an LCL control (TFresnelLCLControl).
* Multi-Platform: Runs stand-alone or via LCL on Linux, macOS, Windows, and WebAssembly in the browser.
* Visual Tools: Includes a dockable CSS Inspector in Lazarus, live CSS updating, and a form designer package.

## Any Help is More Than Welcome!

While Fresnel is ready to build small apps and utility tools, it is still actively evolving. If you love modern UI design, contributions of any kind are greatly appreciated.

Ways you can help:

* Test & Report: Build small projects and let us know what works or breaks.
* Components & Styling: Help expand the component library or polish default stylesheets.
* Core & CSS Engine: Assist with expanding CSS attribute support and layout engine optimizations.
* Docs & Samples: Help write guides, tutorials, or clean example applications.

Check out the documentation, examples, and roadmap on the official wiki:

https://wiki.freepascal.org/Fresnel

There is also a demo website of the webassembly backend:

https://idefix.freepascal.org/~michael/fresnel/

Give it a spin, let us know what you think, and help us build the future of Pascal UIs!

ALLIGATOR

  • Sr. Member
  • ****
  • Posts: 476
  • FPC git[main] Lazarus git[main] 💪🐯💪
Re: Fresnel announcement
« Reply #1 on: July 30, 2026, 03:42:04 pm »
🎉

Thaddy

  • Hero Member
  • *****
  • Posts: 19805
  • Glad to be alive.
Re: Fresnel announcement
« Reply #2 on: July 30, 2026, 04:32:06 pm »
I will certainly do! Great job!
Any "programmer" that knows only one programming language is not a programmer

PeterEvans

  • New Member
  • *
  • Posts: 31
Re: Fresnel announcement
« Reply #3 on: September 02, 2026, 08:17:58 am »
At GitLab there has been an interesting commit to the Fresnel code base.

One day or so ago was committed “+ Add Android target” at GitLab.

There will be a demonstration of the code as it stands on 24 October in Europe. If you can not attend then you can make a video registration of the demo at

  https://www.blaisepascalmagazine.eu/product/pascalcafe-october-24th-video-production-2026/


  The cost of the latter is Euro 50.00

You can find out more about Pascal Cafe event under the Events tab at the website of Blaise Pascal Magazine.

Unfortunately I will not be able to attend in person. So, I have purchased a ticket for the video registration.

Thaddy

  • Hero Member
  • *****
  • Posts: 19805
  • Glad to be alive.
Re: Fresnel announcement
« Reply #4 on: September 02, 2026, 08:23:20 am »
I think that €50,- is excessive.
Any "programmer" that knows only one programming language is not a programmer

Soner

  • Sr. Member
  • ****
  • Posts: 334
Re: Fresnel announcement
« Reply #5 on: September 02, 2026, 01:32:21 pm »
I tested some of examples from https://idefix.freepascal.org/~michael/fresnel/ :
 - Mousewheel doesn't work anywhere.
 - I can't type anything in ButtonEdit example.
 - Freshnel doesn't work in Vivaldi browser, nothing was displayed.
 - In Buttondemo keypress(enter,space,esc) has no affect.

Tested with:
 - Firefox ESR 140.15.0(64-Bit) Windows 11.
 - Vivialdi 7.1.3570.60 (64 Bit) Windows 11.


Thaddy

  • Hero Member
  • *****
  • Posts: 19805
  • Glad to be alive.
Re: Fresnel announcement
« Reply #6 on: September 02, 2026, 04:05:51 pm »
Of course it does not work in Vivaldi : no webassembly support. The browser must support wasm.
I am not even sure firefox supports it, although it is listed:
https://salivity.github.io/wasm/article/which-browsers-support-webassembly-by-default

Also note that Fresnel is not limited to browsers: in this case the examples are cross-compiled to wasm but you can also compile to native code and use it in desktop apps.

The latest version of Vivaldi works OK with the examples.
« Last Edit: September 02, 2026, 07:19:53 pm by Thaddy »
Any "programmer" that knows only one programming language is not a programmer

Soner

  • Sr. Member
  • ****
  • Posts: 334
Re: Fresnel announcement
« Reply #7 on: September 02, 2026, 10:11:30 pm »
 It actually works now with Vivaldi 8.1.4087.75 (Latest Version).
Keypress works in Vivaldi too.
The modal windows do not work; when you click the "Select file…" button in the ButtonEdit demo, they close immediately. Same in Dialogs demo.
Tested with Vivaldi 8.1.4087.75 (64 Bit) Windows 11.

PeterEvans

  • New Member
  • *
  • Posts: 31
Re: Fresnel announcement
« Reply #8 on: September 03, 2026, 01:52:28 am »
Now I have your attention. Let's get to the substance of the message.
The announcement via Blaise Pascal Magazine is for an additional two (2) targets: Android and iOS.

xinyiman

  • Hero Member
  • *****
  • Posts: 2263
    • Lazarus and Free Pascal italian community
Re: Fresnel announcement
« Reply #9 on: September 03, 2026, 10:32:39 am »
Hi, I installed FPC and Lazarus trunk using fpcupdeluxe. Then I downloaded Skia4Delphi and Fresnel, installing Fresnel as a package. I compiled the "ComboBox" demo, copied the DLL to the folder containing the newly compiled executable, and the desktop version of Fresnel works fine. How do I compile it as a web application? Thanks!
Win10, Ubuntu and Mac
Lazarus: 2.1.0
FPC: 3.3.1

Thaddy

  • Hero Member
  • *****
  • Posts: 19805
  • Glad to be alive.
Re: Fresnel announcement
« Reply #10 on: September 03, 2026, 12:25:35 pm »
- Build pas2js if needed
- Build the wasm cross-compiler. (essential)
- reference the wasm binary just like any other shared binary.
See "building for the browser" https://gitlab.com/freepascal.org/lazarus/fresnel/-/blob/main/docs/development-guide.md?ref_type=heads
« Last Edit: September 03, 2026, 12:33:09 pm by Thaddy »
Any "programmer" that knows only one programming language is not a programmer

marcos-ebm

  • Jr. Member
  • **
  • Posts: 52
Re: Fresnel announcement
« Reply #11 on: September 10, 2026, 02:23:16 am »
thanks  :D
Lazarus 3.0 / LAMW 0.8.6.4 - Gradle 8.5 - Jdk 21 - Ndk 21e - Windows 11

hshatti

  • New Member
  • *
  • Posts: 19
  • Be kind!
Re: Fresnel announcement
« Reply #12 on: September 10, 2026, 11:45:53 am »
Long awaited Project, and I already love it!!!

Quote
While Fresnel is ready to build small apps and utility tools, it is still actively evolving. If you love modern UI design, contributions of any kind are greatly appreciated.

Ways you can help:

* Test & Report: Build small projects and let us know what works or breaks.
* Components & Styling: Help expand the component library or polish default stylesheets.
* Core & CSS Engine: Assist with expanding CSS attribute support and layout engine optimizations.
* Docs & Samples: Help write guides, tutorials, or clean example applications.

I want to contribute, I see that the project relies on SKIA as a rendering engine, I will try allowing native OS OpenGL/GLES renderer that can optionally replace skia and keep the component dependent-less?, is this on the table? any particular coding convention?, also keeping Delphi support is possible.

@PeterEvans
Quote
There will be a demonstration of the code as it stands on 24 October in Europe. If you can not attend then you can make a video registration of the demo at

  https://www.blaisepascalmagazine.eu/product/pascalcafe-october-24th-video-production-2026/

I'm attending the next Pascal Cafe this October since I live in NL nearby and I got the pass, but assuming this is a whole day event I don't see the timing schedule, and I didn't get any email to confirm after the payment success, normal or am i missing something?

Kudos to the authors!, Keep the good stuff, make pascal great again

« Last Edit: September 10, 2026, 11:50:03 am by hshatti »
Comrades!, Unpython the world

PeterEvans

  • New Member
  • *
  • Posts: 31
Re: Fresnel announcement
« Reply #13 on: September 10, 2026, 12:36:03 pm »
I got my Invoice/Receipt about two (2) days after I paid. But, I am in a different Time Zone...

kagamma

  • New Member
  • *
  • Posts: 23
Re: Fresnel announcement
« Reply #14 on: September 11, 2026, 05:09:06 am »
Tried the demos. Aside from a small issue where the checkbox mark does not fit inside the square (Waterfox 6.7.2, Arch Linux x86_64), everything works well. Congratulations!

Edit: On Waterfox, I cannot type anything in the Edit and WordsEdit demos (though typing works in the Memo/SynEdit demos). It works fine if I switch to Brave.

Edit 2: On Waterfox + DataAware demo, if I click on the two Edit fields first, I cannot type in either of them. However, if I click on the Memo first and then click on the Edit fields, I can type in them normally.

Edit 3: On Waterfox, trying to drag the window around quickly causes it to lose focus, stopping the drag action until the cursor is moved back inside the title bar.
« Last Edit: September 11, 2026, 07:03:10 am by kagamma »

 

TinyPortal © 2005-2018