Webseiten modular
   entwickeln
     Jens Grochtdreis
‣ Frontendentwickler
‣ seit 1999 Arbeit im und fürs Web
‣ seit 2009 selbständig
   ‣ Frontendentwicklung
   ‣ Schulung
   ‣ Beratung
‣ twitter.com/Flocke
Seite ist eine Ansammlung
       von Modulen
‣ Jede Box hat eine obere Linie.
‣ Die Inhalte differieren, sind aber prinzipiell
  Listen.
‣ Eine Box kann eine Überschrift enthalten.
Platzierung sollte egal sein
Module entwickeln,
nicht ganze Seiten!
Layout: Seitengrundgerüst
Module tragen
Designinformationen
Umfangreiche Modulliste
http://structurae.de
Jedes dieser Module
ist eine eigene Datei
Module richtig entwickeln
Das Modul ist sein eigenes
      Universum!
Trennung zwischen
Layout und Design
Semantisch = HTML
   Design = CSS
http://jsfiddle.net/Flocke/psAwV/
Schnipsel im CSS dank
   Präprozessoren
CSS ist manchmal
nervtötend unflexibel.
Einfacher wird es, wenn man
    CSS „programmiert“!
zentrales Stylesheet
importiert Module und
 generiert ein CSS-File
Variablen
Module in Sass

‣ Ein Unterstrich vor der
  Dateiendung verhindert
  das rendern als einzelne
  Datei. Es entsteht ein
  „partial“. So kann man
  diese in eine zentrale
  Datei importieren und
  nachher gesammelt
  rendern lassen.
Richtiger Umgang
   mit Klassen
https://github.com/stubbornella/oocss/wiki
Styling über Klassen
Das media-Element




http://jsbin.com/ipupew/2/
http://www.stubbornella.org/content/2010/06/25/the-media-object-saves-hundreds-of-lines-of-code/
https://smacss.com/
Die einzelnen Bestandteile
 1. Base
 2. Layout
 3. Module
 4. State (Zustand)
 5. Theme
BEM




http://bem.info/method/
Block, Element, Modifier
Namenskonventionen
Klassen sind manchmal
     sinnvoller, als
  Kontextselektoren
Semantische Klassen?
Nein! Pflegbare!
CSS = Optik
Semantik = HTML
Farben über Klassen
     zuweisen
CSS
SCSS
Variablen in Sass
‣ IDs wenn überhaupt dann nur für
  grundlegende Elemente des Layouts nutzen.
 ‣ #header, #main, #sidebar, #footer
‣ Und natürlich für Formularelemente!
‣ Optik von Modulen über separate Klassen
  modifizieren.
‣ Weitere Trennung sinnvoll:
 ‣ Klassen nur für Layout
 ‣ Klassen nur für Design
  ‣ Grundaufbau
  ‣ Theme
  ‣ Zustand
 ‣ Klassen nur für Zugriff mittels JavaScript
Realistische Dummy-Inhalte
http://www.mangrove.com/blog/1079/death-to-lorem-ipsum
Navigation
http://www.blindtextgenerator.de/
http://bueltge.de/html-ipsum/
Vorsicht bei horizontaler
                    Navigation




http://grochtdreis.de/weblog/2009/10/18/schoener-navigationstitel/
Dummybilder




http://dummyimage.com/                 http://lorempixel.com/
Dummybilder




http://placekitten.com/
Jens Grochtdreis

http://grochtdreis.de
http://twitter.com/Flocke
https://github.com/jensgro
http://webkrauts.de
http://slideshare.net/Flocke669
https://speakerdeck.com/flocke

Modularisierung von Webseiten