-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
74 lines (70 loc) · 4.65 KB
/
Copy pathindex.html
File metadata and controls
74 lines (70 loc) · 4.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, viewport-fit=cover" />
<meta name="description" content="BitcoinWatch: live BTC block height, price, sats per dollar, mempool, hashrate, and halving countdown in your browser. No trackers, no third-party scripts." />
<meta name="theme-color" content="#f7931a" />
<link rel="canonical" href="https://orangepane.github.io/bitcoinwatch/" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="BitcoinWatch" />
<meta property="og:title" content="BitcoinWatch - live BTC block height, price, mempool & halving countdown" />
<meta property="og:description" content="A live Bitcoin network display that runs entirely in the browser. Block height, price, sats per dollar, mempool, hashrate, and blocks to halving. No backend, no trackers, no third-party scripts." />
<meta property="og:url" content="https://orangepane.github.io/bitcoinwatch/" />
<meta property="og:image" content="https://orangepane.github.io/bitcoinwatch/img/screenshots/desktop.png" />
<meta property="og:image:alt" content="BitcoinWatch showing block height, BTC price, sats per dollar, mempool, and halving countdown" />
<meta name="twitter:card" content="summary_large_image" />
<!-- Privacy: no third-party scripts. connect-src stays open because the instance URL
is the user's to choose; http: is allowed so a LAN mempool works when this
page is served over http (browsers still block http instances on an https page). -->
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self'; font-src 'self'; img-src 'self' data:; connect-src 'self' https: http:; base-uri 'none'; form-action 'none'" />
<link rel="icon" href="./img/icon-16.png" sizes="16x16" type="image/png" />
<link rel="icon" href="./img/icon-32.png" sizes="32x32" type="image/png" />
<link rel="icon" href="./img/icon-48.png" sizes="48x48" type="image/png" />
<link rel="icon" href="./img/Bitcoin.svg" type="image/svg+xml" />
<link rel="apple-touch-icon" href="./img/apple-touch-icon.png" />
<meta name="mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="apple-mobile-web-app-title" content="BitcoinWatch" />
<link rel="manifest" href="./manifest.webmanifest" />
<link rel="stylesheet" href="./css/style.css" />
<title>BitcoinWatch - live BTC block height, price, mempool & halving countdown</title>
</head>
<body>
<div id="topbar" role="note" aria-label="bitcoin facts">
<span id="marquee" class="marquee"></span>
</div>
<header id="nav">
<div class="wordmark">
<img class="mark" src="./img/icon-96.png" alt="" width="96" height="96" />
<span>bitcoinwatch</span>
<span id="net-dot" class="net-dot" role="status" aria-label="network status"></span>
</div>
<div class="nav-actions">
<button id="btn-settings" type="button" class="icon-btn" aria-label="Settings" aria-haspopup="dialog">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round"
d="M10.34 3.94c.09-.64.63-1.12 1.28-1.12h.76c.65 0 1.19.48 1.28 1.12l.15 1.07c.22.16.43.34.62.54l1.03-.33c.6-.2 1.26.06 1.57.6l.38.66c.31.54.2 1.24-.26 1.66l-.87.8c.01.12.02.24.02.36s-.01.24-.02.36l.87.8c.46.42.57 1.12.26 1.66l-.38.66c-.31.54-.97.79-1.57.6l-1.03-.33a5.6 5.6 0 0 1-.62.54l-.15 1.07c-.09.64-.63 1.12-1.28 1.12h-.76c-.65 0-1.19-.48-1.28-1.12l-.15-1.07a5.6 5.6 0 0 1-.62-.54l-1.03.33c-.6.2-1.26-.06-1.57-.6l-.38-.66a1.36 1.36 0 0 1 .26-1.66l.87-.8a5.6 5.6 0 0 1-.02-.36c0-.12.01-.24.02-.36l-.87-.8a1.36 1.36 0 0 1 .26-1.66l.38-.66c.31-.54.97-.79 1.57-.6l1.03.33c.19-.2.4-.38.62-.54l.15-1.07z" />
<circle cx="12" cy="12" r="1.9" />
</svg>
</button>
<button id="btn-add" type="button" class="icon-btn" aria-label="Add a display">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" d="M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0z" />
</svg>
</button>
</div>
</header>
<main id="grid" aria-live="off"></main>
<footer id="footer">
<span class="foot-left">zero trackers · zero third-party scripts</span>
<span id="foot-status" class="foot-status">connecting…</span>
<span class="foot-right">your instance · your rules</span>
</footer>
<script src="./js/store.js"></script>
<script src="./js/widgets.js"></script>
<script src="./js/poller.js"></script>
<script src="./js/ui.js"></script>
</body>
</html>