---
title: "Design & Branding"
description: "Every status page has a visual design configuration. Edit it in the app under Dashboard → Status Pages → (page) → Design, or via the design API. Changes are merged: you only send the fields you want to change, and the rest keep their current values."
---

## Layouts

Choose one of eight layout presets. They all show the same data (overall state, services, optional stats and history) but differ in structure and density. Preview each one live in the design editor.

| Layout | Best for |
|--------|----------|
| `classic` | The default. A prominent hero banner with the overall state, followed by the service list. |
| `cards` | Each service rendered as a card in a responsive grid. |
| `minimal` | Stripped-back, text-first presentation with minimal chrome. |
| `sleek` | A modern hero banner with an accent-color gradient. |
| `board` | A dashboard-style board to see many services at a glance. |
| `split` | A full-width header with a two-column body (status next to history). |
| `timeline` | Emphasizes a chronological timeline of incidents and maintenance. |
| `compact` | Dense layout that fits many services into little vertical space. |

## Appearance

| Option | Values | Default | Description |
|--------|--------|---------|-------------|
| `colorScheme` | `light`, `dark`, `auto` | `auto` | `auto` follows the visitor's system preference. |
| `accentColor` | hex color `#rrggbb` | `#6366f1` | Used for highlights, links, and gradients. |
| `headerStyle` | `simple`, `centered`, `hero` | `simple` | How prominent the page header is. |
| `fontFamily` | `system`, `mono` | `system` | `mono` gives a technical, monospaced look. |
| `cardRadius` | `none`, `md`, `xl` | `md` | Corner rounding of cards and panels. |
| `pageWidth` | `sm`, `md`, `lg`, `xl` | `lg` | Maximum content width. |

## Content & sections

| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `customTitle` | string (≤120) | - | Overrides the page title in the header. |
| `customSubtitle` | string (≤200) | - | A subtitle shown under the title. |
| `showUptimeStats` | boolean | `true` | Show per-service uptime percentages. |
| `showServiceUrls` | boolean | `false` | Show each service's URL next to its name. |
| `showLastChecked` | boolean | `false` | Show the "last checked" timestamp per service. |
| `showHistory` | boolean | `true` | Show the recent history section. |
| `historyDays` | number | - | How many days of history to include (bounded by the platform min/max). |
| `showPoweredBy` | boolean | `true` | Show a "Powered by `<your product name>`" line in the footer. It names **you**, never Uptimeify: with no product name set, the line is not rendered at all. |

<Callout>
`showHistory` controls whether the history *section* is rendered. The separate **Show recent incidents** and **Show recent maintenance** toggles (on the page's main settings) control *what* goes into that section. See [Recent history](/status-pages#recent-history).
</Callout>

## Example (API)

```bash
curl -X PATCH "$BASE_URL/api/status-pages/<id>/design" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "layout": "sleek",
    "colorScheme": "dark",
    "accentColor": "#10b981",
    "showServiceUrls": true,
    "showPoweredBy": false
  }'
```

Only the fields you send are changed; everything else keeps its current value. See [Update Status Page Design](/api/status-pages/update-status-page-design) for the full reference.

## White-labeling

A status page never names Uptimeify. The footer's copyright line names the operator of the
page (your product name, or the status page's own name if you have not set one), and if
neither exists, no copyright line is rendered. Nothing on the page falls back to the
vendor's name. White-labeling is not a plan feature; it applies on every paid plan.

For a fully branded page:

1. Set your **product name** under Branding. It is what the copyright line and the
   "Powered by" line say, and it is the only thing either of them will ever say.
2. Configure a [custom domain](/status-pages/custom-domains) so the page runs on your hostname.
3. Upload a **favicon** under Branding. On your own domain this is what visitors see in the
   browser tab and on an iOS home screen. Without one the page carries no icon at all, it
   will never carry Uptimeify's.
4. Set an `accentColor` (and optionally `customTitle`/`customSubtitle`) that matches your brand.

`showPoweredBy` is a separate choice: leave it on to credit your own product in the footer,
turn it off for no attribution line at all.

