SlideShare una empresa de Scribd logo
1 de 111
Descargar para leer sin conexión
Raphaël

Web Directions South 2010
http://dmitry.baranovskiy.com/
https://peepcode.com/products/raphaeljs
http://raphaeljs.com
Why?
How?
SVG
Raphaël doesn’t use
     Canvas
Raphaël
doesn’t use
  Canvas
SVG
VML
JavaScript


SVG           VML
SVG   VML
20 Kb
Free
API
Preparation
var paper = Raphael("holder", 800, 600);

var paper = Raphael(holder, 800, 600);

var paper = Raphael(10, 20, 800, 600);
Primitives
var circle = paper.circle(cx, cy, r);

var rect = paper.rect(x, y, width, height, r);

var ellipse = paper.ellipse(cx, cy, rx, ry);

var image = paper.image(src, x, y, width, height);

var text = paper.text(x, y, text);
animate            mousemove
animateAlong       mouseout
animateAlongBack   mouseover
animateWith        mouseup
attr               onAnimation
click              remove
clone              rotate
dblclick           scale
getBBox            show
hide               stop
hover              toBack
insertAfter        toFront
insertBefore       translate
mousedown
animate            mousemove
animateAlong       mouseout
animateAlongBack   mouseover
animateWith        mouseup
attr               onAnimation
click              remove
clone              rotate
dblclick           scale
getBBox            show
hide               stop
hover              toBack
insertAfter        toFront
insertBefore       translate
mousedown
circle.attr({
    fill: "#fc0",
    stroke: "hsb(0.6, 0.7, 0.9)",
    "stroke-width": 5,
    "stroke-opacity": 0.5,
    cx: 50
});

var fill = circle.attr("fill");

