292
< Developing UXD > So leicht ist Frontendentwicklung für Konzepter und Designer heute IA Konferenz 2014

Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Embed Size (px)

DESCRIPTION

Build wireframes and prototypes in real HTML and CSS with the help of Bootstrap and become a "Coding UX Designer". Those are the slides form 2014's IA Konferenz in Berlin.

Citation preview

Page 1: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

<Developing UXD>So leicht ist Frontendentwicklung für

Konzepter und Designer heute

IA Konferenz 2014

Page 2: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Conni und Jerry: Wer wir sind

�2

Page 3: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Conni

Cornelia Erbs

�3

Freelancerin als Senior User Experience Architect

Davor Senior User Experience Architect für große Hamburger Agenturen

„HTML-Wireframing ist so spannend wie Rätsel lösen.“

Page 4: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Jerry

Jeremias Dombrowsky

�4

Senior Frontend Engineer bei XING

Davor Creative Technologist für namhafte Agenturen und Unternehmen

„Wenn UX Designer HTML und CSS lernen, haben Entwickler mehr Zeit zum Programmieren.“

Page 5: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Ziele des Workshops

�5

Page 6: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Ziele des Workshops

�6

Page 7: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Ziele des Workshops

• Quellcode lesen und verstehen

�6

Page 8: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Ziele des Workshops

• Quellcode lesen und verstehen

• Die erste Hürde des Selbst-Codens nehmen

�6

Page 9: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Ziele des Workshops

• Quellcode lesen und verstehen

• Die erste Hürde des Selbst-Codens nehmen

• Wissen, wie man weiter lernen kann

�6

Page 10: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Nach dem Workshop könnt ihr noch nicht:

�7

Page 11: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Axure wegschmeißenund direkt alle Wireframes per Code erzeugen.

�8

Page 12: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Einführung: Warum wir dazu lernen müssen

�9

Page 13: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Warum sollten wir HTML und CSS lernen?

�10

Page 14: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Warum sollten wir HTML und CSS lernen?

• Die Basis dessen, was wir gestalten, sollten wir kennen.

�10

Page 15: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Warum sollten wir HTML und CSS lernen?

• Die Basis dessen, was wir gestalten, sollten wir kennen.

• Zumal: Die Tools wechseln, HTML bleibt!

�10

Page 16: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Warum sollten wir HTML und CSS lernen?

• Die Basis dessen, was wir gestalten, sollten wir kennen.

• Zumal: Die Tools wechseln, HTML bleibt!

• Und: Eine neue Generation „native Developers“ kommt.

�10

Page 17: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

”Coding is going to be the literacy of the 21st Century.“

ZACH SIMS Co-Founder Codecademy

Page 18: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Es kann unsere Arbeitsweise verbessern!

�12

Page 19: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Es kann unsere Arbeitsweise verbessern!

�12

Heutige Arbeitsweise

Technisch umsetzen

Anforderungen klären

Wireframes erstellen

Screens erstellen

Page 20: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Es kann unsere Arbeitsweise verbessern!

�12

Heutige Arbeitsweise

Technisch umsetzen

Anforderungen klären

Wireframes erstellen

Screens erstellen

Abstrakt und statisch

AbstraktAbstrakt und statisch

Page 21: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Es kann unsere Arbeitsweise verbessern!

�12

Heutige Arbeitsweise

Technisch umsetzen

Anforderungen klären

Wireframes erstellen

Screens erstellen

Abstrakt und statisch

AbstraktAbstrakt und statisch

Echt Aber

anders

Page 22: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Es kann unsere Arbeitsweise verbessern!

�13

Zukünftige Arbeitsweise

Page 23: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Es kann unsere Arbeitsweise verbessern!

�13

Zukünftige Arbeitsweise

Statische Dokumente

• Brief • User Journeys • Sketching • Look & Feel

Page 24: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Es kann unsere Arbeitsweise verbessern!

�13

Zukünftige Arbeitsweise

Statische Dokumente

• Brief • User Journeys • Sketching • Look & Feel

Prototypen

Wireframes in HTML + CSS

Layout in HTML + CSS

Page 25: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Es kann unsere Arbeitsweise verbessern!

�13

Zukünftige Arbeitsweise

Statische Dokumente

• Brief • User Journeys • Sketching • Look & Feel

Prototypen

Wireframes in HTML + CSS

Layout in HTML + CSS

Page 26: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Es kann unsere Arbeitsweise verbessern!

�13

Zukünftige Arbeitsweise

Statische Dokumente

• Brief • User Journeys • Sketching • Look & Feel

Prototypen

Wireframes in HTML + CSS

Layout in HTML + CSS

Website

Entwicklung

Page 27: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Es kann unsere Arbeitsweise verbessern!

�13

Zukünftige Arbeitsweise

Statische Dokumente

• Brief • User Journeys • Sketching • Look & Feel

Prototypen

Wireframes in HTML + CSS

Layout in HTML + CSS

Website

Entwicklung

Page 28: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Ende der Einführung. Fragen?

�14

Page 29: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Agenda

✓ Einführung

• HTML-Grundlagen

• CSS-Grundlagen

• Bootstrap

• Ausblick

�15

Page 30: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

HTML-Grundlagen

�16

Page 31: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

HTML: Aufbau und Inhalte einer Website

�17

Page 32: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Interaktiv: Layout-Elemente kennenlernen

�18

Page 33: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

HTML: Layout-Elemente

�19

Page 34: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

HTML: Layout-Elemente

• header, footer, aside, nav, main, article, section:"Sectioning elements" gruppieren inhaltlich

�19

Page 35: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

HTML: Layout-Elemente

• header, footer, aside, nav, main, article, section:"Sectioning elements" gruppieren inhaltlich

• main: Einzigartig! Hauptinhalte kommen hier rein.

�19

Page 36: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

HTML: Layout-Elemente

• header, footer, aside, nav, main, article, section:"Sectioning elements" gruppieren inhaltlich

• main: Einzigartig! Hauptinhalte kommen hier rein.

• article: Muss alleine stehen können ( RSS-Feed, Pocket)

�19

Page 37: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

HTML: Layout-Elemente

• header, footer, aside, nav, main, article, section:"Sectioning elements" gruppieren inhaltlich

• main: Einzigartig! Hauptinhalte kommen hier rein.

• article: Muss alleine stehen können ( RSS-Feed, Pocket)

• nav: Nur für Navigation auf der Website

�19

Page 38: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

HTML: Layout-Elemente

• header, footer, aside, nav, main, article, section:"Sectioning elements" gruppieren inhaltlich

