
# keenauth_branding

Die Ressource `keenauth_branding` verwaltet das Umgebungsthema des Branding-Entwurfs: Farben für die helle und die dunkle Variante, Schriften, Eckenradius, Layout und Logo.

## Entwurf, dann veröffentlichen

Änderungen gehen in den Entwurf. Veröffentlichen Sie sie im Dashboard oder mit `keenauth branding publish`. Das Veröffentlichen gibt alle Branding-Entwürfe der Umgebung auf einmal frei (Anwendungs- und Organisationsthemen, Texte, benutzerdefiniertes CSS und Seitenvorlage) und prüft den Kontrast. Deshalb veröffentlicht der Provider nicht von selbst. Siehe [Anmeldeseiten branden](/docs/guides/branding).

Der Branding-Entwurf existiert einmal pro Umgebung. Deklarieren Sie die Ressource höchstens einmal pro Provider-Konfiguration. Das Löschen entfernt sie nur aus dem State; Entwurf und veröffentlichte Versionen bleiben unverändert.

## Das vollständige Theme schreiben

`theme` ist ein JSON-Objekt; verwenden Sie `jsonencode`. Es wird als JSON verglichen, daher ergibt eine Umsortierung der Schlüssel einen leeren Plan. Entfernte Tokens werden geleert und erben den Plattform-Standard. JSON-`null` und leere Objekte sind nicht erlaubt. Lassen Sie `theme` weg, bleibt das aktuelle Theme erhalten.

```terraform
resource "keenauth_branding" "this" {
  theme = jsonencode({
    mode   = "system"
    layout = "center"
    font   = { size_base = 16 }
    radius = { card = 12, control = 8 }
    light  = { color = { primary = "#4f46e5", background = "#ffffff" } }
    dark   = { color = { primary = "#818cf8", background = "#0b0b0f" } }
  })
}
```

`logo`, `favicon` und `background_image` nehmen die IDs hochgeladener Branding-Assets entgegen. Benutzerdefiniertes CSS und die Seitenvorlage verwaltet diese Ressource nicht.

## Sichere Änderungen

Ein Update sendet nur die geänderten Tokens als JSON Merge Patch mit `If-Match`. Hat jemand den Entwurf nach dem Plan geändert, antwortet die API mit `412` und nichts ändert sich. Führen Sie `plan` erneut aus. Ein im Dashboard hinzugefügtes Token erscheint als Drift, und `apply` entfernt es.

## Import

```shell
tofu import keenauth_branding.this branding
```
