Skip to content

Tabs

Überblick

mmm-tabs gliedert zusammengehörige Inhalte in Ansichten, von denen jeweils eine sichtbar ist. Die API folgt dem Tab-Group-Muster von Material: mmm-tabs verwaltet Auswahl, Fokus und Overflow; jedes mmm-tab liefert Label, Zustand und Panel-Inhalt.

Subkomponenten

  • mmm-tabs: Tablist, Auswahl, Tastatursteuerung, Panels und Overflow
  • mmm-tab: deklaratives Label mit zugehörigem Inhalt

Verwendung

<mmm-tabs
ariaLabel="Depotbereiche"
[(selectedIndex)]="selectedIndex"
(selectionChange)="onSelectionChange($event)"
>
<mmm-tab label="Übersicht"> Zusammenfassung des Depots </mmm-tab>
<mmm-tab label="Positionen" [notification]="true"> Alle Positionen </mmm-tab>
<mmm-tab label="Archiv" [disabled]="true"> Archivierte Vorgänge </mmm-tab>
</mmm-tabs>

Beide Komponenten müssen in einer Standalone-Komponente importiert werden:

imports: [Tabs, Tab];

Inputs

mmm-tabs

InputTypStandardBeschreibung
selectedIndexnumber0Index des ausgewählten Tabs; unterstützt Two-way Binding
alignment'start' | 'center' | 'end' | 'stretch''start'Ausrichtung der Tab-Labels
ariaLabelstring'Inhaltsbereiche'Zugänglicher Name der Tablist
preserveContentbooleanfalseBehält inaktive Panels im DOM
stickybooleanfalseFixiert die Tab-Leiste beim Scrollen am konfigurierten oberen Abstand

mmm-tab

InputTypStandardBeschreibung
labelstringSichtbares Tab-Label
ariaLabelstring | nullnullOptionaler abweichender zugänglicher Name
disabledbooleanfalseDeaktiviert den Tab
notificationbooleanfalseZeigt den Benachrichtigungspunkt
notificationLabelstring'Neue Benachrichtigung'Zugänglicher Text für den Benachrichtigungsstatus

Outputs

OutputTypBeschreibung
selectedIndexChangeEventEmitter<number>Ermöglicht [(selectedIndex)] und meldet eine Auswahl
selectionChangeEventEmitter<MmmTabSelectionChange>Meldet neuen/vorherigen Index und den gewählten Tab
focusChangeEventEmitter<MmmTabFocusChange>Meldet Fokusänderungen durch die Tastatur

Tastaturbedienung

TasteVerhalten
Pfeil links / Pfeil rechtsVerschiebt den Fokus zum nächsten aktivierten Tab
Pos1 / EndeFokussiert den ersten bzw. letzten aktivierten Tab
Enter / LeertasteWählt den fokussierten Tab aus

Die Komponente verwendet das ARIA-Tabs-Muster mit tablist, tab und tabpanel. Deaktivierte Tabs werden bei der Tastaturnavigation übersprungen. Fokus und Auswahl bleiben getrennt, bis die Auswahl mit Enter oder Leertaste bestätigt wird.

Overflow und Sticky Header

Passt die Liste nicht in die verfügbare Breite, blendet mmm-tabs automatisch seitliche Navigationsbuttons ein. Der aktive Tab wird nach einer Auswahl in den sichtbaren Bereich gescrollt.

Für einen Sticky Header:

<mmm-tabs [sticky]="true" style="--mmm-tabs-sticky-top: 4rem"> ... </mmm-tabs>

SCSS-Variablen

  • --mmm-tabs-color
  • --mmm-tabs-active-color
  • --mmm-tabs-disabled-color
  • --mmm-tabs-divider-color
  • --mmm-tabs-hover-background
  • --mmm-tabs-pressed-background
  • --mmm-tabs-focus-color
  • --mmm-tabs-background
  • --mmm-tabs-height
  • --mmm-tabs-padding-inline
  • --mmm-tabs-gap
  • --mmm-tabs-indicator-height
  • --mmm-tabs-notification-size
  • --mmm-tabs-panel-padding-block
  • --mmm-tabs-sticky-top
  • --mmm-tabs-pagination-width

Hinweise

  • Mit preserveContent="false" wird nur das aktive Panel gerendert. Das reduziert DOM-Aufwand bei komplexen Inhalten.
  • Nutze preserveContent="true", wenn der interne Zustand inaktiver Panels erhalten bleiben muss, etwa bei Medien oder eingebetteten Formularen.
  • Tabs wechseln Ansichten innerhalb eines Kontexts. Für echte Seitennavigation sollten Links bzw. die Router-Navigation verwendet werden.

Beispiele

Tabs

Standardzustände, Notification Badge und automatisch paginierter Overflow.

Standard

Zusammenfassung des Depots.

Letzte Auswahl: Übersicht

Overflow

MDAX-Inhalt