Skip to main content

Generate branded Office templates from design tokens

Project description

TokenMoulds

PyPI Downloads Python License: MIT CI Tests MCP Tools

A corporate template system for Microsoft Office and LibreOffice. Point it at a brand, get publication-quality Word, PowerPoint, Excel, and LibreOffice templates — with embedded fonts, baseline grids, OOXML compliance validation, and long-form document support for whitepapers, annual reports, manuals, and bound books.

Install

pip install tokenmoulds

Quick Start

Generate templates from brand inputs:

tokenmoulds --org-id="acme" \
  --font-pair="inter-roboto" \
  --primary-color="#2563EB" \
  --secondary-color="#DC2626" \
  --locale="GB" \
  --brand-tone=0.3 \
  --generate-templates --generate-odf

Or from a DTCG token file:

tokenmoulds --org-id="acme" \
  --tokens-file="design.tokens.json" \
  --generate-templates

What It Does

~30 brand inputs (colors, fonts, tone) produce 4,576 derived design tokens across 11 output formats. Every template ships with:

  • WCAG AAA accessible contrast ratios
  • Embedded fonts with ODTTF obfuscation (Word) and EOT with GSUB (PowerPoint)
  • OpenType typography: contextual figures, size-dependent tracking, ligatures
  • Baseline grid-snapped typography via modular type scales
  • ISO 29500 (OOXML) and ODF schema compliance
  • Zero macros — all styling baked into document structure

Long-Form Documents

Corporate whitepapers, annual reports, manuals, and bound books need more than a single page layout. They need sections — front matter with roman-numeral page numbers, a body with running chapter titles and decimal numbering, an appendix that continues the count. Each section with its own headers, footers, and page geometry.

TokenMoulds generates long-form structure from a small token vocabulary and emits it consistently across both Word (.dotx) and LibreOffice Writer (.ott) from one shared IR. Features:

  • Per-section page geometry — A4, A5, B5, Letter, portrait or landscape, margins as formulas against the baseline grid
  • Mirror margins — inner/outer semantics for bound documents, facing pages automatically flip
  • Running headersSTYLEREF:Heading1 fields that update as the reader moves through chapters (Word) / <text:chapter> fields (Writer)
  • Per-section page numberinglowerRoman for front matter, decimal restart for the body, continuing counts for appendices
  • Odd/even headers — book-style layouts with different left-hand and right-hand page content
  • First-page different — cover pages, chapter openers
  • Multi-column sections — indexes, newsletters
  • Cross-format parity — one IR → structurally identical .dotx and .ott, locked down by a golden master test suite

See Long-Form Documents guide for a walkthrough with a three-section whitepaper example.

Output Formats

Format Extension Highlights
Word .dotx 276 themed paragraph, character, and table styles
PowerPoint .potx Theme colors, embedded fonts, table styles, layouts
Excel .xltx Themed cell styles and number formats
Writer .ott 110 ODF styles with page geometry
Impress .otp ODF presentation template
Calc .ots ODF spreadsheet template
Draw .otg ODF drawing template
Google Docs .dotx Optimized for Google Workspace import
Theme .thmx Standalone Office theme package

MCP Server

For AI-assisted document creation via Claude, Cursor, or other MCP clients:

tokenmoulds mcp-server

28 tools for brand extraction, template generation, document creation, validation, and cache management. See the MCP tool catalog.

Python API

from tokenmoulds.pipeline import BuildConfig, build

result = build(BuildConfig(
    org_id="acme",
    output_formats=["potx", "dotx", "xltx"],
    brand_inputs={
        "font_pair": {"sans": "Inter", "serif": "Roboto Slab"},
        "base_colors": {"primary": "#2563EB", "secondary": "#DC2626"},
        "locale": "US",
        "brand_tone": 0.5,
    },
))

for fmt, data in result.artifacts.items():
    open(f"acme.{fmt}", "wb").write(data)

Architecture

TokenMoulds uses a single canonical build pipeline:

Design Tokens → DesignResolutionEngine → DocumentIR → Emitters → Validated Packages
  • DTCG pipeline: W3C Design Tokens Community Group format with 5-layer resolution (core/fork/org/group/personal)
  • Design engine: Modular type scale, baseline grid, OpenType features, tone/density adaptation
  • Document IR: Format-agnostic intermediate representation
  • 11 emitters: Each produces a complete, valid package
  • Validation: In-process ISO 29500 schema checking via openxml-audit

See ADR 027 for the full convergence story.

Development

git clone https://github.com/BramAlkema/TokenMoulds.git
cd TokenMoulds
python -m venv venv && source venv/bin/activate
pip install -e ".[dev]"
python -m pytest tests/ -v --tb=short   # 2,060 tests

Contributing

See CONTRIBUTING.md for development guidelines, code conventions, and how to submit changes.

Documentation

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tokenmoulds-3.6.3.tar.gz (603.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tokenmoulds-3.6.3-py3-none-any.whl (732.9 kB view details)

Uploaded Python 3

File details

Details for the file tokenmoulds-3.6.3.tar.gz.

File metadata

  • Download URL: tokenmoulds-3.6.3.tar.gz
  • Upload date:
  • Size: 603.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tokenmoulds-3.6.3.tar.gz
Algorithm Hash digest
SHA256 d15076af834044a09d492e15250c5e71e2590d3778a58e6dd60c787541dc91f4
MD5 46d015c52a9df1c98a356034f0592563
BLAKE2b-256 86f0f7b643cf5735f3a80df2246ffd88bc2c49a47374072821df97cb5dacc9a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tokenmoulds-3.6.3.tar.gz:

Publisher: 06-publish-pypi.yml on BramAlkema/TokenMoulds

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tokenmoulds-3.6.3-py3-none-any.whl.

File metadata

  • Download URL: tokenmoulds-3.6.3-py3-none-any.whl
  • Upload date:
  • Size: 732.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tokenmoulds-3.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 73081f7639731e515c220f0f7950eb3df69dc7f174152137a5e96d66d3ae399c
MD5 4dd882c378ab8d41aed5a0193d6799c3
BLAKE2b-256 53c656fd7d4709c10337d4ceb233d1f70ac73829a5f387e02c1adf4873f302f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for tokenmoulds-3.6.3-py3-none-any.whl:

Publisher: 06-publish-pypi.yml on BramAlkema/TokenMoulds

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page