Pro Feature

Create custom templates.

Define your brand with design tokens, cover styles, and CSS overrides. Every PDF you export uses a consistent, professional look — no manual formatting.

How templates work

A template is a folder with two files. Design tokens set your colors and fonts; CSS overrides handle structural tweaks.

1

template.json

Design tokens (colors, fonts, sizes), cover page style, page layout, and document defaults.

2

theme.css

Optional CSS overrides scoped under .tpl-<id>. Structural tweaks that tokens alone can't express.

3

PDF output

PaperQuire applies tokens as CSS variables, then your theme.css, then any per-export overrides.

Template directory location

macOS ~/Library/Application Support/paperquire/templates/
Linux ~/.config/paperquire/templates/
Windows %APPDATA%\paperquire\templates\

Quickstart

Two ways to create a custom template. No build tools needed.

A Duplicate a built-in template

The fastest way. Open Document Setup, select a template, and click Duplicate. PaperQuire copies the template to your user folder and opens it in Finder/Explorer.

  1. Open Document Setup (toolbar or Cmd+E)
  2. Pick a template that's close to what you want
  3. Click Duplicate
  4. Edit template.json and theme.css in any text editor
  5. Reopen Document Setup — your template appears automatically
B Create from scratch

Drop a folder with template.json and theme.css into your templates directory.

templates/
  my-brand/
    template.json
    theme.css

Minimal template.json

Only id and name are required. Everything else has sensible defaults.

template.json
{
  "id": "my-brand",
  "name": "My Brand",
  "description": "Company style guide template",
  "bestFor": "Internal reports and proposals",
  "tokens": {
    "accent": "#005A8E",
    "accentDark": "#003F63",
    "bodyFont": "Arial, sans-serif",
    "headingFont": "Arial, sans-serif",
    "tableHeadBg": "#005A8E"
  },
  "cover": { "enabled": true, "style": "sidebar" },
  "page": {
    "size": "Letter",
    "margins": { "top": 0.75, "right": 0.8, "bottom": 0.75, "left": 0.8 }
  },
  "toc": { "enabledByDefault": true },
  "footer": { "showPageNumbers": true, "showTitle": true },
  "h1NewPage": true
}
theme.css (optional)
/* Scope all rules under .tpl-my-brand */
.tpl-my-brand h1 {
  border-bottom-width: 3px;
}
.tpl-my-brand h2 {
  border-left-width: 5px;
}

Reopen Document Setup to pick up changes — no app restart required.

Manifest reference

Full template.json schema. Omitted fields are filled with defaults.

Identity Template metadata

FieldTypeRequiredDescription
idstringYesUnique identifier. Must match the folder name. Alphanumeric, hyphens, and underscores only.
namestringYesDisplay name shown in the template picker.
descriptionstringNoSubtitle shown under the template name. Default: "Custom template".
bestForstringNoOne-line use-case label. Default: "Custom".

Cover Cover page settings

FieldTypeDefaultDescription
cover.enabledbooleanfalseWhether the cover page is on by default. Users can override per-export.
cover.stylestring"none"Cover layout: "band", "centered", "minimal", "sidebar", or "none".

Layout Page layout

FieldTypeDefaultDescription
page.sizestring"Letter""Letter" (8.5 × 11 in) or "A4" (8.27 × 11.69 in).
page.margins.topnumber0.75Top margin in inches.
page.margins.rightnumber0.75Right margin in inches.
page.margins.bottomnumber0.75Bottom margin in inches.
page.margins.leftnumber0.75Left margin in inches.

Document Document options

FieldTypeDefaultDescription
toc.enabledByDefaultbooleanfalseInclude a table of contents page. Users can override per-export.
footer.showPageNumbersbooleantrueShow page numbers (N / total) in the bottom-right.
footer.showTitlebooleanfalseShow the document title in the bottom-left footer.
h1NewPagebooleanfalseStart each H1 heading on a new page (except the first).

Design tokens

Tokens in template.json become CSS custom properties. Use them in theme.css or let the base stylesheet apply them automatically.

