Beitragsbild

Erstellung eines Block Themes

In diesem Artikel möchte ich euch zeigen, wie ihr ganz leicht ein eigenes Block Theme erstellen und bearbeiten könnt.

Die Erstellung des Themes

Das Plugin „Create Block Theme“

Mit dem Plugin „Create Block Theme“ lässt sich quasi auf Knopfdruck ein eigenes Theme erstellen. Alternativ kann man auch ein Child Theme eines bestehenden Themes erstellen.

Nach der Installation des Plugins ruft ihr als erstes den Website-Editor auf. Diesen findet ihr am Admin Menü unter Design. Allerdings müsst ihr dafür ein Block Theme aktiviert haben. Ich nutze für dieses Beispiel das WordPress eigene Theme Twenty Twenty-Four.

Im Website-Editor angekommen klickt ihr nun irgendwo auf die Seite. Dann öffnet sich rechts eine Leiste. Dort gibt es nun einen Tab, der mit einem Schraubenschlüssel gekennzeichnet ist.

Klickt ihr auf den Schraubenschlüssel, öffnet sich das Menü des „Create Block Theme“-Plugin.

Dort gibt es den Punkt „Create Blank Theme“. Mit dieser Option könnt ihr ein völlig jungfräuliches Block Theme erstellen.

Unter „Theme erstellen“ könnt ihr alternativ das aktuelle Theme klonen oder ein Child Theme erstellen.

Nun füllt ihr die Felder aus.

Der Theme-Name muss eingegeben werden.

Mit einem Klick auf Additional Theme MetaData könnt ihr den Bereich öffnen, in dem ihr noch weitere Meta Daten eingeben könnt. Eine Beschreibung ist immer von Vorteil, wenn ihr schon wisst, wie das Theme später aussehen soll und welche Eigenschaften es mitbringt.

Theme-URI könnt ihr eintragen, wenn ihr später eine Webseite für das Theme erstellen wollt.

Autor und URI des Autors macht auch Sinn, falls vorhanden.

Die Minimum WordPress Version würde ich immer auf die aktuelle stellen, da ihr das Theme ja gerade mit dieser Version entwickelt.

Ihr könnt die Daten auch später in der style.css und der readme.txt eintragen oder ändern.

Nun klickt ihr auf „Create Blank Theme“ und das Theme wird erstellt und aktiviert.

Die theme.json Datei

Bei dem Block Themes enthält die theme.json alle Informationen darüber, wie die Blöcke auszusehen haben, wenn man sie hinzufügt. Hier gibt es globale Einstellungen bis hin zu den feinsten Einstellungen der einzelnen Blöcke. Hier könnt ihr das Theme und alle Blöcke nach eurem Belieben stylen.

Wenn ihr euch jetzt die automatisch erstellte theme.json Datei im Theme Ordner anschaut, sieht diese folgendermaßen aus.

{
	"$schema": "https://schemas.wp.org/wp/6.6/theme.json",
	"settings": {
		"appearanceTools": true,
		"layout": {
			"contentSize": "620px",
			"wideSize": "1000px"
		},
		"spacing": {
			"units": [ "%", "px", "em", "rem", "vh", "vw" ]
		},
		"typography": {
			"fontFamilies": [
				{
					"fontFamily": "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif",
					"name": "System Font",
					"slug": "system-font"
				}
			]
		},
		"useRootPaddingAwareAlignments": true
	},
	"templateParts": [
		{
			"area": "header",
			"name": "header"
		},
		{
			"area": "footer",
			"name": "footer"
		}
	],
	"version": 3
}

Wie ihr sehen könnt, ist diese noch nicht sehr groß. Wir werden später dafür sorgen, dass sich das ändert. Ganz ohne manuelle Bearbeitung der Datei.

Die Schriftarten

In diesem Zustand hat unser neues Theme noch keine Schriftarten. Ich arbeite gerne mit lokalen Schriftarten. Dies reduziert den Traffic beim Seitenladen und ist DSGVO freundlich.

