Vaadin is becoming even better with the upcoming minor releases. You can access the new features and improvements, such as the LumoUtility Java API and improved Grid, in the first minor release, Vaadin 23.1.
We adopted a simplified release model with Vaadin 23 two months ago. This model enables us to deliver new features faster in minor releases and manifests the split between Flow and Hilla (previously “Vaadin Fusion”) as separate frameworks, allowing us to focus on the Flow roadmap and providing a simpler installation experience for both Flow and Hilla users.
Hilla 1.1 is being released in tandem with Vaadin 23.1. You can find the Hilla framework release notes on hilla.dev.
Want to know more about the roadmap? Read our previous post that dives into detail!
Go to start.vaadin.com and select 23.1 in the technology settings if you are eager to get started.
Design System and web components
All of the new features, bug fixes, and improvements can be followed and discussed on GitHub. We prioritize them based on requests from our customers, as well as on input from the community. You can report issues on GitHub and give a “thumbs-up” on open issues that you’d like us to prioritize for the next release.
New LumoUtility Java API for Lumo utility classes
Lumo utility classes are style sheets for the Lumo package, with class names that you can apply for themes and layouts. Vaadin 23.1 ships with a LumoUtility package Java API that provides constants for all the CSS classes; for example,
Lumo Utility.Font Size.LARGE. Use this for borders, background colors, CSS grid layouting, etc.
Added missing theme variant constants to Flow components
Some theme variants, such as
DateTimePickerVariant.LUMO_SMALL, have up till now not been represented in Flow, making it difficult for Flow developers to discover and utilize them. The missing theme variants (and enums, if they were missing) have been added in V23.1.
Added missing HasStyle interface to Flow components
A handful of Flow components did not implement the
HasStyle interface, making it challenging to apply CSS class names and their inline styles. This has now been fixed across the board, with
HasStyle implemented for the following components:
Column freezing for Grid
The previous version of Grid supported column freezing on the left-hand side of a grid, so that they remain static when scrolling horizontally. The new implementation enables the same column freezing for the right-hand side.
A built-in header and footer for Dialog
Most application dialogs have a header with a title and a footer and some buttons. This feature will remove the need to implement these individually for every project.
Figure 1: A Dialog with buttons in the header and footer
Our Flow framework receives a number of improvements and fixes. Read the release notes for a complete list of items and information on any breaking changes
Support for Liferay 7
The Liferay portlet is once again supported in Vaadin 23. You can now use Vaadin 23 to create the UI for your Widgets running in Liferay 7.
Support for Spring Boot 2.7
Vaadin 23.1 has parallel support for Spring Boot 2.6 and 2.7 to give you more time to upgrade. Support for Spring Boot 2.6 will be removed in the next minor release, Vaadin 23.2.
Vite is an alternative build tool/bundler for the frontend and a replacement for Webpack. Vaadin 23.1 introduces Vite support for exported web components, making it possible to build and run them with Vite in development and production modes.
Vaadin’s Collaboration Engine delivers real-time collaborative features for users, no matter what their time or place may be.
What do we mean by “collaborative features”? Read our post on online collaboration for modern business apps to learn more.
New Form Manager API
Collaboration Engine now includes a Form Manager API that provides property-based data access to form editing events to allow you to build custom logic. It enables you to set property values and highlight fields in a form, and provides a simple way to create a custom form component with real-time collaborative features. Use it to inform users through visual representations or cues that another user is already working on the same field.
New List Operation API
The List Operation API is a low-level API to describe advanced CollaborationList operations. Its ListOperation class allows you to prepare a list operation that can then be applied to the list using the
Use it to define a certain condition or conditions that must be met when the operation is attempted. If the condition is not met – the operation will not be completed. The API is designed for collaborative features with strict order requirements in mind, so as to avoid duplicate operations.
You can use
CompletableFuture to track the result of asynchronous operations.
How to upgrade
You can upgrade from Vaadin 23.0 by replacing the version number with <23.1.0> in your pom.xml. See our upgrade guide for instructions on how to update from previous Vaadin versions.
<properties> <java.version>17</java.version> <vaadin.version>23.1.0</vaadin.version> <selenium.version>4.1.2</selenium.version> </properties>
Please refer to product-specific changelogs for any potential breaking changes.
Please report any issues you may encounter. You can find instructions in our technical documentation.
Our roadmap details the upcoming features and the progress that’s being made on them. If you think something is missing, please let us know by commenting below!