TokenCSS variableDefaultUsed for
accent--doc-accent#2563ebHeadings, cover bar, blockquotes, TOC rules, table headers
accentDark--doc-accent-dark#1e3a8aH4 color, links, cover company text
ink--doc-ink#1a1d22Body text color
secondary--doc-secondary#4b5159H4, TOC H3, cover subtitle, figure captions
muted--doc-muted#6b7280Cover meta (author/date), footer text
rule--doc-rule#e3e6eaTable borders, <hr>, callout borders
panel--doc-panel#f6f7f9Blockquote background, zebra-stripe rows
codeBg--doc-code-bg#f6f8faCode block and inline code background
bodyFont--doc-fontArial, sans-serifBody text font family
headingFont--doc-heading-fontsame as bodyAll headings and cover title
monoFont--doc-monoMenlo, Consolas, monospaceCode blocks and inline code
baseFontSize--doc-base-size11ptBody text font size
h1Size--doc-h1-size21ptH1 heading font size
h2Size--doc-h2-size15.5ptH2 heading font size
lineHeight--doc-line-height1.6Body text line height (unitless)
tableHeadBg--doc-table-head-bg#2563ebTable header row background
tableHeadColor--doc-table-head-color#ffffffTable header row text color

Cover page styles

Four built-in cover layouts. Set cover.style in your template manifest.

Writing theme.css

Optional structural CSS that goes beyond design tokens. Scope everything under .tpl-<your-id>.

CSS cascade order
  1. :root variables — generated from your tokens
  2. base.css — PaperQuire's structural print stylesheet
  3. theme.css — your template-specific overrides
  4. Per-export overrides — user's color/layout tweaks in Document Setup
Examples from built-in templates
/* Remove H1 border (minimal-clean) */
.tpl-minimal-clean h1 {
  border-bottom: none;
  padding-bottom: 0;
}

/* Left accent rail on code blocks (technical-design) */
.tpl-technical-design pre {
  border-left: 3px solid var(--doc-accent);
}

/* Monospace H3 (technical-design) */
.tpl-technical-design h3 {
  font-family: var(--doc-mono);
  font-size: 12pt;
}

/* Uppercase tracked headings (architecture) */
.tpl-architecture h1,
.tpl-architecture h2 {
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* Small-caps H2 with bottom border (executive-report) */
.tpl-executive-report h2 {
  border-left: none;
  padding-left: 0;
  padding-bottom: 0.15em;
  border-bottom: 1px solid var(--doc-rule);
  font-variant: small-caps;
  letter-spacing: 0.03em;
}

Per-export overrides

Users can tweak these settings in Document Setup without editing the template. The template defines the defaults.

OverrideTypeDescription
Primary colorcolorOverrides --doc-accent, --doc-accent-dark, and --doc-table-head-bg
Secondary colorcolorOverrides --doc-secondary
Page sizeLetter / A4Overrides page.size
MarginsinchesOverrides all four page.margins values
Cover pageAuto / On / OffOverrides cover.enabled
Table of contentsAuto / On / OffOverrides toc.enabledByDefault
H1 page breaksAuto / On / OffOverrides h1NewPage
WatermarktextDiagonal watermark (e.g. "DRAFT", "CONFIDENTIAL")
Number figuresbooleanAuto-number captioned figures and tables

Tips

Start by duplicating

Don't start from scratch. Find the closest built-in template and duplicate it. You'll get a working baseline and only need to change what's different for your brand.

Use tokens for colors and fonts

Put all brand colors and font choices in tokens rather than hard-coding them in theme.css. This lets users override primary/secondary color in Document Setup without breaking your design.

Always scope your CSS

Every rule in theme.css should start with .tpl-your-id. Without scoping, your styles bleed into other templates and the preview pane.

Test with long content

Export a document with 10+ pages, tables, code blocks, and images. Check page breaks, repeating table headers, footer alignment, and cover page rendering.

Stick to pt units for font sizes

PDF rendering works best with point units. Avoid px, rem, vh, or vw in print styles — they can produce inconsistent results across PDF engines.

Share templates across your team

Copy your template folder to colleagues' template directories, or use Enterprise managed config to push org-wide templates via MDM/Intune.

Ready to design?

Duplicate a built-in template and make it yours. Custom templates are a Pro feature.

Download PaperQuire