Slide 1

Slide 1 text

Write once, use anywhere Framework agnostic Design Systems auf Basis von Web Components Sascha Lehmann @derLehmann_S Consultant

Slide 2

Slide 2 text

Consultant @ Thinktecture AG Sascha Lehmann @derLehmann_S [email protected] https://www.thinktecture.com/thinktects/sascha-lehmann/  ✉  Write once, use anywhere Framework agnostic Design Systems auf Basis von Web Components

Slide 3

Slide 3 text

Wo ist das Problem? Write once, use anywhere Framework agnostic Design Systems auf Basis von Web Components

Slide 4

Slide 4 text

DEV Team Produkt / POC Write once, use anywhere Framework agnostic Design Systems auf Basis von Web Components

Slide 5

Slide 5 text

Write once, use anywhere Framework agnostic Design Systems auf Basis von Web Components

Slide 6

Slide 6 text

DEV Team Produkt Write once, use anywhere Framework agnostic Design Systems auf Basis von Web Components UX Team

Slide 7

Slide 7 text

• Gilt eine frirmenweite Regelung mit welchem Framework gearbeitet wird, oder kann jedes Team nach Entwicklerzusammensetung/- erfahrung frei entscheiden? • Gibt es externe Dienstleister oder Argenturen die mit im Boot sind? • Gibt es CMS Systeme die auch versorgt werden müssen? • Etc. Welche Fragen gilt es zu stellen? Write once, use anywhere Framework agnostic Design Systems auf Basis von Web Components

Slide 8

Slide 8 text

Web Components Write once, use anywhere Framework agnostic Design Systems auf Basis von Web Components P

Slide 9

Slide 9 text

… aber basierend auf Web Standards Kein eigener Web-Standard… Write once, use anywhere Framework agnostic Design Systems auf Basis von Web Components Custom Elements ES Modules Shadow DOM HTML Templates

Slide 10

Slide 10 text

So werden sie definiert Custom Elements Write once, use anywhere Framework agnostic Design Systems auf Basis von Web Components

Slide 11

Slide 11 text

document node node node Shadow Host Shadow DOM Shadow Root node node node Shadow DOM Write once, use anywhere Framework agnostic Design Systems auf Basis von Web Components

Slide 12

Slide 12 text

Vanilla oder Library? Write once, use anywhere Framework agnostic Design Systems auf Basis von Web Components

Slide 13

Slide 13 text

Write once, use anywhere Framework agnostic Design Systems auf Basis von Web Components Frameworks Libraries

Slide 14

Slide 14 text

Projekte strukturieren Write once, use anywhere Framework agnostic Design Systems auf Basis von Web Components

Slide 15

Slide 15 text

Beispielanwendung animieren

Slide 16

Slide 16 text

Komponenten schneiden Architektur Write once, use anywhere Framework agnostic Design Systems auf Basis von Web Components

Slide 17

Slide 17 text

Input Element Ein naiver erster Wurf … Write once, use anywhere Framework agnostic Design Systems auf Basis von Web Components Verwendung

Slide 18

Slide 18 text

Nachteile Ein naiver erster Wurf … Write once, use anywhere Framework agnostic Design Systems auf Basis von Web Components • Wir ”verstecken” bzw. kapseln alles in der Komponente • Dadurch Schlechte Erweiterbarkeit • Konfiguration muss über viele Inputs geregelt werden • Durch das Shadow-DOM kommt es zu Erschwernissen hinsichtlich der Barrierefreiheit • Frameworks erkennen die Komponente nicht automatisch als Formular-Element • Wir verlieren das Browser-Defaultverhalten

Slide 19

Slide 19 text

“Never reimplement what the Browser already implements for you!” Write once, use anywhere Framework agnostic Design Systems auf Basis von Web Components

Slide 20

Slide 20 text

Nutze die Power von Slotting / Contentprojection Ein zweiter Anlauf … Write once, use anywhere Framework agnostic Design Systems auf Basis von Web Components Verwendung

Slide 21

Slide 21 text

Vorteile Ein zweiter Anlauf … • Die ”nativen” HTML Elemente bleiben im Light-DOM ü Default Verhalten bleibt erhalten ü Barrerefreiheit kann gewärleistet werden ü Keine Wrapper für Frameworks nötig • Höhere Flexibilität der Komponente ü Keine ”Input-Hell” ü Einfachere Erweiterbarkeit ü Komponente gibt die Struktur vor Write once, use anywhere Framework agnostic Design Systems auf Basis von Web Components

Slide 22

Slide 22 text

Beispielanwendung animieren

Slide 23

Slide 23 text

Alles auf einen Blick Do’s & Don’ts Write once, use anywhere Framework agnostic Design Systems auf Basis von Web Components

Slide 24

Slide 24 text

• Zu Beginn ausführlich das Projektumfeld prüfen • Für Library oder Framework entscheiden • Mit der grundlegenden Technologie vertraut machen • Saubere Projektstruktur aufsetzen • Komponenten klein und leichtgewichtig halten • Slotting / Contentprojection nutzen um Flexibilität zu erhöhen • Reger Austausch mit UI/UX Team • Nichts reimplementieren was der Browser schon für uns tut • Alles in der Komponente wegkapseln • Mehrere Zuständigkeiten in einer Komponente vermischen • Vom Projektdruck treiben lassen Do’s Don’ts Write once, use anywhere Framework agnostic Design Systems auf Basis von Web Components

Slide 25

Slide 25 text

Sascha Lehmann [email protected] Dankeschön! @derLehmann_S [email protected] https://www.thinktecture.com/thinktects/sascha-lehmann/  ✉ 