• main: Einzigartig! Hauptinhalte kommen hier rein.

• article: Muss alleine stehen können ( RSS-Feed, Pocket)

• nav: Nur für Navigation auf der Website

• div: Gruppiert für Styling, nicht inhaltlich (semantisch)

�19

Page 39: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Interaktiv: Inhaltselemente kennenlernen

�20

Page 40: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

HTML: Inhaltselemente – Textinhalte

• h1, h2: Heading. Pro section ein neues h1.

• p: Absatz ("paragraph")

• a: Link ("anchor"). Darf weitere Inhalte enthalten.

�21

Page 41: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

HTML: Inhaltselemente – Weitere Inhalte

�22

Page 42: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

HTML: Inhaltselemente – Weitere Inhalte

• img: "image" – Bildelement

�22

Page 43: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

HTML: Inhaltselemente – Weitere Inhalte

• img: "image" – Bildelement

• ul, ol: "unordered/ordered list" – eine Liste mit Bulletpoints oder Nummerierungen.Darf nur li-Elemente enthalten.

�22

Page 44: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

HTML: Inhaltselemente – Weitere Inhalte

• img: "image" – Bildelement

• ul, ol: "unordered/ordered list" – eine Liste mit Bulletpoints oder Nummerierungen.Darf nur li-Elemente enthalten.

• li: "List item" – darf andere Elemente enthalten.

�22

Page 45: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

HTML: Inhaltselemente – Weitere Inhalte

• img: "image" – Bildelement

• ul, ol: "unordered/ordered list" – eine Liste mit Bulletpoints oder Nummerierungen.Darf nur li-Elemente enthalten.

• li: "List item" – darf andere Elemente enthalten.

• audio, video, canvas, embed: Media-Inhalte

�22

Page 46: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Fragen soweit?

�23

Page 47: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

HTML: Syntax

�24

Page 48: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Tags

<p>Das ist mein Absatz</p>

�25

Page 49: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Tags

<p>Das ist mein Absatz</p>

Opening <tag> Closing </tag>

�25

Page 50: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Tags

<p>Das ist mein Absatz</p>

Opening <tag> Closing </tag>

�25

• Layout-Elemente haben "opening" und "closing tags"

Page 51: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Tags

<p>Das ist mein Absatz</p>

Opening <tag> Closing </tag>

�25

• Layout-Elemente haben "opening" und "closing tags"

• Ermöglicht Verschachtelung

Page 52: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Tags

<p>Das ist mein Absatz</p>

Opening <tag> Closing </tag>

�25

• Layout-Elemente haben "opening" und "closing tags"

• Ermöglicht Verschachtelung

• Elemente ohne "closing tags" heißen "Void Tags"

Page 53: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Tags: Verschachtelung

�26

<article> <h1>Welcome</h1> <p>Das ist mein Absatz, der <em>auch</em> verschachtelte Elemente enthält.</p></article>

Page 54: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Tags: Verschachtelung

�26

<article> <h1>Welcome</h1> <p>Das ist mein Absatz, der <em>auch</em> verschachtelte Elemente enthält.</p></article>

Opening <article>

Closing <article>

Page 55: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Tags: Verschachtelung

�26

<article> <h1>Welcome</h1> <p>Das ist mein Absatz, der <em>auch</em> verschachtelte Elemente enthält.</p></article>

Opening <article>

Closing <article>

Nested <h1>

Page 56: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Tags: Verschachtelung

�26

<article> <h1>Welcome</h1> <p>Das ist mein Absatz, der <em>auch</em> verschachtelte Elemente enthält.</p></article>

Opening <article>

Closing <article>

Nested <h1>

Nested <p>

Page 57: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Tags: Verschachtelung

�26

<article> <h1>Welcome</h1> <p>Das ist mein Absatz, der <em>auch</em> verschachtelte Elemente enthält.</p></article>

Opening <article>

Closing <article>

Nested <h1>

Nested <p>

Nested <em>

Page 58: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

�27

Attribute

<img src="img/logo.png">

Page 59: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

�27

Attribute

<img src="img/logo.png">

attribute = Eigenschaft

Page 60: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

�27

Attribute

<img src="img/logo.png">

attribute = Eigenschaft

"value" = Wert der Eigenschaft

Page 61: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

�27

Attribute

<img src="img/logo.png">

attribute = Eigenschaft

"value" = Wert der Eigenschaft

• Elemente haben unterschiedliche attributes

Page 62: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

�27

Attribute

<img src="img/logo.png">

attribute = Eigenschaft

"value" = Wert der Eigenschaft

• Elemente haben unterschiedliche attributes

• Es gibt attributes ohne valuez.B. <input type="email" required>

Page 63: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

�28

Attribute: Wichtige

Page 64: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

�28

Attribute: Wichtige

<input id="i-am-unique">

Page 65: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

�28

Attribute: Wichtige

<input id="i-am-unique">

Kennzeichnet ein zwingend einzigartiges Element, z.B. input im Formular; #jumpmark im gleichen Dokument

Page 66: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

�28

Attribute: Wichtige

<input id="i-am-unique">

Kennzeichnet ein zwingend einzigartiges Element, z.B. input im Formular; #jumpmark im gleichen Dokument

<a class="nav-link nav-link--active">Home</a>

Page 67: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

�28

Attribute: Wichtige

<input id="i-am-unique">

Kennzeichnet ein zwingend einzigartiges Element, z.B. input im Formular; #jumpmark im gleichen Dokument

<a class="nav-link nav-link--active">Home</a>

Wird fürs Styling verwendet. Elemente können mehrere "class names" enthalten.

Page 68: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Attribute: Beispiele

�29

Page 69: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Attribute: Beispiele

�29

<img src="img/my-dog.jpg" alt="Caja">

Page 70: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Attribute: Beispiele

�29

<img src="img/my-dog.jpg" alt="Caja"><a href="contact.html">Contact</a>

Page 71: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Attribute: Beispiele

�29

<img src="img/my-dog.jpg" alt="Caja"><a href="contact.html">Contact</a><a href="http://google.com" target="_blank">Leave</a>

Page 72: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Attribute: Beispiele

�29

<img src="img/my-dog.jpg" alt="Caja"><a href="contact.html">Contact</a><a href="http://google.com" target="_blank">Leave</a><label for="user-mail">Your email address:</label>

Page 73: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Attribute: Beispiele

�29

<img src="img/my-dog.jpg" alt="Caja"><a href="contact.html">Contact</a><a href="http://google.com" target="_blank">Leave</a><label for="user-mail">Your email address:</label><input id="user-mail" type="email"

