← Back to Home

Domino UI

Domino UI

Status: Active, Open Source

Java Version: 11+

Learning Curve: Moderate

Last Release: v2.0.0 (2024)

Domino UI Website
Web UI UI Components

Domino UI is a Material Design component library for GWT (Google Web Toolkit) and J2CL (Java-to-JavaScript compiler), providing a comprehensive set of modern, responsive UI widgets. Built on top of Elemento (a lightweight library for working with DOM), Domino UI offers over 50 components including cards, dialogs, forms, data tables, navigation elements, and more—all following Material Design guidelines. Unlike older GWT component libraries, Domino UI embraces modern web standards and provides a fluent, type-safe API for building web UIs entirely in Java. The library includes built-in theming support, responsive layouts, animations, and accessibility features. Domino UI is particularly relevant as part of the broader J2CL ecosystem, which aims to modernize GWT by compiling Java directly to modern JavaScript (rather than ES5). For teams committed to writing web applications in Java without JavaScript, Domino UI provides a contemporary component library that doesn't feel dated, offering Material Design aesthetics with the productivity benefits of Java's type system and tooling.

Code Example

import org.dominokit.domino.ui.button.Button;
            import org.dominokit.domino.ui.cards.Card;
            import org.dominokit.domino.ui.notifications.Notification;
            import elemental2.dom.DomGlobal;
            
            public class HelloDominoUI {
                public void onModuleLoad() {
                    Card card = Card.create("Welcome")
                        .appendChild(Button.create("CLICK ME")
                            .addClickListener(evt -> 
                                Notification.create("Hello, Domino UI!")
                                    .info()
                                    .show()
                            )
                        );
                    
                    DomGlobal.document.body.appendChild(card.element());
                }
            }
            
            // Compiles to modern JavaScript with J2CL
            // Material Design components out of the box
            // Type-safe, fluent API