Arbitrary Values und ihre Kosten
Verwenden Sie die Klammerschreibweise wie w-[347px] für einmalige Werte und verstehen Sie den Zielkonflikt zwischen Flexibilität und einem möglicherweise aufgeblähten Stylesheet.
Arbitrary Values und ihre Kosten ist eine kostenlose Tailwind CSS Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Tailwind CSS Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Tailwind CSS Academy-Kurs umfasst insgesamt 4 Lektionen.
Was sind beliebige Werte
Mit der Syntax für beliebige Werte von Tailwind können Sie jeden CSS-Wert direkt in einem Klassennamen verwenden, indem Sie die eckige-Klammer-Notation nutzen. Statt auf Tailwinds vordefinierte Skala beschränkt zu sein, können Sie w-[347px], text-[#1a2b3c] oder grid-cols-[1fr_2fr_1fr] schreiben.
Diese vom JIT-Engine aktivierte Funktion gehört zu Tailwinds leistungsfähigsten Möglichkeiten. Sie überbrückt die Lücke zwischen Utility-Klassen und den seltenen Fällen, in denen tatsächlich ein präziser Wert außerhalb der Skala erforderlich ist.
<div class="w-[347px] h-[calc(100vh-64px)] bg-[#1a1a2e] text-[#e2e8f0]">
Arbitrary values for precise control
</div>
<div class="grid grid-cols-[1fr_2fr_1fr] gap-[22px]">
Custom grid layout with arbitrary columns
</div>Syntaxreferenz für beliebige Werte
Die Klammer-Syntax funktioniert mit jedem Utility-Präfix von Tailwind. Der Wert innerhalb der Klammern wird direkt als CSS-Wert übergeben. Leerzeichen innerhalb des Werts werden durch Unterstriche dargestellt (Tailwind ersetzt sie vor dem Parsen).
Bei Utilities, die mehrere CSS-Eigenschaften erzeugen, erhält nur die jeweils relevante Eigenschaft den beliebigen Wert. Beispielsweise setzt p-[12px] alle vier Padding-Werte auf 12px – genau wie p-4, jedoch mit einem benutzerdefinierten Wert.
<!-- Width and height -->
<div class="w-[240px] h-[180px]"></div>
<!-- Custom color -->
<div class="bg-[#f0a500] text-[#2d3748]"></div>
<!-- Calc values -->
<div class="top-[calc(50%_-_24px)]"></div>
<!-- CSS variables -->
<div class="bg-[var(--primary-color)]"></div>
<!-- Custom grid -->
<div class="grid-cols-[200px_1fr_minmax(200px,_1fr)]"></div>
<!-- Spacing with custom value -->
<div class="mt-[7px] px-[18px]"></div>Wann Sie beliebige Werte verwenden sollten
Beliebige Werte sind in bestimmten Situationen sinnvoll:
- Präzise Positionierung: Ein Tooltip, der exakt an einem Referenzpunkt ausgerichtet sein muss (
top-[3px]) - Externe Vorgaben: Die Höhe oder den Eckenradius einer Drittanbieterkomponente übernehmen
- Einzigartige Markenfarben: Eine Markenfarbe, die nicht gut in die Tailwind-Palette passt (
bg-[#e63946]) - Dynamische CSS-Ausdrücke: Werte mit
calc,min,maxoderclamp
Für Werte, die in das Designsystem gehören, sind sie NICHT geeignet – verwenden Sie dafür eine Theme-Erweiterung.
<!-- Appropriate: precise positioning calculation -->
<div class="absolute top-[calc(50%_-_24px)] left-[calc(50%_-_24px)]"
aria-label="Loading">
Loading spinner centered
</div>
<!-- Appropriate: brand color not in default palette -->
<header class="bg-[#e63946] text-white">
Brand header
</header>
<!-- Inappropriate: use theme extension instead -->
<!-- <div class="w-[96px]"> Use w-24 (96px) from default scale instead! -->
<div class="w-24">Use the scale utility</div>Beliebige Werte oder Theme-Erweiterung
Wenn ein Wert an mehreren Stellen in Ihrem Projekt verwendet wird, gehört er in die Theme-Erweiterung und nicht als beliebiger Wert in den Code. Wenn Sie ihn zum Theme hinzufügen, erhält er einen semantischen Namen, bleibt konsistent und kann an einer einzigen Stelle geändert werden.
Eine gute Faustregel: Wenn Sie einen beliebigen Wert in verschiedenen Dateien zweimal verwenden, übernehmen Sie ihn in das Theme. Erscheint er nur einmal in einem sehr spezifischen Kontext, ist der beliebige Wert in Ordnung.
// Instead of repeating w-[347px] in 5 components:
// ❌ Scattered arbitrary values
// <div class="w-[347px]">...</div> (component A)
// <div class="w-[347px]">...</div> (component B)
// <div class="w-[347px]">...</div> (component C)
// ✅ Theme extension — one source of truth
// tailwind.config.js:
module.exports = {
theme: {
extend: {
width: {
'sidebar': '347px',
},
},
},
};
// Usage:
// <div class="w-sidebar">...</div> -- consistent and namedDie Kosten jedes beliebigen Werts
Jeder eindeutige beliebige Wert erzeugt eine eindeutige CSS-Regel. Fünf Verwendungen von w-[347px] in derselben Datei erzeugen dank der Deduplizierung durch JIT nur eine CSS-Regel. Verwenden verschiedene Komponenten jedoch w-[347px], w-[348px] und w-[349px], erzeugt jeder Wert eine eigene Regel – insgesamt drei Regeln für Werte, die sich nur um ein Pixel unterscheiden.
Das ist der Preis beliebiger Werte: Sie können die CSS-Wiederverwendung zunichtemachen, die Utility-Klassen so effizient macht. Zehn geringfügig unterschiedliche beliebige Breiten erzeugen zehn separate Regeln statt einer gemeinsam verwendeten Utility.
/* Each generates a separate CSS rule */
.w-\[347px\] { width: 347px; }
.w-\[348px\] { width: 348px; }
.w-\[349px\] { width: 349px; }
.top-\[calc\(50\%-24px\)\] { top: calc(50% - 24px); }
.top-\[calc\(50\%-32px\)\] { top: calc(50% - 32px); }
/* Compare: the scale utilities share values across all usages */
/* .w-24 is generated once and reused wherever w-24 appears */Syntax für beliebige CSS-Eigenschaften
Neben Utility-Präfixen unterstützt Tailwinds JIT auch beliebige CSS-Eigenschaften mit der Syntax [property:value] – einer eckigen Klammer, die einen CSS-Eigenschaftsnamen und einen durch einen Doppelpunkt getrennten Wert enthält.
Dies ist der Ausweg für CSS-Eigenschaften, für die Tailwind keine Utility besitzt, etwa [mask-image:linear-gradient(...)], [scroll-snap-type:x_mandatory] oder Eigenschaften mit Vendor-Präfix. Verwenden Sie dies sparsam – wenn Sie viele beliebige Eigenschaften benötigen, sollten Sie stattdessen ein Tailwind-Plugin hinzufügen.
<!-- Arbitrary CSS property -->
<div class="[mask-image:linear-gradient(to_bottom,black,transparent)]
[scroll-snap-type:y_mandatory]
[-webkit-line-clamp:3]">
Content with non-utility CSS properties
</div>
<!-- Also works with variants -->
<div class="hover:[text-decoration:underline_wavy_red]
focus:[outline:2px_solid_blue]">
Custom hover/focus styles via arbitrary property
</div>Beliebige Werte mit Varianten
Beliebige Werte lassen sich vollständig mit allen Variantenpräfixen kombinieren. Sie können responsive Varianten sowie hover-, focus-, dark- und andere Varianten mit jedem beliebigen Wert verbinden – genauso wie mit standardmäßigen Utilities.
Dadurch steht Ihnen das gesamte Variantensystem von Tailwind auch für benutzerdefinierte Werte zur Verfügung. Eine benutzerdefinierte Hover-Farbe außerhalb der Skala, eine responsive benutzerdefinierte Breite oder ein beliebiger Farbwert für den Dark Mode funktionieren problemlos.
<!-- Responsive arbitrary width -->
<div class="w-[240px] md:w-[320px] lg:w-[400px]">
Width changes at each breakpoint
</div>
<!-- Dark mode arbitrary color -->
<div class="bg-[#f8f9fa] dark:bg-[#1a1a2e] text-[#212529] dark:text-[#f8f9fa]">
Light/dark mode with arbitrary hex colors
</div>
<!-- Hover with arbitrary value -->
<button class="bg-[#e63946] hover:bg-[#c1121f] text-white px-4 py-2 rounded-lg">
Custom brand button
</button>Beliebige Farbwerte und Transparenz
Bei beliebigen Hex-Farben können Sie mit einem Schrägstrich zusätzlich den Transparenzmodifikator anwenden: bg-[#e63946]/50 setzt den Hintergrund auf 50 % Transparenz. Dies funktioniert, weil die Transparenzsyntax mit Schrägstrich eine JIT-Funktion ist, die unabhängig davon greift, ob die Grundfarbe aus der Palette stammt oder ein beliebiger Wert ist.
Sie können auch rgba()- oder hsl()-Funktionen direkt innerhalb der Klammern verwenden, um Transparenz oder das Farbmodell beliebig zu steuern.
<!-- Arbitrary color with opacity modifier -->
<div class="bg-[#e63946]/50">50% opacity red</div>
<div class="bg-[#e63946]/75">75% opacity red</div>
<!-- RGB function -->
<div class="bg-[rgb(230,57,70)]">RGB red</div>
<!-- HSL function -->
<div class="bg-[hsl(353,76%,55%)]">HSL red</div>
<!-- RGBA for direct alpha control -->
<div class="bg-[rgba(230,57,70,0.5)]">RGBA with alpha</div>Escape-Zeichen in beliebigen Werten
Einige Zeichen innerhalb beliebiger Werte müssen maskiert werden, weil sie in CSS oder HTML eine Bedeutung haben. Verwenden Sie in beliebigen Tailwind-Werten Unterstriche für Leerzeichen (Tailwind wandelt sie automatisch um) und maskieren Sie Klammern sowie andere Sonderzeichen innerhalb von calc(), indem Sie Leerzeichen innerhalb der Funktion durch Unterstriche ersetzen.
Bei URL-Werten (etwa für Hintergrundbilder) setzen Sie den Wert in einfache Anführungszeichen: bg-[url('/img/hero.png')]. Tailwind übernimmt die einfachen Anführungszeichen in das generierte CSS.
<!-- Underscore = space in arbitrary values -->
<div class="grid grid-cols-[200px_1fr] gap-[10px_20px]">
Column gap 10px, row gap 20px
</div>
<!-- calc with underscore-spaces -->
<div class="w-[calc(100%_-_64px)]">
Full width minus 64px
</div>
<!-- URL as background image -->
<div class="bg-[url('/img/hero.jpg')] bg-cover bg-center h-64">
Hero image
</div>Prüfen Sie Ihre beliebigen Werte
Durchsuchen Sie Ihre Codebasis regelmäßig nach allen Verwendungen beliebiger Werte, um Kandidaten für eine Übernahme in das Theme zu identifizieren. Ein kurzer grep-Befehl findet jede Klasse mit Klammern in Ihrem Projekt:
Jeder Wert, der in verschiedenen Dateien mehr als zweimal vorkommt, eignet sich sehr gut als benanntes Theme-Token. Ein einmalig vorkommender Wert kann problemlos beliebig bleiben. Werte, die zu einer konsistenten Skala zu gehören scheinen (wie w-[350px], w-[360px], w-[370px]), zeigen, dass ein Muster außerhalb der Skala standardisiert werden sollte.
# Find all arbitrary value usages in your project
grep -roh 'class="[^"]*\[[^\]]*\][^"]*"' src/ | sort | uniq -c | sort -rn
# Or more targeted: find classes with bracket notation
grep -roh '[a-z:-]*\[[^\]]*\]' src/ --include='*.{html,js,jsx,ts,tsx}' | sort | uniq -c | sort -rn
# Review high-count arbitrary values — add to theme if used 3+ timesBeliebige Werte mit Utilities kombinieren
Beliebige Werte lassen sich in derselben Klassenzeichenfolge ganz natürlich mit standardmäßigen Utility-Klassen kombinieren. Sie können Utilities der Skala und beliebige Werte frei mischen – das ist beabsichtigt und kein Workaround. Das Designsystem deckt 95 % der Fälle mit Utilities der Skala ab; beliebige Werte füllen die verbleibenden 5 %.
Die wichtigste Regel lautet, zuerst Utilities der Skala zu verwenden und erst dann auf beliebige Werte zurückzugreifen, wenn die Skala tatsächlich nicht das Benötigte bietet. Setzen Sie diese Regel in Code-Reviews durch, damit Ihr Markup nicht zu einer Sammlung von Werten außerhalb der Skala wird.
<!-- Mixing utilities and arbitrary values naturally -->
<div class="flex items-center gap-4 px-6 py-3 <!-- scale utilities -->
w-[480px] <!-- arbitrary: specific width -->
bg-[#1a1a2e] <!-- arbitrary: brand color -->
rounded-xl shadow-lg <!-- scale utilities again -->
text-sm font-medium text-white">
A card using both
</div>Schnelltest
Testen Sie Ihr Verständnis der Tailwind-CSS-Mastery-Konzepte aus dieser Lektion.
Zusammenfassung der Lektion
In dieser Lektion haben Sie Folgendes gelernt: beliebige Werte verwenden die Klammer-Syntax [value], um mit JITs bedarfsgesteuerter Generierung beliebige CSS-Werte für jede Utility festzulegen; jeder eindeutige beliebige Wert erzeugt eine eindeutige CSS-Regel, weshalb wiederholt verwendete Werte außerhalb der Skala dateiübergreifend in das Theme übernommen werden sollten; und Unterstriche stellen Leerzeichen innerhalb beliebiger Werte dar (z. B. calc(100%_-_64px)). Damit endet der Kurs zu JIT und Produktionsoptimierung – als Nächstes beschäftigen wir uns mit Design-Tokens und systematischem Theming.
Lerne HTML mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 30
- Lektionen
- 120
Häufig gestellte Fragen
Ist die Lektion „Arbitrary Values und ihre Kosten“ kostenlos?
Ja — der vollständige Text von „Arbitrary Values und ihre Kosten“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Tailwind CSS Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Tailwind CSS Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Arbitrary Values und ihre Kosten“?
Verwenden Sie die Klammerschreibweise wie w-[347px] für einmalige Werte und verstehen Sie den Zielkonflikt zwischen Flexibilität und einem möglicherweise aufgeblähten Stylesheet. Du übst Tailwind CSS Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Tailwind CSS Academy zu starten?
Keine Vorkenntnisse erforderlich. Tailwind CSS Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Arbitrary Values und ihre Kosten“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Tailwind CSS Academy-Lektion Code schreiben und ausführen?
Ja. Jede Tailwind CSS Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Funktionsweise der JIT-Engine
- Dynamische Klassen per Safelist absichern
- Bundle-Größe analysieren und reduzieren
- Arbitrary Values und ihre Kosten