Artikel teilen

Den Odell, zuletzt Frontend-Entwickler bei Canva, hat zehn verbreitete Designsysteme an einer Länderauswahl und an 100 Checkboxen gemessen. Ionics Auswahlliste brauchte 1.266 Millisekunden zum Öffnen, Fluent kam mit 61 aus. Nur das Team hinter einer der zehn Bibliotheken lässt bei jeder Codeänderung automatisch einen Performance-Test laufen.

Ein Klick · kostenlosDr. Web bei Google bevorzugenMarkieren Sie drweb.de als bevorzugte Quelle. Dann sehen Sie unsere Artikel öfter unter den Top-Meldungen.Jetzt hinzufügen

Stellen Sie sich vor, ein Kunde öffnet im Bestellformular die Länderauswahl und die Seite reagiert über eine Sekunde lang auf keinen Klick. Genau das maß Odell bei Ionic mit allen 249 Ländern der ISO-Liste. Sein Beitrag vom 27. Oktober fordert, Designsysteme beim Tempo so streng zu prüfen wie bei der Barrierefreiheit.[1]

Auf einen Blick

Das Wichtigste in Kürze

  • Odell testete zehn quelloffene Designsysteme, darunter Ionic, Material UI, Carbon von IBM und UI5 von SAP.
  • Die Ursachen lagen im Code der Bibliotheken, nicht in den Produkten, die darauf aufbauen.
  • Odells Testsammlung für Playwright ist auf GitHub frei verfügbar.

Wie schnell reagieren die zehn Designsysteme?

Eine Schnecke kriecht auf einer blauen Noppenplatte vor einem Turm aus Bauklötzen
Fluent öffnet Länderauswahl in 61 ms, Ionic benötigt 1.266 ms. Fluent markiert 100 Checkboxen in 29 ms, Ant Design braucht 421 ms

Beim Öffnen der Länderauswahl lagen Fluent mit 61 ms und Carbon mit 63 ms vorn, Ionic brauchte 1.266 ms. Beim Markieren von 100 Checkboxen war Fluent mit 29 ms am schnellsten, Ant Design mit 421 ms am langsamsten.

Odell maß in Chrome mit vierfach gedrosselter CPU, wie lange der Hauptthread des Browsers nach dem Klick beschäftigt blieb. Carbon und Spectrum Web Components bauen beide auf Lit, die Länderauswahl von Spectrum Web Components brauchte trotzdem mehr als doppelt so lange.

Automatische Performance-Tests laufen nur bei Spectrum Web Components. Ant Design, Material UI und Fluent überwachen lediglich die Dateigröße des ausgelieferten Codes. Diese Zahl beeinflusst die Ladezeit, nicht die Reaktion auf einen Klick.

Woran liegt die Verzögerung?

Mit den Chrome-Entwicklerwerkzeugen fand Odell vier verschiedene Ursachen, alle im Code der Bibliotheken.

Bei Ionic ersetzt das Framework Stencil eine Browserfunktion durch eine eigene Fassung, die für jede neue Option alle vorhandenen dreimal durchsucht. Die Wartezeit wächst deshalb mit jeder Zeile: 203 ms bei 50 Ländern, 1.266 ms bei 249. Laut Stencil-Dokumentation sollen solche Korrekturen mit Version 5 zum Standard werden.[3] Odells Fehlerberichte an Ionic und Stencil stammen vom 27. Oktober.[4]

Ant Design zeigt nur die sichtbaren Einträge und lädt beim Scrollen nach, Material UI erzeugt dagegen alle rund 250 Elemente auf einmal. React Spectrum lädt ebenfalls nur die sichtbaren Einträge, berechnet aber für jede sichtbare Option das Layout neu. Bei Ant Designs Checkboxen kosteten Farbanimationen den Großteil der Zeit.

Zehn Designsysteme, eine Länderauswahl
Zeit bis zum Öffnen einer Auswahlliste mit allen 249 Ländern, gemessen von Den Odell im Oktober 2026

Öffnen der Länderauswahl in Millisekunden

FluentMicrosoft, FAST
61 ms
CarbonIBM, Lit
63 ms
MantineReact
84 ms
Ant DesignReact
134 ms
Web AwesomeLit
137 ms
UI5SAP, eigenes Framework
157 ms
Spectrum Web ComponentsAdobe, Lit
165 ms
Material UIReact
208 ms
React SpectrumAdobe, React
227 ms
IonicStencil
1.266 ms

Was hinter den Zahlen steckt

1 von 10
Bibliotheken prüft das Tempo ihrer Komponenten bei jeder Codeänderung automatisch
4 von 10
Länderauswahlen ließen die Seite mit 249 Ländern mindestens 100 ms am Stück einfrieren
203 → 1.266 ms
Öffnungszeit bei Ionic mit 50 und mit 249 Ländern: fünfmal so viele Einträge, gut sechsmal so viel Zeit

Ein Designsystem, das niemand mit 249 Ländern testet, vererbt seine Trägheit jedem Produkt, das darauf aufbaut.

Markus Seyfferth, Chefredakteur Dr. Web
Zitat teilen

Was sollten Agenturen und Inhouse-Teams jetzt prüfen?

Teams sollten ihre Komponenten mit realistischen Datenmengen messen und ein Zeitbudget festlegen, das ein automatischer Test bei jeder Änderung prüft.

Für barrierefreie Onlineshops gilt in Deutschland seit Juni 2025 das BFSG. Beim Tempo setzt Google den Maßstab: Seit März 2024 zählt Interaction to Next Paint (INP) zu den Core Web Vitals,[5] bis 200 ms gilt eine Reaktion als gut, über 500 ms als schlecht.[6] Odells Laborwerte stammen nicht von echten Besuchern, taugen aber als Frühwarnung. Auch bei UI5 von SAP fror die Seite mit 249 Ländern länger als 100 ms ein.

Wie viel ein schneller Unterbau bringt, zeigte GitHub im Juni: Mit umgebauten Grundkomponenten brauchte der Server 55 % weniger Zeit, um eine Seite zu rendern.

Odells Tests liegen samt Workflow für GitHub Actions bereit,[2] Teams kopieren einen Ordner und tauschen die Komponenten aus. Der frühere Canva-Entwickler rät zudem, in der Dokumentation festzuhalten, mit wie vielen Einträgen eine Komponente geprüft ist. Im Live-Betrieb messen Werkzeuge aus unserem Vergleich der Website-Monitoring-Tools. Wie stark Gestaltung die Ladezeit bestimmt, zeigt ein Praxisfall mit gemessenen Werten.

Quellen

6 Quellen anzeigenQuellen ausblenden
  1. Den OdellDesign Systems Should Be Fast by Default
  2. Den Odell auf GitHubdesign-system-performance-tests
  3. StencilExtras, Abschnitt experimentalSlotFixes
  4. Stencil auf GitHubbug: appendChildSlotFix makes each appended child element slower to add than the element added just before it
  5. web.devInteraction to Next Paint is officially a Core Web Vital
  6. web.devInteraction to Next Paint (INP)

Mehr Newshunger?

4,6 20 Bewertungen

Wie hat Ihnen dieser Artikel gefallen?