This page defines the rules for building a new ad.hoc.run project. Every project is a single HTML file with a local stylesheet reference and no external dependencies beyond what the tool genuinely requires. Follow this guide exactly and the result will be visually and structurally identical to every other hoc.run tool.
projectname/index.html<link rel="stylesheet" href="https://ad.hoc.run/global.css">The topbar is defined in global.css. It is a flex row: prompt on the left, page-specific controls on the right. To push something to the right, add margin-left: auto to the first right-side element. The topbar divs are locked to 24px tall, dont exceed. Never change their height, padding, or border.
Never redeclare .topbar properties in page-specific styles. The layout is fully handled by global.css. Page styles may only introduce new selectors scoped inside the topbar (e.g. .topbar button, .controls) — never override existing ones.
$ ad.hoc.run → X.hoc.runad.hoc.run is a link back to the landing page.path gets --accent color via global.cssad.hoc.run/) uses $ <span class="path">ad.hoc.run/</span> with no back linkMost pages use <div class="page">, which provides flex: 1, padding: 24px 32px, and overflow-y: auto. Add max-width locally when the content should be constrained.
Full-screen tools (like p2paste) skip .page and instead use a direct flex child with flex: 1. They also add html, body { height: 100%; overflow: hidden; } locally.
--bg · #0d0d0d — page background--fg · #e2e2e2 — primary text--dim · #666666 — secondary text, labels, hints--accent · #00ff88 — interactive elements, highlights, .path--accent-dark · #00cc6a — hover state for accent--border · #2a2a2a — borders, dividers, separators--font · JetBrains Mono stack — never override the typefaceHard-coded color values are only acceptable for one-off states with no semantic meaning (e.g. #ff4444 for a destructive error). All structural color must use variables.
14px (set in global.css via --font-size). Do not change it on body.font-size: 12px for labels and hints, 11px for minor metadata.font-weight: bold sparingly — links in listings, primary display values.p { margin-top: 16px; } locally. The global reset zeroes all margins.global.css styles all input, textarea, and button elements. Do not restyle them unless the tool has a specific layout need (e.g. removing resize on a textarea). The accent-colored border on focus and the hover fill on buttons are global — do not override them.
index.html at root) with a one-line description.