Icons im Interface: Wie aus einem Set ein System wird
Warum Icons einzeln nie auffallen und zusammen immer — und wie du mit Inventur, Raster, Varianten und klaren Beschriftungen ein Set baust, das in Web und App auch nach Jahren noch zusammenhält
Warum die Sekunden zwischen Klick und Ergebnis kein Technikproblem sind, sondern gestaltet werden müssen — und wie du mit Skeletons, optimistischen Updates und ehrlicher Choreografie Wartezeit erträglich machst

Es gibt in jedem digitalen Produkt einen Moment, den kaum jemand gestaltet: die Sekunde nach dem Klick. Der Nutzer hat gedrückt, das System arbeitet, und auf dem Bildschirm passiert — irgendwas. Vielleicht ein Spinner. Vielleicht nichts. Vielleicht springt die halbe Seite um, wenn die Daten endlich da sind.
Diese Sekunde ist kein technischer Randfall. Sie ist der Teil deines Interfaces, den Menschen am intensivsten wahrnehmen, weil sie in genau diesem Moment nichts anderes zu tun haben als hinzusehen. Und sie ist der Teil, der in Design-Dateien fast immer fehlt: Wir gestalten den vollen Zustand, gelegentlich den leeren — aber den Zustand dazwischen liefern wir als Kommentar an die Entwicklung aus. „Hier kommt noch ein Ladeindikator hin."
Gefühlte Performance ist der Unterschied zwischen der Zeit, die eine Aktion tatsächlich dauert, und der Zeit, die sie sich anfühlt. Dieser Unterschied ist gestaltbar — und zwar erheblich. Ein Produkt, das 1,8 Sekunden braucht und währenddessen zeigt, woran es arbeitet, wirkt schneller als eines, das nach 1,2 Sekunden wortlos umspringt. In diesem Artikel geht es darum, wie du diese Zeit gestaltest: welche Zustände es gibt, wann welcher richtig ist, und warum der Ladezustand genauso ins Design System gehört wie der Button.
In den meisten Figma-Dateien existieren zwei Versionen eines Screens: leer und gefüllt. In der Realität existieren mindestens fünf: leer, ladend, teilweise geladen, gefüllt, fehlerhaft. Drei davon fallen regelmäßig unter den Tisch — und werden dann von der Entwicklung improvisiert, weil irgendetwas ja auf dem Bildschirm stehen muss.
Das Ergebnis kennst du: Ein Spinner mitten im leeren Viewport, drei Sekunden lang, und danach ein Layout, das sich noch zweimal neu sortiert, während Bilder nachladen. Technisch ist alles korrekt. Gestalterisch ist es ein Blindflug.
Der Denkfehler liegt in der Annahme, Ladezeit sei ein Performance-Problem, das die Entwicklung löst, und Design komme danach. Tatsächlich ist es umgekehrt: Performance-Arbeit hat harte Grenzen — irgendwann ist die Antwortzeit des Servers das, was sie ist. Gefühlte Performance hat diese Grenze nicht. Sie hängt daran, ob Menschen verstehen, was gerade passiert.
Faustregel: Ungewisses Warten fühlt sich länger an als gewisses. Die wichtigste Information in einem Ladezustand ist deshalb nicht „wie lange noch", sondern „es läuft, und zwar dieses hier".
Dazu kommt ein zweiter Effekt, der oft als reines Technikthema abgelegt wird: das Umspringen des Layouts. Wenn Inhalte nachladen und dabei alles nach unten schieben, entsteht nicht nur ein schlechter Messwert, sondern ein handfestes Bedienproblem — der Knopf, auf den jemand gerade zielt, ist beim Klick woanders. Wer entscheidet, wie viel Platz ein Element im Ladezustand einnimmt, entscheidet damit über die Bedienbarkeit während des Ladens. Diese Entscheidung trifft niemand außer dem Design.
Das ist dieselbe Logik, die schon bei leeren Zuständen greift: Ein Bildschirm ohne Inhalt ist kein Loch im Produkt, sondern eine Gelegenheit, etwas zu erklären. Beim Ladezustand ist es genauso — nur mit noch mehr Aufmerksamkeit auf deiner Seite.
Die Wahrnehmungsforschung liefert hier ungewöhnlich klare Kanten. Drei Zeitschwellen strukturieren praktisch jede Entscheidung über Ladezustände:

Praktisch wichtiger als die exakten Zahlen ist die daraus folgende Regel: Ladezustände brauchen eine Verzögerung, bevor sie erscheinen. Wenn du einen Skeleton sofort bei jeder Anfrage einblendest, flackert er bei schnellen Antworten — und dieses Flackern kostet mehr Vertrauen, als der Indikator einbringt. Ein Delay von 200 bis 400 Millisekunden, bevor der Ladezustand überhaupt gezeigt wird, löst das. Antwortet das System vorher, sieht niemand einen Indikator und es fühlt sich sofort an.
Die Gegenprobe gehört dazu: Wenn ein Ladezustand erst einmal sichtbar ist, sollte er auch eine Mindestdauer stehenbleiben — sonst tauschst du das Flackern nur gegen ein Zucken.
Zwei Zahlen, die in jedem Ticket stehen sollten: ab wann der Ladezustand erscheint (Delay) und wie lange er mindestens bleibt (Mindeststandzeit). Ohne sie entscheidet der Zufall der Netzwerklatenz, wie dein Produkt sich anfühlt.
Die drei gängigen Antworten auf Wartezeit sind nicht austauschbar. Sie beantworten unterschiedliche Fragen.

