Firefox Themes sind die einfachste Art, den Browser umzugestalten — und gleichzeitig das am meisten missverstandene Stück der Firefox-Anpassung. Die meisten Anleitungen im Netz erklären entweder nur, wie man auf „Hinzufügen” klickt, oder sie werfen Themes mit userChrome.css in einen Topf, obwohl das zwei völlig verschiedene Dinge sind.
Dieser Artikel macht beides anders. Wir haben nicht recherchiert, sondern gemessen: die komplette Theme-Datenbank von addons.mozilla.org ausgezählt, die 50 meistgenutzten Themes heruntergeladen und ihre manifest.json auseinandergenommen, und ein eigenes Theme gebaut, das Mozillas offizieller Prüfer addons-linter mit null Fehlern, null Warnungen, null Hinweisen durchwinkt.
Das Ergebnis vorweg, und es ist überraschend in beide Richtungen: Auf AMO liegen 514.644 Themes — mehr als fünfmal so viele wie Erweiterungen. Und ein vollständiges, gültiges Theme ist am Ende 528 Byte groß. Eine einzige Datei. Kein Build-Prozess, kein Framework, keine Zeile JavaScript.
Die Kurzfassung
| Frage | Antwort (gemessen am 31.08.2026) |
|---|---|
| Wie viele Firefox Themes gibt es? | 514.644 statische Themes auf AMO |
| Zum Vergleich: Erweiterungen | 99.578 — Themes sind 5,2× häufiger |
| Wie groß ist ein Theme? | Unser lint-sauberes Theme: 528 Byte |
| Median-Größe der Top 50 | 9.487 Byte (38 von 50 unter 10 KB) |
| Brauche ich ein Bild? | Nein — 37 der Top 50 nutzen gar keins |
| Wie viele Farbschlüssel gibt es? | 42 laut Firefox-Schema |
| Wie viele nutzen die Top-Themes? | Median 26, Minimum 2, Maximum 38 |
| Braucht man Programmierkenntnisse? | Nein — eine manifest.json, sonst nichts |
| Muss ich veröffentlichen? | Nein, aber zum dauerhaften Installieren ist Signierung nötig |
| Theme + Erweiterung in einem Paket? | Nein — der Linter bricht mit Fehler ab |
| Ist das dasselbe wie userChrome.css? | Nein — komplett anderer Mechanismus |
/api/v5/addons/search/) abgerufen. Die Top 50 wurden als XPI heruntergeladen, entpackt und ihre manifest.json ausgewertet. Linter-Ergebnisse mit addons-linter 10.10.0 lokal erzeugt. Farbschlüssel aus toolkit/components/extensions/schemas/theme.json von mozilla-central.
Was ein Firefox Theme eigentlich ist
Ein Theme ist technisch gesehen eine WebExtension ohne Code. Es hat dieselbe Verpackung wie eine Erweiterung — ein ZIP-Archiv mit einer manifest.json — nur dass darin kein JavaScript liegt, sondern ausschließlich Farbangaben und optional Bilder.
Firefox unterscheidet dabei zwei Sorten:
- Statische Themes ändern sich nach der Installation nicht mehr. Sie bestehen aus dem
theme-Schlüssel im Manifest. Das ist der Normalfall und das, worum es hier hauptsächlich geht. - Dynamische Themes sind echte Erweiterungen, die die
theme-API aufrufen und die Darstellung zur Laufzeit ändern — etwa nach Tageszeit oder besuchter Website.
Die Trennung ist strikt, und das ist keine Stilfrage, sondern hart erzwungen. Mozillas Dokumentation formuliert es so:
„A theme and browser extension functionality cannot be defined in one package.” — extensionworkshop.com, Static themes, abgerufen am 31.08.2026
Wir haben das nachgeprüft, statt es zu glauben. In ein gültiges Theme-Manifest zusätzlich einen browser_action-Schlüssel eingetragen und den Linter laufen lassen:
JSON_INVALID | "/" must NOT have additional properties
Ein harter Fehler. Man kann einer Erweiterung also kein Theme „beilegen” — wer beides will, braucht ein dynamisches Theme mit theme-Berechtigung.

