generated from Labyricorn/labyricorn-project-template
103 lines
3.3 KiB
HTML
103 lines
3.3 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>Planetarium — XZBT Reference Exhibit</title>
|
|
<link rel="stylesheet" href="../shared/exhibit-shell.css">
|
|
<link rel="stylesheet" href="style.css">
|
|
</head>
|
|
<body>
|
|
|
|
<div class="exhibit">
|
|
<header class="exhibit-header">
|
|
<h1>Planetarium</h1>
|
|
<span class="subtitle">Sky dome — live ephemeris</span>
|
|
<span class="status" id="contract-status">standalone</span>
|
|
</header>
|
|
|
|
<main class="stage">
|
|
<canvas id="sky-canvas" aria-label="Planetarium sky view"></canvas>
|
|
</main>
|
|
|
|
<aside class="panel">
|
|
<section>
|
|
<h2>Target</h2>
|
|
<div class="control">
|
|
<label for="constellation-select">Constellation</label>
|
|
<select id="constellation-select"></select>
|
|
</div>
|
|
<div class="control">
|
|
<label for="magnitude-range">
|
|
<span>Magnitude limit</span>
|
|
<span class="readout" id="magnitude-readout">mag ≤ 4.5</span>
|
|
</label>
|
|
<input type="range" id="magnitude-range" min="1" max="6" step="0.1" value="4.5">
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<h2>Pointing</h2>
|
|
<div class="control">
|
|
<label for="azimuth-range">
|
|
<span>Azimuth</span>
|
|
<span class="readout" id="azimuth-readout">90°</span>
|
|
</label>
|
|
<input type="range" id="azimuth-range" min="0" max="1" step="0.01" value="0.25">
|
|
</div>
|
|
<div class="control">
|
|
<label for="altitude-range">
|
|
<span>Altitude</span>
|
|
<span class="readout" id="altitude-readout">180°</span>
|
|
</label>
|
|
<input type="range" id="altitude-range" min="0" max="1" step="0.01" value="0.5">
|
|
</div>
|
|
<div class="control">
|
|
<label for="timescale-range">
|
|
<span>Time scale</span>
|
|
<span class="readout" id="timescale-readout">0.50×</span>
|
|
</label>
|
|
<input type="range" id="timescale-range" min="0" max="4" step="0.05" value="0.5">
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<h2>Optics</h2>
|
|
<div class="control">
|
|
<label for="filter-select">Filter</label>
|
|
<select id="filter-select"></select>
|
|
</div>
|
|
<div class="toggle-row">
|
|
<span>Mount tracking</span>
|
|
<button id="tracking-button" type="button" aria-pressed="true">Tracking</button>
|
|
</div>
|
|
<div class="toggle-row">
|
|
<span>Sky time</span>
|
|
<button id="pause-button" type="button" aria-pressed="false">Freeze sky</button>
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<h2>Actions</h2>
|
|
<div class="button-row">
|
|
<button id="advance-button" type="button">Advance 30 min</button>
|
|
<button id="reset-button" type="button">Reset sky</button>
|
|
</div>
|
|
</section>
|
|
</aside>
|
|
|
|
<footer class="exhibit-footer">
|
|
<span class="announcement-label">Dome</span>
|
|
<span class="announcement-text is-idle" id="announcement">Dome idle — awaiting instruction.</span>
|
|
</footer>
|
|
</div>
|
|
|
|
<script src="../shared/contract-core.js"></script>
|
|
<script src="../shared/exhibit-shell.js"></script>
|
|
<script src="../shared/host-transport.js"></script>
|
|
<script src="exhibit.js"></script>
|
|
<script src="contract-adapter.js"></script>
|
|
<script src="boot.js"></script>
|
|
</body>
|
|
</html>
|