---
title: CLF Magazine Design System
status: governing
version: 1.0
created: 2026-08-16
source: Founding Prospectus visual language + CommUNITY Press design tokens
---

# CLF Magazine Design System

Magazine-quality print PDF design system for the Community Land Foundation
prospectus magazine series. Built on the established CommUNITY Press visual
language: forest green, aged bronze, ivory paper, restrained archival elegance.

## 1. Color Tokens

All colors are defined as hex values for screen proof and will be converted
to CMYK at commercial print preflight.

| Token            | Hex       | RGB              | CMYK (target)         | Usage                                    |
|------------------|-----------|------------------|-----------------------|------------------------------------------|
| `ink`            | `#2e2e2e` | 46, 46, 46       | 0, 0, 0, 82           | Body text, display headlines             |
| `paper`          | `#f7f2e6` | 247, 242, 230    | 2, 4, 10, 0           | Page ground (warm ivory)                 |
| `cream`          | `#efe6d4` | 239, 230, 212    | 4, 8, 16, 0           | Sidebar / box fill, alternate ground     |
| `field`          | `#1f3829` | 31, 56, 41       | 70, 30, 65, 18        | Deep forest green — covers, chapter bands|
| `ochre`          | `#8c6b38` | 140, 107, 56     | 25, 45, 75, 20        | Bronze accent — rules, kickers, spines   |
| `archive-gold`   | `#c9a34e` | 201, 163, 78     | 15, 30, 75, 5         | Seal, cover mark, plate kickers          |
| `mute`           | `#5b5348` | 91, 83, 72       | 10, 15, 30, 55        | Captions, folios, meta text              |
| `rule`           | `#d4c6ad` | 212, 198, 173    | 10, 15, 30, 5         | Column rules, hairline dividers          |
| `white`          | `#ffffff` | 255, 255, 255    | 0, 0, 0, 0            | Plate text, reverse type                 |
| `water`          | `#38667f` | 56, 102, 127     | 60, 30, 15, 20        | Watershed / water feature accent         |
| `gap-red`        | `#8a3a2a` | 138, 58, 42      | 20, 70, 75, 30        | [GAP] markers — editorial honesty flag   |

### Color usage rules

- `field` is the dominant brand color. Use for covers, chapter opener bands,
  and primary display type on plate pages.
- `ochre` is the primary accent. Use for rules, kickers, cover spine, pull
  quote borders. Never use as a large fill.
- `archive-gold` is the seal / cover-mark color. Restrained use only.
- `paper` is the default page ground for all text pages.
- `cream` is used for sidebars, boxes, and diagram backgrounds.
- `gap-red` is exclusively for `[GAP]` editorial markers — never decorative.

## 2. Typography

### Font families

| Role              | Font (print aim)          | ReportLab fallback             | Sizes (pt)                    |
|-------------------|---------------------------|--------------------------------|-------------------------------|
| Display / H1      | Libre Baskerville Bold    | Times-Bold                     | 24–36                         |
| Body / long-form  | Source Serif 4            | Times-Roman                    | 10.5 / 15.5 leading           |
| UI / kickers      | Source Sans 3             | Helvetica                      | 8–9, tracked +0.2em           |
| Folios / captions | Source Sans 3             | Helvetica                      | 7.5–8                         |
| Pull quotes       | Libre Baskerville Italic  | Times-Italic                   | 14–16                         |

### Type scale (letter page, pt)