Themes finden: 514.644 Stück, und warum das kein Vorteil ist
Der offizielle Ort für Themes ist addons.mozilla.org (AMO). Wir haben die API gefragt, wie viel dort tatsächlich liegt:
| Kategorie auf AMO | Anzahl |
|---|---|
| Statische Themes | 514.644 |
| Erweiterungen | 99.578 |
| Wörterbücher | 250 |
| Sprachpakete | 111 |
/api/v5/addons/search/?type=…&page_size=1, Feld count.
Eine halbe Million Themes klingt nach einer riesigen Auswahl. Die Zahl ist aber vor allem ein Hinweis darauf, wie niedrig die Hürde ist — und beim genaueren Hinsehen zerfällt sie.
Wir haben die nach Nutzerzahl sortierte Liste an mehreren Stellen abgetastet:
| Platz in der Rangliste | Tägliche Nutzer |
|---|---|
| 1–50 | 11.021 – 307.731 |
| 451–500 | 715 – 798 |
| 2.451–2.500 | 69 – 71 |
| 4.951–5.000 | 26 – 27 |
| 9.951–10.000 | 10 |
| 14.951–15.000 | 5 – 6 |
| 19.951–20.000 | 3 |
| 24.951–25.000 | 2 |
| 29.951–30.000 | 2 |
sort=users, page_size=50, Stichproben an den genannten Seiten, abgerufen am 31.08.2026.
Auf Platz 30.000 hat ein Theme noch zwei tägliche Nutzer. Und dort endet die Messung nicht, weil die Themes ausgehen, sondern weil die API bei Seite 600 aufhört — ein Zugriff auf Seite 601 liefert {"detail":"Invalid page."}. Die Grenze liegt bei genau 30.000 Einträgen, das haben wir per binärer Suche bestimmt.
Was das für die verbleibenden 484.644 Themes bedeutet, haben wir über eine zweite Achse gemessen: eine Stichprobe von 300 Themes, sortiert nach Erstellungsdatum statt nach Nutzern.
| Kennzahl der Stichprobe (n = 300) | Wert |
|---|---|
| Themes mit null täglichen Nutzern | 206 (69 %) |
| Median tägliche Nutzer | 0 |
| Durchschnitt | 2,68 |
| Maximum in der Stichprobe | 314 |
sort=created, fester Seed, 31.08.2026.
🔑 Das ist der eigentliche Befund zur Auswahl: Über zwei Drittel aller Firefox Themes werden von niemandem benutzt. Der Katalog ist keine kuratierte Sammlung, sondern ein Ablageort. Das ist keine Kritik an Mozilla — es ist der direkte Preis dafür, dass jeder in fünf Minuten ein Theme erzeugen kann. Aber es heißt: Die Zahl 514.644 ist als Qualitätsargument wertlos. Wer ein gutes Theme sucht, sollte nicht die Gesamtzahl beeindruckend finden, sondern nach Nutzerzahl und Bewertung sortieren.