Den Bereich „Schriftarten“ findet ihr im „Stile“-Tab unter Typografie.

Klickt ihr dann auf den Button „Schriften verwalten“ so öffnet sich das Fenster, in dem ihr die Schriften installieren, aktivieren und löschen könnt.

Hier geht ihr auf den Tab „Schriften installieren“ und bestätigt den Zugriff auf Google Fonts. Danach könnt ihr die Schriftarten installieren, die ihr haben wollt.

Gebt dazu einfach die Schriftart in das Suchfeld ein, die ihr installieren wollt. Ich mache das hier einmal mit Nunito und später noch mit Comfortaa und Quicksand.

Von der ausgewählten Schriftart wählt ihr die Varianten aus, die ihr später nutzen wollt. Ihr könnt auch alle auswählen. Aber zu viele Schriftarten beeinträchtigen die Performance des Themes. Daher sollte man die ungenutzten später wieder deaktivieren.

Seid ihr fertig mit der Auswahl, bestätigt dies mit Klick auf „Jetzt installieren“.

Änderungen in theme.json speichern

Einer der größten Vorteile von Block Themes ist, meiner Meinung nach, dass Änderungen, die im Front End gemacht werden, einfach in die theme.json geschrieben werden können.

Hierzu müssen wir wieder das „Create Block Theme“ Menü aufrufen.

Mit einem Klick auf „Save Changes to Theme“ kommt ihr in ein Untermenü.

Wählt hier „Save Fonts“ aus. Die anderen Haken könnt ihr erstmal weglassen. Klickt danach ganz unten auf „Änderungen speichern“.

Nach dem neu Laden der Seite könnt ihr in der Schriftarten Bibliothek sehen, dass die installierten Schriften nun unter „Schriften des Themes“ zu finden sind. Wie eben schon erwähnt, habe ich zusätzlich noch Nunito, Comfortaa und Quicksand installiert.

Ihr seht auch, dass oben unter „Installierte Schriften“ alle Varianten auf „inaktiv“ gesetzt wurden. Ihr könnt nun dort alle Schriften auswählen und löschen.

Die Schriftarten in der theme.json

Wenn ihr euch nun nochmal die theme.json in eurem Theme Verzeichnis anschaut, werdet ihr feststellen, dass nun alle Schriftarten dort aufgeführt sind. Dort gibt es unter settings nun die Struktur typography.

...
        "typography": {
            "fontFamilies": [
                {
                    "fontFamily": "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif",
                    "name": "System Font",
                    "slug": "system-font"
                },
                {
                    "name": "Nunito",
                    "slug": "nunito",
                    "fontFamily": "Nunito, sans-serif",
                    "fontFace": [
                        {
                            "src": [
                                "file:./assets/fonts/nunito/nunito-400-normal.woff2"
                            ],
                            "fontWeight": "400",
                            "fontStyle": "normal",
                            "fontFamily": "Nunito"
                        },
                        {
                            "src": [
                                "file:./assets/fonts/nunito/nunito-400-italic.woff2"
                            ],
                            "fontWeight": "400",
                            "fontStyle": "italic",
                            "fontFamily": "Nunito"
                        },
                        {
                            "src": [
                                "file:./assets/fonts/nunito/nunito-700-normal.woff2"
                            ],
                            "fontWeight": "700",
                            "fontStyle": "normal",
                            "fontFamily": "Nunito"
                        },
                        {
                            "src": [
                                "file:./assets/fonts/nunito/nunito-700-italic.woff2"
                            ],
                            "fontWeight": "700",
                            "fontStyle": "italic",
                            "fontFamily": "Nunito"
                        }
                    ]
                },
                {
                    "name": "Quicksand",
                    "slug": "quicksand",
                    "fontFamily": "Quicksand, sans-serif",
                    "fontFace": [
                        {
                            "src": [
                                "file:./assets/fonts/quicksand/quicksand-400-normal.woff2"
                            ],
                            "fontWeight": "400",
                            "fontStyle": "normal",
                            "fontFamily": "Quicksand"
                        },
                        {
                            "src": [
                                "file:./assets/fonts/quicksand/quicksand-700-normal.woff2"
                            ],
                            "fontWeight": "700",
                            "fontStyle": "normal",
                            "fontFamily": "Quicksand"
                        }
                    ]
                },
                {
                    "name": "Comfortaa",
                    "slug": "comfortaa",
                    "fontFamily": "Comfortaa, system-ui",
                    "fontFace": [
                        {
                            "src": [
                                "file:./assets/fonts/comfortaa/comfortaa-400-normal.woff2"
                            ],
                            "fontWeight": "400",
                            "fontStyle": "normal",
                            "fontFamily": "Comfortaa"
                        },
                        {
                            "src": [
                                "file:./assets/fonts/comfortaa/comfortaa-700-normal.woff2"
                            ],
                            "fontWeight": "700",
                            "fontStyle": "normal",
                            "fontFamily": "Comfortaa"
                        }
                    ]
                }
            ]
        },
