caterium-app/docs/proposals-six-20260918.md

2.4 KiB
Raw Permalink Blame History

Six client proposal templates · 18 September 2026

The client sees six choices: Светлая классика, Редакционный, Вечерний, Тёплый приём, Гастро, Приглашение. Local Manrope and Playfair fonts, measured full Cyrillic text and a single renderer are shared by preview and PDF download.

All 21 previous identifiers remain readable. CateriumProposalPDF.resolveTemplate maps retired designs to the closest curated layout at display time. Orders and snapshots are not bulk-rewritten. The default is light; document branding remains scoped to the current company.

PNG uploads preserve alpha and color, trim transparent margins and retain a small transparent margin. Existing snapshot logos receive the same treatment during rendering. Logos have proportional dimensions up to 280 × 76 canvas units, with no thumbnail tile. If the predominant logo color would disappear against the page, the full masthead receives a contrasting background. Company names wrap separately from logos.

The second visual review corrected orphaned totals, oversized gaps below editorial headings, excessive card page breaks and uneven row distribution. Story panels, editorial columns, dark circular thumbnails, bento cards and ticket-style alternating rows give the interiors different structures. Long descriptions flow across pages without truncation. Normal price breakdowns and the grand total stay together.

Reproduce the visual audit from the repository root:

  1. Serve public with npx http-server public -p 4182 -c-1.
  2. Run node ops/pdf/audit-curated.mjs final in another terminal. This uses isolated, fictional fixtures, blocks external requests and writes six real PDFs to the sibling caterium-six-proposals-20260918/output/pdf directory. It also updates the six brand-neutral selection thumbnails.
  3. Run ops/pdf/render-curated.py final using the bundled Python runtime. Poppler renders every PDF page. The script writes page images, contact sheets, a six-cover overview and a text-bound/collision report under that sibling directory.

Browser regression coverage includes all six choices, legacy IDs, 18 combinations of wide/tall/white logos and light/dark templates, complete long descriptions, grouped totals, optional content, local fonts, cancelled image requests and identical preview/download A4 pages. PDF text remains rasterized by the existing PDF engine; selectable/searchable PDF text is outside this release.