Die harte Auswahl: „Empfohlen” ist selten
AMO markiert besonders geprüfte Add-ons. Auch das haben wir gezählt:
| Auszeichnung | Anzahl statischer Themes |
|---|---|
| Recommended (empfohlen) | 29 |
| Line (von Mozilla/Partnern) | 134 |
| Verified / Spotlight / Strategic | 0 |
?type=statictheme&promoted=…, 31.08.2026.
29 empfohlene Themes bei 514.644 Einträgen — das ist ein Anteil von 0,0056 %. Wer Wert auf eine menschliche Prüfung legt, hat also eine sehr überschaubare Liste. Der Filter „Empfohlen” auf AMO ist damit deutlich nützlicher als jede Suchanfrage.
Themes installieren
Der Weg selbst ist unspektakulär und in drei Klicks erledigt:
- Auf addons.mozilla.org ein Theme öffnen.
- Auf „Zu Firefox hinzufügen” klicken.
- Fertig — Themes brauchen keine Berechtigungen und daher auch keinen Bestätigungsdialog mit Rechteliste.
Verwalten lassen sie sich unter about:addons → Themes. Firefox bringt außerdem drei eingebaute Themes mit (Systemfarben, Hell, Dunkel), die dort ebenfalls auftauchen. Es kann immer nur ein Theme aktiv sein.
Der Sicherheitsaspekt ist hier tatsächlich entspannt: Da ein statisches Theme keinen Code enthält und keine Berechtigungen anfordert, kann es weder Daten lesen noch Netzwerkanfragen stellen. Das Schlimmste, was ein schlechtes Theme anrichtet, ist unlesbarer Text. Wer generell wissen will, wie es um Browser-Sicherheit und Datenschutz steht, findet in unserem Artikel zu Open-Source-Webbrowsern den größeren Zusammenhang.
Ein eigenes Firefox Theme bauen — die minimale Fassung
Hier wird es interessant, denn der Aufwand ist absurd gering. Ein vollständiges Theme braucht eine einzige Datei.
Lege einen Ordner an und darin eine manifest.json:
{
"manifest_version": 2,
"name": "GetMind Cosmic",
"version": "1.0",
"description": "Ein dunkles Theme, gebaut als Praxistest für getmind.io",
"browser_specific_settings": {
"gecko": { "id": "getmind-cosmic@getmind.io" }
},
"theme": {
"colors": {
"frame": "#0b0f1a",
"tab_background_text": "#c9d1e8",
"tab_selected": "#161d33",
"tab_text": "#ffffff",
"tab_line": "#7c5cff",
"toolbar": "#111729",
"toolbar_text": "#e6ebff",
"toolbar_field": "#0b0f1a",
"toolbar_field_text": "#e6ebff",
"toolbar_field_border": "#2a3352",
"toolbar_field_focus": "#161d33",
"popup": "#111729",
"popup_text": "#e6ebff",
"popup_border": "#2a3352",
"ntp_background": "#0b0f1a",
"ntp_text": "#e6ebff",
"sidebar": "#111729",
"sidebar_text": "#e6ebff",
"icons": "#c9d1e8"
},
"properties": {
"color_scheme": "dark"
}
}
}
Das ist alles. Kein npm install, kein Build-Schritt. Wir haben dieses Manifest durch Mozillas offiziellen Prüfer geschickt:
npm install -g addons-linter
addons-linter .
Ergebnis: 0 Fehler, 0 Warnungen, 0 Hinweise. Gepackt als ZIP ist das Theme 528 Byte groß — mit Header-Bild waren es 940 Byte. Zum Vergleich: Das meistgenutzte bildbasierte Theme im Katalog (Dark space) bringt 2,7 MB auf die Waage.
Sofort ausprobieren, ohne Signierung
Zum Testen muss nichts hochgeladen werden:
about:debugging#/runtime/this-firefoxaufrufen- „Temporäres Add-on laden…” klicken
- Die
manifest.jsonauswählen
Das Theme ist sofort aktiv. Wichtig: Es verschwindet beim nächsten Firefox-Neustart wieder. Für dauerhafte Installation führt kein Weg an der Signierung vorbei — dazu unten mehr.
Die 42 Farbschlüssel
Firefox kennt laut eigenem Schema genau 42 Farbschlüssel. Wir haben sie direkt aus theme.json in mozilla-central ausgelesen, statt eine Blogliste abzuschreiben. Die wichtigsten, nach Wirkungsbereich sortiert:
| Bereich | Schlüssel |
|---|---|
| Fensterrahmen | frame, frame_inactive |
| Tabs | tab_selected, tab_text, tab_background_text, tab_line, tab_loading, tab_background_separator |
| Symbolleiste | toolbar, toolbar_text, bookmark_text, toolbar_top_separator, toolbar_bottom_separator, toolbar_vertical_separator |
| Adressleiste | toolbar_field, toolbar_field_text, toolbar_field_border, toolbar_field_focus, toolbar_field_text_focus, toolbar_field_border_focus, toolbar_field_highlight, toolbar_field_highlight_text |
| Symbole | icons, icons_attention, button_background_hover, button_background_active |
| Menüs/Popups | popup, popup_text, popup_border, popup_highlight, popup_highlight_text |
| Neuer Tab | ntp_background, ntp_card_background, ntp_text |
| Seitenleiste | sidebar, sidebar_border, sidebar_text, sidebar_highlight, sidebar_highlight_text |
Drei Schlüssel sind veraltet und werden von Firefox ab Version 70 bzw. 89 schlicht ignoriert:
| Veralteter Schlüssel | Ersatz | Ignoriert ab |
|---|---|---|
accentcolor | frame | Firefox 70 |
textcolor | tab_background_text | Firefox 70 |
toolbar_field_separator | — | Firefox 89 |
headerURL (Bild) | theme_frame | Firefox 70 |
Wer accentcolor und textcolor heute noch einträgt, bekommt vom Linter übrigens harte Fehler, nicht nur Warnungen — das haben wir getestet. Bei aktuellem Firefox (Stand: 154.0.1) sind diese Aliase seit über 80 Versionen tot.

