{
  "id": "airmail-desk-post",
  "name": "The Post",
  "theme": "airmail-desk",
  "category": "App Shell",
  "description": "A correspondence inbox where every item is an envelope panel with its address block in the corner, so sender, recipient and date are read before the subject.",
  "layout": "A 220px ruled rail beside a single column of 1.62:1 envelope panels; the top panel carries the airmail stripe down its left edge.",
  "modules": [
    {
      "key": "rail",
      "name": "Desk rail",
      "html": "\n<nav class=\"dr\"><span class=\"brand\">Airmail Desk</span>\n<span class=\"k\">Post</span><ul><li class=\"on\"><a href=\"#\">Inbox <b>9</b></a></li><li><a href=\"#\">Sent</a></li><li><a href=\"#\">Drafts <b>2</b></a></li><li><a href=\"#\">Archive</a></li></ul>\n<span class=\"k\">Correspondents</span><ul><li><a href=\"#\">Kilcarn Society</a></li><li><a href=\"#\">H. Vestergaard</a></li><li><a href=\"#\">The Bindery</a></li></ul>\n<button type=\"button\" class=\"wr\">Write</button></nav>"
    },
    {
      "key": "letters",
      "name": "Envelope list",
      "html": "\n<section class=\"el\">\n  <article class=\"env stripe\"><span class=\"sm\"></span><div class=\"ab\"><span>From H. Vestergaard, Bergen</span><span>To K. Oyelaran</span><span>11 June 2026 · 09:14</span><span>Ref KO-2026-114</span></div><div class=\"bd\"><h2 class=\"new\">The plate you asked about</h2><p>I found it. It is not the 1974 sheet at all — it is a duplicate that went to Bergen in 1988 and was never accessioned properly. The label is in Ferreira's hand.</p></div></article>\n  <article class=\"env\"><span class=\"sm\"></span><div class=\"ab\"><span>From Kilcarn Society</span><span>To Members</span><span>09 June 2026 · 17:02</span><span>Ref KS-2026-041</span></div><div class=\"bd\"><h2>June bulletin, and a correction</h2><p>The date of the summer meeting in last month's bulletin was wrong. It is the 27th, not the 17th, and the venue is unchanged.</p></div></article>\n  <article class=\"env\"><span class=\"sm\"></span><div class=\"ab\"><span>From The Bindery</span><span>To K. Oyelaran</span><span>04 June 2026 · 11:40</span><span>Ref TB-4417</span></div><div class=\"bd\"><h2>Your two volumes are ready</h2><p>Quarter-bound in the green you chose, with the original boards retained. Collection any weekday before five.</p></div></article>\n</section>"
    },
    {
      "key": "stack",
      "name": "Older stack",
      "html": "\n<footer class=\"os\"><span class=\"k\">Older</span><ol><li><span class=\"ad\">R. Ferreira · 28 May</span><span class=\"sj\">Re: the Torridon sheets</span></li><li><span class=\"ad\">Kilcarn Society · 14 May</span><span class=\"sj\">May bulletin</span></li><li><span class=\"ad\">The Bindery · 02 May</span><span class=\"sj\">Estimate for two volumes</span></li><li><span class=\"ad\">H. Vestergaard · 19 Apr</span><span class=\"sj\">Bergen duplicates, a question</span></li></ol></footer>"
    }
  ],
  "moduleCount": 3,
  "reorderable": false,
  "meta": {
    "id": "airmail-desk-post",
    "model": "Claude Opus 5",
    "author": "Claude Code",
    "createdAt": "2026-09-02T00:08:33+09:00",
    "updatedAt": "2026-09-02T00:08:33+09:00",
    "version": "1.0.0",
    "isNew": false
  },
  "link": "/api/v1/designs/airmail-desk-post.json",
  "structure": "A 220px ruled rail beside a single column of 1.62:1 envelope panels; the top panel carries the airmail stripe down its left edge.",
  "html": "<div class=\"dz dz-airmail-desk-post\" data-design=\"airmail-desk-post\" data-theme=\"airmail-desk\">\n<section class=\"dz-mod\" data-mod=\"rail\" aria-label=\"Desk rail\">\n<nav class=\"dr\"><span class=\"brand\">Airmail Desk</span>\n<span class=\"k\">Post</span><ul><li class=\"on\"><a href=\"#\">Inbox <b>9</b></a></li><li><a href=\"#\">Sent</a></li><li><a href=\"#\">Drafts <b>2</b></a></li><li><a href=\"#\">Archive</a></li></ul>\n<span class=\"k\">Correspondents</span><ul><li><a href=\"#\">Kilcarn Society</a></li><li><a href=\"#\">H. Vestergaard</a></li><li><a href=\"#\">The Bindery</a></li></ul>\n<button type=\"button\" class=\"wr\">Write</button></nav></section><div class=\"main\"><section class=\"dz-mod\" data-mod=\"letters\" aria-label=\"Envelope list\">\n<section class=\"el\">\n  <article class=\"env stripe\"><span class=\"sm\"></span><div class=\"ab\"><span>From H. Vestergaard, Bergen</span><span>To K. Oyelaran</span><span>11 June 2026 · 09:14</span><span>Ref KO-2026-114</span></div><div class=\"bd\"><h2 class=\"new\">The plate you asked about</h2><p>I found it. It is not the 1974 sheet at all — it is a duplicate that went to Bergen in 1988 and was never accessioned properly. The label is in Ferreira's hand.</p></div></article>\n  <article class=\"env\"><span class=\"sm\"></span><div class=\"ab\"><span>From Kilcarn Society</span><span>To Members</span><span>09 June 2026 · 17:02</span><span>Ref KS-2026-041</span></div><div class=\"bd\"><h2>June bulletin, and a correction</h2><p>The date of the summer meeting in last month's bulletin was wrong. It is the 27th, not the 17th, and the venue is unchanged.</p></div></article>\n  <article class=\"env\"><span class=\"sm\"></span><div class=\"ab\"><span>From The Bindery</span><span>To K. Oyelaran</span><span>04 June 2026 · 11:40</span><span>Ref TB-4417</span></div><div class=\"bd\"><h2>Your two volumes are ready</h2><p>Quarter-bound in the green you chose, with the original boards retained. Collection any weekday before five.</p></div></article>\n</section></section><section class=\"dz-mod\" data-mod=\"stack\" aria-label=\"Older stack\">\n<footer class=\"os\"><span class=\"k\">Older</span><ol><li><span class=\"ad\">R. Ferreira · 28 May</span><span class=\"sj\">Re: the Torridon sheets</span></li><li><span class=\"ad\">Kilcarn Society · 14 May</span><span class=\"sj\">May bulletin</span></li><li><span class=\"ad\">The Bindery · 02 May</span><span class=\"sj\">Estimate for two volumes</span></li><li><span class=\"ad\">H. Vestergaard · 19 Apr</span><span class=\"sj\">Bergen duplicates, a question</span></li></ol></footer></section></div>\n</div>",
  "css": "\n.dz-airmail-desk-post { background: var(--background); color: var(--foreground); font-family: var(--pv-body); display: grid; grid-template-columns: 220px 1fr; min-height: 620px; }\n.dz-airmail-desk-post .k { text-transform: uppercase; letter-spacing: .14em; font-size: 10.5px; font-weight: 600; color: var(--muted-foreground); display: block; }\n.dz-airmail-desk-post .dr { border-right: 1px solid var(--border); padding: 24px 20px; }\n.dz-airmail-desk-post .brand { font-family: var(--pv-display); font-weight: 600; letter-spacing: -.01em; font-size: 22px; display: block; margin-bottom: 24px; }\n.dz-airmail-desk-post .dr ul { list-style: none; margin: 8px 0 22px; padding: 0; }\n.dz-airmail-desk-post .dr a { display: flex; justify-content: space-between; padding: 6px 0; text-decoration: none; color: var(--foreground); font-size: 14px; }\n.dz-airmail-desk-post .dr li.on a { border-bottom: 2px solid var(--accent); padding-bottom: 1px; }\n.dz-airmail-desk-post .dr b { font-family: var(--pv-mono); font-size: 12px; color: var(--muted-foreground); }\n.dz-airmail-desk-post .wr { width: 100%; margin-top: 8px; font: inherit; font-size: 14px; background: var(--primary); color: var(--primary-foreground); border: 0; padding: 12px; border-radius: var(--pv-radius-sm); cursor: pointer; }\n.dz-airmail-desk-post .main { padding: 24px 26px; }\n.dz-airmail-desk-post .env { position: relative; border: 1px solid var(--border); border-radius: var(--pv-radius-sm); aspect-ratio: 1.62; display: grid; grid-template-rows: auto 1fr; padding: 20px 22px; margin-bottom: 16px; overflow: hidden; }\n.dz-airmail-desk-post .env.stripe::before { content: \"\"; position: absolute; left: 0; top: 0; bottom: 0; width: 8px; background: repeating-linear-gradient(45deg,\n  var(--primary) 0 8px, transparent 8px 16px, var(--accent) 16px 24px, transparent 24px 32px); }\n.dz-airmail-desk-post .sm { position: absolute; right: 20px; top: 20px; width: 46px; height: 54px; border: 1px dashed var(--border); border-radius: 2px; }\n.dz-airmail-desk-post .ab { font-family: var(--pv-mono); font-size: 12.5px; letter-spacing: .03em; line-height: 1.42; color: var(--muted-foreground); display: grid; gap: 1px; margin-bottom: 14px; }\n.dz-airmail-desk-post .bd h2 { font-family: var(--pv-display); font-weight: 600; letter-spacing: -.01em; font-size: 24px; margin: 0 0 8px; }\n.dz-airmail-desk-post .bd h2.new { border-bottom: 2px solid var(--accent); padding-bottom: 1px; display: inline-block; }\n.dz-airmail-desk-post .bd p { margin: 0; font-size: 15px; line-height: 1.64; max-width: 62ch; }\n.dz-airmail-desk-post .os { border-top: 1px solid var(--border); padding-top: 16px; }\n.dz-airmail-desk-post .os ol { list-style: none; margin: 10px 0 0; padding: 0; }\n.dz-airmail-desk-post .os li { display: grid; grid-template-columns: 220px 1fr; gap: 18px; padding: 9px 0; border-bottom: 1px solid var(--border); font-size: 14px; }\n.dz-airmail-desk-post .ad { font-family: var(--pv-mono); font-size: 12.5px; letter-spacing: .03em; line-height: 1.42; color: var(--muted-foreground); }\n@media (prefers-reduced-motion: reduce) { .dz-airmail-desk-post *, .dz-airmail-desk-post *::before, .dz-airmail-desk-post *::after { transition-duration: 1ms !important; animation-duration: 1ms !important; } }\n",
  "requiredTheme": "/api/v1/themes/airmail-desk.json",
  "googleFontsHref": "https://fonts.googleapis.com/css2?family=Gabarito:wght@400;500;600;700&family=Urbanist:wght@400;500;600;700&family=Kode+Mono:wght@400;500;600;700&display=swap"
}