
# keenauth_branding

El recurso `keenauth_branding` gestiona el tema del entorno del borrador de marca: colores para las variantes clara y oscura, fuentes, radio de las esquinas, diseño y logotipo.

## Borrador y después publicación

Los cambios van al borrador. Publícalos en el panel o con `keenauth branding publish`. Publicar libera a la vez todos los borradores de marca del entorno (temas de aplicaciones y organizaciones, textos, CSS personalizado y plantilla de página) y comprueba el contraste, por lo que el proveedor no publica por su cuenta. Consulta [Personalizar sus páginas de inicio de sesión](/docs/guides/branding).

El borrador de marca existe una sola vez por entorno. Declara el recurso como máximo una vez por configuración del proveedor. Destruirlo solo lo elimina del estado; el borrador y las versiones publicadas no cambian.

## Escribe el tema completo

`theme` es un objeto JSON; usa `jsonencode`. Se compara como JSON, así que reordenar las claves produce un plan vacío. Los tokens que quites de la configuración se borran y heredan el valor predeterminado de la plataforma. No se admiten `null` de JSON ni objetos vacíos. Si omites `theme`, se conserva el tema actual.

```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` y `background_image` aceptan los ID de los recursos de marca subidos. El CSS personalizado y la plantilla de página no los gestiona este recurso.

## Cambios seguros

Una actualización envía solo los tokens modificados como JSON merge patch con `If-Match`. Si alguien cambió el borrador después de crear el plan, la API responde `412` y nada cambia. Vuelve a ejecutar `plan`. Un token añadido en el panel aparece como deriva (drift), y `apply` lo elimina.

## Importación

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