This shard provides bindings to Web APIs on top of crystal-js
.
It is still experimental and very initial. Any help is welcome.
-
Add the dependency to your
shard.yml
:dependencies: web: github: lbguilherme/crystal-web
-
Run
shards install
-
Build your project with
lib/js/scripts/build.sh src/main.cr
Use the--release
flag for an optimized build. This will produce two files: amain.wasm
and amain.js
. -
Add to your HTML file:
<script defer src="main.js"></script>
.
require "web"
window = Web.window
console = window.console
document = window.document
console.log "Width: #{window.inner_width}"
console.log "Height: #{window.inner_height}"
canvas = document.create_element("canvas")
document.body.append_child(canvas)
ctx = canvas.get_context("2d")
ctx.font = "30px Arial"
ctx.fill_text("Hello World!", 10, 30)