Design



core🏠Pro Seite

Das Core-Modul Design ist die zentrale Stelle für Farben, Schriften, Bilder und Längen einer Site. Es zeigt, welche Werte das Theme der Site mitbringt, und verwaltet die Werte, die andere Module anmelden. Jeder Wert hat einen Standard im Code des Moduls. Gespeichert wird nur, was jemand bewusst ändert, entweder als eigener Wert oder als Verweis auf einen Theme-Wert oder einen anderen Wert. Ein falscher Farbton braucht damit kein Update mehr, er wird pro Site im Dashboard korrigiert.

Allgemein

Woher Farben und Schriften kommen


Von allgemein nach speziell: das Theme (theme.json und die Stil-Variante der Site), die gemeinsamen Framework-Werte, die Werte der einzelnen Module und zuletzt das Zusätzliche CSS der Site. Module verweisen standardmäßig auf das Theme oder bringen eigene Standardwerte mit. Wer eine Site umfärben will, ändert die Stil-Variante, alle Verweise ziehen mit.

Seite „Allgemein“


Unter Weinhold → Design zeigt die erste Seite die Werte des Themes: Farben mit Farbfeld, Schriften mit Vorschau, Schriftgrößen, Abstände sowie Inhalts- und weite Breite, jeweils mit dem Namen der CSS-Variable. Ein Klick auf eine Variable kopiert sie, etwa für eigenes CSS. Die Werte werden live aus WordPress gelesen und stimmen damit immer mit der aktiven Stil-Variante überein. Darunter stehen die gemeinsamen Framework-Werte, eine Übersicht der angemeldeten Module und Export/Import.

Framework-Werte


Akzent, Text, Text gedämpft, Fläche, Linie, Erfolg, Warnung, Fehler, Hinweis und Eckenrundung. Akzent, Text, Fläche und Linie zeigen standardmäßig auf das Theme, die Statusfarben haben feste Standardwerte. Module können auf diese Werte verweisen, statt eigene Farben festzulegen.

Ein Tab pro Modul


Jedes Modul, das Werte anmeldet, bekommt einen eigenen Tab. Pro Wert gibt es drei Möglichkeiten: Standard (der Wert aus dem Code des Moduls), Eigener Wert (Farbwähler, Schriftauswahl aus den lokalen Theme-Schriften, Bild aus der Mediathek oder eine Länge wie 12px) oder Verweis (auf eine Farbe, Schrift oder Größe des Themes oder auf einen Wert eines anderen Moduls). Die Vorschau zeigt den wirksamen Wert, auch abgeleitete Werte wie die hellen und dunklen Akzente von Blog List.

Vorlagen


Module können Vorlagen mitbringen, Blog List etwa Pergament & Bronze und Indigo. Schlägt ein Modul für seine Werte Theme-Verweise vor, gibt es automatisch die Vorlage „Aus dem Theme“. Eine Vorlage füllt nur das Formular, gespeichert wird erst mit „Speichern“. „Alles auf Standard“ setzt alle Werte des Tabs zurück.

Export und Import


Alle geänderten Werte der Site stehen als JSON zum Kopieren bereit, etwa als Sicherung vor größeren Änderungen oder zum Übertragen auf eine andere Site. Beim Import werden die Werte der enthaltenen Module ersetzt, alle anderen bleiben unberührt. Jeder Wert wird dabei wie beim Speichern geprüft. Änderungen und Importe landen im Audit-Log, mit vorherigem und neuem Wert.

Angemeldete Module


Stand 1.1.0: Blog List (Farben und Schriften der Beiträge und Blog-Listen), Custom Header und Custom Footer (Button-Schrift, Menü-Aussehen und Button-Form), Familien-Bestellungen, Wunschliste, RudelRoots und Haushaltsbuch (jeweils alle Farben, Standard sind die bisherigen Farben). Weitere Module werden nach und nach umgestellt.

Dateien

modules/design_core.php – Modul-Header des Core-Moduls, lädt die Implementierung.

modules/design/design.php – Registry, gespeicherte Werte, Übersetzung von Werten und Verweisen in CSS, Ausgabe der Framework-Werte und Lesen der Theme-Werte.

modules/design/admin.php – Admin-Seite (Allgemein und ein Tab pro Gruppe), Speichern, Export/Import und Audit-Log-Einträge. Wird nur im Backend geladen.

modules/design/assets/weinhold_design_admin.js – Umschalten zwischen Standard, eigenem Wert und Verweis, Farbwähler, Mediathek, Vorlagen und Kopieren.

modules/design/assets/weinhold_design_admin.css – Styles der Admin-Seite.

Für Entwickler

Werte anmelden


