Skip to content

Modo oscuro del wiki

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 {
  --ps-surface-base: #ffffff;
  --ps-ink-primary: #0e0f12;
  /* ... */
}

/* Oscuro — anula sólo los tokens semánticos */
[data-theme="dark"] {
  --ps-surface-base: #1f2125;
  --ps-ink-primary: #f5f6f8;
  /* ... */
}

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 ps-theme. En cada carga de página, un script en línea en <head> lee este valor y establece data-theme antes de que el navegador renderice el contenido. Esto evita el destello del tema no deseado que ocurriría si el script se ejecutara tras el primer renderizado.

La preferencia explícita del usuario almacenada en localStorage prevalece sobre la preferencia del sistema operativo (prefers-color-scheme). Si no se ha almacenado ninguna preferencia, se respeta la configuración 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 anular esa configuración. 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 componente wiki-dark-mode-toggle usa aria-pressed y actualiza aria-label para describir la acción disponible, no el estado actual:

  • En modo claro: etiqueta = "Cambiar a modo oscuro"
  • En modo oscuro: etiqueta = "Cambiar a modo claro"

Al hacer clic, la alternancia establece document.documentElement.dataset.theme y escribe el nuevo valor en localStorage.


Paleta de colores

Modo claro

Token Valor Uso
--ps-surface-base #ffffff Fondo de página
--ps-surface-subtle #f5f6f8 Barra lateral, superficie de código
--ps-ink-primary #0e0f12 Texto principal
--ps-ink-secondary #4a4f59 Texto secundario, metadatos
--ps-wiki-link #234ed8 Hipervínculos
--ps-wiki-redlink #a52323 Artículos inexistentes
--ps-wiki-code-keyword #7c3aed Palabras clave de código

Modo oscuro

Token Valor Uso Contraste WCAG vs fondo
--ps-surface-base #1f2125 Fondo de página
--ps-surface-code #151618 Fondo de bloque de código
--ps-ink-primary #f5f6f8 Texto principal 14,5:1 (AAA)
--ps-ink-secondary #aab0bb Texto secundario 6,2:1 (AAA)
--ps-wiki-link #6ab0f5 Hipervínculos 8,47:1 vs página (AAA)
--ps-wiki-redlink #f56565 Artículos inexistentes 6,42:1 vs página (AA+)
--ps-wiki-code-keyword #c792ea Palabras clave de código 7,85:1 vs código (AAA)

Todos los pares de colores del modo oscuro superan el nivel AAA de WCAG 2.1, verificado el 6 de mayo de 2026.


Véase también

Important Information

Important Information

Corporate structure. PointSav Digital Systems ("PointSav") is a trade name of Woodfine Capital Projects Inc. ("Woodfine"). PointSav does not itself offer, sell, or solicit any security. Any securities offering associated with Woodfine's real-property direct-hold solutions is made exclusively by Woodfine, and only by means of the applicable Private Placement Memorandum.

No investment advice. This wiki's content is provided for engineering, operational, research, and development purposes. Nothing on this wiki constitutes investment advice or a solicitation to invest in any Woodfine partnership or direct-hold solution.

Intellectual property. The PointSav name, trade name, wordmark, and marks, together with all current and future PointSav- and Totebox-branded products, services, and offerings — and the software, source code, documentation, design system, and all related materials — are proprietary to Woodfine and its affiliates, except for components identified as open source. No rights are granted except as expressly set out in a written license or agreement. See TRADEMARK.md in this repository for the full trademark notice.

Open source components. Portions of the platform are made available under permissive open-source licenses identified in the accompanying repository. Use of those components is governed by their respective license terms.

No warranty; informational use. Content on this wiki is provided for general informational purposes only and does not constitute a representation, warranty, or commitment with respect to product functionality, availability, pricing, or roadmap. Some articles describe planned or intended features, capabilities, and milestones — language such as "planned," "intended," "targeted," "may," and "expected" marks this forward-looking content, which is subject to change and does not constitute a commitment regarding future performance.

Confidentiality. Where an article describes an operational or deployment detail that is not intended for public disclosure, that article is not published on this wiki. Content here is general-purpose engineering documentation, not customer-specific configuration.

Jurisdiction. Woodfine Capital Projects Inc. is organized in British Columbia, Canada. References to the Sovereign Data Foundation on this wiki describe a planned or intended initiative only, not a current equity holder or active governance body.

Changes to this notice. PointSav may update this notice from time to time; the version posted on this page governs.

Not a filing system. This wiki is not a securities filing system, an electronic disclosure repository, or a substitute for SEDAR+ or any other regulatory filing system. Formal securities filings are made through the applicable regulatory filing system, not through this wiki.

Full disclaimer. This notice supplements, and does not replace, the full Disclaimers article. In the event of any conflict, the full Disclaimers article governs.

Read the full disclaimer →