SVG – Referat – SVG



SVG – Referat – SVG

0 0


svg_referat_santacroce

SVG Referat // Alejandro Santacroce // ZGK // LF Sinner // D3DE //

On Github elaleph23 / svg_referat_santacroce

SVG

Referat

// Alejandro Santacroce // ZGK // LF Sinner // D3DE //

Inhalt

Was ist?

Grundlagen

Wie erstellen wir ein SVG?

Einbindung

Links

Animationen

Anwendungsbereiche

Motivierende Beispiele

Tools + Plugins + Librarie

Can I use?

Fazit

Quellen

SVG

Was ist?

Die Abkürzung SVG bedeutet:

S= Scalable

V= Vector

G= Graphics

kurze Geschichte: → erster Versuch mit SVG → 1988.→ offizielle Empfehlung von der W3C (World Wide Web Consortium) → 2001.

SVG

Grundlagen

  • SVG ist eine auf XML basierende Sprache

  • SVG Grafiken bestehen aus ASCII-Code

  • SVG ist für Maschinen + Menschen lesbar

  • SVG Grafiken können mit nur ein Texteditor erstellt werden

  • SVG Grafiken sind ohne Qualitätsverlust skalierbar

  • SVG unterstützt Stylesprachen (z.B. CSS)

  • SVG unterstützt Scriptsprachen (z.B. JavaScript)

  • SVG ist "Flexible"

  • SVG ist "Small"

  • SVG ist "Open"

  • SVG ist "Standard" (offizieller Standard des W3C)

  • extrem geeignet für Retina Display

SVG

Wie erstellen wir ein SVG?

mit Illustrator, Inkscape, oder einfach nur mit Code!

Illustrator Beispiele

Schritt 1.1

normales Icon als Vector (Path)

Schritt 1.2

Farbe und Größe sind nicht relevant

Schritt 2

jedes Element kann man als separates/unabhänginges Form speichern

Schritt 3

so:

Schritt 4

eine Zeichenfläche erstellen

Schritt 5

als SVG speichern (Zeichenflächen verwenden)

Schritt 6

SVG-Optionen wählen

Schritt 7

in unserem Ordner speichern

Schritt 8

und voilà!

Code

<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="400px"
     height="300px" viewBox="56 106 400 300" style="enable-background:new 56 106 400 300;" xml:space="preserve">
    <g id="blumen_x5F_3">
        <g>
            <g>
                <path d="M416,146v220H96V146H416 M456,106H56v300h400V106L456,106z"/>
            </g>
            <path d="M230.944,337.014c-25.542-4.337-44.988-26.426-44.988-53.041v-42.122l44.988,44.519V337.014z"/>
            <path d="M264.648,302.605v-46.039c45.2-8.428,46.881-57.158,33.13-82.368l-22.6,24.689l-19.487-24.688l-18.22,24.689
                l-23.25-24.689c-13.376,24.519-12.38,73.882,33.129,82.367v81.234h24.517c29.92,0,54.175-24.098,54.175-53.828v-42.122
                L264.648,302.605z"/>
        </g>
    </g>
</svg>

SVG

mit den neuen Illustrator CC

copy + paste

vom AI zur Sublime (o.ä.)

PNG vs SVG = Pixel vs Pfad

Vergleich von 12x Größe

Einbindung

img-Tag

<img src="blume.svg" alt="Blume in Rahme">

background-image

HTML + CSS

<img style="background-image" ;="" src="blume.svg">
              <div id="blumesvg"></div>
#blumesvg {
  width: 300px;
  height: 300px;
  background: url(../blume.svg);
  background-size: contain;
}

Object-Tag

<object data="blume.svg" type="image/svg+xml">
  Fallback
</object>
Fallback

SVG

in HTML-Code ("inline")

  • SVGs können via CSS gestyled werden

  • auch die einzelnen Elemente innerhalb eines SVG

Filtern mit CSS Beispiel

Inline SVG

SVG circle

...
    <svg width="200" height="200">
      <circle id="outer" cx="100" cy="100" r="100" fill="white"></circle>
      <circle id="inner" cx="100" cy="100" r="50" fill="black"></circle>
    </svg>
...

Filter Palette

feGaussianBlur

<svg width="200" height="200">
  <defs>
    <filter id="f1" x="0" y="0">
      <feGaussianBlur in="SourceGraphic" stdDeviation="5.5">
    </feGaussianBlur></filter>
  </defs>
...
</svg>

SVG

Verweis zu

<svg width="200" height="200">
  <circle cx="100" cy="100" r="100" fill="black"></circle>
  <a href="#/12">
    <circle cx="100" cy="100" r="50" fill="gray"></circle>
  </a>
</svg>

Link zum nächsten Slide genauerer titel BLACK genauerer titel GREY

Animationen

Möglichkeiten

  • animate
  • set
  • animateMotion
  • animateColor
  • animateTransform

Animation mit Events

z.B. bei "click" oder "hover"

<svg width="500" height="250">
  <g transform="translate( 250,125)">
    <rect x="-75" y="-75" width="150" height="150" fill="ivory">
      <animateTransform repeatCount="indefinite" attributeName="transform" type="rotate" from="0" to="90" begin="0" dur="5s">
    </animateTransform></rect>
  </g>
</svg>
transform="translate": setze den Koordinatensystem-0-0-Punkt auf die Mitte des umschließenden Containers

AnimateMotion

und jetzt?

Wie können wir unser SVG verwenden?

Anwendungsbereiche

  • Karten, Stadtpläne, Geokarten und Wetterkarten

  • Icons (Sprite: zusammen mit .PNG als Ersatz)

  • Responsive Logos/Icons

und...

  • Animmierte Webseiten (ohne Flash/JavaScript)

  • Musik Player

  • interaktive Infografik/Diagramme

  • usw.

motivierende Beispiele

WanduhrResponsive EiResponsive LogoResponsive Logo 2XboxPlay StationKaffeemaschineAnimated SVG IconsBewegung EffektBlur EffektSpinnerAndroid-DarstellungMusikPing Pong

Tools + Plugins

Lazy Line PainterKarteOptimizerPatterns GalleryFilterGrumpiconSVGenerationkostenlose Icons

Libraries

snap.svgRaphaëlCodepen

can I use

caniuse.com IE Firefox Chrome Safari Opera IOS Safari Opera Mini Android Browser Chrome Android 31 33 35 4.1 8 36 5.1 4.3 9 31 37 7 7.1 4.4 10 32 38 7.1 8 4.4.4 11 33 39 8 26 8.1 8 37 39 TP 34 40 27 35 41 28 36 42

Fazit

“SVG ist schlechthin das beste Format für UX/UI-Design.”

danke für die Aufmerksamkeit

und für die Framework → Hakim El Hattab // hakim.se // http://slides.com

FRAGEN?

Quellen