Page 74: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Attribute: Beispiele

�29

<img src="img/my-dog.jpg" alt="Caja"><a href="contact.html">Contact</a><a href="http://google.com" target="_blank">Leave</a><label for="user-mail">Your email address:</label><input id="user-mail" type="email" placeholder="[email protected]" required>

Page 75: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Attribute: Beispiele

�29

<img src="img/my-dog.jpg" alt="Caja"><a href="contact.html">Contact</a><a href="http://google.com" target="_blank">Leave</a><label for="user-mail">Your email address:</label><input id="user-mail" type="email" placeholder="[email protected]" required><script src="js/scripts.js"></script>

Page 76: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Attribute: Beispiele

�29

<img src="img/my-dog.jpg" alt="Caja"><a href="contact.html">Contact</a><a href="http://google.com" target="_blank">Leave</a><label for="user-mail">Your email address:</label><input id="user-mail" type="email" placeholder="[email protected]" required><script src="js/scripts.js"></script>

• Die Attribute von allen Elementen findet ihr unter MDN (Mozilla Developer Network)

Page 77: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Interaktiv: HTML-Elemente untersuchen

�30

Page 78: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

HTML-Elemente untersuchen

• Google Chrome: "Chrome Developer Tools (DevTools)"

• Rechtsklick auf Element: "Element untersuchen" (Profis drücken cmd+shift+c)

• Aufklappen, Auswählen, per "Brotkrumen" navigieren

• Text ändern, Elemente verschieben und löschen

�31

Page 79: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

HTML: Dokument erstellen

�32

Page 80: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Sublime Text 3 einrichten: komplett

• Download: http://www.sublimetext.com/3

• Einstellungen: "Default Settings" in "User Settings" kopieren und anpassen

• Package Control installieren für Erweiterungen

• cmd+shift+p "Package Install":Emmet, SidebarEnhancements, BracketHighlighter,Color Highlighter

�33

Page 81: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Interaktiv: Dokument erstellen

�34

USB01_html_start

Page 82: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Dokument erstellen

�35

Page 83: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Dokument erstellen

• Mit Emmet: html:5Tab

�35

Page 84: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Dokument erstellen

• Mit Emmet: html:5Tab

• HTML5 Doctype: <!doctype html>

�35

Page 85: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Dokument erstellen

• Mit Emmet: html:5Tab

• HTML5 Doctype: <!doctype html>

• head: Metadaten, Dokumenttitel, Link zu Stylesheets

�35

Page 86: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Dokument erstellen

• Mit Emmet: html:5Tab

• HTML5 Doctype: <!doctype html>

• head: Metadaten, Dokumenttitel, Link zu Stylesheets

• body: Sichtbare Inhalte, Link zu JavaScripts am Ende

�35

Page 87: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Interaktiv: HTML schreiben

�36

Page 88: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Weitere Ressourcen

�37

Page 90: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Weitere Ressourcen

• codecademy.com – kostenloser Onlinekurs

• developer.mozilla.org – alles zu HTML und CSS

�37

Page 91: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Weitere Ressourcen

• codecademy.com – kostenloser Onlinekurs

• developer.mozilla.org – alles zu HTML und CSS

• stackoverflow.com – Fragen & Antworten

�37

Page 92: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Weitere Ressourcen

• codecademy.com – kostenloser Onlinekurs

• developer.mozilla.org – alles zu HTML und CSS

• stackoverflow.com – Fragen & Antworten

• abookapart.com – Bücher zu HTML5, CSS3 und mehr

�37

Page 93: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Weitere Ressourcen

• codecademy.com – kostenloser Onlinekurs

• developer.mozilla.org – alles zu HTML und CSS

• stackoverflow.com – Fragen & Antworten

• abookapart.com – Bücher zu HTML5, CSS3 und mehr

• html5weekly.com – HTML News

�37

Page 94: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Weitere Ressourcen

• codecademy.com – kostenloser Onlinekurs

• developer.mozilla.org – alles zu HTML und CSS

• stackoverflow.com – Fragen & Antworten

• abookapart.com – Bücher zu HTML5, CSS3 und mehr

• html5weekly.com – HTML News

• codepen.io – Online Frontend Code schreiben und teilen�37

Page 95: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Das ist HTML. Fragen?

�38

Page 96: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Agenda

✓ Einführung

✓ HTML-Grundlagen

• CSS-Grundlagen

• Bootstrap

• Ausblick

�39

Page 97: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

CSS-Grundlagen

�40

Page 98: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

CSS: Elemente finden und verändern

�41

Page 99: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Selektoren: class

�42

<img src="img/logo.png" alt="IA Konferenz">

Page 100: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Selektoren: class

�42

<img src="img/logo.png" alt="IA Konferenz">

Nicht jedes <img> soll gleich gestylt werden

Page 101: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Selektoren: class

�42

<img src="img/logo.png" alt="IA Konferenz">

Nicht jedes <img> soll gleich gestylt werden

<img class="logo" src="img/logo.png" alt="IA Konferenz">

Page 102: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Selektoren: class

�42

<img src="img/logo.png" alt="IA Konferenz">

Nicht jedes <img> soll gleich gestylt werden

<img class="logo" src="img/logo.png" alt="IA Konferenz">

Durch das class-Attribut können wir das Element stylen

Page 103: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Selektoren: class

�43

<img class="logo" src="img/logo.png" alt="IA Konferenz">

Page 104: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

.logo { width: 200px; height: 100px; }

Selektoren: class

�43

<img class="logo" src="img/logo.png" alt="IA Konferenz">

Page 105: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

.logo { width: 200px; height: 100px; }

Selektoren: class

�43

.class-selector beginnt immer mit einem Punkt (.logo).

<img class="logo" src="img/logo.png" alt="IA Konferenz">

Page 106: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

.logo { width: 200px; height: 100px; }

Selektoren: class

�43

.class-selector beginnt immer mit einem Punkt (.logo).

<img class="logo" src="img/logo.png" alt="IA Konferenz">

• Wir verwenden (fast) immer .class-Selektoren!

Page 107: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

.logo { width: 200px; height: 100px; }

Selektoren: class

�44

Page 108: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

.logo { width: 200px; height: 100px; }

Selektoren: class

�44

Eine "declaration" besteht

aus property und value.

Page 109: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

.logo { width: 200px; height: 100px; }

Selektoren: class

�44

:

Eine "declaration" besteht

aus property und value.

Page 110: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

.logo { width: 200px; height: 100px; }

Selektoren: class

�44

:

