CSS-Ladeanimation-Generator

Wählen Sie eine Lade-Animation, passen Sie Farben und Geschwindigkeit an und kopieren Sie den reinen CSS-Code.

Stil wählen

Vorschau

CSS- und HTML-Code

So funktioniert es

  1. Wählen Sie aus der Galerie oben einen Loader-Stil.
  2. Passen Sie Farbe, Größe, Geschwindigkeit und Dicke an.
  3. Kopieren Sie das erzeugte CSS und HTML und fügen Sie es in Ihr Projekt ein.

Häufige Fragen

Verwenden diese Loader JavaScript?

Nein! Alle Animationen sind reines CSS mit @keyframes. Sie funktionieren ohne jegliches JavaScript.

Sind diese Loader barrierefrei?

Ja, wenn Sie role="status" und ein aria-label am Loader-Element ergänzen. Nutzerinnen und Nutzer, die reduzierte Bewegung bevorzugen, können über eine prefers-reduced-motion-Media-Query berücksichtigt werden.

So funktioniert es

  1. Wählen Sie einen Loader-Stil: Spinner, Punkte, Balken, Ringe, Pulsationen oder Skeleton-Loader.
  2. Aussehen anpassen: Passen Sie Farbe, Größe, Animationsgeschwindigkeit und Dicke mit Reglern an.
  3. Animation in der Vorschau ansehen: Der Loader animiert live im Vorschau-Bereich, sodass Sie genau sehen, wie er aussehen wird.
  4. HTML und CSS kopieren: Erhalten Sie das minimale HTML-Markup und das benötigte CSS, keine JavaScript-Abhängigkeiten nötig.

Warum den CSS-Loader-Generator nutzen?

Lade-Indikatoren sind essenzielle UX-Elemente, die Aktivität signalisieren und verhindern, dass Nutzerinnen und Nutzer denken, die Seite sei eingefroren, während asynchrone Vorgänge laufen. Reine CSS-Loader (nur mit CSS-Animationen, ohne JavaScript oder Bilddateien) sind leichtgewichtig, zuverlässig und rendern dank GPU-beschleunigter Transformationen mit 60 fps. Dieser Generator erzeugt produktionsreifen Lade-Spinner-Code, den Sie direkt in Ihr Projekt einfügen können. Alle Animationen verwenden @keyframes mit transform und opacity, die beiden CSS-Eigenschaften, die ohne Layout-Reflow animieren und so eine flüssige 60-fps-Performance auch auf schwachen Geräten gewährleisten.

Verfügbare Loader-Typen

Eine kurze Geschichte der CSS-Animation, die deinen Spinner antreibt

Die @keyframes-Regel und die animation-Kurzform, die dieser Generator ausgibt, sind im CSS Animations Module Level 1 definiert. Der erste W3C Working Draft wurde am 20. März 2009 veröffentlicht und die Spezifikation erreichte schließlich die W3C-Empfehlung am 11. Dezember 2018, neun Jahre später. Bis dahin hatten alle ausgelieferten Browser die Syntax seit Jahren unterstützt: Safari 4 (Juni 2009) mit dem -webkit--Präfix, Firefox 5 (Juni 2011), Internet Explorer 10 (Oktober 2012), und unpräfigiert von Chrome 43 im April 2015. CSS Animations Module Level 2 ist der aktuelle Working Draft und fügt scrollgesteuerte Animationen über animation-timeline hinzu (geliefert in Chrome 115, Juli 2023; Safari und Firefox folgten Ende 2024). Die Rotation im «Spinner»-Preset kommt aus dem CSS Transforms Module Level 1, einer separaten Spezifikation in Candidate Recommendation seit Februar 2019 aber universell ausgeliefert: transform: rotate(360deg) bei 100% innerhalb eines @keyframes-Blocks ist das, was den Ring dreht.

Barrierefreiheit ist nicht optional: die «Bewegung reduzieren»-Präferenz

Jedes seit 2014 veröffentlichte Betriebssystem enthält eine «Bewegung reduzieren»-Barrierefreiheitseinstellung, macOS «Bewegungen reduzieren» (in Bedienungshilfen → Anzeige), iOS «Bewegungen reduzieren», Windows «Animationen anzeigen», Android «Animationen entfernen», GNOME «Animationen aktivieren» deaktiviert. Die Media Query prefers-reduced-motion (definiert in Media Queries Level 5, W3C First Public Working Draft November 2017) lässt dein CSS diese Präferenz erkennen und den Spinner stoppen. Wickle jeden Spinner immer ein in:

@media (prefers-reduced-motion: reduce) {
  .spinner { animation: none; }
}

Das WCAG 2.1 Erfolgskriterium 2.3.3 «Animationen aus Interaktionen» (Level AAA, W3C-Empfehlung 5. Juni 2018) verlangt, dass jede durch Interaktion ausgelöste Bewegungsanimation deaktiviert werden kann, es sei denn, die Bewegung ist essentiell. Ein Spinner ist selten essentiell. WCAG 2.2 (Oktober 2023) erbt dieselbe Regel.

