Apply Prioritix design to Rank
This commit is contained in:
+122
-78
@@ -3,87 +3,131 @@
|
||||
<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" />
|
||||
<meta name="theme-color" content="#061B33" />
|
||||
<title>Prioritix — Feature Prioritization</title>
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||
<link rel="stylesheet" href="/styles.css?v=prioritix-20260522-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>
|
||||
<div class="app-shell">
|
||||
<aside class="sidebar" aria-label="Main navigation">
|
||||
<div class="brand-mark" aria-label="Prioritix">P</div>
|
||||
<nav>
|
||||
<a class="active" href="#prioritize"><span>▦</span><b>Prioritize</b></a>
|
||||
<a href="#backlog"><span>☰</span><b>Backlog</b></a>
|
||||
<a href="#roadmap"><span>◇</span><b>Roadmap</b></a>
|
||||
<a href="#reports"><span>↗</span><b>Reports</b></a>
|
||||
</nav>
|
||||
<button class="collapse" type="button" title="Collapse sidebar">←</button>
|
||||
</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>
|
||||
<main class="workspace">
|
||||
<header class="topbar">
|
||||
<button class="menu-button" type="button" aria-label="Menu">☰</button>
|
||||
<div class="project-title">
|
||||
<h1>Rank Prioritization Studio</h1>
|
||||
<p><strong>Project goal:</strong> capture, sort, and turn rough feature ideas into a visible roadmap.</p>
|
||||
</div>
|
||||
<div class="profile-card">
|
||||
<span>Sorting profile</span>
|
||||
<strong>MVP (2x2)</strong>
|
||||
<button type="button" id="profileToggle" aria-label="Change sorting profile">⌄</button>
|
||||
<div class="profile-menu" id="profileMenu" hidden>
|
||||
<button type="button" class="selected">MVP (2x2) ✓</button>
|
||||
<button type="button">RICE Score</button>
|
||||
<button type="button">Value vs Effort</button>
|
||||
<button type="button">Kano Model</button>
|
||||
<button type="button">Custom</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="progress-card" id="progressCard"></div>
|
||||
</header>
|
||||
|
||||
<section class="capture-strip" aria-label="Quick capture">
|
||||
<form id="ideaForm" autocomplete="off">
|
||||
<label class="capture-title">New feature
|
||||
<input id="title" name="title" maxlength="180" placeholder="Smart requirement sorting, mobile dark mode, dependency warnings…" required />
|
||||
</label>
|
||||
<label>Brief
|
||||
<input id="description" name="description" maxlength="500" placeholder="One sentence. Keep sorting focused." />
|
||||
</label>
|
||||
<label>Category
|
||||
<input id="labels" name="labels" placeholder="UI / UX" />
|
||||
</label>
|
||||
<input type="hidden" name="milestoneId" value="inbox" />
|
||||
<input type="hidden" name="impact" value="7" />
|
||||
<input type="hidden" name="effort" value="4" />
|
||||
<input type="hidden" name="confidence" value="6" />
|
||||
<input type="hidden" name="urgency" value="5" />
|
||||
<button type="submit">Capture ↵</button>
|
||||
</form>
|
||||
</section>
|
||||
|
||||
<section class="sorting-layout" id="prioritize">
|
||||
<section class="active-column" aria-label="Active feature">
|
||||
<div class="section-label">Active feature</div>
|
||||
<div class="feature-deck" id="featureDeck"></div>
|
||||
<div class="deck-actions">
|
||||
<button type="button" id="skipFeature">▷ Skip</button>
|
||||
<button type="button" id="postponeFeature">↓ Postpone</button>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="grid-column" aria-label="Sorting grid">
|
||||
<div class="section-label">Sorting grid (MVP - 2x2)</div>
|
||||
<div class="sorting-grid" id="sortingGrid"></div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section class="utility-row" aria-label="Feature card actions">
|
||||
<button type="button" data-utility="park"><span>⚑</span><strong>Park</strong><small>Valid idea, not relevant now. Revisit later.</small></button>
|
||||
<button type="button" data-utility="investigate"><span>⌕</span><strong>Investigate</strong><small>Needs more research or validation.</small></button>
|
||||
<button type="button" data-utility="remove"><span>⌫</span><strong>Remove</strong><small>Not a good fit. Remove from project.</small></button>
|
||||
</section>
|
||||
|
||||
<section class="timeline-panel" id="roadmap" aria-label="Timeline view">
|
||||
<div class="timeline-head">
|
||||
<div>
|
||||
<h2>Timeline view</h2>
|
||||
<p>Sorted features become nodes. Click a node to inspect; drag-and-drop can come later without breaking the model.</p>
|
||||
</div>
|
||||
<div class="zoom-controls"><button type="button">−</button><button type="button">+</button><button type="button">⛶</button></div>
|
||||
</div>
|
||||
<div class="timeline" id="timeline"></div>
|
||||
</section>
|
||||
|
||||
<section class="backlog-panel" id="backlog">
|
||||
<div class="section-label">Backlog / utility states</div>
|
||||
<div id="backlogList" class="backlog-list"></div>
|
||||
</section>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<aside class="detail" id="detail" aria-hidden="true">
|
||||
<form id="detailForm">
|
||||
<div class="detail-head">
|
||||
<div><span class="category-dot"></span><span id="detailCategory">UI / UX</span></div>
|
||||
<span class="chip">MVP</span>
|
||||
<button type="button" id="closeDetail" aria-label="Close">×</button>
|
||||
</div>
|
||||
<input name="title" class="detail-title" />
|
||||
<label>Brief<textarea name="description" rows="4" placeholder="What this feature changes for the product"></textarea></label>
|
||||
<div class="detail-grid">
|
||||
<label>User value<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, links, dependencies…"></textarea></label>
|
||||
<div class="detail-actions">
|
||||
<button type="button" id="parkDetail">Park</button>
|
||||
<button type="submit">Save</button>
|
||||
<button type="button" id="archiveIdea" class="danger">Delete</button>
|
||||
</div>
|
||||
</form>
|
||||
</aside>
|
||||
|
||||
<div class="toast" id="toast" hidden></div>
|
||||
<script src="/app.js?v=prioritix-20260522-1" type="module"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user