Eine "declaration" besteht

aus property und value.

;

Page 111: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

.logo { width: 200px; height: 100px; }

Selektoren: class

�44

:

Eine "declaration" besteht

aus property und value.

; selector und

{ declaration block }

bilden ein "Rule Set"

Page 112: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Interaktiv: CSS untersuchen

�45

Page 113: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

CSS untersuchen

• Element auswählen, Declarations ein- und ausschalten, Werte ändern (auch mit Pfeiltasten und Shift)

• Element auswählen, class-Attribut hinzufügen und entfernen

�46

Page 114: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

CSS: Learnings durch DevTools

• h1: "Element-Selektoren" nur für sehr allgemeine Styles, sind weniger spezifisch als Klassen.

• h1, .main-headline: Ein Rule Set kann mehrere kommagetrennte Selektoren haben.

• .page-nav .page-nav__link: Mehrteilige Selektoren sind spezifischer. Hohe Spezifität ist schwer überschreibbar.

• #register: Ids haben höhere Spezifität als Klassen.

�47

Page 115: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

CSS: Wichtige Konzepte

�48

Page 116: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

CSS: Block- und Inline-Elemente

�49

Block-Elemente

Nehmen sich immer die ganze verfügbare Breite. z. B. h1, p, ul, li, div

Page 117: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

CSS: Block- und Inline-Elemente

�49

Block-Elemente

Nehmen sich immer die ganze verfügbare Breite. z. B. h1, p, ul, li, div

Inline-Elemente

Teilen sich eine Zeile.z. B. a, em, img, span

Page 118: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Demonstration: Block- und Inline-Elemente

�50

Page 119: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

CSS: Box Model

�51

Page 120: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

CSS: Box Model

�51

Element

Element

Page 121: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

CSS: Box Model

�51

Padding

Element

Element

Page 122: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

CSS: Box Model

�51

BorderPadding

Element

Element

Page 123: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

CSS: Box Model

Margin

�51

BorderPadding

Element

Element

Page 124: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Demonstration: Box Model

�52

Page 125: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

CSS: Learnings Boxmodel

• Browser geben den Elementen Standard-Styles.

• padding wird auf die width und height draufgerechnet

• Inline-Elemente bekommen kein margin-top und margin-bottom.

• margin-left: auto; margin-right: auto; zentriert Block-Elemente horizontal.

�53

Page 126: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Border, Margin und Padding: Werte

�54

margin: 5px 10px 20px 3px;

Page 127: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Border, Margin und Padding: Werte

�54

margin: 5px 10px 20px 3px;

Oben

Page 128: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Border, Margin und Padding: Werte

�54

margin: 5px 10px 20px 3px;

Oben Rechts

Page 129: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Border, Margin und Padding: Werte

�54

margin: 5px 10px 20px 3px;

Oben

Unten

Rechts

Page 130: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Border, Margin und Padding: Werte

�54

margin: 5px 10px 20px 3px;

Oben

Unten

Rechts

Links

Page 131: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Border, Margin und Padding: Werte

�54

margin: 5px 10px 20px 3px;

Oben

Unten

Rechts

Links

margin-top: 5px; margin-right: 10px; margin-bottom: 20px; margin-left: 3px;

Page 132: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Border, Margin und Padding: Werte

�55

Page 133: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Border, Margin und Padding: Werte

�55

margin: 5px 10px 20px 3px; Oben UntenRechts Links

Page 134: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Border, Margin und Padding: Werte

�55

margin: 5px 10px 20px 10px;

margin: 5px 10px 20px 3px; Oben UntenRechts Links

Page 135: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Border, Margin und Padding: Werte

�55

margin: 5px 10px 20px 10px;

margin: 5px 10px 5px 10px;

margin: 5px 10px 20px 3px; Oben UntenRechts Links

Page 136: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Border, Margin und Padding: Werte

�55

margin: 5px 10px 20px 10px;

margin: 5px 10px 5px 10px;

margin: 5px 5px 5px 5px;

margin: 5px 10px 20px 3px; Oben UntenRechts Links

Page 137: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Interaktiv: CSS schreiben

�56

USB03_css_start

Page 138: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Weitere Ressourcen

�57

Page 140: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Weitere Ressourcen

• css-tricks.com – CSS Tutorials und Tipps

• developer.mozilla.org – alles zu HTML und CSS

�57

Page 141: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Weitere Ressourcen

• css-tricks.com – CSS Tutorials und Tipps

• developer.mozilla.org – alles zu HTML und CSS

• stackoverflow.com – Fragen & Antworten

�57

Page 142: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Weitere Ressourcen

• css-tricks.com – CSS Tutorials und Tipps

• developer.mozilla.org – alles zu HTML und CSS

• stackoverflow.com – Fragen & Antworten

• shop.smashingmagazine.com – Smashing Library

�57

Page 143: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Weitere Ressourcen

• css-tricks.com – CSS Tutorials und Tipps

• developer.mozilla.org – alles zu HTML und CSS

• stackoverflow.com – Fragen & Antworten

• shop.smashingmagazine.com – Smashing Library

• abookapart.com – Bücher zu HTML5, CSS3 und mehr

�57

Page 144: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Weitere Ressourcen

• css-tricks.com – CSS Tutorials und Tipps

• developer.mozilla.org – alles zu HTML und CSS

• stackoverflow.com – Fragen & Antworten

• shop.smashingmagazine.com – Smashing Library

• abookapart.com – Bücher zu HTML5, CSS3 und mehr

• codepen.io – Online Frontend Code schreiben und teilen�57

Page 145: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Das ist CSS. Fragen?

�58

Page 146: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Agenda

✓ Einführung

✓ HTML-Grundlagen

✓ CSS-Grundlagen

• Bootstrap

• Ausblick

�59

Page 147: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap

�60

Page 148: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Was ist das?

�61

Page 149: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

�62

The most popular front-end framework for developing responsive, mobile first projects on the web.

Was ist Bootstrap?

Page 150: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

�62

„Millions of amazing sites across the web are being built with Bootstrap.“

The most popular front-end framework for developing responsive, mobile first projects on the web.

Was ist Bootstrap?

Page 151: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

�62

„Millions of amazing sites across the web are being built with Bootstrap.“

Sammlung von HTML, CSS und JS

The most popular front-end framework for developing responsive, mobile first projects on the web.

Was ist Bootstrap?

Page 152: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

�62

NEU in Bootstrap 3

„Millions of amazing sites across the web are being built with Bootstrap.“

Sammlung von HTML, CSS und JS

The most popular front-end framework for developing responsive, mobile first projects on the web.

