[object Object]

← back to Crazy News Channel

Add Paul Conrad style-reference page for P24 Political Cartoon Desk

e2f9f7b2dee39795470b981c43497c7e5e95a26c · 2026-09-24 12:43:08 -0700 · Steve Abrams

Links from the cartoons index header ("Masters: Paul Conrad ->") to a new
cartoons/reference/index.html: bio, creed, the visual devices/brief P24
uses to draw "in the Conrad manner," and a documented-works table that is
metadata + citation-only (no cartoon images hosted — Conrad's actual work
is copyright LA Times/estate and non-embeddable). Explicitly credits and
links to the standalone research catalog at ~/Projects/paul-conrad-cartoons
(run `node server.js`, http://localhost:9933) for the fuller 38-record
archive. Presents P24's Conrad-styled strips as original in-house satire
inspired by his technique, never as reproductions.

Verified: node --check on manifest.js + reference/paul-conrad.js, and a
Playwright pass through cartoons/index.html (23 cards, 0 console errors)
into reference/index.html (12 works rendered, correct rights disclaimer).

TK-12155

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V29xaoBwcFwJyR4KC43ptn

Files touched

Diff

commit e2f9f7b2dee39795470b981c43497c7e5e95a26c
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Thu Sep 24 12:43:08 2026 -0700

    Add Paul Conrad style-reference page for P24 Political Cartoon Desk
    
    Links from the cartoons index header ("Masters: Paul Conrad ->") to a new
    cartoons/reference/index.html: bio, creed, the visual devices/brief P24
    uses to draw "in the Conrad manner," and a documented-works table that is
    metadata + citation-only (no cartoon images hosted — Conrad's actual work
    is copyright LA Times/estate and non-embeddable). Explicitly credits and
    links to the standalone research catalog at ~/Projects/paul-conrad-cartoons
    (run `node server.js`, http://localhost:9933) for the fuller 38-record
    archive. Presents P24's Conrad-styled strips as original in-house satire
    inspired by his technique, never as reproductions.
    
    Verified: node --check on manifest.js + reference/paul-conrad.js, and a
    Playwright pass through cartoons/index.html (23 cards, 0 console errors)
    into reference/index.html (12 works rendered, correct rights disclaimer).
    
    TK-12155
    
    Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01V29xaoBwcFwJyR4KC43ptn
---
 cartoons/index.html               |   1 +
 cartoons/reference/index.html     | 135 ++++++++++++++++++++++++++++++++++++++
 cartoons/reference/paul-conrad.js |  78 ++++++++++++++++++++++
 3 files changed, 214 insertions(+)

diff --git a/cartoons/index.html b/cartoons/index.html
index 392e42c..7cbd09e 100644
--- a/cartoons/index.html
+++ b/cartoons/index.html
@@ -174,6 +174,7 @@ footer{max-width:1200px; margin:30px auto; padding:0 20px 30px; color:var(--text
 <header class="chrome">
   <span class="logo-badge" aria-hidden="true">P24</span>
   <h1>Political Cartoon Desk</h1>
+  <a class="home" href="reference/index.html">Masters: Paul Conrad &rarr;</a>
   <a class="home" href="../index.html">&larr; Back to PANDEMONIUM-24</a>
 </header>
 <main>
diff --git a/cartoons/reference/index.html b/cartoons/reference/index.html
new file mode 100644
index 0000000..e1faaec
--- /dev/null
+++ b/cartoons/reference/index.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8" />
+<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+<title>Masters: Paul Conrad — P24 Political Cartoon Desk</title>
+<meta name="description" content="The style reference the P24 Political Cartoon Desk draws on: Paul Conrad (1924–2010), three-time Pulitzer editorial cartoonist. His devices, creed, and works — metadata and link-out only." />
+<style>
+  /* Conrad = political. Default to the Desk's "politics" red/black mood (its most
+     Conrad-like palette), with the same token names as ../index.html so it feels
+     native. Dark-friendly by construction. */
+  :root {
+    --bg: #2a0b0b; --bg2: #4a0f0f; --panel: #3a1212; --panel-border: #ff3b3b55;
+    --accent: #ff3b3b; --accent2: #ffb703; --text: #ffe9e9; --text-dim: #ffd7d7aa;
+    --chrome: #220808; --focus: #ffd166;
+    --maxw: 1000px;
+  }
+  * { box-sizing: border-box; }
+  body {
+    margin: 0; background: var(--bg); color: var(--text);
+    font-family: 'Iowan Old Style', 'Palatino Linotype', Georgia, serif;
+    line-height: 1.5;
+  }
+  a { color: var(--accent2); }
+  a:focus-visible, button:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
+  .chrome {
+    display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
+    background: var(--chrome); border-bottom: 3px solid var(--accent);
+    padding: 12px 20px;
+  }
+  .logo-badge {
+    background: var(--accent); color: #220808; font-weight: 800; letter-spacing: .05em;
+    padding: 3px 8px; border-radius: 3px; font-family: system-ui, sans-serif;
+  }
+  .chrome h1 { font-size: clamp(18px, 3vw, 26px); margin: 0; flex: 1; }
+  .chrome a.home { color: var(--text-dim); text-decoration: none; font-size: 13px; font-family: system-ui, sans-serif; }
+  .chrome a.home:hover { color: var(--accent2); }
+  main { max-width: var(--maxw); margin: 0 auto; padding: 22px 20px 60px; }
+  .lede {
+    font-size: clamp(17px, 2.4vw, 21px); border-left: 4px solid var(--accent);
+    padding-left: 14px; margin: 4px 0 24px; color: var(--text);
+  }
+  .creed { font-style: italic; color: var(--accent2); }
+  section { background: var(--panel); border: 1px solid var(--panel-border); border-radius: 6px; padding: 18px 20px; margin-bottom: 20px; }
+  section > h2 { margin: 0 0 12px; font-size: 20px; border-bottom: 1px solid var(--panel-border); padding-bottom: 6px; }
+  dl.style-grid { margin: 0; display: grid; grid-template-columns: 150px 1fr; gap: 8px 16px; }
+  dl.style-grid dt { color: var(--accent2); font-weight: 700; }
+  dl.style-grid dd { margin: 0; color: var(--text); }
+  ul.devices, ol.brief { padding-left: 0; margin: 0; list-style: none; }
+  ul.devices li { padding: 8px 0; border-bottom: 1px dashed var(--panel-border); }
+  ul.devices li:last-child { border-bottom: none; }
+  .dev-name { font-weight: 800; color: var(--accent); }
+  .dev-seed { display: block; font-size: 12.5px; color: var(--text-dim); margin-top: 2px; }
+  ol.brief { list-style: decimal; padding-left: 22px; }
+  ol.brief li { margin: 6px 0; }
+  table.works { width: 100%; border-collapse: collapse; font-size: 14px; }
+  table.works caption { text-align: left; color: var(--text-dim); font-size: 12.5px; margin-bottom: 8px; font-family: system-ui, sans-serif; }
+  table.works th, table.works td { text-align: left; padding: 7px 10px; border-bottom: 1px solid var(--panel-border); vertical-align: top; }
+  table.works th { color: var(--accent2); font-family: system-ui, sans-serif; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; }
+  table.works td.year { white-space: nowrap; color: var(--text-dim); }
+  .rights { font-size: 12.5px; color: var(--text-dim); font-style: italic; margin-top: 12px; border-top: 1px solid var(--panel-border); padding-top: 10px; }
+  footer { text-align: center; color: var(--text-dim); font-size: 12.5px; padding: 24px 20px; font-family: system-ui, sans-serif; }
+  @media (max-width: 620px) { dl.style-grid { grid-template-columns: 1fr; gap: 2px 0; } dl.style-grid dt { margin-top: 8px; } }
+</style>
+</head>
+<body>
+<header class="chrome">
+  <span class="logo-badge" aria-hidden="true">P24</span>
+  <h1>Masters: Paul Conrad</h1>
+  <a class="home" href="../index.html">&larr; Cartoon Desk</a>
+</header>
+<main>
+  <p class="lede" id="who"></p>
+  <p class="creed" id="creed"></p>
+
+  <section aria-labelledby="style-h">
+    <h2 id="style-h">The Conrad manner — how the Desk draws in his style</h2>
+    <dl class="style-grid" id="styleGrid"></dl>
+  </section>
+
+  <section aria-labelledby="devices-h">
+    <h2 id="devices-h">Device toolbox</h2>
+    <ul class="devices" id="devices"></ul>
+  </section>
+
+  <section aria-labelledby="brief-h">
+    <h2 id="brief-h">Drawing brief — applying it to a P24 story</h2>
+    <ol class="brief" id="brief"></ol>
+  </section>
+
+  <section aria-labelledby="works-h">
+    <h2 id="works-h">Inspiration seeds — documented Conrad works</h2>
+    <table class="works">
+      <caption id="worksCaption"></caption>
+      <thead><tr><th scope="col">Work</th><th scope="col">Year</th><th scope="col">Subject</th><th scope="col">Source</th></tr></thead>
+      <tbody id="worksBody"></tbody>
+    </table>
+    <p class="rights" id="rights"></p>
+  </section>
+</main>
+<footer>Reference for the P24 Political Cartoon Desk. All P24 strips are original invented satire drawn in the Conrad manner — not reproductions. Part of PANDEMONIUM-24.</footer>
+
+<script src="paul-conrad.js"></script>
+<script>
+(function(){
+  const R = window.P24_CONRAD_REFERENCE;
+  if (!R) { document.getElementById('who').textContent = 'Reference data failed to load.'; return; }
+  const esc = s => String(s == null ? '' : s).replace(/[&<>"']/g, c => ({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;'}[c]));
+
+  document.getElementById('who').innerHTML =
+    '<strong>' + esc(R.master.name) + '</strong> (' + esc(R.master.lived) + '). ' + esc(R.master.who);
+  document.getElementById('creed').textContent = '“' + R.master.creed + '”';
+
+  const sg = document.getElementById('styleGrid');
+  const styleOrder = [['line','Line'],['composition','Composition'],['caricature','Caricature'],['caption','Caption'],['palette','Palette in P24'],['device','Core device']];
+  sg.innerHTML = styleOrder.map(([k,label]) => R.style[k] ? '<dt>' + esc(label) + '</dt><dd>' + esc(R.style[k]) + '</dd>' : '').join('');
+
+  document.getElementById('devices').innerHTML = R.devices.map(d =>
+    '<li><span class="dev-name">' + esc(d.name) + '</span> — ' + esc(d.gist) +
+    '<span class="dev-seed">seed: ' + esc(d.seed_work) + '</span></li>').join('');
+
+  document.getElementById('brief').innerHTML = R.brief.map(b => '<li>' + esc(b) + '</li>').join('');
+
+  document.getElementById('worksCaption').textContent =
+    R.works.length + ' documented works · metadata + link-out only (all © Los Angeles Times / Conrad estate — no images hosted here).';
+  document.getElementById('worksBody').innerHTML = R.works.map(w =>
+    '<tr><td>' + esc(w.title) + '</td><td class="year">' + esc(w.year) + '</td><td>' + esc(w.subject) +
+    '</td><td><a href="' + esc(w.citation_url) + '" target="_blank" rel="noopener noreferrer">source</a></td></tr>').join('');
+
+  document.getElementById('rights').textContent =
+    'No public-domain or open-license Paul Conrad cartoon image exists; every work is copyright the Los Angeles Times or the Conrad estate. This page hosts none — each row links to where the work can be viewed. ' + (R.catalog_note || '');
+})();
+</script>
+</body>
+</html>
diff --git a/cartoons/reference/paul-conrad.js b/cartoons/reference/paul-conrad.js
new file mode 100644
index 0000000..7d1df72
--- /dev/null
+++ b/cartoons/reference/paul-conrad.js
@@ -0,0 +1,78 @@
+// cartoons/reference/paul-conrad.js
+// The "Masters" style reference the P24 Political Cartoon Desk draws on when it
+// draws in the manner of Paul Conrad. Loaded as a plain <script src> (matching
+// manifest.js / stories-data.js) so it works offline under file:// with no fetch.
+//
+// SOURCED, not invented — compiled 2026-09-24 from the standalone research catalog
+// at ~/Projects/paul-conrad-cartoons (pulitzer.org, Library of Congress, The Pop
+// History Dig, Encyclopedia.com, Wikipedia, Spartacus Educational, Toons Mag, the
+// 2010 AP obituary, and the OAC/Huntington, Syracuse and Wichita State finding aids).
+//
+// RIGHTS: no public-domain / open-license Conrad cartoon image exists — every work
+// is copyright Los Angeles Times or the Conrad estate. This reference therefore
+// carries NO cartoon images; the "works" list is metadata + link-out only, and the
+// P24 strips the Desk generates from it are ORIGINAL drawings, not reproductions.
+
+window.P24_CONRAD_REFERENCE = {
+  master: {
+    name: "Paul Conrad",
+    lived: "1924–2010",
+    who: "Chief editorial cartoonist, Los Angeles Times (1964–1993); Denver Post (1950–1964). Three Pulitzer Prizes for Editorial Cartooning (1964, 1971, 1984). Placed on Nixon's Enemies List in 1973 — which he called his proudest achievement.",
+    creed: "Afflict the comfortable. Aim the pen at the powerful — presidents, mayors, generals, bishops — as charlatans and fools, never at the powerless.",
+    citation_url: "https://en.wikipedia.org/wiki/Paul_Conrad"
+  },
+
+  // The visual signature the Desk should reproduce when a strip is "in the Conrad manner".
+  style: {
+    line: "Savage, high-contrast brush work. Long jagged strokes, heavy solid blacks, deep shadow. Nothing pretty — the drawing should feel like an accusation.",
+    composition: "One idea, one panel. Strip everything non-essential; a near-empty background throws all weight onto the subject and the single savage metaphor.",
+    caricature: "Exaggerate the one feature that damns the subject (Nixon's jowls and five-o'clock shadow, Reagan's grin). The likeness is a verdict, not a portrait.",
+    caption: "Terse, often a first-person quote from the subject that convicts them out of their own mouth, or a dry news-item label. Never explain the joke.",
+    palette: "Historically black ink on newsprint. In P24, render as heavy near-black line + solid fills on the current category mood's --bg, with the --accent used sparingly for the one element that must be read first.",
+    device: "Build the whole cartoon on ONE borrowed cultural frame — a Bible scene, a famous painting, a nursery rhyme, a Nast cartoon — and drop the target into it."
+  },
+
+  // The recurring metaphor-devices catalogued from Conrad's real work — the Desk's
+  // toolbox. Each is drawn from a documented cartoon (see works[] for citations).
+  devices: [
+    { name: "Self-crucifixion", gist: "The subject nails HIMSELF to a cross — the powerful as the authors of their own destruction.", seed_work: "Nixon nailing himself to a cross (1974)" },
+    { name: "Web of names", gist: "A spider web woven from the conspirators' own names; the subject caught at its center.", seed_work: "Nixon caught in the Watergate spider web (1973)" },
+    { name: "Fine-art parody", gist: "Restage a famous painting with the target in it — American Gothic, etc.", seed_work: "Reagan 'American Gothic' (1986)" },
+    { name: "Ghost chorus", gist: "The unquiet dead (soldiers, victims) marching in to indict the living decision-maker.", seed_work: "Vietnam Moratorium ghost soldiers (1969)" },
+    { name: "The doomed ride", gist: "Leaders astride the very weapon/policy that is plunging — riding the falling bomb.", seed_work: "'We're Gonna Make History, Hubert!!' (1968)" },
+    { name: "Barricade / won't leave", gist: "The subject clinging to power: 'come in and get me,' walled into the office.", seed_work: "'…come in and get me!' Nixon barricaded (1974)" },
+    { name: "Historical rhyme", gist: "Quote an older cartoon or scandal to convict the present one (Nast's ring of blame; Teapot Dome).", seed_work: "'Affixing Blame…' after Thomas Nast (1982)" },
+    { name: "Deadpan absurd literalism", gist: "Take an institution's own logic one literal step too far (a mailbox already on the Moon).", seed_work: "Apollo 11 mailbox on the Moon (1969)" }
+  ],
+
+  // How the Desk should brief itself before drawing a Conrad-manner strip on a P24 story.
+  brief: [
+    "Name the powerful party in the P24 story (the council, the marshal, the toll authority) — that, never the little guy, is the target.",
+    "Pick ONE device from devices[] that fits the story's absurd escalation.",
+    "Find the single savage image that fuses target + device. One panel, one idea.",
+    "Write a caption that convicts them in their own words or a flat news-item label.",
+    "Draw it heavy and ugly on the category mood: near-black line, solid blacks, one --accent element, empty background.",
+    "Keep it ORIGINAL and clearly fictional — P24 satire of invented officials, drawn in Conrad's manner, not a copy of any Conrad cartoon."
+  ],
+
+  // Documented Conrad works used as inspiration seeds. Metadata + citation only —
+  // NO images embedded (all are copyright LA Times / estate). Mirrors the standalone
+  // catalog's documented records.
+  works: [
+    { title: "He says he's from the phone company…", year: "1972", subject: "Watergate break-in — earliest Nixon link", citation_url: "https://pophistorydig.com/topics/tag/paul-conrad-political-cartoons/" },
+    { title: "His Own Worst Enemy", year: "1973", subject: "Nixon amid his enemies list", citation_url: "https://pophistorydig.com/topics/tag/paul-conrad-political-cartoons/" },
+    { title: "Nixon caught in the Watergate spider web", year: "1973", subject: "Conspiracy web of names", citation_url: "https://pophistorydig.com/topics/tag/paul-conrad-political-cartoons/" },
+    { title: "…come in and get me!", year: "1974", subject: "Nixon barricaded in the White House", citation_url: "https://pophistorydig.com/topics/tag/paul-conrad-political-cartoons/" },
+    { title: "Nixon nailing himself to a cross", year: "1974", subject: "Self-destruction — Conrad's own favorite", citation_url: "https://en.wikipedia.org/wiki/Paul_Conrad" },
+    { title: "One flew over the cuckoo's nest", year: "1974", subject: "Nixon's resignation helicopter", citation_url: "https://www.nevadaappeal.com/news/2010/sep/05/pulitzer-winning-cartoonist-paul-conrad-dies-at-86/" },
+    { title: "We're Gonna' Make History, Hubert!!", year: "1968", subject: "LBJ + Humphrey riding a falling bomb", citation_url: "https://pophistorydig.com/topics/tag/paul-conrad-political-cartoons/" },
+    { title: "Reagan 'American Gothic'", year: "1986", subject: "Farm-crisis painting parody", citation_url: "https://pophistorydig.com/topics/tag/paul-conrad-political-cartoons/" },
+    { title: "Vietnam Moratorium — ghost soldiers over Washington", year: "1969", subject: "The dead indicting the living", citation_url: "https://www.encyclopedia.com/humanities/encyclopedias-almanacs-transcripts-and-maps/conrad-paul" },
+    { title: "Affixing Blame for Our Economic Problems", year: "1982", subject: "After Nast's ring of blame", citation_url: "https://spartacus-educational.com/ARTconrad.htm" },
+    { title: "Apollo 11 moon landing — mailbox on the Moon", year: "1969", subject: "Deadpan literalism", citation_url: "https://www.encyclopedia.com/humanities/encyclopedias-almanacs-transcripts-and-maps/conrad-paul" },
+    { title: "Sam Yorty as delusional", year: "1969", subject: "LA mayor's ambitions — sparked the Yorty v. Chandler libel suit", citation_url: "https://en.wikipedia.org/wiki/Paul_Conrad" }
+  ],
+
+  // Full standalone catalog for deeper reference (local reference tool).
+  catalog_note: "A fuller 38-record catalog (bio, all Pulitzers, LOC records, and the Huntington/Syracuse/Wichita State archive summaries) lives at ~/Projects/paul-conrad-cartoons — run `node server.js` and open http://localhost:9933."
+};

← 122888f Feature Conrad-style Filibuster Marathon ink cartoon on P24  ·  back to Crazy News Channel  ·  P24: add Paul Conrad style reference (Masters page + device dff6f9f →