Bei Skeletons gibt es zwei Fehler, die ich regelmäßig sehe. Der erste: Der Skeleton sieht dem Endzustand nicht ähnlich genug — drei gleich lange graue Balken, wo später eine Überschrift, zwei Textzeilen und ein Preis stehen. Dann springt beim Laden doch wieder alles um, und der Skeleton hat nur Zeit gekostet. Der zweite: Der Skeleton ist zu detailliert und animiert zu stark. Ein Platzhalter, der schimmert, pulsiert und gleichzeitig einfliegt, zieht mehr Aufmerksamkeit auf sich als der Inhalt danach.
Test für jeden Skeleton: Screenshot vom Ladezustand und vom fertigen Zustand übereinanderlegen. Wenn sich Blockgrenzen und Höhen nicht decken, ist der Skeleton nicht fertig.
Es gibt eine Nebenwirkung, die man kennen sollte: Ein gut gemachter Ladezustand nimmt den Druck aus der Performance-Diskussion. Wenn das Warten hübsch aussieht, fällt weniger auf, dass drei Sekunden gewartet wird — und aus „wir müssen die Abfrage optimieren" wird „läuft doch". Gefühlte Performance ersetzt keine echte. Sie kauft dir Zeit und Wohlwollen, und beides solltest du investieren, statt es auszugeben.
Der praktische Umgang damit ist simpel: Halte die tatsächlichen Antwortzeiten sichtbar, auch wenn der Ladezustand sie kaschiert. Wenn ein Abruf dauerhaft über einer Sekunde liegt, ist das ein Thema fürs Backlog — unabhängig davon, wie elegant der Platzhalter aussieht.
Ein dritter Weg, der oft übersehen wird: gestaffeltes Laden. Statt auf alles zu warten, zeigst du zuerst das, was sofort da ist — Überschrift, Navigation, Filterleiste — und lädst die teuren Teile nach. Das fühlt sich fast immer schneller an als ein sauberer Gesamtladezustand, weil der erste sichtbare Inhalt früher kommt. Voraussetzung ist, dass die nachrückenden Teile ihren Platz bereits reserviert haben.
Die radikalste Form gefühlter Performance ist, gar nicht erst zu warten. Bei Optimistic UI zeigt das Interface das Ergebnis einer Aktion sofort an — und korrigiert sich nur, falls der Server widerspricht.

