The easiest way to work with HTML5 canvas. And it's just Javascript. See in action at fabricjs.com/demos By @kangax & @andreabogazzi

canvas, html5
"Site redesign" bounty just increased to $110 β€” bountysource.com/issues/3936…
1
FabricJS πŸ‡ΊπŸ‡¦ retweeted
Fabric: weekend coding fun for me: bit.ly/1dbiFyr #javascript #html5 #canvas
3
4
FabricJS πŸ‡ΊπŸ‡¦ retweeted
Canvas rendering bugs are the best... youtube.com/watch?v=z_JZUxtf… (this one seems to be a Chrome one)
1
1
3
RT @kienzle_s: 'canvas.loadFromJSON' now supports reviver function (3rd parameter) github.com/kangax/fabric.js/… #FabricJS
FabricJS πŸ‡ΊπŸ‡¦ retweeted
The original $5 bounty for "creating a global canvas zooming for @fabricjs" has increased to $1070! bit.ly/18EnFY3
2
1
Yep :) RT @tj_fogarty: when you're trying to convince them you're actually doing research and not looking at pugs fabricjs.com/demos/
@markwaregr we would love that! :)
.@Kenjamin Also, it's likely "bhive" is not really showing what you want. This chart should be more representative β€” google.com/trends/explore?q=…
.@ucantseeninjas Good question. Never heard about issues w. Ember+Fabric. Fabric is very cautious about environment; usually plays together.
1
@kienzle_s toCSSValue is nice. But toString might be a bit more javascript-ish (allowing to do things like `obj.shadow + ''`)
@kienzle_s maybe we should make it toString or toCSS instead of getShadow?
@kienzle_s maybe you can tweet about your pull requests (e.g. the shadow one) so that I can retweet you :)
Need to fill SVG shape with pattern? Take a look at this gotcha β€” stackoverflow.com/a/18616032…
1
There's already over 300 questions tagged as Fabric on StackOverflow! stackoverflow.com/questions/…
Event handlers now fire in context of object that fires them β€” obj.on('mousedown', function(){ alert(this.fill); // alerts object color });
You can now completely ignore events on objects by making them `selectable=false` β€” jsfiddle.net/fabricjs/u2kHC/
You can now chain `on`, `off` & `trigger` methods: canvas.on('mousedown', f).on('mouseup', f); obj.trigger('foo').trigger('bar'), etc.
1