Komponenten
Jedes Beispiel ist echtes HTML. Unter jedem Beispiel liegt der Quelltext zum Aufklappen und Kopieren. Wechseln Sie oben das Design, um dieselbe Komponente in allen Varianten zu sehen.
Schaltflächen
Eine Schaltfläche pro Dialog ist die Standardaktion (is-default). Sie reagiert auf Enter. Deaktivierte Schaltflächen bleiben sichtbar, sagen aber nichts mehr.
Zustände
HTML-Code
<div class="lg-row">
<button type="button" class="lg-btn">Normal</button>
<button type="button" class="lg-btn is-default">Standard</button>
<button type="button" class="lg-btn is-pressed">Gedrückt</button>
<button type="button" class="lg-btn" disabled>Deaktiviert</button>
<button type="button" class="lg-btn lg-btn--sm">Klein</button>
<a class="lg-btn" href="#schaltflaechen">Link als Schaltfläche</a>
</div>
Mit Symbol und als Umschalter
HTML-Code
<div class="lg-row">
<button type="button" class="lg-btn"><svg class="lg-icon" aria-hidden="true"><use href="#i-download"/></svg>Herunterladen</button>
<button type="button" class="lg-btn"><svg class="lg-icon" aria-hidden="true"><use href="#i-printer"/></svg>Drucken</button>
<button type="button" class="lg-btn" aria-pressed="false" id="umschalter">Umschalter: aus</button>
</div>
Eingabefelder
Felder sind vertieft, weiß und eckig. Die Beschriftung steht darüber, Hinweise darunter. Fehler nennen das Problem und stehen direkt am Feld.
HTML-Code
<div class="lg-grid lg-grid--2">
<div>
<div class="lg-field">
<label for="f-name">Benutzername</label>
<input class="lg-input" id="f-name" type="text" autocomplete="off" placeholder="z. B. max.muster">
<span class="lg-hint">Nur Buchstaben, Ziffern und Punkt.</span>
</div>
<div class="lg-field">
<label for="f-pass">Kennwort</label>
<input class="lg-input" id="f-pass" type="password" autocomplete="off" aria-invalid="true" aria-describedby="f-pass-e" value="123">
<span class="lg-error" id="f-pass-e">Das Kennwort ist zu kurz. Mindestens 8 Zeichen.</span>
</div>
<div class="lg-field">
<label for="f-dis">Gesperrt</label>
<input class="lg-input" id="f-dis" type="text" value="Nur lesbar" disabled>
</div>
</div>
<div>
<div class="lg-field">
<label for="f-sel">Dateityp</label>
<span class="lg-select-wrap">
<select class="lg-select" id="f-sel">
<option>Textdokument (*.txt)</option>
<option>Tabelle (*.csv)</option>
<option>Alle Dateien (*.*)</option>
</select>
</span>
</div>
<div class="lg-field">
<label for="f-text">Bemerkung</label>
<textarea class="lg-textarea" id="f-text" rows="3">Mehrzeiliger Text. Die Größe lässt sich nach unten ziehen.</textarea>
</div>
</div>
</div>
Kontrollkästchen und Optionsfelder
Ein Gruppenfeld (fieldset mit legend) fasst zusammengehörige Auswahl zusammen und gibt Screenreadern den Kontext.
HTML-Code
<div class="lg-grid lg-grid--2">
<fieldset class="lg-group">
<legend>Anzeige</legend>
<label class="lg-check"><input type="checkbox" checked><span>Dateiendungen anzeigen</span></label>
<label class="lg-check"><input type="checkbox"><span>Versteckte Dateien anzeigen</span></label>
<label class="lg-check"><input type="checkbox" disabled><span>Systemdateien (gesperrt)</span></label>
</fieldset>
<fieldset class="lg-group">
<legend>Sortierung</legend>
<label class="lg-check"><input type="radio" name="sort" checked><span>Nach Name</span></label>
<label class="lg-check"><input type="radio" name="sort"><span>Nach Größe</span></label>
<label class="lg-check"><input type="radio" name="sort"><span>Nach Datum</span></label>
</fieldset>
</div>
Reiter
Bedienbar mit Maus und Pfeiltasten. Ohne JavaScript sind alle Panels sichtbar, nichts geht verloren.
System: TRFX Legacy 1.0
Registriert für: Alle, die es brauchen
Verbunden. Geschwindigkeit: 100 MBit/s. Gesendet und empfangen: keine Beanstandungen.
Hier stehen die Einstellungen, die man selten braucht und trotzdem finden will.
HTML-Code
<div data-lg-tabs>
<ul class="lg-tablist" role="tablist" aria-label="Eigenschaften von Computer">
<li role="presentation"><button type="button" class="lg-tab" role="tab" id="tab-a" aria-controls="pan-a" aria-selected="true">Allgemein</button></li>
<li role="presentation"><button type="button" class="lg-tab" role="tab" id="tab-b" aria-controls="pan-b" aria-selected="false">Netzwerk</button></li>
<li role="presentation"><button type="button" class="lg-tab" role="tab" id="tab-c" aria-controls="pan-c" aria-selected="false">Erweitert</button></li>
</ul>
<div class="lg-tabpanel" role="tabpanel" id="pan-a" aria-labelledby="tab-a">
<p><strong>System:</strong> TRFX Legacy 1.0<br><strong>Registriert für:</strong> Alle, die es brauchen</p>
</div>
<div class="lg-tabpanel" role="tabpanel" id="pan-b" aria-labelledby="tab-b">
<p>Verbunden. Geschwindigkeit: 100 MBit/s. Gesendet und empfangen: keine Beanstandungen.</p>
</div>
<div class="lg-tabpanel" role="tabpanel" id="pan-c" aria-labelledby="tab-c">
<p>Hier stehen die Einstellungen, die man selten braucht und trotzdem finden will.</p>
</div>
</div>
Tabellen
Die Detailansicht des Explorers: Spaltenköpfe sehen aus wie Schaltflächen, Zahlen stehen rechts. Mit data-lg-selectable lässt sich eine Zeile auswählen (Klick, Enter oder Leertaste).
| Name | Typ | Größe | Geändert |
|---|---|---|---|
| Archiv | Ordner | – | 03.11.2026 |
| bericht.doc | Textdokument | 48 KB | 12.11.2026 |
| kosten.xls | Tabelle | 112 KB | 09.11.2026 |
| notizen.txt | Textdatei | 2 KB | 01.11.2026 |
HTML-Code
<div class="lg-scroll">
<table class="lg-table" data-lg-selectable>
<caption>Inhalt von C:\Dokumente</caption>
<thead><tr><th scope="col">Name</th><th scope="col">Typ</th><th scope="col" class="lg-num">Größe</th><th scope="col">Geändert</th></tr></thead>
<tbody>
<tr><td><svg class="lg-icon" aria-hidden="true"><use href="#i-folder"/></svg> Archiv</td><td>Ordner</td><td class="lg-num">–</td><td>03.11.2026</td></tr>
<tr><td><svg class="lg-icon" aria-hidden="true"><use href="#i-doc"/></svg> bericht.doc</td><td>Textdokument</td><td class="lg-num">48 KB</td><td>12.11.2026</td></tr>
<tr><td><svg class="lg-icon" aria-hidden="true"><use href="#i-doc"/></svg> kosten.xls</td><td>Tabelle</td><td class="lg-num">112 KB</td><td>09.11.2026</td></tr>
<tr><td><svg class="lg-icon" aria-hidden="true"><use href="#i-doc"/></svg> notizen.txt</td><td>Textdatei</td><td class="lg-num">2 KB</td><td>01.11.2026</td></tr>
</tbody>
</table>
</div>
Variante mit Zebrastreifen (lg-table--zebra) für dichte Daten
| Dienst | Status | Antwortzeit |
|---|---|---|
| Anmeldung | Läuft | 42 ms |
| Datenbank | Langsam | 380 ms |
| Ausgefallen | – | |
| Dateien | Läuft | 57 ms |
HTML-Code
<div class="lg-scroll">
<table class="lg-table lg-table--zebra">
<thead><tr><th scope="col">Dienst</th><th scope="col">Status</th><th scope="col" class="lg-num">Antwortzeit</th></tr></thead>
<tbody>
<tr><td>Anmeldung</td><td><span class="lg-led lg-led--ok">Läuft</span></td><td class="lg-num">42 ms</td></tr>
<tr><td>Datenbank</td><td><span class="lg-led lg-led--warn">Langsam</span></td><td class="lg-num">380 ms</td></tr>
<tr><td>Mail</td><td><span class="lg-led lg-led--err">Ausgefallen</span></td><td class="lg-num">–</td></tr>
<tr><td>Dateien</td><td><span class="lg-led lg-led--ok">Läuft</span></td><td class="lg-num">57 ms</td></tr>
</tbody>
</table>
</div>
Fortschritt
Echte <progress>-Elemente, damit Hilfstechniken den Wert kennen. Für unbekannte Dauer gibt es den wandernden Block. Er steht still, wenn das System „Bewegung reduzieren“ meldet.
0 % kopiert
Verbindung wird hergestellt …
HTML-Code
<div class="lg-stack" data-lg-progress-demo>
<div>
<p id="pr-label" data-lg-progress-label>0 % kopiert</p>
<progress class="lg-progress" value="0" max="100" aria-labelledby="pr-label">0 %</progress>
</div>
<button type="button" class="lg-btn">Kopieren starten</button>
<div>
<p id="pr-wait">Verbindung wird hergestellt …</p>
<div class="lg-marquee" role="progressbar" aria-labelledby="pr-wait"></div>
</div>
</div>
Meldungen
Zwei Formen: der Hinweisblock (lg-notice) steht im Text, das Meldungsfenster (lg-window mit lg-msg) steht für sich.
Hinweisblöcke
Information. Die Sicherung läuft jeden Tag um 02:00 Uhr.
Gespeichert. Ihre Änderungen wurden übernommen.
Achtung. Auf Laufwerk C: sind nur noch 2 % frei.
Fehler. Die Datei konnte nicht gelesen werden. Prüfen Sie, ob sie noch geöffnet ist.
HTML-Code
<div class="lg-notice">
<svg class="lg-icon lg-icon--lg" aria-hidden="true"><use href="#i-info"/></svg>
<div><p><strong>Information.</strong> Die Sicherung läuft jeden Tag um 02:00 Uhr.</p></div>
</div>
<div class="lg-notice lg-notice--ok">
<svg class="lg-icon lg-icon--lg" aria-hidden="true"><use href="#i-ok"/></svg>
<div><p><strong>Gespeichert.</strong> Ihre Änderungen wurden übernommen.</p></div>
</div>
<div class="lg-notice lg-notice--warn">
<svg class="lg-icon lg-icon--lg" aria-hidden="true"><use href="#i-warn"/></svg>
<div><p><strong>Achtung.</strong> Auf Laufwerk C: sind nur noch 2 % frei.</p></div>
</div>
<div class="lg-notice lg-notice--err" role="alert">
<svg class="lg-icon lg-icon--lg" aria-hidden="true"><use href="#i-error"/></svg>
<div><p><strong>Fehler.</strong> Die Datei konnte nicht gelesen werden. Prüfen Sie, ob sie noch geöffnet ist.</p></div>
</div>
Meldungsfenster
Der Vorgang wurde abgeschlossen.
Der Server antwortet nicht. Versuchen Sie es später noch einmal.
HTML-Code
<div class="lg-grid lg-grid--2">
<div class="lg-window lg-window--flat" role="group" aria-labelledby="mw-1">
<div class="lg-window__title"><span class="lg-window__text" id="mw-1">Hinweis</span><span class="lg-window__ctl" aria-hidden="true"><span></span><span></span><span></span></span></div>
<div class="lg-window__body">
<div class="lg-msg"><svg class="lg-icon lg-icon--lg lg-msg__icon" aria-hidden="true"><use href="#i-info"/></svg><div class="lg-msg__text"><p>Der Vorgang wurde abgeschlossen.</p></div></div>
</div>
<div class="lg-window__foot"><div class="lg-actions"><button type="button" class="lg-btn is-default">OK</button></div></div>
</div>
<div class="lg-window lg-window--flat" role="group" aria-labelledby="mw-2">
<div class="lg-window__title"><span class="lg-window__text" id="mw-2">Fehler</span><span class="lg-window__ctl" aria-hidden="true"><span></span><span></span><span></span></span></div>
<div class="lg-window__body">
<div class="lg-msg"><svg class="lg-icon lg-icon--lg lg-msg__icon" aria-hidden="true"><use href="#i-error"/></svg><div class="lg-msg__text"><p>Der Server antwortet nicht. Versuchen Sie es später noch einmal.</p></div></div>
</div>
<div class="lg-window__foot"><div class="lg-actions"><button type="button" class="lg-btn is-default">Wiederholen</button><button type="button" class="lg-btn">Abbrechen</button></div></div>
</div>
</div>
Dialoge
Basiert auf dem nativen <dialog>. Der Browser sperrt den Rest der Seite, hält den Fokus im Dialog und schließt mit Esc.
Noch keine Antwort.
HTML-Code
<div class="lg-row">
<button type="button" class="lg-btn" data-lg-open="dlg-loeschen">Frage stellen</button>
<button type="button" class="lg-btn" data-lg-open="dlg-anmelden">Anmelden …</button>
</div>
<p class="lg-small lg-muted" id="dlg-loeschen-result" aria-live="polite">Noch keine Antwort.</p>
<dialog class="lg-dialog lg-window" id="dlg-loeschen" aria-labelledby="dlg-loeschen-t">
<div class="lg-window__title"><svg class="lg-icon" aria-hidden="true"><use href="#i-question"/></svg><span class="lg-window__text" id="dlg-loeschen-t">Löschen bestätigen</span><span class="lg-window__ctl" aria-hidden="true"><span></span><span></span><span></span></span></div>
<div class="lg-window__body">
<div class="lg-msg"><svg class="lg-icon lg-icon--lg lg-msg__icon" aria-hidden="true"><use href="#i-question"/></svg><div class="lg-msg__text"><p>Soll „bericht.doc“ in den Papierkorb verschoben werden?</p></div></div>
</div>
<div class="lg-window__foot"><div class="lg-actions">
<button type="button" class="lg-btn is-default" data-lg-close="Ja" autofocus>Ja</button>
<button type="button" class="lg-btn" data-lg-close="Nein">Nein</button>
<button type="button" class="lg-btn" data-lg-close="Abbrechen">Abbrechen</button>
</div></div>
</dialog>
<dialog class="lg-dialog lg-window" id="dlg-anmelden" aria-labelledby="dlg-anmelden-t">
<div class="lg-window__title"><svg class="lg-icon" aria-hidden="true"><use href="#i-lock"/></svg><span class="lg-window__text" id="dlg-anmelden-t">Anmelden</span><span class="lg-window__ctl" aria-hidden="true"><span></span><span></span><span></span></span></div>
<form method="dialog" class="lg-window__body">
<div class="lg-msg">
<svg class="lg-icon lg-icon--xl lg-msg__icon" aria-hidden="true"><use href="#i-key"/></svg>
<div class="lg-msg__text">
<p>Geben Sie Benutzername und Kennwort ein. Dies ist nur ein Beispiel, nichts wird gesendet.</p>
<div class="lg-field"><label for="dl-user">Benutzername</label><input class="lg-input" id="dl-user" type="text" autocomplete="off"></div>
<div class="lg-field"><label for="dl-pass">Kennwort</label><input class="lg-input" id="dl-pass" type="password" autocomplete="off"></div>
<div class="lg-actions"><button class="lg-btn is-default" value="Anmelden">Anmelden</button><button class="lg-btn" value="Abbrechen" formnovalidate>Abbrechen</button></div>
</div>
</div>
</form>
</dialog>
Symbolleiste
HTML-Code
<div class="lg-toolbar" role="toolbar" aria-label="Beispielwerkzeuge">
<button type="button" class="lg-btn lg-btn--tool"><svg class="lg-icon" aria-hidden="true"><use href="#i-folder"/></svg>Öffnen</button>
<button type="button" class="lg-btn lg-btn--tool"><svg class="lg-icon" aria-hidden="true"><use href="#i-printer"/></svg>Drucken</button>
<span class="lg-sep" aria-hidden="true"></span>
<button type="button" class="lg-btn lg-btn--tool"><svg class="lg-icon" aria-hidden="true"><use href="#i-search"/></svg>Suchen</button>
<button type="button" class="lg-btn lg-btn--tool"><svg class="lg-icon" aria-hidden="true"><use href="#i-gear"/></svg>Optionen</button>
</div>
Baum und Liste
Ordner
Arbeitsplatz
Dokumente
- bericht.doc
- kosten.xls
Bilder
- urlaub.bmp
Listenfeld
HTML-Code
<div class="lg-grid lg-grid--2">
<div>
<p class="lg-label" id="tree-l">Ordner</p>
<div class="lg-list" aria-labelledby="tree-l">
<ul class="lg-tree">
<li><details open><summary><svg class="lg-icon" aria-hidden="true"><use href="#i-computer"/></svg>Arbeitsplatz</summary>
<ul>
<li><details open><summary><svg class="lg-icon" aria-hidden="true"><use href="#i-folder"/></svg>Dokumente</summary>
<ul>
<li><span class="lg-leaf" aria-current="true"><svg class="lg-icon" aria-hidden="true"><use href="#i-doc"/></svg>bericht.doc</span></li>
<li><span class="lg-leaf"><svg class="lg-icon" aria-hidden="true"><use href="#i-doc"/></svg>kosten.xls</span></li>
</ul></details></li>
<li><details><summary><svg class="lg-icon" aria-hidden="true"><use href="#i-folder"/></svg>Bilder</summary>
<ul><li><span class="lg-leaf"><svg class="lg-icon" aria-hidden="true"><use href="#i-doc"/></svg>urlaub.bmp</span></li></ul></details></li>
</ul></details></li>
</ul>
</div>
</div>
<div>
<p class="lg-label" id="list-l">Listenfeld</p>
<ul class="lg-list" aria-labelledby="list-l">
<li><button type="button"><svg class="lg-icon" aria-hidden="true"><use href="#i-doc"/></svg>Eintrag eins</button></li>
<li><button type="button" aria-selected="true"><svg class="lg-icon" aria-hidden="true"><use href="#i-doc"/></svg>Eintrag zwei (ausgewählt)</button></li>
<li><button type="button"><svg class="lg-icon" aria-hidden="true"><use href="#i-doc"/></svg>Eintrag drei</button></li>
</ul>
</div>
</div>
Kurzinfo und Sprechblase
Die gelbe Kurzinfo erscheint bei Hover und Fokus über data-tip. Die Sprechblase ist für Hinweise, die stehen bleiben.
HTML-Code
<div class="demo-tall">
<p><button type="button" class="lg-btn" data-tip="Speichert das Dokument unter dem aktuellen Namen.">Mauszeiger darauf halten</button></p>
<div class="lg-balloon" role="note">
<svg class="lg-icon lg-icon--lg" aria-hidden="true"><use href="#i-info"/></svg>
<div><strong>Neue Software wurde installiert.</strong> Ein Neustart kann erforderlich sein.</div>
</div>
</div>
Statusanzeige und Statusleiste
- In Ordnung
- Warnung
- Fehler
- Information
- Unbekannt
HTML-Code
<ul class="lg-row">
<li class="lg-led lg-led--ok">In Ordnung</li>
<li class="lg-led lg-led--warn">Warnung</li>
<li class="lg-led lg-led--err">Fehler</li>
<li class="lg-led lg-led--info">Information</li>
<li class="lg-led">Unbekannt</li>
</ul>
<ul class="lg-statusbar">
<li>4 Objekte</li>
<li>162 KB</li>
<li>Arbeitsplatz</li>
</ul>
Seitenwechsel
HTML-Code
<nav aria-label="Seiten">
<ul class="lg-pager">
<li><span class="is-disabled">< Zurück</span></li>
<li><a href="#seitenwechsel" aria-current="page">1</a></li>
<li><a href="#seitenwechsel">2</a></li>
<li><a href="#seitenwechsel">3</a></li>
<li><a href="#seitenwechsel">Weiter ></a></li>
</ul>
</nav>
Fenster
Der Grundbaustein für alles, was zusammengehört. Die Titelleiste trägt einen Namen, optional ein Symbol. Die drei Knöpfe rechts sind Dekoration und für Hilfstechniken verborgen. Aktiv ist die normale Titelleiste, lg-window--quiet ist die inaktive.
Die Titelleiste ist farbig.
Die Titelleiste ist gedämpft.
HTML-Code
<div class="lg-grid lg-grid--2">
<div class="lg-window" role="group" aria-labelledby="fw-1">
<div class="lg-window__title"><svg class="lg-icon" aria-hidden="true"><use href="#i-folder"/></svg><span class="lg-window__text" id="fw-1">Aktives Fenster</span><span class="lg-window__ctl" aria-hidden="true"><span></span><span></span><span></span></span></div>
<div class="lg-window__body"><p>Die Titelleiste ist farbig.</p></div>
</div>
<div class="lg-window lg-window--quiet" role="group" aria-labelledby="fw-2">
<div class="lg-window__title"><svg class="lg-icon" aria-hidden="true"><use href="#i-folder"/></svg><span class="lg-window__text" id="fw-2">Inaktives Fenster</span><span class="lg-window__ctl" aria-hidden="true"><span></span><span></span><span></span></span></div>
<div class="lg-window__body"><p>Die Titelleiste ist gedämpft.</p></div>
</div>
</div>