{"id":73359,"date":"2025-06-02T14:09:47","date_gmt":"2025-06-02T13:09:47","guid":{"rendered":"https:\/\/kinsta.com\/de\/?p=73359&#038;preview=true&#038;preview_id=73359"},"modified":"2025-06-05T07:27:20","modified_gmt":"2025-06-05T06:27:20","slug":"sass-workflow-wordpress-theme-erstellung","status":"publish","type":"post","link":"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/","title":{"rendered":"Ein moderner Sass-Workflow f\u00fcr die Entwicklung von WordPress-Themes"},"content":{"rendered":"<p>Die Erstellung von modernem, wartbarem <a href=\"https:\/\/kinsta.com\/de\/blog\/css-best-practices\/\">CSS<\/a> f\u00fcr WordPress-Themes bringt einige Herausforderungen mit sich, die Entwickler meistern m\u00fcssen. Die Verwendung von Sass (Syntactically Awesome Style Sheets) als CSS-Pr\u00e4prozessor kann dir helfen, deine Styles effektiver zu organisieren, zu pflegen und zu skalieren.<\/p>\n<p>Die Einrichtung eines effizienten Sass-Workflows, der sich nat\u00fcrlich in die WordPress-Entwicklung einf\u00fcgt, erfordert jedoch eine sorgf\u00e4ltige Planung und technisches Know-how.<\/p>\n<p>Dieser Leitfaden zeigt dir, wie du einen professionellen Sass-Workflow f\u00fcr die <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-theme-kernkonzepte\/\">Entwicklung von WordPress-Themes<\/a> einrichtest. Er behandelt moderne Build-Tools, intelligente Dateiorganisation und Implementierungspraktiken, die die Produktivit\u00e4t steigern und daf\u00fcr sorgen, dass deine Styles wartbar bleiben.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Hintergrundinformationen zur Verwendung von Sass f\u00fcr die WordPress-Entwicklung<\/h2>\n<p>Professionelle WordPress-Entwicklung ist oft auf <a href=\"https:\/\/kinsta.com\/de\/blog\/webentwicklung-tools\/\">Werkzeuge und Arbeitsabl\u00e4ufe<\/a> angewiesen, die \u00fcber die eingebauten Funktionen der Plattform hinausgehen. <a href=\"https:\/\/sass-lang.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Sass<\/a> kann eine Schl\u00fcsselrolle spielen, indem es dir hilft, die Komplexit\u00e4t von CSS mit Funktionen wie Variablen, Verschachtelung, Mixins, Importen und eingebauten Funktionen zu verwalten.<\/p>\n<figure id=\"attachment_194339\" aria-describedby=\"caption-attachment-194339\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194339 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/sass-website.png\" alt=\"Die Startseite der Website zur Programmiersprache Sass mit dem Sass-Logo in Pink, einem Navigationsmen\u00fc und dem Slogan \u201eCSS mit Superkr\u00e4ften\u201c. Darunter steht ein Text, der Sass beschreibt. Das Design hat eine Illustration einer blaugr\u00fcnen Katzenaugenbrille und Abschnitte, die die Funktionen und Vorteile von Sass zeigen.\" width=\"1200\" height=\"705\"><figcaption id=\"caption-attachment-194339\" class=\"wp-caption-text\">Die Sass-Website<\/figcaption><\/figure>\n<p>Sass bietet mehrere Vorteile f\u00fcr die Theme-Entwicklung. Ein typisches WordPress-Theme enth\u00e4lt Stile f\u00fcr zahlreiche Komponenten und <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-beitrags-vorlagen\/\">Template-Teile<\/a>. Anstatt alles in einem einzigen, unhandlichen Stylesheet zu verwalten, erm\u00f6glicht Sass eine modulare Architektur, die durch eine programmatische Struktur die Wartbarkeit und Skalierbarkeit f\u00f6rdert.<\/p>\n<p>Dieser strukturierte Ansatz geht \u00fcber das hinaus, was Standard-CSS bietet, und passt gut zu den einzigartigen Styling-Anforderungen von WordPress. Im Gegensatz zur Verwendung von <code>style.css<\/code> mit WordPress kannst du mit Sass modulare, zweckgebundene Stylesheets erstellen, die mit Hilfe eines unkomplizierten Workflows zu optimierten CSS-Dateien kompiliert werden:<\/p>\n<ol>\n<li>Ein Erstellungsprozess, um Sass-Dateien in CSS zu kompilieren.<\/li>\n<li>Eine Dateistruktur, mit der du deine Styles in einer wartbaren Weise organisieren kannst.<\/li>\n<li>Entwicklungstools f\u00fcr lokale Tests und Qualit\u00e4tssicherung.<\/li>\n<li>Bereitstellungs-Strategien, um \u00c4nderungen in Staging- und Produktionsumgebungen zu \u00fcbertragen.<\/li>\n<\/ol>\n<p>Wie du diesen Arbeitsablauf umsetzt, h\u00e4ngt von den Tool-Vorlieben deines Teams, dem technischen Stack und der Komplexit\u00e4t des Projekts ab. Die meisten Sass-basierten WordPress-Setups folgen jedoch einigen gemeinsamen Praktiken: Konfiguration von Source Maps f\u00fcr das Debugging, \u00dcberwachung von Dateien w\u00e4hrend der Entwicklung und Optimierung der Ausgabe f\u00fcr die Produktion.<\/p>\n<p>Ein typisches Setup trennt deine Sass-Quelldateien von den kompilierten Assets, was die Pflege deiner Codebasis und die Ausgabe sauberer Inhalte im Browser erleichtert.<\/p>\n<h2>3 M\u00f6glichkeiten, Sass in WordPress-Projekten zu kompilieren<\/h2>\n<p>Die Grundlage eines jeden Sass-Workflows ist der Build-Prozess, der deine Sass-Dateien in browserf\u00e4higes CSS umwandelt. Es gibt mehrere M\u00f6glichkeiten, dies in WordPress zu implementieren.<\/p>\n<h3>1. Mit Plugins: Der unkomplizierte Ansatz<\/h3>\n<p>Die einfachste Art, Sass in einem WordPress-Theme zu verwenden, sind Plugins. Dieser Ansatz ist ideal, wenn du gerade erst anf\u00e4ngst oder an einem kleinen Projekt arbeitest, das keine vollst\u00e4ndige Build-Pipeline erfordert.<\/p>\n<p><a href=\"https:\/\/github.com\/roborourke\/wp-sass\" target=\"_blank\" rel=\"noopener noreferrer\">WP-Sass<\/a> zum Beispiel \u00fcbernimmt die Kompilierung \u00fcber die WordPress-eigenen Action Hooks in <code>wp-config.php<\/code> und \u00fcberwacht das Sass-Verzeichnis deines Themes auf \u00c4nderungen:<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\n\/\/ Include the class (unless you are using the script as a plugin)\nrequire_once( 'wp-sass\/wp-sass.php' );\n\n\/\/ enqueue a .less style sheet\nif ( ! is_admin() )\n    wp_enqueue_style( 'style', get_stylesheet_directory_uri() . '\/style.scss' );\nelse\n    wp_enqueue_style( 'admin', get_stylesheet_directory_uri() . '\/admin.sass.php' );\n\n\/\/ you can also use .less files as mce editor style sheets\nadd_editor_style( 'editor-style.sass' );\n\n?&gt;<\/code><\/pre>\n<p>Eine andere Option, <a href=\"https:\/\/github.com\/davidguttman\/sassify\" target=\"_blank\" rel=\"noopener noreferrer\">Sassify<\/a>, ist schon etwas \u00e4lter und verfolgt einen anderen Ansatz: Sie greift auf die <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-rest-api\/\">WordPress-APIs<\/a> zu, um die Sass-Kompilierung, die Ausgabepfade und die Komprimierungseinstellungen zu verwalten.<\/p>\n<p>Plugin-basierte L\u00f6sungen sind zwar einfach, haben aber auch ein paar Einschr\u00e4nkungen:<\/p>\n<ul>\n<li><strong>Performance Overhead.<\/strong> Diese Plugins kompilieren Sass auf dem Server, was erhebliche Ressourcen verbrauchen kann.<\/li>\n<li><strong>Begrenzte Build-Optionen.<\/strong> Die meisten Sass-Plugins bieten eine einfache Kompilierung, aber keine wesentlichen Funktionen. Zum Beispiel gibt es oft nur begrenzte Unterst\u00fctzung f\u00fcr Source Maps, fehlende Autoprefixing-Funktionen und mehr.<\/li>\n<li><strong>Sicherheitsbedenken.<\/strong> Der Einsatz eines Compilers auf deinem Produktionsserver kann die Angriffsfl\u00e4che f\u00fcr Angriffe vergr\u00f6\u00dfern, insbesondere wenn das Plugin nicht regelm\u00e4\u00dfig gewartet wird.<\/li>\n<li><strong>Probleme mit der Versionskontrolle.<\/strong> Kompilierte CSS-Dateien befinden sich oft in deinem Theme-Verzeichnis, was <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-versionskontrolle\/\">saubere Git-Workflows<\/a> erschwert. Idealerweise sollten kompilierte Assets nicht in deinem Repo liegen.<\/li>\n<\/ul>\n<p>Trotz dieser Einschr\u00e4nkungen ist ein Plugin in bestimmten F\u00e4llen immer noch eine gute Option. Zum Beispiel bei kleinen Websites mit minimalen Styling-Anforderungen, wenn du ein Projekt an einen Kunden \u00fcbergibst, der nicht \u00fcber die technischen Kenntnisse verf\u00fcgt, um mit Sass auf einer tieferen Ebene zu arbeiten, oder wenn du mit begrenzten Ressourcen f\u00fcr die Entwicklung arbeitest.<\/p>\n<h3>2. NPM-Skripte verwenden: Die ausgewogene L\u00f6sung<\/h3>\n<p>Wenn du mehr Kontrolle und Flexibilit\u00e4t suchst, k\u00f6nnen <a href=\"https:\/\/kinsta.com\/de\/blog\/was-ist-npm\/\">NPM-Skripte<\/a> eine gute Alternative zu Plugins sein. Die Sass-Kompilierung ist eine ideale Aufgabe f\u00fcr NPM, da sie ein Gleichgewicht zwischen Einfachheit und Leistungsf\u00e4higkeit herstellt. Es bietet erhebliche Verbesserungen gegen\u00fcber Plugins f\u00fcr die Theme-Entwicklung, ohne die Komplexit\u00e4t von vollst\u00e4ndigen Task-Runnern:<\/p>\n<ul>\n<li>Indem du die Kompilierung von der WordPress-Ausf\u00fchrung trennst, eliminierst du den Overhead bei der Serverleistung.<\/li>\n<li>Du erh\u00e4ltst genaue Kontrolle \u00fcber jeden Schritt des Kompilierungsprozesses.<\/li>\n<li>Die <strong>package.json-Datei<\/strong> stellt sicher, dass alle Teammitglieder denselben Build-Prozess verwenden.<\/li>\n<li>npm-Skripte lassen sich nahtlos in <a href=\"https:\/\/kinsta.com\/de\/blog\/kontinuierliche-bereitstellung-wordpress-github-aktionen\/\">CI\/CD-Pipelines<\/a> integrieren.<\/li>\n<\/ul>\n<p>Dieser Ansatz erfordert zwar mehr anf\u00e4ngliches Setup als Plugins, bietet aber eine robustere und skalierbarere L\u00f6sung f\u00fcr die professionelle Theme-Entwicklung.<\/p>\n<h4>Einrichten der Sass-Kompilierung mit NPM<\/h4>\n<p>Beginne mit der Erstellung einer <code>package.json<\/code> Datei. Du kannst dies tun, indem du ausf\u00fchrst:<\/p>\n<pre><code class=\"language-bash\">npm init -y<\/code><\/pre>\n<p>Installiere dann Dart Sass:<\/p>\n<pre><code class=\"language-bash\">npm install sass --save-dev<\/code><\/pre>\n<p>Als n\u00e4chstes f\u00fcgst du diese Skripte zu deiner <strong>package.json<\/strong> hinzu:<\/p>\n<pre><code class=\"language-json\">{\n  \"name\": \"your-theme-name\",\n  \"version\": \"1.0.0\",\n  \"description\": \"A WordPress theme with Sass\",\n  \"scripts\": {\n    \"sass\": \"sass src\/sass\/main.scss:assets\/css\/main.css\",\n    \"sass:watch\": \"sass --watch src\/sass\/main.scss:assets\/css\/main.css\",\n    \"build\": \"sass src\/sass\/main.scss:assets\/css\/main.css --style=compressed\"\n  },\n  \"devDependencies\": {\n    \"sass\": \"^1.58.3\"\n  }\n}<\/code><\/pre>\n<p>Mit diesem Setup erh\u00e4ltst du drei n\u00fctzliche Skripte:<\/p>\n<ul>\n<li><code>npm run sass<\/code> kompiliert deine Sass-Dateien einmal.<\/li>\n<li><code>sass:watch<\/code> achtet auf \u00c4nderungen und kompiliert bei Bedarf neu.<\/li>\n<li><code>build<\/code> kompiliert deine Sass-Dateien f\u00fcr die Produktion mit Komprimierung.<\/li>\n<\/ul>\n<p>Um \u00e4ltere Browser zu unterst\u00fctzen, f\u00fcge <strong>Autoprefixer<\/strong> \u00fcber PostCSS hinzu:<\/p>\n<pre><code class=\"language-bash\">npm install postcss postcss-cli autoprefixer --save-dev<\/code><\/pre>\n<p>Aktualisiere deine <code>package.json<\/code> Skripte:<\/p>\n<pre><code class=\"language-json\">{\n  \"scripts\": {\n    \"sass\": \"sass src\/sass\/main.scss:assets\/css\/main.css\",\n    \"prefix\": \"postcss assets\/css\/main.css --use autoprefixer -o assets\/css\/main.css\",\n    \"build\": \"npm run sass && npm run prefix\"\n  },\n  \"devDependencies\": {\n    \"autoprefixer\": \"^10.4.13\",\n    \"postcss\": \"^8.4.21\",\n    \"postcss-cli\": \"^10.1.0\",\n    \"sass\": \"^1.58.3\"\n  },\n  \"browserslist\": [\n    \"last 2 versions\",\n    \"&gt; 1%\"\n  ]\n}<\/code><\/pre>\n<p>Um die Fehlersuche zu erleichtern, f\u00fcge Source Maps hinzu:<\/p>\n<pre><code class=\"language-json\">{\n  \"scripts\": {\n    \"sass\": \"sass src\/sass\/main.scss:assets\/css\/main.css --source-map\",\n    \"sass:watch\": \"sass --watch src\/sass\/main.scss:assets\/css\/main.css --source-map\"\n  }\n}<\/code><\/pre>\n<p>Um dein kompiliertes CSS in WordPress zu verwenden, musst du es in die <strong>functions.php<\/strong> einf\u00fcgen:<\/p>\n<pre><code class=\"language-php\">function theme_enqueue_styles() {\n    $style_path = '\/assets\/css\/main.css';\n    $full_path = get_template_directory() . $style_path;\n    \n    wp_enqueue_style(\n        'theme-styles',\n        get_template_directory_uri() . $style_path,\n        array(),\n        file_exists($full_path) ? filemtime($full_path) : false\n    );\n}\nadd_action('wp_enqueue_scripts', 'theme_enqueue_styles');<\/code><\/pre>\n<p>Diese Funktion l\u00e4dt dein kompiliertes CSS und sorgt f\u00fcr ein automatisches Cache-Busting, indem sie die \u00c4nderungszeit der Datei als Versionsnummer verwendet.<\/p>\n<h3>3. Gulp verwenden: Die umfassende L\u00f6sung<\/h3>\n<p><a href=\"https:\/\/gulpjs.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Gulp<\/a> ist ein leistungsstarker Task-Runner, der sich hervorragend f\u00fcr die Automatisierung komplexer Build-Prozesse eignet. F\u00fcr die Entwicklung von WordPress-Themes mit umfangreichen Styling-Anforderungen kann es die umfassendste L\u00f6sung sein.<br \/>\nMit Gulp kannst du die Sass-Kompilierung, die Browser-Synchronisierung und alles, was dazwischen liegt, erledigen. Warum Gulp?<\/p>\n<ul>\n<li>Gulp verwaltet fast jeden Aspekt deines Build-Prozesses, wie Kompilierung, Optimierung und Bereitstellung.<\/li>\n<li>Du kannst mehrere Aufgaben gleichzeitig ausf\u00fchren, was die Build-Zeiten verk\u00fcrzt.<\/li>\n<li>Das \u00d6kosystem bietet Werkzeuge f\u00fcr praktisch jede Build-Anforderung.<\/li>\n<li>Die <a href=\"https:\/\/browsersync.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">BrowserSync-Integration<\/a> erm\u00f6glicht sofortiges Feedback w\u00e4hrend der Entwicklung.<\/li>\n<\/ul>\n<p>Gulp hat zwar eine steilere Lernkurve als andere Ans\u00e4tze, aber seine Vorteile machen es f\u00fcr viele zu einer bevorzugten Wahl.<\/p>\n<h4>Gulp f\u00fcr WordPress-Themes einrichten<\/h4>\n<p>Um mit Gulp zu starten, musst du es zusammen mit mehreren Plugins installieren, die bestimmte Aufgaben \u00fcbernehmen:<\/p>\n<pre><code class=\"language-bash\"># Initialize your project\nnpm init -y\n\n# Install Gulp and related packages\nnpm install --save-dev gulp gulp-sass sass gulp-autoprefixer gulp-sourcemaps browser-sync gulp-cssnano<\/code><\/pre>\n<p>Du solltest auch eine <code>gulpfile.js<\/code> im Stammverzeichnis deines Themes erstellen, die einige verschiedene Schritte \u00fcbernimmt. Dieser erste Teil ist eine M\u00f6glichkeit, alle notwendigen Tools zu importieren:<\/p>\n<pre><code class=\"language-js\">\/\/ 1. Import dependencies\nconst { src, dest, watch, series, parallel } = require('gulp');\nconst sass = require('gulp-sass')(require('sass'));\nconst autoprefixer = require('gulp-autoprefixer');\nconst sourcemaps = require('gulp-sourcemaps');\nconst browserSync = require('browser-sync').create();\nconst cssnano = require('gulp-cssnano');<\/code><\/pre>\n<p>Jedes Paket dient einem bestimmten Zweck:<\/p>\n<ul>\n<li><code>gulp<\/code>: der Kern-Task-Runner.<\/li>\n<li><code>gulp-sass<\/code> und <code>sass<\/code>: kompiliert Sass zu CSS.<\/li>\n<li><code>gulp-autoprefixer<\/code>: f\u00fcgt Hersteller-Pr\u00e4fixe f\u00fcr die Browser-Kompatibilit\u00e4t hinzu.<\/li>\n<li><code>gulp-sourcemaps<\/code>: erzeugt Source-Maps f\u00fcr die Fehlersuche.<\/li>\n<li><code>browser-sync<\/code>: aktualisiert die Browser w\u00e4hrend der Entwicklung.<\/li>\n<li><code>gulp-cssnano<\/code>: minimiert CSS f\u00fcr die Produktion.<\/li>\n<\/ul>\n<p>Hier kannst du Pfade zu deinen Quell- und Zieldateien festlegen und eine Funktion zum Kompilieren von Sass erstellen:<\/p>\n<pre><code class=\"language-js\">\/\/ 2. Define file paths\nconst files = {\n  sassPath: '.\/src\/sass\/**\/*.scss',\n  cssPath: '.\/assets\/css\/'\n}\n\n\/\/ 3. Sass development task with sourcemaps\nfunction scssTask() {\n  return src(files.sassPath)\n    .pipe(sourcemaps.init())\n    .pipe(sass().on('error', sass.logError))\n    .pipe(autoprefixer())\n    .pipe(sourcemaps.write('.\/'))\n    .pipe(dest(files.cssPath))\n    .pipe(browserSync.stream());\n}<\/code><\/pre>\n<p>Diese Funktion findet im Wesentlichen alle deine Sass-Dateien, initialisiert Sourcecaps f\u00fcr das Debugging und kompiliert Sass zu CSS (mit <a href=\"https:\/\/kinsta.com\/courses\/node-js-full-stack-developer\/error-handling\/\">Fehlerbehandlung<\/a>). Au\u00dferdem f\u00fcgt sie Herstellerpr\u00e4fixe f\u00fcr die Browserkompatibilit\u00e4t hinzu, schreibt deine Sourcemaps, speichert das kompilierte CSS und aktualisiert den Browser bei \u00c4nderungen. Alles in allem macht es eine Menge Arbeit!<\/p>\n<p>Du musst dir auch \u00fcberlegen, wie du eine produktionsreife Build-Funktion, einen Task Watcher und eine Exportfunktion erstellst:<\/p>\n<pre><code class=\"language-js\">\/\/ 4. Sass production task with minification\nfunction scssBuildTask() {\n  return src(files.sassPath)\n    .pipe(sass().on('error', sass.logError))\n    .pipe(autoprefixer())\n    .pipe(cssnano())\n    .pipe(dest(files.cssPath));\n}\n\n\/\/ 5. Watch task for development\nfunction watchTask() {\n  browserSync.init({\n    proxy: 'localhost:8888' \/\/ Change this to match your local development URL\n  });\n  \n  watch(files.sassPath, scssTask);\n  watch('.\/**\/*.php').on('change', browserSync.reload);\n}\n\n\/\/ 6. Export tasks\nexports.default = series(scssTask, watchTask);\nexports.build = scssBuildTask;<\/code><\/pre>\n<p>In dieser Produktionsversion werden die Sourcecaps weggelassen und eine Minifizierung f\u00fcr eine optimale Dateigr\u00f6\u00dfe hinzugef\u00fcgt. Insgesamt kannst du mit diesem Setup <code>npx gulp<\/code> f\u00fcr die Entwicklung (mit Datei-\u00dcberwachung und Browser-Refresh) und <code>npx gulp build<\/code> f\u00fcr produktive Builds verwenden.<\/p>\n<h4>Verbessern deines Gulp-Workflows<\/h4>\n<p>Bei gr\u00f6\u00dferen Projekten m\u00f6chtest du vielleicht Stile f\u00fcr verschiedene Zwecke trennen. Hier ist ein Beispiel:<\/p>\n<pre><code class=\"language-js\">\/\/ Define paths for different style types\nconst paths = {\n  scss: {\n    src: '.\/src\/sass\/**\/*.scss',\n    dest: '.\/assets\/css\/'\n  },\n  editorScss: {\n    src: '.\/src\/sass\/editor\/**\/*.scss',\n    dest: '.\/assets\/css\/'\n  }\n}\n\n\/\/ Main styles task\nfunction mainStyles() {\n  return src('.\/src\/sass\/main.scss')\n    .pipe(sourcemaps.init())\n    .pipe(sass().on('error', sass.logError))\n    .pipe(autoprefixer())\n    .pipe(sourcemaps.write('.\/'))\n    .pipe(dest(paths.scss.dest))\n    .pipe(browserSync.stream());\n}\n\n\/\/ Editor styles task\nfunction editorStyles() {\n  return src('.\/src\/sass\/editor-style.scss')\n    .pipe(sourcemaps.init())\n    .pipe(sass().on('error', sass.logError))\n    .pipe(autoprefixer())\n    .pipe(sourcemaps.write('.\/'))\n    .pipe(dest(paths.scss.dest))\n    .pipe(browserSync.stream());\n}<\/code><\/pre>\n<p>Bei komplexen Themes mit vielen Sass-Dateien solltest du auch die Build-Leistung optimieren, indem du verarbeitete Dateien zwischenspeicherst, um unn\u00f6tige Neukompilierungen zu vermeiden, Sass-Abh\u00e4ngigkeiten verfolgst, um nur die betroffenen Dateien neu zu kompilieren, und vieles mehr. Dies w\u00fcrde jedoch den Rahmen dieses Beitrags sprengen.<\/p>\n<h3>Andere Build-Tools, die man in Betracht ziehen sollte<\/h3>\n<p>W\u00e4hrend die meisten Entwickler mit NPM-Skripten oder Gulp arbeiten, gibt es auch andere Alternativen, die einzigartige Vorteile f\u00fcr die Entwicklung von WordPress-Themes bieten. <a href=\"https:\/\/kinsta.com\/de\/blog\/vite-vs-webpack\/\">Vite und Webpack<\/a> sind zwei g\u00e4ngige L\u00f6sungen.<\/p>\n<p>Webpack eignet sich hervorragend zum B\u00fcndeln von <a href=\"https:\/\/kinsta.com\/de\/blog\/was-ist-javascript\/\">JavaScript<\/a> und Assets, was ideal ist, wenn dein Theme komponentenbasierte Architekturen oder <a href=\"https:\/\/kinsta.com\/de\/blog\/javascript-bibliotheken\/\">JavaScript-Frameworks<\/a> verwendet. Die St\u00e4rke von Webpack liegt in seiner F\u00e4higkeit, durch Codeaufteilung und &#8222;Tree Shaking&#8220; optimierte Pakete zu erstellen &#8211; ein unsch\u00e4tzbarer Vorteil f\u00fcr komplexe, JavaScript-lastige Themes.<\/p>\n<p>Im Gegensatz dazu ist Vite ein neueres Build-Tool, das durch seinen innovativen Ansatz beim Laden von Modulen die Entwicklungsgeschwindigkeit in den Vordergrund stellt. Der Entwicklungsserver erm\u00f6glicht einen fast sofortigen Austausch von Modulen im laufenden Betrieb. Das ist ein schneller Weg, um eine iterative Entwicklung umzusetzen. Die Integration von Vite in die WordPress-Workflows wird zwar noch weiterentwickelt, aber es ist eine spannende Option, wenn du es f\u00fcr deine eigene Theme-Entwicklung nutzen kannst.<\/p>\n<p>F\u00fcr einfachere Projekte oder pers\u00f6nliche Vorlieben bietet das <a href=\"https:\/\/sass-lang.com\/documentation\/cli\/\" target=\"_blank\" rel=\"noopener noreferrer\">Sass CLI<\/a> einen unkomplizierten Ansatz ohne zus\u00e4tzliche Tools:<\/p>\n<pre><code class=\"language-bash\"># Install Sass globally\nnpm install -g sass\n\n# Compile Sass files\nsass --watch src\/sass\/main.scss:assets\/css\/main.css<\/code><\/pre>\n<p>Der manuellen Kompilierung fehlen zwar die Automatisierungs- und Integrationsfunktionen von speziellen Build-Tools, aber ihre Einfachheit hat einen Vorteil. Dieser Ansatz eignet sich gut f\u00fcr einfache Themes mit \u00fcberschaubaren Stylinganforderungen, schnelle Prototypen oder kleine Projekte. Sie eignet sich auch f\u00fcr diejenigen, die ein minimales Tooling bevorzugen.<\/p>\n<h2>Wie du ein WordPress-Entwicklungsprojekt mit Sass strukturierst und organisierst<\/h2>\n<p>Neben dem Build-Prozess ist die effektive Organisation deiner Sass-Dateien f\u00fcr die Wartbarkeit und die Zusammenarbeit von entscheidender Bedeutung. Eine gut durchdachte Struktur macht es einfacher, deinen Code zu navigieren, zu aktualisieren und zu skalieren, wenn dein Theme w\u00e4chst.<\/p>\n<h3>Das 7-1-Muster: Modulare Organisation f\u00fcr komplexe Themes<\/h3>\n<p>Das <a href=\"https:\/\/gist.github.com\/rveitch\/84cea9650092119527bc\" target=\"_blank\" rel=\"noopener noreferrer\">7-1-Muster<\/a> ist ein typisches Verfahren f\u00fcr die Organisation von Sass-Dateien in gro\u00dfen Projekten. Es unterteilt deinen Styling-Code in sieben thematische Ordner und eine Hauptdatei (<code>main.scss<\/code>), die alles importiert.<\/p>\n<p>Dieses Muster schafft eine logische Trennung und macht es einfacher, bestimmte Stile zu finden und zu aktualisieren. Hier ist ein \u00dcberblick \u00fcber die Struktur:<\/p>\n<ul>\n<li><strong>Zusammenfassungen.<\/strong> Enth\u00e4lt Hilfsmittel, die CSS nicht direkt ausgeben, Variablen f\u00fcr Farben, Typografie und Abst\u00e4nde, Funktionen f\u00fcr Berechnungen und Logik, Mixins f\u00fcr wiederverwendbare Stilmuster und Platzhalter f\u00fcr erweiterbare Stile.<\/li>\n<li><strong>Basis.<\/strong> Enth\u00e4lt grundlegende Stile und Standardwerte, <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-typografie-theme-json\/\">Typografieregeln<\/a>, Hilfsklassen und Elementselektoren (ohne Klassen). Hier kannst du auch CSS zur\u00fccksetzen oder normalisieren.<\/li>\n<li><strong>Komponenten.<\/strong> Hier findest du <a href=\"https:\/\/kinsta.com\/de\/blog\/react-komponenten-bibliotheken\/\">wiederverwendbare UI-Komponenten<\/a> wie Schaltfl\u00e4chen, Formulare und Karten, Navigationsmen\u00fcs, Widgets und Seitenleisten sowie Medienformate (z. B. Bilder, Videos).<\/li>\n<li><strong>Layouts.<\/strong> Hier definierst du Strukturelemente wie Kopf- und Fu\u00dfzeile, Rastersysteme, Containerstrukturen und die Anordnung der Seitenleisten.<\/li>\n<li><strong>Seiten.<\/strong> Hier findest du seitenbezogene Stile, Spezialisierungen f\u00fcr die Startseite, Layouts f\u00fcr einzelne Beitr\u00e4ge, Varianten f\u00fcr Archivseiten und spezielle Landing Pages.<\/li>\n<li><strong>Themes.<\/strong> In diesem Abschnitt findest du verschiedene visuelle Themen oder Modi. Helle und dunkle Themes, saisonale Variationen, Anpassungen des Adminbereichs und markenspezifische Themes sind hier zu finden.<\/li>\n<li><strong>Anbieter.<\/strong> Im letzten Abschnitt speicherst du Stile von Drittanbietern, Plugin-\u00dcberschreibungen, Framework-Anpassungen und das Styling externer Komponenten.<\/li>\n<\/ul>\n<p>Die Hauptdatei (in der Regel <code>main.scss<\/code>) importiert alle Teilbereiche in einer bestimmten Reihenfolge:<\/p>\n<pre><code class=\"language-css\">\/\/ Abstracts\n@import 'abstracts\/variables';\n@import 'abstracts\/mixins';\n\/\/ Vendors (early to allow overriding)\n@import 'vendors\/normalize';\n\/\/ Base styles\n@import 'base\/reset';\n@import 'base\/typography';\n\/\/ Layout\n@import 'layouts\/header';\n@import 'layouts\/grid';\n\/\/ Components\n@import 'components\/buttons';\n@import 'components\/forms';\n\/\/ Page-specific styles\n@import 'pages\/home';\n@import 'pages\/blog';\n\/\/ Themes\n@import 'themes\/admin';\n<\/code><\/pre>\n<p>Dieser modulare Ansatz kann die Un\u00fcbersichtlichkeit verhindern, die oft bei gr\u00f6\u00dferen Projekten auftritt. Es ist ein wartbares System, das mit der Komplexit\u00e4t deines Themes mitw\u00e4chst.<\/p>\n<h3>Block-fokussierte Struktur: Moderne Organisation f\u00fcr den Block- und Seiteneditor<\/h3>\n<p>Wenn sich dein Theme auf den <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-full-site-editing\/\">Block-Editor<\/a> konzentriert, ist eine Struktur, die diese Komponenten priorisiert, oft sinnvoller. So kannst du deine Sass-Organisation mit dem Block-basierten Inhaltsmodell von WordPress in Einklang bringen.<\/p>\n<p>Die Struktur ist im Vergleich zum 7-1 Muster geradliniger:<\/p>\n<ul>\n<li><strong>Kern.<\/strong> Hier befinden sich deine grundlegenden Stile und Konfigurationen, wie Variablen, Mixins, Helfer, das Styling der Basiselemente und die <a href=\"https:\/\/kinsta.com\/de\/blog\/wp-core-blocks-erweitern\/\">WordPress-Kernbl\u00f6cke<\/a>.<\/li>\n<li><strong>Bl\u00f6cke.<\/strong> Hier befinden sich <em>benutzerdefinierte<\/em> Block-Variationen, erweiterte Core-Block-Styles und <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-block-muster\/\">Block-Muster-Styles<\/a>.<\/li>\n<li><strong>Templates.<\/strong> Hier f\u00fcgst du deine Einzelbeitragsvorlagen, Archivvorlagen und benutzerdefinierten Seitenvorlagen hinzu.<\/li>\n<li><strong>Dienstprogramme.<\/strong> Das sind Hilfsklassen und -werkzeuge wie z. B. Dienstprogramme f\u00fcr Abst\u00e4nde, Typografie und Farben oder Hintergr\u00fcnde.<\/li>\n<\/ul>\n<p>Diese Struktur unterst\u00fctzt die modulare Natur der Entwicklung mit Bl\u00f6cken und macht es einfacher, die Konsistenz zwischen deinen Variationen und Vorlagen zu wahren.<\/p>\n<h3>WordPress-spezifische \u00dcberlegungen zur Sass-Organisation<\/h3>\n<p>Bei der Organisation von Sass f\u00fcr WordPress-Themes sind einige plattformspezifische \u00dcberlegungen zu beachten. Die <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-template-hierarchie\/\">Vorlagenhierarchie von WordPress<\/a> bestimmt, welche PHP-Dateien f\u00fcr die verschiedenen Inhaltstypen zu verwenden sind.<\/p>\n<p>Wenn du diese Hierarchie in deiner Sass-Organisation widerspiegelst, entstehen intuitive Verbindungen zwischen PHP-Vorlagen und den zugeh\u00f6rigen Stilen. Daher solltest du deine seitenbezogenen Stile so organisieren, dass sie der WordPress-Vorlagenstruktur entsprechen:<\/p>\n<pre><code class=\"language-css\">\/\/ _archive.scss\n.archive {\n  \/\/ Base archive styles\n  \n  &.category {\n    \/\/ Category archive styles\n  }\n    \n  &.tag {\n    \/\/ Tag archive styles\n  }\n    \n  &.author {\n    \/\/ Author archive styles\n  }\n}<\/code><\/pre>\n<p>Auf diese Weise wird sofort klar, welche Stile f\u00fcr bestimmte Vorlagenkontexte gelten, und die Wartung und Aktualisierung wird vereinfacht.<\/p>\n<h4>Organisation der Plugin-Kompatibilit\u00e4t<\/h4>\n<p>Plugins bringen oft ihre eigenen Styles ein und dein Theme muss sie m\u00f6glicherweise \u00fcberschreiben. Anstatt die \u00dcberschreibungen in deinen Basisdateien zu verstreuen, solltest du sie isolieren:<\/p>\n<p>Die Struktur f\u00fcr die <a href=\"https:\/\/kinsta.com\/de\/thema\/woocommerce\/\">WooCommerce-Integration<\/a> k\u00f6nnte zum Beispiel eine von vielen Strukturen annehmen:<\/p>\n<pre><code class=\"language-bash\">vendors\/woocommerce\/\n\u251c\u2500\u2500 _general.scss          \/\/ Base WooCommerce styles\n\u251c\u2500\u2500 _buttons.scss          \/\/ WooCommerce button styles\n\u251c\u2500\u2500 _forms.scss            \/\/ WooCommerce form styles\n\u251c\u2500\u2500 _shop.scss             \/\/ Shop page styles\n\u2514\u2500\u2500 _single-product.scss   \/\/ Single product page styles<\/code><\/pre>\n<p>Diese Organisation macht es einfach, die Stile f\u00fcr die Plugin-Kompatibilit\u00e4t zu aktualisieren, wenn das Plugin aktualisiert wird, die Trennung zwischen Theme- und Plugin-Styles beizubehalten und bestimmte Plugin-bezogene Styles schnell zu finden.<\/p>\n<p>Au\u00dferdem solltest du deine \u00dcberschreibungen immer mit einem Namensraum versehen, um Stilkollisionen zu vermeiden:<\/p>\n<pre><code class=\"language-css\">\/\/ _woocommerce.scss\n.woocommerce {\n  .products {\n    \/\/ Custom product grid styles\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));\n    gap: 2rem;\n  }\n    \n  .single-product {\n    \/\/ Single product page styles\n    .price {\n      font-size: 1.5rem;\n      color: $price-color;\n    }\n  }\n}<\/code><\/pre>\n<p>Dieser Ansatz verhindert, dass Plugin-Stile in das Kerndesign deines Themes einflie\u00dfen, und bietet klare \u00dcberschreibungen, wo du sie brauchst.<\/p>\n<h4>Editor- und Admin-Styling<\/h4>\n<p>Oft musst du sowohl das Frontend als auch die Oberfl\u00e4che des Blockeditors gestalten. Daher kannst du eine eigene Struktur f\u00fcr admin-spezifische Stile erstellen:<\/p>\n<pre><code class=\"language-bash\">admin\/\n\u251c\u2500\u2500 _editor.scss         \/\/ Block editor styles\n\u251c\u2500\u2500 _login.scss          \/\/ Login page customization\n\u2514\u2500\u2500 _dashboard.scss      \/\/ Dashboard customizations<\/code><\/pre>\n<p>F\u00fcr die Unterst\u00fctzung des Blockeditors kompilierst du ein separates Stylesheet und reihst es wie folgt ein:<\/p>\n<pre><code class=\"language-php\">function theme_editor_styles() {\n  add_theme_support('editor-styles');\n  add_editor_style('assets\/css\/editor.css');\n}\nadd_action('after_setup_theme', 'theme_editor_styles');<\/code><\/pre>\n<p>So bleibt dein Editor-Kontext sauber, konsistent und visuell an das Frontend angepasst.<\/p>\n<h4>Responsive Design-Implementierung<\/h4>\n<p>WordPress-Themes m\u00fcssen auf verschiedenen Ger\u00e4tegr\u00f6\u00dfen funktionieren, daher brauchst du einen systematischen Ansatz f\u00fcr dein Responsive Design. Mit Sass-Mixins kannst du ein konsistentes, wartbares System schaffen:<\/p>\n<pre><code class=\"language-css\">\/\/ Breakpoint mixin\n@mixin respond-to($breakpoint) {\n  @if $breakpoint == \"sm\" {\n    @media (min-width: 576px) { @content; }\n  }\n  @else if $breakpoint == \"md\" {\n    @media (min-width: 768px) { @content; }\n  }\n  @else if $breakpoint == \"lg\" {\n    @media (min-width: 992px) { @content; }\n  }\n}<\/code><\/pre>\n<p>Wenn du die responsiven Stile kontextbezogen in der N\u00e4he ihrer Basisdefinitionen h\u00e4ltst, schaffst du eine besser wartbare Codebasis, die deutlich zeigt, wie sich die Komponenten an verschiedenen Haltepunkten anpassen.<\/p>\n<h2>Einrichten einer lokalen Entwicklungsumgebung<\/h2>\n<p>Die lokale Entwicklung ist ein zentraler Bestandteil jedes WordPress-Workflows &#8211; und sie wird noch wichtiger, wenn du Tools wie Sass verwendest. Ein richtiges Setup erm\u00f6glicht schnelle Iterationen, Echtzeit-Feedback und eine nahtlose Verbindung zwischen deinem Sass-Entwicklungsprozess und deiner WordPress-Website.<\/p>\n<p><a href=\"https:\/\/kinsta.com\/de\/devkinsta\/\">DevKinsta<\/a> ist eine gro\u00dfartige M\u00f6glichkeit, eine lokale Entwicklungsumgebung einzurichten, die sich an deine Bed\u00fcrfnisse anpassen l\u00e4sst und deren <a href=\"https:\/\/kinsta.com\/de\/docs\/devkinsta\/devkinsta-erste-schritte\/installation\/\">Installation und Einrichtung<\/a> einfach ist.<\/p>\n<figure id=\"attachment_194337\" aria-describedby=\"caption-attachment-194337\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194337 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/devkinsta-header.png\" alt=\"Eine coole digitale Illustration in Blaut\u00f6nen, die H\u00e4nde zeigt, die einen Computer benutzen. Eine Hand tippt auf einer Tastatur, w\u00e4hrend die andere auf einen Computerbildschirm zeigt, auf dem ein wei\u00dfer Buchstabe \u201eK\u201c auf blauem Hintergrund zu sehen ist. Die Illustration hat ein modernes, grafisches Design mit abstrakten Formen im Hintergrund.\" width=\"1200\" height=\"434\"><figcaption id=\"caption-attachment-194337\" class=\"wp-caption-text\">Das DevKinsta-Logo<\/figcaption><\/figure>\n<p>Die Verwendung von Gulp zur Einrichtung der Sass-Kompilierung in deinem Theme-Verzeichnis ist die einfachste Option. Navigiere zun\u00e4chst zu deinem Theme-Verzeichnis, initialisiere NPM und installiere die Abh\u00e4ngigkeiten, wie wir bereits erkl\u00e4rt haben.<\/p>\n<p>Als N\u00e4chstes erstellst du eine <code>gulpfile.js<\/code> mit konfiguriertem BrowserSync f\u00fcr deine DevKinsta-Website:<\/p>\n<pre><code class=\"language-js\">const { src, dest, watch, series } = require('gulp');\nconst sass = require('gulp-sass')(require('sass'));\nconst autoprefixer = require('gulp-autoprefixer');\nconst sourcemaps = require('gulp-sourcemaps');\nconst browserSync = require('browser-sync').create();\n\n\/\/ Get your DevKinsta site URL from the dashboard\nconst siteURL = 'your-site-name.local';\n\nfunction scssTask() {\n  return src('.\/src\/sass\/**\/*.scss')\n    .pipe(sourcemaps.init())\n    .pipe(sass().on('error', sass.logError))\n    .pipe(autoprefixer())\n    .pipe(sourcemaps.write('.\/'))\n    .pipe(dest('.\/assets\/css\/'))\n    .pipe(browserSync.stream());\n}\n\nfunction watchTask() {\n  browserSync.init({\n    proxy: siteURL,\n    notify: false\n  });\n  \n  watch('.\/src\/sass\/**\/*.scss', scssTask);\n  watch('.\/**\/*.php').on('change', browserSync.reload);\n}\n\nexports.default = series(scssTask, watchTask);<\/code><\/pre>\n<p>Richte dann deine Dateistruktur ein:<\/p>\n<pre><code class=\"language-bash\">mkdir -p src\/sass\/{abstracts,base,components,layouts,pages,themes,vendors}\ntouch src\/sass\/main.scss<\/code><\/pre>\n<p>Jetzt bist du bereit, <code>npx gulp<\/code> auszuf\u00fchren. Jedes Mal, wenn sich eine Sass- oder PHP-Datei \u00e4ndert, werden deine Stile kompiliert, in den Browser injiziert und bei Bedarf aktualisiert.<\/p>\n<h2>\u00dcbergang von der Entwicklung zur Produktion<\/h2>\n<p>Wenn du dein Theme lokal entwickelt hast, brauchst du eine zuverl\u00e4ssige Strategie, um es in Staging- und Produktionsumgebungen zu verteilen.<\/p>\n<p>Kinsta macht dies mit integrierten Staging-Umgebungen, die direkt mit DevKinsta synchronisiert werden, ganz einfach. Mit nur wenigen Klicks kannst du dein Theme von der lokalen in die Staging-Umgebung verschieben:<\/p>\n<figure id=\"attachment_194338\" aria-describedby=\"caption-attachment-194338\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194338 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/push-to-live.png\" alt=\"Die MyKinsta-Oberfl\u00e4che zeigt oben Schaltfl\u00e4chen f\u00fcr \u201ePush-Umgebung\u201c, \u201eWP-Admin \u00f6ffnen\u201c und \u201eWebsite besuchen\u201c. Darunter ist ein beiger Bereich mit dem Text \u201ePush to Live\u201c und einer gr\u00fcnen, pillenf\u00f6rmigen Schaltfl\u00e4che mit der Bezeichnung \u201eLive\u201c. Die Oberfl\u00e4che zeigt auch einen Bereich f\u00fcr Updates.\" width=\"1200\" height=\"423\"><figcaption id=\"caption-attachment-194338\" class=\"wp-caption-text\">Die Push-to-Live-Dropdown-Option im MyKinsta-Dashboard<\/figcaption><\/figure>\n<p>Dadurch wird sichergestellt, dass sowohl deine kompilierten CSS- als auch deine Sass-Quelldateien sicher ins Staging \u00fcbertragen werden. F\u00fcr Teams mit komplexeren Bereitstellungsanforderungen kannst du die Staging-Bereitstellung mit Gulp automatisieren. Hier ist ein Beispiel:<\/p>\n<pre><code class=\"language-js\">const { src, parallel, series } = require('gulp');\nconst rsync = require('gulp-rsync');\n\n\/\/ Clean and build tasks defined earlier\n\n\/\/ Deployment task\nfunction deployToStaging() {\n  return src('dist\/**')\n    .pipe(rsync({\n      root: 'dist\/',\n      hostname: 'your-kinsta-sftp-host',\n      destination: 'public\/wp-content\/themes\/your-theme\/',\n      archive: true,\n      silent: false,\n      compress: true\n    }));\n}\n\n\/\/ Export the deployment task\nexports.deploy = series(\n  parallel(cleanStyles, cleanScripts),\n  parallel(styles, scripts),\n  deployToStaging\n);<\/code><\/pre>\n<p>Nach der Bereitstellung im Staging solltest du noch gr\u00fcndliche Tests durchf\u00fchren, um sicherzustellen, dass dein mit Sass kompiliertes CSS korrekt funktioniert:<\/p>\n<ol>\n<li><strong>Visuelle Tests.<\/strong> Hier \u00fcberpr\u00fcfst du, ob alle Stile auf allen Seiten wie erwartet angewendet werden.<\/li>\n<li><strong>Responsive Testing.<\/strong> \u00dcberpr\u00fcfe, ob alle deine Breakpoints richtig funktionieren.<\/li>\n<li><strong>Leistungstests.<\/strong> <a href=\"https:\/\/kinsta.com\/de\/blog\/pagespeed-insights-api\/\">Google PageSpeed Insights<\/a>, Lighthouse und andere Tools k\u00f6nnen dir helfen, das Laden von CSS zu \u00fcberpr\u00fcfen.<\/li>\n<li><strong>Browser\u00fcbergreifende Pr\u00fcfung.<\/strong> Denke daran, auf verschiedenen Browsern zu testen, um Kompatibilit\u00e4tsprobleme zu erkennen.<\/li>\n<\/ol>\n<p>Achte bei den Tests besonders auf Pfade, Cache-Einstellungen und Dateiberechtigungen, da dies h\u00e4ufige Ursachen f\u00fcr Probleme bei der Bereitstellung sind. Als N\u00e4chstes kannst du dein Theme f\u00fcr die Produktion bereitstellen. Der <a href=\"https:\/\/kinsta.com\/de\/changelog\/selective-push\/\">selektive Push<\/a> von Kinsta macht diesen Prozess einfach und gibt dir die Kontrolle dar\u00fcber, was du bereitstellst.<\/p>\n<figure id=\"attachment_194340\" aria-describedby=\"caption-attachment-194340\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-194340 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/04\/selective-push.png\" alt=\"Das Dialogfeld \u201ePush to Live\u201c wird angezeigt, wenn du eine Bereitstellung aus einer Staging-Umgebung innerhalb von MyKinsta durchf\u00fchrst. Das modale Fenster zeigt Optionen f\u00fcr den Push von der Staging- in die Live-Umgebung mit Kontrollk\u00e4stchen f\u00fcr Dateien, Datenbank und die Ausf\u00fchrung einer Suche und Ersetzung. In einem Dropdown-Men\u00fc ist \u201eAlle Dateien und Ordner\u201c ausgew\u00e4hlt, und es gibt einen Hinweis, dass MyKinsta eine automatische Sicherung der Live-Umgebung erstellt.\" width=\"1200\" height=\"557\"><figcaption id=\"caption-attachment-194340\" class=\"wp-caption-text\">Die selektive Push-Funktion von Kinsta<\/figcaption><\/figure>\n<p>Auch in diesem Fall musst du sicherstellen, dass dein CSS vor der Bereitstellung richtig optimiert wird. Daf\u00fcr gibt es verschiedene M\u00f6glichkeiten, wie z. B. Minifizierung, Dateiorganisation und Cache-Busting.<\/p>\n<h2>Effektive Block-Editor-Integrationen erstellen<\/h2>\n<p>Die moderne WordPress-Entwicklung dreht sich um den Block-Editor, und ein gutes Styling sorgt f\u00fcr Konsistenz zwischen der Bearbeitung und dem Frontend.<\/p>\n<p>Anstatt die Stile nur nach Seitenvorlagen zu organisieren, solltest du stattdessen eine blockzentrierte Organisation in Betracht ziehen. Du kannst damit beginnen, f\u00fcr jeden Blocktyp eigene Sass-Partials zu erstellen:<\/p>\n<pre><code class=\"language-bash\">blocks\/\n\u251c\u2500\u2500 _paragraph.scss      \/\/ Paragraph block styles\n\u251c\u2500\u2500 _heading.scss        \/\/ Heading block styles\n\u251c\u2500\u2500 _image.scss          \/\/ Image block styles\n\u251c\u2500\u2500 _gallery.scss        \/\/ Gallery block styles\n\u2514\u2500\u2500 _custom-block.scss   \/\/ Custom block styles<\/code><\/pre>\n<p>Das macht es einfacher, die Stile zu pflegen, wenn sich der WordPress-Kern weiterentwickelt und die Block-Bibliothek deines Themes w\u00e4chst. Die Stile der einzelnen Bl\u00f6cke lassen sich \u00fcbersichtlich verwalten und unabh\u00e4ngig voneinander aktualisieren.<\/p>\n<p>Achte in jeder Block-Datei auf klare Namenskonventionen, die sich an den Block-Klassen von WordPress orientieren:<\/p>\n<pre><code class=\"language-css\">\/\/ _paragraph.scss\n.wp-block-paragraph {\n  \/\/ Base paragraph block styles\n  font-family: $body-font;\n  line-height: 1.6;\n  \n  \/\/ Block variations\n  &.is-style-lead {\n    font-size: 1.2em;\n    font-weight: 300;\n  }\n  \n  &.has-background {\n    padding: 1.5rem;\n  }\n}<\/code><\/pre>\n<p>Auf diese Weise wird eine direkte Beziehung zwischen den Steuerelementen des Block-Editors und den daraus resultierenden Styles hergestellt, was dein Theme berechenbarer und wartbarer macht.<\/p>\n<p>Um die Bearbeitung mit dem Frontend zu synchronisieren, solltest du separate Stylesheets erstellen und Variablen zwischen ihnen austauschen:<\/p>\n<pre><code class=\"language-js\">\/\/ In your gulpfile.js\nfunction themeStyles() {\n  return src('.\/src\/sass\/main.scss')\n    .pipe(sass().on('error', sass.logError))\n    .pipe(autoprefixer())\n    .pipe(dest('.\/assets\/css\/'));\n}\n\nfunction editorStyles() {\n  return src('.\/src\/sass\/editor.scss')\n    .pipe(sass().on('error', sass.logError))\n    .pipe(autoprefixer())\n    .pipe(dest('.\/assets\/css\/'));\n}<\/code><\/pre>\n<p>Stelle diese Editorstile speziell f\u00fcr den Blockeditor-Kontext in die Warteschlange:<\/p>\n<pre><code class=\"language-php\">function theme_editor_styles() {\n  add_theme_support('editor-styles');\n  add_editor_style('assets\/css\/editor.css');\n}\nadd_action('after_setup_theme', 'theme_editor_styles');<\/code><\/pre>\n<p>Um die visuelle Konsistenz zu wahren, kannst du gemeinsame Variablen und Mixins in beiden Stylesheets verwenden:<\/p>\n<pre><code class=\"language-css\">\/\/ abstracts\/_variables.scss\n$primary-color: #0073aa;\n$secondary-color: #23282d;\n$heading-font: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n$body-font: 'Georgia', serif;\n\/\/ Import in both main.scss and editor.scss<\/code><\/pre>\n<p>Dieser Ansatz stellt sicher, dass Farben, Typografie und Abst\u00e4nde zwischen der Bearbeitung und der Anzeige konsistent bleiben.<\/p>\n<h3>Integration mit theme.json<\/h3>\n<p>In der Datei <code>theme.json<\/code> legen Block-Themes globale Einstellungen fest, die sowohl den Editor als auch das Frontend betreffen. Wenn du deine Sass-Variablen mit den <a href=\"https:\/\/kinsta.com\/de\/blog\/theme-json\/\">Einstellungen von <code>theme.json<\/code><\/a> abstimmst, entsteht ein einheitliches System. Ein Beispiel:<\/p>\n<pre><code class=\"language-js\">{\n  \"version\": 2,\n  \"settings\": {\n    \"color\": {\n      \"palette\": [\n        {\n          \"name\": \"Primary\",\n          \"slug\": \"primary\",\n          \"color\": \"#0073aa\"\n        }\n      ]\n    }\n  }\n}<\/code><\/pre>\n<p>Du kannst dies in deinen Sass-Dateien abgleichen:<\/p>\n<pre><code class=\"language-js\">\/\/ Match theme.json values\n$color-primary: #0073aa;\n\n\/\/ Generate matching custom properties\n:root {\n  --wp--preset--color--primary: #{$color-primary};\n}<\/code><\/pre>\n<p>Durch diese einfache Synchronisierung wird sichergestellt, dass deine benutzerdefinierten Stile mit den eingebauten Steuerelementen und dem globalen Stylesystem des Blockeditors harmonieren.<\/p>\n<h2>Leistungsoptimierung mit Sass<\/h2>\n<p>Die Leistungsoptimierung ist ein wichtiger Aspekt f\u00fcr professionelle WordPress-Themes. Neben der grundlegenden Kompilierung k\u00f6nnen Sass-Workflows verschiedene andere Techniken einsetzen, um die Ladegeschwindigkeit und das Nutzererlebnis (UX) zu verbessern.<\/p>\n<h3>Implementierung von kritischem CSS f\u00fcr schnelleres Laden<\/h3>\n<p><a href=\"https:\/\/web.dev\/articles\/extract-critical-css\" target=\"_blank\" rel=\"noopener noreferrer\">Kritisches CSS<\/a> ist eine Optimierungstechnik, die das Minimum an CSS extrahiert und einbindet, das deine Website ben\u00f6tigt, um Inhalte &#8222;above the fold&#8220; darzustellen. <a href=\"https:\/\/kinsta.com\/de\/blog\/critical-rendering-path\/\">Kritische Rendering-Pfade<\/a> sind generell wichtig, wenn du f\u00fcr WordPress entwickelst. <a href=\"https:\/\/kinsta.com\/de\/blog\/optimieren-css\/#use-critical-inline-css\">Wenn du dein kritisches CSS optimierst<\/a>, kannst du die wahrgenommenen Ladezeiten verbessern, indem du Rendering-blockierendes CSS reduzierst.<\/p>\n<p>Das <a href=\"https:\/\/kinsta.com\/courses\/speed-up-wordpress\/writing-critical-css\/\">Schreiben von kritischem CSS<\/a> ist eine Kunst f\u00fcr sich &#8211; wenn du Sass hinzuf\u00fcgst, wird die Schwierigkeit noch gr\u00f6\u00dfer. Du beginnst damit, eine separate Sass-Datei speziell f\u00fcr kritische Stile zu erstellen und deinen Build-Prozess so zu konfigurieren, dass diese Datei separat kompiliert wird:<\/p>\n<pre><code class=\"language-css\">\/\/ critical.scss - Only include styles for above-the-fold content\n@import 'abstracts\/variables';\n@import 'abstracts\/mixins';\n\n\/\/ Only essential styles\n@import 'base\/reset';\n@import 'layouts\/header';\n@import 'components\/navigation';\n\nfunction criticalStyles() {\n  return src('.\/src\/sass\/critical.scss')\n    .pipe(sass().on('error', sass.logError))\n    .pipe(autoprefixer())\n    .pipe(cssnano())\n    .pipe(dest('.\/assets\/css\/'));\n}<\/code><\/pre>\n<p>Um dieses kritische CSS in deinem Theme zu implementieren, f\u00fcgst du es einfach in die <code>head<\/code>-Tags ein, w\u00e4hrend du das Fill CSS asynchron l\u00e4dst:<\/p>\n<pre><code class=\"language-php\">function add_critical_css() {\n  $critical_css = file_get_contents(get_template_directory() . \n    '\/assets\/css\/critical.css');\n  echo '' . $critical_css . '';\n  \n  \/\/ Async load full CSS\n  echo '';\n}\nadd_action('wp_head', 'add_critical_css', 1);<\/code><\/pre>\n<p>Mit dieser Technik kann der Inhalt schneller angezeigt werden, w\u00e4hrend der Rest der Styles im Hintergrund geladen wird. Allerdings braucht nicht jede Seite alle Stile deines Themes. Das bedingte Laden basierend auf der aktuellen Vorlage oder dem Inhaltstyp kann die Leistung noch weiter steigern.<\/p>\n<p>Dies kannst du erreichen, indem du in der <strong>functions.php<\/strong> deines Themes template-spezifisches CSS l\u00e4dst:<\/p>\n<pre><code class=\"language-php\">function load_template_specific_css() {\n  \/\/ Base styles for all pages\n  wp_enqueue_style('main-styles', \n    get_template_directory_uri() . '\/assets\/css\/main.css');\n    \n  \/\/ Product page specific styles\n  if (is_singular('product')) {\n    wp_enqueue_style('product-styles', \n      get_template_directory_uri() . '\/assets\/css\/product.css');\n  } \n  \/\/ Archive page specific styles\n  elseif (is_archive()) {\n    wp_enqueue_style('archive-styles', \n      get_template_directory_uri() . '\/assets\/css\/archive.css');\n  }\n}\nadd_action('wp_enqueue_scripts', 'load_template_specific_css');<\/code><\/pre>\n<p>Dieser Ansatz reduziert die CSS-Ladung jeder Seite, verbessert die Ladezeiten und erh\u00e4lt die hohe Designqualit\u00e4t.<\/p>\n<h3>Implementierung einer intelligenten Cache-Kontrolle<\/h3>\n<p><a href=\"https:\/\/kinsta.com\/de\/blog\/was-ist-cache\/\">Die Verwaltung deines Caches<\/a> ist immer von Vorteil f\u00fcr den Endnutzer, da er die neuesten Styles erh\u00e4lt und gleichzeitig die Caching-Funktion f\u00fcr unver\u00e4nderte Assets nutzt. Das automatische Cache-Busting mit Sass erfolgt in der Style-Enqueuing-Funktion deines Themes:<\/p>\n<pre><code class=\"language-php\">function enqueue_styles_with_cache_busting() {\n  $css_file = get_template_directory() . '\/assets\/css\/main.css';\n  $version = filemtime($css_file);\n  \n  wp_enqueue_style('main-styles', \n    get_template_directory_uri() . '\/assets\/css\/main.css', \n    array(), $version);\n}\nadd_action('wp_enqueue_scripts', 'enqueue_styles_with_cache_busting');<\/code><\/pre>\n<p>Diese Technik verwendet die \u00c4nderungszeit der Datei als Versionsnummer und stellt sicher, dass die Browser CSS nur so lange zwischenspeichern, bis es sich \u00e4ndert, und dann automatisch die aktualisierte Version herunterladen.<\/p>\n<h3>Sichere Verwaltung von Source Maps<\/h3>\n<p>Source Maps sind w\u00e4hrend der Entwicklung von unsch\u00e4tzbarem Wert, k\u00f6nnen aber in der Produktion deinen Sass-Quellcode preisgeben. Hier kann es hilfreich sein, eine umgebungsspezifische Handhabung der Source Maps zu implementieren:<\/p>\n<pre><code class=\"language-js\">\/\/ In your gulpfile.js\nconst isProduction = process.env.NODE_ENV === 'production';\n\nfunction styles() {\n  return src('.\/src\/sass\/main.scss')\n    .pipe(gulpif(!isProduction, sourcemaps.init()))\n    .pipe(sass().on('error', sass.logError))\n    .pipe(autoprefixer())\n    .pipe(gulpif(!isProduction, sourcemaps.write('.\/')))\n    .pipe(dest('.\/assets\/css\/'));\n}<\/code><\/pre>\n<p>F\u00fcr ein kontrolliertes Debugging in der Produktion m\u00f6chtest du Source Maps vielleicht nur Administratoren zur Verf\u00fcgung stellen:<\/p>\n<pre><code class=\"language-php\">function conditional_source_maps() {\n  \/\/ Only for administrators with debug parameter\n  if (current_user_can('manage_options') && isset($_GET['debug_css'])) {\n    wp_enqueue_style('debug-maps', \n      get_template_directory_uri() . '\/assets\/css\/main.css.map');\n  }\n}\nadd_action('wp_enqueue_scripts', 'conditional_source_maps', 999);<\/code><\/pre>\n<p>So bleiben die Vorteile von Source Maps f\u00fcr das Debugging erhalten und dein Quellcode wird vor unn\u00f6tiger Offenlegung gesch\u00fctzt &#8211; ein gro\u00dfer Gewinn f\u00fcr alle Beteiligten.<\/p>\n<h2>Effektive Arbeitsabl\u00e4ufe im Team aufbauen<\/h2>\n<p>Konsistente Arbeitsabl\u00e4ufe und Standards sind f\u00fcr jedes Team, das an WordPress-Themes mit Sass arbeitet, unerl\u00e4sslich. F\u00fcr Sass-spezifische Arbeitsabl\u00e4ufe solltest du darauf achten, dass du in einigen Schl\u00fcsselbereichen klare Standards festlegst.<\/p>\n<p>So solltest du zum Beispiel einheitliche Namenskonventionen und Muster f\u00fcr Variablen, Mixins und Klassen festlegen:<\/p>\n<pre><code class=\"language-css\">\/\/ Variables: use kebab-case with descriptive prefixes\n$color-primary: #0073aa;\n$font-heading: 'Helvetica Neue', sans-serif;\n$spacing-base: 1rem;\n\n\/\/ Mixins: verb-based naming\n@mixin create-gradient($start, $end) {\n  background: linear-gradient(to bottom, $start, $end);\n}\n\n\/\/ Classes: BEM convention\n.card {\n  &__header { \/* header styles *\/ }\n  &__body { \/* body styles *\/ }\n  &--featured { \/* featured variant *\/ }\n}<\/code><\/pre>\n<p>Es ist eine gute Idee, auch zu standardisieren, wie neue Dateien dem Projekt hinzugef\u00fcgt werden. Hier sind einige Beispiele f\u00fcr Standards, die du einf\u00fchren kannst:<\/p>\n<ul>\n<li>Neue Komponenten kommen in das <strong>Komponentenverzeichnis<\/strong>.<\/li>\n<li>Jede Komponente erh\u00e4lt ihre eigene Datei.<\/li>\n<li>Alle Dateien werden in der gleichen Reihenfolge importiert.<\/li>\n<li>Partials beginnen immer mit einem Unterstrich.<\/li>\n<\/ul>\n<p>Dar\u00fcber hinaus kannst du auch Anforderungen f\u00fcr Codekommentare und Dokumentation festlegen. Du kannst diese Standards in einer <code>.stylelintrc<\/code> Konfigurationsdatei &#8222;kodifizieren&#8220;, um die Durchsetzung zu automatisieren:<\/p>\n<pre><code class=\"language-json\">{\n  \"extends\": \"stylelint-config-standard-scss\",\n  \"rules\": {\n    \"indentation\": 2,\n    \"selector-class-pattern\": \"^[a-z][a-z0-9-]*$\",\n    \"max-nesting-depth\": 3,\n    \"selector-max-compound-selectors\": 4\n  }\n}<\/code><\/pre>\n<p>Code-Reviews sind f\u00fcr Sass von gro\u00dfer Bedeutung, weil kleine \u00c4nderungen weitreichende Auswirkungen auf das Aussehen deines Themes haben k\u00f6nnen. Deine eigenen \u00dcberpr\u00fcfungsprozesse sollten sich speziell mit dem Styling befassen, und zwar auf mehrere Arten:<\/p>\n<ul>\n<li><strong>Einhaltung des Style Guides.<\/strong> Stelle sicher, dass neue Stile mit dem aktuellen Designsystem deines Projekts \u00fcbereinstimmen.<\/li>\n<li><strong>Leistungsaspekte.<\/strong> \u00dcberpr\u00fcfe alle deine CSS-Ausgaben auf Optimierungsm\u00f6glichkeiten.<\/li>\n<li><strong>Cross-Browser-Kompatibilit\u00e4t.<\/strong> \u00dcberpr\u00fcfe, ob die von dir erstellten Stile in allen erforderlichen Browsern funktionieren.<\/li>\n<\/ul>\n<p>Nat\u00fcrlich solltest du diese Sass-spezifischen Aspekte in die Code-Review-Checklisten deines Teams aufnehmen, um hohe Standards in deiner gesamten Codebasis zu gew\u00e4hrleisten.<\/p>\n<h3>Versionskontrollstrategien f\u00fcr Sass-Projekte<\/h3>\n<p>Es gibt einige Sass-spezifische \u00dcberlegungen zur <a href=\"https:\/\/kinsta.com\/de\/blog\/git-vs-github\/\">Versionskontrolle<\/a>, die deine Aufmerksamkeit verdienen. Eine wichtige Entscheidung ist, ob du dein kompiliertes CSS festlegst. Es gibt zwei Denkans\u00e4tze, die bei deiner Entscheidung eine Rolle spielen werden:<\/p>\n<ul>\n<li>Wenn du das CSS nicht festlegst, bleibt dein Projektarchiv sauber, aber du musst bei der Bereitstellung Build-Schritte durchf\u00fchren.<\/li>\n<li>Wenn du das CSS festlegst, wird dein Projektarchiv gr\u00f6\u00dfer, aber du kannst auch sicherstellen, dass die Dateien, die du bereitstellst, genau dem entsprechen, was du getestet hast.<\/li>\n<\/ul>\n<p>Wenn du dich daf\u00fcr entscheidest, die kompilierten Dateien nicht zu committen, solltest du sicherstellen, dass sie in deiner <code>.gitignore<\/code> Datei einen entsprechenden Ausschluss erhalten:<\/p>\n<pre><code class=\"language-bash\"># .gitignore\n.sass-cache\/\n*.css.map\n*.scss.map\nnode_modules\/\n\/assets\/css\/<\/code><\/pre>\n<p>Schlie\u00dflich solltest du deine Zweigstruktur f\u00fcr Style-Arbeiten \u00fcberpr\u00fcfen und \u00fcberlegen, wie du die Style-\u00c4nderungen f\u00fcr neue Komponenten (z. B. Feature-Zweige), visuelle Variationen (z. B. \u00fcber Themenzweige) und gr\u00f6\u00dfere Design-Updates (z. B. \u00fcber style-spezifische Zweige) verwaltest.<\/p>\n<h2>Zusammenfassung<\/h2>\n<p>Ein moderner Sass-Workflow kann die Entwicklung deines WordPress-Themes von einer Herausforderung in einen strukturierten, wartbaren Prozess verwandeln.<\/p>\n<p>Zu den wichtigsten Komponenten eines effektiven Sass-Workflows geh\u00f6ren ein einfacher, aber leistungsf\u00e4higer Build-Prozess, eine durchdachte Dateiorganisation, Leistungsoptimierungen und solide Team-Workflows. Wenn sich der Block-Editor weiterentwickelt, kannst du dich mit einer flexiblen und robusten Sass-Implementierung anpassen und trotzdem hochwertige Ergebnisse liefern.<\/p>\n<p>Und wenn du nach einem <a href=\"https:\/\/kinsta.com\/de\/wordpress-hosting\/\">WordPress-Hosting<\/a> suchst, das diese Art von Workflow unterst\u00fctzt &#8211; von <a href=\"https:\/\/kinsta.com\/de\/docs\/wordpress-hosting\/zu-ssh-verbinden\/\">SSH-Zugang<\/a> und <a href=\"https:\/\/kinsta.com\/de\/docs\/wordpress-hosting\/seiten-verwaltung\/wordpress-wp-cli\/\">WP-CLI<\/a> bis hin zu <a href=\"https:\/\/kinsta.com\/de\/docs\/wordpress-hosting\/staging-umgebung\/\">Staging-Umgebungen<\/a> mit nur einem Klick &#8211; bietet Kinsta eine entwicklerfreundliche Plattform, die moderne Tools sofort unterst\u00fctzt.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Erstellung von modernem, wartbarem CSS f\u00fcr WordPress-Themes bringt einige Herausforderungen mit sich, die Entwickler meistern m\u00fcssen. Die Verwendung von Sass (Syntactically Awesome Style Sheets) als &#8230;<\/p>\n","protected":false},"author":199,"featured_media":73360,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[1012],"class_list":["post-73359","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-wordpress-website-design"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Ein moderner Sass-Workflow f\u00fcr die Entwicklung von WordPress-Themes<\/title>\n<meta name=\"description\" content=\"Um WordPress-Themes mit Sass zu erstellen, braucht man einen soliden Arbeitsablauf. In diesem Beitrag zeigen wir dir die besten Tools und Vorgehensweisen f\u00fcr Entwickler!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ein moderner Sass-Workflow f\u00fcr die Entwicklung von WordPress-Themes\" \/>\n<meta property=\"og:description\" content=\"Um WordPress-Themes mit Sass zu erstellen, braucht man einen soliden Arbeitsablauf. In diesem Beitrag zeigen wir dir die besten Tools und Vorgehensweisen f\u00fcr Entwickler!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-06-02T13:09:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-05T06:27:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/06\/using-sass-to-style-your-wordpress-theme.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1470\" \/>\n\t<meta property=\"og:image:height\" content=\"735\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jeremy Holcombe\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Um WordPress-Themes mit Sass zu erstellen, braucht man einen soliden Arbeitsablauf. In diesem Beitrag zeigen wir dir die besten Tools und Vorgehensweisen f\u00fcr Entwickler!\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/06\/using-sass-to-style-your-wordpress-theme.png\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeremy Holcombe\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"27\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/\"},\"author\":{\"name\":\"Jeremy Holcombe\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\"},\"headline\":\"Ein moderner Sass-Workflow f\u00fcr die Entwicklung von WordPress-Themes\",\"datePublished\":\"2025-06-02T13:09:47+00:00\",\"dateModified\":\"2025-06-05T06:27:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/\"},\"wordCount\":3939,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/06\/using-sass-to-style-your-wordpress-theme.png\",\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/\",\"url\":\"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/\",\"name\":\"Ein moderner Sass-Workflow f\u00fcr die Entwicklung von WordPress-Themes\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/06\/using-sass-to-style-your-wordpress-theme.png\",\"datePublished\":\"2025-06-02T13:09:47+00:00\",\"dateModified\":\"2025-06-05T06:27:20+00:00\",\"description\":\"Um WordPress-Themes mit Sass zu erstellen, braucht man einen soliden Arbeitsablauf. In diesem Beitrag zeigen wir dir die besten Tools und Vorgehensweisen f\u00fcr Entwickler!\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/06\/using-sass-to-style-your-wordpress-theme.png\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/06\/using-sass-to-style-your-wordpress-theme.png\",\"width\":1470,\"height\":735},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WordPress Website Design\",\"item\":\"https:\/\/kinsta.com\/de\/thema\/wordpress-website-design\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Ein moderner Sass-Workflow f\u00fcr die Entwicklung von WordPress-Themes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/de\/#website\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/de\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\",\"https:\/\/x.com\/Kinsta_DE\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\",\"name\":\"Jeremy Holcombe\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"caption\":\"Jeremy Holcombe\"},\"description\":\"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/jeremyholcombe\/\"],\"url\":\"https:\/\/kinsta.com\/de\/blog\/author\/jeremyholcombe\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Ein moderner Sass-Workflow f\u00fcr die Entwicklung von WordPress-Themes","description":"Um WordPress-Themes mit Sass zu erstellen, braucht man einen soliden Arbeitsablauf. In diesem Beitrag zeigen wir dir die besten Tools und Vorgehensweisen f\u00fcr Entwickler!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/","og_locale":"de_DE","og_type":"article","og_title":"Ein moderner Sass-Workflow f\u00fcr die Entwicklung von WordPress-Themes","og_description":"Um WordPress-Themes mit Sass zu erstellen, braucht man einen soliden Arbeitsablauf. In diesem Beitrag zeigen wir dir die besten Tools und Vorgehensweisen f\u00fcr Entwickler!","og_url":"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","article_published_time":"2025-06-02T13:09:47+00:00","article_modified_time":"2025-06-05T06:27:20+00:00","og_image":[{"width":1470,"height":735,"url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/06\/using-sass-to-style-your-wordpress-theme.png","type":"image\/png"}],"author":"Jeremy Holcombe","twitter_card":"summary_large_image","twitter_description":"Um WordPress-Themes mit Sass zu erstellen, braucht man einen soliden Arbeitsablauf. In diesem Beitrag zeigen wir dir die besten Tools und Vorgehensweisen f\u00fcr Entwickler!","twitter_image":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/06\/using-sass-to-style-your-wordpress-theme.png","twitter_creator":"@Kinsta_DE","twitter_site":"@Kinsta_DE","twitter_misc":{"Verfasst von":"Jeremy Holcombe","Gesch\u00e4tzte Lesezeit":"27\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/"},"author":{"name":"Jeremy Holcombe","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21"},"headline":"Ein moderner Sass-Workflow f\u00fcr die Entwicklung von WordPress-Themes","datePublished":"2025-06-02T13:09:47+00:00","dateModified":"2025-06-05T06:27:20+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/"},"wordCount":3939,"publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/06\/using-sass-to-style-your-wordpress-theme.png","inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/","url":"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/","name":"Ein moderner Sass-Workflow f\u00fcr die Entwicklung von WordPress-Themes","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/06\/using-sass-to-style-your-wordpress-theme.png","datePublished":"2025-06-02T13:09:47+00:00","dateModified":"2025-06-05T06:27:20+00:00","description":"Um WordPress-Themes mit Sass zu erstellen, braucht man einen soliden Arbeitsablauf. In diesem Beitrag zeigen wir dir die besten Tools und Vorgehensweisen f\u00fcr Entwickler!","breadcrumb":{"@id":"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/#primaryimage","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/06\/using-sass-to-style-your-wordpress-theme.png","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/06\/using-sass-to-style-your-wordpress-theme.png","width":1470,"height":735},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/de\/blog\/sass-workflow-wordpress-theme-erstellung\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/de\/"},{"@type":"ListItem","position":2,"name":"WordPress Website Design","item":"https:\/\/kinsta.com\/de\/thema\/wordpress-website-design\/"},{"@type":"ListItem","position":3,"name":"Ein moderner Sass-Workflow f\u00fcr die Entwicklung von WordPress-Themes"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/de\/#website","url":"https:\/\/kinsta.com\/de\/","name":"Kinsta\u00ae","description":"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen","publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/de\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","https:\/\/x.com\/Kinsta_DE","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21","name":"Jeremy Holcombe","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","caption":"Jeremy Holcombe"},"description":"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.","sameAs":["https:\/\/www.linkedin.com\/in\/jeremyholcombe\/"],"url":"https:\/\/kinsta.com\/de\/blog\/author\/jeremyholcombe\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/73359","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/users\/199"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/comments?post=73359"}],"version-history":[{"count":7,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/73359\/revisions"}],"predecessor-version":[{"id":73379,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/73359\/revisions\/73379"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/73359\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/73359\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/73359\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/73359\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/73359\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/73359\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/73359\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/73359\/translations\/es"},{"href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/73359\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media\/73360"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media?parent=73359"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/tags?post=73359"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/topic?post=73359"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}