Diese Woche am beliebtesten

Vertiefendes Material

CSS Only Effekte

Kennen wir das nicht alle? Du arbeitest an einem modernen Webprojekt. Das Design soll frisch wirken, die Nutzer sollen staunen, die Seite soll schnell laden. Also greifst du zur jQuery Animationsbibliothek, laedt ein UI Framework nach, fuegst GSAP hinzu und voila. Die Website bewegt sich wunderbar. Und schlaeft bei der Geschwindigkeitsmessung radikal ein.

Klingt vertraut? Dann bist du hier genau richtig.

Die gute Nachricht: Du brauchst fuer viele moderne UI Effekte heute schlicht kein JavaScript mehr. Browser haben sich in den letzten Jahren enorm weiterentwickelt. CSS kann heute Dinge, fuer die man vor fuenf Jahren noch zwingend JavaScript brauchte. Und das Beste daran? Reines CSS ist schneller, leichter und schont deine Core Web Vitals auf eine Art, die JavaScript Bibliotheken nie koennen.

In diesem Dreamcodes Guide zeigen wir dir fuenf konkrete, sofort kopierbare CSS Effekte, die du direkt in deine Projekte einbauen kannst. Keine Theorie Schlachten. Kein akademisches Gefachsel. Nur Code, der funktioniert.

Was du in diesem Artikel lernst ist folgendes:
Warum CSS Animationen JavaScript Loesungen schlagen.
Wie du fluessige Page Transitions ohne JS umsetzt.
Warum Card Hover Effekte mit CSS besser sind.
Wie ein animiertes Hamburger Menue in 20 Zeilen CSS funktioniert.
Welche haeufigen Fehler du vermeiden solltest. Plus: Profi Tipps fuer Core Web Vitals und INP Werte.

Das Fundament: Warum CSS Animationen JavaScript schlagen

Die versteckten Kosten von JavaScript Animationen

Lass uns kurz bei der Physik bleiben. Jede JavaScript Animation laeuft auf dem Main Thread des Browsers. Das ist genau der Thread, der auch deine Klick Events verarbeitet, dein DOM aktualisiert und deinen Code ausfuehrt. Wenn da eine Animation laeuft und gleichzeitig jemand scrollt? Dann ruckelt es.

CSS-Animationen und Transitions, die transform oder opacity nutzen, laufen dagegen auf dem Compositor Thread. Ein separater Thread. Komplett unabhaengig vom Main Thread. Das bedeutet: seidenweiche 60fps Animationen, auch wenn der Browser gerade hart arbeitet.

JavaScript-AnimationenCSS-Animationen
Laufen auf dem Main ThreadLaufen auf dem Compositor Thread
Blockieren bei hoher LastImmer fluessig bei transform/opacity
Brauchen externe BibliothekenNativ im Browser eingebaut
Erhoehen Payload und LadezeitNull Bytes zusaetzlicher Download
Schlechter fuer INP WertOptimal fuer Core Web Vitals
Erfordern JavaScript KenntnisseReine CSS Kompetenz genuegt

Der INP Wert: Das neue Schreckgespenst der Core Web Vitals

Seit Maerz 2024 ist der INP (Interaction to Next Paint) offiziell Teil der Core Web Vitals und hat FID (First Input Delay) abgeloest. Was bedeutet das fuer dich?

INP misst, wie schnell deine Seite auf Nutzereingaben reagiert. Jede Millisekunde, die der Main Thread mit JavaScript-Animationen beschaeftigt ist, kostet dich beim INP. Google setzt die Grenze bei 200ms: darunter gilt dein INP als gut. Darueber leidet dein Ranking.

CSS Animationen, die auf transform und opacity basieren, tangieren den INP kaum. Sie laufen einfach woanders. Das ist kein netter Bonus, sondern ein handfester SEO Vorteil.

Schnellcheck: Welche CSS-Properties sind Compositor freundlich?
Compositor freundlich (empfohlen): transform (translate, rotate, scale), opacity.
Nicht empfohlen fuer Animationen: width, height, top, left, margin, padding, border-width. Diese Properties triggern Layout Recalculations und sind deutlich teurer.

Effekt 1: Fluessige Page Transitions ohne JavaScript

Das Problem: Hartes Seiten Laden zerstoert die UX

Du kennst das Gefuehl. Du klickst auf einen Link. Kurzes Flackern. Neue Seite. Das Gehirn muss kurz neu orientieren. Diese Unterbrechung ist unnoetig und stoerend. SPA-Frameworks (Single Page Applications) loesen das meist mit JavaScript Routing. Aber was, wenn du eine klassische Multi Page Website hast?