...

Des Weiteren fällt hier auf, dass hier unter settings.typography.fontFamilies.fontFace.src immer auf den Ordner ./assets/fonts/... verwiesen wird. Dieser wurde von „Create Block Theme“-Plugin automatisch erstellt. Somit sind die Fonts automatisch lokal installiert.

Schriftarten den Elementen zuweisen

Als nächstes müsst ihr die neuen Schriftarten den Elementen zuweisen. Die Zuweisung macht ihr ebenfalls im „Stile“-Tab unter Typografie. Dort gibt es unten den Bereich „Elemente“.

Klickt ihr auf eines der Elemente, bspw. Text, könnt ihr hier die Schriftart für jeglichen Standardtext einstellen.

Unter „Links“ die Schriftart für Links, unter „Überschriften“ die Schriftart für Überschriften, usw.

Ich mache hier folgende Einstellungen:

ElementSchriftart
TextNunito
LinksNunito
ÜberschriftenQuicksand
BeschriftungenNunito
ButtonsComfortaa

Nun müsst ihr das erste Mal Änderungen über den normalen „Speichern“-Button speichern.

Hier bekommt ihr nun immer aufgelistet, was ihr gerade in Begriff seid zu speichern. Ihr habt jetzt die Schriftarten der Elemente geändert. Dies wird hier also korrekt angezeigt.

Klickt also auf „Speichern“.

Dann speichert ihr die Änderungen wieder ins Theme, wie oben beschrieben. Nur diesmal müsst ihr zusätzlich noch die Option „Save Style Changes“ aktivieren.

Wenn ihr euch jetzt die theme.json anschaut, bemerkt ihr eine zusätzliche Struktur „styles“, in der den einzelnen Elementen die Schriftart zugewiesen ist. Dies ist nun Standardeinstellung für das Theme.

...
	"styles": {
		"elements": {
			"button": {
				"typography": {
					"fontFamily": "var(--wp--preset--font-family--comfortaa)"
				}
			},
			"caption": {
				"typography": {
					"fontFamily": "var(--wp--preset--font-family--nunito)"
				}
			},
			"heading": {
				"typography": {
					"fontFamily": "var(--wp--preset--font-family--quicksand)"
				}
			},
			"link": {
				"typography": {
					"fontFamily": "var(--wp--preset--font-family--nunito)"
				}
			}
		},
		"typography": {
			"fontFamily": "var(--wp--preset--font-family--nunito)"
		}
	},
...

Die Farbpalette

Die Einstellung der Farbpalette ist nach dem Hinzufügen der Schriftarten denkbar einfach.

Die Farbpalette findet ihr ebenfalls im „Stile“-Tab, wenn ihr dort auf „Farben“ und dann auf „Palette“ klickt.

Wenn ihr unten auf das „+“ neben Individuell klickt, könnt ihr eine Farbe hinzufügen und benennen.

Bei meinem Theme habe ich mich als Primär- und Sekundär Farbe für zwei blau-Töne entschieden. Außerdem habe ich eine eigene Text Farbe angegeben und diverse grau-Töne.