Für Screenreader wickle den Spinner in <div role="status" aria-live="polite"> mit einem visuell verborgenen «Wird geladen…»-Text. Wenn das Laden abgeschlossen ist, ersetze den Inhalt; die Live-Region kündigt Hilfstechnologien «Geladen» an, ohne zu schreien. Setze aria-busy="true" auf die einschließende Region während des Ladens und aria-busy="false" danach. Dieses Muster ist im Kapitel Live-Regionen des W3C ARIA Authoring Practices Guide dokumentiert.

Warum CSS-Spinner bei 60 fps glatt bleiben

Moderne Browser-Rendering-Pipelines haben drei Stufen: Layout (Berechnung von Positionen), Paint (Füllen von Pixeln) und Composite (Kombinieren von Schichten auf der GPU). Die Eigenschaften transform und opacity sind die einzigen zwei, die Layout und Paint überspringen und rein auf dem Compositor-Thread laufen. Sie zu animieren ist im Wesentlichen kostenlos bei jeder Framerate. Animieren von width, height, top, left, margin oder allem, was das Box Model ändert, erzwingt einen vollständigen Layout-und-Paint-Durchlauf pro Frame und fällt auf Low-End-Geräten schnell unter 60 fps. Jeder Preset in diesem Generator animiert aus diesem Grund nur transform und opacity. Wenn du dem Browser einen Hinweis geben musst, befördert will-change: transform (definiert im CSS Will Change Module Level 1, W3C Candidate Recommendation 26. April 2022) das Element auf seine eigene Compositor-Schicht; sparsam verwenden, weil jede Schicht GPU-Speicher kostet.

Wann ein Spinner die richtige Antwort ist und wann nicht

In Response Times: The 3 Important Limits (1993, neu formuliert 2014) definierte Jakob Nielsen von der Nielsen Norman Group drei Wahrnehmungsschwellen: 0,1 Sekunde ist «sofort», 1 Sekunde ist die Grenze für ununterbrochenen Gedankenfluss, 10 Sekunden ist die Grenze für das Halten der Aufmerksamkeit des Benutzers. Ordne deine Loader-Strategie diesen zu:

Easing-Funktionen und wie sich jede anfühlt

Die Eigenschaft animation-timing-function (und das CSS Easing Functions Module Level 1, Candidate Recommendation 6. Dezember 2022) wählt, wie der Wert zwischen Keyframes voranschreitet:

Häufige Fehler

Weitere häufig gestellte Fragen

Funktionieren diese Spinner in alten Browsern?

Alle modernen Browser (Chrome 43+, Firefox 16+, Safari 9+, Edge 12+) unterstützen @keyframes und transform ohne jegliches Präfix. Internet Explorer 10 und 11 erfordern an einigen Stellen das -ms--Präfix, funktionieren aber ansonsten. IE 9 und früher haben keine CSS-Animationsunterstützung: greife auf ein animiertes GIF zurück oder verwende @supports (animation: spin 1s) zur Feature-Erkennung.

Wie stoppe ich den Spinner, wenn der Inhalt geladen ist?

Entweder entferne das Element aus dem DOM, verberge es mit display: none oder dem hidden-Attribut, oder pausiere die Animation mit animation-play-state: paused. Pausieren ist am günstigsten, wenn du es vielleicht wieder anzeigen möchtest. Wenn du das ARIA-Muster verwendet hast, setze auch aria-busy="false" auf den Container und ersetze den Ladetext durch die Ankündigung des geladenen Zustands.

Kann ich die Spinner-Farben weiter anpassen, als der Picker erlaubt?

Ja. Das ausgegebene CSS verwendet reguläre Hex- / RGB- / HSL-Werte; ersetze sie durch CSS-Variablen (var(--brand-primary)), damit der Spinner deinem Designsystem folgt. Für einen zweifarbigen Spinner bearbeite die border-color-Kurzform: border-color: var(--brand) transparent transparent transparent gibt das klassische «Ein-Viertel-Bogen»-Aussehen.

Warum nicht einfach eine SVG- oder Lottie-Animation verwenden?

CSS-Spinner wiegen unter 200 Byte, benötigen keine zusätzliche Anfrage, keine JavaScript-Laufzeit und werden vor jeglicher externer Ressourcenladung gerendert. SVG ist großartig für komplexe Formen; Lottie ist großartig für von Designern erstellte Animationen aus After Effects. Für einen generischen «etwas lädt»-Indikator ist CSS das günstigste Werkzeug, das die Arbeit korrekt erledigt.

Wird etwas verfolgt oder an einen Server gesendet?

Nein. Der Generator läuft vollständig im JavaScript deines Browsers. Deine Farbauswahlen, Größenanpassungen und kopiertes CSS verlassen niemals die Seite. Überprüfe im Netzwerk-Tab der DevTools.

Verwandte Tools