Bootstrap

Bootstrap ist eine freie Sammlung von Hilfsmitteln für die Gestaltung von Websites und Webanwendungen. Es enthält auf HTML und CSS basierende Gestaltungsvorlagen für Typografie, Formulare, Buttons, Tabellen, Grid-System, Navigations- und andere Oberflächengestaltungselemente sowie zusätzliche, optionale JavaScript-Erweiterungen. Es ist das populärste Projekt beim Open-Source-Hostingdienst Github und wird unter anderem von der NASA und MSNBC eingesetzt.

Entstehung

Bootstrap ist ursprünglich aus dem Vorhaben entstanden, die internen Analyse- und Verwaltungswerkzeuge von Twitter weiterzuentwickeln. Zu diesem Zeitpunkt wurden in dem Unternehmen unterschiedlichste Bibliotheken für die Oberflächenentwicklung eingesetzt, was zu Inkonsistenz und hohem Wartungsaufwand führte. Um diesen Herausforderungen zu begegnen, wurde der Fokus des Projekts erweitert:

„[…] eine sehr kleine Gruppe von Entwicklern und ich haben sich zusammengesetzt um ein neues internes Werkzeug zu gestalten und sahen dabei die Möglichkeit, mehr daraus zu machen. Während des Prozesses stellten wir fest, dass wir dabei waren, etwas zu erschaffen, was wesentlich weitreicherender war, als nur ein weiteres internes Werkzeug. Monate später hielten wir eine frühe Version von Bootstrap in den Händen welche allgemeine Entwurfsmuster und Erkenntnisse innerhalb der Firma dokumentierte.“

– Mark Otto: In seinem persönlichen Blog zur Entwicklung von Bootstrap.

Dabei spielt laut Aussage von Otto die Idee, Designer und Entwickler zusammenzubringen, eine elementare Rolle bei der Entwicklung: „Vom Skizzieren von Ideen bis hin zur Programmierung grober Prototypen war es die interdisziplinäre Zusammenarbeit, die Bootstrap für die interne Nutzung bei Twitter so erfolgreich gemacht hat“.

Den ersten Einsatz unter realen Bedingungen erfuhr Bootstrap auf Twitters erster Hackweek. Otto zeigte einigen Kollegen, wie sie die Entwicklung ihrer Projekte mit Hilfe des Toolkits beschleunigen können. Bei der Präsentation der Ergebnisse zeigte sich, dass dutzende Teams auf das Framework zurückgegriffen hatten. Auf diese Weise trug Bootstrap nicht nur dazu bei, die Entwicklungszeit zu verkürzen, sondern auch ohne Hilfestellung eines dediziierten Designers ein einheitliches Look-and-Feel für die in der Hackweek entstandenen Anwendungen zu erzeugen.

Im August 2011 entschloss sich Twitter, die Ergebnisse der Öffentlichkeit als Open-Source-Projekt zur Verfügung zu stellen. Seitdem hat sich Bootstrap in kürzester Zeit mit fast 12.000 Forks und über 45.000 Beobachtern zum populärsten GitHub-Projekt entwickelt.

Eigenschaften

Bootstrap wurde mit Unterstützung für das relativ junge HTML5 und CSS 3 entwickelt, weist aber eine Kompatibilität für alle wichtigen Browser auf, inklusive des als veraltet geltenden Internet Explorer 7. Bei der Gewährleistung dieser Kompatibilität kommt das Konzept der progressiven Verbesserung zum Einsatz. Das bedeutet, dass die grundlegenden Informationen der Webseite oder -anwendung für alle Geräte und Browser zugänglich sind, erweiterte Funktionalitäten jedoch nur den Geräten und Browsern zur Verfügung stehen, die diese unterstützen. Deutlich wird dies beispielsweise bei den in CSS 3 eingeführten Eigenschaften für abgerundete Ecken, Farbverläufe und Schatten. Diese werden von Bootstrap trotz der mangelnden Unterstützung durch ältere Webbrowser intensiv eingesetzt. Dabei gewährleistet der semantische Einsatz von HTML und die Implementierung von alternativen Stildefinitionen in den Stylesheets, dass die Informationen und Funktionen der Webseite trotz der fehlenden Funktionalitäten bei älteren Browsern zur Verfügung stehen. Gleiches gilt für die mitgelieferten JavaScript-Komponenten. Diese erweitern den Funktionsumfang des Toolkits, sind jedoch keine Voraussetzung für dessen Einsatz.

Seit Version 2.0 unterstützt Bootstrap zudem die Gestaltung im Sinne des Responsive Webdesigns. Das bedeutet, der grafische Aufbau von Webseiten erfolgt dynamisch und unter Berücksichtigung der Eigenschaften, die das verwendete Gerät (PC, Tablet, Mobiltelefon) mit sich bringt. So passen sich das Grid-Layout und die Oberflächenelemente automatisch der jeweiligen Bildschirmauflösung bzw. Fenstergröße an.

Bootstrap wird als Open-Source angeboten und über GitHub bereitgestellt. Entwickler sind aufgerufen, sich an dem Projekt zu beteiligen und können auf der Plattform eigene Beiträge leisten.

Funktionsweise und Aufbau

Bootstrap ist modular aufgebaut und besteht im Kern aus einer Reihe von LESS-Stylesheets, welche die einzelnen Komponenten des Toolkits implementieren. Ein Stylesheet namens bootstrap.less inkludiert die Komponenten-Stylesheets. Durch diesen Aufbau kann der Entwickler durch Anpassung der bootstrap-Datei selbst entscheiden, welche Komponenten er in seinem Projekt verwenden möchte.

