
# keenauth_branding

`keenauth_branding` リソースは、ブランディング下書きの環境テーマを管理します。ライトとダークの各バリアントの色、フォント、角の半径、レイアウト、ロゴが対象です。

## 下書きを編集してから公開

変更は下書きに反映されます。ダッシュボードで公開するか、`keenauth branding publish` で公開してください。公開すると、環境のブランディング下書きがすべて(アプリケーションと組織のテーマ、テキスト、カスタム CSS、ページテンプレート)まとめて公開され、コントラストも検査されます。そのためプロバイダーが自動で公開することはありません。[ログインページのブランディング](/docs/guides/branding)を参照してください。

ブランディング下書きは環境ごとに 1 つだけ存在します。プロバイダー構成ごとに、このリソースは最大 1 回だけ宣言してください。削除するとステートから取り除かれるだけで、下書きと公開済みのバージョンはそのまま残ります。

## テーマ全体を記述する

`theme` は JSON オブジェクトなので、`jsonencode` を使用します。JSON として比較されるため、キーの順序を並べ替えると空のプランになります。構成から削除したトークンはクリアされ、プラットフォームの既定値を継承します。JSON の `null` と空のオブジェクトは使用できません。`theme` を省略すると、現在のテーマが保持されます。

```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`、`background_image` には、アップロード済みのブランディング資産の ID を指定します。カスタム CSS とページテンプレートは、このリソースでは管理されません。

## 安全な変更

更新では、変更されたトークンだけを `If-Match` 付きの JSON merge patch として送信します。プランを作成した後に誰かが下書きを変更していた場合、API は `412` を返し、何も変更されません。`plan` を再実行してください。ダッシュボードで追加されたトークンはドリフトとして表示され、`apply` で削除されます。

## インポート

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