Was ist Bootstrap?

Page 153: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Wie funktioniert Bootstrap?

�63

Page 154: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Wie funktioniert Bootstrap?

• Verknüpfung: von Bootstrap-CSS sowie -JS mit dem eigenen HTML

�63

Page 155: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Wie funktioniert Bootstrap?

• Verknüpfung: von Bootstrap-CSS sowie -JS mit dem eigenen HTML

• Automatisches Styling: von Typographie und Links

�63

Page 156: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Wie funktioniert Bootstrap?

• Verknüpfung: von Bootstrap-CSS sowie -JS mit dem eigenen HTML

• Automatisches Styling: von Typographie und Links

• Spezielles Styling: über das Einfügen von Klassen

�63

Page 157: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Demonstration: Das ist Bootstrap.

�64

Page 158: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: CSS und Components

�65

CSS

Typography Code Tables Forms Buttons Images Helper Classes Responsive Utilities

Components

Glyphicons Dropdowns Button groups Button dropdowns Input groups Navs Navbar Breadcrumbs Paginations Labels

Badges Jumbotron Page header Thumbnails Alerts Progress bars Media object List group Panels Wells

Page 159: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: das Grid

�66

Page 160: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Grid

�67

Page 161: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Grid

• Grid-System für Adaptive und Responsive Web Design

�67

Page 162: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Grid

• Grid-System für Adaptive und Responsive Web Design

• Ist standardmäßig mobile first („scale up“)

�67

Page 163: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Grid

• Grid-System für Adaptive und Responsive Web Design

• Ist standardmäßig mobile first („scale up“)

• Funktioniert über verschachtelte Klassen

�67

Page 164: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Grid

1. Klasse „Container“ .container (fixed-width für Adaptive-Verhalten) oder .container-fluid (full-width für Fluid-Verhalten)

�68

Page 165: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Grid

1. Klasse „Container“ .container (fixed-width für Adaptive-Verhalten) oder .container-fluid (full-width für Fluid-Verhalten)

�68

<div class="container-fluid"> </div>

Page 166: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Grid

2. Klasse „Row“ um Elemente nebeneinander anzuordnen

�69

Page 167: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Grid

2. Klasse „Row“ um Elemente nebeneinander anzuordnen

�69

<div class="container-fluid"> <div class="row"> </div> </div>

Page 168: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Grid

3. Klasse „Column“ für die Definition der Spaltenbreite, basierend auf einem 12-spaltigen Grid-System

�70

Page 169: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Grid

3. Klasse „Column“ für die Definition der Spaltenbreite, basierend auf einem 12-spaltigen Grid-System

�70

<div class="container-fluid"> <div class="row"> <div class="col-md-6">Halbe Reihe</div> <div class="col-md-6">Halbe Reihe</div> </div> </div>

Page 170: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

<div class="container-fluid"> <div class="row"> <div class="col-md-6">Halbe Reihe</div> <div class="col-md-6">Halbe Reihe</div> </div> </div>

Bootstrap: Grid

�71

1. Container

2. Row

3. Columns

Page 171: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

<div class="container-fluid"> <div class="row"> <div class="col-md-6">Halbe Reihe</div> <div class="col-md-6">Halbe Reihe</div> </div> </div>

Bootstrap: Grid

�71

1. Container

2. Row

3. Columns

Halbe Reihe Halbe Reihe

Page 172: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap Grid: Columns

�72

Extra smalldevices

Phones

<768px

.col-xs-

Smalldevices

Tablets

≥768px

.col-sm-

Medium devices

Desktops

≥992px

.col-md-

Large devices

Desktops

≥1200px

.col-lg-

Page 173: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap Grid: Columns

�72

Extra smalldevices

Phones

<768px

.col-xs-

Smalldevices

Tablets

≥768px

.col-sm-

Medium devices

Desktops

≥992px

.col-md-

Large devices

Desktops

≥1200px

.col-lg-

Eine Grid-Größe gilt immer für diese Größe und darüber: sm gilt für sm, md und lg.

Page 174: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap Grid: Columns mit Versatz

�73

4 Spalten 4 Spalten

Page 175: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap Grid: Columns mit Versatz

�73

4 Spalten 4 Spalten

<div class="container-fluid"> <div class="row"> <div class=„col-md-4“>4 Spalten</div> <div class=„col-md-4 col-md-offset-4“>4 Spalten</div> </div> </div>

Page 176: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap Grid: Columns mit Versatz

�73

4 Spalten 4 Spalten

<div class="container-fluid"> <div class="row"> <div class=„col-md-4“>4 Spalten</div> <div class=„col-md-4 col-md-offset-4“>4 Spalten</div> </div> </div> Offset

Page 177: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Responsive und Mobile first: nicht heute

• Bootstrap ist von Haus aus responsive.

• Spezielle Elemente:

• Responsive tables

• Responsive images

• Responsive Utilities(Sichtbarkeit toggeln)

�74

Zu viele Themen!

Page 178: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Interaktiv: Bootstrap kennenlernen

�75

Page 179: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Loslegen in 6 Schritten

• Schritt 1: Download unter http://getbootstrap.com/

�76

Page 180: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Loslegen in 6 Schritten

• Schritt 1: Download unter http://getbootstrap.com/

�76

Page 181: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Loslegen in 6 Schritten

• Schritt 1: Download unter http://getbootstrap.com/

�76

USBdownloads / bootstrap-3.1.1-dist

Dieses, bitte!

Page 182: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Loslegen in 6 Schritten

• Schritt 1: Download unter http://getbootstrap.com/

�77

Page 183: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Loslegen in 6 Schritten

• Schritt 1: Download • Schritt 2: Dateistruktur anlegen

Page 184: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Loslegen in 6 Schritten

• Schritt 1: Download • Schritt 2: Dateistruktur anlegen

getbootstrap.com

css/bootstrap.css fonts js/bootstrap.js

Page 185: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Loslegen in 6 Schritten

• Schritt 1: Download • Schritt 2: Dateistruktur anlegen

getbootstrap.com

css/bootstrap.css fonts js/bootstrap.js

Lokaler Ordner

css/ Neuer Ordner: fonts Neuer Ordner: js

Page 186: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Loslegen in 6 Schritten

• Schritt 1: Download • Schritt 2: Dateistruktur anlegen

getbootstrap.com

css/bootstrap.css fonts js/bootstrap.js

Lokaler Ordner

css/ Neuer Ordner: fonts Neuer Ordner: js

jquery.com

jquery.js

Page 187: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Loslegen in 6 Schritten

