0t1 steckt noch in den Kinderschuhen.

Tailwind UI

Ein kleiner Einblick in das CSS-Framework Tailwind-CSS inklusive Tutorial zur Installation und Anwendung.

Wer sich mit den Basics der Webentwicklung auseinandergesetzt hat, also mit HTML, CSS, JavaScript, stößt immer wieder auf ein Problem. Sobald es an das manuelle Schreiben von Code geht, entstehen schnell Dateien mit mehreren hundert Zeilen an Code. Die hierarchische Struktur von HTML-Dateien bietet eine gewisse Orientierung an. Bei CSS und JavaScript sieht das schon anders aus. Ohne semantisch korrekte und nachvollziehbare Kommentare kennt sich schnell selbst der Entwickler in seinem eigenen Code nicht mehr aus. Welche Klasse aus welcher Datei überschreibt gerade welche andere Klasse aus welcher anderen Datei. So kann es bei Änderungen oder Debugging schnell zur stundenlangen Codesuche kommen.

Dabei basieren Interfaces häufig auf den gleichen Mustern. Eine Navigation, eine Header section, Kontaktformulare oder auch einfache Toggle-Buttons. Sie finden sich auf nahezu jeder Website wieder, erfüllen die gleichen Funktionen und basieren zudem auf ähnlichem Code.

Wenn also diese Schemas wiederholt auftauchen, warum sollte man sie dann immer wieder mit hunderten Zeilen Code schreiben, um am Ende bei derselben Navigationsleiste zu landen wie beim letzten Projekt?

Mit diesem Problem beschäftigt sich dieses Tutorial. Genauer gesagt mit der Lösung dieses Problems: Tailwind UI.

Tailwind UI – Was ist das?

Tailwind UI ist ein UI Toolkit und dient als Erweiterung zum Open-Source CSS-Framework Tailwind CSS. Das Toolkit umfasst eine Sammlung vordefinierter UI-Komponenten, die es möglich machen in kürzester Zeit funktionale und optisch ansprechende Webanwendungen zu erschaffen. Dazu werden die Komponenten aus der Bibliothek entnommen und im eigenen Code wiederverwendet. Dieses komponentenbasierte Arbeiten sorgt für Effizienz, Konsistenz und resultiert in nachvollziehbarem und einfach zu modifizierendem Code.

Tailwind CSS

Die beschriebenen Komponenten basieren auf dem CSS-Framework Tailwind-CSS. Das Framework verfolgt den "Utility-First" Ansatz. Das bedeutet, dass das Styling direkt im HTML durch vordefinierte Utility-Klassen im "class"-Attribut festgelegt wird. Was zunächst komplex erscheinen mag, ist es eigentlich recht einfach!

Hier ein Beispiel:

<div class="textbox">
  This is a blue box with white text and padding.
</div>
.textbox {
    background-color; rgb(59, 130, 246)
    color: white;
    padding: 1rem;
  }
Es wird eine Hintergrundfarbe, Textfarbe und ein Innenabstand definiert. Dafür wird in einer HTML-Datei der Inhalt strukturiert & in einer CSS-Datei das Styling vorgenommen.

Einfacher geht es hiermit:

<div class="bg-blue-500 text-white p-4">
  This is a blue box with white text and padding.
</div>

Beide Codes erzeugen das Gleiche. Allerdings muss ohne Tailwind-CSS eine separate CSS-Datei angelegt werden und der zu stylende Codeabschnitt mit einer Klasse eindeutig benannt werden.

Mit Tailwind CSS kann der Entwickler rasch und mühelos ein modulares sowie konsistentes Styling implementieren.
Chat-GPT

Pros and Cons von Tailwind-CSS

Vorteile

  • schnelle Entwicklung (kein Wechseln zwischen HTML und CSS)

  • Modularität

    • Komponenten leichter wiederverwendbar (React.js, Vue.js)

  • Konsistenz im Design

  • Lesbarkeit

Nachteile

  • Datenmenge

  • beschränkte Designfreiheit

  • Überverwendung von Klassen

  • Abhängigkeit von JS


Installation

Zunächst muss Node.js auf dem PC / Mac installiert werden. Node.js ermöglicht das Serverseitige ausführen von JavaScript Code. Außerdem enthält Node.js npm (Node Package Manager). NPM ermöglicht es Entwicklern, externe Bibliotheken und Module einfach zu integrieren.

Im Anschluss wird ein neues Projektverzeichnis (Ordner) erstellt und darin eine index.html Datei angelegt, die einen Basis HTML Aufbau enthält.

Nun kommen wir zur Installation von Tailwind CSS. Dazu müssen wir einige Befehle im Terminal ausführen, dazu benötigt es allerdings keine weiteren Kenntnisse. Die Befehle können einfach kopiert, eingefügt und ausgeführt werden.

Wir öffnen unseren Projekt-Ordner im Code-Editor (in diesem Beispiel VS Code). In der Titelleiste wählen wir den Punkt Terminal > neues Terminal. Der Pfad im Terminal sollte jetzt die oberste Hierarchie unseres Projekt-Ordners sein.

