mitmario.dev

Media Features

Media Features erkennen Systemeinstellungen und Geräte-Fähigkeiten deiner Nutzer. Statt nur auf Viewport-Breiten zu reagieren, kannst du Dark Mode aktivieren, Animationen für empfindliche Nutzer reduzieren oder Touch-optimierte Interfaces für Geräte ohne Maus anbieten. Das macht deine Website nicht nur responsiv, sondern wirklich anpassungsfähig.

Steckbrief Media Features
Syntax
@media (prefers-color-scheme: dark) { ... }
Initialwert
N/A (Media Feature)
Vererbt
Nein
Animierbar
Nein
Kategorie
Responsive Design
Werte
7
Beispiele
5
Browser
5 von 5
E-Mail
0 von 5
Stand
15.02.2026

Grundlagen

Media Features werden wie Width-Bedingungen in @media-Blöcken verwendet. Der entscheidende Unterschied: Sie fragen nicht die Viewport-Größe ab, sondern System- und Geräte-Einstellungen. Man unterscheidet zwei Gruppen:

Nutzer-Präferenzen reagieren auf Betriebssystem-Einstellungen wie Dark Mode, reduzierte Bewegung oder erhöhten Kontrast. Diese Features sind besonders wichtig für Barrierefreiheit, da sie die individuellen Bedürfnisse der Nutzer respektieren.

Geräte-Fähigkeiten erkennen, ob ein Gerät eine Maus hat (hover), wie präzise der Zeiger ist (pointer) oder ob der Bildschirm im Hoch- oder Querformat steht (orientation). Damit vermeidest du Hover-Effekte auf Touch-Geräten und passt Button-Größen an.

In JavaScript kannst du Media Features mit window.matchMedia() abfragen. Das ist nützlich, wenn du auf Änderungen reagieren musst (z.B. wenn der Nutzer den Dark Mode umschaltet).

Syntax & Werte

7 Werte

Nutzer-Präferenzen

Wert Beschreibung Beispiel
prefers-color-scheme: light | dark Erkennt, ob der Nutzer helles oder dunkles Farbschema bevorzugt. @media (prefers-color-scheme: dark) { ... }
prefers-reduced-motion: reduce | no-preference Erkennt, ob der Nutzer reduzierte Bewegung wünscht. Pflicht für WCAG. @media (prefers-reduced-motion: reduce) { ... }
prefers-contrast: more | less | no-preference Erkennt, ob der Nutzer erhöhten oder verringerten Kontrast bevorzugt. @media (prefers-contrast: more) { ... }

Eingabe-Geräte

Wert Beschreibung Beispiel
hover: hover | none Erkennt, ob das primäre Eingabegerät Hover unterstützt (Maus: hover, Touch: none). @media (hover: hover) { ... }
pointer: fine | coarse | none Erkennt die Zeiger-Präzision. fine = Maus, coarse = Finger/Touch, none = kein Zeiger. @media (pointer: coarse) { ... }

Orientierung

Wert Beschreibung Beispiel
orientation: portrait Viewport ist höher als breit (typisch: Smartphone hochkant). @media (orientation: portrait) { ... }
orientation: landscape Viewport ist breiter als hoch (typisch: Querformat, Desktop). @media (orientation: landscape) { ... }

Beispiele

5 Beispiele

Custom Properties machen den Wechsel zwischen Light und Dark Mode einfach. Du definierst Farb-Variablen und überschreibst sie per Media Query.

Dark Mode mit Custom Properties
:root {
  --bg: #ffffff;
  --text: #1e293b;
  --card-bg: #f8fafc;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #0f172a;
    --text: #e2e8f0;
    --card-bg: #1e293b;
  }
}

body {
  background: var(--bg);
  color: var(--text);
}

Barrierefreiheit

prefers-reduced-motion ist Pflicht für barrierefreie Websites (WCAG 2.3.3). Nutzer mit vestibulären Störungen können durch Animationen Übelkeit, Schwindel oder Kopfschmerzen bekommen. Biete immer eine reduzierte Alternative an, entferne aber nicht alle Animationen komplett, sondern reduziere sie auf dezente Übergänge wie opacity.

prefers-contrast: more hilft Nutzern mit Sehbehinderungen. Erhöhe Kontraste, verstärke Rahmen und vermeide halbtransparente Farben. Das WCAG-Minimum-Kontrastverhältnis von 4.5:1 für Text sollte immer eingehalten werden, bei prefers-contrast: more solltest du noch höher gehen.

Vergiss nicht hover: none: Touch-Nutzer können nicht hovern. Informationen, die nur per Hover sichtbar werden (Tooltips, Dropdown-Menüs), müssen auf Touch-Geräten über Tap oder andere Interaktionen erreichbar sein.

Häufige Fehler

4 Punkte
  • prefers-reduced-motion ignorieren. Animationen können für manche Nutzer gesundheitliche Probleme verursachen. Jede nicht-essentielle Animation sollte per prefers-reduced-motion: reduce deaktivierbar sein.
  • Dark Mode aktivieren, aber Text-Kontraste nicht prüfen. Ein dunkler Hintergrund mit dunkelgrauem Text ist schwer lesbar. Teste die Kontrastverhältnisse mit den DevTools.
  • Das Media Feature hover mit der CSS-Pseudoklasse :hover verwechseln. @media (hover: hover) prüft die Geräte-Fähigkeit, :hover ist der Zustand. Beides zusammen nutzen: Hover-Effekte nur einschalten, wenn das Gerät sie unterstützt.
  • Animationen bei prefers-reduced-motion komplett entfernen statt reduzieren. opacity-Übergänge und dezente Farbwechsel sind auch bei reduzierter Bewegung vertretbar, nur Verschiebungen, Skalierungen und komplexe Animationen sollten entfallen.

Browser-Kompatibilität

5 von 5

Die wichtigsten Media Features werden von allen modernen Browsern unterstützt. prefers-contrast hat in älteren Browsern eingeschränkten Support.

  • Chrome

    Komplett

  • Firefox

    Komplett

  • Safari

    Komplett

  • Edge

    Komplett

  • Opera

    Komplett

Email-Kompatibilität

0 von 5

Media Features werden in E-Mail-Clients praktisch nicht unterstützt. Nur prefers-color-scheme hat vereinzelt rudimentären Support.

  • Apple Mail

    Teilweise

    prefers-color-scheme teilweise unterstützt

  • Gmail

    Keine

    Kein Support für Media Features

  • Outlook

    Keine

    Kein Support für Media Features

  • Thunderbird

    Teilweise

    prefers-color-scheme teilweise unterstützt

  • Yahoo Mail

    Keine

    Kein Support für Media Features

Newsletter

einmal die Woche, kostenlos

Neue Artikel und Videos, was sich auf der Lernplattform tut, und ab und zu ein Sonderpreis zum Kursstart. Kurz genug, dass du es auch liest.

Zuletzt verschickt · KW 40

Einmal alles neu, und die Lernplattform ist da

Danach kommt eine Mail mit Bestätigungslink, erst dann bist du eingetragen. Abmelden geht unten in jeder Ausgabe. Mehr dazu in der Datenschutzerklärung.