Color Scales
13 Markenfarben als 9-stufige Scale (100–900), automatisch berechnet aus $colors in _variables.scss. Neue Farbe hinzufügen → $colors ergänzen → npm run build → erscheint automatisch überall auf dieser Seite.
Scale-Übersicht
#5865f2
#10b981
#64748b
#22c55e
#ef4444
#f59e0b
#38bdf8
#212529
#19b94b
#198cdc
#e65520
#0fc3d2
#5865f2
CSS Custom Properties
Kontrast-Utilities .on-{name}-{step}
<div class="bg-primary-500 on-primary-500">Automatischer Kontrast</div>
SCSS-Funktion
// color-scale() Funktion
.mein-element {
background: color-scale("primary", 100);
color: color-scale("primary", 800);
}
// CSS Custom Properties
.badge {
background: var(--color-success-100);
color: var(--color-success-800);
}
Klassendokumentation
| Klasse / Element | Typ | Beschreibung |
|---|---|---|
.bg-{name}-{step} |
Utility | Hintergrundfarbe einer Skalenstufe (100–900). |
.text-{name}-{step} |
Utility | Textfarbe einer Skalenstufe. |
.border-{name}-{step} |
Utility | Randfarbe einer Skalenstufe. |
.fill-{name}-{step} |
Utility | SVG fill einer Skalenstufe. |
.ring-{name}-{step} |
Utility | Focus-Ring-Farbe einer Skalenstufe. |
.on-{name}-{step} |
Utility | Automatisch per get-optimal-text-color() berechnete AA-Kontrastfarbe für die jeweilige Stufe. |
var(--color-{name}-{step}) |
CSS Custom Property | Direkter Zugriff auf den Hex-Wert einer Stufe, z. B. in Inline-Styles. |
color-scale($name, $step) |
SCSS-Funktion | Gibt den Hex-Wert einer Stufe innerhalb von SCSS zurück. |
ensure-aa-text() / get-on-color-dynamic() |
SCSS-Funktion | Berechnen zur Build-Zeit eine garantiert AA-konforme Textfarbe für einen beliebigen Hintergrund. |
Typografie
Überschriften, Text-Utilities, Font-Weights, Größen.
Überschriften
h1. Heading
h2. Heading
h3. Heading
h4. Heading
h5. Heading
h6. Heading
<h1>Headline 1</h1>
Font Weights
font-thin (100)
font-light (300)
font-normal (400)
font-medium (500)
font-semibold (600)
font-bold (700)
font-extrabold (800)
font-black (900)
<p class="font-black">font-black (900)</p>
Klassendokumentation
| Klasse / Element | Typ | Beschreibung |
|---|---|---|
<h1> bis <h6> |
HTML-Tag | Überschriften-Hierarchie von 3rem (H1) bis 1.125rem (H6). |
.text-muted |
CSS-Klasse | Dezenter, abgeschwächter Text für Sekundärinformationen. |
.font-{thin|light|normal|medium|semibold|bold|extrabold|black} |
Utility | Steuert die Schriftstärke (verfügbar von thin / 100 bis black / 900). |
.text-xs bis .text-5xl |
Utility | Skaliert die Schriftgröße von Extra-Small bis Extra-Large. |
.truncate |
Utility | Schneidet zu langen Text in einer Zeile mit Auslassungspunkten (...) ab. |
.line-clamp-{1-5} |
Utility | Begrenzt den Text maximal auf 1 bis 5 Zeilen (inkl. Umbruch und Kürzung). |
.uppercase & .tracking-widest |
Utility | Wandelt Text in Großbuchstaben um und maximiert den Zeichenabstand (Letter-Spacing). |
Spacing & Layout
Abstände, Innenabstände (Padding), Außenabstände (Margin), Gaps und negative Margins.
Sass Konfiguration & Basis
Basis: $spacing-base: 0.25rem
Skala: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 20, 24, 28, 32, 36, 40, 48, 56, 64
$spacing-base: 0.25rem !default;
$spacings: (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 20, 24, 28, 32, 36, 40, 48, 56, 64) !default;
Margin & Padding
<div class="p-4 bg-surface-100">Innenabstand (1rem)</div>
<div class="m-4 bg-surface-100">Außenabstand (1rem)</div>
Gaps & Spacing X/Y
<div class="d-flex gap-4">
<div>Item 1</div>
<div>Item 2</div>
</div>
Klassendokumentation
| Klasse / Element | Typ | Beschreibung |
|---|---|---|
.m-{0-64} / .mt-, .mb-, .ml-, .mr-, .mx-, .my- |
Utility | Steuert den Außenabstand (Margin) rundum oder an spezifischen Seiten. |
.p-{0-64} / .pt-, .pb-, .pl-, .pr-, .px-, .py- |
Utility | Steuert den Innenabstand (Padding) rundum oder an spezifischen Seiten. |
.gap-{0-64} / .gap-x-, .gap-y- |
Utility | Definiert den Abstand (Grid- oder Flexbox-Gaps) gesamt, horizontal oder vertikal. |
.space-x-{1-16} / .space-y-{1-16} |
Utility | Fügt automatische Abstände zwischen Kind-Elementen ein (Spacing-Helper). |
.-mt-{1-12} / .-mb-, .-ml-, .-mr- |
Utility | Negative Margins zum gezielten Verschieben von Elementen (z. B. Überlappungen). |
.mx-auto |
Utility | Zentriert Block-Elemente horizontal durch automatische Außenränder links und rechts. |
Flexbox Row & Spalten (24er-Basis)
Code-Beispiele für das 24-Spalten Flexbox- & CSS-Grid-System
Flexbox Row & Spalten (24er-Basis)
<div class="row">
<div class="col-12">...</div>
<div class="col-12">...</div>
</div>
CSS Grid & Spannen (Col-Span)
<div class="grid grid-cols-12 gap-4">
<div class="col-span-4">4 Spalten</div>
<div class="col-span-8">8 Spalten</div>
</div>
Automatisches Grid (Auto-Fit / Auto-Fill)
<div class="grid" style="grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem;">
<div>Auto-Fit (min 180px)</div>
<div>Auto-Fit (min 180px)</div>
<div>Auto-Fit (min 180px)</div>
</div>
Klassendokumentation
| Klasse / Element | Typ | Beschreibung |
|---|---|---|
.container / .container-fluid |
Layout | Zentrierter Wrapper mit responsiven Max-Breiten oder fluidem Layout. |
.row |
Flexbox | Flexbox-Zeile mit negativem Margin zum Ausgleich der Spalten-Gutter. |
.col-1 bis .col-24 |
Flexbox | Breitendefinition basierend auf dem 24-Spalten-Raster. |
.grid |
CSS Grid | Aktiviert das native CSS-Grid mit vordefiniertem Standard-Gap. |
.grid-cols-{1-12} |
CSS Grid | Definiert die Anzahl der Spalten im CSS Grid (z. B. grid-cols-12). |
.col-span-{1-12} |
CSS Grid | Bestimmt, über wie viele Spalten sich ein Element erstreckt. |
.grid-auto-{xs|sm|md|lg|xl} |
CSS Grid | Automatisches Spaltenlayout per auto-fit ohne Media Queries. |
Buttons
Solid, Outline, Ghost & Link. Generiert für alle Farben aus $colors (_button.scss).
Solid
<button class="btn btn-primary">Primary</button>
<button class="btn btn-success">Success</button>
<button class="btn btn-danger">Danger</button>
Outline
<button class="btn btn-outline-primary">Outline</button>
Ghost
<button class="btn btn-ghost-primary">Ghost</button>
Größen, Zustände & Gruppen
<button class="btn btn-primary btn-sm">Small</button>
<button class="btn btn-primary btn-lg">Large</button>
<button class="btn btn-primary btn-loading">Loading</button>
<div class="btn-group">
<button class="btn btn-outline-secondary">A</button>
<button class="btn btn-outline-secondary">B</button>
</div>
Klassendokumentation
| Klasse / Element | Typ | Beschreibung |
|---|---|---|
.btn |
Basis | Grundklasse, immer zusammen mit einer Varianten-Klasse verwenden. |
.btn-{color} |
Variante | Solide Hintergrundfarbe, Kontrasttext automatisch berechnet. |
.btn-outline-{color} |
Variante | Transparenter Hintergrund, farbiger Rahmen + Text. |
.btn-ghost-{color} |
Variante | Kein Rahmen, Text in Markenfarbe (AA-berechnet), farbiger Hover-Hintergrund. |
.btn-link |
Variante | Sieht aus wie ein Link, kein Padding/Rahmen. |
.btn-sm / .btn-lg / .btn-xl |
Modifier | Größen-Varianten. |
.btn-loading |
Zustand | Zeigt einen Lade-Spinner, deaktiviert Klicks. |
.btn-icon |
Modifier | Quadratischer Button nur für ein Icon/Emoji. |
.btn-group |
Layout | Fasst mehrere Buttons zu einer verbundenen Gruppe zusammen. |
Badges & Alerts
Badges, Soft-Badges und Alerts aus _alert-badge.scss.
Badges
<span class="badge badge-primary">Primary</span>
<span class="badge badge-soft-success badge-pill">Soft Pill</span>
<span class="badge badge-dot badge-danger"></span>
Alerts
Informationstext für den Benutzer.
Die Aktion wurde abgeschlossen.
Bitte überprüfe deine Eingaben.
Diese Aktion kann nicht rückgängig gemacht werden.
<div class="alert alert-success">
<div class="alert-content">
<div class="alert-title">Erfolg!</div>
<p class="alert-text">Aktion abgeschlossen.</p>
</div>
<button class="alert-close">✕</button>
</div>
Klassendokumentation
| Klasse / Element | Typ | Beschreibung |
|---|---|---|
.badge |
Basis | Kleines Label-/Tag-Element. |
.badge-{color} |
Variante | Solide Hintergrundfarbe. |
.badge-soft-{color} |
Variante | Getönter Hintergrund, Text per ensure-aa-text() berechnet. |
.badge-pill |
Modifier | Voll abgerundete Ecken. |
.badge-dot |
Modifier | Kleiner runder Punkt ohne Text. |
.badge-outline |
Variante | Nur Rahmen + Text, transparenter Hintergrund. |
.alert |
Basis | Hinweisbox mit Rahmen + getöntem Hintergrund. |
.alert-{color} |
Variante | Farbvariante (primary/success/danger/warning). |
.alert-content |
Element | Wrapper um Titel + Text (für Flex-Layout mit Close-Button). |
.alert-title / .alert-text |
Element | Struktur innerhalb eines Alerts. |
.alert-close |
Element | Schließen-Button, togglet .is-dismissing auf .alert. |
Card Komponente
Flexible Kartencontainer mit Headern, Bodys, Footern, Medien, Overlays und Varianten.
Standard Karte
Header Titel
Card Title
Inhalt der Karte...
<div class="card">
<div class="card-header">
<h4 class="card-title">Header Titel</h4>
</div>
<div class="card-body">
<h5 class="card-title">Card Title</h5>
<p class="card-text">Inhalt der Karte...</p>
</div>
<div class="card-footer">
<button class="btn btn-primary">Speichern</button>
</div>
</div>
Medien & Overlay
Karte mit Bild
Bilder nutzen object-fit: cover und passen sich ohne Verzerrung an.
<!-- Mit Badge & Media -->
<div class="card">
<span class="card-badge">Neu</span>
<div class="card-media card-media-sm">
<img src="image.jpg" alt="...">
</div>
<div class="card-body">...</div>
</div>
<!-- Overlay Card -->
<div class="card">
<div class="card-media card-media-lg">
<img src="image.jpg" alt="...">
<div class="card-media-overlay">
<h4 class="card-title">Overlay Header</h4>
</div>
</div>
</div>
Farbvarianten (Soft & Solid)
Primary Soft
Dezent eingefärbter Hintergrund und Rand.
Perfekt für Systemwarnungen oder Fehler.
Vollständig deckender Hintergrund mit weißer Typografie.
<div class="card-primary">...</div>
<div class="card-solid-primary">...</div>
Klassendokumentation
| Klasse / Element | Typ | Beschreibung |
|---|---|---|
.card |
Basis | Hauptcontainer für die Kartenkomponente. |
.card-header / .card-body / .card-footer |
Struktur | Inhaltsbereiche der Karte zur Unterteilung von Titel, Fließtext und Aktionen. |
.card-title / .card-subtitle / .card-text |
Typografie | Standardisierte Textklassen für konsistente Abstände und Schriftgrößen. |
.card-media |
Medien | Container für Bilder/Videos (Standardhöhe 200px, steuerbar mit -sm, -lg, -xl, -auto). |
.card-media-overlay |
Overlay | Absoluter Textbereich über Medien mit dunklem Verlaufsfilter. |
.card-flat / .card-bordered / .card-elevated |
Variante | Ändert Schatten und Ränder der Karte. |
.card-interactive |
Zustand | Fügt Hover-Schatten, Anheben und Bild-Zoom bei Interaktion hinzu. |
.card-{color} / .card-solid-{color} |
Farbe | Soft- oder Vollton-Einfärbung basierend auf der Farbpalette. |
.card-horizontal |
Layout | Ordnet Bild und Text nebeneinander an (mit mobilem Fallback). |
.card-group |
Grid | Responsive Rasteransicht für mehrere Karten. |
.card-badge |
Extra | Absolut positionierte Plakette oben rechts auf der Karte. |
.card-skeleton |
Loading | Aktiviert Shimmer-Animationen für Ladezustände. |
Formular-Komponenten
Eingabefelder, Textareas, Selects, Checkboxen, Radios, Switches, Slider, Validierungen, Input-Groups und Formular-Layouts.
1. Text Input & Textarea
<div class="form-group">
<label class="form-label required" for="email">E-Mail-Adresse</label>
<input type="email" id="email" class="form-control" placeholder="max@example.com">
<span class="form-hint">Hinweistext hier...</span>
</div>
<div class="form-group">
<label class="form-label" for="bio">Biografie</label>
<textarea id="bio" class="form-control"></textarea>
</div>
2. Input-Größen & Plaintext
<input type="text" class="form-control form-control-sm" placeholder="Small">
<input type="text" class="form-control" placeholder="Default">
<input type="text" class="form-control form-control-lg" placeholder="Large">
<input type="text" class="form-control-plaintext" readonly value="Nur Text">
3. Select Menüs
<select class="form-select">
<option value="1">Option 1</option>
</select>
<select class="form-select" multiple size="3">
<option value="1">Option A</option>
</select>
4. Checkboxen & Radio Buttons
<!-- Checkbox -->
<div class="form-check">
<input class="form-check-input" type="checkbox" id="c1" checked>
<label class="form-check-label" for="c1">Checkbox Label</label>
</div>
<!-- Radio Inline -->
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="r" id="r1" checked>
<label class="form-check-label" for="r1">Radio Label</label>
</div>
5. Switch / Toggle Controls
<div class="form-switch">
<input class="form-check-input" type="checkbox" id="switch1" checked>
<label class="form-check-label" for="switch1">Toggle Text</label>
</div>
6. Range Slider
<label class="form-label" for="r">Wert: 50%</label>
<input type="range" class="form-range" id="r" min="0" max="100" value="50">
7. Validierungs-States
<!-- Valid -->
<input type="text" class="form-control is-valid" value="OK">
<div class="valid-feedback">Erfolgreich!</div>
<!-- Invalid -->
<input type="text" class="form-control is-invalid" value="Fehler">
<div class="invalid-feedback">Fehlermeldung!</div>
8. Input Groups (Prefix, Suffix & Buttons)
<div class="input-group">
<span class="input-group-text">@</span>
<input type="text" class="form-control" placeholder="Username">
</div>
<div class="input-group">
<input type="text" class="form-control" placeholder="Suche...">
<button class="btn btn-primary">Suchen</button>
</div>
9. Floating Label Fields
<div class="form-floating">
<input type="email" class="form-control" id="f-email" placeholder="name@example.com">
<label for="f-email">E-Mail-Adresse</label>
</div>
10. Formular-Layouts (Inline & Horizontal)
<!-- Inline -->
<form class="form-inline">
<div class="form-group">
<label class="form-label">Name</label>
<input type="text" class="form-control">
</div>
<button class="btn btn-primary">OK</button>
</form>
<!-- Horizontal -->
<form class="form-horizontal">
<div class="form-group">
<label class="form-label">E-Mail</label>
<div class="form-control-wrap">
<input type="email" class="form-control">
</div>
</div>
</form>
11. File Input & Form Card Wrapper
<div class="form-card">
<div class="form-card-title">Titel</div>
<div class="form-card-subtitle">Untertitel</div>
<fieldset>
<legend>Upload</legend>
<input type="file" class="form-file">
</fieldset>
<div class="form-card-footer">
<button class="btn btn-secondary">Abbrechen</button>
<button class="btn btn-primary">Speichern</button>
</div>
</div>
Klassendokumentation
| Klasse / Element | Typ | Beschreibung |
|---|---|---|
.form-group |
Form Group | Wrapper für Label, Eingabefeld und Hilfetext mit unterem Abstand. |
.form-label / .required |
Form Label | Beschriftungselement. .required ergänzt ein rotes Pflichtfeld-Sternchen (*). |
.form-control |
Base Inputs | Standard-Klasse für Textfelder, E-Mail, Passwörter und Textareas. |
.form-control-sm / .form-control-lg |
Input-Größen | Varianten für besonders kompakte oder hervorgehobene Formularfelder. |
.form-control-plaintext |
Plaintext | Entfernt Ränder und Hintergründe für schreibgeschützte Ansichten. |
.form-select / .form-select-sm|lg |
Select | Gstyltes Dropdown-Menü mit benutzerdefiniertem Pfeil. |
.form-check / .form-check-input / .form-check-label |
Checkbox / Radio | Kombination für Auswahlfelder. Bietet Unterstützung für :indeterminate. |
.form-switch / .form-switch-sm|lg |
Switch | Umschalt-Kippschalter auf Basis einer Standard-Checkbox. |
.form-range |
Range | Angepasster Schieberegler für numerische Wertebereichseingaben. |
.is-valid / .is-invalid / *-feedback |
Validation | Zustandsklassen für Validierungs-Icons und dynamische Feedback-Texte. |
.input-group / .input-group-text |
Input Group | Erlaubt das Anfügen von Suffixen, Präfixen oder Buttons an Eingabefelder. |
.form-floating |
Floating Label | Erzeugt animierte Beschriftungen, die bei Fokus nach oben gleiten. |
.form-card / .form-card-title / .form-card-footer |
Form Card | Elegantes Karten-Layout zur Umrahmung kompletter Formulare. |
Modal & Drawer
Modals, Fullscreen, Scrollable & Drawer. Generiert für Overlay-Komponenten (_modal.scss).
Größen
<div class="modal" id="myModal">
<div class="modal-dialog">
<div class="modal-header">
<div>
<h3 class="modal-title">Modal-Titel</h3>
<p class="modal-subtitle">Optionaler Untertitel</p>
</div>
<button class="modal-close" onclick="closeModal('myModal')">×</button>
</div>
<div class="modal-body">
<p>Inhalt des Dialogs...</p>
</div>
<div class="modal-footer">
<button class="btn btn-secondary" onclick="closeModal('myModal')">Abbrechen</button>
<button class="btn btn-primary">Speichern</button>
</div>
</div>
</div>
Varianten & Footer
<div class="modal modal-scrollable" id="scrollModal">
<div class="modal-dialog">...</div>
</div>
<div class="modal-footer modal-footer-between">
<button class="btn btn-danger">Löschen</button>
<div>
<button class="btn btn-secondary">Abbrechen</button>
<button class="btn btn-primary">Speichern</button>
</div>
</div>
Drawer (Side Panels)
<div class="modal-backdrop" id="drawerBackdrop"></div>
<div class="drawer" id="drawerRight">
<div class="drawer-dialog">
<div class="modal-header">
<h3 class="modal-title">Seitenleiste Rechts</h3>
<button class="modal-close">×</button>
</div>
<div class="modal-body">Inhalt...</div>
</div>
</div>
JavaScript-Steuerung
function setScrollLock(lock) {
document.body.style.overflow = lock ? 'hidden' : '';
}
function openModal(id) {
const modal = document.getElementById(id);
if (modal) {
modal.classList.add('is-open');
setScrollLock(true);
}
}
function closeModal(id) {
const modal = document.getElementById(id);
if (modal) {
modal.classList.remove('is-open');
const openModals = document.querySelectorAll('.modal.is-open, .drawer.is-open');
if (openModals.length === 0) setScrollLock(false);
}
}
function openDrawer(id) {
const drawer = document.getElementById(id);
const backdrop = document.getElementById('drawerBackdrop');
if (drawer && backdrop) {
backdrop.classList.add('is-visible');
drawer.classList.add('is-open');
setScrollLock(true);
}
}
function closeDrawer(id) {
const drawer = document.getElementById(id);
const backdrop = document.getElementById('drawerBackdrop');
if (drawer) drawer.classList.remove('is-open');
const openDrawers = document.querySelectorAll('.drawer.is-open');
if (openDrawers.length === 0 && backdrop) {
backdrop.classList.remove('is-visible');
}
const openModals = document.querySelectorAll('.modal.is-open, .drawer.is-open');
if (openModals.length === 0) setScrollLock(false);
}
document.addEventListener('click', (e) => {
if (e.target.classList.contains('modal') && e.target.classList.contains('is-open')) {
closeModal(e.target.id);
}
});
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
const openModalEl = document.querySelector('.modal.is-open');
if (openModalEl) closeModal(openModalEl.id);
document.querySelectorAll('.drawer.is-open').forEach(drawer => closeDrawer(drawer.id));
}
});
Klassendokumentation
| Klasse / Element | Typ | Beschreibung |
|---|---|---|
.modal |
Basis Wrapper | Absolut/fixed zentrierter Overlay-Container. Öffnet durch .is-open. |
.modal-dialog |
Element | Der eigentliche Dialog-Kasten mit Card-Styling und Schatten. |
.modal-sm / .modal-lg / .modal-xl |
Variante | Bestimmt die maximale Breite des Dialogs (380px, 780px, 1080px). |
.modal-fullscreen |
Variante | Dehnt den Dialog über den gesamten Viewport aus. |
.modal-header / .modal-body / .modal-footer |
Struktur | Standardbereiche für Titel, Inhalt und Aktions-Buttons. |
.modal-footer-between |
Variante | Richtete Footer-Elemente mit Platz dazwischen aus. |
.modal-close |
Element | Standardisierter Schließen-Button (X) im Header. |
.drawer |
Basis Wrapper | Seitenleisten-Container, gleitet von rechts ein per .is-open. |
.drawer-left |
Variante | Lässt den Drawer von der linken Seite hineingleiten. |
.modal-backdrop |
Komponente | Standalone-Hintergrund mit Weichzeichner für Drawers (.is-visible). |
Tabellen & Datenstrukturen
Umfangreiche Komponenten für die strukturierte Datendarstellung mit Striped Rows, Hover-Effekten, Responsive Wrappern und Pagination (_table.scss).
Standard & Striped Table
| # | Benutzer | Rolle | Status |
|---|---|---|---|
| 1 | Max Mustermann | Administrator | Aktiv |
<table class="table table-striped table-hover">
<thead>
<tr>
<th>#</th>
<th>Benutzer</th>
<th>Rolle</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Max Mustermann</td>
<td>Administrator</td>
<td><span class="badge badge-success">Aktiv</span></td>
</tr>
</tbody>
</table>
Responsive Tabellen-Container
| ID | Produkt | Preis |
|---|---|---|
| 101 | Software Lizenz | 49,99 € |
<div class="table-responsive">
<table class="table table-bordered table-sm">
<thead>
<tr><th>ID</th><th>Produkt</th><th>Preis</th></tr>
</thead>
<tbody>
<tr><td>101</td><td>Software Lizenz</td><td>49,99 €</td></tr>
</tbody>
</table>
</div>
Table Card mit Pagination
Benutzerverwaltung
| Eintrag 1... |
<div class="table-card">
<div class="table-card-header">
<h4 class="table-card-title">Titel</h4>
</div>
<table class="table table-hover">
<!-- Tabellen-Inhalt -->
</table>
<div class="table-card-footer">
<span>Info-Text</span>
<ul class="pagination pagination-sm">
<li class="page-item disabled"><a class="page-link" href="#">«</a></li>
<li class="page-item active"><a class="page-link" href="#">1</a></li>
<li class="page-item"><a class="page-link" href="#">2</a></li>
</ul>
</div>
</div>
Klassendokumentation
| Klasse / Element | Typ | Beschreibung |
|---|---|---|
.table |
Basis Wrapper | Grundlegendes Styling für Tabellenelemente mit definiertem Padding und Borders. |
.table-striped |
Variante | Färbt abwechselnde Zeilen für eine deutlich bessere Lesbarkeit bei großen Datenmengen ein. |
.table-hover |
Variante | Aktiviert einen interaktiven Hover-Effekt auf Tabellenzeilen für visuelles Feedback. |
.table-bordered |
Variante | Fügt Rahmen um alle Zellen und Tabellenränder hinzu. |
.table-sm |
Variante | Kompakte Darstellung durch reduziertes Innenabstand (Padding) in den Zellen. |
.table-responsive |
Container | Ermöglicht horizontales Scrollen auf kleineren Bildschirmen, ohne das Layout zu sprengen. |
.table-card |
Komponente | Kombiniert eine Tabelle nahtlos mit einem Header, Footer und integrierter Pagination. |
.table-card-header |
Element | Kopfbereich der Tabellenkarte für Titel, Filter oder Aktions-Buttons. |
.table-card-footer |
Element | Fußbereich der Tabellenkarte für Metadaten, Zähler und Seitenzahlen. |
Miscellaneous (Hilfskomponenten)
Nützliche UI-Hilfskomponenten für Avatare, Statusanzeigen, Badge-Gruppen und interaktive Tooltips (_misc.scss).
Avatare & Statusanzeigen
<!-- Avatare und Status-Anzeigen -->
<div class="avatar avatar-lg">
<img src="avatar.jpg" alt="User">
<span class="avatar-status status-online"></span>
</div>
<!-- Avatar Gruppe -->
<div class="avatar-group">
<div class="avatar avatar-sm">JD</div>
<div class="avatar avatar-sm">AS</div>
<div class="avatar avatar-sm avatar-more">+3</div>
</div>
Tooltips
<!-- Tooltip Attribut-Nutzung -->
<button class="btn" data-tooltip="Das ist ein Hilfetext">Hover mich</button>
Klassendokumentation
| Klasse / Element | Typ | Beschreibung |
|---|---|---|
.avatar |
Komponente | Rundes Containerelement zur Darstellung von Benutzerprofilbildern oder Initialen. |
.avatar-sm / .avatar-lg |
Variante | Steuert die Darstellungsgröße des Avatars (z. B. klein oder groß). |
.avatar-group |
Layout | Automatische Überlappung mehrerer Avatare zur Darstellung von Teams oder Gruppen. |
.avatar-status |
Element | Kleiner Indikatorpunkt zur Visualisierung des Aktivitätsstatus (Online, Away, Offline). |
[data-tooltip] |
Attribut | Ermöglicht das einfache Rendern von CSS-basierten Hinweistexten beim Hovern. |
Marketing & Hero
Ausdrucksstarke Jumbotrons, Feature-Grids, Preistabellen (Pricing Cards) und vertikale Timelines für professionelle Marketing- und Präsentationsseiten (_marketing.scss).
Jumbotron / Hero Section
Titel mit Akzent
Einleitungstext für die perfekte Landing-Page Präsentation...
<div class="jumbotron">
<div class="jumbotron-inner">
<span class="jumbotron-eyebrow">Neu erschienen</span>
<h1 class="jumbotron-title">Titel mit <em>Akzent</em></h1>
<p class="jumbotron-lead">Einleitungstext für die Landing-Page...</p>
<div class="jumbotron-actions">
<button class="btn btn-primary">Starten</button>
</div>
<div class="jumbotron-meta">
<span>✓ Feature 1</span>
</div>
</div>
</div>
Feature Grid
<div class="feature-grid">
<div class="feature-card">
<div class="feature-icon">⚡</div>
<h3 class="feature-title">Feature Titel</h3>
<p class="feature-text">Beschreibungstext des Features.</p>
<a href="#" class="feature-link">Mehr erfahren</a>
</div>
</div>
Pricing Cards
Ideal für professionelle Entwickler.
- ✓ Alle Features inklusive
- ✓ 24/7 Support
<div class="pricing-grid">
<div class="pricing-card pricing-card-featured">
<span class="pricing-badge">Empfohlen</span>
<div class="pricing-plan">Pro</div>
<div class="pricing-price">
<span class="price-currency">€</span>
<span class="price-amount">29</span>
<span class="price-period">/ Mon.</span>
</div>
<p class="pricing-desc">Beschreibungstext...</p>
<div class="pricing-divider"></div>
<ul class="pricing-features">
<li>Integrierte Funktion</li>
</ul>
<button class="btn btn-primary btn-block">Auswählen</button>
</div>
</div>
Vertikale Timeline
-
Q1 2026
Projekt-Kickoff
Erfolgreicher Start der Planungsphase.
<ul class="timeline">
<li class="timeline-item is-done">
<div class="timeline-dot"></div>
<div class="timeline-date">Datum / Phase</div>
<h4 class="timeline-title">Titel</h4>
<p class="timeline-body">Inhaltstext...</p>
</li>
</ul>
Klassendokumentation
| Klasse / Element | Typ | Beschreibung |
|---|---|---|
.jumbotron |
Komponente | Großflächiger Hero-Header-Bereich zur Präsentation von Kernbotschaften und Produkten. |
.jumbotron-eyebrow |
Element | Kleine akzentuierte Textzeile oberhalb des Haupttitels. |
.feature-grid |
Layout | Übersichtliches Raster zur strukturierten Darstellung von Produktfeatures und Vorteilen. |
.pricing-card |
Komponente | Visualisierungskarte für Preispakete, Abonnements und Tarifstrukturen. |
.pricing-card-featured |
Variante | Hervorgehobene Preiskarte zur Kennzeichnung des beliebtesten Tarifs. |
.timeline |
Komponente | Vertikale Zeitleiste zur Darstellung von Meilensteinen, Phasen oder Roadmaps. |
News & Editorial Components
Umfangreiche Komponenten für Nachrichten, Magazin-Layouts, Artikelkarten, News-Feeds und Breaking-Banner (_news.scss).
Article Cards (Standard, Overlay & Meinung)
<article class="article-card">
<span class="article-category-pill">Tech</span>
<button class="article-bookmark">★</button>
<div class="article-media"><img src="..." alt="" /></div>
<div class="article-body">
<a href="#" class="article-category">Kategorie</a>
<a href="#" class="article-title">Artikel Überschrift</a>
<p class="article-teaser">Teaser Text...</p>
<div class="article-meta">
<div class="article-author">
<div class="author-avatar">MM</div>
<span>Autor Name</span>
</div>
<span class="article-date">Datum</span>
<span class="article-read-time">3 Min</span>
</div>
</div>
</article>
Magazine Grid (Featured + Sidebar)
<div class="article-grid-magazine">
<article class="article-card"> ... </article>
<article class="article-card article-card-sm"> ... </article>
</div>
News Feed / Ranking List
<div class="news-feed">
<div class="news-feed-header">
<h4 class="news-feed-title">Titel</h4>
<a href="#" class="news-feed-link">Link</a>
</div>
<a href="#" class="news-item is-breaking">
<span class="news-item-rank">1</span>
<div class="news-item-content">
<span class="news-item-category">Kategorie</span>
<div class="news-item-title">Artikel Titel</div>
</div>
</a>
</div>
Breaking News Banner
<div class="breaking-banner">
<span class="breaking-label">Eilmeldung</span>
<span class="breaking-text">Wichtige Entwicklungen im Sektor angekündigt.</span>
<a href="#" class="breaking-link">Mehr erfahren</a>
<button class="breaking-close">×</button>
</div>
Klassendokumentation
| Klasse / Element | Typ | Beschreibung |
|---|---|---|
.article-card |
Basis Wrapper | Haupt-Container für Editorial- und News-Karten. Flex-Layout (spaltig). |
.article-media |
Element | Bild-Wrapper mit festem Seitenverhältnis (16:10 / 16:9) und Zoom-Effekt bei Hover. |
.article-title / .article-teaser |
Typografie | Titel in Serif-Schriftart und Teaser-Text mit autom. Multi-Line-Truncate (-webkit-line-clamp). |
.article-category-pill / .article-bookmark |
Overlay | Gepillter Kategorie-Badge bzw. interaktiver Bookmark-Button auf dem Vorschaubild. |
.article-card-horizontal |
Variante | Horizontales Layout (Bild links, Text rechts). Ideal für kompakteren Content. |
.article-card-overlay |
Variante | Text liegt als Overlay mit dunklem Verlauf direkt über dem Vorschaubild. |
.article-card-opinion |
Variante | Meinungsstück-Look mit linkem Akzent-Border, kursiver Überschrift und ohne Bild. |
.article-grid / .article-grid-magazine |
Layout | Responsive Spalten-Grids für Magazin- und News-Übersichtsseiten. |
.news-feed / .news-item |
Komponente | Kompakte News-Liste/Ranking-Feed mit Platz für Ränge, Thumbnails, Breaking-States (.is-breaking) und Gelesen-Status (.is-read). |
.breaking-banner |
Banner | Eilmeldungs-Leiste in Akzentfarbe mit optionalem Close-Button und Ticker-Support. |
Landing Page & E-Commerce
Hochwertige Komponenten für moderne Startseiten, Call-to-Action-Abschnitte, Testimonials, FAQ-Akkordeons und E-Commerce Produktkarten (_landing.scss).
Call-to-Action (CTA) Section
Bereit für den Durchbruch?
Starte noch heute dein Projekt mit unserem Framework.
<div class="cta-section cta-section-primary">
<h3 class="cta-title">Bereit für den <em>Durchbruch</em>?</h3>
<p class="cta-text">Starte noch heute dein Projekt mit unserem Framework.</p>
<div class="cta-actions">
<button class="btn btn-white">Jetzt starten</button>
</div>
<div class="cta-note">Keine Kreditkarte erforderlich</div>
</div>
Testimonial Card Grid
<div class="testimonials-grid">
<div class="testimonial-card">
<div class="testimonial-stars">★★★★★</div>
<div class="testimonial-quote">Das Framework hat unsere Entwicklungszeit verkürzt!</div>
<div class="testimonial-author">
<div class="testimonial-avatar">JD</div>
<div>
<div class="testimonial-name">John Doe</div>
<div class="testimonial-role">Senior Developer</div>
</div>
</div>
</div>
</div>
FAQ Akkordeon
-
Du kannst das Framework direkt über npm oder CDN einbinden.
<ul class="faq-list">
<li class="faq-item">
<button class="faq-question is-open">
<span>Wie kann ich das Framework installieren?</span>
<span class="faq-icon">+</span>
</button>
<div class="faq-answer is-open">
<p>Du kannst das Framework direkt über npm oder CDN einbinden.</p>
</div>
</li>
</ul>
E-Commerce Produktkarte
<div class="product-card">
<div class="product-media">
<span class="product-badge product-badge-sale">Sale</span>
[ Produktbild ]
</div>
<div class="product-body">
<span class="product-category">Kategorie</span>
<a href="#" class="product-name">Produktname</a>
<div class="product-price">
<span class="price-current">99,99 €</span>
<span class="price-original">129,99 €</span>
</div>
</div>
<div class="product-footer">
<button class="btn btn-primary btn-sm btn-block">Kaufen</button>
</div>
</div>
Klassendokumentation
| Klasse / Element | Typ | Beschreibung |
|---|---|---|
.cta-section |
Komponente | Hervorgehobener Bereich für verkaufsfördernde Handlungsaufforderungen mit Farbvarianten. |
.testimonials-grid |
Layout | Responsives Raster zur ansprechenden Anordnung von Kundenbewertungen. |
.testimonial-card |
Komponente | Karte für einzelnes Feedback inklusive Autorenprofil und Bewertungssymbolen. |
.faq-list |
Komponente | Strukturiertes Listenformat für ausklappbare Fragen und Antworten (Akkordeon-Prinzip). |
.product-card |
Komponente | Vollwertige E-Commerce-Produktkarte mit Medienbereich, Preisanzeige und Aktionen. |
.product-badge |
Element | Markierungselement für Produkte (z. B. "Sale", "Neu", "-20%"). |
Fullscreen Layouts & Sections
Vollbild-Layouts inklusive Hero-Sektionen, animierten Hintergründen, Glassmorphism-Blurs und nahtlosen Scroll-Sections (_fullscreen.scss).
Hero Left Layout
Linksbündiger Content
Richtete den Text am linken Rand aus.
<section class="fullscreen fs-hero fs-hero-left fs-bg-gradient-forest">
<div class="fs-hero-content">
<div class="fs-badge"><span class="fs-badge-dot"></span> Badge</div>
<h1 class="fs-title">Titel</h1>
<p class="fs-subtitle">Untertitel...</p>
</div>
</section>
Klassendokumentation
| Klasse / Element | Typ | Beschreibung |
|---|---|---|
.fullscreen |
Basis Wrapper | Definiert ein Fullscreen-Element mit einer Mindesthöhe von 100vh. |
.fs-hero |
Variante | Platziert Inhalte flexibel als Hero-Bereich. |
.fs-hero-left |
Modifier | Richtet den Inhalt linksbündig mit vordefiniertem Padding aus. |
.fs-bg-gradient-forest / .fs-bg-animated |
Hintergrund | Stellt farbige Gradienten oder fließende Animationen bereit. |
.fs-overlay-blur |
Effekt | Wendet einen Backdrop-Filter (Blur) auf den Bildhintergrund an. |
.fullscreen-scroll |
Container | Ermöglicht strukturierte Aneinanderreihungen von 100vh-Sections für Storytelling. |
Quote & Blockquote Components
Interaktive Zitat-Komponenten, Bordered-Varianten, Pull-Quotes und Sprechblasen (_quote.scss).
Standard Quote
Einfachheit ist das Resultat der Reife.
<blockquote class="quote">
<p class="quote-text">Zitattext hier...</p>
<footer class="quote-footer">
<img src="avatar.jpg" class="quote-avatar" alt="Author">
<span class="quote-author">Autor Name</span>
<cite class="quote-source">Quelle / Buchtitel</cite>
</footer>
</blockquote>
Bordered & Highlight Varianten
Bordered Variant: Ein klassischer Akzentstreifen auf der linken Seite.
<blockquote class="quote quote-bordered quote-primary"> ... </blockquote>
<blockquote class="quote quote-highlight quote-warning"> ... </blockquote>
Card & Pull Quote
„Design ist nicht nur wie es aussieht oder sich anfühlt.“
<blockquote class="quote quote-card quote-primary"> ... </blockquote>
<blockquote class="quote quote-pull"> ... </blockquote>
Speech Bubble & Größenskalierung
Chat- oder sprechblasenähnliche Darstellung für Testimonials.
<blockquote class="quote quote-speech quote-primary"> ... </blockquote>
<blockquote class="quote quote-sm"> ... </blockquote>
<blockquote class="quote quote-lg"> ... </blockquote>
Klassendokumentation
| Klasse / Element | Typ | Beschreibung |
|---|---|---|
.quote |
Basis Wrapper | Haupt-Container für Zitate, vorzugsweise als . |
.quote-text |
Element | Der Zitattext mit Kursivschrift und automatischen Anführungszeichen. |
.quote-footer / .quote-author / .quote-source |
Elemente | Fußzeile für Zuordnung von Autor, Avatar und Quelle. |
.quote-bordered |
Variante | Entfernt den Hintergrund und setzt eine farbige linke Kante. |
.quote-card |
Variante | Karten-Look mit Schatten, Rahmen und großem Zitat-Icon. |
.quote-pull |
Variante | Zentriertes Pull-Quote mit Ober- und Unterkante für Magazine. |
.quote-highlight |
Variante | Farbiger, transparenter Hintergrund mit starker linker Kante. |
.quote-speech |
Variante | Vollflächig eingefärbte Sprechblase mit abgerundeten Ecken. |
.quote-{primary|success|danger|...} |
Farbmodi | Wendet Design-Farben auf Rahmen, Hintergründe oder Icons an. |
.quote-{sm|lg|xl} |
Größen | Skaliert die Schriftgröße des Zitattextes. |
Theme Toggle Component
Interaktiver Theme-Umschalter für Hell-, Dunkel- und Systemmodi inklusive localStorage-Anbindung (_theme-toggle.scss)[cite: 11].
Standard Theme Toggle
<button class="theme-toggle-btn" data-theme-toggle title="Theme wechseln" aria-label="Theme wechseln" data-theme-current="auto">
<svg class="theme-toggle-icon" data-theme-icon width="16" height="16" fill="currentColor" viewBox="0 0 16 16"></svg>
</button>
Größen- und Form-Modifier
<button class="theme-toggle-btn theme-toggle-btn--sm">...</button>
<button class="theme-toggle-btn theme-toggle-btn--lg">...</button>
<button class="theme-toggle-btn theme-toggle-btn--square">...</button>
Klassendokumentation
| Klasse / Element | Typ | Beschreibung |
|---|---|---|
.theme-toggle-btn |
Basis-Klasse | Erstellt den runden Button (Pill, 34x34px) inklusive Animationen. |
[data-theme-current="dark/auto"] |
State-Attribut | Steuert dynamisch via JS spezifische Rahmen, Rotationen oder Icons. |
.theme-toggle-btn--sm / --lg |
Modifier | Passt die Button-Größe an (28px bzw. 40px). |
.theme-toggle-btn--square |
Modifier | Ändert die abgerundete Form in ein eckiges Design. |
SCSS Utility Framework
Umfassendes Utility-System für Farben, Borders, Shadows, Flexbox, Spacings und Typografie[cite: 9].
Colors, Borders & Shadows
<div class="p-4 bg-primary-20 text-primary rounded border border-dashed">Transparenter Hintergrund</div>
<div class="p-4 rounded shadow-lg">Schatten-Box</div>
Display & Flexbox
<div class="d-flex justify-between items-center">
<div>Linkes Flex-Element</div>
<div>Rechtes Flex-Element</div>
</div>
Typography Utilities
Überschrift (.h3)
Hervorgehobener Einleitungstext (.lead).
<h3 class="h3">Überschrift</h3>
<p class="lead">Einleitungstext...</p>
<p class="text-muted italic">Hinweis...</p>
Klassendokumentation
| Klasse / Element | Typ | Beschreibung |
|---|---|---|
.border / .border-dashed |
Rahmen | Steuert Rahmenstärke und Linien-Stil. |
.d-flex / .d-grid |
Display | Schaltet auf Flexbox- oder Grid-Layout um. |
.justify-{start|center|between} |
Flexbox | Regelt die horizontale Ausrichtung. |
.h1 bis .h6 |
Typografie | Weist semantisch neutrale Überschriften-Größen zu. |
.lead |
Typografie | Erzeugt einen optisch vergrößerten Einleitungstext. |