Vaadin 24.4 integrates with React, unifies Flow and Hilla development, and more!

Vaadin 23.1: The first new minor release!

Mikael Sukoinen
Mikael Sukoinen
On Jun 8, 2022 3:35:21 PM
In Product

Blue background with Vaadin logo and the text "platform release V23.1".

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

Want to know more about the roadmap? Read our previous post that dives into detail!

Go to 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.

If you’re ready to get started, follow our upgrade guide to get onto Vaadin 23.1 or start a brand new project at!

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, LumoUtility.Background.PRIMARY and Lumo Utility.Font Size.LARGE. Use this for borders, background colors, CSS grid layouting, etc.

Read documentation

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:

  •  AppLayout
  •  Crud
  •  CookieConsent
  •  CustomField
  •  Dialog
  •  Login
  •  Notification

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.

Read documentation

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.

Screenshot 2022-06-08 at 15.09.44Figure 1: A Dialog with buttons in the header and footer

Read documentation

Flow framework

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.

Portlet support is available for Prime customers or trial users.

Read documentation

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 improvements

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.

Learn more

Collaboration Engine

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.

Read documentation

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 CollaborationList::apply method.

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.

Read documentation

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.


Please refer to product-specific changelogs for any potential breaking changes.

Reporting issues

Please report any issues you may encounter. You can find instructions in our technical documentation.

What's next?

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!

Interested in finding out where Vaadin is headed? View the Roadmap. Or, try Vaadin today and start a new project!

Mikael Sukoinen
Mikael Sukoinen
Mikael has a passion for writing text, code and music. He’s currently utilising his skills to explain difficult concepts in plain language at Vaadin Ltd.
Other posts by Mikael Sukoinen