| Element           | Size  | Leading | Weight     | Tracking    | Color     |
|-------------------|-------|---------|------------|-------------|-----------|
| Cover title       | 36    | 1.06    | Bold       | -0.02em     | white     |
| Display headline  | 24    | 1.12    | Bold       | -0.015em    | field     |
| Chapter title     | 18    | 1.15    | Bold       | -0.01em     | field     |
| Section heading   | 13    | 1.2     | Bold       | normal      | field     |
| Deck / subtitle   | 12    | 1.42    | Italic     | normal      | mute      |
| Body              | 10.5  | 1.52    | Regular    | normal      | ink       |
| Pull quote        | 14.5  | 1.32    | Italic     | normal      | field     |
| Kicker            | 8     | 1.3     | Regular    | +0.2em      | field     |
| Caption           | 8     | 1.35    | Regular    | +0.03em     | mute      |
| Folio             | 7.5   | 1.0     | Regular    | +0.06em     | mute      |
| Meta / source     | 8     | 1.35    | Regular    | normal      | mute      |

### Typography rules

- `CommUNITY` should subtly emphasize UNITY through tracking, not a font change.
- `THE FUTURE IS CULTIVATED` gets slightly increased letter spacing on the cover.
- All-caps kickers use tracked `+0.2em` to `+0.32em` letter spacing.
- Body text is justified in two-column layouts with hyphenation.
- Pull quotes are set in italic display serif with an ochre left-border rule.

## 3. Page Geometry

### Page size

| Property         | Value          | Notes                                    |
|------------------|----------------|------------------------------------------|
| Trim size        | 8.5 × 11 in   | US Letter (screen proof); print aim same |
| Bleed            | 0.125 in      | Reserved for print preflight             |
| Outer margin     | 0.72 in       | Right and top                            |
| Inner margin     | 0.72 in       | Left and bottom (single-page proof)      |
| Content width    | 7.06 in       | 8.5 - 2 × 0.72                           |
| Content height   | 9.56 in       | 11 - 2 × 0.72                            |
| Column count     | 2             | Long-form text pages                     |
| Column gap       | 0.30 in       | With 0.5pt rule between columns          |
| Column width     | 3.38 in       | (7.06 - 0.30) / 2                        |

### Layout types

1. **Cover plate** — Full-bleed background, spine bar, seal, cover mark,
   plate kicker, title, caption. No folio. No margin.
2. **Chapter opener** — Full-bleed plate left, title + kicker right.
   No body text on opener. Folio hidden or minimal.
3. **Text page** — Inner padding, kicker, display headline, optional deck,
   two-column body, optional sidebar, optional pull quote, folio at bottom.
4. **Principle page** — Centered vertically. Single typographic statement.
   No image. No body text. Large negative space.
5. **Diagram page** — Kicker, headline, diagram box (cream ground, rule border),
   caption, source line, folio.
6. **Contents page** — Section headers, entry list with page numbers,
   hairline dividers between entries.
7. **Colophon** — Meta text, source list, gap disclosure, print status,
   build timestamp, folio.

### Folio system

- Position: bottom of page, full content width.
- Left: section name (e.g. "Land is the tool").
- Right: page number.
- Font: Source Sans 3 / Helvetica, 7.5pt, `mute` color, tracked +0.06em.
- Cover and plate pages: no folio.

## 4. Component Specifications

### Pull quote

- Left border: 3pt solid `ochre`.
- Font: Libre Baskerville Italic / Times-Italic, 14.5pt, `field` color.
- Leading: 1.32.
- Margin: 0.22in top/bottom, 0.20in right, 0.18in left padding.
- Max width: content width (full or single column).

### Sidebar

- Float right, width 2.05in.
- Background: `cream`.
- Top border: 3pt solid `field`.
- Padding: 0.14in.
- Font: Source Sans 3 / Helvetica, 8pt, leading 1.4.
- Heading: 7.5pt, tracked +0.16em, uppercase, `field` color.

### Box (callout)

- Background: `cream`.
- Top border: 2pt solid `ochre`.
- Padding: 0.12in × 0.14in.
- Font: Source Sans 3 / Helvetica, 8.5pt, leading 1.4.
- Heading: 8pt, tracked +0.14em, uppercase, `field` color.

### [GAP] marker

