Skip to content


What is XUI?

XUI started as a collection of user interface (UI) controls that I needed for my own projects but has grown over the years into a comprehensive suite of additional classes, modules and extensions that simplify and speed up Xojo app development.

XUI contains many awesome UI controls including the insanely powerful XUICodeEditor and beautiful everyday components such as tab bars, source lists and tag canvases.

In addition to UI controls XUI provides methods for working with Markdown, handling in-app notifications, handling undo, parsing TOML and a robust string and maths library.

XUI is 100% API 2.0 compliant, is actively developed and suggestions for new controls are always welcome.

XUI is sold as unencrypted Xojo source code that is extensively documented and has been battle-tested in multiple projects over several years. It's so well documented in fact that this entire documentation website is built from the source code comments using a custom command line tool that uses several of the XUI components itself!

Use the sidebar to peruse the various components included in the framework.


XUI is always developed on a Mac using the latest version of the Xojo IDE. It's designed to be cross-platform and widely compatible, avoiding the use of declares and only ever using 100% Xojo code.

The only non-Xojo requirement to use XUI in a project is that the open source DesktopTextInputCanvas plugin is required to be installed. This is included in the XUI framework download. You can read more about this plugin, why it is required and how to install it here.

Since XUI is designed with Xojo's best practices in mind it is 100% API 2.0 code. This means it relies on the new API 2.0 UI controls provided by the Xojo IDE (such as DesktopApplication and DesktopWindow) to function correctly. Therefore, XUI may not be compatible with all API 1.0 projects out of the box. That does not mean that it won't work in older projects only that it may require a little bit of work on your part. If you put a XUI control on a Xojo DesktopWindow it should work fine. If you need to put a XUI control on an old API 1.0 Window you will need to manually change the Super of controls using a Desktop-prefixed control (such as XUISourceList which uses DesktopContainer) to the API 1.0 equivalent control (Container in this instance) and then rename several events on the control (such as Opening back to Open). Finally, controls that inherit from DesktopTextInputCanvas (such as XUICodeEditor) would need their Super changing to TextInputCanvas and you would need to download this open source plugin direct from Einhugur's website.

Purchase a license