Anpassungen in eingeschränktem Umfang sind über ein zentrales Konfigurationsstylesheet möglich. In diesem werden unter anderem Angaben zu Schriftart und -größe, Farbe oder den Aufbau des Grid-Layouts gesetzt. Tiefgreifendere Änderungen sind möglich, indem die LESS-Deklarationen von Bootstrap überschrieben werden.

Die Verwendung von LESS als Stylesheetsprache ermöglicht den Einsatz von Variablen, Funktionen und Operatoren, verschachtelten Selektoren sowie so genannten Mixins – die Verwendung von Klassen innerhalb anderer Klassen mit der Option, diese zu parametrisieren. Dadurch kann Codeduplikation vermieden und die Wartbarkeit der Stylesheets erhöht werden. Ein Nachteil ist die fehlende Unterstützung durch Webbrowser. Deshalb ist es erforderlich, dass die Stylesheets manuell, durch den Server oder client-seitig mit Hilfe von Javascript in reguläres CSS kompiliert werden müssen.

Seit der Version 2.0 ist die Konfiguration von Bootstrap auch über eine spezielle „Customize“-Option in der Dokumentation möglich. Dabei wählt der Entwickler über ein Formular die gewünschten Komponenten und passt ggf. die Werte verschiedener Optionen seinen Bedürfnissen an. Das anschließend erzeugte Paket enthält bereits das fertig kompilierte CSS-Stylesheet.

Grundgerüst: Grid-System und Responsive Webdesign

Bootstrap wird standardmäßig mit einem 940 Pixel breiten, zwölfspaltigen Grid-Layout ausgeliefert. Alternativ kann der Entwickler auch ein Layout mit variabler Breite verwenden. Für beide Fälle bietet das Toolkit vier Variationen im Sinne des Responsive Webdesigns an, welche verschiedene Auflösungen und Gerätetypen bedienen: Mobiltelefone, hoch- und querformatige Tablets, sowie PCs mit geringer und hoher (Widescreen-)Auflösung. Dabei passt sich die Breite der Spalten automatisch der zur Verfügung stehenden Fensterbreite an.

Über das Konfigurationsstylesheet hat der Entwickler die Möglichkeit die Anzahl und Breite der Spalten, den Abstand zwischen den Spalten sowie die Gesamtbreite des Layouts seinen Vorstellungen anzupassen.

Grundlegendes CSS-Stylesheet

Bootstrap enthält eine Reihe von Stylesheets, welche grundlegende Stildefinitionen für alle wichtigen HTML-Komponenten enthalten. Diese gewährleisten ein browser- und systemübergreifend einheitliches, modernes Erscheinungsbild für die Textformatierung, Tabellen und Formularelemente. Der Entwickler profitiert dabei von den Erfahrungen, die bei der Entwicklung und Gestaltung von Twitter gemacht wurden und kann auf praxiserprobte Gestaltungsentscheidungen und bewährte Entwurfsmuster der Frontendgestaltung zurückgreifen.

Wiederverwendbare Komponenten

Ergänzend zu den regulären HTML-Elementen enthält Bootstrap weitere, häufig verwendete Oberflächenelemente. Hierzu gehören unter anderem Buttons mit erweiterter Funktionalität (bspw. Gruppierung von Buttons oder Buttons mit Dropdown-Möglichkeit), Navigationselemente (Navigationslisten und -leisten, horizontale und vertikale Reiter, Breadcrumb-Navigation (Brotkrümelnavigation), Paginierung, usw.), Labels, erweiterte typografische Möglichkeiten, Miniaturansichten, Formatierungen für Hinweismeldungen und Fortschrittsbalken.

JavaScript-Plugins

Die JavaScript-Komponenten von Bootstrap basieren auf dem JavaScript-Framework jQuery. Die im Toolkit enthaltenen Plugins sind dementsprechend jQuery-Plugins. Sie bieten zusätzliche User-Interface-Elemente, wie beispielsweise Dialogfenster, Tooltips und Karussels. Außerdem erweitern sie die Funktionalität einiger vorhandener Oberflächenelemente, darunter zum Beispiel eine Autovervollständigungs-Funktion für Eingabefelder.

Lizenz-FAQs

Bootstrap wird unter der MIT-Lizenz freigegeben und ist Copyright 2014 Twitter. Kurz zusammengefasst, lässt sich dies mit den folgenden Bedingungen beschreiben.

Sie müssen:

  • Die Lizenz und Copyright-Informationen in Ihren Werken einfügen

Sie dürfen:

  • Bootstrap frei und gratis herunterladen und verwenden, und zwar ganz oder in Teilen, für persönliche, private, interne Unternehmens- und kommerzielle Zwecke
  • Bootstrap in Paketen und Distributionen verwenden, die Sie erstellen
  • Den Quelltext verändern
  • Eine Unterlizenz zur Bearbeitung und Verbreitung von Bootstrap an Dritte vergeben, die in dieser Lizenz nicht erwähnt werden

Sie dürfen auf keinen Fall:

  • Die Autoren oder Lizenzgeber für Schäden haften lassen bzw. verantwortlich machen, da Bootstrap ohne Gewähr zur Verfügung gestellt wird
  • Die Ersteller und Copyright-Eigentümer von Bootstrap haftbar machen
  • Einen Teil von Bootstrap ohne vernünftige Attribution weiterverbreiten
  • Markenzeichen im Besitz von Twitter in einer Weise nutzen, die aussagen oder implizieren könnte, dass Twitter Ihre Distribution befürwortet
  • Markenzeichen im Besitz von Twitter in einer Weise nutzen, die aussagen oder implizieren könnte, dass Sie diese Twitter-Software erstellt haben

Die eigentliche vollständige Lizenz von Bootstrap finden Sie im Repository des Projekts auf GitHub für mehr Informationen.