Not an answer, a suggestion.
The beauty of Lazarus is you code will (almost) work perfectly using the native widget set. So, write your code for (eg) Windows using Windows default, win32 the move it to the Mac, the default is now Cocoa, it will probably compile and run as expected. Yes, from time to time, you might need the occasional {$ifdef WINDOW} etc to cover up an odd difference between widget sets, so, good idea to test cross platform frequently.
When you get to moving it to Linux, yep, I strongly recommend Qt6 not the default Gtk2.
Davo