mirror of
https://github.com/hanzoai/base.git
synced 2026-10-21 03:41:50 +00:00
44 lines
1.9 KiB
HTML
44 lines
1.9 KiB
HTML
<!doctype html>
|
|
<html lang="en" class="dark" style="background:#000;color-scheme:dark">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<link id="favicon" rel="icon" type="image/svg+xml" href="/icon.svg" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<meta name="color-scheme" content="dark" />
|
|
<title>Base</title>
|
|
<!-- The page carries the mark and the name of the host it was served from.
|
|
Base is shared infrastructure: the same binary answers on hanzo.ai,
|
|
lux.network and zoo.ngo, so anything compiled in is right on one of them
|
|
and wrong on the rest.
|
|
|
|
THE BRAND IS RESOLVED HERE, ONCE, and left on window for the app to
|
|
read. The alternative was this map plus a second copy in the bundle, and
|
|
two copies of "which brand is this host" is how a page ends up titled
|
|
Hanzo over somebody else's mark.
|
|
|
|
Inline and ahead of the bundle, because the tab is titled and the icon
|
|
swapped while React is still downloading. -->
|
|
<script>
|
|
(function () {
|
|
var h = location.hostname
|
|
var slug = /(^|\.)(lux\.(network|finance|id))$/.test(h) ? 'lux'
|
|
: /(^|\.)(zoo\.(ngo|network)|zoolabs\.id)$/.test(h) ? 'zoo'
|
|
: /(^|\.)hanzo\.(ai|id)$/.test(h) ? 'hanzo'
|
|
: ''
|
|
// Unknown host keeps the unbranded mark. A lookalike domain must not be
|
|
// handed our logo, so the patterns anchor to the registrable domain.
|
|
window.__brand = slug
|
|
if (!slug) return
|
|
document.title = { lux: 'Lux', zoo: 'Zoo', hanzo: 'Hanzo' }[slug] + ' Base'
|
|
var link = document.getElementById('favicon')
|
|
if (link) link.href = '/brands/' + slug + '/favicon.svg'
|
|
})()
|
|
</script>
|
|
<script type="module" crossorigin src="/assets/index-DjxmnV70.js"></script>
|
|
<link rel="stylesheet" crossorigin href="/assets/index-BAW5XKov.css">
|
|
</head>
|
|
<body>
|
|
<div id="root"></div>
|
|
</body>
|
|
</html>
|