UIkit – Front-End für Macher

UIkit – Front-End Framework und «Glücklichmacher» für Webentwickler

Was ist UIkit (User Interface kit, dt. Benutzeroberfläche-Baukasten) und was kann man damit tun? Welchen Mehrwert bietet es uns Webentwicklern? Wieso nicht ein anderes Front-End Framework? Fragen über Fragen, die es zu beantworten gilt. Gerne kläre ich diese und führe Sie an dieses tolle Stück Software heran. Let’s jump right into it!

Front-End was?

Schon wieder Begriffe die keiner kennt. Doch keine Angst, Rettung naht. Im Umgang mit Content-Management-Systemen unterscheidet man zwischen Front- und Back-End, wobei das Front-End näher am Benutzer bzw. der Eingabe ist und das Back-End näher am System, bzw. an der Verarbeitung. Noch einfacher gesagt: das Front-End ist das, was Sie auf dem Bildschirm sehen, wenn Sie auf einer Webseite unterwegs sind.

Alles klar, das ist verstanden. Aber was ist nun ein Framework? Wikipedia beschreibt es ziemlich gut. Ein Framework ist ein Programmiergerüst, das in diesem Fall bei einem komponentenbasierten Entwicklungsansatz verwendet wird. Somit ist das Framework an sich noch kein fertiges Programm, sondern stellt den Rahmen zur Verfügung, innerhalb dessen der Programmierer eine Anwendung erstellt. Was ist UIkit nun also? Na, jetzt ist es fast wie einfache Mathematik, 1 und 1 ergibt … 2, genau! UIkit ist ein für die Darstellung von Webseiten erstellter Werkzeugkasten. Lernen wir die uns zur Verfügung stehenden Werkzeuge kennen …

Darf ich vorstellen: UIkit

Camille Peter hat bereits vorgängig in ihrem Blog-Beitrag erklärt wieso und vor allem für was wir Pimcore einsetzen. Wenn nun Daten aus diesem System mittels Webbrowser dem Benutzer angezeigt werden sollen, verwenden wir für den Anwendungsfall passende Komponenten des UIkit Frameworks. Immer, egal ob Webseite, Webapplikation oder komplette E-Commerce-Lösung! Dem war jedoch nicht immer so. Zu Anfang waren wir noch, wie fast alle anderen, auf dem Bootstrap-Zug. Bootstrap ist das populärste und das am weitesten verbreitete Front-End Framework, das es zurzeit auf dem Markt gibt. Wie bei vielen Dingen ist jedoch das Grösste nicht das Beste.

UIkit selbst bezeichnet sich als ein leichtes und modulares Front-End Framework für das Entwickeln von schnellen und mächtigen Web-Benutzeroberflächen. Damit eine Webseite möglichst performant ist und dennoch eine exzellente Benutzererfahrung ermöglicht, gilt es möglichst viel Funktionalität mit so wenig Code wie nur möglich herauszuholen. Aus unserer Sicht macht dies UIkit mit Abstand am besten. Durch die extrem gut durchdachte Modularität können viele Komponenten, die nicht gebraucht werden, deaktiviert werden. Dadurch erspart man dem Benutzer unnötigen «Overhead», also Zusatzinformationen die niemanden interessieren und somit auch nicht heruntergeladen und verarbeitet werden müssen. Die Wartezeit verkürzt sich, die Benutzererfahrung erhöht sich und alle sind glücklich – auch die Entwickler.

Powerful out of the box

Einer der Gründe wieso wir UIkit verwenden ist die grossartige Kompatibilität mit gängigen Build-Tools wie Webpack. Weitere Infos zu Webpack gibt’s im Blog-Beitrag von Christophe Rapenne. Mit sogenannten «Build Scripts» erledigt UIkit diverse nützliche Aufgaben, wie zum Beispiel das Kompilieren der verschiedenen Komponenten. Diese werden dabei in eigenen Dateien abgespeichert und sind somit modular implementierbar.

Viele der verschiedenen Komponenten – momentan 81 an der Zahl – können miteinander verknüpft werden und erweitern somit ihre eigene Funktionalität mit deren der anderen. So ermöglicht die «Switcher» Komponente den Wechsel zwischen Inhalten via Mausklick, währenddessen die «Tab» Komponente die Schaltflächen für eine einfache und verständliche Navigation bietet. Oder die «Navbar» Komponente stellt die selbstverständlich intuitive und prominente Navigationsleiste dar und die «Sticky» Komponente ermöglicht einem den Zugriff am oberen Browserrand auf eben diese, nachdem weit nach unten gescrollt wurde. Wie cool ist das denn? Die Möglichkeiten sind gross und bieten zu fast allem eine Lösung.

© www.giphy.com

Auf Nimmerwiedersehen jQuery

Stand heute wird jQuery, eine freie JavaScript-Bibliothek, die Funktionen zur DOM-Navigation und -Manipulation zur Verfügung stellt, auf jeder zweiten und auf 70% der 10’000 meistbesuchten Webseiten genutzt. Anfänglich noch beinhaltet, wurde die Abhängigkeit von jQuery mittlerweile aus der Code-Base von UIkit entfernt. Selbstverständlich kann jQuery im Verbund mit UIkit verwendet werden. Wir schreiben allerdings ausschliesslich nur noch reines JavaScript, auch bekannt als VanillaJS. ;-) Zugegeben, man verliert einige Abkürzungen, die mit jQuery möglich waren, doch auch hierfür hat UIkit bereits vorgesorgt. Man spart nicht nur an Code, nein man hat auch noch viele der gängigsten jQuery-Funktionen mit an Bord.

jQuery

$('.my-element').on('click', () => {
    $(this).addClass('active');
});

UIkit

const { $, addClass, on } = UIkit.util;
const element = $('.my-element');