circle.animate({
    cx: 100,
    cy: 100
}, 1000, function () {
    alert("Animation is finished");
});
c.animate({cx: 230, cy: 130}, 2000);
c.animate({cx: 230, cy: 130}, 2000);
c.animate({cx: 100, cy: 230}, 1000, function () {
    c.animate({cx: 230, cy: 130}, 1000);
});
c.animate({cx: 100, cy: 230}, 1000, function () {
    c.animate({cx: 230, cy: 130}, 1000);
});
c.animate({
    "50%": {cx: 100, cy: 230},
    "100%": {cx: 230, cy: 130}
}, 2000);
c.animate({
    "50%": {cx: 100, cy: 230},
    "100%": {cx: 230, cy: 130}
}, 2000);
c.animate({
    "50%": {cx: 100},
    "100%": {cx: 230}
}, 2000).animate({
    "25%": {cy: 30, r: 10},
    "50%": {cy: 230, r: 20},
    "75%": {cy: 50, r: 10},
    "100%": {cy: 130, r: 20}
}, 2000);
c.animate({
    "50%": {cx: 100},
    "100%": {cx: 230}
}, 2000).animate({
    "25%": {cy: 30, r: 10},
    "50%": {cy: 230, r: 20},
    "75%": {cy: 50, r: 10},
    "100%": {cy: 130, r: 20}
}, 2000);
clip-rect      href               stroke-linejoin
cursor         opacity            stroke-miterlimit
cx             path               stroke-opacity
cy             r                  stroke-width
fill           rotation           target
fill-opacity   rx                 text
font           ry                 text-anchor
font-family    scale              title
font-size      src                translation
font-style     stroke             width
font-weight    stroke-dasharray   x
height         stroke-linecap     y
Paths
var path = paper.path(pathString);
M278.939,132.632l-0.641-0.853l0.183-1.97l-0.975,0.091l-0.92-0.092l-0.506,0.415l-0.
526,0.234l-0.541,0.053l-0.939-0.271l-1.049,0.468l-0.813-0.833l-0.938-0.272l-0.851,
0.631l-0.67,0.614l-1.083,0.106l-0.904,0.09l-0.108,0.741l0.288,1.068l0.722-0.073l-0
.651,0.795l-0.129,0.559l-1.049,0.47l-0.757-0.291l-0.433-0.688l-0.651,0.794l-0.651,
0.795l-0.309,0.578l-0.688,0.433l-0.47-1.049l-0.069-0.723l-0.435-0.688l-0.415-0.507
l-0.631-0.85l-1.121-0.254l-1.643-0.021l-0.577-0.309l-0.761-0.29l-0.722,0.071l-0.23
5-0.524l-0.903,0.089l-1.41,0.504l-1.3-0.237l-1.321-0.416l-0.541,0.053L250,132.249l
-1.104-0.073l-0.073,1.102l-0.722,0.072l0.053,0.543l-0.869,0.449l-53.113-0.052l-0.0
02,0.043v45.292l0.08-0.038l1.109-0.168l1.834,0.86l1.024-0.723l1.748,0.305l2.12,0.2
48l1.73,1.44l0.492,2.009l1.092,0.971l0.045-0.953l1.055-0.539l0.98,0.232l1.721,0.11
9l1.008,0.413l0.604,2.748l1.444,2.054l1.138,0.018l1.619,0.701l1.973,1.783l0.379,1.
268l1.277,0.943l1.619,0.701l1.295-0.195l-0.223-1.481l0.471-0.638l0.741-0.11l0.823,
0.444l1.85-0.28l1.434,0.729l0.925-0.139l1.223,0.571l1.164,0.204l0.658-0.666l0.896-
0.327l1.037,0.603l1.961,0.461l1.451-0.408l1.083-0.354l0.74-0.111l0.711-0.295l0.899
-0.326l1.433,0.73l-0.204,1.168l0.566,1.235l0.722,1.028l0.354,1.082l-0.178,1.349l8.
182,4.065l1.721,0.121l0.873,0.643h0.513l-0.213,0.64l0.112-0.336l0.227,0.167l0.939-
0.471l-0.213-1.704l0.427-0.212h0.425l-0.425-1.065l-0.853-0.213l0.426-0.853l-0.426-
1.064l0.426,0.214l0.427-1.491l0.851-3.406l-0.213-2.131l0.426-1.277h-0.426l1.065-0.
852l-0.64-0.853l0.854,0.213l1.703-4.046l1.49-0.428l-0.641-1.275l0.641-0.214v0.853l
0.424-0.214l-0.424-1.276l-0.426,0.213l0.213-0.426l-0.854-0.213l1.49-0.64l0.427-1.4
91l-0.427-0.639l0.64-0.215v-1.489l1.703-1.703l-0.638-0.214l1.063-0.213l-1.276-0.42
6l1.489-0.213l0.214-1.064l-0.64,0.426l-0.427-0.426l0.64,0.213l-0.213-0.639l0.64,0.
426l0.213-1.704v-0.212l-0.427,0.425v-0.639l-0.213,0.214l-0.213-0.641l0.64,0.427l0.
213-1.064v0.853l0.852-0.426l0.214-1.064l-0.427-0.427h0.854l0.637-1.703l-0.637,0.85
3l-0.214-0.853h0.638v-0.853l0.213,0.853l0.854-1.491l-0.213-0.426h0.427v0.64l2.556-
1.491l-0.853-0.213l-0.853,0.639l-0.213-0.213l0.426-0.426l-0.213-0.426l0.853,0.426l
0.638-0.426l0.215,0.426l0.853-1.277l1.489-0.853l0.214-1.702l-0.64-0.215v0.428l-0.8
52-0.428h1.064l0.213-1.49l1.49-1.277l1.918-6.176l-0.213-4.26l1.489-3.834l0.213-0.6
39l0.64-3.62l-0.64-0.426l0.64,0.213l-0.213-0.853l1.703-3.193h-0.426l0.426-0.214L27
8.939,132.632zM261.268,143.072h-0.215l-0.213-0.639l0.641-0.214L261.268,143.072z
M278.939,132.632l-0.641-0.853l0.183-1.97l-0.975,0.091l-0.92-0.092l-0.506,0.415l-0.
526,0.234l-0.541,0.053l-0.939-0.271l-1.049,0.468l-0.813-0.833l-0.938-0.272l-0.851,
0.631l-0.67,0.614l-1.083,0.106l-0.904,0.09l-0.108,0.741l0.288,1.068l0.722-0.073l-0
.651,0.795l-0.129,0.559l-1.049,0.47l-0.757-0.291l-0.433-0.688l-0.651,0.794l-0.651,
0.795l-0.309,0.578l-0.688,0.433l-0.47-1.049l-0.069-0.723l-0.435-0.688l-0.415-0.507
l-0.631-0.85l-1.121-0.254l-1.643-0.021l-0.577-0.309l-0.761-0.29l-0.722,0.071l-0.23
5-0.524l-0.903,0.089l-1.41,0.504l-1.3-0.237l-1.321-0.416l-0.541,0.053L250,132.249l
-1.104-0.073l-0.073,1.102l-0.722,0.072l0.053,0.543l-0.869,0.449l-53.113-0.052l-0.0
02,0.043v45.292l0.08-0.038l1.109-0.168l1.834,0.86l1.024-0.723l1.748,0.305l2.12,0.2
48l1.73,1.44l0.492,2.009l1.092,0.971l0.045-0.953l1.055-0.539l0.98,0.232l1.721,0.11
9l1.008,0.413l0.604,2.748l1.444,2.054l1.138,0.018l1.619,0.701l1.973,1.783l0.379,1.
268l1.277,0.943l1.619,0.701l1.295-0.195l-0.223-1.481l0.471-0.638l0.741-0.11l0.823,
0.444l1.85-0.28l1.434,0.729l0.925-0.139l1.223,0.571l1.164,0.204l0.658-0.666l0.896-
0.327l1.037,0.603l1.961,0.461l1.451-0.408l1.083-0.354l0.74-0.111l0.711-0.295l0.899
-0.326l1.433,0.73l-0.204,1.168l0.566,1.235l0.722,1.028l0.354,1.082l-0.178,1.349l8.
182,4.065l1.721,0.121l0.873,0.643h0.513l-0.213,0.64l0.112-0.336l0.227,0.167l0.939-
0.471l-0.213-1.704l0.427-0.212h0.425l-0.425-1.065l-0.853-0.213l0.426-0.853l-0.426-
1.064l0.426,0.214l0.427-1.491l0.851-3.406l-0.213-2.131l0.426-1.277h-0.426l1.065-0.
852l-0.64-0.853l0.854,0.213l1.703-4.046l1.49-0.428l-0.641-1.275l0.641-0.214v0.853l
0.424-0.214l-0.424-1.276l-0.426,0.213l0.213-0.426l-0.854-0.213l1.49-0.64l0.427-1.4
91l-0.427-0.639l0.64-0.215v-1.489l1.703-1.703l-0.638-0.214l1.063-0.213l-1.276-0.42
6l1.489-0.213l0.214-1.064l-0.64,0.426l-0.427-0.426l0.64,0.213l-0.213-0.639l0.64,0.
426l0.213-1.704v-0.212l-0.427,0.425v-0.639l-0.213,0.214l-0.213-0.641l0.64,0.427l0.
213-1.064v0.853l0.852-0.426l0.214-1.064l-0.427-0.427h0.854l0.637-1.703l-0.637,0.85
3l-0.214-0.853h0.638v-0.853l0.213,0.853l0.854-1.491l-0.213-0.426h0.427v0.64l2.556-
1.491l-0.853-0.213l-0.853,0.639l-0.213-0.213l0.426-0.426l-0.213-0.426l0.853,0.426l
0.638-0.426l0.215,0.426l0.853-1.277l1.489-0.853l0.214-1.702l-0.64-0.215v0.428l-0.8
52-0.428h1.064l0.213-1.49l1.49-1.277l1.918-6.176l-0.213-4.26l1.489-3.834l0.213-0.6
39l0.64-3.62l-0.64-0.426l0.64,0.213l-0.213-0.853l1.703-3.193h-0.426l0.426-0.214L27
8.939,132.632zM261.268,143.072h-0.215l-0.213-0.639l0.641-0.214L261.268,143.072z
M278.939,132.632l-0.641-0.853l0.183-1.97
Command