Hier eine Liste:

BeschriftungHex-Code
Text#333333
Primary#4272ff
Secondary#1a2e66
Dark#000000
Dark-Grey#444444
Mid-Grey#888888
Light-Grey#cccccc
Light#ffffff
Primary Hover#2e4fb3
Secondary Hover#2c4fb0

Noch eine Anmerkung. Die Farben Dark und Light wären natürlich sinnvoller mit Black und White bezeichnet. Dies gibt allerdings Probleme. Die Farben werden dann, Stand heute, in der Palette nicht dargestellt.

Um die Änderungen zu übernehmen, müsst ihr nur noch Speichern und dann die Änderungen ins Theme schreiben.

Die Farbpalette in der theme.json

Ihr habt nun eine neue Struktur color unter settings. Dort seht ihr nun die gesamte Palette, wie ihr sie angelegt habt. Unter name seht ihr die eingegebene Beschriftung für die Farbe. Den slug hat WordPress automatisch erstellt. Als kleine Schönheitskorrektur entferne ich das „custom-“ vor den jeweiligen slugs. Das ist noch einer der Vorteile der Block Themes. Ihr könnt auch Änderungen in der theme.json vornehmen, ohne euch direkt alles zu zerschießen. Die Änderungen werden dann als Standard für das Theme hinterlegt. Wenn ihr dann bei irgendeiner Option auf „zurücksetzen“ geht, wird der Zustand aus der theme.json wiederhergestellt.

...
		"color": {
			"palette": [
				{
					"color": "#333333",
					"name": "Text",
					"slug": "custom-text"
				},
				{
					"color": "#4272ff",
					"name": "Primary",
					"slug": "custom-primary"
				},
				{
					"color": "#1a2e66",
					"name": "Secondary",
					"slug": "custom-secondary"
				},
				{
					"color": "#000000",
					"name": "Dark",
					"slug": "custom-dark"
				},
				{
					"color": "#444444",
					"name": "Dark-Grey",
					"slug": "custom-dark-grey"
				},
				{
					"color": "#888888",
					"name": "Mid-Grey",
					"slug": "custom-mid-grey"
				},
				{
					"color": "#cccccc",
					"name": "Light-Grey",
					"slug": "custom-light-grey"
				},
				{
					"color": "#ffffff",
					"name": "Light",
					"slug": "custom-light"
				},
				{
					"color": "#2e4fb3",
					"name": "Primary Hover",
					"slug": "custom-primary-hover"
				},
				{
					"color": "#2c4fb0",
					"name": "Secondary Hover",
					"slug": "custom-secondary-hover"
				}
			]
		},
...

Farben den Elementen zuweisen

Als nächstes könnt ihr den einzelnen Elementen, wie Text, Hintergrund, Links, usw. die Farben zuweisen.

Dafür klickt ihr „Stile“-Tab wieder auf Farben und dann seht ihr unten die Elemente aufgeführt. Klickt sie alle einzeln an und wählt die Theme Farben aus, die ihr zuweisen wollt. Ihr müsst vorher einmal die Seite neu laden, damit die Farben auch dem Theme zugewiesen werden, nachdem sie in die theme.json geschrieben wurden.

So sollte es aussehen, wenn ihr die Seite neu geladen habt, und die Farbe für z.B. den Text einstellen wollt. Als Textfarbe nehme ich natürlich die Farbe, die ich auch mit der Bezeichnung „Text“ versehen habe. Wenn ihr mit der Maus über die Farbe geht, wird die Bezeichnung der Farbe eingeblendet.

Am Ende sollte das Ganze dann so aussehen.

Folgende Zuweisungen habe ich gemacht:

ElementFarbe 1Farbe 2
TextText
HintergrundLight
LinkPrimary (Standard)Primary Hover (On Hover)
BeschriftungenDark-Grey
ButtonLight (Text)Primary (Background)
ÜberschriftText(Keine)

