Design
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.
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.Dateien
modules/design_core.php – Modul-Header des Core-Moduls, lädt die Implementierung.
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).
Funktion Beschreibung 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
Typ Eigener Wert color Hex-Farbe (3, 6 oder 8 Stellen), transparent oder currentColor font Slug einer Schrift aus includes/weinhold_fonts.php, die Schrift wird für die Seite angefordert image ID aus der Mediathek oder eine http(s)-URL, ausgegeben als url() length Zahl mit px, rem, em, %, vh, vw oder ch, oder 0 css Freier CSS-Wert ohne Semikolon, geschweifte und spitze Klammern Verweise
Verweis Ausgabe theme:color:primary var(--wp--preset--color--primary), entsprechend theme:font, theme:size und theme:spacing field:framework.accent var() des angemeldeten Felds, hier --weinhold-framework-accent css:Ausdruck Freier 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
Name Beschreibung weinhold_design_values Option pro Site: Gruppe, Schlüssel, darin mode (custom oder ref) und value. Fehlende Einträge bedeuten Standard weinhold_design_group_vars Filter 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)
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.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.
Versionshistorie
Version Datum Änderung 1.0.0 06.11.2026 Erste 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.0 07.11.2026 Kurzform 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.0 07.11.2026 Schriftfelder 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.1 07.11.2026 Fonts 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).