{
  "id": "violet-hour-artist",
  "name": "Artist Page",
  "theme": "violet-hour",
  "category": "Profile & Social",
  "description": "An artist page built from the dates they actually played here, so the profile is a record of a relationship with the room rather than a press biography.",
  "layout": "A full-bleed portrait with the name overlaid in oversized caps, then a two-column split of an appearance log and a set of hard-shadowed recordings.",
  "modules": [
    {
      "key": "head",
      "name": "Artist head",
      "html": "\n<header class=\"ah\"><img src=\"{{ART crowd}}\" alt=\"{{ARTALT crowd}}\"><h1>Nkechi<br>Balogun</h1><span class=\"tc\">11 appearances since 2019</span></header>"
    },
    {
      "key": "bio",
      "name": "Short bio",
      "html": "\n<section class=\"bo\"><p>Dub techno, played long and slow, on a rig she specifies in her contract. Based in Glasgow. Does not take residencies, does not play festivals before dark, and will not play a room where the booth faces the floor.</p></section>"
    },
    {
      "key": "log",
      "name": "Appearance log",
      "html": "\n<section class=\"al\"><h2>Here</h2>\n<ol>\n  <li><span class=\"tc\">11 Jun 26</span><div><b>Main · 21:30 — 03:00</b><span>Five and a half hours. Ended on a filter.</span></div></li>\n  <li><span class=\"tc\">02 Feb 26</span><div><b>Main · 22:00 — 04:00</b><span>Opened for herself under another name.</span></div></li>\n  <li><span class=\"tc\">19 Sep 25</span><div><b>Basement · 23:00 — 02:00</b><span>Only Basement set. Reportedly hated it.</span></div></li>\n  <li><span class=\"tc\">14 Mar 25</span><div><b>Main · 21:00 — 03:30</b><span>The night the wall was finished.</span></div></li>\n  <li><span class=\"tc\">08 Nov 24</span><div><b>Main · 22:00 — 03:00</b><span>Power cut at 01:14, resumed at 01:31.</span></div></li>\n</ol></section>"
    },
    {
      "key": "recs",
      "name": "Recordings",
      "html": "\n<aside class=\"rc\"><h2>Recorded here</h2>\n<ul>\n  <li class=\"card\"><img src=\"{{ART speaker}}\" alt=\"{{ARTALT speaker}}\"><div><b>Late Room, February</b><span class=\"tc\">5h 58m</span></div></li>\n  <li class=\"card\"><img src=\"{{ART haze}}\" alt=\"{{ARTALT haze}}\"><div><b>Late Room, March 25</b><span class=\"tc\">6h 12m</span></div></li>\n  <li class=\"card\"><img src=\"{{ART neon}}\" alt=\"{{ARTALT neon}}\"><div><b>Power Cut Set</b><span class=\"tc\">4h 44m</span></div></li>\n</ul>\n<p class=\"k\">Recordings are posted with the artist's permission and taken down on request, no reason required.</p></aside>"
    }
  ],
  "moduleCount": 4,
  "reorderable": false,
  "meta": {
    "id": "violet-hour-artist",
    "model": "Claude Opus 5",
    "author": "Claude Code",
    "createdAt": "2026-09-01T23:48:49+09:00",
    "updatedAt": "2026-09-01T23:48:49+09:00",
    "version": "1.0.0",
    "isNew": false
  },
  "link": "/api/v1/designs/violet-hour-artist.json",
  "structure": "A full-bleed portrait with the name overlaid in oversized caps, then a two-column split of an appearance log and a set of hard-shadowed recordings.",
  "html": "<div class=\"dz dz-violet-hour-artist\" data-design=\"violet-hour-artist\" data-theme=\"violet-hour\">\n<section class=\"dz-mod\" data-mod=\"head\" aria-label=\"Artist head\">\n<header class=\"ah\"><img src=\"https://designlookbook.dev/assets/img/violet-hour-crowd.webp\" alt=\"Silhouetted hands raised against violet stage light\"><h1>Nkechi<br>Balogun</h1><span class=\"tc\">11 appearances since 2019</span></header></section><section class=\"dz-mod\" data-mod=\"bio\" aria-label=\"Short bio\">\n<section class=\"bo\"><p>Dub techno, played long and slow, on a rig she specifies in her contract. Based in Glasgow. Does not take residencies, does not play festivals before dark, and will not play a room where the booth faces the floor.</p></section></section><div class=\"split\"><section class=\"dz-mod\" data-mod=\"log\" aria-label=\"Appearance log\">\n<section class=\"al\"><h2>Here</h2>\n<ol>\n  <li><span class=\"tc\">11 Jun 26</span><div><b>Main · 21:30 — 03:00</b><span>Five and a half hours. Ended on a filter.</span></div></li>\n  <li><span class=\"tc\">02 Feb 26</span><div><b>Main · 22:00 — 04:00</b><span>Opened for herself under another name.</span></div></li>\n  <li><span class=\"tc\">19 Sep 25</span><div><b>Basement · 23:00 — 02:00</b><span>Only Basement set. Reportedly hated it.</span></div></li>\n  <li><span class=\"tc\">14 Mar 25</span><div><b>Main · 21:00 — 03:30</b><span>The night the wall was finished.</span></div></li>\n  <li><span class=\"tc\">08 Nov 24</span><div><b>Main · 22:00 — 03:00</b><span>Power cut at 01:14, resumed at 01:31.</span></div></li>\n</ol></section></section><section class=\"dz-mod\" data-mod=\"recs\" aria-label=\"Recordings\">\n<aside class=\"rc\"><h2>Recorded here</h2>\n<ul>\n  <li class=\"card\"><img src=\"https://designlookbook.dev/assets/img/violet-hour-speaker.webp\" alt=\"A stack of speaker cabinets lit from one side in violet\"><div><b>Late Room, February</b><span class=\"tc\">5h 58m</span></div></li>\n  <li class=\"card\"><img src=\"https://designlookbook.dev/assets/img/violet-hour-haze.webp\" alt=\"Violet and coral haze filling an empty frame\"><div><b>Late Room, March 25</b><span class=\"tc\">6h 12m</span></div></li>\n  <li class=\"card\"><img src=\"https://designlookbook.dev/assets/img/violet-hour-neon.webp\" alt=\"A blank neon tube glowing hot pink, curving against a dark wall\"><div><b>Power Cut Set</b><span class=\"tc\">4h 44m</span></div></li>\n</ul>\n<p class=\"k\">Recordings are posted with the artist's permission and taken down on request, no reason required.</p></aside></section></div>\n</div>",
  "css": "\n.dz-violet-hour-artist { background: var(--background); color: var(--foreground); font-family: var(--pv-body); padding: 0 0 30px; }\n.dz-violet-hour-artist .k { text-transform: uppercase; letter-spacing: .14em; font-size: 11px; font-weight: 700; color: var(--muted-foreground); }\n.dz-violet-hour-artist .ah { position: relative; }\n.dz-violet-hour-artist .ah img { width: 100%; height: 380px; object-fit: cover; display: block; filter: var(--img-filter); }\n.dz-violet-hour-artist h1 { font-family: var(--pv-display); text-transform: uppercase; font-weight: 700; letter-spacing: -.02em; font-size: 70px; line-height: .96; margin: 0; position: absolute; left: 28px; bottom: 54px; color: var(--primary-foreground); }\n.dz-violet-hour-artist .ah .tc { font-family: var(--pv-mono); font-size: 12.5px; background: var(--accent); color: var(--accent-foreground); padding: 4px 10px; border-radius: var(--pv-radius-sm); position: absolute; left: 28px; bottom: 20px; }\n.dz-violet-hour-artist .bo { padding: 26px 28px 0; }\n.dz-violet-hour-artist .bo p { margin: 0; font-size: 17px; line-height: 1.6; max-width: 62ch; }\n.dz-violet-hour-artist .split { display: grid; grid-template-columns: 1.3fr 1fr; gap: 34px; padding: 28px; }\n.dz-violet-hour-artist h2 { font-family: var(--pv-display); text-transform: uppercase; font-weight: 700; letter-spacing: -.02em; font-size: 24px; margin: 0 0 14px; }\n.dz-violet-hour-artist .al ol { list-style: none; margin: 0; padding: 0; }\n.dz-violet-hour-artist .al li { display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: start; padding: 14px 0; border-bottom: 2px solid var(--border); }\n.dz-violet-hour-artist .tc { font-family: var(--pv-mono); font-size: 12.5px; background: var(--accent); color: var(--accent-foreground); padding: 4px 10px; border-radius: var(--pv-radius-sm); }\n.dz-violet-hour-artist .al b { display: block; font-size: 15px; }\n.dz-violet-hour-artist .al span:not(.tc) { font-size: 13px; color: var(--muted-foreground); }\n.dz-violet-hour-artist .rc ul { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 12px; }\n.dz-violet-hour-artist .card { display: grid; grid-template-columns: 84px 1fr; gap: 14px; align-items: center; background: var(--card); border-radius: var(--pv-radius-lg); padding: 10px; border: 2px solid var(--foreground); box-shadow: 5px 5px 0 var(--foreground); }\n.dz-violet-hour-artist .card img { width: 84px; height: 64px; object-fit: cover; display: block; filter: var(--img-filter); border-radius: var(--pv-radius-sm); }\n.dz-violet-hour-artist .card b { display: block; font-size: 14px; margin-bottom: 6px; }\n",
  "requiredTheme": "/api/v1/themes/violet-hour.json",
  "googleFontsHref": "https://fonts.googleapis.com/css2?family=Unbounded:wght@400;500;600;700&family=Hanken+Grotesk:wght@400;500;600;700&family=Red+Hat+Mono:wght@400;500;600;700&display=swap"
}