Wie viele Farben braucht man wirklich?
Wir haben die 50 meistgenutzten Themes heruntergeladen und ihre Manifeste ausgewertet:
| Kennzahl der Top 50 | Wert |
|---|---|
| Themes ohne jedes Bild | 37 von 50 (74 %) |
| Themes mit Bildern | 13 (davon 12 mit additional_backgrounds, 1 mit theme_frame) |
| Genutzte Farbschlüssel: Median | 26 von 42 |
| Genutzte Farbschlüssel: Minimum / Maximum | 2 / 38 |
| Paketgröße: Median | 9.487 Byte |
| Pakete unter 10 KB | 38 von 50 |
Mit separatem dark_theme-Block | 9 (18 %) |
manifest.json ausgewertet.
🔑 Das widerspricht der verbreiteten Vorstellung, ein Theme sei in erster Linie ein Bild. Drei Viertel der erfolgreichsten Themes sind reine Farbdefinitionen — und der Median liegt bei unter 10 Kilobyte. Wer „Theme” hört und an ein 4K-Panoramabild denkt, denkt an die Ausnahme.
Bemerkenswert ist auch das Minimum von 2 Farbschlüsseln. Tatsächlich sind genau zwei Angaben verpflichtend genug, um ein sinnvolles Ergebnis zu liefern: frame und tab_background_text. Alles andere leitet Firefox ab. Wer aber nur diese zwei setzt, riskiert, dass Menüs und Adressleiste im Standardton bleiben und beißen — deshalb der Median von 26.
Dark Mode richtig umsetzen
Hier machen viele Anleitungen es sich zu einfach. Es gibt zwei Mechanismen, und sie tun Verschiedenes.
1. color_scheme — sagt Firefox, welche Sorte Theme das ist:
"properties": {
"color_scheme": "dark",
"content_color_scheme": "auto"
}
Erlaubte Werte sind auto, light, dark und system. Das steuert unter anderem, ob Firefox seine eigenen UI-Elemente hell oder dunkel zeichnet, dort wo das Theme nichts vorgibt.
2. dark_theme — ein kompletter zweiter Farbsatz:
{
"theme": { "colors": { "frame": "#ffffff", "tab_background_text": "#000000" } },
"dark_theme": { "colors": { "frame": "#000000", "tab_background_text": "#ffffff" } }
}
theme gilt dann im hellen Systemmodus, dark_theme im dunklen. Firefox schaltet automatisch um. Genau das macht profiles_blue, eines der meistgenutzten Themes im Katalog.
Nur 9 von 50 Top-Themes nutzen diesen zweiten Block — die große Mehrheit legt sich auf eine Farbwelt fest. Das ist eine legitime Designentscheidung, aber es heißt: Die meisten Themes ignorieren den Systemmodus des Nutzers.
Der Befund, der uns am meisten überrascht hat
Beim Testen des Linters haben wir systematisch kaputte Manifeste gebaut, um zu sehen, was er auffängt. Das Ergebnis ist zweigeteilt — und die zweite Hälfte ist eine echte Falle.
Was der Linter zuverlässig fängt:
| Manipulation | Ergebnis |
|---|---|
theme_frame zeigt auf nicht existierende Datei | Fehler |
headerURL statt theme_frame (veraltet) | Fehler |
accentcolor / textcolor (veraltet) | Fehler |
color_scheme: "midnight" (ungültiger Wert) | Fehler |
| Farbwert als Zahl statt String | Fehler |
browser_action neben theme | Fehler |
Was der Linter stillschweigend durchlässt:
| Manipulation | Ergebnis |
|---|---|
"toolbar": "dark-blue" (kein CSS-Farbname) | 0 Fehler, 0 Warnungen |
"toolbar": "#GGGGGG" (unmögliches Hex) | 0 Fehler, 0 Warnungen |
"tab_text": "#12345" (fünf Stellen) | 0 Fehler, 0 Warnungen |
"tab_backgrund_text" (Tippfehler im Schlüssel) | 0 Fehler, 0 Warnungen, 0 Hinweise |
addons-linter 10.10.0 gegen ein ansonsten gültiges Theme gefahren, Ausgabe im JSON-Format ausgewertet.
🔑 Das ist der wichtigste praktische Befund des Artikels: Ein Theme kann den offiziellen Prüfer fehlerfrei passieren und trotzdem falsch aussehen. Und die Ursache steht im Firefox-Quelltext. In ext-theme.js werden Farbwerte nicht validiert, sondern durchgereicht:
let cssColor = val;
if (Array.isArray(val)) {
cssColor = "rgb" + (val.length > 3 ? "a" : "") + "(" + val.join(",") + ")";
}
Der Wert landet direkt als CSS-Eigenschaft. Ist er ungültig, greift die normale CSS-Regel: Die Deklaration wird verworfen, und das Element behält seine Standardfarbe. Kein Absturz, keine Konsolenmeldung, kein roter Balken. Nur eine Symbolleiste, die aussieht wie vorher.
Beim Tippfehler im Schlüsselnamen ist es dieselbe Mechanik aus der anderen Richtung: Das Schema erlaubt zusätzliche Eigenschaften im colors-Objekt, also ist tab_backgrund_text formal in Ordnung — Firefox kennt den Schlüssel nur nicht und ignoriert ihn.
Was das für die Praxis heißt: Ein grüner Linter-Lauf beweist, dass die Struktur stimmt. Er beweist nicht, dass die Farben ankommen. Die einzige belastbare Prüfung ist, das Theme über about:debugging temporär zu laden und hinzusehen. Wer nur auf „0 errors” schaut, prüft die Verpackung, nicht den Inhalt.
Das ist übrigens ein Muster, das uns in der Praxis ständig begegnet — Werkzeuge, die eine Erfolgsmeldung liefern, während das eigentliche Ziel verfehlt ist. Wer mehr über Fehlerbilder dieser Art lesen will, findet in unserem Artikel zu IT-Sicherheitslücken einen dokumentierten Fall, bei dem genau diese Art von stiller Fehlannahme fünf Tage lang unentdeckt blieb.
Bilder im Theme: was wirklich gilt
Wenn du doch ein Bild verwenden willst, gibt es drei Schlüssel unter images:
| Schlüssel | Bedeutung |
|---|---|
theme_frame | Das Hauptbild, verankert oben rechts im Kopfbereich |
additional_backgrounds | Array weiterer Bilder, einzeln positionierbar und kachelbar |
headerURL | Veraltet, seit Firefox 70 ignoriert |
Für die Positionierung stehen additional_backgrounds_alignment (13 Werte von top bis right bottom) und additional_backgrounds_tiling (no-repeat, repeat, repeat-x, repeat-y) zur Verfügung.
Zur Bildgröße nennt Mozilla eine klare Vorgabe:
„The area your header image needs to fill is a maximum of 200 pixels high. […] Practically, this means you would need to allow for a width of up to 5120 pixels wide.” — extensionworkshop.com, Static themes
Der Rat aus derselben Quelle ist aber, kein 5120 Pixel breites Bild zu bauen, sondern ein schmaleres mit transparentem linken Rand, das in die Hintergrundfarbe ausläuft. Das erklärt auch, warum 12 der 13 bildbasierten Top-Themes additional_backgrounds statt theme_frame nutzen: Damit lassen sich Kacheln und weiche Übergänge sauberer bauen.
Praktisch relevant: Wir haben Bilder mit 6000×400 und 10×10 Pixeln getestet — der Linter meldet in beiden Fällen nichts. Auch die Bildgröße ist also eine Sache des Hinsehens, nicht der Werkzeugprüfung.
Theme oder userChrome.css? Der wichtigste Unterschied
Das ist die Frage, an der die meisten Anleitungen scheitern, weil sie beides „Firefox anpassen” nennen. Technisch haben die zwei Wege fast nichts gemeinsam.
| Theme | userChrome.css | |
|---|---|---|
| Was ist es? | WebExtension ohne Code | Benutzer-Stylesheet im Profil |
| Was kann es? | Nur Farben und Bilder vordefinierter Bereiche | Beliebiges CSS auf die gesamte Oberfläche |
| Layout ändern? | Nein | Ja — Elemente verschieben, ausblenden, umbauen |
| Standardmäßig aktiv? | Ja | Nein, muss erst freigeschaltet werden |
| Verteilbar? | Ja, über AMO, ein Klick | Nur als Datei zum Selbstkopieren |
| Signierung nötig? | Ja (dauerhaft) | Nein |
| Bricht bei Updates? | Praktisch nie | Regelmäßig |
| Zielgruppe | Alle | Fortgeschrittene |
userChrome.css ist standardmäßig deaktiviert. Das ist keine Vermutung — wir haben es in Firefox’ Voreinstellungen nachgeschlagen:
// modules/libpref/init/all.js
pref("toolkit.legacyUserProfileCustomizations.stylesheets", false);
Schon der Name der Einstellung sagt, wie Mozilla dazu steht: legacy. Wer sie nutzen will, muss:
about:configöffnen undtoolkit.legacyUserProfileCustomizations.stylesheetsauftruesetzen- Im Profilordner (
about:support→ „Profilordner öffnen”) einen Ordnerchromeanlegen - Darin
userChrome.csserstellen - Firefox neu starten
Der entscheidende Nachteil steht nicht im Setup, sondern in der Zukunft: userChrome.css greift auf interne Firefox-Selektoren zu, die Mozilla ohne Vorwarnung ändern darf. Ein Firefox-Update kann eine Anpassung jederzeit wirkungslos machen oder die Oberfläche zerlegen. Ein Theme kann das nicht — es benutzt eine dokumentierte, stabile Schnittstelle.
Die Faustregel: Willst du Farben, nimm ein Theme. Willst du das Layout ändern — Tableiste unten, Elemente ausblenden, kompaktere Abstände — brauchst du userChrome.css und musst mit dem Wartungsaufwand leben.

