> ## Documentation Index
> Fetch the complete documentation index at: https://wondeya.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Tema

> Los colores, las tipografías y el redondeo con los que se viste una página

Un tema en wondeya es un pequeño conjunto de **tokens**, no una hoja de estilos. Eliges cinco colores, dos tipografías y un redondeo de esquinas; el servidor los convierte en las propiedades personalizadas que lee cada componente. Esto es deliberado: una página renderiza respuestas construidas por un modelo de lenguaje en una página pública, y un tema que aceptara CSS crudo sería una vía para meter estilo arbitrario, y URLs arbitrarias, en esa página.

## Los tokens

### Colores

Cinco, cada uno un **valor hexadecimal de 6 dígitos** como `#6d28d9`:

| Token | Qué pinta |
| - | - |
| `primary` | Botones, enlaces, la tinta de la marca. |
| `accent` | Destaques y formas. Nunca el color del cuerpo del texto. |
| `surface` | El fondo de la página. |
| `ink` | El cuerpo del texto. |
| `muted` | Texto secundario, bordes, pies de foto. |

Solo se acepta `#rrggbb`: nada de `rgb()`, ni `hsl()`, ni abreviaturas de tres dígitos, ni alfa de ocho dígitos, ni nombres de color, ni `var(...)`. Un selector de color que emita cualquier otra cosa recibe un error de validación que nombra el campo. Los valores se normalizan a minúsculas antes de guardarse, así que lo que termina en la página es la re-serialización que hace wondeya de lo que coincidió, nunca la cadena exacta que llegó.

### Tipografías

Dos elecciones, una para los títulos y otra para el cuerpo, de un conjunto curado que wondeya aloja por su cuenta:

| Key | Familia | Categoría |
| - | - | - |
| `montserrat` | Montserrat | sans |
| `inter` | Inter | sans |
| `source-serif` | Source Serif 4 | serif |

Tú eliges una key; el servidor es dueño del nombre de la familia, de la pila de respaldo y del archivo. Las fuentes se sirven desde wondeya en lugar de importarse desde un host de fuentes de terceros, porque una importación remota de fuentes bloquea el primer render y agrega a la página de tus visitantes una dependencia que nadie eligió.

### Redondeo

Una elección de una escala cerrada:

| Key | Valor |
| - | - |
| `none` | 0px |
| `sm` | 4px |
| `md` | 8px |
| `lg` | 16px |
| `full` | 9999px |

La escala es un conjunto de keys y no un número, porque un número sería una longitud CSS: una cadena escrita por el cliente e interpolada en una hoja de estilos.

## Los valores por defecto

Un sitio que nunca guardó su tema usa los valores por defecto de wondeya:

```json theme={null}
{
  "colors": {
    "primary": "#6d28d9",
    "accent": "#22d3ee",
    "surface": "#ffffff",
    "ink": "#171717",
    "muted": "#737373"
  },
  "typography": { "heading": "montserrat", "body": "inter" },
  "radius": "lg"
}
```

<Warning>
  **El acento no es el color de acción.** El cian sobre blanco ronda 1.8:1, lo que reprueba el contraste WCAG para texto. Usa el acento para formas, bordes y superficies oscuras; mantén los botones y los enlaces en el color principal.
</Warning>

## Un tema por sitio

El tema pertenece a la marca de un sitio (proyecto): todas las páginas del sitio lo visten, y no hay anulación por página. Lo que está en vigor se resuelve en dos pasos: los tokens guardados del sitio y, si no los hay, los valores por defecto de wondeya.

Limpiar la personalización (`tokens: null` a través de la API) devuelve el sitio a los **valores por defecto de wondeya**; no guarda copia de nada. Eso es lo que hace seguro un rebranding posterior: no hay una instantánea congelada que deje de seguirte en silencio.

## Editar es un parche parcial

Envías solo lo que cambió (`colors.primary` por sí solo es normal y correcto), y se fusiona sobre el tema en vigor y luego se valida como un todo.

La fusión nunca repara. Una key que wondeya no reconoce es un rechazo con un error a nivel de campo, nunca un campo ignorado en silencio, a cualquier profundidad del objeto. Un tema que "casi" validó es un tema que alguien está sondeando.

## Qué llega a la página

El servidor produce un mapa de propiedades personalizadas a partir de los tokens parseados y lo inyecta en el `head` de la página antes de que se renderice el cuerpo, así un visitante nunca ve un destello de la paleta por defecto:

| Propiedad | Origen |
| - | - |
| `--wdy-color-primary` | `colors.primary` |
| `--wdy-color-accent` | `colors.accent` |
| `--wdy-color-surface` | `colors.surface` |
| `--wdy-color-ink` | `colors.ink` |
| `--wdy-color-muted` | `colors.muted` |
| `--wdy-font-heading` | la pila de fuentes de tu key de títulos |
| `--wdy-font-body` | la pila de fuentes de tu key de cuerpo |
| `--wdy-radius` | el valor en px de tu key de redondeo |

Ninguna key y ningún valor de ese mapa viene de la solicitud. Los colores son valores hexadecimales que wondeya re-serializó; las fuentes y los redondeos se buscan en una tabla que es de wondeya. Eso es lo que hace seguro interpolarlos en un bloque de estilo de una página que cargan tus visitantes.

## Vista previa

El tema se edita en la pestaña **Marca** del proyecto, junto a una vista previa en vivo que renderiza componentes reales del catálogo, no una maqueta, leyendo exactamente las propiedades personalizadas que emite el servidor: el mismo contrato de tokens que lee la página publicada.

## CSS personalizado

No existe, en ningún plan, hoy. Si tu marca necesita algo que los cinco colores no pueden expresar, eso es una conversación de producto y no un ajuste, y cualquier futuro plan con CSS personalizado tendría que responder las preguntas de aislamiento que el conjunto cerrado de tokens responde gratis.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.