Skip to content

PointSav Documentation

The engineering library for the PointSav platform — operating systems and services for regulated businesses that own their data, their AI, and their record-keeping outright. Where the monorepo holds the code, this wiki holds the reasoning: architecture, services, security, and the governance commitments that bind future development.

Recetas de componentes frente a tokens en bruto

Un token de diseño responde una sola pregunta: ¿cuál es el valor? interactive-primary es un color, space-5 es una longitud, speed-2 es una duración. Los tokens son la unidad más pequeña de decisión de diseño que el sistema versiona, y todo lo que está por encima se resuelve por referencia. Pero un elemento de interfaz funcional no es una bolsa de valores. Un botón es marcado, un conjunto de estilos de estado, un comportamiento de foco, un contrato de accesibilidad y un puñado de reglas de uso sobre cuándo es apropiada cada variante — y nada de eso vive en un token.

La respuesta del Sistema de Diseño PointSav a esa brecha es la receta de componente: un único artefacto JSON legible por máquina, por componente, que compone referencias de tokens en un elemento funcional. Este artículo explica qué añade el nivel de recetas más allá de los valores de tokens en bruto, usando la receta publicada del componente Button como ejemplo trabajado, y describe el estado documental real del registro en lugar de uno idealizado.

Qué da un token en bruto — y dónde se detiene

Un token del paquete en formato DTCG del sistema porta un valor, un tipo y una descripción que registra la fundamentación de la decisión. Eso basta para los problemas que los tokens resuelven: una sola fuente de verdad por valor, sustitución a nivel de tema y reutilización sin deriva. No basta para construir. Un desarrollador con interactive-primary en la mano todavía tiene que decidir qué elemento renderizar, qué estados estilizar, cómo se relacionan hover y presionado con el color base, qué hace el anillo de foco y qué aspecto tiene el estado deshabilitado. Cada consumidor que toma esas decisiones por su cuenta reintroduce exactamente la divergencia que los tokens debían eliminar — un nivel más arriba.

El formato de receta

La receta del Button demuestra la forma. Es un documento JSON que declara un esquema, una identidad (name, display_name, una descripción de una frase, una categoría, un tipo de registro) y, a continuación, la sustancia:

Variantes como decisiones con nombre. Cada variante — primary, secondary, ghost, critical — porta su propia descripción, su plantilla HTML, su clase CSS y la lista de tokens que consume. Las descripciones son reglas de uso, no epígrafes: primary es "la acción más prominente de una superficie. Una por superficie"; critical es "acción destructiva. Siempre emparejada con un paso de confirmación". La regla viaja dentro de los datos, donde un generador de código o un agente revisor la lee, y no solo en una prosa que un humano quizá no abra.

Marcado con ranuras. El campo html de cada variante es una plantilla — un <button type="button"> nativo con una ranura {{label}} — de modo que los consumidores heredan el elemento y la estructura correctos en lugar de reconstruirlos.