Ohne Code: der AMO Theme Generator und Firefox Color
Nicht jeder will JSON schreiben. Mozilla bietet zwei grafische Wege:
- AMO Theme Generator — im Entwicklerbereich von addons.mozilla.org. Farben und Bild auswählen, direkt veröffentlichen. Praktischer Nebeneffekt laut Mozilla-Doku: Wer sein Theme über den Generator aktualisiert, muss die Versionsnummer nicht manuell hochzählen.
- Firefox Color — Farben live im Browser ausprobieren, Ergebnis als teilbare URL oder als fertiges Add-on-Paket exportieren.
Beide erzeugen am Ende dieselbe manifest.json. Der Unterschied ist nur die Bedienung — und die Grenze: Über die Oberfläche erreicht man nicht alle 42 Farbschlüssel und keine Mehrfachbilder. Für ein Theme, das wirklich jeden Bereich abdeckt, führt der Weg über die Datei.
Veröffentlichen auf AMO
Wenn das Theme dauerhaft installiert oder geteilt werden soll, muss es signiert werden. Mozilla ist da eindeutig:
„Static themes are built using a simple collection of files that are packaged and signed by addons.mozilla.org before they can be distributed and installed on Firefox.” — extensionworkshop.com, Static themes
Der Ablauf:
- Paket bauen — den Ordnerinhalt zippen. Wichtig: die
manifest.jsonmuss auf oberster Ebene im Archiv liegen, nicht in einem Unterordner. - Vorher prüfen —
addons-linter dein-theme.zip. Spart eine Ablehnungsrunde. - Hochladen — über den Developer Hub.
- Verteilungsart wählen — öffentlich auf AMO gelistet, oder „self-distribution”: Man bekommt eine signierte Datei zurück und verteilt sie selbst.
- Warten — Themes werden geprüft.
Für Aktualisierungen gilt: Bei einem hochgeladenen Paket muss die version höher sein als die bisherige, sonst lehnt AMO ab.

