cushy 0.4.0

A wgpu-powered graphical user interface (GUI) library with a reactive data model
Documentation
{
  "frames": {
    "Idle_0.aseprite": {
      "frame": { "x": 0, "y": 0, "w": 32, "h": 32 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
      "sourceSize": { "w": 32, "h": 32 },
      "duration": 500
    },
    "Idle_1.aseprite": {
      "frame": { "x": 32, "y": 0, "w": 32, "h": 32 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
      "sourceSize": { "w": 32, "h": 32 },
      "duration": 500
    },
    "Idle_2.aseprite": {
      "frame": { "x": 64, "y": 0, "w": 32, "h": 32 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
      "sourceSize": { "w": 32, "h": 32 },
      "duration": 500
    },
    "Idle_3.aseprite": {
      "frame": { "x": 96, "y": 0, "w": 32, "h": 32 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
      "sourceSize": { "w": 32, "h": 32 },
      "duration": 500
    },
    "WalkRight_4.aseprite": {
      "frame": { "x": 128, "y": 0, "w": 32, "h": 32 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
      "sourceSize": { "w": 32, "h": 32 },
      "duration": 200
    },
    "WalkRight_5.aseprite": {
      "frame": { "x": 160, "y": 0, "w": 32, "h": 32 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
      "sourceSize": { "w": 32, "h": 32 },
      "duration": 200
    },
    "WalkRight_6.aseprite": {
      "frame": { "x": 192, "y": 0, "w": 32, "h": 32 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
      "sourceSize": { "w": 32, "h": 32 },
      "duration": 200
    },
    "WalkLeft_7.aseprite": {
      "frame": { "x": 224, "y": 0, "w": 32, "h": 32 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
      "sourceSize": { "w": 32, "h": 32 },
      "duration": 200
    },
    "WalkLeft_8.aseprite": {
      "frame": { "x": 256, "y": 0, "w": 32, "h": 32 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
      "sourceSize": { "w": 32, "h": 32 },
      "duration": 200
    },
    "WalkLeft_9.aseprite": {
      "frame": { "x": 288, "y": 0, "w": 32, "h": 32 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
      "sourceSize": { "w": 32, "h": 32 },
      "duration": 200
    }
  },
  "meta": {
    "app": "http://www.aseprite.org/",
    "version": "1.2.17",
    "image": "stickguy.png",
    "format": "RGBA8888",
    "size": { "w": 320, "h": 32 },
    "scale": "1",
    "frameTags": [
      { "name": "Idle", "from": 0, "to": 3, "direction": "forward" },
      { "name": "WalkRight", "from": 4, "to": 6, "direction": "pingpong" },
      { "name": "WalkLeft", "from": 7, "to": 9, "direction": "pingpong" }
    ],
    "layers": [{ "name": "Flattened", "opacity": 255, "blendMode": "normal" }],
    "slices": []
  }
}