Seit 2023 gibt es eine native CSS Loesung: die View Transitions API. Kombiniert mit purem CSS entstehen atemberaubend weiche Seitenwechsel, ohne eine einzige Zeile JavaScript.

Die Loesung: View Transitions API mit CSS

Hier ist der komplette Code. Keine Abkuerzungen, kein Bullshit:

/* In deinem globalen CSS */
@view-transition {
  navigation: auto;
}
/* Fade-Transition zwischen Seiten */
::view-transition-old(root) {
  animation: fade-out 0.3s ease-in forwards;
}
::view-transition-new(root) {
  animation: fade-in 0.3s ease-out forwards;
}
@keyframes fade-out {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(-8px); }
}
@keyframes fade-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

Das war es. Wirklich. Drei Zeilen fuer die Aktivierung, ein paar Keyframes fuer den Effekt. Der Browser kuemmert sich um den Rest.

Wie es funktioniert

Der Browser macht vor dem Seitenwechsel automatisch einen Screenshot der aktuellen Seite. Dann laedt er die neue Seite. Waehrend die neue Seite eingeblendet wird, blendet er den alten Screenshot aus. Du steuerst beide Animationen per CSS. Keine JavaScript Events, keine Promise Ketten, kein Framework.

Erweitert: Element spezifische Transitions

Das Geniale an der View Transitions API ist, dass du einzelne Elemente separat animieren kannst:

/* Dem Element einen Namen geben */
.hero-image {
  view-transition-name: hero;
}
/* Separate Animation fuer dieses Element */
::view-transition-old(hero) {
  animation: slide-out 0.4s ease-in-out;
}
::view-transition-new(hero) {
  animation: slide-in 0.4s ease-in-out;
}

Stell dir vor: Das Produktbild einer E Commerce Seite schwebt sanft von der Listenansicht in die Detailseite. Ohne JavaScript. Ohne Framework. Nur CSS.

Effekt 2: Interaktive Card Hover Effekte die wirklich beeindrucken

Was User erwarten und was Entwickler falsch machen

Karten Layouts sind ueberall. Blog Uebersichten, Produkt Grids, Team Seiten, Portfolio Ansichten. Und fast ueberall sehen die Hover Effekte gleich aus: eine Box Shadow erscheint, vielleicht aendert sich die Hintergrundfarbe. Fertig.

Dabei kann CSS heute so viel mehr. Hier sind drei Levels des gleichen Effekts:

Level 1: Der solide Basis Hover (fuer jeden)

.card {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  will-change: transform;
}
.card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15);
}

Warum transform statt margin top? Weil transform auf dem Compositor Thread laeuft. margin top triggert ein Layout Recalculation. Ergebnis: Dein Basis Hover ist butterweich, auch auf schwachen Geraeten.

Level 2: Der 3D Tilt Effekt (CSS only, kein JS)

Dieser Effekt sieht aus wie JavaScript Magie, ist aber reines CSS. Der Trick liegt in CSS Custom Properties und der Kombination von perspective und transform:

.card-3d {
  perspective: 1000px;
  transform-style: preserve-3d;
}
.card-3d-inner {
  transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  transform-origin: center center;
}
.card-3d:hover .card-3d-inner {
  transform: rotateX(5deg) rotateY(-5deg) scale(1.02);
}

Das cubic bezier ist hier der heimliche Star. Statt einfachem ease erzeugt es eine natuerlichere Bewegung, die sich nach echtem dreidimensionalem Raum anfuehlt. Spieler wuerde man wohl sagen: Es hat mehr Saft.

Level 3: Gradient Reveal mit Overflow Tricks

Dieser Effekt ist fuer die echten CSS Nerds: Ein farbiger Gradient, der beim Hover von links nach rechts ueber die Karte schiebt, nur durch CSS:

.card-reveal {
  position: relative;
  overflow: hidden;
}
.card-reveal::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  transform: translateX(-101%);
  transition: transform 0.4s ease;
  z-index: 0;
}
.card-reveal:hover::before {
  transform: translateX(0);
}
.card-content {
  position: relative;
  z-index: 1;
}

Der Trick: Das Pseudo Element ::before sitzt hinter dem Inhalt (z-index: 0), der eigentliche Karteninhalt davor (z-index: 1). Beim Hover schiebt der Gradient rein, der Text bleibt lesbar. Overflow hidden sorgt dafuer, dass der Gradient vor dem Hover unsichtbar ist.