Das Herz-Symbol, das sofort füllt. Die Aufgabe, die sofort abgehakt ist. Die Nachricht, die sofort in der Liste steht. Technisch läuft die Anfrage im Hintergrund weiter; gefühlt ist die Aktion in null Millisekunden erledigt.
Das funktioniert gut — unter drei Bedingungen:
Der dritte Punkt ist der, an dem die meisten Diskussionen im Team hängenbleiben, und er lohnt eine klare Haltung: Optimistic UI verschiebt Risiko vom Server zum Nutzer. Das Produkt behauptet etwas, das noch nicht stimmt, und wettet darauf, dass es gleich stimmen wird. Bei einem Herz-Symbol ist der Einsatz null. Bei allem, was Geld, Termine oder verbindliche Daten betrifft, ist er hoch — und dann ist eine ehrliche Sekunde Wartezeit das bessere Design.
Zwischen „sofort tun" und „warten" liegt ein häufig nützlicher Mittelweg: der schwebende Zustand. Die Zeile erscheint sofort, aber sichtbar blasser oder mit einem kleinen Statuspunkt, bis die Bestätigung da ist. Der Nutzer bekommt die unmittelbare Reaktion und trotzdem eine ehrliche Auskunft über den Stand der Dinge. Das ist häufig die bessere Wahl in Produkten, in denen Daten verbindlich sind — in einer Fachanwendung etwa, in der Eingaben dokumentiert werden, wäre ein Häkchen, das später stillschweigend verschwindet, ein echtes Problem.
Alles über zehn Sekunden ist eine andere Disziplin. Export, Upload, Import, Rechenlauf, Generierung: Hier reicht kein Indikator mehr, hier brauchst du eine Dramaturgie.
Bei Uploads kommt ein eigener Fallstrick dazu: Der Fortschrittsbalken zeigt oft nur, wie viel gesendet wurde — die Verarbeitung auf dem Server danach ist unsichtbar. Für den Nutzer sieht das so aus, als hinge das Produkt bei 100 Prozent fest. Die Lösung ist keine Technik, sondern Beschriftung: Übertragung und Verarbeitung als zwei benannte Etappen zeigen, statt beide in einen Balken zu pressen.
Dazu gehört der Fall, den fast niemand gestaltet: die Zeitüberschreitung. Irgendwann muss das Produkt zugeben, dass es nicht weitergeht. Ein Ladezustand, der unbegrenzt weiterdreht, ist kein Ladezustand mehr, sondern ein Aufhänger. Definiere eine Obergrenze, und definiere, was danach auf dem Bildschirm steht: was schiefging, ob die Daten verloren sind, und welcher Knopf den nächsten Versuch startet. Dieser Zustand ist selten — und genau deshalb der, an dem sich zeigt, wie ernst ein Produkt gemeint ist.
Auch das Tempo der Übergänge zählt hier mit. Wenn Inhalte nach dem Laden einfach erscheinen, wirkt der Wechsel hart; wenn sie zu langsam einblenden, hast du der gemessenen Ladezeit noch einmal Zeit hinzugefügt. Kurze Übergänge im Bereich von 150 bis 250 Millisekunden reichen — mehr dazu im Artikel über Bewegung im Interface.
Ladezustände sind ein blinder Fleck der Barrierefreiheit, weil sie visuell so offensichtlich sind, dass man das Nicht-Visuelle vergisst. Wer mit einem Screenreader arbeitet, sieht den Skeleton nicht — für diese Nutzer:innen passiert nach dem Klick schlicht gar nichts.
Wenn der Ladezustand pro Feature neu erfunden wird, bekommst du in genau dem Teil des Produkts Uneinheitlichkeit, der am meisten über Qualität aussagt. Dann dreht sich in der einen Ansicht ein Spinner, in der anderen schimmert ein Skeleton, in der dritten friert die Seite kurz ein.
Was dafür ins System gehört, ist überschaubar:
Das ist dieselbe Arbeit, die auch sonst ein System trägt: nicht mehr Komponenten bauen, sondern die Entscheidung einmal treffen. Wie viel Systematik ein kleines Team wirklich stemmen kann, habe ich in Design System entwickeln beschrieben — für Ladezustände gilt die knappe Version: lieber vier robuste Platzhalter-Bausteine und eine klare Regel als eine Bibliothek, die niemand pflegt.
Und noch eine Kleinigkeit, die sich auszahlt: Nimm die Ladezustände mit in die Design-Datei auf, nicht nur in die Dokumentation. Ein Screen-Set, das neben „voll" und „leer" auch „lädt" und „fehlgeschlagen" zeigt, verändert die Gespräche im Team. Plötzlich wird über den mittleren Zustand gesprochen, bevor er gebaut ist — und nicht erst, wenn er im Testsystem auffällt.
Kleiner Praxistest fürs nächste Review: Öffne das Produkt mit gedrosselter Verbindung in den Entwicklerwerkzeugen und geh die fünf wichtigsten Abläufe durch. Was du dort siehst, ist der Zustand, in dem viele Menschen dein Produkt tatsächlich erleben — nicht der aus der Design-Datei.
Ladezustände sind kein Restposten der Entwicklung, sondern ein eigener Teil der Gestaltung. Sie entscheiden darüber, ob ein Produkt als schnell, ehrlich und beherrschbar wahrgenommen wird — und das oft stärker als die tatsächliche Ladezeit.
Der beste Einstieg ist unspektakulär: Nimm den wichtigsten Ablauf deines Produkts, drossle die Verbindung und sieh dir an, was zwischen Klick und Ergebnis passiert. In den meisten Produkten ist dort noch nie jemand hingeschaut — und genau deshalb liegt dort so viel gefühlte Geschwindigkeit herum.
Transparenzhinweis: Die Bilder in diesem Artikel wurden mit KI erstellt. Die redaktionelle Verantwortung liegt bei Jannik Noe.

Jannik Noe
Product & UI/UX Designer aus Hamburg. Ich gestalte und baue Websites, Web-Apps und Software — von der Konzeption bis zum Launch — und zeige Teams im Workshop, wie KI in echte Designprozesse passt.
Mehr über mich →Product Design
Ich übernehme UX-Konzeption, UI Design und Prototyping für Web-Apps und Software — als Projekt oder als Verstärkung in eurem Team. Ab 4.000 €.
Warum Icons einzeln nie auffallen und zusammen immer — und wie du mit Inventur, Raster, Varianten und klaren Beschriftungen ein Set baust, das in Web und App auch nach Jahren noch zusammenhält

Warum der Fehlerfall im Product Design fast immer zuletzt gestaltet wird — und wie du Meldung, Ort, Wiederanlauf und Datensicherheit so zusammenbringst, dass Nutzer:innen weiterkommen statt stehenzubleiben

Warum das Modal das am schnellsten gezogene und am häufigsten falsche Muster im Interface ist — und wie du Dialoge so baust, dass sie mit Tastatur, Screenreader und auf dem Handy tragen
Du planst eine Website, eine App, ein Redesign — oder möchtest euer Team mit einem AI-UX Workshop voranbringen?
Ich unterstütze Unternehmen dabei, komplexe Anforderungen in klare, nutzerfreundliche Lösungen zu übersetzen.