Sie befinden sich hier: start » de » Interne Dokumentation » DokuWiki-Erweiterungen (WvdS) » FluentUI (Design-System-Bibliothek) » FluentUI: Komponenten-Referenzen » FluentUI: NavBar — Demo-Übersicht » NavBar: Grundlagen

NavBar: Grundlagen

Zurück: Demo-Übersicht


1. Übersicht und Zweck

Status: [Live]. Baut auf demselben Navigations-Grundsatz wie tree() auf (Links, kein clientseitiger Auswahlzustand).

2. Voraussetzungen

Keine über den bestehenden Helper-API-Kontrakt hinaus.

3. Konzepte

Flache Gruppen statt Rekursion: NavBar-Gruppen sind flach (Einträge haben keine eigenen Kinder) — im Gegensatz zu tree()-Knoten, die rekursiv verschachtelbar sind. Die Grundtechnik (Gruppierung ohne JavaScript über <details>) ist identisch zu propertyGrid()- Sektionen und tree()-Knoten mit Kindern — ein wiederkehrendes Muster in der ganzen Bibliothek.

4. Erste Schritte

echo $widgets->navBar([
    [
        'label' => 'Favoriten',
        'items' => [
            ['label' => 'Aufgaben', 'href' => wl($ID, ['ns' => 'aufgaben']), 'icon' => $iconStar],
            ['label' => 'Team',     'href' => wl($ID, ['ns' => 'team'])],
        ],
    ],
], ['persistKey' => 'sidebar:navbar']);

5. Verwendung

Der gruppenbasierte Sidebar-Inhaltstyp (s. Demo-Übersicht) — Alternative zu tree() für Sidebar-Inhalte ohne natürliche Hierarchie.

6. API-Referenz

navBar(array $groups, array $opts = []): string in helper_plugin_wkfluentui_widgets. Leerer String bei leerem $groups.

7. Parameter, Optionen und Zustände

Ebene Schlüssel Typ Bedeutung
Gruppe label string Gruppentitel (halbfett, Fieldset-Legenden-Optik wie bei propertyGrid() Sektionen)
Gruppe items array Liste der Gruppen-Einträge
Gruppe collapsed bool initial zugeklappt (analog zur Sektions-Kollaps-Persistenz von propertyGrid())
Eintrag label string Linktext
Eintrag href string Ziel-URL
Eintrag icon string optionales, vertrauenswürdiges Icon-HTML
Eintrag badge int/string optionale Zähler-/Status-Markierung — rendert über countBadge() (eine Badge-Quelle in der Bibliothek)
Eintrag badgeLabel string Screenreader-Text zum Badge (z. B. „3 ungelesen„) — eine nackte Zahl würde sonst als Teil des Linktexts vorgelesen
Eintrag active bool markiert den aktuellen Eintrag (Klasse –active + aria-current="page")
$opts persistKey string Offen-Zustand der Gruppen überlebt Reloads (generische details-Persistenz in scripts/propertygrid.js, localStorage wk-details:<persistKey>)

Erzeugtes Markup: <nav class="wk-navbar"> → je Gruppe eine <details open>-Sektion (Kollaps ohne JavaScript), Einträge als <ul><li><a> innerhalb der Gruppe; jeder Link trägt aria-label und title mit seinem label (überlebt den Icon-Kollaps der Sidebar).

8. Vollständige Beispiele

echo $widgets->navBar([
    [
        'label' => 'Favoriten',
        'items' => [
            ['label' => 'Aufgaben', 'href' => wl($ID, ['ns' => 'aufgaben']), 'icon' => $iconStar],
            ['label' => 'Team',     'href' => wl($ID, ['ns' => 'team'])],
        ],
    ],
    [
        'label' => 'Module',
        'items' => [
            ['label' => 'Wiki', 'href' => wl($ID, ['ns' => 'wiki']), 'badge' => 3],
            ['label' => 'Blog', 'href' => wl($ID, ['ns' => 'blog'])],
        ],
    ],
], ['persistKey' => 'sidebar:navbar']);

9. Einschränkungen und Randfälle

Keine Rekursion (Abschnitt 3) — Einträge mit eigenen Kindern gehören stattdessen zu TreeView.

10. Accessibility und Kompatibilität

Vollständiger Überblick: Accessibility.

11. Troubleshooting

Entfällt.

12. Verwandte Themen

de/wiki/dwe/wkfluentui/component/navbar/basics.txt · Zuletzt geändert: von 0.0.0.0