Files
rank/public/index.html
T
2026-05-21 20:22:56 +02:00

90 lines
4.1 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 lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#050712" />
<title>Rank — Feature Priorities</title>
<link rel="stylesheet" href="/styles.css?v=rank-1" />
</head>
<body>
<div class="noise"></div>
<main class="shell">
<header class="hero">
<div>
<p class="eyebrow">rank.friborg.uk · feature triage</p>
<h1>Drop ideas. Score fast. Drag into reality.</h1>
<p class="subcopy">A sharp prioritization board for humans and agents. No ceremony, no rounded-corner startup soup.</p>
</div>
<div class="stats" id="stats"></div>
</header>
<section class="capture-panel" aria-label="Quick capture">
<form id="ideaForm" autocomplete="off">
<div class="capture-main">
<label for="title">Idea</label>
<input id="title" name="title" maxlength="180" placeholder="Press / then type the feature that keeps nagging at you" required />
</div>
<div class="capture-grid">
<label>Description<textarea id="description" name="description" rows="2" placeholder="Optional: what it does, why it matters, ugly constraints…"></textarea></label>
<label>Labels<input id="labels" name="labels" placeholder="scattermind, revenue, ux" /></label>
<label>Source<input id="sourceName" name="sourceName" placeholder="Jimmi, Rook, Iris…" /></label>
<label>Milestone<select id="milestoneSelect" name="milestoneId"></select></label>
</div>
<div class="score-row">
<label>Impact <input type="range" min="0" max="10" value="7" name="impact" /></label>
<label>Effort <input type="range" min="1" max="10" value="4" name="effort" /></label>
<label>Confidence <input type="range" min="0" max="10" value="6" name="confidence" /></label>
<label>Urgency <input type="range" min="0" max="10" value="5" name="urgency" /></label>
<button type="submit">Capture ↵</button>
</div>
</form>
</section>
<section class="toolbar">
<div class="tabs" id="filters">
<button data-filter="all" class="active">All</button>
<button data-filter="human">Human</button>
<button data-filter="agent">Agent</button>
<button data-filter="high">High score</button>
</div>
<div class="tools">
<input id="search" placeholder="Filter ideas" />
<button id="addMilestone">+ Milestone</button>
<button id="refresh">Refresh</button>
</div>
</section>
<section id="board" class="board" aria-label="Priority board"></section>
<aside class="detail" id="detail" aria-hidden="true">
<form id="detailForm">
<div class="detail-head">
<p class="eyebrow">selected idea</p>
<button type="button" id="closeDetail">×</button>
</div>
<input name="title" class="detail-title" />
<textarea name="description" rows="8" placeholder="Description"></textarea>
<div class="detail-sliders">
<label>Impact <input type="number" min="0" max="10" name="impact" /></label>
<label>Effort <input type="number" min="1" max="10" name="effort" /></label>
<label>Confidence <input type="number" min="0" max="10" name="confidence" /></label>
<label>Urgency <input type="number" min="0" max="10" name="urgency" /></label>
</div>
<label>Notes<textarea name="notes" rows="5" placeholder="Decision notes, objections, cut lines…"></textarea></label>
<div class="detail-actions">
<button type="submit">Save</button>
<button type="button" id="archiveIdea">Archive</button>
</div>
</form>
</aside>
<footer>
<div id="activity"></div>
<p>Keyboard: <kbd>/</kbd> capture · <kbd>Esc</kbd> close · drag cards between milestones.</p>
</footer>
</main>
<script src="/app.js?v=rank-1" type="module"></script>
</body>
</html>