Erste Schritte
Für Projekte im ITZBund gibt es ein vorgegebenes Starter-Repository, welches über die internen Kommunikationswege angefragt werden kann.
KoliBri ist eine Open-Source-Bibliothek für barrierefreie Web Components, entwickelt von der Bundesregierung. Die Komponenten sind framework-unabhängig, nach BITV 2.0 und WCAG 2.2 konform und können in nahezu jedem webbasierten Projekt verwendet werden. Diese Seite gibt einen kompakten Überblick, wie Sie starten.
⚠️ Voraussetzungen
- Ein moderner Browser (Chrome, Firefox, Edge, Safari ≥ 16.4).
- Für lokale Entwicklung: Node.js (für
npx -y serve).
Statisches Beispiel (2 Schritte)
Der schnellste Weg, KoliBri auszuprobieren, ist ein statisches HTML-File:
Schritt 1: Erstellen Sie eine index.html-Datei:
<!DOCTYPE html>
<html>
<head>
<title>Hello KoliBri!</title>
</head>
<body>
<h1>Hello KoliBri!</h1>
<kol-button _label="Klick mich" onclick="handleClick()"></kol-button>
<script type="module">
import { register } from 'https://unpkg.com/@public-ui/components/dist/index.js';
import { defineCustomElements } from 'https://unpkg.com/@public-ui/components/loader/index.mjs';
import { DEFAULT } from 'https://unpkg.com/@public-ui/theme-default/dist/index.mjs';
await register(DEFAULT, defineCustomElements);
function handleClick() {
alert("Button clicked!");
}
window.handleClick = handleClick;
</script>
</body>
</html>
Schritt 2: Starten Sie einen lokalen Server:
npx -y serve
Dann öffnen Sie http://localhost:3000 in Ihrem Browser.
💡 Hinweis: KoliBri verwendet
_-präfixierte Attribute (z. B._label) für Komponenten-Properties, um Konflikte mit Standard-HTML-Attributen zu vermeiden.
Projekt aus Templates erstellen
Für Framework-Projekte können Sie vorgefertigte Templates verwenden:
npx degit public-ui/templates/csr/react-vite my-kolibri-app
cd my-kolibri-app
npm i
npm start
Verfügbare Templates finden Sie im
Theme registrieren
KoliBri liefert die Komponenten ohne festes Styling aus. Das visuelle Erscheinungsbild wird über ein Theme bestimmt, das bei der Registrierung übergeben wird. Das Paket @public-ui/themes enthält mehrere vorgefertigte Themes:
| Theme | Export | Beschreibung |
|---|---|---|
| Default | DEFAULT | Das Standard-Theme von KoliBri |
| BWSt | BWSt | Wasserstraßen- und Schifffahrtsverwaltung des Bundes; |
| Desy | DesyV11 | Zoll Design-System (Generalzolldirektion); |
| ECL (EC) | ECL_EC | European Commission Design-System; |
| ECL (EU) | ECL_EU | European Union Design-System; |
| KERN | KERN_V2 | KERN-UX Standard Design-System; |
Theme registrieren
Das Theme wird beim Aufruf von register() als erster Parameter übergeben.
import { register } from '@public-ui/components@4.2.1';
import { defineCustomElements } from '@public-ui/components@4.2.1/loader';
import { DEFAULT } from '@public-ui/theme-default';
// Theme registrieren
await register(DEFAULT, defineCustomElements);
💡 Tipp: Sie können das Theme einfach ändern, indem Sie das entsprechende Theme-Paket importieren, z. B.:
import { BWSt } from '@public-ui/theme-bwst';register(BWSt, defineCustomElements).catch(console.warn);Verfügbare Themes:
@public-ui/theme-default,@public-ui/theme-bwst,@public-ui/theme-desy,@public-ui/theme-ecl-ec,@public-ui/theme-ecl-eu,@public-ui/theme-kern
Eigenes Theme erstellen
Wenn keines der mitgelieferten Themes zu Ihrem Corporate Design passt, können Sie ein eigenes Theme erstellen. Das Vorgehen orientiert sich am bestehenden Theme-Aufbau und wird vollständig im Code gepflegt.
KoliBri mit KI-Assistenten nutzen (MCP)
KoliBri bietet einen Model Context Protocol (MCP) Server, mit dem Sie die Dokumentation und Komponenten direkt in Ihrer KI-Umgebung (z. B. Cursor, Claude Code, oder VS Code mit MCP-Erweiterungen) nutzen können.
Vorteile:
- Direkter Zugriff auf die KoliBri-Dokumentation und API.
- Kontextbewusste Hilfe für Komponenten, Properties und Beispiele.
- Integriert in Ihre Entwicklungsumgebung (z. B. Autocompletion, Tool-Tips).
Beispiel: Fragen Sie Ihre KI:
"Wie verwende ich den kol-button mit einem Custom-Theme?" → Die KI nutzt den MCP-Server, um aktuelle und genaue Antworten aus der KoliBri-Dokumentation zu liefern.
Häufige Fragen
Komponenten werden nicht angezeigt?
Stellen Sie sicher, dass register() vor dem Rendern aufgerufen wurde und das Promise aufgelöst ist.
// ✅ Richtig
await register(DEFAULT, defineCustomElements);
// Jetzt Komponenten rendern
// ❌ Falsch
register(DEFAULT, defineCustomElements); // Promise nicht abgewartet
// App wird sofort gerendert - Komponenten fehlen
Welches Theme soll ich verwenden?
DEFAULT– Neutrales Standard-Theme (empfohlen für den Start)ECL_EC/ECL_EU– European Commission / European Union Design-SystemKERN_V2– KERN-UX Standard Design-System- Eine Übersicht aller Themes finden Sie oben im Abschnitt Themes.
- Eigenes Theme erstellen
TypeScript-Fehler bei Properties?
Prüfen Sie:
"moduleResolution": "Node"intsconfig.json- Framework-Adapter installiert (z.B.
@public-ui/react-v19) - Komponenten aus dem Adapter importieren (nicht aus
@public-ui/components)
Nächste Schritte: Komponenten
Sobald Ihr Projekt eingerichtet und ein Theme registriert ist, können Sie die KoliBri-Komponenten verwenden. Eine vollständige Übersicht aller verfügbaren Komponenten — mit Beispielen, Eigenschaften und Events — finden Sie in der