# Uptime · MIAN

A status page row: a service, its state today and one bar per day of history. Hover a day for what happened.

- Id: `uptime` · Category: Data display · Needs mian.js: no · License: MIAN License (free to use)
- Docs: https://mian.ro/components/uptime
- Use for: status page, service uptime, incident history, system status, availability bars.
- Alternatives: timeline.

Use only the classes below and copy the examples' structure and ARIA; change the words. Check your markup at https://mian.ro/api/v1/validate.

## Install

```html
<link rel="stylesheet" href="https://mian.ro/dist/mian.css">
```

## Classes

- `mn-uptime`: The list of services.
- `mn-uptime-row`: One service.
- `mn-uptime-head`: Name, a status badge and the uptime figure (<small>).
- `mn-uptime-bars`: One <i> per day. data-s="degraded", "down" or "none" (no data); data-tip is the hover text.
- `mn-uptime-foot`: The ends of the time axis.

## Accessibility

- Days that were not fine are shorter as well as coloured, so the history reads without colour.
- State today’s status in words in the badge.
- Give each bar strip role="img" and a label that summarises it (“90 days, two incidents”).

## Examples

### Services

```html
<div class="mn-uptime" style="max-width:38rem">
  <div class="mn-uptime-row"><div class="mn-uptime-head"><strong>API</strong><span class="mn-badge mn-badge-soft mn-success">Operational</span><small>99.98% · 90 days</small></div><div class="mn-uptime-bars" role="img" aria-label="API, 90 days: one degraded day"><i data-tip="4 Jul · no incidents"></i><i data-tip="5 Jul · no incidents"></i><i data-tip="6 Jul · no incidents"></i><i data-tip="7 Jul · no incidents"></i><i data-tip="8 Jul · no incidents"></i><i data-tip="9 Jul · no incidents"></i><i data-tip="10 Jul · no incidents"></i><i data-tip="11 Jul · no incidents"></i><i data-tip="12 Jul · no incidents"></i><i data-tip="13 Jul · no incidents"></i><i data-tip="14 Jul · no incidents"></i><i data-tip="15 Jul · no incidents"></i><i data-tip="16 Jul · no incidents"></i><i data-tip="17 Jul · no incidents"></i><i data-tip="18 Jul · no incidents"></i><i data-tip="19 Jul · no incidents"></i><i data-tip="20 Jul · no incidents"></i><i data-tip="21 Jul · no incidents"></i><i data-tip="22 Jul · no incidents"></i><i data-tip="23 Jul · no incidents"></i><i data-tip="24 Jul · no incidents"></i><i data-tip="25 Jul · no incidents"></i><i data-tip="26 Jul · no incidents"></i><i data-tip="27 Jul · no incidents"></i><i data-tip="28 Jul · no incidents"></i><i data-tip="29 Jul · no incidents"></i><i data-tip="30 Jul · no incidents"></i><i data-tip="31 Jul · no incidents"></i><i data-tip="1 Aug · no incidents"></i><i data-tip="2 Aug · no incidents"></i><i data-tip="3 Aug · no incidents"></i><i data-tip="4 Aug · no incidents"></i><i data-tip="5 Aug · no incidents"></i><i data-tip="6 Aug · no incidents"></i><i data-tip="7 Aug · no incidents"></i><i data-tip="8 Aug · no incidents"></i><i data-tip="9 Aug · no incidents"></i><i data-tip="10 Aug · no incidents"></i><i data-tip="11 Aug · no incidents"></i><i data-tip="12 Aug · no incidents"></i><i data-tip="13 Aug · no incidents"></i><i data-tip="14 Aug · no incidents"></i><i data-tip="15 Aug · no incidents"></i><i data-tip="16 Aug · no incidents"></i><i data-tip="17 Aug · no incidents"></i><i data-tip="18 Aug · no incidents"></i><i data-tip="19 Aug · no incidents"></i><i data-tip="20 Aug · no incidents"></i><i data-tip="21 Aug · no incidents"></i><i data-tip="22 Aug · no incidents"></i><i data-tip="23 Aug · no incidents"></i><i data-tip="24 Aug · no incidents"></i><i data-tip="25 Aug · no incidents"></i><i data-tip="26 Aug · no incidents"></i><i data-tip="27 Aug · no incidents"></i><i data-tip="28 Aug · no incidents"></i><i data-tip="29 Aug · no incidents"></i><i data-tip="30 Aug · no incidents"></i><i data-tip="31 Aug · no incidents"></i><i data-tip="1 Sep · no incidents"></i><i data-tip="2 Sep · no incidents"></i><i data-s="degraded" data-tip="3 Sep · slow responses for 42 min"></i><i data-tip="4 Sep · no incidents"></i><i data-tip="5 Sep · no incidents"></i><i data-tip="6 Sep · no incidents"></i><i data-tip="7 Sep · no incidents"></i><i data-tip="8 Sep · no incidents"></i><i data-tip="9 Sep · no incidents"></i><i data-tip="10 Sep · no incidents"></i><i data-tip="11 Sep · no incidents"></i><i data-tip="12 Sep · no incidents"></i><i data-tip="13 Sep · no incidents"></i><i data-tip="14 Sep · no incidents"></i><i data-tip="15 Sep · no incidents"></i><i data-tip="16 Sep · no incidents"></i><i data-tip="17 Sep · no incidents"></i><i data-tip="18 Sep · no incidents"></i><i data-tip="19 Sep · no incidents"></i><i data-tip="20 Sep · no incidents"></i><i data-tip="21 Sep · no incidents"></i><i data-tip="22 Sep · no incidents"></i><i data-tip="23 Sep · no incidents"></i><i data-tip="24 Sep · no incidents"></i><i data-tip="25 Sep · no incidents"></i><i data-tip="26 Sep · no incidents"></i><i data-tip="27 Sep · no incidents"></i><i data-tip="28 Sep · no incidents"></i><i data-tip="29 Sep · no incidents"></i><i data-tip="30 Sep · no incidents"></i><i data-tip="1 Oct · no incidents"></i></div></div>
  <div class="mn-uptime-row"><div class="mn-uptime-head"><strong>Dashboard</strong><span class="mn-badge mn-badge-soft mn-success">Operational</span><small>100% · 90 days</small></div><div class="mn-uptime-bars" role="img" aria-label="Dashboard, 90 days: no incidents"><i data-tip="4 Jul · no incidents"></i><i data-tip="5 Jul · no incidents"></i><i data-tip="6 Jul · no incidents"></i><i data-tip="7 Jul · no incidents"></i><i data-tip="8 Jul · no incidents"></i><i data-tip="9 Jul · no incidents"></i><i data-tip="10 Jul · no incidents"></i><i data-tip="11 Jul · no incidents"></i><i data-tip="12 Jul · no incidents"></i><i data-tip="13 Jul · no incidents"></i><i data-tip="14 Jul · no incidents"></i><i data-tip="15 Jul · no incidents"></i><i data-tip="16 Jul · no incidents"></i><i data-tip="17 Jul · no incidents"></i><i data-tip="18 Jul · no incidents"></i><i data-tip="19 Jul · no incidents"></i><i data-tip="20 Jul · no incidents"></i><i data-tip="21 Jul · no incidents"></i><i data-tip="22 Jul · no incidents"></i><i data-tip="23 Jul · no incidents"></i><i data-tip="24 Jul · no incidents"></i><i data-tip="25 Jul · no incidents"></i><i data-tip="26 Jul · no incidents"></i><i data-tip="27 Jul · no incidents"></i><i data-tip="28 Jul · no incidents"></i><i data-tip="29 Jul · no incidents"></i><i data-tip="30 Jul · no incidents"></i><i data-tip="31 Jul · no incidents"></i><i data-tip="1 Aug · no incidents"></i><i data-tip="2 Aug · no incidents"></i><i data-tip="3 Aug · no incidents"></i><i data-tip="4 Aug · no incidents"></i><i data-tip="5 Aug · no incidents"></i><i data-tip="6 Aug · no incidents"></i><i data-tip="7 Aug · no incidents"></i><i data-tip="8 Aug · no incidents"></i><i data-tip="9 Aug · no incidents"></i><i data-tip="10 Aug · no incidents"></i><i data-tip="11 Aug · no incidents"></i><i data-tip="12 Aug · no incidents"></i><i data-tip="13 Aug · no incidents"></i><i data-tip="14 Aug · no incidents"></i><i data-tip="15 Aug · no incidents"></i><i data-tip="16 Aug · no incidents"></i><i data-tip="17 Aug · no incidents"></i><i data-tip="18 Aug · no incidents"></i><i data-tip="19 Aug · no incidents"></i><i data-tip="20 Aug · no incidents"></i><i data-tip="21 Aug · no incidents"></i><i data-tip="22 Aug · no incidents"></i><i data-tip="23 Aug · no incidents"></i><i data-tip="24 Aug · no incidents"></i><i data-tip="25 Aug · no incidents"></i><i data-tip="26 Aug · no incidents"></i><i data-tip="27 Aug · no incidents"></i><i data-tip="28 Aug · no incidents"></i><i data-tip="29 Aug · no incidents"></i><i data-tip="30 Aug · no incidents"></i><i data-tip="31 Aug · no incidents"></i><i data-tip="1 Sep · no incidents"></i><i data-tip="2 Sep · no incidents"></i><i data-tip="3 Sep · no incidents"></i><i data-tip="4 Sep · no incidents"></i><i data-tip="5 Sep · no incidents"></i><i data-tip="6 Sep · no incidents"></i><i data-tip="7 Sep · no incidents"></i><i data-tip="8 Sep · no incidents"></i><i data-tip="9 Sep · no incidents"></i><i data-tip="10 Sep · no incidents"></i><i data-tip="11 Sep · no incidents"></i><i data-tip="12 Sep · no incidents"></i><i data-tip="13 Sep · no incidents"></i><i data-tip="14 Sep · no incidents"></i><i data-tip="15 Sep · no incidents"></i><i data-tip="16 Sep · no incidents"></i><i data-tip="17 Sep · no incidents"></i><i data-tip="18 Sep · no incidents"></i><i data-tip="19 Sep · no incidents"></i><i data-tip="20 Sep · no incidents"></i><i data-tip="21 Sep · no incidents"></i><i data-tip="22 Sep · no incidents"></i><i data-tip="23 Sep · no incidents"></i><i data-tip="24 Sep · no incidents"></i><i data-tip="25 Sep · no incidents"></i><i data-tip="26 Sep · no incidents"></i><i data-tip="27 Sep · no incidents"></i><i data-tip="28 Sep · no incidents"></i><i data-tip="29 Sep · no incidents"></i><i data-tip="30 Sep · no incidents"></i><i data-tip="1 Oct · no incidents"></i></div></div>
  <div class="mn-uptime-row"><div class="mn-uptime-head"><strong>Webhooks</strong><span class="mn-badge mn-badge-soft mn-warning">Degraded</span><small>99.71% · 90 days</small></div><div class="mn-uptime-bars" role="img" aria-label="Webhooks, 90 days: one outage and two degraded days, including today"><i data-tip="4 Jul · no incidents"></i><i data-tip="5 Jul · no incidents"></i><i data-tip="6 Jul · no incidents"></i><i data-tip="7 Jul · no incidents"></i><i data-tip="8 Jul · no incidents"></i><i data-tip="9 Jul · no incidents"></i><i data-tip="10 Jul · no incidents"></i><i data-tip="11 Jul · no incidents"></i><i data-tip="12 Jul · no incidents"></i><i data-tip="13 Jul · no incidents"></i><i data-tip="14 Jul · no incidents"></i><i data-tip="15 Jul · no incidents"></i><i data-tip="16 Jul · no incidents"></i><i data-tip="17 Jul · no incidents"></i><i data-tip="18 Jul · no incidents"></i><i data-tip="19 Jul · no incidents"></i><i data-tip="20 Jul · no incidents"></i><i data-tip="21 Jul · no incidents"></i><i data-tip="22 Jul · no incidents"></i><i data-tip="23 Jul · no incidents"></i><i data-tip="24 Jul · no incidents"></i><i data-tip="25 Jul · no incidents"></i><i data-tip="26 Jul · no incidents"></i><i data-s="down" data-tip="27 Jul · outage for 3 h 10 min"></i><i data-s="degraded" data-tip="28 Jul · delayed deliveries"></i><i data-tip="29 Jul · no incidents"></i><i data-tip="30 Jul · no incidents"></i><i data-tip="31 Jul · no incidents"></i><i data-tip="1 Aug · no incidents"></i><i data-tip="2 Aug · no incidents"></i><i data-tip="3 Aug · no incidents"></i><i data-tip="4 Aug · no incidents"></i><i data-tip="5 Aug · no incidents"></i><i data-tip="6 Aug · no incidents"></i><i data-tip="7 Aug · no incidents"></i><i data-tip="8 Aug · no incidents"></i><i data-tip="9 Aug · no incidents"></i><i data-tip="10 Aug · no incidents"></i><i data-tip="11 Aug · no incidents"></i><i data-tip="12 Aug · no incidents"></i><i data-tip="13 Aug · no incidents"></i><i data-tip="14 Aug · no incidents"></i><i data-tip="15 Aug · no incidents"></i><i data-tip="16 Aug · no incidents"></i><i data-tip="17 Aug · no incidents"></i><i data-tip="18 Aug · no incidents"></i><i data-tip="19 Aug · no incidents"></i><i data-tip="20 Aug · no incidents"></i><i data-tip="21 Aug · no incidents"></i><i data-tip="22 Aug · no incidents"></i><i data-tip="23 Aug · no incidents"></i><i data-tip="24 Aug · no incidents"></i><i data-tip="25 Aug · no incidents"></i><i data-tip="26 Aug · no incidents"></i><i data-tip="27 Aug · no incidents"></i><i data-tip="28 Aug · no incidents"></i><i data-tip="29 Aug · no incidents"></i><i data-tip="30 Aug · no incidents"></i><i data-tip="31 Aug · no incidents"></i><i data-tip="1 Sep · no incidents"></i><i data-tip="2 Sep · no incidents"></i><i data-tip="3 Sep · no incidents"></i><i data-tip="4 Sep · no incidents"></i><i data-tip="5 Sep · no incidents"></i><i data-tip="6 Sep · no incidents"></i><i data-tip="7 Sep · no incidents"></i><i data-tip="8 Sep · no incidents"></i><i data-tip="9 Sep · no incidents"></i><i data-tip="10 Sep · no incidents"></i><i data-tip="11 Sep · no incidents"></i><i data-tip="12 Sep · no incidents"></i><i data-tip="13 Sep · no incidents"></i><i data-tip="14 Sep · no incidents"></i><i data-tip="15 Sep · no incidents"></i><i data-tip="16 Sep · no incidents"></i><i data-tip="17 Sep · no incidents"></i><i data-tip="18 Sep · no incidents"></i><i data-tip="19 Sep · no incidents"></i><i data-tip="20 Sep · no incidents"></i><i data-tip="21 Sep · no incidents"></i><i data-tip="22 Sep · no incidents"></i><i data-tip="23 Sep · no incidents"></i><i data-tip="24 Sep · no incidents"></i><i data-tip="25 Sep · no incidents"></i><i data-tip="26 Sep · no incidents"></i><i data-tip="27 Sep · no incidents"></i><i data-tip="28 Sep · no incidents"></i><i data-tip="29 Sep · no incidents"></i><i data-tip="30 Sep · no incidents"></i><i data-s="degraded" data-tip="1 Oct · delayed deliveries, ongoing"></i></div><div class="mn-uptime-foot"><span>90 days ago</span><span>Today</span></div></div>
</div>
```

## Source

Already inside mian.css; you do not need it to use the component. To vendor or customise: https://mian.ro/api/v1/components/uptime/source
