🎨 Theme-Erstellungsleitfaden
Lerne das ForcedSkin-Theme-JSON-Schema und die Regeln für Palettenfelder — gestalte Paletten für beliebige Websites und reiche sie für die Community ein.
Schnellstart
Modus wählen
Entscheide, ob das Theme im light (helle Paletten) oder dark (dunkle Paletten) läuft.
Farben ausfüllen
Folge der Feldspezifikation unten — mindestens alle erforderlichen Keys müssen in deinem JSON vorhanden sein.
Zur Prüfung einreichen
Auf der Themes -Seite klicke auf „Theme einreichen“. Admins geben frei, bevor es für alle sichtbar wird.
Farbfelder
Alle Paletteneinträge müssen Hex-Strings (#RRGGBB) oder CSS-rgba(...)-Werte sein.
backgroundErforderlichPrimärer Seitenhintergrund — helle Themes tendieren zu fast Weiß, dunkle zu tiefen Neutraltönen. CSS-Var: --color-background
Beispiel: #F8FFF8 / #101410
foregroundErforderlichPrimärer Text — gut lesbar kontrastiert zum Hintergrund. CSS-Var: --color-foreground
Beispiel: #2C3E2C / #E0E0E0
surfaceErforderlichKarten-/Panel-/Container-Füllung — leicht vom Hintergrund abgehoben. CSS-Var: --color-surface
Beispiel: #F0FFF0 / #1E221E
surfaceMutedOptionalGedämpfte Hover-/Untercontainer, abgestuft von surface. CSS-Var: --color-surface-muted
Beispiel: #F5FDF5 / #161816
borderErforderlichHaarlinien & Trennlinien — typischerweise niedrig gesättigte Grautöne/halbtransparente Töne. CSS-Var: --color-border
Beispiel: #D8E8D8 / #333633
mutedErforderlichZurückgenommener Text & Platzhalter. CSS-Var: --color-muted
Beispiel: #6C7E6C / #A0A0A0
primaryErforderlichPrimärer Marken-Verlauf für Buttons/Links/Focus — einzelne Farbe oder Verlauf (50–950). Mindestens Shades 500/600/700 erforderlich. Mappt auf CSS-Variablen --color-primary- plus Shade-Tokens (50–950)
Beispiel: { "500": "#4CAF50", "600": "#43A047", "700": "#388E3C" }
secondaryOptionalSekundäre Akzent-Verläufe für Chips/Ghost-Buttons — Struktur wie primary — mappt auf --color-secondary- plus Shade-Tokens
Beispiel: { "500": "#AAA", ... }
accentOptionalHighlights, Badges, Spotlight-Farben — Struktur wie primary — mappt auf --color-accent- plus Shade-Tokens
Beispiel: { "500": "#FFEB3B", ... }
varsOptionalBeliebige CSS-Custom-Properties — Keys ohne „--“; Werte werden wörtlich auf :root angewendet
Beispiel: { "custom-radius": "8px" }
Farbverläufe
Die JSON-Keys primary, secondary und accent akzeptieren jeweils einen der folgenden Erstellungsstile:
Kompakt (drei Kernfarbtöne)
{
"primary": {
"500": "#4CAF50",
"600": "#43A047",
"700": "#388E3C"
}
}Die Engine setzt Shade 500 als Standardfarbton; 600/700 decken Hover-/Active-Zustände ab.
Voller Verlauf (50 → 950, elf Stufen)
{
"primary": {
"50": "#E8F5E9",
"100": "#C8E6C9",
...
"500": "#4CAF50",
...
"950": "#0F3D12"
}
}Die Veröffentlichung des vollständigen Verlaufs sorgt überall für sanftere tonale Übergänge.
Vollständige Beispiele
🌿 Helles Beispiel (light-mint)
{
"background": "#F8FFF8",
"foreground": "#2C3E2C",
"surface": "#F0FFF0",
"surfaceMuted": "#F5FDF5",
"border": "#D8E8D8",
"muted": "#6C7E6C",
"primary": {
"50": "#E8F5E9",
"100": "#C8E6C9",
"200": "#A5D6A7",
"300": "#81C784",
"400": "#66BB6A",
"500": "#4CAF50",
"600": "#43A047",
"700": "#388E3C",
"800": "#2E7D32",
"900": "#1B5E20",
"950": "#0F3D12"
},
"secondary": {
"500": "#AAAAAA",
"600": "#999999",
"700": "#777777"
},
"accent": {
"500": "#FFEB3B",
"600": "#FDD835",
"700": "#FBC02D"
}
}🌑 Dunkles Beispiel (dark-forest)
{
"background": "#101410",
"foreground": "#E0E0E0",
"surface": "#1E221E",
"surfaceMuted": "#161816",
"border": "#333633",
"muted": "#A0A0A0",
"primary": {
"500": "#4A9B6B",
"600": "#3F855C",
"700": "#346F4D"
}
}Benutzerdefinierte Variablen (vars)
Wenn Standard-Tokens nicht ausreichen, füge zusätzliche CSS-Vars unter einem vars -Knoten hinzu — lasse das -- -Präfix in jedem Key weg.
{
"background": "#101010",
"foreground": "#E0E0E0",
...
"vars": {
"radius-card": "16px",
"shadow-card": "0 2px 12px rgba(0,0,0,0.4)"
}
}Slug-Regeln (name)
- Nur Kleinbuchstaben (ASCII), Ziffern und Bindestrich (
a-z 0-9 -). - Bevorzuge prägnante „Modus-Stil“-Paare wie „dark-ocean“ oder „light-sakura“.
- Slugs müssen global eindeutig sein — nach der Veröffentlichung nicht mehr änderbar, also vorher sorgfältig prüfen.
- Maximale Länge 50 Zeichen.
Einreichung & Prüfung
🔐 Vor dem Einreichen anmelden.
⏳ Einreichungen landen in der Prüfwarteschlange — das Team antwortet in der Regel innerhalb von 1–3 Werktagen.
✅ Freigegebene Themes erscheinen im Marktplatz und können von allen favorisiert werden.
❌ Ungültige Farben, widersprüchliche Namen oder Richtlinienverstöße werden abgelehnt — löschen und eine korrigierte Version einreichen.
🚫 Kein bösartiger Code, Hassinhalte oder offensichtlich rechtsverletzende Paletten.
Bereit? Geh zum Theme-Marktplatz und veröffentliche deine Palette.
🎨 Theme einreichen