Referencias de tokens, no valores. El arreglo tokens de una variante lista referencias semánticas: {semantic.interactive-primary}, {semantic.interactive-primary-hover}, {semantic.ink-on-interactive}. La receta nunca codifica un color en duro. En el CSS estas referencias se resuelven como propiedades personalizadas con valores de respaldo (var(--ps-interactive-primary, #234ed8)), de modo que el componente cambia de tema cuando el grafo de tokens cambia de tema.

El CSS completo. La receta porta las reglas completas de base más variantes, incluidos los estados que una vista de solo-valores omite: hover, activo, deshabilitado y :focus-visible con un anillo de 2 píxeles y un desplazamiento de 2 píxeles.

El contrato de accesibilidad. Un campo aria enuncia en prosa la guía para lectores de pantalla — rol de botón nativo, aria-label para uso de solo icono, y la regla de que las acciones destructivas no deben quedar a un clic de completarse. Un bloque wcag estructurado declara el objetivo (2.2 AA, con AAA donde sea alcanzable), la visibilidad del foco, las cifras reales de contraste por variante —6,66:1 para la primaria, que aprueba AA pero no el piso de 7:1 de AAA, y 7,33:1 para la crítica, que alcanza ambos— y el objetivo táctil mínimo de 44 por 44.

Enlaces de procedencia. research_links apunta a los documentos de fundamentación de diseño detrás del componente, y registry_dependencies declara qué otras entradas del registro necesita el componente — para Button, ninguna.

La distinción frente a un token en bruto queda ahora concreta: el nivel de tokens dice qué es interactive-primary; el nivel de recetas dice qué es un botón — y todo lo que dice se resuelve de vuelta hacia tokens por referencia, de modo que los dos niveles no pueden discrepar sobre un valor.

Dos niveles documentales, un registro

El registro contiene actualmente 53 componentes, y no están documentados de manera uniforme. Veinte portan el juego completo de cinco archivos — la receta más cuatro documentos de cara humana que cubren uso, estilo, código y accesibilidad. Tampoco el resto son puro dato: 30 portan la receta más un documento de uso, y 3 portan la receta más un par de uso bilingüe — todo componente del registro distribuye al menos un documento en prosa junto a su receta, no solo el artefacto legible por máquina. La referencia de componentes presenta esto como tres niveles etiquetados, en lugar de fingir 53 entradas uniformemente terminadas.

El estado escalonado es un hecho de secuenciación, y el papel de la receta en él es la clave: la receta es el piso. Todo componente ya es consumible por máquina en el mínimo — su marcado, sus tokens, su CSS y su bloque WCAG existen — mientras la documentación de estilo y código restante sigue pendiente para 33 de los 53. El estado inverso (documentación en prosa sin artefacto de datos) no es un estado que el registro permita.

Antecedentes: el nivel de componentes está bien establecido

Nombrar un nivel de componentes por encima de los tokens semánticos es práctica estándar en los grandes sistemas de diseño publicados, y este artículo no reclama novedad alguna al respecto. Material Design 3, de Google, documenta tres clases de tokens — de referencia, de sistema y de componente — donde un token de componente como md.comp.fab.container.color se resuelve contra un token de sistema como md.sys.color.primary-container. Carbon, de IBM, documenta la estructura equivalente de global/alias/ componente y restringe los tokens de componente a su propio componente. El patrón es la herencia compartida de los sistemas de diseño de los grandes proveedores, no una idea de PointSav.

Lo que el formato de receta hace con ese nivel establecido es empaquetar más del contrato del componente en el único artefacto de datos: donde un token de componente sigue siendo una asignación de valor, una receta porta además el marcado, el CSS completo, la guía ARIA y los objetivos WCAG. Es una elección de integración — un artefacto en lugar de varios — y su mérito es práctico, no conceptual: un consumidor, humano o máquina, obtiene el componente construible completo en una sola descarga.

Licenciamiento: dos artefactos, dos licencias

Aquí se exige precisión porque la receta y este artículo están licenciados de manera distinta. Los datos de recetas — button/recipe.json y todas las demás recetas y archivos de tokens DTCG del repositorio pointsav-design-system — se licencian bajo Apache-2.0, la misma convención que usan IBM Carbon y Adobe Spectrum para el código y los datos de sus sistemas de diseño. El texto de este artículo se publica en el wiki de documentación bajo CC BY 4.0. Copiar una receta a un registro propio es un asunto de Apache-2.0; republicar la prosa de este artículo es un asunto de CC BY 4.0. Una frase sobre "la licencia" del sistema de diseño debe decir a cuál de las dos se refiere; esta lo ha hecho.

Alcance y límites honestos

El ejemplo trabajado es un solo componente, y el censo del registro es una instantánea fechada al momento de redactar este artículo — la división por niveles cambiará a medida que los componentes obtengan la documentación que les falta. Un borrador anterior de este artículo señaló una discrepancia entre la descripción y el arreglo de variantes en la receta publicada del Button (la descripción nombraba una quinta variante "link" ausente del arreglo variants); esa discrepancia ya se corrigió en la fuente, que ahora describe cuatro variantes y explica el conteo erróneo anterior — no queda ninguna inconsistencia abierta. El esquema de recetas está versionado (component-recipe-v1), y nada en este artículo debe leerse como una promesa de compatibilidad para versiones futuras del esquema.


Este artículo es material de contexto para lectores de la documentación del Sistema de Diseño PointSav, previo a las páginas de referencia por componente. Véase también: el artículo de vocabulario primitivo para el esquema de nomenclatura de tokens contra el que se resuelven las recetas, y el artículo de la biblioteca de componentes del wiki para ver cómo un conjunto de estos componentes compone una página completa.

Cite this record: /wiki/component-recipes-vs-raw-tokens — revision 38c462f9, last updated 1 August 2026.

Important Information

Estructura corporativa. PointSav Digital Systems ("PointSav") es actualmente un nombre comercial de Woodfine Capital Projects Inc. ("Woodfine"), con previsión de convertirse en una subsidiaria de propiedad absoluta de Woodfine tras su incorporación. PointSav no ofrece, vende ni solicita por sí mismo valor alguno. Toda oferta de valores asociada a las soluciones inmobiliarias de tenencia directa de Woodfine se realiza exclusivamente por parte de Woodfine, y únicamente por medio del Memorando de Colocación Privada aplicable.

Sin asesoramiento de inversión. El contenido de este wiki se ofrece con fines de ingeniería, operativos, de investigación y de desarrollo. Nada de lo que figura en este wiki constituye asesoramiento de inversión ni una solicitud para invertir en ninguna sociedad o solución de tenencia directa de Woodfine.

Propiedad intelectual. El nombre, el nombre comercial, el logotipo y las marcas de PointSav, junto con todos los productos, servicios y ofertas actuales y futuros de las marcas PointSav y Totebox — así como el software, el código fuente, la documentación, el sistema de diseño y todos los materiales relacionados — son propiedad de Woodfine y sus filiales, salvo los componentes identificados como de código abierto. No se otorga ningún derecho salvo el expresamente establecido en una licencia o acuerdo por escrito. El aviso de marcas completo aparece en el pie de página de cada página de este sitio.

Componentes de código abierto. Algunas partes de la plataforma se ofrecen bajo licencias de código abierto permisivas identificadas en el repositorio correspondiente. El uso de esos componentes se rige por los términos de sus respectivas licencias.

Sin garantía; uso informativo. El contenido de este wiki se ofrece únicamente con fines informativos generales y no constituye una declaración, garantía ni compromiso respecto de la funcionalidad, disponibilidad, precio o hoja de ruta de ningún producto. Algunos artículos describen características, capacidades e hitos planificados o previstos — el lenguaje como "planificado", "previsto", "objetivo", "puede" y "esperado" marca este contenido prospectivo, que está sujeto a cambios y no constituye un compromiso respecto del rendimiento futuro.

Confidencialidad. Cuando un artículo describiría un detalle operativo o de implementación no destinado a divulgación pública, ese artículo no se publica en este wiki. El contenido aquí es documentación de ingeniería de uso general, no configuración específica de clientes.

Jurisdicción. Woodfine Capital Projects Inc. está constituida en Columbia Británica, Canadá. Las referencias a la Sovereign Data Foundation en este wiki describen una iniciativa planificada o prevista únicamente, no una titular de capital actual ni un órgano de gobierno activo.

Cambios a este aviso. PointSav podrá actualizar este aviso periódicamente; rige la versión publicada en esta página.

No es un sistema de presentación de documentos. Este wiki no es un sistema de presentación de valores, un repositorio de divulgación electrónica ni un sustituto de SEDAR+ ni de ningún otro sistema de presentación regulatorio. Las presentaciones formales de valores se realizan a través del sistema de presentación regulatorio correspondiente, no a través de este wiki.

Descargo completo. Este aviso complementa, y no sustituye, el artículo completo de Avisos Legales. En caso de cualquier conflicto, prevalece el artículo de Avisos Legales.

Read the full disclaimer →