Paint

Make 2D drawings, animations, and games using Gleam and the HTML Canvas!

Package Version Hex Docs

Paint is a tiny embedded domain specific language (inspired by Gloss). Make pictures out of basic shapes then style, transform, and combine them using the provided functions.

Frame 3(2)

import paint as p
import paint/canvas

fn main() {
  let my_picture = p.combine([
    p.circle(30.0),
    p.circle(20.0) |> p.fill(p.colour_rgb(0, 200, 200)),
    p.rectangle(50.0, 30.0) |> p.rotate(p.angle_deg(30.0)),
    p.text("Hello world", 10) |> p.translate_y(-35.0),
  ])

  canvas.display(fn(_: canvas.Config) { my_picture }, "#canvas_id")
}

Want to learn more? Read the docs or browse the visual examples.

Logo

Lucy is borrowed from the Gleam branding page and the brush is made by Delapouite (game icons).

Changelog

API additions and breaking changes can be found in the file CHANGELOG.md.

Search Document