Effekt 3: Das animierte Hamburger Menue in 20 Zeilen CSS

Der Klassiker, neu gedacht

Das Hamburger Menue. Drei horizontale Linien. Wenn man draufklickt, soll es sich in ein X verwandeln. Einfach, richtig? In der Realitaet schreiben Entwickler dafuer JavaScript Event Listener, togglen Klassen, verwalten State. Dabei geht das komplett ohne JavaScript.

Der CSS only Trick: Checkbox und Label

Das Geheimnis ist die :checked Pseudo Klasse. Eine versteckte Checkbox speichert den Status (offen/geschlossen). Ein Label fungiert als der sichtbare Button. CSS reagiert auf den Status der Checkbox und animiert die drei Linien:

/* Checkbox verstecken */
#menu-toggle { display: none; }
/* Label als Burger-Button */
.burger {
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: 30px;
}
.burger span {
  display: block;
  height: 2px;
  background: currentColor;
  transition: transform 0.3s ease, opacity 0.3s ease;
  transform-origin: center;
}
/* Wenn Checkbox gecheckt: X-Transformation */
#menu-toggle:checked + .burger span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
#menu-toggle:checked + .burger span:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}
#menu-toggle:checked + .burger span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

Das HTML dazu ist minimal: Eine Checkbox, ein Label mit drei Span Elementen, fertig. Die Zahlen (7px) musst du auf deine konkreten Gap Werte anpassen, damit die diagonalen Linien sich in der Mitte kreuzen.

Das Menue selbst einblenden

.nav-menu {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease;
}
#menu-toggle:checked ~ .nav-menu {
  max-height: 400px; /* Genug Platz fuer alle Items */
}

Der max height Trick ist eine CSS Klassiker. Da CSS keine Animation von height: 0 zu height: auto erlaubt, animiert man max height. Achtung: Setze den Zielwert grosszuegig, aber nicht exzessiv. Je groesser die Differenz, desto groesser die scheinbare Verzoegerung am Anfang der Animation.

Effekt 4: Smooth Scroll mit CSS Scroll Snap

Scrolling neu erfunden, ohne JS

Du kennst diese eleganten One Pager Websites, bei denen jeder Scroll Schritt exakt zum naechsten Abschnitt springt? Frueher brauchte man dafuer JavaScript Event Listener auf scroll Events, komplizierte Berechnungen und Bibliotheken wie Fullpage.js.

Heute macht CSS das alleine:

.scroll-container {
  height: 100vh;
  overflow-y: scroll;
  scroll-snap-type: y mandatory;
}
.scroll-section {
  height: 100vh;
  scroll-snap-align: start;
}

Zwei Properties. Das war es. scroll snap type: y mandatory bedeutet: Beim Scrollen wird immer zum naechsten Snap Point gesprungen, es gibt kein Haltbleiben zwischen den Sektionen. scroll snap align: start bedeutet: Der Snap Punkt ist die Oberkante des Elements.

Feintuning fuer realistische Projekte

In der Praxis willst du oft sanfteres Verhalten:

/* Proximity statt mandatory: sanfteres Snapping */
scroll-snap-type: y proximity;
/* Etwas Platz lassen (z.B. fuer fixe Header) */
.scroll-section {
  scroll-margin-top: 80px;
}

proximity bedeutet: Der Browser snappt nur, wenn man nahe genug an einem Snap Point ist. Kein erzwungenes Herumspringen. scroll margin top ist besonders wertvoll, wenn du einen fixen Header hast, der sonst den Inhalt ueberlagern wuerde.

Effekt 5: Animierte Gradient Buttons mit CSS

Der Wow Button, der nicht nervt

Buttons mit sich bewegenden Gradients sehen aus wie JavaScript Magie. Die meisten Implementierungen nutzen auch JavaScript: MouseMove Events, die eine CSS Custom Property aktualisieren. Dabei gibt es einen reinen CSS Ansatz, der fast genauso gut aussieht:

.gradient-btn {
  background: linear-gradient(270deg, #667eea, #764ba2, #f093fb, #667eea);
  background-size: 300% 300%;
  animation: gradient-shift 3s ease infinite;
  border: none;
  padding: 12px 32px;
  border-radius: 8px;
  color: white;
  cursor: pointer;
}
@keyframes gradient-shift {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

Der Trick steckt in background size: 300% 300%. Das macht den Gradient viel groesser als das Element selbst. Die Animation verschiebt dann die background position, was den Effekt eines sich bewegenden Gradients erzeugt. Kein JavaScript, keine Events, kein Framework.

Pause on Hover: Mehr Kontrolle

.gradient-btn {
  animation-play-state: running;
}
.gradient-btn:hover {
  animation-play-state: paused;
}

Manche Nutzer finden bewegende Hintergruende ablenkend. Mit animation play state pausierst du die Animation beim Hover. Das ist auch eine gute Accessibility Praxis fuer Nutzer, die Bewegung reduzieren wollen.

Die 7 haeufigsten Fehler bei CSS Animationen und wie du sie vermeidest

Fehler 1: Properties animieren, die Layout triggern

Der haeufigste Fehler. Viele animieren width, height, top, left oder margin. Diese Properties triggern den sogenannten Layout Reflow: Der Browser muss die gesamte Seite oder grosse Teile davon neu berechnen. Das ist teuer.

Die Loesung: Immer transform und opacity bevorzugen. Statt width animierst du scaleX. Oder top animierst du translateY. Auch kannst du Opacity mit opacity animieren. Klingt simpel, macht aber den entscheidenden Unterschied.

Fehler 2: will change vergessen oder ueberall einsetzen

will change: transform ist ein Hinweis an den Browser, das Element auf einer eigenen Compositing Ebene zu rendern. Das macht Animationen fluessiger. Aber: Jede Compositing Ebene kostet GPU Speicher. Alles mit will change zu belegen zerstoert die Performance genau so.

Regel: will change nur bei Elementen einsetzen, die tatsaechlich animiert werden. Und nur solange die Animation laeuft, danach wieder entfernen.

Fehler 3: animation und transition gleichzeitig auf der gleichen Property

Wenn du sowohl eine @keyframes Animation als auch eine transition auf der gleichen CSS Property setzt, gewinnt immer die Animation. Die Transition wird ignoriert. Das sorgt fuer Verwirrung, besonders wenn Hover Effekte nicht mehr funktionieren.

Fehler 4: Prefers Reduced Motion ignorieren

Manche Nutzer erleben bei Bewegung auf dem Bildschirm Schwindel, Uebelkeit oder andere Beschwerden. Betroffen sind besonders Menschen mit vestibularen Stoerungen. Seit Jahren gibt es dafuer die Media Query prefers reduced motion. Und viele Entwickler ignorieren sie konsequent.

@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}

Das ist nicht nur Accessibility Pflicht. Es verbessert auch die UX fuer Nutzer in energiesparenden Modi und auf schwachen Geraeten.

Fehler 5: Zu lange Animation Dauer

Animationen, die laenger als 400ms dauern, fuehlen sich traege an. Ausnahmen: Looping Animationen (wie der Gradient Button) oder bewusst dramatische Effekte. Fuer UI Feedback gilt: 150ms bis 300ms sind das Sweet Spot. Alles darueber zermuerbt die Nutzer.

Fehler 6: Keine Fallbacks fuer aeltere Browser

Die View Transitions API zum Beispiel ist noch nicht ueberall verfuegbar. Wer sie ohne Fallback nutzt, baut eine Seite, die in bestimmten Browsern kaputt aussieht. Der richtige Ansatz: Feature Detection mit @supports:

@supports (view-transition-name: none) {
  /* Dein View-Transition-CSS hier */
}

Fehler 7: Performance nicht messen

Du kannst nicht optimieren, was du nicht misst. Die Chrome DevTools bieten mit dem Performance Tab und dem Rendering Panel praezise Einblicke, welche Animations auf dem Compositor laufen und welche den Main Thread blockieren. Gruen ist gut. Gelb und Rot sind Warnsignale.

Experten Tipps: CSS Animationen auf Profi Niveau

Tipp 1: Custom Easings fuer natuerlichere Bewegung

Die Standard Easing Funktionen (ease, linear, ease in, ease out) sind Kompromisse. Profis nutzen cubic bezier() fuer massgeschneiderte Bewegungskurven. Ein grossartiges Tool dafuer ist cubic-bezier.com, wo du Kurven visuell definieren kannst.

Fuer organische, natuerliche Bewegungen eignet sich oft: cubic bezier(0.34, 1.56, 0.64, 1) was einen leichten Ueberschwung erzeugt, der sich nach echtem physikalischen Federn anfuehlt.

Tipp 2: CSS Custom Properties fuer dynamische Animationen

CSS Custom Properties (Variablen) veraendern das Spiel. Statt viele separate Animationen zu schreiben, kannst du eine universelle Animation bauen, die ueber Variablen angepasst wird:

.card {
  --delay: 0ms;
  animation: fade-in 0.4s ease var(--delay) both;
}
.card:nth-child(1) { --delay: 0ms; }
.card:nth-child(2) { --delay: 100ms; }
.card:nth-child(3) { --delay: 200ms; }

Ergebnis: Karten erscheinen mit einem gestaffelten Stagger Effekt, nur durch CSS. Kein JavaScript Loop, kein setTimeout.

Tipp 3: :has() fuer zustandsbasierte Animationen

Die :has() Pseudo-Klasse ist einer der groessten CSS Fortschritte der letzten Jahre. Sie erlaubt es, Elternelemente basierend auf ihren Kindern zu stylen. Das eroeffnet voellig neue Moeglichkeiten fuer zustandsbasierte Animationen:

/* Wenn eine Karte ein Video enthaelt und man hovert */
.card:has(video):hover {
  transform: scale(1.05);
}
/* Navigation, wenn ein Untermenue-Checkbox gecheckt ist */
.nav:has(input:checked) .overlay {
  opacity: 1;
  pointer-events: all;
}

Tipp 4: Scroll Driven Animations

Damit bindest du CSS Animationen direkt an den Scroll Fortschritt. Ein Fortschrittsbalken, der beim Lesen waechst? Eine Navbar, die beim Scrollen einfaerbt? Alles CSS:

/* Lese-Fortschrittsbalken */
@keyframes grow {
  from { width: 0%; }
  to { width: 100%; }
}
.progress-bar {
  animation: grow linear;
  animation-timeline: scroll(root block);
}

Frueher? JavaScript scroll Event Listener, requestAnimationFrame, komplexe Berechnungen. Heute? Drei CSS Zeilen. Der Browser ist so aufgeruestet, dass es manchmal schon unwirklich wirkt.

FAQ: Die haeufigsten Fragen zu CSS only Animationen

Frage: Sind CSS Animationen wirklich schneller als JavaScript Animationen?
Ja, wenn man sie richtig einsetzt. Animationen auf transform und opacity laufen auf dem Compositor Thread des Browsers, komplett unabhaengig vom Main Thread. JavaScript Animationen blockieren hingegen den Main Thread. In der Praxis bedeutet das: CSS Animationen auf transform und opacity sind praktisch immer fluessiger, besonders auf schwachen Geraeten oder bei hoher CPU Last. Wichtig: Es geht um die Properties, nicht die Sprache. JavaScript, das transform animiert, laeuft genauso gut wie CSS.
Frage: Kann ich CSS-Animationen auch bei komplexen interaktiven Elementen einsetzen?
Fuer viele Faelle ja. Wie du in diesem Guide gesehen hast, funktionieren sogar zustandsbehaftete Elemente wie das Hamburger Menue komplett ohne JavaScript. Die Grenzen sind bei Animationen, die von dynamischen Daten abhaengen oder komplexe Interaktionslogik benoetigen. In diesen Faellen ist ein Hybrid-Ansatz sinnvoll: JavaScript verwaltet den State und setzt CSS Klassen, CSS kuemmert sich um alle Animationen. Das ist der Best Practice-Ansatz grosser Frontend-Teams.
Frage: Was bedeutet will change und wann sollte ich es nutzen?
Will change ist ein Hinweis an den Browser, dass sich eine CSS Property eines Elements bald aendern wird. Der Browser kann das Element daraufhin auf eine eigene Compositing Ebene (Layer) verschieben und dort vorrendern. Das macht die Animation fluessiger, kostet aber GPU Speicher. Nutze es nur bei Elementen, die tatsaechlich animiert werden, und entferne es nach der Animation wieder. Fuer einfache Hover Effekte auf wenigen Elementen ist es oft nicht noetig.
Frage: Was ist prefers reduced motion und muss ich es beachten?
Prefers reduced motion ist eine Media Query, die erkennt, ob ein Nutzer in seinen Systemeinstellungen reduzierte Bewegung aktiviert hat. Viele Menschen mit vestibularen Stoerungen, Epilepsie oder bestimmten neurologischen Erkrankungen muessen Animationen reduzieren, da sie sonst Schwindel oder Uebelkeit erfahren. Als Webentwickler musst du diese Media Query respektieren. Es ist einerseits eine Accessibility Anforderung (WCAG), andererseits einfach anstaendiger Umgang mit allen deinen Nutzern.
Frage: Wie gut wird die View Transitions API unterstuetzt?
Stand 2026 unterstuetzen Chrome, Edge und Opera die View Transitions API vollstaendig. Firefox und Safari haben Basis Unterstuetzung fuer Cross Document Transitions eingefuehrt. Fuer Browser ohne Unterstuetzung passiert einfach nichts: Der normale Seitenwechsel findet statt. Das ist klassisches Progressive Enhancement. Du kannst die API also heute produktiv einsetzen, mit dem Bewusstsein, dass ein Teil der Nutzer noch den klassischen Seitenwechsel sieht.
Frage: Koennen CSS-only Animationen wirklich JavaScript vollstaendig ersetzen?
Fuer UI Animationen und Transitions in den meisten gaengigen Faellen: ja, oft schon. Komplett ersetzen wird CSS JavaScript nicht, denn JavaScript wird fuer dynamische Daten, APIs, komplexe Logik und viele Interaktionsmuster gebraucht. Aber der Trend ist eindeutig: Was frueher zwingend JavaScript erforderte, geht heute immer oefter nativ in CSS. Das ist eine gute Entwicklung fuer Performance und Wartbarkeit.

Deine CSS Animation Checkliste …

Bevor du eine CSS Animation live schaltest, gehe diese Checkliste durch:

  • Nutze ich transform und opacity statt Layout-Properties?
  • Habe ich will change nur dort gesetzt, wo es benoetigt wird?
  • Respektiert meine Animation prefers reduced motion?
  • Ist die Animations Dauer zwischen 150ms und 400ms (bei UI Feedback)?
  • Habe ich Fallbacks fuer Browser ohne Feature Unterstuetzung eingebaut?
  • Habe ich die Performance im DevTools Performance Tab geprueft?
  • Gibt es keine Konflikte zwischen animation und transition auf den gleichen Properties?
  • Ist das Easing natuerlich und angemessen fuer den Anwendungsfall?

Zusammenfassung: Was du mitgenommen hast …

Lass uns kurz zusammenfassen. CSS Animationen sind kein Ersatz-JavaScript fuer Ratlose, sondern oft die technisch bessere Wahl. Sie laufen auf dem Compositor Thread, schonen den INP Wert, brauchen keinen Download und sind wartbar.

Du hast heute gelernt:

  • Fluessige Page Transitions mit der View Transitions API, drei Zeilen Code
  • Card Hover Effekte in drei Levels, vom Soliden bis zum beeindruckenden 3D Tilt
  • Das animierte Hamburger Menue komplett ohne JavaScript
  • CSS Scroll Snap fuer elegante One Pager Erlebnisse
  • Animierte Gradient Buttons mit dem background size Trick
  • Die sieben haeufigsten Fehler und wie du sie vermeidest
  • Experten Tipps zu Custom Easings, CSS Custom Properties und Scroll Driven Animations

Dein naechster Schritt …

Theorie ist gut, Praxis ist besser. Such dir einen der fuenf Effekte aus, der dir am meisten anspricht, und setze ihn heute noch in einem echten Projekt oder einem CodePen Experiment um. Kopiere den Code, passe ihn an dein Design an und miss den Unterschied in den DevTools.

Eine letzte Anekdote zum Abschluss. Ein Kollege fragte mal, warum er sich mit CSS Animationen befassen soll, wenn jQuery das doch genauso kann. Sechs Monate spaeter hatte seine Seite einen Lighthouse Score von 98. Seitdem fragt er nicht mehr.

Viel Spass beim Bauen. Und noch mehr Spass beim Staunen, was pures CSS kann.

Dreamcodes Redaktion
Dreamcodes Redaktion
Jeder Inhalt auf Dreamcodes entsteht mit einem klaren Anspruch: geprüfte Praxis statt schneller Theorie. Was hier veröffentlicht wird, basiert auf Best Practices, echten Projekterfahrungen und technischem Verständnis, das über das Offensichtliche hinausgeht. Unser Ziel ist ein Fundament, auf dem du aufbauen kannst, nicht eines, das beim ersten produktiven Einsatz bricht. Wie du die Inhalte integrierst, absicherst und in deinen Kontext überträgst, liegt bei dir. Die fachliche Grundlage liefern wir, die Verantwortung für den Einsatz bleibt deine.
Vorheriges Tutorial

Vielleicht einen Blick WERT?