Ein Modul meldet seine Werte in seiner init()-Funktion an, eine Gruppe pro Modul mit der Modul-ID als Namen. Standardwerte gehören in die Anmeldung, nicht in die Datenbank. Im CSS des Moduls stehen nur noch Variablen, am besten mit Ersatzwert, etwa var(--weinhold-calendar-accent, #00897b).

FunktionBeschreibung
weinhold_design_register($group, $args)Meldet eine Gruppe an: label, description, order, fields (Schlüssel mit type, label, description, default, fallback, theme, var) und presets
weinhold_design_inline($group, $handle)Hängt die Variablen der Gruppe als :root-Block an ein registriertes Stylesheet, nach dessen Standardwerten
weinhold_design_register_colors($group, $label, $description, $order, $var_prefix, $colors)Kurzform für reine Farbwerte: $colors ist ein Array Schlüssel = (Beschriftung, Standard, Beschreibung, Theme-Vorschlag), die Variable heißt Präfix plus Schlüssel (seit 1.1.0)
weinhold_design_font_rules_css($group)Gibt für jedes Schriftfeld mit Selektor und gesetztem Wert die Regel "Selektor { font-family: var(…) }" aus; weinhold_design_inline() hängt sie automatisch an. Schriftfelder bekommen dafür den Schlüssel selector, in der Kurzform als siebter Parameter $fonts = Schlüssel = (Beschriftung, Selektor, Beschreibung) (seit 1.2.0)
weinhold_ui_style()Registriert die gemeinsamen UI-Bausteine (assets/weinhold_ui.css) und gibt den Handle für die Abhängigkeiten des eigenen Stylesheets zurück; Farben über die Variablen --weinhold-ui-* auf dem Wrapper des Moduls (seit 1.1.0)
weinhold_design_group_css($group)Der :root-Block einer Gruppe als Text, etwa für ein eigenes style-Element
weinhold_design_value_css($group, $key)Fertiger CSS-Wert eines Felds, leer wenn nichts auszugeben ist
weinhold_design_var($group, $key, $fallback)var() eines Felds zum Einsetzen in CSS
weinhold_design_is_set($group, $key)Ob ein Wert bewusst gesetzt ist (eigener Wert oder Verweis)
weinhold_design_theme_tokens()Farben, Schriften, Größen, Abstände und Breiten des aktiven Themes

Feldtypen


TypEigenerWert
colorHex-Farbe(3, 6 oder 8 Stellen), transparent oder currentColor
fontSlugeiner Schrift aus includes/weinhold_fonts.php, die Schrift wird für die Seite angefordert
imageIDaus der Mediathek oder eine http(s)-URL, ausgegeben als url()
lengthZahlmit px, rem, em, %, vh, vw oder ch, oder 0
cssFreierCSS-Wert ohne Semikolon, geschweifte und spitze Klammern

Verweise


VerweisAusgabe
theme:color:primaryvar(--wp--preset--color--primary), entsprechend theme:font, theme:size und theme:spacing
field:framework.accentvar() des angemeldeten Felds, hier --weinhold-framework-accent
css:AusdruckFreier CSS-Ausdruck, z. B. color-mix, nur als Standard oder in Vorlagen

Hinter Theme-Verweisen steht der Ersatzwert des Felds (fallback). Kennt das Theme einen Wert nicht, etwa auf einer Site ohne Block-Theme, greift dieser Ersatzwert.

Speicherung und Filter


NameBeschreibung
weinhold_design_valuesOption pro Site: Gruppe, Schlüssel, darin mode (custom oder ref) und value. Fehlende Einträge bedeuten Standard
weinhold_design_group_varsFilter mit den Variablen einer Gruppe und der Gruppen-ID, damit Module abgeleitete Werte ergänzen können (Blog List leitet so hell und dunkel aus dem Akzent ab)

Besonderheiten

Standardwerte werden bewusst nicht in die Datenbank geschrieben. Würden sie beim ersten Speichern mitgespeichert, käme eine spätere Verbesserung des Standards im Code auf dieser Site nie an. „Standard“ wählen löscht den Eintrag einfach wieder.

Die Farbpalette der Site selbst bleibt in der Stil-Variante des Themes, die Seite „Allgemein“ zeigt sie nur an. So gibt es genau eine Stelle, an der man eine Site umfärbt, und die Module zeigen per Verweis darauf.

Variablen, die eine Site in eigenem CSS auf einem enger gefassten Element setzt, etwa im Header-HTML auf dem Header-Container, haben Vorrang vor den Werten aus diesem Modul, die auf :root stehen. Bestehende Gestaltungen bleiben dadurch unverändert.

Ein gespeicherter Verweis, den die aktuelle Palette nicht kennt, etwa nach einem Wechsel der Stil-Variante, bleibt erhalten und wird im Formular als „Gespeichert“ angeboten. Er greift dann auf seinen Ersatzwert zurück.

Texte gehören nicht in dieses Modul. Übersetzbare feste Beschriftungen pflegt das Modul Mehrsprachigkeit.

Versionshistorie

VersionDatumÄnderung
1.0.006.11.2026Erste Veröffentlichung: Registry für Module, Seite Allgemein mit Theme-Werten, Framework-Werte, Tabs mit eigenem Wert oder Verweis, Vorlagen, Export/Import und Audit-Log. Angebunden: Blog List, Custom Header, Custom Footer.
1.1.007.11.2026Kurzform weinhold_design_register_colors() für Module mit reinen Farbwerten. Neu angebunden: Familien-Bestellungen, Wunschliste, RudelRoots und Haushaltsbuch. Dazu gemeinsame UI-Bausteine des Frameworks (weinhold_ui.css: Karte, Hinweis, Tabelle, Formularfelder, Badge, Buttons), deren Farben über die Framework-Werte oder die Werte des jeweiligen Moduls laufen.
1.2.007.11.2026Schriftfelder mit Selektor: Ist eine Schrift gesetzt, gibt das Modul Design die passende font-family-Regel selbst aus (weinhold_design_font_rules_css()), Kurzform weinhold_design_register_colors() nimmt optional Schriften an. Damit lassen sich die Schriften von Familien-Bestellungen, Wunschliste, RudelRoots und Haushaltsbuch einstellen.
1.2.107.11.2026Fonts inside a module's base font (headings, buttons, numbers) show "like Schrift: Text (otherwise theme)" as default instead of "inherit from theme", because without their own choice they follow the module's base font (field key inherits).