Files
code_of_conquest_dnd/mockups/Main Window + Wireframes.dc.html

149 lines
17 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="./support.js"></script>
</head>
<body>
<x-dc>
<helmet data-dc-atomics>
<meta name="design_doc_mode" content="canvas">
<link href="https://fonts.googleapis.com/css2?family=Architects+Daughter&display=swap" rel="stylesheet">
<style>
body{margin:0;background:#efece6;font-family:system-ui,sans-serif}
a{color:#8f3a34}a:hover{color:#6f2b26}
.dv-turn{padding:44px 48px 40px;border-bottom:1px solid rgba(0,0,0,.08);scroll-margin-top:16px}
.dv-thd{display:flex;align-items:baseline;gap:10px;margin:0 0 6px}
.dv-tid{font:600 10px ui-monospace,Menlo,monospace;padding:3px 7px;background:#1a1a1a;color:#fff;border-radius:4px;text-decoration:none}
.dv-tname{font:600 14px/1.3 system-ui,sans-serif;color:#1a1a1a}
.dv-sub{margin:0 0 28px;font:13px/1.55 system-ui,sans-serif;color:rgba(0,0,0,.52);max-width:820px}
.dv-opts{display:flex;flex-wrap:wrap;gap:44px;align-items:flex-start}
.dv-opt{flex:none;display:flex;flex-direction:column;gap:12px;scroll-margin-top:16px}
.dv-oid{font:600 10.5px ui-monospace,Menlo,monospace;padding:3px 7px;background:rgba(0,0,0,.08);color:#1a1a1a;border-radius:5px;text-decoration:none}
.dv-olabel{display:flex;align-items:baseline;gap:10px;font:400 12.5px/1.45 system-ui,sans-serif;color:rgba(0,0,0,.58);max-width:900px}
.dv-card{background:#0f0d0b;border:1px solid rgba(0,0,0,.35);border-radius:10px;box-shadow:0 6px 22px rgba(0,0,0,.18);overflow:hidden}
.dv-opt:target .dv-oid{background:#8f3a34;color:#fff}
.dv-next{margin:30px 0 0;font:12.5px/1.7 system-ui,sans-serif;color:rgba(0,0,0,.5);max-width:860px}
</style>
</helmet>
<section class="dv-turn" id="t2">
<div class="dv-thd"><a class="dv-tid" href="#t2">2</a><span class="dv-tname">1b built out — full 1920×1080</span></div>
<p class="dv-sub"><a class="dv-oid" href="#1b">1b</a> at real scale. Added a <strong>slide-in system dock</strong> on the right edge of the world (Inventory / Character / Quests / Map / Spellbook / Party) — click the tab to slide it in and out. The bottom row is now labeled as <strong>quick-select consumables</strong> pulled from your inventory, with an <strong>End Turn</strong> control for the turn-based loop, and the narration book gains a free-text action line for that tabletop feel.</p>
<div class="dv-opts">
<div class="dv-opt" id="2a">
<div class="dv-olabel"><a class="dv-oid" href="#2a">2a</a><span><strong>The full main window.</strong> Try the dock tab (right edge of the world). Everything is placeholder art — real isometric render, item icons and portraits drop into the marked slots.</span></div>
<div class="dv-card" style="width:1920px;height:1080px;position:relative;display:flex">
<!-- ================= LEFT: WORLD ================= -->
<div style="width:1180px;height:1080px;position:relative;overflow:hidden;background:repeating-linear-gradient(135deg,#26221c 0 16px,#221e18 16px 32px)">
<div style="position:absolute;inset:0;background:radial-gradient(120% 80% at 50% 40%,rgba(0,0,0,0) 40%,rgba(0,0,0,.55) 100%)"></div>
<div style="position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:#6b6152;font:16px ui-monospace,monospace;letter-spacing:.18em">ISOMETRIC WORLD VIEW<span style="font:18px 'Architects Daughter',cursive;letter-spacing:.02em;color:#8a7f6c">party &amp; enemies on the tile grid · real render here</span></div>
<!-- turn order -->
<div style="position:absolute;top:28px;left:28px;background:rgba(18,15,12,.82);border:1px solid rgba(200,180,140,.2);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:11px">
<div style="font:12px ui-monospace,monospace;letter-spacing:.16em;color:#9a8f78">TURN ORDER</div>
<div style="display:flex;gap:12px">
<div style="position:relative"><div style="width:60px;height:60px;border-radius:50%;border:3px solid #a9843f;background:#3a332a;color:#c9bda3;font:600 15px system-ui;display:flex;align-items:center;justify-content:center;box-shadow:0 0 14px rgba(169,132,63,.5)">EL</div><div style="position:absolute;top:-4px;right:-4px;width:20px;height:20px;border-radius:50%;background:#a9843f;color:#1a1512;font:700 10px ui-monospace;display:flex;align-items:center;justify-content:center">17</div></div>
<div style="position:relative"><div style="width:60px;height:60px;border-radius:50%;border:2px solid #5a5348;background:#2a251f;color:#9a8f78;font:600 15px system-ui;display:flex;align-items:center;justify-content:center">DW</div><div style="position:absolute;top:-4px;right:-4px;width:20px;height:20px;border-radius:50%;background:#3a352e;color:#c9bda3;font:700 10px ui-monospace;display:flex;align-items:center;justify-content:center">12</div></div>
<div style="position:relative"><div style="width:60px;height:60px;border-radius:50%;border:2px solid #5a5348;background:#2a251f;color:#9a8f78;font:600 15px system-ui;display:flex;align-items:center;justify-content:center">HU</div><div style="position:absolute;top:-4px;right:-4px;width:20px;height:20px;border-radius:50%;background:#3a352e;color:#c9bda3;font:700 10px ui-monospace;display:flex;align-items:center;justify-content:center">09</div></div>
<div style="position:relative"><div style="width:60px;height:60px;border-radius:50%;border:2px dashed #6b3b38;background:#2a1c1a;color:#b8524a;font:600 20px system-ui;display:flex;align-items:center;justify-content:center"></div></div>
</div>
</div>
<!-- minimap -->
<div style="position:absolute;top:28px;right:28px;width:200px;height:200px;background:rgba(18,15,12,.82);border:1px solid rgba(200,180,140,.24);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#7a7060;font:12px ui-monospace,monospace;letter-spacing:.14em">MINIMAP</div>
<!-- slide-in system dock -->
<div style="position:absolute;right:44px;top:50%;transition:transform .32s cubic-bezier(.4,0,.2,1),opacity .32s;transform:{{ dockShift }};opacity:{{ dockOpacity }};display:flex;flex-direction:column;gap:10px;background:rgba(14,11,9,.9);border:1px solid #a9843f;border-radius:12px;padding:12px">
<div style="display:flex;align-items:center;gap:12px"><div style="width:44px;height:44px;border:1px solid #6b6152;border-radius:8px;background:rgba(40,34,28,.75);display:flex;align-items:center;justify-content:center;font:700 15px ui-monospace;color:#c9bda3">I</div><span style="font:600 14px system-ui;color:#c9bda3;letter-spacing:.04em">Inventory</span></div>
<div style="display:flex;align-items:center;gap:12px"><div style="width:44px;height:44px;border:1px solid #6b6152;border-radius:8px;background:rgba(40,34,28,.75);display:flex;align-items:center;justify-content:center;font:700 15px ui-monospace;color:#c9bda3">C</div><span style="font:600 14px system-ui;color:#c9bda3;letter-spacing:.04em">Character</span></div>
<div style="display:flex;align-items:center;gap:12px"><div style="width:44px;height:44px;border:1px solid #6b6152;border-radius:8px;background:rgba(40,34,28,.75);display:flex;align-items:center;justify-content:center;font:700 15px ui-monospace;color:#c9bda3">J</div><span style="font:600 14px system-ui;color:#c9bda3;letter-spacing:.04em">Quest Log</span></div>
<div style="display:flex;align-items:center;gap:12px"><div style="width:44px;height:44px;border:1px solid #6b6152;border-radius:8px;background:rgba(40,34,28,.75);display:flex;align-items:center;justify-content:center;font:700 15px ui-monospace;color:#c9bda3">K</div><span style="font:600 14px system-ui;color:#c9bda3;letter-spacing:.04em">Spellbook</span></div>
<div style="display:flex;align-items:center;gap:12px"><div style="width:44px;height:44px;border:1px solid #6b6152;border-radius:8px;background:rgba(40,34,28,.75);display:flex;align-items:center;justify-content:center;font:700 15px ui-monospace;color:#c9bda3">M</div><span style="font:600 14px system-ui;color:#c9bda3;letter-spacing:.04em">World Map</span></div>
<div style="display:flex;align-items:center;gap:12px"><div style="width:44px;height:44px;border:1px solid #6b6152;border-radius:8px;background:rgba(40,34,28,.75);display:flex;align-items:center;justify-content:center;font:700 15px ui-monospace;color:#c9bda3">P</div><span style="font:600 14px system-ui;color:#c9bda3;letter-spacing:.04em">Party</span></div>
</div>
<!-- dock handle -->
<div onClick="{{ toggleDock }}" style="position:absolute;right:8px;top:50%;transform:translateY(-50%);width:26px;height:104px;background:rgba(14,11,9,.92);border:1px solid #a9843f;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#a9843f;font:700 22px ui-monospace">{{ handleArrow }}</div>
<!-- bottom command bar -->
<div style="position:absolute;left:0;right:0;bottom:0;height:150px;background:linear-gradient(180deg,rgba(10,8,6,0),rgba(10,8,6,.94) 40px);display:flex;align-items:flex-end;gap:24px;padding:0 28px 22px;box-sizing:border-box">
<!-- stats -->
<div style="display:flex;flex-direction:column;gap:8px;width:230px">
<div><div style="font:11px ui-monospace,monospace;color:#caa39c;margin-bottom:3px">HP 42 / 60</div><div style="height:12px;border-radius:6px;background:#2a251f;border:1px solid #4a4238;overflow:hidden"><div style="width:70%;height:100%;background:linear-gradient(90deg,#b8524a,#8f3a34)"></div></div></div>
<div><div style="font:11px ui-monospace,monospace;color:#9caccb;margin-bottom:3px">MP 18 / 30</div><div style="height:12px;border-radius:6px;background:#2a251f;border:1px solid #4a4238;overflow:hidden"><div style="width:60%;height:100%;background:linear-gradient(90deg,#4f7ab8,#243f6f)"></div></div></div>
<div style="display:flex;align-items:center;gap:8px;margin-top:2px"><span style="font:11px ui-monospace,monospace;color:#c9a86a">GOLD</span><span style="font:600 17px ui-monospace,monospace;color:#d9b46a">◈ 1,240 gp</span></div>
</div>
<!-- quick-select consumables -->
<div style="flex:1;display:flex;flex-direction:column;align-items:center;gap:7px">
<div style="font:11px 'Architects Daughter',cursive;letter-spacing:.06em;color:#8a7f6c">QUICK-SELECT · consumables from inventory</div>
<div style="display:flex;gap:9px">
<div style="width:62px;height:62px;border:1px solid #6b6152;border-radius:8px;background:rgba(40,34,28,.72);position:relative;display:flex;align-items:flex-end;justify-content:center;padding-bottom:5px;font:9px system-ui;color:#9a8f78"><span style="position:absolute;top:3px;left:6px;font:10px ui-monospace,monospace;color:#a9843f">1</span>Salve</div>
<div style="width:62px;height:62px;border:1px solid #6b6152;border-radius:8px;background:rgba(40,34,28,.72);position:relative;display:flex;align-items:flex-end;justify-content:center;padding-bottom:5px;font:9px system-ui;color:#9a8f78"><span style="position:absolute;top:3px;left:6px;font:10px ui-monospace,monospace;color:#a9843f">2</span>Draught</div>
<div style="width:62px;height:62px;border:1px solid #6b6152;border-radius:8px;background:rgba(40,34,28,.72);position:relative;display:flex;align-items:flex-end;justify-content:center;padding-bottom:5px;font:9px system-ui;color:#9a8f78"><span style="position:absolute;top:3px;left:6px;font:10px ui-monospace,monospace;color:#a9843f">3</span>Bomb</div>
<div style="width:62px;height:62px;border:1px solid #6b6152;border-radius:8px;background:rgba(40,34,28,.72);position:relative;display:flex;align-items:flex-end;justify-content:center;padding-bottom:5px;font:9px system-ui;color:#9a8f78"><span style="position:absolute;top:3px;left:6px;font:10px ui-monospace,monospace;color:#a9843f">4</span>Antidote</div>
<div style="width:62px;height:62px;border:1px solid #6b6152;border-radius:8px;background:rgba(40,34,28,.72);position:relative;display:flex;align-items:flex-end;justify-content:center;padding-bottom:5px;font:9px system-ui;color:#9a8f78"><span style="position:absolute;top:3px;left:6px;font:10px ui-monospace,monospace;color:#a9843f">5</span>Ration</div>
<div style="width:62px;height:62px;border:1px solid #6b6152;border-radius:8px;background:rgba(40,34,28,.72);position:relative;display:flex;align-items:flex-end;justify-content:center;padding-bottom:5px;font:9px system-ui;color:#9a8f78"><span style="position:absolute;top:3px;left:6px;font:10px ui-monospace,monospace;color:#a9843f">6</span>Torch</div>
<div style="width:62px;height:62px;border:1px dashed #4a4238;border-radius:8px;background:rgba(30,26,22,.5);position:relative"><span style="position:absolute;top:3px;left:6px;font:10px ui-monospace,monospace;color:#5a5348">7</span></div>
<div style="width:62px;height:62px;border:1px dashed #4a4238;border-radius:8px;background:rgba(30,26,22,.5);position:relative"><span style="position:absolute;top:3px;left:6px;font:10px ui-monospace,monospace;color:#5a5348">8</span></div>
</div>
</div>
<!-- end turn -->
<div style="display:flex;flex-direction:column;align-items:center;gap:6px">
<div style="padding:16px 26px;border:1.5px solid #a9843f;border-radius:10px;background:linear-gradient(180deg,#3a2f1f,#2a2015);color:#e8d9b6;font:600 16px system-ui;letter-spacing:.06em;box-shadow:0 0 14px rgba(169,132,63,.28);cursor:pointer">END TURN</div>
<span style="font:10px ui-monospace,monospace;color:#7a7060">↵ enter</span>
</div>
</div>
</div>
<!-- ================= RIGHT: NARRATION BOOK ================= -->
<div style="width:740px;height:1080px;background:linear-gradient(180deg,#ece2ca,#e4d8bd);border-left:4px solid #1a1512;box-sizing:border-box;padding:34px 40px;display:flex;flex-direction:column">
<div style="display:flex;align-items:baseline;justify-content:space-between;border-bottom:2px solid #bfa878;padding-bottom:14px;margin-bottom:22px">
<span style="font:600 24px 'Architects Daughter',cursive;letter-spacing:.06em;color:#5a4326">THE DUNGEON MASTER</span>
<span style="font:13px ui-monospace,monospace;color:#8a7748;letter-spacing:.1em">ROUND 4 · THE LOWER WARD</span>
</div>
<div style="font:20px/1.65 Georgia,serif;color:#4a3f2c;flex:1;overflow:hidden">
<p style="margin:0 0 18px">The alley stinks of piss and rot. Rain beads on the cobbles and runs black into the gutter. Your left arm has gone hot to the touch — the bite you took in the sewers three nights ago is turning, and the fever with it.</p>
<p style="margin:0 0 18px">The beastfolk fence weighs your coin purse in one clawed hand, unhurried. His good eye drifts from the silver to the soft flesh of your throat, and back again.</p>
<p style="margin:0 0 18px;color:#6a5a3a;font-style:italic">"Thin," he says. "For what you're asking."</p>
<p style="margin:0;padding:14px 16px;background:#d9c9a2;border-left:4px solid #8f3a34;color:#5a3230;font-style:italic;font-size:18px">✗ Sleight of Hand (14) failed. His grip closes hard around your wrist.</p>
</div>
<div style="border-top:2px solid #bfa878;padding-top:20px;margin-top:20px">
<div style="font:600 18px 'Architects Daughter',cursive;color:#5a4326;margin-bottom:14px">▸ Your turn. What do you do?</div>
<div style="display:flex;flex-direction:column;gap:10px">
<div style="border:1px solid #8f7a4a;border-radius:8px;padding:13px 16px;font:16px system-ui;color:#4a3f2c;background:#f1e8d2;cursor:pointer" style-hover="background:#e6d9b8;border-color:#5a4326"><strong style="color:#8f6a2a">1</strong> · Pay the fence double and keep your hand where he can see it</div>
<div style="border:1px solid #8f7a4a;border-radius:8px;padding:13px 16px;font:16px system-ui;color:#4a3f2c;background:#f1e8d2;cursor:pointer" style-hover="background:#e6d9b8;border-color:#5a4326"><strong style="color:#8f6a2a">2</strong> · Draw your blade — he's closer than his guards</div>
<div style="border:1px solid #8f7a4a;border-radius:8px;padding:13px 16px;font:16px system-ui;color:#4a3f2c;background:#f1e8d2;cursor:pointer" style-hover="background:#e6d9b8;border-color:#5a4326"><strong style="color:#8f6a2a">3</strong> · Lie — tell him the rest is coming with your dwarf</div>
</div>
<div style="margin-top:16px;display:flex;align-items:center;gap:12px;border:1px dashed #a99464;border-radius:8px;padding:12px 16px;background:rgba(255,255,255,.35)">
<span style="font:14px ui-monospace,monospace;color:#8a7748"></span>
<span style="font:16px Georgia,serif;font-style:italic;color:#8a7c5a">…or describe your own action</span>
</div>
</div>
</div>
</div>
</div>
</div>
<p class="dv-next">Try next: "the dock should be icons, not text labels" · "add a combat-log tab to the narration book" · "now sketch the character-creation screen" · "sketch the inventory screen the I button opens" · "make the book parchment darker / grittier"</p>
</section>
</x-dc>
<script type="text/x-dc" data-dc-script>
class Component extends DCLogic {
state = { dockOpen: true };
renderVals() {
const open = this.state.dockOpen;
return {
dockShift: open ? 'translateY(-50%) translateX(0)' : 'translateY(-50%) translateX(230px)',
dockOpacity: open ? '1' : '0',
handleArrow: open ? '' : '',
toggleDock: () => this.setState(s => ({ dockOpen: !s.dockOpen })),
};
}
}
</script>
</body>
</html>