Scala API for Vaadin Framework
Scala Java
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Scaladin makes easier to use Vaadin Framework with Scala programming language. It's a wrapper library that provides a pure Scala API for Vaadin Framework.

Build Status


Vaadin Forum is the place for discussion about Scaladin. You can use the existing Vaadin & Scala thread or create your own.

How to use it?

Scaladin 3.2 requires Vaadin 7.5 and Scala 2.11.

1. Add dependencies to Scaladin and Vaadin to your Scala project (using sbt here):

resolvers += "Scaladin Snapshots" at ""

libraryDependencies ++= Seq(
  "org.vaadin.addons" %% "scaladin" % "3.2-SNAPSHOT",
  "com.vaadin" % "vaadin-server" % "7.5.10",
  "com.vaadin" % "vaadin-client-compiled" % "7.5.10",
  "com.vaadin" % "vaadin-themes" % "7.5.10"

2. Scaladin applications are deployed as servlets, during the development time you could use xsb-web-plugin.

3. Define a servlet and a Scaladin UI:

package com.example

import javax.servlet.annotation.WebServlet
import vaadin.scala._
import vaadin.scala.server.ScaladinServlet

@WebServlet(urlPatterns = Array("/*"))
class Servlet extends ScaladinServlet(
  ui = classOf[HelloWorldUI]

class HelloWorldUI extends UI(theme = ValoTheme.ThemeName) {

  content = new VerticalLayout { layout =>
    margin = true
    spacing = true

    addComponent(new Label {
      value = "Hello World!"
      styleNames += ValoTheme.LabelH1

    addComponent(Button("Click Me", { e =>
      layout.addComponent(Label("Thanks for clicking!"))

4. If you use xsbt-web-plugin, start a web server by saying sbt ~jetty:start and your Scaladin application should be available at http://localhost:8080:



Scaladin is licensed under the Apache 2.0 License.