Tabelle
Datentabelle aus columns/rows-Props — gestreift, dicht, mobil horizontal scrollbar, Sticky-Kopf + Spalten-Pinning
Nutzt: ui.icon
Beispiele
Auftragsliste (gestreift, fehlender Wert → —)
| Auftrag | Kunde | Status | Summe |
|---|---|---|---|
| A-4711 | Selig, David | open | 1.240,00 € |
| A-4712 | Muster GmbH | versendet | 89,90 € |
| A-4713 | Beispiel AG | bezahlt | 12.500,00 € |
| A-4714 | Test KG | — | 430,10 € |
Dicht (Desktop-Liste)
| Auftrag | Kunde | Status | Summe |
|---|---|---|---|
| A-4711 | Selig, David | open | 1.240,00 € |
| A-4712 | Muster GmbH | versendet | 89,90 € |
| A-4713 | Beispiel AG | bezahlt | 12.500,00 € |
| A-4714 | Test KG | — | 430,10 € |
Sticky-Kopf + Pinning (Auftrag links, Aktion rechts fixiert — horizontal + vertikal scrollen)
| Auftrag | Kunde | Ansprechpartner | Straße | Ort | Status | Summe | Aktion |
|---|---|---|---|---|---|---|---|
A-4711 | Selig, David | Kontakt 1 | Musterstraße 1 | 97110 Musterstadt | offen | 240,00 € | Öffnen |
A-4712 | Muster GmbH | Kontakt 2 | Musterstraße 2 | 97111 Musterstadt | versendet | 555,00 € | Öffnen |
A-4713 | Beispiel AG | Kontakt 3 | Musterstraße 3 | 97112 Musterstadt | bezahlt | 870,00 € | Öffnen |
A-4714 | Test KG | Kontakt 4 | Musterstraße 4 | 97113 Musterstadt | offen | 1.185,00 € | Öffnen |
A-4715 | Nord Handel | Kontakt 5 | Musterstraße 5 | 97114 Musterstadt | versendet | 1.500,00 € | Öffnen |
A-4716 | Süd Logistik | Kontakt 6 | Musterstraße 6 | 97115 Musterstadt | bezahlt | 1.815,00 € | Öffnen |
A-4717 | West Metall | Kontakt 7 | Musterstraße 7 | 97116 Musterstadt | offen | 2.130,00 € | Öffnen |
A-4718 | Ost Papier | Kontakt 8 | Musterstraße 8 | 97117 Musterstadt | versendet | 2.445,00 € | Öffnen |
A-4719 | Berg & Tal | Kontakt 9 | Musterstraße 9 | 97118 Musterstadt | bezahlt | 2.760,00 € | Öffnen |
A-4720 | Fluss OHG | Kontakt 10 | Musterstraße 10 | 97119 Musterstadt | offen | 3.075,00 € | Öffnen |
A-4721 | Hafen eG | Kontakt 11 | Musterstraße 11 | 97110 Musterstadt | versendet | 3.390,00 € | Öffnen |
A-4722 | Wald KG | Kontakt 12 | Musterstraße 12 | 97111 Musterstadt | bezahlt | 3.705,00 € | Öffnen |
Pinning + Auswahl (Auswahl-Spalte pinnt mit, Datenspalte rückt nach)
| Auftrag | Kunde | Ansprechpartner | Straße | Ort | Status | Summe | Aktion | |
|---|---|---|---|---|---|---|---|---|
A-4711 | Selig, David | Kontakt 1 | Musterstraße 1 | 97110 Musterstadt | offen | 240,00 € | Öffnen | |
A-4712 | Muster GmbH | Kontakt 2 | Musterstraße 2 | 97111 Musterstadt | versendet | 555,00 € | Öffnen | |
A-4713 | Beispiel AG | Kontakt 3 | Musterstraße 3 | 97112 Musterstadt | bezahlt | 870,00 € | Öffnen | |
A-4714 | Test KG | Kontakt 4 | Musterstraße 4 | 97113 Musterstadt | offen | 1.185,00 € | Öffnen | |
A-4715 | Nord Handel | Kontakt 5 | Musterstraße 5 | 97114 Musterstadt | versendet | 1.500,00 € | Öffnen |
XSS in Zelle → escaped
| Inhalt |
|---|
| <script>alert(1)</script> |
Eigenschaften
| Prop | Typ | Default | Builder-Label |
|---|---|---|---|
| columns * | array | — | Spalten |
| rows * | array | — | Zeilen |
| striped | boolean | true | Gestreift |
| dense | boolean | false | Dicht (Desktop-Listen) |
| sortable | boolean | false | Spalten sortierbar (Klick auf Kopf) |
| selectable | boolean | false | Zeilen auswählbar (Checkboxen) |
| stickyHeader | boolean | false | Kopfzeile fixieren (vertikaler Scroll-Container) |
* Pflicht-Prop
Events & Slots
Events:
⚡ sort⚡ selection — im Surface per on: {<event>: {action, params}} verdrahtbar.
Stellschrauben (Komponenten-Tokens)
Ebene 3 — aus dem CSS generiert (Registry). Umverdrahtbar per Hüllen-Komposition, ohne Markup-Eingriff; künftige Regler-Quelle des Component Builders.
| Token | Default |
|---|---|
--table-border | var(--color-border-subtle) |
--table-stripe | var(--color-surface-sunken) |
--table-padding-y | var(--size-2) |
--table-max-height | 28rem |
--table-select-width | var(--size-10) |
Genutzte Design-Tokens
border.emphasisborder.hairlinecolor.action.primarycolor.border.defaultcolor.border.subtlecolor.status.info-surfacecolor.surface.defaultcolor.surface.sunkencolor.text.defaultcolor.text.disabledcolor.text.mutedfont.family.defaultradius.controlradius.smsize.1size.10size.2size.3size.4size.6text.smtext.xstracking.wideweight.semibold
LLM-Notizen
component.table
Daten-Tabelle. columns = [{key, label, align?: start|end}], rows = Objekte mit passenden Keys (nur Skalare — alles wird escaped).
Wann nutzen
- Listen mit gleichförmigen Datensätzen (Aufträge, Kunden). Für Kennzahlen-Kacheln
component.metric-card, für Produkt-Rastersection.product-grid.
Wichtige Props
sortable: Klick auf Spaltenkopf sortiert auf/ab (numerik-bewusst inkl. deutscher Zahlformate,aria-sort).selectable: Checkbox-Spalte + Alle-Checkbox, gewählte Zeilen getönt; Eventsselection{count} undsort.stickyHeader: Kopfzeile bleibt beim vertikalen Scrollen stehen; deckelt die Höhe auf--table-max-height(Stellschraube, Default 28rem).- Spalten-
pin:start(links fixiert) oderend(rechts fixiert) beim horizontalen Scrollen — typisch Kennung links, Aktion rechts. EINE Spalte pro Seite (mehrere überlagern sich). Mitselectablepinnt die Auswahl-Spalte automatisch mit. striped,dense.
Beispiel-Node
{
"definition": "component.table",
"props": {
"columns": [{"key": "nr", "label": "Auftrag"}, {"key": "summe", "label": "Summe", "align": "end"}],
"rows": [{"nr": "#4711", "summe": "1.240,00 €"}],
"sortable": true, "selectable": true, "striped": true
}
}