Tabelle

Datentabelle aus columns/rows-Props — gestreift, dicht, mobil horizontal scrollbar

Components v1.1.0 App UI WebsiteAppDesktopE-Mail component.table

Beispiele

Auftragsliste (gestreift, fehlender Wert → —)
AuftragKundeStatusSumme
A-4711Selig, Davidopen1.240,00 €
A-4712Muster GmbHversendet89,90 €
A-4713Beispiel AGbezahlt12.500,00 €
A-4714Test KG430,10 €
Dicht (Desktop-Liste)
AuftragKundeStatusSumme
A-4711Selig, Davidopen1.240,00 €
A-4712Muster GmbHversendet89,90 €
A-4713Beispiel AGbezahlt12.500,00 €
A-4714Test KG430,10 €
XSS in Zelle → escaped
Inhalt
<script>alert(1)</script>

Eigenschaften

PropTypDefaultBuilder-Label
columns *arraySpalten
rows *arrayZeilen
stripedbooleantrueGestreift
densebooleanfalseDicht (Desktop-Listen)
sortablebooleanfalseSpalten sortierbar (Klick auf Kopf)
selectablebooleanfalseZeilen auswählbar (Checkboxen)

* Pflicht-Prop

Events & Slots

Events: ⚡ sort⚡ selection — im Surface per on: {<event>: {action, params}} verdrahtbar.

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.controlsize.1size.10size.2size.3size.4text.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-Raster section.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; Events selection {count} und sort.
  • 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
  }
}