Requires a paid plan
Custom CSS requires a paid plan with the Custom CSS & JavaScript feature enabled. Custom JavaScript also requires a custom domain configured on your status page.
You can add custom CSS and JavaScript to your status page to match your brand, add tracking scripts, or customize texts.
Custom CSS requires a paid plan with the Custom CSS & JavaScript feature enabled. Custom JavaScript also requires a custom domain configured on your status page.
Go to Better Stack → Status pages → select your status page → Settings → expand Advanced settings. Custom CSS and Custom JavaScript are under Look & feel.
The simplest way to start customizing is changing the background color:
The navigation bar is translucent by default. It uses a semi-transparent white background with a backdrop blur.
Here's how you can change the navigation bar background tint to match a colored page background. Update the backdrop, the link hover states, and the subscribe button together:
If you'd like to change the subscribe button shape or color, you can target it independently. These small tweaks work on their own without changing the rest of the navigation bar:
Each service group is wrapped in a .section element.
You can adjust its background, spacing, or remove the default top border that separates sections:
If you'd like to change the size of the history bars, adjust the height and border-radius on the .tick class:
Here are two examples of cohesive themes. They combine the techniques above, so pick one and paste it into Custom CSS:
Here are the most commonly targeted elements organized by area:
Your status page supports dark mode. Use the .dark selector to target dark mode, for example .dark body { background: #0d1117; }.
Import a font from Google Fonts and apply it to the page:
Override the default collapse behavior so all sections start expanded or stay permanently collapsed:
Use display: none to remove any element from view:
Google Analytics has a dedicated field, so you don't need custom JavaScript for it. Go to your status page's Settings → Advanced settings → Analytics and paste your tag ID into the Google tag ID field.
Integrate Plausible, Fathom, or other analytics providers by pasting the full <script> tag into Custom JavaScript:
Custom JavaScript only runs on status pages with a custom domain configured. It will not run on the default *.betteruptime.com subdomain.
When a visitor clicks Get updates, the subscribe popup opens with a general e-mail field. If you'd like the Subscribe to specific components checkbox to be pre-selected so the component list is visible right away, add this to Custom JavaScript:
You can inject a description card that appears between the status heading and your service sections. This is useful for telling visitors what the page monitors, how to get help, or where to subscribe.
The example uses both Custom CSS for the card styling and Custom JavaScript to inject it into the page. It also includes a MutationObserver so the card persists through auto-refreshes.
Paste this into Custom CSS:
Paste this into Custom JavaScript:
Replace "Acme Corp", the title text, and the support link with your own company details.
If you'd like to embed a support chat on your status page, paste the provider's snippet into Custom JavaScript. Here are examples for common providers:
Replace YOUR_APP_ID or YOUR_WEBSITE_ID with the value from your chat provider's dashboard.
If you'd like to change the colors used for operational, degraded, downtime, or maintenance states, override the status page color variables in Custom CSS:
These classes apply to uptime history bars, status icons, and status badges throughout the page. The hover variants follow automatically since they use opacity.
To change the text color of status labels like "Operational" or "Degraded", target the corresponding text classes:
The status page refreshes dynamic sections every 30 seconds. Any DOM changes made by your JavaScript will be overwritten after each refresh.
To make changes persist, use a MutationObserver that re-applies modifications whenever the content updates:
CSS changes are not affected by auto-refresh. Only use a MutationObserver if you are modifying the page with JavaScript.
You can set custom_css and custom_javascript through the Status Page API:
Many common customizations are available in the status page settings without writing any code:
!important to declarations that do not take effect — the status page uses Tailwind utility classes.Let us know at hello@betterstack.com.
We use cookies to authenticate users, improve the product user experience, and for personalized ads. Learn more.