=== Hafen ===
Contributors: hafenstudios
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 0.4.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: blog, portfolio, one-column, block-styles, wide-blocks, full-site-editing, custom-colors, custom-menu, editor-style, featured-images, threaded-comments, translation-ready, style-variations, block-patterns

Das AI-native WordPress-Block-Theme von hafenstudios. Schnell, barrierefrei, maschinenlesbar.

== Description ==

Hafen ist ein vollständiges Block-Theme (Full Site Editing) mit Fokus auf Geschwindigkeit,
Barrierefreiheit und maschinenlesbarem Markup.

Der Speed-Anspruch in belegbaren Zahlen (gzip, Stand 0.3.1): Hafen selbst lädt rund
5 KB CSS+JS in 2 Requests; mit der selbst gehosteten Variable-Schrift bleibt das Theme
komplett unter 55 KB – ohne einen einzigen externen Request. Mit der Stapellauf-Variation:
0 Font-Bytes. Das ist der Anteil des Themes; Bilder, Plugins und Serverkonfiguration
kommen auf jeder Website dazu.

Dieses Theme ist bewusst eine reine Präsentationsschicht. Funktionalität, die laut
WordPress.org-Richtlinien ins Plugin gehört (JSON-LD-Schema-Engine, Custom-Blöcke,
llms.txt-Generator, REST-/MCP-Endpoints, KI-Assistent), liefert das separate Companion-Plugin
"Hafen Core". So bleibt das Theme review-konform, und die AI-Funktionen überleben einen
Theme-Wechsel.

Merkmale:
* Full Site Editing mit theme.json als Single Source of Truth
* Selbst-gehostete Inter-Schrift als eine Variable-Font-Datei (~47 KB für alle
  Gewichte 100–900; kein externer Font-Call, DSGVO-freundlich)
* Style-Variation "Stapellauf": reine Systemschriften, 0 KB Font-Download
* Answer-Engine-Block-Styles (TL;DR, Definition, FAQ, Schritte) für den Hafen-Look
* Landing-Patterns aus reinen Core-Blöcken (Hero, Features, Performance, Produkt-Karten, CTA,
  Kennzahlen-Band, Zeitstrahl)
* Barrierefreiheit als Grundlinie: Skip-Link, Fokus-Ringe, Landmarks, reduced-motion
* Vollständig übersetzbar

== Installation ==

1. Theme unter Design > Themes > Hinzufügen hochladen und aktivieren.
2. Nach der Aktivierung erscheint auf dem Dashboard und unter Design > Themes ein
   einmaliger, wegklickbarer Hinweis auf das kostenlose Plugin "Hafen Core". Es ist
   optional und bringt die AI-Funktionen (Schema, llms.txt, Answer-Blöcke) sowie den
   Einrichtungs-Assistenten mit. Wer es nicht will, klickt den Hinweis weg; das Theme
   funktioniert vollständig ohne.
3. Unter Design > Editor Kopf-/Fußbereich, Farben und Startseite anpassen.

== Frequently Asked Questions ==

= Brauche ich das Plugin "Hafen Core"? =
Für den reinen Look nein. Für die AI-Funktionen (natives Schema, llms.txt,
schema-emittierende Answer-Blöcke) ja. Das Theme funktioniert eigenständig.

= Ist eine Google-Fonts-Verbindung nötig? =
Nein. Inter ist selbst gehostet. Es gibt keine externen Calls.

== Copyright ==

Hafen WordPress Theme, (C) 2026 hafenstudios.
Hafen ist unter der GNU General Public License v2 oder später verteilt.

== Resources ==

* Inter Font — Copyright (c) Rasmus Andersson, SIL Open Font License 1.1
  https://github.com/rsms/inter — https://scripts.sil.org/OFL
  Mitgeliefert als Variable-Font-Datei (woff2, Latin-Subset) aus der
  Google-Fonts-Auslieferung (fonts.gstatic.com), selbst gehostet.
* Icons: eigenes Set, angelehnt an das Feather-Icon-Vokabular (MIT), als Inline-SVG neu gezeichnet.

== Changelog ==

= 0.4.0 =
Das Theme sagt endlich, dass es ein Companion-Plugin gibt.
* Neu: Ein einmaliger Hinweis auf das kostenlose Plugin "Hafen Core" nach der
  Theme-Aktivierung. Bisher verwies das Theme an keiner Stelle darauf – wer den
  Einrichtungs-Assistenten, die Schema-Ausgabe oder llms.txt wollte, konnte
  schlicht nicht wissen, dass es sie gibt. Der Hinweis erscheint nur auf dem
  Dashboard und unter Design > Themes, nur für Nutzer mit Plugin-Installations-
  recht, und verschwindet von selbst, sobald Hafen Core aktiv ist. Ein Klick auf
  "Nein danke" blendet ihn dauerhaft aus (pro Nutzer gespeichert). Kein Redirect,
  kein Popup, kein Hinweis auf anderen Bildschirmen. Beim Wechsel zu einem
  anderen Theme räumt Hafen seine Optionen selbst wieder auf.