npm init

In das Terminal einfügen, ausführen und die abgefragten Informationen konfigurieren oder einfach mit Enter bestätigen. Der Prozess ist abgeschlossen, wenn sich im Verzeichnis die Datei package.json befindet.

npm install -D tailwindcss

In das Terminal einfügen und ausführen. Es sollte sich nun der Ordner node_modules im Verzeichnis befinden

npx tailwindcss init

In das Terminal einfügen und ausführen. Es sollte sich nun die Datei tailwind.config.js im Verzeichnis befinden. In der Datei tailwind.config.js geben wir im Array content die Referenzdatei an, in welcher der Tailwind generierte CSS-Code verwendet werden soll. In unserem Fall die index.html.

/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ["./index.html"],
  theme: {
    extend: {},
  },
  plugins: [],
}

Im Stammverzeichnis einen neuen Ordner src erstellen, die Datei input.css darin erstellen und folgenden Code einfügen.

@tailwind base;
@tailwind components;
@tailwind utilities;
npx tailwindcss -i ./src/input.css -o ./dist/output.css --watch

Im Terminal ausführen. Dabei die im Befehl angegebenen Pfade überprüfen. Sollten im Projekte Unterschiede auftreten, den Pfad dementsprechend anpassen.

<link href="/dist/output.css" rel="stylesheet">

In der index.html im <head> einfügen. Der Projektordner sollte nun wie folgt aussehen:

Tailwind ist jetzt vollständig aufgesetzt und kann verwendet werden.

Anwendungsbeispiel Navigationsleiste

<nav class="container lg mx-auto  bg-green-500 rounded-lg flex justify-between p-6 mt-4">
	<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-candy"><path d="m9.5 7.5-2 2a4.95 4.95 0 1 0 7 7l2-2a4.95 4.95 0 1 0-7-7Z"/><path d="M14 6.5v10"/><path d="M10 7.5v10"/><path d="m16 7 1-5 1.37.68A3 3 0 0 0 19.7 3H21v1.3c0 .46.1.92.32 1.33L22 7l-5 1"/><path d="m8 17-1 5-1.37-.68A3 3 0 0 0 4.3 21H3v-1.3a3 3 0 0 0-.32-1.33L2 17l5-1"/></svg>
       <ul class="flex justify-end">
           <li class="p-2 hover:text-white duration-200 cursor-pointer">Punkt 1</li>
           <li class="p-2 hover:text-white duration-200 cursor-pointer">Punkt 2</li>
           <li class="p-2 hover:text-white duration-200 cursor-pointer">Punkt 3</li>
       </ul>
</nav>

Die Funktionsweise wird verständlicher am Beispiel einer Nav-Bar. Dem obersten Container wird die Klasse container inklusive vordefinierter Größe lg zugeschrieben. Dadurch erhält er eine maximale Größe von 1024px. Außerdem wird eine Hintergrundfarbe bg-green-500 und abgerundete Ecken rounded-lg definiert. Über flex wird der Container via Flexbox gelayoutet. Die beiden sich darin befindenden Objekte werden mit justify-between an die beiden äußeren Ränder des Containers gebracht. Außerdem erhält der Navigations-Container einen Innenabstand von p-6 also 1.5 rem Padding. mt-4 verschafft der Navigation einen Margin Top von 1rem.

Als Logo wird ein SVG von lucide.dev verwendet.

Die <ul> wir mit der Klasse flex in ein Flexbox-Layout umgewandelt.

Die List-Items erhalten ein Padding Left von 1rem mit pl-4, einen cursor-pointer und einen hover-Zustand bei dem der Text weiß wird. Die Übergangsdauer der beiden Zustände wird mit duration-200 auf 200ms festgelegt.

Die verwendeten Klassen stammen aus der Tailwind CSS Dokumentation.

Tailwind UI – Templates

Wie bereits erwähnt ist Tailwind UI eine Erweiterung zu Tailwind CSS. Unter https://tailwindui.com/components gibt es eine große Auswahl vordefinierter Tailwind Komponenten, die per Copy-and-paste im eigenen Projekt wiederverwendet werden können. Einige werden kostenlos zur Verfügung gestellt, für weitere muss eine einmalige Gebühr bezahlt werden.

Der große Vorteil ist die einfache Anpassbarkeit der vorgegebenen Layouts mit Tailwind-CSS. So können komplexe und responsive Layouts einfach übernommen und ans eigene Design angepasst werden.

Beispiel-Komponenten:

    Schlagworte


    © 0t1

    Cookies

    0t1 mag keine Kekse (und kein Tracking). Wir verwenden lediglich notwendige Cookies für essentielle Funktionen.

    Wir verwenden Schriftarten von Adobe Fonts. Dafür stellt dein Browser eine Verbindung zu den Servern von Adobe in den USA her. Wenn du unsere Seite nutzen möchtest, musst du dich damit einverstanden erklären.

    Weitere Informationen in unserer Datenschutzerklärung.