Recent

Author Topic: Pixie: A lightweight HTML/CSS rendering engine for Free Pascal and Lazarus 🌟  (Read 13165 times)

Wallaby

  • Guest
Introducing Pixie - is a drop-in Lazarus component (TPixieHtmlView) that renders HTML and CSS using platform-native graphics.

No browser engine, no embedded Chromium, no external dependencies — just a single package you add to your project.

MIT-licensed and available on GitLab home page.
« Last Edit: March 19, 2026, 11:57:40 pm by retrofoxed »

sfeinst

  • Sr. Member
  • ****
  • Posts: 259
Well done.

Any thoughts (unless I missed it while skimming code) of adding a print capability (either to printer or to pdf)?

Wallaby

  • Guest
I am not really familiar with printing (and it's different for each platform), but PDF export sounds doable.

It's basically just implementing Pixie.Canvas.PDF.pas implementing the same ~25 methods. I'll have a look into that.

mdalacu

  • Full Member
  • ***
  • Posts: 245
    • dmSimpleApps
Please make it installable via OPM! It would be great!

Gustavo 'Gus' Carreno

  • Hero Member
  • *****
  • Posts: 1353
  • Professional amateur ;-P
Hey retrofoxed,

I've sent the request to the OPM email for Pixie to be included in OPM.
I'm probably a bit late and you've done it already, but just in case you didn't, I made the call.

Cheers,
Gus

paweld

  • Hero Member
  • *****
  • Posts: 1617
Great component.
I've added support for inlined images: https://gitlab.com/retrofoxed/pixie/-/work_items/11 - if you could merge it.
Best regards / Pozdrawiam
paweld

zeljko

  • Hero Member
  • *****
  • Posts: 1929
    • http://wiki.lazarus.freepascal.org/User:Zeljan
Great job !

AlexTP

  • Hero Member
  • *****
  • Posts: 2709
    • UVviewsoft
I posted few minor 'work items' (== issues) to Gitlab.

wp

  • Hero Member
  • *****
  • Posts: 13515
I've sent the request to the OPM email for Pixie to be included in OPM.
I'm probably a bit late and you've done it already, but just in case you didn't, I made the call.
You may call me nitpicking, but I would appreciate it the author would send the request by himself. The reason is that this way I get an e-mail address of the package maintainer. Yes - OPM has a maintenance issue: authors are very eager to submit packages, but sometimes disappear soon, so that the Lazarus team is left with abandoned packages which maybe do not compile any more after changes made to Lazarus or FPC. Having an e-mail address is an ultimate possibility to contact the author when there are issues with his contribution.

@retrofoxed: So, if you'd like to have your work in OPM (which I think is a great idea), I would like you to send an e-mail to opm@lazarus-ide.org. Add where I can find your package (I do know, but would not like to search the forum for this some time in the future). Please prepare also a list of the Lazarus and FPC versions, as well as the widgetsets under which your package can be used.

Roland57

  • Hero Member
  • *****
  • Posts: 605
    • msegui.net
Thank you for sharing this very interesting project.

I compiled the demo (under Linux) and navigated to my personal website. The welcome page loads perfectly, but when I try to open a link from that page I get an error (see image attached).

Is it because the links are relative?

Code: Text  [Select][+][-]
  1. <a class="navigation-link" href="doc/fpdoc/index.html">Documentation MSEgui (fpdoc)</a>
My projects are on Codeberg.

Gustavo 'Gus' Carreno

  • Hero Member
  • *****
  • Posts: 1353
  • Professional amateur ;-P
Hey WP,

You may call me nitpicking, but I would appreciate it the author would send the request by himself. The reason is that this way I get an e-mail address of the package maintainer. Yes - OPM has a maintenance issue: authors are very eager to submit packages, but sometimes disappear soon, so that the Lazarus team is left with abandoned packages which maybe do not compile any more after changes made to Lazarus or FPC. Having an e-mail address is an ultimate possibility to contact the author when there are issues with his contribution.

That is not nitpicking AT ALL!!
That's forward thinking!!

Hope retrofoxed sends you that email STAT :D

Cheers,
Gus

cdbc

  • Hero Member
  • *****
  • Posts: 2787
    • http://www.cdbc.dk
Hi Roland
Quote
Is it because the links are relative?
No -- It's because Pixie is not a web-browser, but a 'Html/Css' rendering-engine @retrofoxed made that clear in an earlier post --
Regards Benny
If it ain't broke, don't fix it ;)
PCLinuxOS(rolling release) 64bit -> KDE6/QT6 -> FPC Release -> Lazarus Release &  FPC Main -> Lazarus Main

Roland57

  • Hero Member
  • *****
  • Posts: 605
    • msegui.net
Hi Roland
Quote
Is it because the links are relative?
No -- It's because Pixie is not a web-browser, but a 'Html/Css' rendering-engine @retrofoxed made that clear in an earlier post --
Regards Benny

Hi Benny. Thank you for the clarification.

But in that case, it seems to me that the program should do nothing when I click on a link, instead of sending an error message. When I have time, I will look into the code.
My projects are on Codeberg.

dsiders

  • Hero Member
  • *****
  • Posts: 1615
Hi Roland
Quote
Is it because the links are relative?
No -- It's because Pixie is not a web-browser, but a 'Html/Css' rendering-engine @retrofoxed made that clear in an earlier post --
Regards Benny

Hi Benny. Thank you for the clarification.

But in that case, it seems to me that the program should do nothing when I click on a link, instead of sending an error message. When I have time, I will look into the code.

From what I can see, the BaseURL has a trailing '.' character. GIGO.

zamtmn

  • Hero Member
  • *****
  • Posts: 683
Introducing Pixie - is a drop-in Lazarus component (TPixieHtmlView) that renders HTML and CSS using platform-native graphics.

No browser engine, no embedded Chromium, no external dependencies — just a single package you add to your project.

MIT-licensed and available on GitLab home page.

is it written by an AI or a human?

 

TinyPortal © 2005-2018