M278.939,132.632l-0.641-0.853l0.183-1.97
Command


M278.939,132.632l-0.641-0.853l0.183-1.97


   x
Command


M278.939,132.632l-0.641-0.853l0.183-1.97


   x        y
var r = Raphael(100, 10, 300, 250),
    bg1 = r.path("M50,150l180,0").attr({stroke: "#fff",
"stroke-width": 28, "stroke-linecap": "round"}),
    bg2 = r.path("M50,150l180,0").attr({stroke: "#000",
"stroke-width": 24, "stroke-linecap": "round"}),
    bar = r.path("M50,150l.001,0").attr({stroke: "#fff",
"stroke-width": 20, "stroke-linecap": "round"});
var r = Raphael(100, 10, 300, 250), 2000, ">");
bar.animate({path: "M50,150l180,0"},
    bg1 = r.path("M50,150l180,0").attr({stroke: "#fff",
"stroke-width": 28, "stroke-linecap": "round"}),
    bg2 = r.path("M50,150l180,0").attr({stroke: "#000",
"stroke-width": 24, "stroke-linecap": "round"}),
    bar = r.path("M50,150l.001,0").attr({stroke: "#fff",
"stroke-width": 20, "stroke-linecap": "round"});
var r = Raphael(100, 10, 300, 250), 2000, ">");
bar.animate({path: "M50,150l180,0"},
    bg1 = r.path("M50,150l180,0").attr({stroke: "#fff",
"stroke-width": 28, "stroke-linecap": "round"}),
    bg2 = r.path("M50,150l180,0").attr({stroke: "#000",
"stroke-width": 24, "stroke-linecap": "round"}),
    bar = r.path("M50,150l.001,0").attr({stroke: "#fff",
"stroke-width": 20, "stroke-linecap": "round"});
var r = Raphael(100, 10, 300, 250),
    bg1 = r.path("M50,150a100,100,0,0,1,180,0").attr({stroke: "#fff",
"stroke-width": 28, "stroke-linecap": "round"}),
    bg2 = r.path("M50,150a100,100,0,0,1,180,0").attr({stroke: "#000",
"stroke-width": 24, "stroke-linecap": "round"}),
    bar = r.path("M50,150a100,100,0,0,1,.001,0").attr({stroke: "#fff",
"stroke-width": 20, "stroke-linecap": "round"});
var r = Raphael(100, 10, 300, 250),
    bg1 = r.path("M50,150a100,100,0,0,1,180,0").attr({stroke: "#fff",
"stroke-width": 28, "stroke-linecap": "round"}),
    bg2 = r.path("M50,150a100,100,0,0,1,180,0").attr({stroke: "#000",
"stroke-width": 24, "stroke-linecap": "round"}),
    bar = r.path("M50,150a100,100,0,0,1,.001,0").attr({stroke: "#fff",
"stroke-width": 20, "stroke-linecap": "round"});
bar.animate({path: "M50,150a100,100,0,0,1,180,0"}, 2000,
">");
bar.animate({path: "M50,150a100,100,0,0,1,180,0"}, 2000,
">");
var a = Math.acos(90 / 100),
    an = Math.PI - 2 * a;
r.customAttributes.value = function (val) {
    var angle = Math.PI + a + an / 100 * val,
        x = 140 + 100 * Math.cos(angle),
        y = 193.6 + 100 * Math.sin(angle);
    return {path: "M50,150A100,100,0,0,1," + [x, y]};
};
var a = Math.acos(90 / 100),
    an = Math.PI - 2 * a;
r.customAttributes.value = function (val) {
    var angle = Math.PI + a + an / 100 * val,
        x = 140 + 100 * Math.cos(angle),
        y = 193.6 + 100 * Math.sin(angle);
    return {path: "M50,150A100,100,0,0,1," + [x, y]};
};
var a = Math.acos(90 / 100),
    an = Math.PI - 2 * a;
r.customAttributes.value = function (val) {
    var angle = Math.PI + a + an / 100 * val,
        x = 140 + 100 * Math.cos(angle),
        y = 193.6 + 100 * Math.sin(angle);
    return {path: "M50,150A100,100,0,0,1," + [x, y]};
};
var a = Math.acos(90 / 100),
bar.attr({value: 0}).animate({value: 100}, 2000, ">");
    an = Math.PI - 2 * a;
r.customAttributes.value = function (val) {
    var angle = Math.PI + a + an / 100 * val,
        x = 140 + 100 * Math.cos(angle),
        y = 193.6 + 100 * Math.sin(angle);
    return {path: "M50,150A100,100,0,0,1," + [x, y]};
};
var a = Math.acos(90 / 100),
bar.attr({value: 0}).animate({value: 100}, 2000, ">");
    an = Math.PI - 2 * a;
r.customAttributes.value = function (val) {
    var angle = Math.PI + a + an / 100 * val,
        x = 140 + 100 * Math.cos(angle),
        y = 193.6 + 100 * Math.sin(angle);
    return {path: "M50,150A100,100,0,0,1," + [x, y]};
};
var r = Raphael(100, 10, 300, 250),
    bar = r.rect(80, 200, 120, 30).attr({stroke: "#fff",
"stroke-width": 2}),
    lbl = r.text(140, 180, 30).attr({fill: "#fff", font:
"20px 'Museo Sans'"});
var r = Raphael(100, 10, 300, 250),
lbl.attr({text: 130});
bar.animate({y: 100, 200, 120, 30).attr({stroke: "#fff",
    bar = r.rect(80, height: 130}, 2000, ">");
lbl.animateWith(bar,
"stroke-width": 2}), {y: 80}, 2000, ">");
    lbl = r.text(140, 180, 30).attr({fill: "#fff", font:
"20px 'Museo Sans'"});
var r = Raphael(100, 10, 300, 250),
lbl.attr({text: 130});
bar.animate({y: 100, 200, 120, 30).attr({stroke: "#fff",
    bar = r.rect(80, height: 130}, 2000, ">");
lbl.animateWith(bar,
"stroke-width": 2}), {y: 80}, 2000, ">");
    lbl = r.text(140, 180, 30).attr({fill: "#fff", font:
"20px 'Museo Sans'"});
bar.animate({y: 100, height: 130}, 1000, ">");
lbl.animateWith(bar, {y: 80}, 1000, ">", function () {
    lbl.attr({text: 130});
});
bar.animate({y: 100, height: 130}, 1000, ">");
lbl.animateWith(bar, {y: 80}, 1000, ">", function () {
    lbl.attr({text: 130});
});
r.customAttributes.value = function (val) {
    return {text: Math.round(val)};
};
bar.animate({y: 100, height: 130}, 2000, ">");
lbl.attr({value: 30}).animateWith(bar, {y: 80, value: 130},
2000, ">");
r.customAttributes.value = function (val) {
    return {text: Math.round(val)};
};
bar.animate({y: 100, height: 130}, 2000, ">");
lbl.attr({value: 30}).animateWith(bar, {y: 80, value: 130},
2000, ">");
Plugins
Raphael.fn.arrow = function (x, y) {
    return this.path(["M", x, y] + "m-10-10l20,0 0-6 10,16
-10,16 0-6 -20,0 0,6 -10-16 10-16z").attr({
        fill: "#fff",
        stroke: "none",
        opacity: 0.2
    });
};