- Inline-block, font: Source Sans 3 / Helvetica, 7pt.
- Color: `gap-red`.
- Border: 0.5pt solid `#c48a7a`.
- Padding: 1px × 6px.
- Tracked +0.1em, uppercase.
- Used only for honest editorial gap disclosure — never decorative.

### Diagram box

- Background: `cream`.
- Border: 0.5pt solid `rule`.
- Padding: 0.08in.
- SVG centered, max-width 100%.
- Caption below: 7.5pt, `mute`, left-aligned.

### Seal (cover)

- Circle, 1.05in diameter.
- Border: 1.6pt solid `archive-gold`.
- Inner ring: 0.6pt solid `rgba(201,163,78,0.55)`, 0.88in diameter.
- Text: Source Sans 3 / Helvetica, 6.4pt, tracked +0.12em, uppercase.
- Content: "Terra Una / Unitas / Aeterna".
- Color: `archive-gold`.

### Cover spine

- Position: left edge, full height.
- Width: 0.16in.
- Background: `ochre`.
- Z-index: above plate, below text.

## 5. Grid System

### Two-column text page

```
┌─────────────────────────────────────────┐
│  0.72in margin                          │
│  ┌─────────────┐  ┌─────────────┐       │
│  │             │  │             │       │
│  │  Column 1   │  │  Column 2   │       │
│  │  3.38in     │  │  3.38in     │       │
│  │             │  │             │       │
│  └─────────────┘  └─────────────┘       │
│  0.30in gap with 0.5pt rule             │
│  ──────────── folio ────────────        │
└─────────────────────────────────────────┘
```

### Plate page (full-bleed)

```
┌─────────────────────────────────────────┐
│ ▐│  plate image fills entire page       │
│ ▐│                                      │
│ ▐│  cover-mark (top-left)               │
│ ▐│  status-banner (top-right)           │
│ ▐│                                      │
│ ▐│  seal (upper-left, cover only)       │
│ ▐│                                      │
│ ▐│  plate-kicker (bottom-left)          │
│ ▐│  plate-title (bottom-left)           │
│ ▐│  plate-caption (bottom, full width)  │
└─────────────────────────────────────────┘
  ▐ = ochre spine bar (cover only)
```

## 6. ReportLab Implementation Notes

### Canvas approach

The PDF generator uses `reportlab.pdfgen.canvas.Canvas` for full control over
page-level layout. This is required because magazine layouts need absolute
positioning for plates, sidebars, pull quotes, and folios — `SimpleDocTemplate`
and `Platypus` flowables are too restrictive for magazine spreads.

### Font registration

```python
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont

# If Libre Baskerville / Source Serif 4 / Source Sans 3 are installed:
# pdfmetrics.registerFont(TTFont('LibreBaskerville', 'path/to/LibreBaskerville-Regular.ttf'))
# pdfmetrics.registerFont(TTFont('LibreBaskerville-Bold', 'path/to/LibreBaskerville-Bold.ttf'))

# Fallback (always available):
# Times-Roman, Times-Bold, Times-Italic, Helvetica, Helvetica-Bold
```

The script auto-detects installed fonts and falls back to PDF standard fonts
(Times + Helvetica) when custom fonts are not found. This ensures the script
runs in any environment.

### Color registration

```python
from reportlab.lib.colors import HexColor

INK       = HexColor('#2e2e2e')
PAPER     = HexColor('#f7f2e6')
CREAM     = HexColor('#efe6d4')
FIELD     = HexColor('#1f3829')
OCHRE     = HexColor('#8c6b38')
GOLD      = HexColor('#c9a34e')
MUTE      = HexColor('#5b5348')
RULE      = HexColor('#d4c6ad')
WHITE     = HexColor('#ffffff')
WATER     = HexColor('#38667f')
GAP_RED   = HexColor('#8a3a2a')
```

### Units

