Interactive Pdf Binder Token Map

Interactive PDF Binder Navigation — token consolidation rationale

Values in this component were extracted directly from tool-pdf-interactive.py's own Python constants (the authoritative source), not from the design draft's prose description — one real discrepancy was found this way: the draft's color table lists a 7th token GREY_MID (#666680, described as "inactive entry subtitles"), but no subtitle rows exist anywhere in the actual generator code. Dropped from this component's token set rather than silently carried forward as a phantom value.

Why this is a separate rendering context, not folded into paper.primitive.page.*

Every other Paper component in this consolidation is a CSS @page-based WeasyPrint document. This component is generated directly in PDF point-space via reportlab + pypdf — same physical units (points), genuinely different coordinate system (origin bottom-left, not top-left; no @page box model). Kept as its own paper.primitive.pdf-nav.* group rather than forced to share the CSS-print page primitives, since the two are not interchangeable despite both using pt.

Tool location and portability

The canonical template lives at project-jennifer/tool-pdf-interactive/tool-pdf-interactive.py (258 lines) with README.md/README.es.md. Seven filled-in production copies exist under project-jennifer/inputs/*/ for real Bencal/Agency/MOU/Mexico-Prospectus binders — those remain business-admin artifacts and do not move. The canonical template itself is self-contained (only pypdf/reportlab dependencies, no project-jennifer-specific paths or business content) and ports to pointsav-monorepo/tool-pdf-interactive/ with low rework — the main generalizing step is lifting its top-of-file CONFIG block into CLI arguments or a manifest file, so one installed tool can build any binder without editing source.

A second, more-developed copy of this tool (676 lines, including a find_home_anchor feature via pdfplumber) already exists committed directly at pointsav-monorepo's repository root — a real, pre-existing repo-layout.md violation (no scripts allowed at repo root) predating this consolidation. That copy, not the project-jennifer template, is the better base for the actual tool-* port (Step 6a of this initiative), since it is already more feature-complete and already properly licensed/committed within the monorepo; the project-jennifer template's design values were used for this token consolidation since it is the cleaner, generalized reference the design draft actually describes.

Important Information

Design System disclosure

This site provides open-source design tokens, documentation, and self-hostable software published by Woodfine Capital Projects Inc. Information here is for general reference only and does not constitute an offer, warranty, or a guarantee of fitness for any particular purpose. Statements regarding planned, intended, or targeted future features are forward-looking and subject to change without notice; they are not undertaken to be updated except as required by law.