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.

Modo oscuro del wiki

El wiki de PointSav admite esquemas de color claro y oscuro mediante tokens semánticos del sistema de diseño de la plataforma. El modo oscuro reduce la fatiga visual en entornos con poca luz y es preferido por una proporción significativa de lectores. Este artículo describe la implementación: cómo se establece el tema, cómo se conserva entre sesiones y cómo se alterna, junto con la paleta de colores completa para cada modo.


Funcionamiento

El modo oscuro se controla mediante el atributo data-theme="dark" en el elemento <html>. El CSS del wiki usa este atributo como selector de anulación:

/* Claro (predeterminado) — definido en :root */
:root {
  --k-surface: #ffffff;
  --k-ink: #202122;
  /* ... */
}

/* Oscuro — anula sólo los tokens semánticos */
:root[data-theme="dark"] {
  --k-surface: #101418;
  --k-ink: #e7e9ea;
  /* ... */
}

Sólo cambian los tokens semánticos (superficies, tinta, bordes, colores de estado). Los tokens primitivos — la paleta de colores base — permanecen sin cambios. Para agregar soporte de modo oscuro a un nuevo componente, basta con que el componente use tokens semánticos; no se necesitan selectores [data-theme="dark"] por componente.


Inicialización

La preferencia de tema se almacena en localStorage bajo la clave k-theme. El script del chrome resuelve el tema inicial comprobando primero ese valor almacenado y recurriendo a la preferencia del sistema operativo (prefers-color-scheme) sólo cuando no se ha almacenado nada, y luego lo aplica estableciendo data-theme en la raíz del documento y actualizando el estado aria-pressed y la etiqueta del botón de alternancia. Se espera que quien integre este motor incluya además un fragmento equivalente en línea antes del renderizado, en <head>, para que el tema correcto se aplique antes del primer renderizado, en lugar de mostrar brevemente el tema incorrecto y corregirlo después.

Una elección explícita del usuario almacenada en localStorage prevalece sobre la preferencia del sistema operativo (prefers-color-scheme). Si no se ha almacenado ninguna elección, se respeta la preferencia del sistema.

En móvil, prefers-color-scheme es el disparador principal — la mayoría de lectores en móvil depende de la configuración del sistema operativo y nunca accede al botón de alternancia manual. El componente de alternancia es la capa de mejora progresiva para los lectores que desean anularla. La declaración <meta name="color-scheme" content="light dark"> en el <head> evita que el navegador muestre un destello blanco antes de que el script en línea lea localStorage.


Componente de alternancia

El control de tema (.k-control--theme) usa aria-pressed y actualiza aria-label para describir tanto la acción disponible como el estado actual — "Switch to dark theme (current: light)" y su inversa — en lugar de una etiqueta que sólo describa la acción. Al hacer clic, la alternancia establece data-theme en la raíz del documento y escribe el nuevo valor en localStorage.


Paleta de colores

Modo claro

Token Valor Uso
--k-surface #ffffff Fondo de página
--k-ink #202122 Texto principal
--k-ink-secondary (definido junto a --k-ink) Texto secundario, metadatos
--k-link (definido junto a --k-ink) Hipervínculos

Modo oscuro

Token Valor Uso
--k-surface #101418 Fondo de página
--k-surface-sunken #171c22 Aviso del sitio, pie de página
--k-surface-raised #1b2027 Cajón de navegación en móvil
--k-ink #e7e9ea Texto principal
--k-ink-secondary #a6abb1 Texto secundario
--k-border #3a4149 Bordes
--k-link #7aa6f0 Hipervínculos
--k-link-hover #a3c1f5 Estado de pasar el cursor sobre un hipervínculo
--k-code-block-bg #2b303b Fondo de bloque de código

Los bloques de código permanecen oscuros en modo oscuro, con el resaltado de sintaxis cambiando a su propia paleta oscura en lugar de seguir los mismos tokens que el texto de prosa. Existen dos anulaciones específicas por instancia para los despliegues documentation y projects/corporate, que ajustan el color de acento mientras el resto de la paleta oscura permanece compartida.

Alias de superficie del wiki

El CSS del wiki nombra sus superficies semánticas directamente, sin una capa separada de alias abreviados — --k-surface, --k-ink, --k-link y el resto son los nombres que usan los componentes. No existe una segunda capa de nomenclatura --color-* sobre ellos.


Véase también

Cite this record: /wiki/wiki-dark-mode — revision cefe7b5a, last updated 25 May 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 →