Was abgelehnt wird
Die Add-on-Richtlinien nennen für Themes zwei konkrete Ausschlussgründe:
„Themes that feature low-quality, stretched, or blank images, as well as those themes in which the header image is misaligned, are not permitted.”
„Duplicate themes are not permitted.”
— extensionworkshop.com, Add-on Policies, Stand 30.04.2026
Der zweite Punkt ist bei 514.644 vorhandenen Themes und einer Nutzungsquote von 31 % der Grund, warum ein weiteres „dunkles Theme mit Blauton” wenig Sinn ergibt. Es existiert bereits, vermutlich mehrfach.
Häufige Fehler und ihre Ursachen
| Symptom | Wahrscheinliche Ursache |
|---|---|
| Theme installiert, aber nichts ändert sich | Farbwert ungültig — CSS verwirft ihn stumm |
| Einzelner Bereich bleibt Standardfarbe | Tippfehler im Schlüsselnamen (Linter meldet das nicht!) |
| Theme weg nach Neustart | Über about:debugging temporär geladen |
| Text unlesbar auf dem Header-Bild | tab_background_text nicht zum Bild passend gesetzt |
| Menüs beißen sich mit dem Rest | popup, popup_text, popup_border vergessen |
| Upload wird abgelehnt | version nicht erhöht, oder ZIP mit Unterordner |
Linter meldet Fehler bei accentcolor | Veraltet — durch frame ersetzen |
| Erweiterung + Theme funktioniert nicht | Nicht erlaubt — dynamisches Theme nötig |
Der zweite Punkt in dieser Tabelle ist der teuerste, weil er nirgends gemeldet wird. Unser Rat aus dem Test: Nach jeder Änderung das Theme über about:debugging laden und jeden Bereich einmal ansehen — Tab, Adressleiste, geöffnetes Menü, neuer Tab, Seitenleiste. Fünf Blicke, die eine Stunde Suche sparen.
Fazit: klein, sicher, unterschätzt
Firefox Themes sind das seltene Beispiel einer Anpassungsschnittstelle, die genau so einfach ist, wie sie aussieht. Eine Datei, kein Code, keine Berechtigungen, 528 Byte. Wer schon einmal ein CSS-Framework konfiguriert hat, ist damit in zehn Minuten fertig.
Die drei Dinge, die wir beim Messen gelernt haben und die man sonst nirgends liest:
- Die halbe Million Themes ist keine Auswahl, sondern ein Ablageort. 69 % haben null Nutzer, und genau 29 sind von Mozilla empfohlen. Sortiere nach Nutzern, nicht nach Neuheit.
- Ein Theme ist meistens kein Bild. 37 der 50 meistgenutzten Themes kommen komplett ohne Grafik aus, der Median liegt bei 9,5 KB.
- Der grüne Linter-Lauf ist eine Aussage über die Struktur, nicht über das Ergebnis. Ungültige Farben und Tippfehler in Schlüsselnamen passieren ihn lautlos, weil Firefox Farbwerte ungeprüft an CSS weiterreicht.
Und die Abgrenzung, die am meisten Zeit spart: Farben → Theme. Layout → userChrome.css. Wer das eine mit dem anderen versucht, kämpft gegen das falsche Werkzeug.
Wenn dich interessiert, wie Firefox im Vergleich zu anderen quelloffenen Browsern dasteht, lies unseren Deep-Dive zu Open-Source-Webbrowsern. Und wer mit dem Gedanken spielt, mehr lokal statt in der Cloud laufen zu lassen, findet in lokale KI einen praxisnahen Einstieg.
Häufige Fragen zu Firefox Themes
Was sind Firefox Themes?
Firefox Themes sind WebExtensions ohne Programmcode, die das Aussehen der Browseroberfläche verändern. Sie bestehen aus einer manifest.json mit einem theme-Schlüssel, der Farben für bis zu 42 vordefinierte Bereiche und optional Bilder festlegt. Da sie keinen Code enthalten und keine Berechtigungen anfordern, können sie keine Daten lesen oder Netzwerkanfragen stellen.
Wie viele Firefox Themes gibt es?
Auf addons.mozilla.org lagen am 31.08.2026 genau 514.644 statische Themes — mehr als fünfmal so viele wie Erweiterungen (99.578). Diese Zahl ist allerdings irreführend: In unserer Stichprobe hatten 69 % der Themes null tägliche Nutzer, und nur 29 Themes tragen die Auszeichnung „Empfohlen”.
Wie erstelle ich ein eigenes Firefox Theme?
Du legst einen Ordner an und schreibst darin eine manifest.json mit manifest_version: 2, einem Namen, einer Version und einem theme-Objekt mit Farbwerten. Mehr braucht es nicht — kein Build-Prozess, kein JavaScript. Zum Testen lädst du die Datei über about:debugging#/runtime/this-firefox als temporäres Add-on. Unser fertiges Beispiel-Theme ist gepackt 528 Byte groß.
Brauche ich ein Bild für ein Firefox Theme?
Nein. Von den 50 meistgenutzten Themes auf AMO nutzen 37 (74 %) überhaupt kein Bild und definieren ausschließlich Farben. Der Median der Paketgröße liegt bei 9.487 Byte, und 38 der 50 Pakete sind kleiner als 10 KB.
Was ist der Unterschied zwischen einem Theme und userChrome.css?
Ein Theme ändert ausschließlich Farben und Bilder vordefinierter Oberflächenbereiche über eine dokumentierte, stabile Schnittstelle. userChrome.css ist ein Benutzer-Stylesheet, mit dem beliebiges CSS auf die gesamte Firefox-Oberfläche angewendet werden kann — inklusive Layoutänderungen. Dafür ist es standardmäßig deaktiviert (toolkit.legacyUserProfileCustomizations.stylesheets steht auf false) und bricht regelmäßig bei Firefox-Updates, weil es interne Selektoren verwendet.
Warum sieht mein Theme nicht so aus wie erwartet, obwohl der Linter keinen Fehler meldet?
Weil addons-linter Farbwerte nicht prüft. Wir haben getestet: "toolbar": "dark-blue", "#GGGGGG" und "#12345" passieren den Linter mit null Fehlern und null Warnungen. Firefox reicht den Wert ungeprüft an CSS weiter — ist er ungültig, verwirft CSS die Deklaration stumm und der Bereich behält seine Standardfarbe. Dasselbe gilt für Tippfehler in Schlüsselnamen wie tab_backgrund_text. Die einzige verlässliche Prüfung ist, das Theme temporär zu laden und hinzusehen.
Wie mache ich ein Theme, das sich an den Dark Mode anpasst?
Du definierst zwei Farbsätze: theme für den hellen und dark_theme für den dunklen Systemmodus. Firefox schaltet automatisch um. Zusätzlich kannst du über "properties": { "color_scheme": "dark" } festlegen, wie Firefox seine eigenen Elemente zeichnet. Nur 9 der 50 meistgenutzten Themes nutzen den dark_theme-Block.
Muss ich mein Theme bei Mozilla veröffentlichen?
Zum Ausprobieren nicht — über about:debugging lässt es sich temporär laden, verschwindet aber beim Neustart. Für eine dauerhafte Installation muss das Theme von addons.mozilla.org signiert werden. Du kannst dabei zwischen öffentlicher Listung auf AMO und „self-distribution” wählen, bei der du die signierte Datei selbst verteilst.
Kann ich ein Theme und eine Erweiterung in ein Paket packen?
Nein. Mozillas Dokumentation schließt das aus, und der Linter erzwingt es: Ein browser_action-Schlüssel neben theme führt zum harten Fehler "/" must NOT have additional properties. Wer beides braucht, baut ein dynamisches Theme — eine normale Erweiterung mit der theme-Berechtigung, die die Darstellung zur Laufzeit setzt.
Welche Farbschlüssel sind veraltet?
accentcolor (ersetzt durch frame) und textcolor (ersetzt durch tab_background_text) werden seit Firefox 70 ignoriert, ebenso das Bildfeld headerURL (ersetzt durch theme_frame). toolbar_field_separator wird seit Firefox 89 ignoriert. Der Linter meldet die Verwendung von accentcolor und textcolor heute als Fehler, nicht nur als Warnung.