• Schritt 1: Download • Schritt 2: Dateistruktur anlegen

getbootstrap.com

css/bootstrap.css fonts js/bootstrap.js

Lokaler Ordner

css/ Neuer Ordner: fonts Neuer Ordner: js

jquery.com

jquery.js In den js-Ordner

Page 188: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Loslegen in 6 Schritten

• Schritt 1: Download • Schritt 2: Dateistruktur anlegen USB

05_bootstrap_start

getbootstrap.com

css/bootstrap.css fonts js/bootstrap.js

Lokaler Ordner

css/ Neuer Ordner: fonts Neuer Ordner: js

jquery.com

jquery.js In den js-Ordner

Page 189: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Loslegen in 6 Schritten

• Schritt 1: Download • Schritt 2: Dateistruktur anlegen • Schritt 3: Dateien verknüpfen

�79

Page 190: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Loslegen in 6 Schritten

• Schritt 1: Download • Schritt 2: Dateistruktur anlegen • Schritt 3: Dateien verknüpfen: (a) CSS

�80

bootstrap.css im head VOR dem eigenen CSS

Page 191: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Loslegen in 6 Schritten

• Schritt 1: Download • Schritt 2: Dateistruktur anlegen • Schritt 3: Dateien verknüpfen: (b) JS

�81

.js am Ende des bodys

Page 192: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Loslegen in 6 Schritten

• Schritt 1: Download • Schritt 2: Dateistruktur anlegen • Schritt 3: Dateien verknüpfen • Schritt 4: Layout-Elemente einfügen

�82

z. B. Header, Primärnavigation, Hauptcontent, Marginalspalte und Footer

Page 193: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

�X

Erforderlich: Viewport Meta Tag im head

<meta name="viewport" content="width=device-width,

initial-scale=1">

Ermöglicht Responsive Web Designauf mobilen Geräten

Page 194: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Loslegen in 6 Schritten

• Schritt 1: Download • Schritt 2: Dateistruktur anlegen • Schritt 3: Dateien verknüpfen • Schritt 4: Layout-Elemente einfügen • Schritt 5: Grid anlegen

�83

Page 195: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Loslegen in 6 Schritten

• Schritt 1: Download • Schritt 2: Dateistruktur anlegen • Schritt 3: Dateien verknüpfen • Schritt 4: Layout-Elemente einfügen • Schritt 5: Grid anlegen

�83

mit Hilfe der Bootstrap-Doku

Page 196: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Loslegen in 6 Schritten

• Schritt 1: Download • Schritt 2: Dateistruktur anlegen • Schritt 3: Dateien verknüpfen • Schritt 4: Layout-Elemente einfügen • Schritt 5: Grid anlegen • Schritt 6: Inhaltselemente anlegen und stylen

�84

Page 197: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Loslegen in 6 Schritten

• Schritt 1: Download • Schritt 2: Dateistruktur anlegen • Schritt 3: Dateien verknüpfen • Schritt 4: Layout-Elemente einfügen • Schritt 5: Grid anlegen • Schritt 6: Inhaltselemente anlegen und stylen

�84

mit Hilfe der Code-Snippets aus der Bootstrap-Doku

Page 198: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Loslegen in 6 Schritten

• Schritt 1: Download • Schritt 2: Dateistruktur anlegen • Schritt 3: Dateien verknüpfen • Schritt 4: Layout-Elemente einfügen • Schritt 5: Grid anlegen • Schritt 6: Inhaltselemente anlegen und stylen

�85

Page 199: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Grid anlegen für main

�86

USB05_bootstrap_start

Page 200: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Grid anlegen für main

• container und row sind bereits da

�86

USB05_bootstrap_start

Page 201: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Grid anlegen für main

• container und row sind bereits da

• Section „Jump Marks“ und „Articles“: col-sm-7

�86

USB05_bootstrap_start

Page 202: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Grid anlegen für main

• container und row sind bereits da

• Section „Jump Marks“ und „Articles“: col-sm-7

• Aside: col-sm-4 und col-sm-offset-1

�86

USB05_bootstrap_start

Page 203: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Inhaltselemente stylen

�87

Page 204: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Inhaltselemente stylen

�87

• Link „Einreichungsformular“: grüner ButtonLink „Tickets kaufen“: großer, orangener Button

Page 205: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Inhaltselemente stylen

�87

• Link „Einreichungsformular“: grüner ButtonLink „Tickets kaufen“: großer, orangener Button

• Meta nav: „list-inline“ anordnen und „pull-right“ ausrichten

Page 206: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Inhaltselemente stylen

�87

• Link „Einreichungsformular“: grüner ButtonLink „Tickets kaufen“: großer, orangener Button

• Meta nav: „list-inline“ anordnen und „pull-right“ ausrichten

• Main navigation: gewünschte „nav“ hinzufügen (z. B. „Pills“), ausrichten („justified“), größere Schrift (z. B. „lead“)„IAK 2014“ ist „active“

Page 207: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Inhaltselemente stylen

�87

• Link „Einreichungsformular“: grüner ButtonLink „Tickets kaufen“: großer, orangener Button

• Meta nav: „list-inline“ anordnen und „pull-right“ ausrichten

• Main navigation: gewünschte „nav“ hinzufügen (z. B. „Pills“), ausrichten („justified“), größere Schrift (z. B. „lead“)„IAK 2014“ ist „active“

• Footer-Link: rechtsausgerichtetes Icon

Page 208: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Inhaltselemente: weitere Stylings

�88

Page 209: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Inhaltselemente: weitere Stylings

• Liste in Main aside: ohne Bulletpoints („unstyled“)

�88

Page 210: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Inhaltselemente: weitere Stylings

• Liste in Main aside: ohne Bulletpoints („unstyled“)

• Jump Marks: kleinere Textgröße

�88

Page 211: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Inhaltselemente: weitere Stylings

• Liste in Main aside: ohne Bulletpoints („unstyled“)

• Jump Marks: kleinere Textgröße

• Headlines in Articles und Aside: kleinere Textgröße

�88

Page 212: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: Was noch zu sagen ist.

�89

Page 213: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Demonstration: JavaScript mit Bootstrap

�90

Page 214: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Warum Bootstrap?

�91

Page 215: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Warum Bootstrap?

• Gute Dokumentation

�91

Page 216: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Warum Bootstrap?

• Gute Dokumentation

• Große Community

�91

Page 217: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Warum Bootstrap?

• Gute Dokumentation

• Große Community

• Viele UI-Elemente

�91

Page 218: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Warum Bootstrap?

