Atomic Design & PatternLab

Kevin Heil

Florenz Heldermann

Florenz Heldermann

@track02 hmmh

Frontend enthusiast, coffee addicted & videogame junkie.

Hände hoch!

Wieviele Grafiker , Entwickler , sonstige Professionen

sind heute hier?

Previously

not on breaking bad
CSS
Pure CSS
Foundation by Zurb
Twitter Bootstrap

Viele Frameworks vorhanden

  • Bootstrap
  • Foundation
  • Pure CSS

Solche Frameworks bringen viele Vorteile

  • Schnelles Prototyping
  • Viele Best-Practices
  • Hohe Browser Kompatiblität
  • etc.

Aber...

  • Konventionen, Benennung & Struktur anderer muss übernommen werden
  • "one-size-fits-all" aka. Massenlösungen
  • Code Bloat
  • niemals perfekt für die eigene Lösung
  • schlecht skalierbar

Zukunft

(ab jetzt)

Tiny bootstraps for every client
— Dave Rupert

siehe: Responsive Deliverables

"Pattern Libraries" sind keine neue Idee

Viele Bibliotheken bereits vorhanden

This is Responsive

aber

Mo' Patterns

Mo' Problems

  • Zeitaufwand
  • Zweites zusätzliches Projekt
  • Erstellung erfolgt meistens nach dem Launch
  • Abstrakt
  • Design / Devtool

Patternlab

https://github.com/pattern-lab/patternlab-php

Quelle: ♡ andreasdantz

Video: http://vimeo.com/67476280

Atomic Design
Periodensystem

Quelle: http://joshduck.com/periodic-table.html

Atome

Moleküle

Organismen

Template

Pages

H2 + O = H2O

Überschrift + Text + Link + Bild = Teaserelement

Heisenberg
Atomic Design

Merkmale

  • PHP basierender Static Site Generator
  • Webserver nicht zwingend
  • Mustache Template Engine
  • Live Reload
  • Multi Browser Multi Device Testing

Kommende / Wiederkehrende Features

  • Annotationen
  • Direkt Ansicht
  • Code Ansicht

(dramatische Pause)

Progressive Live Demo

heute nicht

Mustache

index.html


Mein tolles Logo

Überschrift

Hier steht Content. Mit vielen Untermodulen

© 2013 — Beispiel AG

Let's spalt the thing

patterns/atoms/03-text/01-link-elem.mustache


Link

patterns/molecules/01-navigation/10-main-navigation.mustache



patterns/organisms/01-globals/10-header.mustache


Mein tolles Logo

index.mustache

patterns/templates/10-index.mustache


{{> organisms-header }}
{{> atoms-headline-big }} {{> molecules-paragraph}} ... {{> molecules-slideshow}} {{> molecules-otherthings}}
{{> organisms-footer}}

Dynamische Inhalte

data/data.json


{
    "headline" : {
        "short" : "Lorem ipsum dolor sit (37 characters)",
        "medium" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit. (72 characters)"
    },
    "nav":{
        "linkname" : "Link",
        "linksource" : "http://www.hmmh.de"
    }
}

patterns/atoms/03-text/01-link-elem.mustache


{{ nav.linkname }}

Noch dynamischere Inhalte

patterns/01-template/01-index.mustache


...

...

patterns/01-pages/01-index.mustache


...

...

patterns/01-pages/01-index.json


{
    "real-navigation" : [
        {
            "nav":{
                "linkname" : "Startseite",
                "linksource" : "index.html"
            }
        },
        {
            "nav":{
                "linkname" : "Portfolio",
                "linksource" : "projects.html"
            }
        },
        {
            "nav":{
                "linkname" : "About",
                "linksource" : "about.html"
            }
        }
    ]
}

...

...

PatternLab ist...

  • ... eine Komponentenbibliothek
  • ... ein Starter Kit für eigene Bibliotheken
  • ... eine Design System Software
  • ... ein Responsive Design Tester
  • ... ein "Living Styleguide"
  • ... ein "Design Annotation Tool"

PatternLab ist nicht...

  • ... ein UI Framework
  • ... abhänging von Sprachen, Bibliotheken, Stil
  • ... unfassbar starr

Nicht nur PHP

Prinzip: Du willst kein PHP, mach dein eigenes

Danke für's Zuhören

Fragen?