Domino-UI is a type-safe, fluent Java UI component library that compiles to JavaScript GWT. It lets Java teams build modern UIs without external JavaScript dependencies, while keeping IDE refactoring, static typing, and a consistent API across components.
Building Domino UI requires JDK 17 or newer.
- Fluent, structured composition that mirrors HTML hierarchies.
- Rich component set (datatable, forms, layouts, menus, dialogs, etc.).
- Strong typing and refactoring safety for large Java codebases.
- Works with GWT/Java without runtime JavaScript dependencies.
- Configurable themes, CSS utilities, and MDI icon integration.
Domino-UI code should read like the HTML structure while staying debuggable. The preferred style initializes complex children first, then composes the tree fluently.
TextBox userName = TextBox.create("User name")
.setRequired(true)
.setAutoValidation(true);
TextBox password = TextBox.password("Password")
.setRequired(true)
.setAutoValidation(true);
Button login = Button.create(Icons.lock_open())
.setBackground(Color.THEME)
.setContent("Login")
.block();
Card.create("LOGIN")
.appendChild(userName)
.appendChild(password)
.appendChild(login);Domino UI provides scoped, composable CSS: color modes, visual identities, accents, density, character and surface themes, contextual colors, component emphasis, custom tokens, and runtime Dynamic CSS utilities. The complete styling and theming guide explains the design choices, stylesheet delivery options, Java APIs, accessibility guidance, customization recipes, and production optimization choices.
- Introduction: https://dominokit.com/solutions/domino-ui/v2
- Getting started: https://dominokit.com/solutions/domino-ui/v2/docs/getting-started
- Demo app: https://dominokit.com/domino-ui/demo/v2/home