Raphael.el.fill = function (fill) {
    this.attr({fill: fill});
};
Raphael.el.stroke = function (stroke) {
    this.attr({stroke: stroke});
};
Charts!
Visualisations
2012
   2011

2010             2007


 2009
          2008
2012
   2011                            2007

2010             2007

                        2011
 2009
                                              2009
          2008           2008

                                2010   2012
UI
UI
What kind of UI?
UI
What kind of UI?
UI
What kind of UI?
http://raphaeljs.com/icons/
Size does Matter
Printing
Web is not rectangular
Web is not rectangular
      anymore
Everyone Can Draw
Thank You
http://raphaeljs.com/



http://github.com/DmitryBaranovskiy/raphael



http://twitter.com/raphaeljs

Más contenido relacionado

Similar a Raphaël

HTML 5 گرافیک دو بعدی در
HTML 5 گرافیک دو بعدی در HTML 5 گرافیک دو بعدی در
HTML 5 گرافیک دو بعدی در Shiraz LUG
 
SwiftUI Animation - The basic overview
SwiftUI Animation - The basic overviewSwiftUI Animation - The basic overview
SwiftUI Animation - The basic overviewWannitaTolaema
 
Drawing on canvas
Drawing on canvasDrawing on canvas
Drawing on canvassuitzero
 
