@mostajs/doc-themes
v0.1.1
Published
Thèmes pour @mostajs/doc-export DÉRIVÉS de @mostajs/palette (contrastes WCAG validés). Fournit le port ThemeProvider { css(themeId, {mode}) } — document A4 & diaporama 16:9, aucune couleur en dur (tout en tokens sémantiques). Zéro couleur illisible : l'ac
Maintainers
Readme
@mostajs/doc-themes
Auteur : Dr Hamid MADANI [email protected]
Licence : AGPL-3.0-or-later · Niveau : N2 (compose @mostajs/palette) · Sans build
Thèmes pour @mostajs/doc-export dérivés de
@mostajs/palette : fournit le port ThemeProvider
(css(themeId, { mode }) -> string) pour le rendu document (A4) et diaporama (16:9).
Aucune couleur en dur : tout référence les tokens sémantiques validés WCAG de palette
(var(--text), var(--line), var(--accent)…). Conformément à la règle de theming (§3.9),
l'accent ne porte jamais de texte (bordures et liens seulement) ; les titres prennent
--brand/--text (lisibles par construction). Les correctifs de l'audit md2View sont intégrés
(img { max-width: 100% }, pagination sur le titre).
Usage (avec doc-export)
import { createDocExporter } from '@mostajs/doc-export'
import { createPaletteTheme } from '@mostajs/doc-themes'
import * as markdown from '@mostajs/markdown-html'
const doc = createDocExporter({
markdown: { toHtml: (md) => ({ html: markdown.mdToHtml(md).html }) },
theme: createPaletteTheme(), // ← thèmes palette validés (remplace le repli minimal)
drivers: { /* … pdf … */ },
})
await doc.render({ source, format: 'pdf', theme: 'hadhinat' }) // clé de palette.GALLERY
await doc.render({ source, format: 'slides-pdf', theme: 'dark' }) // thème sombre dérivéAPI
createPaletteTheme({ palette?, darkInput? }) -> { css(themeId?, { mode? }) -> string }
themeId: une clé depalette.GALLERY(hadhinat,starter,tailwind,carbon…),'dark', ou'light'/ inconnu → repli surpalette.DEFAULT_INPUT. Le préfixeslides-est ignoré (le layout est choisi parmode).mode:'document'(A4) ou'slides'(16:9).palette: injectable (défaut :@mostajs/palette).darkInput: entrée palette du thème sombre.
Exports additionnels : DOC_LAYOUT, SLIDES_LAYOUT (structure sans couleur), DARK_INPUT.
Garantie
Chaque thème produit passe l'audit WCAG de palette — aucune couleur illisible n'est émise (invariant testé). Les feuilles de mise en page ne contiennent aucun hex (test de non-régression).
Tests
npm test