web vector graphics

63
Web Vector Graphics Web Directions South ’08 Dmitry Baranovskiy

Upload: dmitry-baranovskiy

Post on 15-May-2015

8.024 views

Category:

Technology


0 download

DESCRIPTION

My presentation on vector graphics at Web Directions South ’08

TRANSCRIPT

Page 1: Web Vector Graphics

Web Vector Graphics

Web Directions South ’08Dmitry Baranovskiy

Page 2: Web Vector Graphics

Web Myths:

Page 3: Web Vector Graphics

Web is text!only

Page 4: Web Vector Graphics

Web pages are static

Page 5: Web Vector Graphics

Web is synchronous

Page 6: Web Vector Graphics

Web is rectangular

Page 7: Web Vector Graphics
Page 8: Web Vector Graphics

Canvas SVG

Page 9: Web Vector Graphics

Canvas SVG

!

Page 10: Web Vector Graphics

Canvas SVG

!

Page 11: Web Vector Graphics

Canvas SVG

Page 12: Web Vector Graphics

SVG

Page 13: Web Vector Graphics

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <rect fill="#333" width="426" height="260.667"/> <ellipse cx="213" cy="130" rx="205" ry="117"> <animate attributeName="fill" attributeType="CSS" begin="0s" dur="6s" fill="freeze" from="#000" to="#f00"/> <animate attributeName="rx" begin="0s" dur="6s" fill="freeze" from="205" to="117"/> </ellipse> <path fill="none" stroke="#fff" stroke-width="5" stroke-linecap="round" d="M24.397,99.601c0,0,12.537,0,16.805,0s10.137, 5.869,10.137,5.869s16.273,43.75,18.94,49.885 ... s-1.601,63.224,12.805,63.224h28.01"/></svg>

Page 14: Web Vector Graphics
Page 15: Web Vector Graphics

Canvas

Page 16: Web Vector Graphics

window.onload = function () { var elem = document.createElement("canvas"); elem.width = 500; elem.height = 500; document.body.appendChild( elem );

var context = elem.getContext("2d");

context.fillRect(0, 0, elem.width, elem.height);

var pos = 0, dir = 1;

setInterval(function () { context.rotate( 15 );

context.fillStyle = "rgba(0,0,0,0.05)"; context.fillRect(0, 0, elem.width, elem.height);

context.fillStyle = "rgba(255, 0, 0, 1)"; context.fillRect(pos, pos, 20, 20);

pos += dir;

if ( pos > elem.width ) { dir = -1; } else if ( pos + 20 < 0 ) { dir = 1; } }, 10);};

Page 17: Web Vector Graphics
Page 18: Web Vector Graphics
Page 19: Web Vector Graphics
Page 20: Web Vector Graphics

Canvas

Page 21: Web Vector Graphics

Canvas

SVG

Page 22: Web Vector Graphics
Page 23: Web Vector Graphics

Support

Page 24: Web Vector Graphics

Does browser support Canvas?

Page 25: Web Vector Graphics

Does browser support Canvas?

if (window.CanvasRenderingContext2D) { …}

Page 26: Web Vector Graphics

Does browser support SVG?

Page 27: Web Vector Graphics

Does browser support SVG?

if (window.SVGAngle) { …}

Page 28: Web Vector Graphics

178

Page 29: Web Vector Graphics

6SVGAngleSVGLengthSVGPathSegSVGPreserveAspectRatioSVGTransformSVGUnitTypes

Page 31: Web Vector Graphics

64%Canvas

203

469

SVG

118

160

Page 32: Web Vector Graphics

76%Canvas

182

490

SVG

60

218

Page 33: Web Vector Graphics
Page 34: Web Vector Graphics

81%Canvas

184

488

SVG

30

248

Page 35: Web Vector Graphics

What does it mean?

Page 36: Web Vector Graphics

$ere is support

Page 37: Web Vector Graphics

…with oneImportant Exception

Page 38: Web Vector Graphics

0%

Page 39: Web Vector Graphics

VML

Page 40: Web Vector Graphics

VML

Page 41: Web Vector Graphics

VML

Page 42: Web Vector Graphics

VML

Page 43: Web Vector Graphics

So, what can you do with Canvas ! SVG?

Page 44: Web Vector Graphics

Shapes

Page 45: Web Vector Graphics
Page 46: Web Vector Graphics
Page 47: Web Vector Graphics

Images

Page 48: Web Vector Graphics
Page 49: Web Vector Graphics

Text

Page 50: Web Vector Graphics
Page 51: Web Vector Graphics

Canvas SVG VMLJavaScript o! ☆☆ ★★ ★★CSS ☆☆ ★★ ★☆Result pixels DOM DOMAnimation ☆☆ ★★ ☆☆Filters ☆☆ ★★ ★☆Image Data ★★ ☆☆ ☆☆Text ★☆ ★★ ★☆Stand"alone ☆☆ ★★ ★☆Easy to use ★★ ★☆ ☆☆

Page 52: Web Vector Graphics

SVG

VMLCanvas

Page 53: Web Vector Graphics
Page 54: Web Vector Graphics
Page 55: Web Vector Graphics

What stops you from using this now?

Page 56: Web Vector Graphics

How to do this across all the browsers?

Page 57: Web Vector Graphics
Page 58: Web Vector Graphics

DojoX

http://dojotoolkit.org/projects/dojox/

Page 59: Web Vector Graphics

ExCanvas.js!

mooCanvas.js

http://excanvas.sourceforge.net/http://ibolmo.com/projects/moocanvas/

Page 60: Web Vector Graphics

Raphaël

http://raphaeljs.com/

Page 61: Web Vector Graphics

Cappuccino

http://cappuccino.org/

Page 62: Web Vector Graphics

Just go and do it!