Setting the Stage for SVG Animation
Setting the Stage for SVG AnimationSetting the Stage for SVG Animation
Setting the Stage for SVG AnimationJames Nowland
 
Exploring Canvas
Exploring CanvasExploring Canvas
Exploring CanvasKevin Hoyt
 
Exploring Canvas
Exploring CanvasExploring Canvas
Exploring CanvasKevin Hoyt
 
CANVAS, SVG, WebGL, CSS3, WebEvent
CANVAS, SVG, WebGL, CSS3, WebEventCANVAS, SVG, WebGL, CSS3, WebEvent
CANVAS, SVG, WebGL, CSS3, WebEvent민태 김
 
Introduction to d3js (and SVG)
Introduction to d3js (and SVG)Introduction to d3js (and SVG)
Introduction to d3js (and SVG)zahid-mian
 
Html5 canvas
Html5 canvasHtml5 canvas
Html5 canvasGary Yeh
 
Tecnicas avanzadas con CSS3
Tecnicas avanzadas con CSS3Tecnicas avanzadas con CSS3
Tecnicas avanzadas con CSS3Marta Armada
 
Know more processing
Know more processingKnow more processing
Know more processingYukiAizawa1
 
SVGo: a Go Library for SVG generation
SVGo: a Go Library for SVG generationSVGo: a Go Library for SVG generation
SVGo: a Go Library for SVG generationAnthony Starks
 
