Example code: https://github.com/follesoe/svgftw
I gamle dager het det seg at man kun skal bruke table-elementet for tabeller, mens CSS skal brukes til layout. Er tiden inne for å kunne lage en ny regel som heter at raster-grafikk kun skal brukes for fotografier, mens alt annet burde være vektor-grafikk? SVG begynner å bli en moden og utbredt standard som er klar til å tas i bruk i dag. SVG muliggjør skalerbar vektorgrafikk, som gir deg illustrasjoner, ikoner og figurer som skalerer uavhengig av størrelse og skjermoppløsning. I denne presentasjonen får du en gjennomgang av SVG standarden. Vi vil se på historien til SVG og nettleserstøtte, før vi begynner med noen enkle brukstilfeller for SVG. Gradvis vil vi se på mer avanserte scenarioer, som bruk filtre og effekter, dynamisk generering av vektorgrafikk, animasjon, samt hvordan eksportere til SVG fra kjente designverktøy. Presentasjonen er i stor grad basert på erfaringer fra prosjekt hvor alt av grafikk er gjort ved hjelp av SVG.
Silverlight 2 for Developers - TechEd New Zealand 2008
Scalable Vector Graphics FTW!
1. SCALABLE VECTOR GRAPHICS FTW!
En introduksjon til bruk av SVG på web i dag!
TDC 2013
Stian Møllersen & Jonas Follesø
31/01/2013
2. OM OSS
Jonas Follesø
Stian Møllersen
Scientist & Manager BEKK Trondheim
Konsulent BEKK Trondheim
@follesoe
@mollerse
3. AGENDA
Del 1 – Hva er SVG?
Del 2 – Historien til SVG
Del 3 – SVG bilder & Optimalisering
Del 4 – Interaktiv SVG
Del 5 – Animasjoner & Responsive SVG
Del 6 – JS biblioteker for SVG
Del 7 – Oppsummering
4. SVG
…a language for describing two-dimensional
vector graphics in XML, combined with raster
graphics and multimedia…
- W3C
10. SVG HISTORIE
1999
April: Adobe
demonstrerer rendring
Feb: W3C med første utkast
2003
Jan: W3C SVG 1.1 Recommendation
Sep: W3C SVG 1.0
Recommendation
2001
Okt: W3C med første
utkast til SVG 1.1 med profilene
SVG Tiny & SVG Mobile
Feb: Siemens CX64
med SVG Tiny
2004
April: Sony Ericcson
K700 med SVG Tiny
11. SVG HISTORIE
2008
2003
Jan: W3C SVG 1.1 Recommendation
2011
Mai: Inline SVG
del av HTML5
Feb: Siemens CX64
med SVG Tiny
2004
April: Sony Ericcson
K700 med SVG Tiny
Aug: W3C SVG 1.1
Second Edition
Des: W3C SVG 1.1
Recommendation
2010
Aug: W3C
SVG 2.0
2014 Recommendation
30. CSS MEDIA QUERIES
• Kan bruke CSS Media Queries til å endre SVG ved gitte størrelser
• SVG Viewport er img-elementet sin størrelse
<img src="octocat.svg" id="octocat" width="100%" />
<svg>
<style>
@media screen and (max-width: 64px) {
#catface {
display: none;
}
}
</style>
...
<svg>
40. SNAP.SVG
• Bygger på Raphaël.js
• Moderne API
• Ingen IE<9 fallback
• snapsvg.io
41. var s = Snap(600,600);
Snap.load('tdc.svg', function(f) {
//Her er tdc.svg tilgjengelig
s.add(f);
var T = s.select('#letterT'),
D = s.select('#letterD'),
C = s.select('#letterC'),
text = s.select('#text');
Manipulere
Eksisterende
SVG
text.attr({ transform: "translate(-900, -350) scale(2.8)" });
setTimeout(shrinkAndTranslateText, 1500);
setTimeout(fadeIn(T), 2000);
setTimeout(fadeIn(D), 2200);
setTimeout(fadeIn(C), 2400);
});
42. var s = Snap(600,600);
Snap.load('tdc.svg', function(f) {
var T = s.select('#letterT'),
D = s.select('#letterD'),
C = s.select('#letterC'),
text = s.select('#text');
T.hover(zoomAndRotate(T, 25), reset(T));
D.hover(zoomAndRotate(D, -15), reset(D));
C.hover(zoomAndRotate(C, 15), reset(C));
});
Manipulere
Eksisterende
SVG
47. Begynn med noe
enkelt – f.eks.
logo som SVG
SVG er klart og
alle burde bruke
det!
Oppsummering
Del av DOM og
kan manipuleres
med CSS og JS
2D vektorgrafikk
for web i XML
Gammel
standard, god
støtte, men kun
IE9 og nyere
48. TAKK FOR OSS!
Stian Møllersen
Jonas Follesø
http://github.com/follesoe/svgftw