Jefferson | Vaadin

Declarative UIs in pure Java

Like Thomas Jefferson advocated a "wall of separation between church and state," the Jefferson add-on helps you create a clean separation between presentation and content in your Vaadin app.


  • Style your content without touching your application logic.
  • Core API of only 4 classes.
    • Convenience classes included for common use cases.
  • Makes your content structure more discoverable, readable and understandable.
  • Encapsulates your views, making your code more modular and easier to change or reuse.
  • Plays nicely with MVC and MVP.
  • NEW in 1.3: Now includes a time-saving SmartPresentation that automatically lays out your content with minimal input required, letting you do rapid prototyping.

Jefferson lets you define your content structure separately from your app's data and behavior, and then lets you render this content with any presentation you like. Your content defines only the semantic structure of your app on screen, while your presentation gets to decide exactly what Components to render them with and how to style them. Once these two have been put together, all that is left is to implement the logic that injects the data and defines your app's behavior, which you can do as you would in any other Vaadin app.

For best practices, see the demo project to the right and the code examples below.


Link to this version
ExperimentalReleased 13 April 2012GNU Affero General Public License v3.0
Framework Support
Vaadin 7.0+
Also supported:
Vaadin 6 (1.3.0)
Browser Independent
Install with
Release notes - Version 1.3.0.Vaadin7

Vaadin 7 compatibility