Scala Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
app Added simple Bootstrap template. Mar 8, 2018
client/src Updated to latest version of Profig and Scribe. Feb 12, 2018
communication/shared/src/main/scala/io/youi/communication Complete and final removal of uPickle in favor of Circe (Resolves #38). Aug 8, 2017
core Prototyping of new HttpLink concept for better structured chaining of… Mar 15, 2018
dom Release 0.9.0-M6 Mar 15, 2018
example Added simple Bootstrap template. Mar 8, 2018
hypertext/src/main/scala/io/youi Fixes to Selection defaults for adjustX and adjustY. Oct 27, 2017
macros/shared/src/main/scala/io/youi Created `macros` module for internal Macro functionality. Aug 23, 2017
optimizer/src/main/scala/io/youi/optimizer Much better integration of HTMLOptimizer and added support to Templat… Mar 29, 2017
project Updated to latest dependencies. Mar 6, 2018
server/src Prototyping of new HttpLink concept for better structured chaining of… Mar 15, 2018
serverUndertow/src/main Added ServerException for tracing of URL causing an exception. Oct 26, 2017
spatial/shared/src Updated UIScreen.drawable to be `Future[Drawable]` to allow asynchron… Oct 5, 2017
stream/src/main/scala/io/youi/stream Updated Page to utilize `Content` instead of `File` for greater flexi… Jul 10, 2017
ui Fixes to ui functionality and hierarchical infrastructure. Nov 26, 2017
utilities/src/main/scala/io/youi/util Added simple Bootstrap template. Mar 8, 2018
work/logo Added new logo. Nov 15, 2017
.gitignore Updated Path.parse to handle encoded paths correctly. Sep 23, 2017
.travis.yml Reverted back to SBT 0.13.x until publishing can be figured out. Sep 5, 2017 Create Sep 7, 2017 Create Sep 7, 2017
LICENSE Badges, License, and SBT build setup. Oct 15, 2016 Dependency updates, README update, and WIP update. Oct 23, 2017
build.sbt Release 0.9.0-M6 Mar 15, 2018
config.json Added simple Bootstrap template. Mar 8, 2018
sonatype.sbt Reverted back to SBT 0.13.x until publishing can be figured out. Sep 5, 2017 Major updates to WIP with better hybrid support. Nov 5, 2017


Build Status Codacy Badge Codacy Badge Stories in Ready Gitter Maven Central Latest version

Next generation user interface and application development in Scala and Scala.js for web, mobile, and desktop.


There is heavy development going on toward 1.0, but YouI releases are stable and used in several production systems.


YouI is divided into modules of functionality to minimize the dependencies required for your specific usage:

  • app - unification of client and server to write complete applications (Scala and Scala.js)
  • canvas - User Interface implementation on HTML Canvas for greater power and flexibility than HTML provides
  • client - HTTP client for asynchronous request/response and restful support (Scala)
  • communication - communication framework to provide type-safe communication between a client / server (Scala and Scala.js)
  • core - core features generally useful for web and HTTP (Scala and Scala.js)
  • dom - features and functionality related to working with the browser's DOM (Scala.js)
  • example - example and test functionality for applications using youi
  • hypertext - extension functionality for working with HTML in a more powerful way
  • macros - internal macros for various internal uses
  • optimizer - HTML, JavaScript, and Image optimizations to reduce extra overhead from your application
  • server - base functionality for a web server (Scala)
  • server-undertow - implementation of server using Undertow (Scala)
  • spatial - Spatial and math related functionality for Matrix and other operations
  • stream - streaming functionality for on-the-fly processing and modification of any XML or HTML content (Scala)
  • utilities - internal utilities to support the infrastructure of youi

External Projects

Though this project has several sub-modules, where possible, external projects exist to add optional functionality.

  • youi-plugin - An SBT plugin to simplify setting up your youi project.
  • youi-template - Stand-alone server instance to help designers work with HTML templates locally and support integration for developers.
  • youi-designer - User interface designer tool to create, edit, import, export, and generate user interfaces for youi.
  • youi-example - An example project showing the basic usage of youi.


Though YouI provides many modules to accomplish many things, the primary goal of YouI is application development for web, mobile, and desktop. Take a look at the app module for a great getting started tutorial.


More examples are located in the example directory. Run them with sbt


then load http://localhost:8080/ui-examples.html or search with def path: for URLs.