```python
from reportlab.lib.units import inch

PAGE_W = 8.5 * inch
PAGE_H = 11 * inch
MARGIN = 0.72 * inch
BLEED  = 0.125 * inch
COL_GAP = 0.30 * inch
COL_W  = (PAGE_W - 2 * MARGIN - COL_GAP) / 2
```

## 7. Editorial Rules (from EDITORIAL_CONSTITUTION.md)

1. **Truth over polish** — no invented metrics, no fake photos, no false claims.
2. **Gap honesty** — missing source text is marked `[GAP]`, never fabricated.
3. **Voice** — calm, institutional, multi-generational; drama in layout, not hype.
4. **Land is the tool, not the mission** — always.
5. **Counsel flags** — donor restrictions, ownership, housing, tax, international:
   require legal review before public reliance.
6. **Attribution** — every image has rights metadata before public build.
7. **Print status** — never label "print-ready" until commercial preflight passes.

## 8. Print Preflight Gates (not yet claimed)

| Gate                | Status      | Requirement                              |
|---------------------|-------------|------------------------------------------|
| Bleed               | Reserved    | 0.125in on all four sides                |
| CMYK conversion     | Not started | All spot colors → CMYK profile           |
| Font embedding      | Not started | All fonts embedded in PDF                |
| Image resolution    | Not started | 300dpi minimum for all raster images     |
| Rich black / overprint | Not started | Verify black generation settings     |
| PDF/X compliance    | Not started | Export as PDF/X-1a or PDF/X-4            |

**Current status: screen proof only. Not commercial print-ready.**

## 9. Issue Structure Template

Each issue follows this page sequence:

1. Cover plate (page 1)
2. Masthead / edition truth (page 2)
3. Contents (page 3)
4. Part I — Book I excerpts / reserved gaps (pages 4–5)
5. Part II — Chapter openers and body (pages 6–N)
6. Feature principle pages (interleaved)
7. Closing plate (page N-1)
8. Colophon / sources / gaps / print status (last pages)

## 10. File Structure

```
workspaces/clf-magazine/
├── design/
│   ├── CLF_DESIGN_SYSTEM.md      ← this file
│   ├── tokens/
│   │   └── tokens.json           ← machine-readable color/type tokens
│   ├── templates/
│   └── covers/
├── manuscript/
│   ├── books/
│   ├── front-matter/
│   ├── back-matter/
│   └── diagrams/
├── content/
│   └── issue-01/
│       ├── spreads/
│       ├── sidebars/
│       └── pull-quotes/
├── build/
│   ├── pdf/                      ← generated PDFs
│   ├── previews/
│   └── print/
├── assets/
│   ├── images/
│   ├── diagrams/
│   ├── icons/
│   └── fonts/
├── image-rights/
├── scripts/
│   └── generate_issue_pdf.py     ← reportlab PDF generator
└── reviews/
```

## 11. Source Provenance

This design system is derived from:

- `workspaces/community-press/design/tokens/magazine.css` — original CSS tokens
- `workspaces/community-press/DESIGN_BRIEF.md` — NatGeo institutional grammar
- `workspaces/community-press/VISUAL_CONSTITUTION.md` — visual rules
- `workspaces/community-press/EDITORIAL_CONSTITUTION.md` — editorial rules
- `workspaces/community-press/scripts/build_magazine_proof.py` — HTML proof builder
- `public/prospectus/files/manuscript__Book_I_Declaration_from_ChatGPT_235AM.md` — Book I source
- `public/prospectus/files/art_direction__spreads__FROM_CHATGPT_01_FOUNDING_PROSPECTUS.md` — art direction
- `workspaces/community-press/build/edition-0.9/prospectus_edition_0.9.md` — assembled edition

Colors, type families, spacing, and editorial rules are carried forward verbatim
from the established CommUNITY Press design system. The reportlab implementation
is new — the previous proof used HTML→Playwright; this pipeline generates PDF
directly via reportlab for finer typographic control.