The Chromium Embedded Framework (CEF) is a useful "embedding framework" that allows applications to make use of browser based technologies. (https://bitbucket.org/chromiumembedded/cef)
CEF is comprised (especially in the example and answer to your question, provided by Kemperr) of HTML, CSS and Javascript on a frontend basis.
You can store these files clientside and use them within your CEF calls (as part of index.js or required within thereof).
To render them we refer to a URL that references the path of the client_packages directory (inside your server's directory).
EXAMPLE:
mp.browsers.new('package://menu/index.html'); // This would refer to client_packages/menu/index.html
A working example would be to place that in an event handler on your clientside, like so:
mp.events.add('guiReady', () => {
mp.browsers.new('package://menu/index.html'); // Here we display the browser instance to the client
});
CEF can handle ES5 and ES6 scripting, so there is very little limitation on what you can do in terms of front-end work.
---
Alternatively, you can opt-in to using the NativeUI stuff:
https://github.com/alexguirre/RAGENativeUI
Which I wouldn't recommend if you are not well versed in .NET (or rather, C#)