Toolbar: Ribbon-Gruppen/Galerie
Zurück: Demo-Übersicht
1. Übersicht und Zweck
Status: [Live] — baut auf dem [Live]-group-Schlüssel
von toolbar() auf. Referenz: DevExpress Ribbon „Office 2019/Online„-Optik
(betitelte Gruppen mit Trennlinie, große „Galerie“-Buttons statt einheitlich
kleiner Icons).
2. Voraussetzungen
Toolbar-Basiskontrakt
bereits verstanden (group-Schlüssel).
3. Konzepte
Über die rein visuelle group-Trennung hinaus liefert der Ribbon-Modus:
- Gruppentitel unter der Gruppe (kleine, gedämpfte Beschriftung — „Format„, „Einfügen“ …,
.wk-toolbar__group-label) statt reiner visueller Trennung; die betitelte Gruppe trägtrole="group"+aria-labelledbyauf den Titel. - Größenvarianz je Item: ein „Galerie„-Item (
size => 'large', Icon über Label, z. B. „Neue Tabelle“) neben mehreren kleinen Items derselben Gruppe.
4. Erste Schritte
echo $widgets->toolbar([ ['label' => 'Neue Tabelle', 'element' => $neueTabelleButton, 'group' => 'entwurf', 'groupLabel' => 'Entwurf', 'size' => 'large'], ['label' => 'Spalte', 'element' => $spalteButton, 'group' => 'entwurf'], ], ['ribbonStyle' => true]);
5. Verwendung
Relevant für Toolbars mit vielen, kategorisierten Aktionen (z. B. Table-Designer mit „Entwurf„/„Ansicht“-Gruppen) — für einfache Toolbars genügt der bestehende Basiskontrakt.
6. API-Referenz
Erweiterung von $items: 'groupLabel' => string am ersten
Item einer neuen Gruppe (statt eines separaten Gruppen-Arrays — konsistent
mit der bestehenden flachen $items-Liste, kein Strukturbruch);
'size' => 'small'|'large' je Item (Default small).
Aufrufe ohne die neuen Schlüssel rendern byte-identisch zur Vorversion.
7. Parameter, Optionen und Zustände
| Schlüssel | Typ | Bedeutung |
|---|---|---|
$items[]['groupLabel'] | string | Gruppentitel, nur am ersten Item einer Gruppe wirksam |
$items[]['size'] | 'small'|'large' | Item-Größe, Default small |
$opts['ribbonStyle'] | bool | schaltet die Ribbon-Online-Optik ein |
8. Vollständige Beispiele
echo $widgets->toolbar([ ['label' => 'Neue Tabelle', 'element' => $neueTabelleButton, 'group' => 'entwurf', 'groupLabel' => 'Entwurf', 'size' => 'large'], ['label' => 'Spalte', 'element' => $spalteButton, 'group' => 'entwurf'], ['label' => 'Index', 'element' => $indexButton, 'group' => 'entwurf'], ], ['ariaLabel' => 'Table-Designer-Aktionen', 'ribbonStyle' => true]);
9. Einschränkungen und Randfälle
groupLabelauf einem Folge-Item derselben Gruppe wird ignoriert — nur das erste Item einer Gruppe setzt den Titel.
10. Accessibility und Kompatibilität
Betitelte Gruppen sind über role="group" + aria-labelledby
an ihren sichtbaren Titel gekoppelt — bewusst ein
autoritativer Gruppenname am Container statt aria-describedby an jedem
Item (das hätte eine Injektion in Aufrufer-gebautes Element-HTML verlangt);
Details: Toolbar →
Accessibility.
11. Troubleshooting
Symptom: Gruppentitel erscheint nicht.
Ursache: groupLabel steht nicht am ersten Item der Gruppe.
Lösung: Schlüssel an das erste Item der Gruppe verschieben.
12. Verwandte Themen
- Demo-Übersicht — alle Kategorien
- Toolbar: Grundlagen — geerbter
group-Kontrakt