Discover

Adi2

A modern GUI library for Ada with CSS styling, XML UI, and SDL3
3 ratings4.16
Saves59
CategoryDeveloper Tools
PlatformWeb
PricingFree

Adi2 is an open-source GUI toolkit written in Ada that supports CSS styling with live reload, declarative XML layouts compiled to Ada, transitions, SVG and Lottie animations, internationalization, and asset bundling into a single executable. It uses SDL3 for rendering and targets cross-platform development including Windows XP, macOS, Linux, and WebAssembly. Adi2 is intended for developers seeking a native, portable GUI framework in Ada with modern styling and layout capabilities.

open-sourcecross-platform

Ratings & Reviews

Write a review
4.16

3 reviews

Product
4.66
Design & Polish
4.16
Performance
3.66
9/14/2026

This is more interesting as a native Ada toolkit than as a browser imitation. The CSS and HTML pieces look useful because they stay bounded to desktop style widgets and docs style content. The tradeoff is that capability details matter more than the feature list while the API is still changing.

Information

CategoryDeveloper Tools
PlatformsWeb
PricingFree
AccountNot confirmed
ListedAugust 2026
Report a problem

Around the Web

Show HN59 source points · 26 comments

I'm going to ask the obvious question: why ADA? --- My framework (Dioxus Native - https://github.com/dioxuslabs/blitz) would fit quite nicely into your comparison table: - Compiles to self-contained OS-native app bundle - <10 MB (compiled with Oz) or ~15MB (with O3) (can be golfed smaller) - GPU or CPU rendering - Windows 10+ / macOS / Linux / mobile / wasm / (+ web DOM with Dioxus Web) - Rust - Memory safety: borrow checked - Styling: CSS (support matrix: https://blitz.is/status/css)

nicoburns · Imported from Show HN

There's so much repetition in there. E.g.: (adi-json.adb) if not W.After_Key (W.Depth) then -- things else W.After_Key (W.Depth) := False; end if; -- ...more things... W.After_Key (W.Depth) := False; And what's the deal with those filenames? If you replace adi- with TIMMEH, you'll see what I mean. Code should be more DRY (don't repeat yourself).

tosti · Imported from Show HN

Cool project. Good idea to use SDL3; it brings along much more than SDL2 where you had to use a lot of other libraries to become platform independent with all features. The disadvantage might be that SDL3 itself (as SLD2) is pretty big. Ada got a bit out of fashion (unfortunately) but it's still an impressive, excellent language. Still an interesting choice. Maybe you can give more information about your choice and plans with the GUI library.

Rochus · Imported from Show HN

Looks great! I was particularly impressed by the following: >"A built-in lightweight HTML view widget renders documentation-style markup with cascading styles." Basically you built a miniature, integrated, embedded, open-source web browser which can parse CSS and render to SDL... very impressive!: https://github.com/ovenpasta/adi2/blob/master/src/adi-widget... https://github.com/ovenpasta/adi2/blob/master/src/adi-widget... Also, it should be possible to easily, easily port this source code to Delphi and/or FreePascal and/or Graeme Geldenhuys' "Blaise" language (A modern, self-hosting Object Pascal compiler, https://github.com/graemeg/blaise) should anyone in those respective communities decide to do that... Also, if Ada had an {$IFDEF} equivalent, then with proper use of {$IFDEF's} (since the source code is so similar across these language families), the source code could potentially support all of the above languages from a single source code base... But, of course, maybe that wouldn't be desired... maybe individual ports would serve those other communities better... and then again, maybe it wouldn't! (Just thinking aloud... :-) ) Anyway, great work, and once again, very impressed by the lightweight HTML view widget!

peter_d_sherman · Imported from Show HN

I'm not very good at programming. I tried to run this on Windows 11 and ran into some issues but managed to get most of the examples mostly working after a while. They were all missing text but most of the pictures and css would render. I used msys2 (and spammed Gemini with error messages) for building manually but had to modify a number of the build files after making sure I had all the SDL3 bits installed. I'm assuming I did something wrong on my end, but commenting here to let you know I did have problems building and running this on Windows. I am interested in learning the Ada language and wanted to use it to make very simple desktop apps for Windows. The GUI options for Windows were always kind of rough.

llm_hal_9000 · Imported from Show HN