* Korrektur: Der Installationsabschnitt versprach bisher einen
  "Onboarding-Vorschlag", den es im Code nicht gab. Er beschreibt jetzt, was
  wirklich passiert.
* languages/hafen.pot neu erzeugt. Die Datei war seit 0.2.2 stehen geblieben:
  Die sechs in 0.3.0 ergänzten Patterns (Kontakt, Stimmen, Team, Preise,
  Logo-Band, Fußbereich) waren nie extrahiert und damit nicht übersetzbar.

= 0.3.1 =
Performance-Paket: Geschwindigkeit ist ein Kernversprechen, hier ist der Beleg.
* Neu: Inter als eine Variable-Font-Datei (inter-variable.woff2, Latin-Subset,
  Gewichte 100–900, ~47 KB) statt sechs statischer Dateien (~142 KB). Umlaute
  ä/ö/ü/ß sind enthalten. Alle bisher genutzten Gewichte (400–900) bleiben
  pixelgenau verfügbar, keine Inhalte müssen angefasst werden.
* Neu: Style-Variation "Stapellauf (Systemschriften, 0 KB Fonts)": identische
  Farbwelt, aber reiner System-Font-Stack ohne einzige Font-Datei. Der
  schnellstmögliche Start; die Typografie folgt dem Betriebssystem.
* Verbesserung: Font-Preload zeigt auf die eine Variable-Datei und entfällt
  automatisch, wenn eine Systemschrift-Variation aktiv ist. Der dokumentierte
  Aus-Schalter (Filter hafen_preload_font_weights) gilt weiter; die Dateiliste
  ist neu über hafen_preload_font_files filterbar.
* Ehrliche Zahlen statt Lighthouse-Versprechen in Beschreibung und readme:
  rund 5 KB CSS+JS (gzip) in 2 Requests, komplett unter 55 KB inklusive
  Schrift, null externe Requests.

= 0.3.0 =
Release-Vorbereitung: Style-Variationen, Brot-und-Butter-Patterns, neue Vorlage.
* Neu: 4 Style-Variationen (Design > Editor > Stile): Nachtfahrt (dunkel),
  Nordsee (Blau + Serif-Überschriften), Sandbank (warm/erdig), Tinte (Indigo).
  Ein Klick färbt die ganze Website um, Inhalte bleiben unangetastet.
* Neu: 6 Patterns für echte Kundenseiten: Kontakt-Sektion, Stimmen/Testimonials,
  Team-Vorstellung, Preis-Tabelle, Logo-/Partner-Band, Fußbereich mit Spalten.
* Neu: Vorlage "Seite ohne Titel" für Seiten, deren Überschrift aus einem
  Hero-Pattern kommt.
* Fix: global box-sizing: border-box (Spalten mit Innenabstand liefen auf
  Mobilgeräten über den Viewport hinaus).

= 0.2.2 =
Pattern-Texte neutralisiert, keine Produktwerbung im Theme.
* Alle Patterns enthalten jetzt ausschließlich neutrale Platzhaltertexte als
  Startpunkt für eigene Inhalte. Sichtbare Selbstbezüge auf das Theme und den
  Hersteller sind entfernt ("Warum Hafen" -> "Warum wir", "Setz die Segel mit
  Hafen" -> "Bereit loszulegen?", Produktbeschreibungen -> generische
  Vorteils-Karten).
* Pattern "Performance" (hafen/performance) heißt jetzt "Kennzahlen mit Pillen":
  die Zahlen sind klar als Beispielwerte einer Demo-Sektion beschriftet, die
  Lighthouse- und Core-Web-Vitals-Behauptungen sind entfallen.
* Pattern "Trust-Band" zeigt statt fremder Markennamen neutrale Partner-Platzhalter.
* Fachlich beschreibende Abschnitte (llms.txt, Antwort-Blöcke, strukturierte
  Daten) bleiben erhalten, aber ohne Produktnamen und ohne unbelegte Versprechen.
* languages/hafen.pot neu erzeugt (geänderte Strings).
* Unverändert: der einzelne Footer-Credit-Link auf die Author-URI
  (laut Theme-Review-Richtlinien zulässig).

= 0.2.1 =
WordPress.org-Vorbereitung.
* i18n: Alle sichtbaren Texte in den Patterns sind jetzt übersetzbar
  (esc_html__() bzw. wp_kses_post( __() ) bei Inline-Markup). Neuer Ordner
  languages/ mit hafen.pot.
* Pattern "Jet-Familie" ersetzt durch das neutrale Pattern "Produkt-Karten"
  (hafen/product-cards): drei generische Karten mit Platzhaltertexten, keine
  Produktnamen mehr. Das Landing-Pattern verweist auf den neuen Slug.
* Theme-Beschreibung (style.css, readme.txt) ohne Produktnamen Dritter; die
  Farb-Presets heißen jetzt neutral ("Akzent Blau", "Akzent Orange").
