JavaScript library facades

JavaScript libraries for Scala.js

These facades wrap existing JavaScript libraries, giving you type safe access to their functionality. Some of the facades may only partially expose the underlying JavaScript library functionality, so make sure to check out the details. To quickly start using one of these libraries, just click on the dependency clipboard button to get the relevant sbt dependency definition.

Common JS libraries

Name Description Dependency
scala-js-dom Static types for the DOM API, plus a few extensions
jquery-facade A strongly-typed Scala.js facade for jQuery
udash-jquery Alternate strongly typed facade for jQuery
jstree-facade A Scala.js facade for the jsTree jQuery library
scalajs-pouchdb Static types for PouchDB
scalajs-bootstrap Reactive Bootstrap components
bootstrap-datepicker-facade Static types for bootstrap-datepicker
scalajs-google-maps Static types for google maps v3
scalajs-createjs Static types for CreateJS
RxScala.js Idiomatic Scala Wrapper for RxJS
scalajs-ace Static types for Ace
scaladget ace Static types for Ace.
threejs-facade Static types for Three.js 3D library
codemirror-facade Static types for Codemirror code editor
selectize-facade Static types for Selectize
scala-js-d3 Static types for D3.js
scaladget bootstrapslider Static types for Bootstrap-slider
scaladget bootstrapnative Static types for Bootstrap-native.js and Sortable.js
scaladget lunr Static types for Lunr
Paths.scala.js A library to generate SVG charts and shapes (wrapper over Paths.js)
YouTube embedded player Type safe and Scala friendly library for the embedded YouTube player API
scala-js-momentjs Moment.js facade
scalajs-highcharts Static types for Highcharts
scalajs-chart Type-safe and Scala-friendly library over Chart.js
scala-js-webrtc Easy to use and extend WebRTC wrappers
scalajs-jsjoda Static types for js-joda
plotly-scala Scala bindings for plotly.js, including scala-js support
scala-js-plotlyjs Scala-js facade for plotly-js

UI frameworks

scalajs-react Type-safe and Scala-friendly library over Facebook’s React.
scalajs-reactjs Develop React applications in Scala with APIs close to the original: react, react-router, and react-redux facade
scommons-react Scala.js facades for core React.js APIs, Hooks, Components and testing, uses scalajs-reactjs
scommons-react-native Scala.js facades for core react-native APIs, Components and testing, uses scommons-react
scala-js-binding An all-Scala.js HTML binding library
scalajs-angular Static types and complementary API for AngularJS with TodoMvc example
scalajs-angulate Another binding to AngularJS with enhancements
angulate2 Plugin and bindings for Angular 2+ development with Scala.js.
scalajs-vue Scala.js bindings for Vue.js and an example application
scalajs-ractive Scala.js bindings for Ractive.js and an example application

Other libraries

scalajs-videojs Bindings for Video.js
scalajs-marked Bindings for Marked, Highlight.js and Tab Override
scala-js-vaadin-components Static types for Vaadin Components
scala-js-chrome Static types for Chrome App and Extension APIs
scalajs-velocity Scala.js bindings for Velocity.js animation library and example applications
QRCodeDecoder Scala.Js wrapper for QRCodeDecoder JS library for decoding QR codes.
Paper-Scala-js A Scala.js binding for Paper.js - The Swiss Army Knife of Vector Graphics Scripting.

ScalablyTyped have more open source Scala.js facades for some of your favorite JavaScript libraries, derived from DefinitelyTyped’s TypeScript definitions.

If you didn’t find a facade for the library you’d like to use, it’s quite easy to do one yourself. Check out the facade documentation and the TypeScript conversion tool. You can also skip whole facade-business and just call JavaScript APIs dynamically, without type-checking, the same way you do it when programming in JavaScript itself.


Additions and corrections to this section may be reported through GitHub issues. Please include Name, Url, Description and Dependency