Branding a status page
Customize your status page's colors, fonts, logo, and hide the UptimeHunt badge — an Enterprise capability.
Branding
By default, a status page uses UptimeHunt's own brand — colors, font, and a "Powered by UptimeHunt" badge in the footer. Enterprise plans can replace all of it with their own, including support for light and dark appearance modes and custom webfonts.
Enterprise only
Custom branding is gated on the Enterprise plan. On every other plan, the Branding tab is visible but locked, with a note pointing at an upgrade.
Appearance modes
Choose how your status page appears to visitors:
| Mode | Behavior |
|---|---|
| Light | Always display in light mode, regardless of visitor's device settings. This is the default for all existing pages. |
| Dark | Always display in dark mode. Use this if your brand is built for dark backgrounds. |
| Auto (system) | Automatically switch between light and dark based on the visitor's device settings (prefers-color-scheme). Set separate color tokens for each mode. |
When you select Auto, the page will respect the visitor's system appearance preference. Each dark-mode token resolves in three steps: if you set it in the dark-mode section, that value is used; otherwise it falls back to the value you set for that same token in light mode; and only if you left both unset does it fall back to UptimeHunt's built-in dark default. In short: a field you leave blank keeps the color you set above it (in light mode) if you set one, and otherwise falls back to the UptimeHunt dark default — so you only need to customize the modes you care about.
Colors
Branding is applied through CSS color tokens. Set any subset — anything you don't set falls back to the UptimeHunt default for that appearance mode:
| Token | Purpose | Light Default | Dark Default |
|---|---|---|---|
--sp-color-bg | Page background | UptimeHunt light | UptimeHunt dark |
--sp-color-surface | Card/panel background | UptimeHunt light | UptimeHunt dark |
--sp-color-ink | Primary text color | UptimeHunt light | UptimeHunt dark |
--sp-color-muted | Secondary/dimmed text | UptimeHunt light | UptimeHunt dark |
--sp-color-border | Dividers and borders | UptimeHunt light | UptimeHunt dark |
--sp-color-accent | Links and highlights | UptimeHunt light | UptimeHunt dark |
--sp-status-up | Operational status color | #059669 | #34d399 |
--sp-status-degraded | Degraded status color | #d97706 | #fbbf24 |
--sp-status-down | Down status color | #dc2626 | #f87171 |
--sp-status-maintenance | Maintenance status color | #2563eb | #60a5fa |
--sp-radius | Corner rounding (e.g., 4px) | 6px | 6px |
--sp-font | Font family stack | 'Geist', system-ui, … | 'Geist', system-ui, … |
--sp-font-heading | Font family for headings | same as --sp-font | same as --sp-font |
Each field in the editor names its own default underneath it, so you never have to look a value up here to know what leaving it blank will give you. Colors accept a hex value, an rgb() or hsl() function, or any CSS color name. CSS keywords such as inherit are rejected — they are not colors, and their meaning would depend on where the token is used.
As you type, the editor checks each color against the two backgrounds it can land on and warns when the worse of them is too low to read. Text colors are held to 4.5:1 and the four status colors to 3:1, because a status color paints a day square or a pill rather than a line of prose.
The status colors also drive the 90-day history strip on every component, so overriding them re-colors the strips too. Status tokens DO have distinct dark defaults — a lightened variant of each light-mode color — because the light-mode values would render low-contrast, near-invisible on a dark background. If you customize a status color, consider setting both the light and dark variant for the same reason.
Setting colors for dark mode
When you choose Auto appearance mode, you can optionally set a separate set of tokens for dark mode. Use the dark-mode color section to customize how your page looks when visitors have dark mode enabled on their device.
Each dark-mode token resolves in three steps, not two: (1) the value you set in the dark-mode section, if any; (2) otherwise, the value you set for that same token in light mode; (3) otherwise, UptimeHunt's built-in dark default.
For example, if you customize --sp-color-bg in light mode but leave the dark-mode --sp-color-bg blank, dark mode will use your light-mode value for that key — not UptimeHunt's tuned dark background. This can look wrong if your light-mode color wasn't chosen with a dark background in mind, so most users should also set a dark value for any token they've customized in light mode.
Fonts
Using a custom webfont
Upload a font file under Font file, and name its family in the --sp-font token (the Font family field). Both are needed: the file loads the font, and the token tells the page to use it.
Accepted formats are .woff2, .woff, .ttf and .otf, up to 2 MB. Stylesheets are not accepted — a Google Fonts CSS link will be rejected, because the page builds its own @font-face from the file rather than importing third-party CSS.
We serve the uploaded file from your status page's own domain. That means there is no CORS to configure, no third-party host observing your visitors, and nothing extra that has to stay online for your typography to render.
A separate font for headings
Upload a second file under Heading font file and name it in --sp-font-heading to use a different typeface for headings. Leave both blank and headings use the body font.
This is the common two-face brand system: a display face for headings, a readable one for body text. There is no per-section font beyond these two — each additional typeface is another file the browser must fetch before it can paint, on a page people are reading precisely because something else is broken.
Your logo needs no font setting of its own. It is an image, so whatever typeface your lockup uses is already part of the file you upload.
Linking a font instead of uploading it
The older Font file URL field still works for pages already using it. A linked font must be https://, publicly reachable, and served with Access-Control-Allow-Origin — without that header the browser silently falls back to a system font with no visible error. Uploading avoids all three requirements.
Logo
Upload a logo to replace the default UptimeHunt lockup at the top of the page. Accepted formats are PNG, JPG, WEBP and SVG, up to 512 KB.
We host the file, so your logo keeps rendering even when your own site is down — which is exactly when people visit your status page.
If you serve both light and dark appearances, you can upload a second logo for the dark one. Upload only one and it is used for both, whichever one you supply.
SVG logos are checked on upload and refused if they contain scripts, event handlers, embedded frames or references to external files. If yours is rejected, export it as a plain shape-only SVG or upload a PNG.
Linking a logo instead of uploading it
The older Logo URL field still works for pages already using it, and must be an https:// URL your visitors can reach. A linked logo disappears from your status page whenever the host serving it is unavailable.
Hiding the badge
Turn on Hide the "Powered by UptimeHunt" footer badge to remove that footer link entirely.
Related Documentation
Publish incident updates
Post a public incident timeline your visitors can follow, keep an internal-only conversation alongside it, and know exactly what does — and never does — reach your public page.
Maintenance windows
Schedule planned maintenance on a status page and automatically suppress alerts for the services and cron jobs it covers, for exactly as long as the window runs.