Google I/O 2013 - Android Graphics Performance
Google I/O 2013 - Android Graphics PerformanceGoogle I/O 2013 - Android Graphics Performance
Google I/O 2013 - Android Graphics PerformanceDouO
 

Similar a Raphaël (20)

HTML 5 گرافیک دو بعدی در
HTML 5 گرافیک دو بعدی در HTML 5 گرافیک دو بعدی در
HTML 5 گرافیک دو بعدی در
 
Raphaël and You
Raphaël and YouRaphaël and You
Raphaël and You
 
Raphael
RaphaelRaphael
Raphael
 
SVGo workshop
SVGo workshopSVGo workshop
SVGo workshop
 
SwiftUI Animation - The basic overview
SwiftUI Animation - The basic overviewSwiftUI Animation - The basic overview
SwiftUI Animation - The basic overview
 
Drawing on canvas
Drawing on canvasDrawing on canvas
Drawing on canvas
 
Setting the Stage for SVG Animation
Setting the Stage for SVG AnimationSetting the Stage for SVG Animation
Setting the Stage for SVG Animation
 
Exploring Canvas
Exploring CanvasExploring Canvas
Exploring Canvas
 
Svg Basics
Svg BasicsSvg Basics
Svg Basics
 
Intro to HTML5 Canvas
Intro to HTML5 CanvasIntro to HTML5 Canvas
Intro to HTML5 Canvas
 
Formato encuesta
Formato encuestaFormato encuesta
Formato encuesta
 
Exploring Canvas
Exploring CanvasExploring Canvas
Exploring Canvas
 
CANVAS, SVG, WebGL, CSS3, WebEvent
CANVAS, SVG, WebGL, CSS3, WebEventCANVAS, SVG, WebGL, CSS3, WebEvent
CANVAS, SVG, WebGL, CSS3, WebEvent
 
Introduction to d3js (and SVG)
Introduction to d3js (and SVG)Introduction to d3js (and SVG)
Introduction to d3js (and SVG)
 
Html5 canvas
Html5 canvasHtml5 canvas
Html5 canvas
 
Css5 canvas
Css5 canvasCss5 canvas
Css5 canvas
 
Tecnicas avanzadas con CSS3
Tecnicas avanzadas con CSS3Tecnicas avanzadas con CSS3
Tecnicas avanzadas con CSS3
 
Know more processing
Know more processingKnow more processing
Know more processing
 
SVGo: a Go Library for SVG generation
SVGo: a Go Library for SVG generationSVGo: a Go Library for SVG generation
SVGo: a Go Library for SVG generation
 
Google I/O 2013 - Android Graphics Performance
Google I/O 2013 - Android Graphics PerformanceGoogle I/O 2013 - Android Graphics Performance
Google I/O 2013 - Android Graphics Performance
 

Más de Dmitry Baranovskiy (12)

JavaScript: enter the dragon
JavaScript: enter the dragonJavaScript: enter the dragon
JavaScript: enter the dragon
 
The Origins of Magic
The Origins of MagicThe Origins of Magic
The Origins of Magic
 
Demystifying Prototypes
Demystifying PrototypesDemystifying Prototypes
Demystifying Prototypes
 
Type Recognition
Type RecognitionType Recognition
Type Recognition
 
Obvious Secrets of JavaScript
Obvious Secrets of JavaScriptObvious Secrets of JavaScript
Obvious Secrets of JavaScript
 
Your JavaScript Library
Your JavaScript LibraryYour JavaScript Library
Your JavaScript Library
 
SVG
SVGSVG
SVG
 
Java Script Workshop
Java Script WorkshopJava Script Workshop
Java Script Workshop
 
Web Vector Graphics
Web Vector GraphicsWeb Vector Graphics
Web Vector Graphics
 
Typography on the Web
Typography on the WebTypography on the Web
Typography on the Web
 
Microformats—the hidden treasure
Microformats—the hidden treasureMicroformats—the hidden treasure
Microformats—the hidden treasure
 
Advanced JavaScript Techniques
Advanced JavaScript TechniquesAdvanced JavaScript Techniques
Advanced JavaScript Techniques
 

Último

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 

Último (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Raphaël