* llms.txt-Beispiel im Pattern "Maschinenlesbar" mit neutralen Platzhaltern.
* Footer-Credit ist jetzt Opt-in: standardmäßig per CSS ausgeblendet, sichtbar
  nur nach ausdrücklicher Zustimmung im Hafen-Core-Assistenten.
* Neu: screenshot.png (1200x900).

= 0.2.0 =
Quelle: Praxis-Feedback vielfalt-begleiten.nrw.
* Fix: Template "Landingpage (volle Breite)" schnürt Inhalte nicht mehr doppelt auf 780px
  ein. Die main-Gruppe nutzt jetzt layout "default", der Seiteninhalt ein eigenes
  constrained-Layout (contentSize 780px, wideSize 1180px). Fließtext bleibt lesbar schmal,
  alignwide wird 1180px, alignfull volle Viewport-Breite.
* Fix: Heading-Typografie wird nur noch über styles.elements.heading definiert. Die
  Duplizierung unter styles.blocks.core/heading (Selektor .wp-block-heading) ist entfernt,
  damit eigene Schrift-Einstellungen über den Site-Editor (styles.elements) wieder greifen.
  Optisch ändert sich nichts.
* Fix: Der Block-Style "Hafen: Checkliste" wirkt jetzt direkt aus dem Inserter. Das CSS
  bedient zusätzlich zum bisherigen Selektor .hafen-checklist auch .is-style-hafen-checklist;
  Bestandsinhalte mit direkt gesetzter Klasse bleiben unverändert.
* Fix: Pattern-Texte bereinigt. Formulierungen zu nicht vorhandenen Features ("read-only
  Endpoint" im Maschinenlesbar-Pattern, "Product"-Schema im Feature-Grid) durch ehrliche
  Beschreibungen ersetzt.
* Verbesserung: Hero-Pattern mit neutralen Platzhaltertexten ("Deine überzeugende
  Überschrift") statt Hafen-Eigenwerbung. Frische Seiten wirken damit nicht mehr wie
  Fremdwerbung fürs Theme.
* Neu: Schrift-Preset "Serif" (Georgia, Iowan Old Style, Times New Roman) in theme.json,
  ohne zusätzliche Font-Dateien. Praktisch für große Kennzahlen und Zitate.
* Neu: Pattern "Kennzahlen-Band" (hafen/stats). Vier Karten mit großer Serif-Zahl in
  Brand-Farbe und Label, als alignfull-Sektion mit 1180px Inhaltsbreite.
* Neu: Pattern "Zeitstrahl" (hafen/timeline). Fünf Stationen mit Jahr, Titel und Text an
  einer vertikalen Linie mit Punkten, ein Höhepunkt-Marker in der AI-Farbe. Aufgebaut aus
  Core-Blöcken plus wenig scoped CSS (Klassen hafen-timeline*, Farben über Theme-Presets).

= 0.1.5 =
* Korrektur: durchgängig echte Umlaute (ä/ö/ü/ß) statt ASCII-Ersatzschreibweise
  (ae/oe/ue/ss) in allen sichtbaren Texten, Pattern-Inhalten und theme.json-Labels.

= 0.1.4 =
* Dezenter Footer-Credit "Angelegt mit Hafen" (ein einzelner Attributionslink,
  entspricht den WordPress.org-Theme-Richtlinien). Mit einem Klick entfernbar:
  im Editor unter Design > Editor > Fußbereich den Absatz löschen.

= 0.1.3 =
* Mobiles Menü: Der WordPress-Standard-Hamburger (blankes 24px-Icon) wird zu
  einem klar sichtbaren, tippbaren "Menü"-Button mit 44px-Touchziel; die
  Overlay-Links sind größer. Das Menü funktionierte schon, war aber zu
  unauffällig. Label über CSS-Variable --hafen-menu-label anpassbar.

= 0.1.2 =
* Fix: Kopf- und Fußbereich sind jetzt neutral (dein Logo/Titel + dein Menü).
  Das Hafen-Demo-Branding ("AI-native"-Label, "Hafen holen"-Button, hafenstudios-Texte)
  ist raus; Styling läuft über CSS-Klassen.
* Fix: Block-Validierung. Inkonsistente Inline-Styles (Kurzform-Padding, Preset-Hintergründe,
  benannte HTML-Entitäten) bereinigt, damit der Editor keine "ungültiger Inhalt"-Warnung
  mehr zeigt. Abstände laufen über blockGap statt Inline-Styles.

= 0.1.1 =
* Fix: front-page.html entfernt. Das Theme überschreibt nicht mehr die Startseite;
  diese steuert wieder Einstellungen > Lesen. Die komplette Landingpage gibt es jetzt
  als optionales Seiten-Pattern "Hafen Landing (komplett)".

= 0.1.0 =
* Erste Version: theme.json-Tokens, FSE-Templates und Parts, Answer-Block-Styles,
  acht Landing-Patterns, selbst-gehostete Inter-Schrift.