Um die Änderungen zu übernehmen, müsst ihr wieder Speichern und dann die Änderungen ins Theme schreiben.

Die Elemente und ihre Farben in der theme.json

Nun seht ihr, dass die Elemente zu den Schriftarten auch noch Farbeinstellungen bekommen haben. Außerdem gibt unter styles jetzt die Struktur color. Dort findet ihr die Grundeinstellung für Text und Hintergrund.

...
		"color": {
			"background": "var(--wp--preset--color--light)",
			"text": "var(--wp--preset--color--text)"
		},
		"elements": {
			"button": {
				"color": {
					"background": "var(--wp--preset--color--primary)",
					"text": "var(--wp--preset--color--light)"
				},
				"typography": {
					"fontFamily": "var(--wp--preset--font-family--comfortaa)"
				}
			},
			"caption": {
				"color": {
					"text": "var(--wp--preset--color--dark-grey)"
				},
				"typography": {
					"fontFamily": "var(--wp--preset--font-family--nunito)"
				}
			},
			"heading": {
				"color": {
					"text": "var(--wp--preset--color--text)"
				},
				"typography": {
					"fontFamily": "var(--wp--preset--font-family--quicksand)"
				}
			},
			"link": {
				":hover": {
					"color": {
						"text": "var(--wp--preset--color--primary-hover)"
					}
				},
				"color": {
					"text": "var(--wp--preset--color--primary)"
				},
				"typography": {
					"fontFamily": "var(--wp--preset--font-family--nunito)"
				}
			}
		},
...

Unter link findet ihr sogar noch eine Struktur :hover. Hier wird die Farbeinstellung festgelegt, die ein Link haben soll, wenn man mit der Maus darüberfährt. Dies kann man sich später zu Nutze machen, um auch Buttons eine andere Farbe beim Überfahren mit der Maus zu geben. Dies ist leider anders aktuell nicht möglich.

Schatten

Genauso, wie ihr die Farben konfiguriert habt, könnt ihr auch die Schatten konfigurieren und ins Theme speichern. Darauf gehe ich hier aber nicht im Detail ein.

Das Layout

Was man aber definitiv noch einstellen sollte, ist das Layout.

Die Layout Einstellungen findet ihr wieder im „Stile“-Tab unter „Layout“.

Ich möchte ein eher breites Layout haben. Den Inhalt stelle ich daher auf 1024px und die weite Breite auf 1400px.

Die Innen- und Blockabstände stelle ich auf XS.

Ihr könnt auch rechts auf diese kleinen Schieberegler Symbole klicken. Dann könnt ihr Abstände mit einer Einheit, bspw. „px“ oder „rem“ einstellen.

Um die Änderungen zu übernehmen, müsst ihr nur noch Speichern und dann die Änderungen ins Theme schreiben.

Die Layout Einstellungen in der theme.json

Unter settings seht ihr, dass sich die layout Struktur geändert hat. Unter styles wurde die Struktur spacing erzeugt, die die Einstellungen blockGap und padding enthält, die wir eben gemacht haben.

{
	"settings": {
		...
		"layout": {
			"contentSize": "1024px",
			"wideSize": "1400px"
		},
		...
	},
	"styles": {
		...
		"spacing": {
			"blockGap": "var(--wp--preset--spacing--30)",
			"padding": {
				"bottom": "var(--wp--preset--spacing--30)",
				"left": "var(--wp--preset--spacing--30)",
				"right": "var(--wp--preset--spacing--30)",
				"top": "var(--wp--preset--spacing--30)"
			}
		},
		...
	},
...

Euer erstes Block Theme

So schnell habt ihr euer erstes Block Theme erstellt. Und das, ohne auch nur eine Zeile Code zu schreiben.

Im folgenden Beitrag widmen wir uns der Erstellung von Templates. Wir möchten ja, dass unterschiedliche Beitragstypen, unterschiedlich dargestellt werden.

Schlagwörter

block theme (1) child theme (1) full site editor (1) parent theme (1) stile (1)

Kommentare

Schreibe einen Kommentar