diff --git a/zebra-report/host-your-own.html b/zebra-report/host-your-own.html index 5cd5496..15af14a 100644 --- a/zebra-report/host-your-own.html +++ b/zebra-report/host-your-own.html @@ -68,9 +68,76 @@ /* long URLs / hashes wrap instead of pushing the page wider */ p, li { overflow-wrap: anywhere; } } + + /* ---- shared dark mode: pure black canvas, dim text, low light ---- */ + html.theme-dark { background: #000; } + html.theme-dark body { background: #000; color: #ccc; } + html.theme-dark a { color: #9cf; } + html.theme-dark .sub, html.theme-dark .sub a, html.theme-dark .note, + html.theme-dark .foot, html.theme-dark label, + html.theme-dark .status-line { color: #888; } + html.theme-dark h2 { border-bottom-color: #333; } + html.theme-dark code, html.theme-dark .key-display { + background: #1a1a1a; border-color: #333; color: #ccc; + } + html.theme-dark .key-display:hover { background: #222; } + html.theme-dark button { + background: #000; color: #ccc; border-color: #444; + } + html.theme-dark button:hover:not(:disabled) { background: #1a1a1a; } + html.theme-dark button.invert, html.theme-dark .cta { + background: #ccc; color: #000; border-color: #ccc; + } + html.theme-dark button.invert:hover:not(:disabled), + html.theme-dark .cta:hover { background: #999; } + html.theme-dark input[type=text], html.theme-dark input[type=password], + html.theme-dark textarea, html.theme-dark select { + background: #0a0a0a; color: #ccc; border-color: #333; + } + html.theme-dark .dot { background: #000; border-color: #444; } + html.theme-dark .dot.on { background: #ccc; border-color: #ccc; } + html.theme-dark .dot.ok { background: #0a0; border-color: #0a0; } + html.theme-dark .meter { background: #000; border-color: #444; } + html.theme-dark .meter-fill { background: #ccc; } + html.theme-dark .status-line.ok { color: #6c6; } + html.theme-dark .status-line.err { color: #f66; } + html.theme-dark .log, html.theme-dark .diagram { + background: #050505; border-color: #333; color: #ccc; + } + html.theme-dark .log-line .ts { color: #666; } + html.theme-dark .log-line.sys { color: #888; font-style: italic; } + html.theme-dark .log-line.err { color: #f66; } + html.theme-dark hr { border-top-color: #222; } + html.theme-dark footer { color: #555 !important; } + html.theme-dark footer span { color: #555 !important; } + html.theme-dark footer a { color: #777 !important; } + .theme-toggle { + position: fixed; top: 0.6rem; right: 0.8rem; z-index: 9999; + background: #fff; color: #000; border: 1px solid #000; + padding: 0.2rem 0.55rem; font-family: monospace; font-size: 0.7rem; + cursor: pointer; line-height: 1; + } + .theme-toggle:hover { background: #f0f0f0; } + html.theme-dark .theme-toggle { background: #000; color: #ccc; border-color: #444; } + html.theme-dark .theme-toggle:hover { background: #1a1a1a; } + +
+ +run your own zebra community · self-hosted TURN + rendezvous on one edge box · @@ -441,10 +508,28 @@ handle /zebra-spaces-sfu* { reverse_proxy localhost:8092 { flush_interval -1 + +