• Gute Dokumentation

• Große Community

• Viele UI-Elemente

• Responsive Web Design als Standard

�91

Page 219: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Warum Bootstrap?

• Gute Dokumentation

• Große Community

• Viele UI-Elemente

• Responsive Web Design als Standard

• Individuell anpassbar ("Customize")

�91

Page 220: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Unser erstes Boilerplate: für euch

�92

github.com/developinguxd/boilerplates

Page 221: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Das ist Bootstrap. Noch Fragen?

�93

Page 222: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Agenda

✓ Einführung

✓ HTML-Grundlagen

✓ CSS-Grundlagen

✓ Bootstrap

• Ausblick

�94

Page 223: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Ausblick

�95

Page 224: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

�96

Tipps: die tägliche Arbeit

Page 225: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

• Start: Handscribbles

�96

Tipps: die tägliche Arbeit

Page 226: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

• Start: Handscribbles

• Entscheidung: Ist die Projektart geeignet?

�96

Tipps: die tägliche Arbeit

Page 227: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

• Start: Handscribbles

• Entscheidung: Ist die Projektart geeignet?

• Doing: Prototyping gemeinsam durch Kreation und Frontend-Entwicklung

�96

Tipps: die tägliche Arbeit

Page 228: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

• Start: Handscribbles

• Entscheidung: Ist die Projektart geeignet?

• Doing: Prototyping gemeinsam durch Kreation und Frontend-Entwicklung

• Ergänzende Dokumentation: via Screenshots des Prototypen im gewohnten Programm

�96

Tipps: die tägliche Arbeit

Page 229: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Weiterlernen: viele wichtige Themen

�97

Page 230: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Weiterlernen: viele wichtige Themen

�97

HTML

CSS

Bootstrap

DevTools

Page 231: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Weiterlernen: viele wichtige Themen

�97

JavaScript

jQuery

Sass

holder.jsHTML

CSS

Bootstrap

DevTools

Page 232: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Weiterlernen: viele wichtige Themen

�97

JavaScript

jQuery

Sass

holder.js GitHub

CodeKit

Webfonts

CodePen

HTML

CSS

Bootstrap

DevTools

Page 233: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

“I think everybody in this country should learn how to program a computer because it teaches you how to think.“

STEVE JOBS The Lost Interview

Page 234: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

One more thing ...

�99

Page 235: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Developing UXD: Unsere Idee

�100

Page 236: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Developing UXD: Unsere Idee

�101

Page 237: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Developing UXD: Unsere Idee

• Fest definiertes, gemeinsames Toolset

�101

Page 238: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Developing UXD: Unsere Idee

• Fest definiertes, gemeinsames Toolset

• Moderne, erprobte Standards

�101

Page 239: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Developing UXD: Unsere Idee

• Fest definiertes, gemeinsames Toolset

• Moderne, erprobte Standards

• Vorauswahl der besten Lernressourcen

�101

Page 240: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Developing UXD: Unsere Idee

• Fest definiertes, gemeinsames Toolset

• Moderne, erprobte Standards

• Vorauswahl der besten Lernressourcen

• Lebendige Plattform

�101

Page 241: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Developing UXD: Unsere Idee

• Fest definiertes, gemeinsames Toolset

• Moderne, erprobte Standards

• Vorauswahl der besten Lernressourcen

• Lebendige Plattform

• Gemeinsam und Open Source

�101

Page 242: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Developing UXD: Unsere Idee

• Fest definiertes, gemeinsames Toolset

• Moderne, erprobte Standards

• Vorauswahl der besten Lernressourcen

• Lebendige Plattform

• Gemeinsam und Open Source

• Eigenentwicklungen

�101

Page 243: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Developing UXD: Unsere Idee

• Fest definiertes, gemeinsames Toolset

• Moderne, erprobte Standards

• Vorauswahl der besten Lernressourcen

• Lebendige Plattform

• Gemeinsam und Open Source

• Eigenentwicklungen

• Unterstützung durch Frontend-Community

�101

Page 244: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

�102

Page 245: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

developinguxd.com

�102

Page 246: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

developinguxd.com

�102

@developinguxd facebook.com/developinguxd [email protected]

Page 247: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Developing UXD: Nächste Schritte

�103

Page 248: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Developing UXD: Nächste Schritte

• Die besten Lernquellen im Web

�103

Page 249: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Developing UXD: Nächste Schritte

• Die besten Lernquellen im Web

• Lernpläne

�103

Page 250: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Developing UXD: Nächste Schritte

• Die besten Lernquellen im Web

• Lernpläne

• Aufbau einer Community begeisterter UX-Designer

�103

Page 251: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Developing UXD: Nächste Schritte

• Die besten Lernquellen im Web

• Lernpläne

• Aufbau einer Community begeisterter UX-Designer

• Entwicklung von Tools für Workflow-Optimierungen

�103

Page 252: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Vielen Dank! Happy coding!

�104

Page 253: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Euer Feedback: Wie wars?

�105

Page 254: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

developinguxd.com

�106

@developinguxd facebook.com/developinguxd [email protected]

Page 255: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Cornelia Erbs, Jeremias Dombrowsky Lessers Passage 10 22767 Hamburg !

+49 (0)151 23421980 !

[email protected] http://developinguxd.com/

�107

Page 256: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Alle Icons in dieser Präsentation kommen von http://iconmonstr.com/

�108

Page 257: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)
Page 258: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Backlog

�110

Page 259: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Backlog: Sublime, HTML, CSS, JS

�111

Page 260: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Backlog

• Sublime: Shortcuts

• Sublime: Emmet Shortcuts

• HTML: Formulare

• Holder.js: Img placeholders

• CSS: BEM naming convention

• jQuery und JavaScript: Einbinden und laden�112

Page 261: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Sublime Text 3: Emmet Shortcuts

�113

Page 262: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Sublime Text 3: Emmet Shortcuts

• Selector-Syntax: e.g. article>h1+pTab wird zu<article> <h1></h1> <p></p></article>

�113

Page 263: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Sublime Text 3: Emmet Shortcuts

• Selector-Syntax: e.g. article>h1+pTab wird zu<article> <h1></h1> <p></p></article>

• Ctrl+w: "Wrap with tag"

�113

Page 264: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Sublime Text 3: Emmet Shortcuts

• Selector-Syntax: e.g. article>h1+pTab wird zu<article> <h1></h1> <p></p></article>

• Ctrl+w: "Wrap with tag"

• Cmd+Shift+k: Tag ändern

�113

Page 265: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Sublime Text 3: Emmet Shortcuts

