{
  "id": "shortwave-desk-recordings",
  "name": "Recordings",
  "theme": "shortwave-desk",
  "category": "Search & Browse",
  "description": "A recordings archive where each row carries its own signal trace, so the useful ones are picked out by the shape of the signal rather than by the filename.",
  "layout": "A filter strip over filled panel rows, each 76px, holding a mono identifier, an inline 40px trace and duration, with peaks barred in magenta.",
  "modules": [
    {
      "key": "filters",
      "name": "Filter strip",
      "html": "\n<header class=\"fs\"><h1>Recordings</h1><label class=\"q\"><input type=\"search\" placeholder=\"Frequency, date or note\"></label><div class=\"chips\"><button type=\"button\" class=\"on\">All</button><button type=\"button\">Peaks only</button><button type=\"button\">Annotated</button><button type=\"button\">Unheard</button></div><span class=\"rd\">1,204 files · 41 GB</span></header>"
    },
    {
      "key": "rows",
      "name": "Recording rows",
      "html": "\n<ol class=\"rr\">\n  <li class=\"peak\"><div class=\"id\"><b class=\"n\">12,065 kHz</b><span class=\"d\">11 Jun · 09:00 · Antenna B</span></div><div class=\"tr\"><i style=\"--h:20%\"></i><i style=\"--h:34%\"></i><i style=\"--h:41%\"></i><i style=\"--h:56%\"></i><i style=\"--h:72%\"></i><i class=\"p\" style=\"--h:100%\"></i><i style=\"--h:66%\"></i><i style=\"--h:48%\"></i><i style=\"--h:38%\"></i><i style=\"--h:30%\"></i><i style=\"--h:24%\"></i><i style=\"--h:22%\"></i></div><span class=\"rd\">30:00</span><span class=\"rd\">+18 dB</span></li>\n  <li><div class=\"id\"><b class=\"n\">9,410 kHz</b><span class=\"d\">11 Jun · 08:30 · Antenna B</span></div><div class=\"tr\"><i style=\"--h:44%\"></i><i style=\"--h:48%\"></i><i style=\"--h:46%\"></i><i style=\"--h:51%\"></i><i style=\"--h:49%\"></i><i style=\"--h:52%\"></i><i style=\"--h:47%\"></i><i style=\"--h:50%\"></i><i style=\"--h:45%\"></i><i style=\"--h:48%\"></i><i style=\"--h:44%\"></i><i style=\"--h:46%\"></i></div><span class=\"rd\">60:00</span><span class=\"rd\">S7</span></li>\n  <li class=\"peak\"><div class=\"id\"><b class=\"n\">7,205 kHz</b><span class=\"d\">10 Jun · 19:00 · Antenna A</span></div><div class=\"tr\"><i style=\"--h:18%\"></i><i style=\"--h:22%\"></i><i style=\"--h:26%\"></i><i style=\"--h:31%\"></i><i class=\"p\" style=\"--h:94%\"></i><i style=\"--h:44%\"></i><i style=\"--h:28%\"></i><i style=\"--h:24%\"></i><i style=\"--h:21%\"></i><i style=\"--h:19%\"></i><i style=\"--h:18%\"></i><i style=\"--h:17%\"></i></div><span class=\"rd\">45:00</span><span class=\"rd\">+22 dB</span></li>\n  <li class=\"unheard\"><div class=\"id\"><b class=\"n\">15,140 kHz</b><span class=\"d\">10 Jun · 11:00 · Antenna C</span></div><div class=\"tr\"><i style=\"--h:31%\"></i><i style=\"--h:29%\"></i><i style=\"--h:34%\"></i><i style=\"--h:30%\"></i><i style=\"--h:28%\"></i><i style=\"--h:33%\"></i><i style=\"--h:31%\"></i><i style=\"--h:29%\"></i><i style=\"--h:27%\"></i><i style=\"--h:30%\"></i><i style=\"--h:32%\"></i><i style=\"--h:28%\"></i></div><span class=\"rd\">45:00</span><span class=\"rd\">unheard</span></li>\n  <li><div class=\"id\"><b class=\"n\">Band sweep</b><span class=\"d\">10 Jun · 12:00 · Antenna B</span></div><div class=\"tr\"><i style=\"--h:14%\"></i><i style=\"--h:26%\"></i><i style=\"--h:52%\"></i><i style=\"--h:38%\"></i><i style=\"--h:61%\"></i><i style=\"--h:44%\"></i><i style=\"--h:71%\"></i><i style=\"--h:39%\"></i><i style=\"--h:55%\"></i><i style=\"--h:33%\"></i><i style=\"--h:47%\"></i><i style=\"--h:29%\"></i></div><span class=\"rd\">18:40</span><span class=\"rd\">sweep</span></li>\n</ol>"
    },
    {
      "key": "foot",
      "name": "Retention note",
      "html": "\n<footer class=\"rf\"><p><span class=\"k\">Retention</span>Recordings are kept 30 days unless annotated. Annotating one keeps it indefinitely, which is why there are 41 GB and not 400.</p></footer>"
    }
  ],
  "moduleCount": 3,
  "reorderable": true,
  "meta": {
    "id": "shortwave-desk-recordings",
    "model": "Claude Opus 5",
    "author": "Claude Code",
    "createdAt": "2026-09-01T23:54:36+09:00",
    "updatedAt": "2026-09-01T23:54:36+09:00",
    "version": "1.0.0",
    "isNew": false
  },
  "link": "/api/v1/designs/shortwave-desk-recordings.json",
  "structure": "A filter strip over filled panel rows, each 76px, holding a mono identifier, an inline 40px trace and duration, with peaks barred in magenta.",
  "html": "<div class=\"dz dz-shortwave-desk-recordings\" data-design=\"shortwave-desk-recordings\" data-theme=\"shortwave-desk\">\n<section class=\"dz-mod\" data-mod=\"filters\" aria-label=\"Filter strip\">\n<header class=\"fs\"><h1>Recordings</h1><label class=\"q\"><input type=\"search\" placeholder=\"Frequency, date or note\"></label><div class=\"chips\"><button type=\"button\" class=\"on\">All</button><button type=\"button\">Peaks only</button><button type=\"button\">Annotated</button><button type=\"button\">Unheard</button></div><span class=\"rd\">1,204 files · 41 GB</span></header></section>\n<section class=\"dz-mod\" data-mod=\"rows\" aria-label=\"Recording rows\">\n<ol class=\"rr\">\n  <li class=\"peak\"><div class=\"id\"><b class=\"n\">12,065 kHz</b><span class=\"d\">11 Jun · 09:00 · Antenna B</span></div><div class=\"tr\"><i style=\"--h:20%\"></i><i style=\"--h:34%\"></i><i style=\"--h:41%\"></i><i style=\"--h:56%\"></i><i style=\"--h:72%\"></i><i class=\"p\" style=\"--h:100%\"></i><i style=\"--h:66%\"></i><i style=\"--h:48%\"></i><i style=\"--h:38%\"></i><i style=\"--h:30%\"></i><i style=\"--h:24%\"></i><i style=\"--h:22%\"></i></div><span class=\"rd\">30:00</span><span class=\"rd\">+18 dB</span></li>\n  <li><div class=\"id\"><b class=\"n\">9,410 kHz</b><span class=\"d\">11 Jun · 08:30 · Antenna B</span></div><div class=\"tr\"><i style=\"--h:44%\"></i><i style=\"--h:48%\"></i><i style=\"--h:46%\"></i><i style=\"--h:51%\"></i><i style=\"--h:49%\"></i><i style=\"--h:52%\"></i><i style=\"--h:47%\"></i><i style=\"--h:50%\"></i><i style=\"--h:45%\"></i><i style=\"--h:48%\"></i><i style=\"--h:44%\"></i><i style=\"--h:46%\"></i></div><span class=\"rd\">60:00</span><span class=\"rd\">S7</span></li>\n  <li class=\"peak\"><div class=\"id\"><b class=\"n\">7,205 kHz</b><span class=\"d\">10 Jun · 19:00 · Antenna A</span></div><div class=\"tr\"><i style=\"--h:18%\"></i><i style=\"--h:22%\"></i><i style=\"--h:26%\"></i><i style=\"--h:31%\"></i><i class=\"p\" style=\"--h:94%\"></i><i style=\"--h:44%\"></i><i style=\"--h:28%\"></i><i style=\"--h:24%\"></i><i style=\"--h:21%\"></i><i style=\"--h:19%\"></i><i style=\"--h:18%\"></i><i style=\"--h:17%\"></i></div><span class=\"rd\">45:00</span><span class=\"rd\">+22 dB</span></li>\n  <li class=\"unheard\"><div class=\"id\"><b class=\"n\">15,140 kHz</b><span class=\"d\">10 Jun · 11:00 · Antenna C</span></div><div class=\"tr\"><i style=\"--h:31%\"></i><i style=\"--h:29%\"></i><i style=\"--h:34%\"></i><i style=\"--h:30%\"></i><i style=\"--h:28%\"></i><i style=\"--h:33%\"></i><i style=\"--h:31%\"></i><i style=\"--h:29%\"></i><i style=\"--h:27%\"></i><i style=\"--h:30%\"></i><i style=\"--h:32%\"></i><i style=\"--h:28%\"></i></div><span class=\"rd\">45:00</span><span class=\"rd\">unheard</span></li>\n  <li><div class=\"id\"><b class=\"n\">Band sweep</b><span class=\"d\">10 Jun · 12:00 · Antenna B</span></div><div class=\"tr\"><i style=\"--h:14%\"></i><i style=\"--h:26%\"></i><i style=\"--h:52%\"></i><i style=\"--h:38%\"></i><i style=\"--h:61%\"></i><i style=\"--h:44%\"></i><i style=\"--h:71%\"></i><i style=\"--h:39%\"></i><i style=\"--h:55%\"></i><i style=\"--h:33%\"></i><i style=\"--h:47%\"></i><i style=\"--h:29%\"></i></div><span class=\"rd\">18:40</span><span class=\"rd\">sweep</span></li>\n</ol></section>\n<section class=\"dz-mod\" data-mod=\"foot\" aria-label=\"Retention note\">\n<footer class=\"rf\"><p><span class=\"k\">Retention</span>Recordings are kept 30 days unless annotated. Annotating one keeps it indefinitely, which is why there are 41 GB and not 400.</p></footer></section>\n</div>",
  "css": "\n.dz-shortwave-desk-recordings { background: var(--background); color: var(--foreground); font-family: var(--pv-body); padding: 24px 26px; }\n.dz-shortwave-desk-recordings .k { text-transform: uppercase; letter-spacing: .16em; font-size: 10px; font-weight: 700; color: var(--muted-foreground); display: block; }\n.dz-shortwave-desk-recordings .rd { font-family: var(--pv-mono); font-size: 12px; letter-spacing: .01em; background: var(--secondary); padding: 5px 9px; border-radius: var(--pv-radius-sm); display: inline-block; }\n.dz-shortwave-desk-recordings .n { font-family: var(--pv-mono); font-variant-numeric: tabular-nums; }\n.dz-shortwave-desk-recordings .fs { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; }\n.dz-shortwave-desk-recordings h1 { font-family: var(--pv-display); font-weight: 700; letter-spacing: -.02em; font-size: 27px; margin: 0; }\n.dz-shortwave-desk-recordings .q input { font: inherit; font-size: 13px; padding: 10px 14px; background: var(--card); border: 0; border-radius: var(--pv-radius-sm); color: var(--foreground); width: 240px; }\n.dz-shortwave-desk-recordings .chips { display: flex; gap: 6px; }\n.dz-shortwave-desk-recordings .chips button { font: inherit; font-size: 12.5px; padding: 8px 14px; background: var(--card); color: var(--muted-foreground); border: 0; border-radius: var(--pv-radius-sm); cursor: pointer; }\n.dz-shortwave-desk-recordings .chips button.on { background: var(--primary); color: var(--primary-foreground); }\n.dz-shortwave-desk-recordings .fs .rd { margin-left: auto; }\n.dz-shortwave-desk-recordings .rr { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }\n.dz-shortwave-desk-recordings .rr li { display: grid; grid-template-columns: 220px 1fr auto auto; gap: 18px; align-items: center; background: var(--card); border-radius: var(--pv-radius-lg); padding: 18px; padding: 14px 18px; }\n.dz-shortwave-desk-recordings .rr .peak { border-left: 3px solid var(--accent); }\n.dz-shortwave-desk-recordings .id b { display: block; font-size: 15px; }\n.dz-shortwave-desk-recordings .d { font-size: 11.5px; color: var(--muted-foreground); }\n.dz-shortwave-desk-recordings .tr { display: flex; gap: 3px; align-items: flex-end; height: 40px; }\n.dz-shortwave-desk-recordings .tr i { flex: 1; height: var(--h); background: color-mix(in oklab, var(--primary) 40%, var(--secondary)); border-radius: 2px 2px 0 0; display: block; }\n.dz-shortwave-desk-recordings .tr .p { background: var(--accent); }\n.dz-shortwave-desk-recordings .unheard .id b { color: var(--primary); }\n.dz-shortwave-desk-recordings .rf { margin-top: 20px; padding-top: 14px; border-top: 1px solid var(--border); }\n.dz-shortwave-desk-recordings .rf p { margin: 0; font-size: 12.5px; color: var(--muted-foreground); line-height: 1.6; max-width: 66ch; }\n.dz-shortwave-desk-recordings .rf .k { margin-bottom: 4px; }\n",
  "requiredTheme": "/api/v1/themes/shortwave-desk.json",
  "googleFontsHref": "https://fonts.googleapis.com/css2?family=Chivo:wght@400;500;600;700&family=Rubik:wght@400;500;600;700&family=Reddit+Mono:wght@400;500;600;700&display=swap"
}