Vaadin Reference
|
This section documents the current Vaadin release line — Vaadin 24 LTS / 25.x, Java 17+, Spring Boot 3 / Jakarta EE 10 — as published at the official Vaadin documentation, which is the reference these pages are written and verified against. No specific patch version is pinned. Flow (server-side Java) is the authoring style used throughout, with Hilla / React shown where it differs; Vaadin 7 and the pre-Flow architecture appear only as migration contrast. This content was generated with the assistance of AI and should be verified against the official documentation before being relied on in production, since Vaadin ships major releases roughly twice a year and its ecosystem iterates. This section’s bibliography lists the reference material consulted while preparing these pages. |
Welcome to the Vaadin reference. Vaadin is an open-source Java web framework for building business web applications without hand-writing HTML or JavaScript: you describe the UI as a server-side tree of components, and Vaadin keeps a set of Web Components in the browser in sync with it over an automatic client—server channel. This section documents the current Vaadin release line — Vaadin 24 LTS and the latest Vaadin 25.x — using Flow (the Java UI model) throughout, with Hilla (React + TypeScript) shown where it differs, written and verified against the official documentation.
If you are new to Vaadin, start with Getting Started and Architecture, then Components Overview, Layouts and Data Binding, then work down the list or jump to what you need.
What’s covered
Fundamentals
-
Getting Started — what Vaadin is, the Flow and Hilla models and the Web Components they share, open-source versus commercial editions, creating and running a project, the project structure, dev mode and Copilot, and the Vaadin 24 / 25 baselines.
-
Architecture — the server-side component tree and the client engine,
UI/VaadinSession/VaadinService, the state-sync channel, the thread model and the session lock, and request handling. -
Components Overview — the
Componentmodel and theHas*mixins, enabled and visible state, a grouped tour of the 40+ built-in components, and which ones are commercial. -
Layouts —
VerticalLayout/HorizontalLayoutand the flexbox model, sizing and alignment,FlexLayout,FormLayout,SplitLayout,AppLayout, andComposite.
Input, forms and data
-
Input Components — the data-entry fields, the
HasValuecontract, value-change modes, and the shared required / helper-text / prefix / suffix features. -
Data Binding —
BinderandBeanValidationBinder,ConverterandValidator,readBean/writeBean/writeBeanIfValid, and buffered versus unbuffered binding. -
The Grid Component — columns and renderers, in-memory
setItemsversus a lazyDataProvider, selection, item details and styling, theGrideditor andGridPro, andTreeGrid. -
Forms, CRUD and Master-Detail — assembling a bound form, a master-detail view, the
CRUDcomponent,ConfirmDialog, and optimistic locking.
Navigation and interaction
-
Routing and Navigation —
@RouteandRouterLink, route parameters and templates, theBeforeEnter/BeforeLeave/AfterNavigationlifecycle,RouterLayout, page titles, error views, and aSideNavmenu. -
Interaction and Overlays — buttons and shortcuts,
MenuBarandContextMenu,Notification,Dialog,Popover,Tooltip, theTabs/Accordion/Detailscontainers, and drag and drop. -
Server Push —
@Pushand the transports,UI.accessand the session lock, background work withVaadinExecutor, broadcasting to many UIs, and the@Pollalternative.
Client side and extensibility
-
The Element API and Web Components — reaching the DOM from Java, DOM events,
executeJsand@ClientCallable, and integrating a web component with@Tag/@NpmPackage/@JsModule. -
Building Custom Components —
Composite, extending a component, building from an element, a value-bearingCustomField, and packaging an add-on. -
Hilla and React Views —
@BrowserCallableendpoints and the generated client, file-based routing,@vaadin/react-components, Hilla forms, endpoint security, reactive endpoints and signals, and mixing Flow with Hilla.
Styling and design
-
Theming and Styling — the theme folder and
@Theme, Base / Lumo / Aura, Lumo CSS custom properties and the dark variant, theme and component variants, utility classes, and styling internals with::part(). -
Responsive Design and PWA — responsive
FormLayoutandAppLayout, Lumo breakpoint utilities,@PWAand the service worker, Web Push, and the Designing Apps guidance.
Integration and backend
-
Spring Boot Integration — the starter,
@SpringComponentand the Vaadin scopes, injecting services, a Spring Data JPA CRUD, and thevaadin.*properties. -
Jakarta EE and CDI — the
vaadin-cdiadd-on and its scopes, injection and CDI events, deploying a WAR, a JPA CRUD, and the Quarkus extension. -
Data Persistence — Spring Data JPA, jOOQ and Flyway, a lazy
Gridover a paginated repository, the@Transactionalboundary, and refreshing aDataProvider. -
REST and Services — a service layer, exposing a
@RestControlleralongside Flow, calling an external API off the UI thread, and endpoint versus REST.
Security
-
Security —
VaadinWebSecurityover Spring Security, route protection with@AnonymousAllowed/@PermitAll/@RolesAllowed, navigation access control, a login view,AuthenticationContext, CSRF and CSP, and securing Hilla endpoints.
Quality and delivery
-
Testing — browserless UI unit tests with
vaadin-testbench-unit, end-to-end tests with TestBench, the Playwright and Selenium options, load testing, and testing with Spring. -
Production and Deployment — the production build and the optimised bundle, licence validation, WAR / jar / Docker / native-image targets, reverse proxies and sticky sessions, and clustering.
-
Configuration and Dev Tools — the
vaadin.*properties, the frontend toolchain, hot deploy and live reload, feature flags, the dev tools window and Copilot,@NpmPackage, and Maven versus Gradle.
Advanced
-
Advanced Topics — lifecycle listeners, a custom
ErrorHandlerand system messages,@PreserveOnRefresh, the loading indicator, downloads and uploads, long-running tasks, and internationalisation withI18NProvider.
UI component libraries
-
UI Component Libraries — the built-in component set, the open-source add-ons worth knowing (Flow-Viritin, SO Charts, ApexCharts for Flow, Flowing Code), using Vaadin’s Web Components standalone, a decision aid, and the commercial Pro / Prime components and Kits.
Reference
-
Cheat sheet — a one-page, downloadable PDF summary of the essentials above for quick memorization.
Bibliography
-
vaadin.com/docs — the official Vaadin documentation, the source every page in this section is written and verified against; call out Getting Started, Building Apps, the Flow reference, the Hilla reference, Components, Styling, Designing Apps, the API / Javadoc, the Cookbook, the project starter, the Add-on Directory, and the release notes.
-
Official ecosystem and tooling cited in this section: Vaadin Spring, Vaadin CDI, Vaadin TestBench, the Vaadin Tools and Kits, Vaadin Copilot, the
@vaadin/*Web Components, Hilla, Flow-Viritin, SO Charts, ApexCharts for Flow, the Flowing Code open-source add-ons, and Spring Boot. -
MDN Web Docs — for the web-platform APIs Vaadin builds on (Web Components, the Shadow DOM, custom elements, WebSocket), cross-linked from the pages that use them, together with the existing JavaScript Development, TypeScript Reference, and React Reference sections on this site.
-
Duarte, Alejandro. Practical Vaadin: Developing Web Applications in Java. Apress (Springer Nature), 2021. ISBN 978-1-4842-7178-0 (print), 978-1-4842-7179-7 (electronic). Consulted as part of the bibliography for this section — see the publisher’s book page on Apress’s SpringerLink platform, Practical Vaadin (link.springer.com), the O’Reilly listing, and the companion code repository.
-
Fränkel, Nicolas. Learning Vaadin 7, 2nd ed. Packt Publishing, 2013. ISBN 978-1-78216-977-2. Consulted as part of the bibliography for this section. Packt has retired this title and it no longer has a live publisher page, so no link is given. Documents the obsolete Vaadin 7 API; used only to shape the conceptual topic list.
-
Duarte, Alejandro. Vaadin 7 UI Design By Example: Beginner’s Guide. Packt Publishing, 2013. ISBN 978-1-78216-226-1 (print), 978-1-78216-227-8 (ebook). Consulted as part of the bibliography for this section — see the book page on the Packt platform, Vaadin 7 UI Design By Example (subscription.packtpub.com). Documents the obsolete Vaadin 7 API; used only to shape the beginner-friendly ordering of the fundamentals.