on(element, 'click', () => {
    addClass(element, ‘active’);
});

Das Prinzip ist ziemlich dasselbe und ermöglicht die noch fehlende Funktionalität relativ einfach zu erweitern, auch ohne jQuery!

© www.giphy.com

Icons in eigener Sache

Ja, auch ein eigenes System für Icons ist in diesem Framework enthalten. Während andere Front-End Frameworks die Verwendung von anderen Icon Sets vorschlagen und damit nochmals mehr Code laden müssen – als wäre jQuery schon nicht genug – hat UIkit selbst ein kleines aber feines Icon-System integriert. Momentan sind 133 Icons (werden laufend erweitert) standardmässig verfügbar. Nicht gerade viel im Vergleich mit Font Awesomes 1264 frei verfügbaren Stück. Allerdings gibt es auch hierfür ein «Build Script», welches die Aufgabe hat, diesem Set weitere Icons hinzuzufügen. Somit können jederzeit projektspezifische Icons in die Webseite inkludiert werden. Das Schöne an den UIkit Icons ist deren Flexibilität. Egal ob man nun die Grösse und Farbe ändern möchte oder das Icon in einen Button umwandeln will, die Umsetzung ist kinderleicht und macht Freude!

© www.giphy.com

Geschwindigkeit macht den Unterschied

Wie bereits im Leitsatz von UIkit erwähnt, wird hoher Wert auf die Lade- sowie die Verarbeitungsgeschwindigkeit des Codes gelegt. Niemand hat heutzutage Zeit um zu warten. Die Welt ist schnelllebig und die Menschen sind ungeduldig. Dazu kommt, dass nicht jeder ein High-End Smartphone mit Hochleistungsprozessor auf sich trägt und die Netzwerkgeschwindigkeit ist auch nicht überall gleich schnell. Daher ist es matchentscheidend, ob eine Webseite performant ist und eine gute Benutzererfahrung bietet. UIkit bringt einige Werkzeuge mit sich, die uns Entwicklern dabei zur Hand gehen. Letztens wurde die «Image» Komponente in UIkit integriert, die Lazy Loading für Bilder ermöglicht. Das heisst, dass die Bilder erst auf Anfrage geladen werden und zwar dann, wenn Sie in den Anzeigebereich eines Bildschirms gelangen. Die Bilder werden demnach fortlaufend beim Herunterscrollen nachgeladen. Dieses Verhalten beschleunigt die Seitenladezeiten und verringert den Daten-Verkehr.

Weitere berechnungsintensive Komponenten wie die Slideshow oder die Parallaxe sind alle durch Hardware beschleunigt und werden nicht via JavaScript animiert. Das visuelle Erlebnis dabei ist grossartig und lässt zum Beispiel ein Bootstrap Carousel wirklich alt aussehen!

Bonus

Des Weiteren bietet UIkit noch mehr kleine Leckerbissen an, die den Alltag eines Webentwicklers erleichtern. Scope-Konflikte oder Probleme mit mehreren Versionen auf derselben Seite können leicht mit dem Scope-Modus und eigenen Prefixen umgangen werden. Zudem wird eine RTL-Version standardmässig angeboten und auch die Migration von einer älteren UIkit Version ist mittels Browser-Erweiterung einfach möglich.

Mein Fazit

Zusammenfassend ist UIkit ein komplettes Werkzeugset für kleine sowohl grosse und komplexe Webseiten, welches durch seine einfache Handhabung besticht. Die Komponenten arbeiten sehr gut zusammen und ermöglichen es, mächtige sowie schnelle Benutzeroberflächen für eine grandiose Benutzererfahrung zu erstellen.

Es werden wenig bis gar keine Erweiterungen benötigt, da alles anpassbar ist. Zusätzliche Software-Bibliotheken sind meist überflüssig, da UIkit extrem viel an Funktionalität bietet. Somit ist es durchaus möglich, eine Webseite mit wirklich wenig Code zu erstellen.

Am besten Sie sehen sich noch heute einige der «UIkit Kitchen Sink» Seiten dieses Frameworks an. Es lohnt sich!

© www.giphy.com

Aaron Gerig

Geschäftsleitung

Blog-Beiträge zum Thema

Ihr Kommentar

Ob konstruktive Kritik, Fragen aufgrund von Unklarheiten oder einfach nur ein paar lobende Worte – wir bedanken uns schon jetzt für Ihren Kommentar. Nach einer kurzen Prüfung werden wir diesen veröffentlichen.

Teilen

  • badpenguin

    10.08.2018 19.55 Uhr

    Thanks for the Uikit.utils example its not clean on the official doc.
    I'm happy i've almost compled my first uikit3 project and got 100% gtmetrix stuffs :)
    Also the library can be lazyloaded and still work as a charm :)

    • Aaron Gerig

      Aaron Gerig

      10.08.2018 20.57 Uhr

      Hi badpenguin,
      Thank you for your comment! The documentation of the JavaScript utilities will soon be included in the official UIkit documentation. Concerning the lazy loading: another good reason to use UIkit. ;)

  • bzupancic

    02.08.2018 18.28 Uhr

    Great article!
    I wanted to voice my support and love of UI Kit as well. Because Bootstrap has such a strong presence, I feel like UI Kit gets overlooked and therefore doesn't get the recognition it deserves. It is well thought out and quite simple to understand. The whole framework is easily extensible and contains almost every component I could ask for. That and the community support on Gitter is ridiculously good.
    I would consider myself a fanboy:)

    • Aaron Gerig

      Aaron Gerig

      03.08.2018 8.47 Uhr

      Hi bzupancic,
      Thank you so much for your kind words! We appreciate your comment and wish you a lot of fun with UIkit.

Zu allen Blog-Beiträgen

Fotografie – Tipps und Tricks