# XP-Content 1.4.0 – gemeinsamer Fensterhintergrund
Additiv auf 1.3.0. Root und Major-Version bleiben `.xp-content[data-xp-content-version="1"]`. Alle bisherigen Klassen und der Abbrechen-Button bleiben erhalten. Frühere Veröffentlichungen werden nicht verändert.
## Bestehendes und neue Rolle
`.xp-window-body` gehört zum WP-Host und `.xp-content` zum Inhaltsvertrag. Die vorhandene Variable `--xp-bg` beschreibt die Grundfarbe. Es gab bislang keine explizite gemeinsame Materialrolle mit Bild-/Texturdefinition.
Neu ist `xp-window-surface`; `data-xp-surface="window"` aktiviert dieselbe Rolle deklarativ. Im Host wird die Inhaltsfläche automatisch so markiert. Eine fremde App kann sie auf ihrem eigenen Vertragsroot verwenden. `plain` schaltet das Material aus und nutzt nur `--xp-bg`.
```html
<main class="xp-content xp-window-surface"
data-xp-content-version="1"
data-xp-presentation="xp"
data-xp-theme="light"
data-xp-surface="window">
<section class="xp-view">Fensterinhalt</section>
</main>
```
## Gemeinsame CSS-Variablen und Defaults
| Variable | Standard |
| --- | --- |
| `--xp-window-background-color` | `var(--xp-bg, #fff)` |
| `--xp-window-background-image` | `none` |
| `--xp-window-background-size` | `auto` |
| `--xp-window-background-repeat` | `repeat` |
| `--xp-window-background-position` | `0 0` |
Ohne Skinanpassung bleibt die bisherige Inhaltsfarbe erhalten, ohne Bild und ohne Textur. Alle Skins nutzen dieselben Variablen. Transparenz wird ausschließlich auf Hintergründe angewendet, nie auf den gesamten Inhalt mitsamt Schrift. Bei Systemkontrast gilt `Canvas` ohne Texturbild.
```css
.xp-content[data-xp-skin="antike"] {
--xp-window-background-color: #f3e3bf;
--xp-window-background-image: url("./parchment-grain.svg");
--xp-window-background-size: 512px 512px;
}
```
Das eigentliche Material wird einmal auf dem Vertragsroot gemalt. Untergeordnete `.xp-view`-Flächen sind im Window-Modus transparent, damit sie die Fläche nicht wieder mit einer festen Farbe abdecken. Andere Flächen wie Seitenleisten dürfen über eigene bestehende Farbvariablen lesbare Tönungen erhalten. Diagramme, Bildeditoren und sonstige Arbeitsflächen können eine eigene deckende Fläche verwenden oder `data-xp-surface="plain"` wählen.
## Skins und eingebettete Ansichten
`data-xp-skin` ist eine optionale Darstellungsangabe, keine Berechtigung. Die WP-Lab-Adapter kennen `windows-xp`, `windows-21`, `starfleet`, `windows-98`, `mac-os`, `aero` und `antike`. Fehlende oder ungültige Auswahl fällt auf XP zurück. Skinpalette und Materialassets bleiben lokal gebündelte Adapterdateien; der Basiskern benötigt kein Hintergrundbild.
Die sechs eingebauten App-Vorstellungen in WP-Lab verwenden dieselbe 1.4.0-Datei und den gemeinsamen Skinadapter. Ihr vorhandener opaker Sandbox-Frame bleibt opak. Der Host markiert nur diese bekannten eigenen Frames mit `data-xp-surface-frame="v1"`. Der schmale Präsentationskanal überträgt ausschließlich einen erlaubten Skinnamen, niemals CSS, URLs, HTML, Benutzerdaten oder Befehle.
Schema `tech.christian-igel/xp-surface/v1`: Client sendet `kind: ready`; der an Quellfenster und lokalen Assetpfad gebundene Host sendet `kind: theme, skin: <allowlisted>`. Client prüft `event.source === parent`, die exakte Host-Origin und die exakte Feldmenge. Der Host akzeptiert nur das bekannte Frame-Window und die erwartete opake beziehungsweise eigene Origin. `targetOrigin: "*"` ist nur für die gebundene opake Sandbox nötig; die Payload ist rein öffentliche Darstellung. Keine neuen Sandboxrechte, keine Freigabe von `allow-same-origin`, `unsafe-inline` oder `unsafe-eval`.
Fremde MCP-Apps und sonstige externe Frames werden nicht ungefragt umgestaltet. Sie müssen den Content-Contract und eine bestätigte Darstellungsübernahme selbst unterstützen. CSS-Version 1.4.0 erweitert keine MCP-Metadaten-Freigabeliste und keine Host-/App-Rechte.
## Einbindung und Prüfung
CSS lokal im App-Release bündeln. [Beispiel](example.html), [Stylesheet](xp-content-1.4.0.css) und [Manifest](manifest.json) gehören zu dieser Version. Die Referenz enthält den bytegleichen 1.3.0-Kern plus die additive Rolle.
WP-Lab: Quelle und aktive Dateien bestehen 59 gezielte Surface-/Transport-/Consumer-Prüfungen; dazu bleiben die Skin- und Preference-Regressionstests bestehen. Diese automatisierten Prüfungen sind keine vollständige visuelle Abnahme. Der serverseitige Firefox-Lauf war durch Prozess-/Startfehler begrenzt; dieser Umstand ist im Auftrag festgehalten.