Los tokens
Colores
Cinco, cada uno un valor hexadecimal de 6 dígitos como#6d28d9:
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:
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:
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: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 elhead de la página antes de que se renderice el cuerpo, así un visitante nunca ve un destello de la paleta por defecto:
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.