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.