• Selector-Syntax: e.g. article>h1+pTab wird zu<article> <h1></h1> <p></p></article>

• Ctrl+w: "Wrap with tag"

• Cmd+Shift+k: Tag ändern

• Cmd+': Element löschen�113

Page 266: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

HTML: Formulare

• form: Gruppiert zusammengehörige Formularelemente, darf auch andere Elemente enthalten.

• input: Kann von unterschiedlichem Typ sein: text, email, number, tel, color, date, checkbox, radio, ...

• select: Enthält option-Elemente, die ein Dropdown bilden.

�114

Page 267: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Sublime Text 3: Shortcuts

�115

Page 268: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Sublime Text 3: Shortcuts

• TagnameTab: Autocomplete (Mehrfach für Sprungmarken)

�115

Page 269: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Sublime Text 3: Shortcuts

• TagnameTab: Autocomplete (Mehrfach für Sprungmarken)

• Cmd+p: Fuzzy-Search für Dateien

�115

Page 270: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Sublime Text 3: Shortcuts

• TagnameTab: Autocomplete (Mehrfach für Sprungmarken)

• Cmd+p: Fuzzy-Search für Dateien

• Cmd+Shift+p: Zugriff auf alle Befehle

�115

Page 271: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Sublime Text 3: Shortcuts

• TagnameTab: Autocomplete (Mehrfach für Sprungmarken)

• Cmd+p: Fuzzy-Search für Dateien

• Cmd+Shift+p: Zugriff auf alle Befehle

• Cmd+d: Weitere Instanz des markierten Texts auswählen

�115

Page 272: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Sublime Text 3: Shortcuts

• TagnameTab: Autocomplete (Mehrfach für Sprungmarken)

• Cmd+p: Fuzzy-Search für Dateien

• Cmd+Shift+p: Zugriff auf alle Befehle

• Cmd+d: Weitere Instanz des markierten Texts auswählen

• Ausführliches Tutorial auf scotch.io

�115

Page 273: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Selektoren: BEM naming convention

�116

Page 274: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Selektoren: BEM naming convention

• .page-header: Einfacher Bindestrich bei zusammengesetzten Namen

�116

Page 275: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Selektoren: BEM naming convention

• .page-header: Einfacher Bindestrich bei zusammengesetzten Namen

• .page-nav, .page-nav__link: Unterelemente eines "Moduls" haben den Modulnamen als Prefix.

�116

Page 276: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Selektoren: BEM naming convention

• .page-header: Einfacher Bindestrich bei zusammengesetzten Namen

• .page-nav, .page-nav__link: Unterelemente eines "Moduls" haben den Modulnamen als Prefix.

• .button, .button--small, .button--cancel: Varianten sind als solche erkennbar.

�116

Page 277: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Holder.js: Img placeholders

�117

Page 278: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Holder.js: Img placeholders

• Download: http://imsky.github.io/holder/

�117

Page 279: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Holder.js: Img placeholders

• Download: http://imsky.github.io/holder/

• JavaScript im <body> laden:<script src="js/holder.js"></script>

�117

Page 280: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Holder.js: Img placeholders

• Download: http://imsky.github.io/holder/

• JavaScript im <body> laden:<script src="js/holder.js"></script>

• Einsatz:<img src="holder.js/300x200"><img src="holder.js/100x100/#000:#fff"><img src="holder.js/300x200/text:hello world"><img src="holder.js/200x200/auto/textmode:exact">

�117

Page 281: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Backlog: Bootstrap

�118

Page 282: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap UI Editors

• Eine Reihe von Editoren: für unterschiedliche Ansprüche

• Siehe: http://thedesignblitz.com/the-best-bootstrap-ui-editors/

�119

Page 283: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Bootstrap: und andere Frameworks

• Bootstrap http://twitter.github.io/bootstrap/ weit verbreitet, umfangreich

• Foundation http://foundation.zurb.com/ sehr umfangreich, komplex

• Pure http://purecss.io/ sehr schlank

• HTML Kickstart http://www.99lime.com/elements/ umfangreich, leicht

�120

Page 284: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Backlog: Argumentationshilfe

�121

Page 285: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Backlog: Argumentationshilfe

• Vorteile von HTML-Wireframes: für Kunden

• Vorteile von HTML-Wireframes: für Agenturen

• Grenzen des statischen Designs überwinden

• Wissen aufbauen

• Zusammenarbeit verbessern

�122

Page 286: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Kunde

Vorteile: für Kunden

• Vermitteln Funktionalität einer Website von Anfang an realistisch

• Sind durch Interaktivität einfacher zu verstehen

• Produkt entwickelt sich vor den Augen des Kunden stetig weiter

• Kein Bruch zwischen Kreations- und Entwicklung-sphase (keine Überraschungen)

�123

Page 287: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

UX

Vorteile: für Agenturen 1/2

• Keine bzw. weniger Spezifikationen erforderlich

• Integrierte Arbeitsweise wird gefördert

• Animationen und Interaktivität werden direkt berücksichtigt

• Ansätze können direkt ausprobiert und dadurch Design-Entscheidungen leichter getroffen werden

�124

Page 288: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

UX

Vorteile: für Agenturen 2/2

• Frühe Usertests sind möglich

• Browser-Spezifika funktionieren automatisch (Scrollbars, Button-Größen, Hover etc.)

• Code kann in Teilen weiter verwendet werden

�125

Page 289: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

STATISCHES

DESIGN

Grenzen des statischen Designs überwinden

• Liquid und responsive Layouts

• Realistische Darstellung von Typografie

• Globale Anpassungen von Farben, Abständen, Größen

• Animationen und Interaktionen

�126

Page 290: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

Wissen aufbauen

• Neue Denkweisen trainieren

• Neue Browserfeatures besser verstehen

• Wissen, was möglich ist

• Änderungen auf Live-Websites direkt ausprobieren (Developer Tools)

• Prototypen selbst bauen (z. B. mit Bootstrap) oder ändern/erweitern

�127

Page 291: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

FrontendKreation

• Besseres Verständnis für das Medium und für Frontend-Developer

• Weniger Abhängigkeit von Frontend-Developern bei der Ideenfindung

• Implementierungsaufwände besser einschätzen können

• Gemeinsames (richtiges) Vokabular aufbauen

• Gemeinsam an Prototypen arbeiten

Zusammenarbeit verbessern

�128

Page 292: Developing UXD: Workshop @ IAKonferenz 2014 (German/Deutsch)

developinguxd.com

�129

@developinguxd facebook.com/developinguxd [email protected]