mirror of
https://github.com/Nezumi-2711/uptime-monitoring.git
synced 2026-09-22 13:48:31 +00:00
fix: improve the ui for monitor page
This commit is contained in:
@@ -50,7 +50,7 @@ export function LatencySparkline({ checks }: { checks: Check[] }) {
|
|||||||
<ChartTooltip
|
<ChartTooltip
|
||||||
content={
|
content={
|
||||||
<ChartTooltipContent
|
<ChartTooltipContent
|
||||||
className="min-w-36 gap-1.5 rounded-[6px] border-(--hairline) bg-white/97 px-3 py-2.5 shadow-[0_8px_24px_rgb(24_74_52/0.1),0_2px_6px_rgb(0_0_0/0.04)] backdrop-blur-sm"
|
className="monitor-chart-tooltip min-w-36 gap-1.5 rounded-[6px] border-(--hairline) bg-white/97 px-3 py-2.5 shadow-[0_8px_24px_rgb(24_74_52/0.1),0_2px_6px_rgb(0_0_0/0.04)] backdrop-blur-sm"
|
||||||
labelFormatter={(_, payload) => new Date((payload[0].payload as LatencyDatum).t).toLocaleString()}
|
labelFormatter={(_, payload) => new Date((payload[0].payload as LatencyDatum).t).toLocaleString()}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ export function UptimeBar({ checks }: { checks: Check[] }) {
|
|||||||
<ChartTooltip
|
<ChartTooltip
|
||||||
content={
|
content={
|
||||||
<ChartTooltipContent
|
<ChartTooltipContent
|
||||||
className="min-w-36 gap-1.5 rounded-[6px] border-(--hairline) bg-white/97 px-3 py-2.5 shadow-[0_8px_24px_rgb(24_74_52/0.1),0_2px_6px_rgb(0_0_0/0.04)] backdrop-blur-sm"
|
className="monitor-chart-tooltip min-w-36 gap-1.5 rounded-[6px] border-(--hairline) bg-white/97 px-3 py-2.5 shadow-[0_8px_24px_rgb(24_74_52/0.1),0_2px_6px_rgb(0_0_0/0.04)] backdrop-blur-sm"
|
||||||
hideIndicator={false}
|
hideIndicator={false}
|
||||||
nameKey="status"
|
nameKey="status"
|
||||||
labelFormatter={(_, payload) => formatBucketTime(payload[0].payload as UptimeDatum)}
|
labelFormatter={(_, payload) => formatBucketTime(payload[0].payload as UptimeDatum)}
|
||||||
|
|||||||
+1
-429
@@ -5,6 +5,7 @@
|
|||||||
@import './styles/LoginPage.css';
|
@import './styles/LoginPage.css';
|
||||||
@import './styles/StatusPage.css';
|
@import './styles/StatusPage.css';
|
||||||
@import './styles/DashboardPage.css';
|
@import './styles/DashboardPage.css';
|
||||||
|
@import './styles/MonitorDetailPage.css';
|
||||||
|
|
||||||
@custom-variant dark (&:is(.dark *));
|
@custom-variant dark (&:is(.dark *));
|
||||||
|
|
||||||
@@ -406,9 +407,6 @@ button {
|
|||||||
animation: spin 900ms linear infinite;
|
animation: spin 900ms linear infinite;
|
||||||
}
|
}
|
||||||
|
|
||||||
.detail-main {
|
|
||||||
padding-top: 34px;
|
|
||||||
}
|
|
||||||
.back-link {
|
.back-link {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -427,246 +425,6 @@ button {
|
|||||||
width: 15px;
|
width: 15px;
|
||||||
height: 15px;
|
height: 15px;
|
||||||
}
|
}
|
||||||
.detail-hero {
|
|
||||||
display: flex;
|
|
||||||
align-items: flex-end;
|
|
||||||
justify-content: space-between;
|
|
||||||
gap: 32px;
|
|
||||||
margin-top: 34px;
|
|
||||||
padding-bottom: 36px;
|
|
||||||
border-bottom: 1px solid #e7e7e7;
|
|
||||||
}
|
|
||||||
.detail-title {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 18px;
|
|
||||||
min-width: 0;
|
|
||||||
}
|
|
||||||
.status-orb {
|
|
||||||
flex: 0 0 auto;
|
|
||||||
width: 16px;
|
|
||||||
height: 16px;
|
|
||||||
border: 4px solid #f2d4d4;
|
|
||||||
border-radius: 50%;
|
|
||||||
background: #c74f4f;
|
|
||||||
box-shadow: 0 0 0 8px #fff;
|
|
||||||
}
|
|
||||||
.status-orb.online {
|
|
||||||
border-color: #c5f1df;
|
|
||||||
background: var(--primary-deep);
|
|
||||||
}
|
|
||||||
.status-orb.pending {
|
|
||||||
border-color: #f6e2c8;
|
|
||||||
background: #d8892f;
|
|
||||||
}
|
|
||||||
.status-orb.checking {
|
|
||||||
border-color: #eee5bd;
|
|
||||||
background: #c6aa38;
|
|
||||||
}
|
|
||||||
.detail-title h1 {
|
|
||||||
margin: 0;
|
|
||||||
overflow: hidden;
|
|
||||||
font-size: 40px;
|
|
||||||
font-weight: 500;
|
|
||||||
line-height: 1.1;
|
|
||||||
letter-spacing: -1.5px;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
.detail-title a {
|
|
||||||
display: inline-flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 6px;
|
|
||||||
max-width: min(70vw, 680px);
|
|
||||||
margin-top: 9px;
|
|
||||||
overflow: hidden;
|
|
||||||
font:
|
|
||||||
400 13px/1.4 'IBM Plex Mono',
|
|
||||||
monospace;
|
|
||||||
color: var(--muted);
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
.detail-title a:hover {
|
|
||||||
color: var(--primary-deep);
|
|
||||||
}
|
|
||||||
.detail-title a svg {
|
|
||||||
flex: 0 0 auto;
|
|
||||||
width: 13px;
|
|
||||||
height: 13px;
|
|
||||||
}
|
|
||||||
.detail-actions {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 18px;
|
|
||||||
}
|
|
||||||
.muted-alert {
|
|
||||||
display: inline-flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 6px;
|
|
||||||
font-size: 12px;
|
|
||||||
color: var(--muted);
|
|
||||||
}
|
|
||||||
.muted-alert svg {
|
|
||||||
width: 14px;
|
|
||||||
height: 14px;
|
|
||||||
}
|
|
||||||
.sla-grid {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(5, 1fr);
|
|
||||||
gap: 12px;
|
|
||||||
margin-top: 24px;
|
|
||||||
}
|
|
||||||
.sla-card {
|
|
||||||
min-width: 0;
|
|
||||||
padding: 20px;
|
|
||||||
border: 1px solid #e3e3e3;
|
|
||||||
border-radius: 8px;
|
|
||||||
background: #fff;
|
|
||||||
}
|
|
||||||
.sla-card p {
|
|
||||||
margin: 0 0 17px;
|
|
||||||
font-size: 12px;
|
|
||||||
color: var(--muted);
|
|
||||||
}
|
|
||||||
.sla-card strong {
|
|
||||||
display: block;
|
|
||||||
font:
|
|
||||||
500 23px/1 'IBM Plex Mono',
|
|
||||||
monospace;
|
|
||||||
letter-spacing: -1px;
|
|
||||||
}
|
|
||||||
.sla-card span {
|
|
||||||
display: block;
|
|
||||||
margin-top: 11px;
|
|
||||||
overflow: hidden;
|
|
||||||
font-size: 11px;
|
|
||||||
color: var(--faint);
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
.sla-card.incident-summary {
|
|
||||||
background: #fafafa;
|
|
||||||
}
|
|
||||||
.sla-card.incident-summary.has-incident {
|
|
||||||
border-color: #e8c3c3;
|
|
||||||
background: #fff8f8;
|
|
||||||
}
|
|
||||||
.sla-card.incident-summary.has-incident strong {
|
|
||||||
color: #a83e3e;
|
|
||||||
}
|
|
||||||
.detail-grid {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.75fr);
|
|
||||||
gap: 16px;
|
|
||||||
margin-top: 16px;
|
|
||||||
}
|
|
||||||
.detail-grid.lower-grid {
|
|
||||||
align-items: stretch;
|
|
||||||
}
|
|
||||||
.lower-grid > .data-panel {
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
.data-panel {
|
|
||||||
overflow: hidden;
|
|
||||||
border: 1px solid #dedede;
|
|
||||||
border-radius: 8px;
|
|
||||||
background: #fff;
|
|
||||||
}
|
|
||||||
.data-panel-heading {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
gap: 20px;
|
|
||||||
min-height: 82px;
|
|
||||||
padding: 18px 22px;
|
|
||||||
border-bottom: 1px solid #ededed;
|
|
||||||
}
|
|
||||||
.data-panel-heading .overline {
|
|
||||||
margin-bottom: 5px;
|
|
||||||
}
|
|
||||||
.data-panel-heading h2 {
|
|
||||||
margin: 0;
|
|
||||||
font-size: 18px;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
.data-panel-heading > span {
|
|
||||||
font:
|
|
||||||
400 11px/1.4 'IBM Plex Mono',
|
|
||||||
monospace;
|
|
||||||
color: var(--faint);
|
|
||||||
}
|
|
||||||
.configuration-panel {
|
|
||||||
margin-top: 16px;
|
|
||||||
}
|
|
||||||
.config-list {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
.config-row {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
gap: 20px;
|
|
||||||
padding: 14px 22px;
|
|
||||||
border-bottom: 1px solid #f0f0f0;
|
|
||||||
}
|
|
||||||
.config-row:last-child {
|
|
||||||
border-bottom: 0;
|
|
||||||
}
|
|
||||||
.config-row dt {
|
|
||||||
font-size: 12px;
|
|
||||||
color: var(--muted);
|
|
||||||
}
|
|
||||||
.config-row dd {
|
|
||||||
margin: 0;
|
|
||||||
font:
|
|
||||||
400 13px/1.4 'IBM Plex Mono',
|
|
||||||
monospace;
|
|
||||||
color: var(--ink);
|
|
||||||
}
|
|
||||||
.config-row .config-row-actions {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 10px;
|
|
||||||
}
|
|
||||||
.config-row-actions .row-action {
|
|
||||||
font-family: 'DM Sans', 'Helvetica Neue', sans-serif;
|
|
||||||
}
|
|
||||||
.config-danger {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
gap: 16px;
|
|
||||||
padding: 16px 22px;
|
|
||||||
border-top: 1px solid #ededed;
|
|
||||||
background: #fdfafa;
|
|
||||||
}
|
|
||||||
.config-danger p {
|
|
||||||
margin: 0;
|
|
||||||
font-size: 12px;
|
|
||||||
color: var(--muted);
|
|
||||||
}
|
|
||||||
.chart-panel {
|
|
||||||
min-height: 330px;
|
|
||||||
}
|
|
||||||
.sparkline-wrap {
|
|
||||||
position: relative;
|
|
||||||
height: 245px;
|
|
||||||
padding: 26px 24px 24px;
|
|
||||||
background: linear-gradient(180deg, #fdfefe, #fff);
|
|
||||||
}
|
|
||||||
.chart-scale {
|
|
||||||
position: absolute;
|
|
||||||
inset: 19px 22px 20px auto;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: space-between;
|
|
||||||
pointer-events: none;
|
|
||||||
font:
|
|
||||||
400 9px/1 'IBM Plex Mono',
|
|
||||||
monospace;
|
|
||||||
color: #aaa;
|
|
||||||
}
|
|
||||||
.table-empty {
|
.table-empty {
|
||||||
display: grid;
|
display: grid;
|
||||||
min-height: 150px;
|
min-height: 150px;
|
||||||
@@ -676,141 +434,11 @@ button {
|
|||||||
color: var(--muted);
|
color: var(--muted);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
.uptime-panel {
|
|
||||||
min-height: 330px;
|
|
||||||
}
|
|
||||||
.uptime-bar {
|
|
||||||
height: 148px;
|
|
||||||
padding: 24px 22px 18px;
|
|
||||||
background: linear-gradient(180deg, #fcfefd 0%, #fff 100%);
|
|
||||||
}
|
|
||||||
.uptime-legend {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
padding: 14px 22px 0;
|
|
||||||
border-top: 1px solid #f0f0f0;
|
|
||||||
font-size: 10px;
|
|
||||||
color: #999;
|
|
||||||
}
|
|
||||||
.uptime-legend span {
|
|
||||||
display: inline-flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 5px;
|
|
||||||
}
|
|
||||||
.uptime-legend i {
|
|
||||||
width: 6px;
|
|
||||||
height: 6px;
|
|
||||||
border-radius: 50%;
|
|
||||||
background: var(--primary-deep);
|
|
||||||
}
|
|
||||||
.uptime-legend i.legend-down {
|
|
||||||
margin-left: 5px;
|
|
||||||
background: var(--chart-down);
|
|
||||||
}
|
|
||||||
.uptime-legend i.legend-degraded {
|
|
||||||
margin-left: 5px;
|
|
||||||
background: var(--chart-degraded);
|
|
||||||
}
|
|
||||||
.data-table-wrap {
|
|
||||||
overflow-x: auto;
|
|
||||||
}
|
|
||||||
.recent-checks-panel {
|
|
||||||
display: flex;
|
|
||||||
min-height: 0;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
.incidents-panel {
|
.incidents-panel {
|
||||||
display: flex;
|
display: flex;
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
.recent-checks-scroll,
|
|
||||||
.incident-list {
|
|
||||||
max-height: clamp(320px, 52vh, 556px);
|
|
||||||
overflow: auto;
|
|
||||||
overscroll-behavior: contain;
|
|
||||||
scrollbar-color: #b8c7c0 #f4f6f5;
|
|
||||||
scrollbar-gutter: stable;
|
|
||||||
scrollbar-width: thin;
|
|
||||||
}
|
|
||||||
.recent-checks-scroll:focus-visible,
|
|
||||||
.incident-list:focus-visible {
|
|
||||||
outline: 2px solid rgb(36 180 126 / 0.45);
|
|
||||||
outline-offset: -2px;
|
|
||||||
}
|
|
||||||
.recent-checks-scroll::-webkit-scrollbar,
|
|
||||||
.incident-list::-webkit-scrollbar {
|
|
||||||
width: 9px;
|
|
||||||
height: 9px;
|
|
||||||
}
|
|
||||||
.recent-checks-scroll::-webkit-scrollbar-track,
|
|
||||||
.incident-list::-webkit-scrollbar-track {
|
|
||||||
background: #f4f6f5;
|
|
||||||
}
|
|
||||||
.recent-checks-scroll::-webkit-scrollbar-thumb,
|
|
||||||
.incident-list::-webkit-scrollbar-thumb {
|
|
||||||
border: 2px solid #f4f6f5;
|
|
||||||
border-radius: 999px;
|
|
||||||
background: #b8c7c0;
|
|
||||||
}
|
|
||||||
.recent-checks-scroll::-webkit-scrollbar-thumb:hover,
|
|
||||||
.incident-list::-webkit-scrollbar-thumb:hover {
|
|
||||||
background: #91a69d;
|
|
||||||
}
|
|
||||||
.incident-list {
|
|
||||||
min-height: 0;
|
|
||||||
}
|
|
||||||
.incident-list article {
|
|
||||||
display: flex;
|
|
||||||
gap: 13px;
|
|
||||||
padding: 18px 20px;
|
|
||||||
}
|
|
||||||
.incident-list article > div {
|
|
||||||
min-width: 0;
|
|
||||||
}
|
|
||||||
.incident-list article + article {
|
|
||||||
border-top: 1px solid #ededed;
|
|
||||||
}
|
|
||||||
.incident-list article > span {
|
|
||||||
display: grid;
|
|
||||||
flex: 0 0 auto;
|
|
||||||
width: 30px;
|
|
||||||
height: 30px;
|
|
||||||
place-items: center;
|
|
||||||
border-radius: 50%;
|
|
||||||
color: #16885b;
|
|
||||||
background: #eaf9f2;
|
|
||||||
}
|
|
||||||
.incident-list article.open > span {
|
|
||||||
color: #aa4141;
|
|
||||||
background: #fff0f0;
|
|
||||||
}
|
|
||||||
.incident-list article svg {
|
|
||||||
width: 15px;
|
|
||||||
height: 15px;
|
|
||||||
}
|
|
||||||
.incident-list strong {
|
|
||||||
font-size: 13px;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
.incident-list p {
|
|
||||||
margin: 4px 0 6px;
|
|
||||||
overflow-wrap: anywhere;
|
|
||||||
font-size: 12px;
|
|
||||||
line-height: 1.45;
|
|
||||||
color: var(--muted);
|
|
||||||
}
|
|
||||||
.incident-list small {
|
|
||||||
font:
|
|
||||||
400 10px/1.4 'IBM Plex Mono',
|
|
||||||
monospace;
|
|
||||||
color: #aaa;
|
|
||||||
}
|
|
||||||
.incident-list .incident-raw {
|
|
||||||
display: block;
|
|
||||||
margin: -1px 0 5px;
|
|
||||||
overflow-wrap: anywhere;
|
|
||||||
}
|
|
||||||
.settings-main {
|
.settings-main {
|
||||||
width: min(760px, calc(100% - 48px));
|
width: min(760px, calc(100% - 48px));
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
@@ -1532,13 +1160,6 @@ button {
|
|||||||
.form-actions.compact-actions {
|
.form-actions.compact-actions {
|
||||||
grid-column: span 2;
|
grid-column: span 2;
|
||||||
}
|
}
|
||||||
.sla-grid {
|
|
||||||
grid-template-columns: repeat(3, 1fr);
|
|
||||||
}
|
|
||||||
.detail-grid,
|
|
||||||
.detail-grid.lower-grid {
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 760px) {
|
@media (max-width: 760px) {
|
||||||
@@ -1566,29 +1187,6 @@ button {
|
|||||||
.form-actions button {
|
.form-actions button {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
.detail-hero {
|
|
||||||
align-items: flex-start;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
.detail-actions {
|
|
||||||
flex-wrap: wrap;
|
|
||||||
}
|
|
||||||
.config-row {
|
|
||||||
flex-wrap: wrap;
|
|
||||||
}
|
|
||||||
.config-danger {
|
|
||||||
align-items: flex-start;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
.detail-title h1 {
|
|
||||||
font-size: 34px;
|
|
||||||
}
|
|
||||||
.sla-grid {
|
|
||||||
grid-template-columns: repeat(2, 1fr);
|
|
||||||
}
|
|
||||||
.sla-card.incident-summary {
|
|
||||||
grid-column: 1 / -1;
|
|
||||||
}
|
|
||||||
.settings-main {
|
.settings-main {
|
||||||
width: min(100% - 32px, 760px);
|
width: min(100% - 32px, 760px);
|
||||||
}
|
}
|
||||||
@@ -1674,21 +1272,6 @@ button {
|
|||||||
.row-action-icon {
|
.row-action-icon {
|
||||||
width: 40px;
|
width: 40px;
|
||||||
}
|
}
|
||||||
.detail-title {
|
|
||||||
align-items: flex-start;
|
|
||||||
}
|
|
||||||
.status-orb {
|
|
||||||
margin-top: 11px;
|
|
||||||
}
|
|
||||||
.sla-grid {
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
}
|
|
||||||
.sla-card.incident-summary {
|
|
||||||
grid-column: auto;
|
|
||||||
}
|
|
||||||
.data-panel-heading {
|
|
||||||
padding: 16px;
|
|
||||||
}
|
|
||||||
.settings-heading h1 {
|
.settings-heading h1 {
|
||||||
font-size: 34px;
|
font-size: 34px;
|
||||||
}
|
}
|
||||||
@@ -1750,17 +1333,6 @@ button {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.incident-detail-link {
|
|
||||||
display: inline-flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 10px;
|
|
||||||
border: 0;
|
|
||||||
padding: 0;
|
|
||||||
background: transparent;
|
|
||||||
color: inherit;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 640px) {
|
@media (max-width: 640px) {
|
||||||
.panel-heading {
|
.panel-heading {
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
|
|||||||
@@ -0,0 +1,879 @@
|
|||||||
|
/* ==========================================================================
|
||||||
|
Monitor Detail
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
.detail-main {
|
||||||
|
padding-top: 34px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail-hero {
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-end;
|
||||||
|
justify-content: space-between;
|
||||||
|
gap: 32px;
|
||||||
|
margin-top: 34px;
|
||||||
|
padding-bottom: 36px;
|
||||||
|
border-bottom: 1px solid #e7e7e7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail-title {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 18px;
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status-orb {
|
||||||
|
flex: 0 0 auto;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
border: 4px solid #f2d4d4;
|
||||||
|
border-radius: 50%;
|
||||||
|
background: #c74f4f;
|
||||||
|
box-shadow: 0 0 0 8px #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status-orb.online {
|
||||||
|
border-color: #c5f1df;
|
||||||
|
background: var(--primary-deep);
|
||||||
|
}
|
||||||
|
|
||||||
|
.status-orb.pending {
|
||||||
|
border-color: #f6e2c8;
|
||||||
|
background: #d8892f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status-orb.checking {
|
||||||
|
border-color: #eee5bd;
|
||||||
|
background: #c6aa38;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail-title h1 {
|
||||||
|
margin: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
font-size: 40px;
|
||||||
|
font-weight: 500;
|
||||||
|
line-height: 1.1;
|
||||||
|
letter-spacing: -1.5px;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail-title a {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 6px;
|
||||||
|
max-width: min(70vw, 680px);
|
||||||
|
margin-top: 9px;
|
||||||
|
overflow: hidden;
|
||||||
|
font:
|
||||||
|
400 13px/1.4 'IBM Plex Mono',
|
||||||
|
monospace;
|
||||||
|
color: var(--muted);
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail-title a:hover {
|
||||||
|
color: var(--primary-deep);
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail-title a svg {
|
||||||
|
flex: 0 0 auto;
|
||||||
|
width: 13px;
|
||||||
|
height: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail-actions {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.muted-alert {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 6px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
|
||||||
|
.muted-alert svg {
|
||||||
|
width: 14px;
|
||||||
|
height: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sla-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(5, 1fr);
|
||||||
|
gap: 12px;
|
||||||
|
margin-top: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sla-card {
|
||||||
|
min-width: 0;
|
||||||
|
padding: 20px;
|
||||||
|
border: 1px solid #e3e3e3;
|
||||||
|
border-radius: 8px;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sla-card p {
|
||||||
|
margin: 0 0 17px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
|
||||||
|
.sla-card strong {
|
||||||
|
display: block;
|
||||||
|
font:
|
||||||
|
500 23px/1 'IBM Plex Mono',
|
||||||
|
monospace;
|
||||||
|
letter-spacing: -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sla-card span {
|
||||||
|
display: block;
|
||||||
|
margin-top: 11px;
|
||||||
|
overflow: hidden;
|
||||||
|
font-size: 11px;
|
||||||
|
color: var(--faint);
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sla-card.incident-summary {
|
||||||
|
background: #fafafa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sla-card.incident-summary.has-incident {
|
||||||
|
border-color: #e8c3c3;
|
||||||
|
background: #fff8f8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sla-card.incident-summary.has-incident strong {
|
||||||
|
color: #a83e3e;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.75fr);
|
||||||
|
gap: 16px;
|
||||||
|
margin-top: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail-grid.lower-grid {
|
||||||
|
align-items: stretch;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lower-grid > .data-panel {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.data-panel {
|
||||||
|
overflow: hidden;
|
||||||
|
border: 1px solid #dedede;
|
||||||
|
border-radius: 8px;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.data-panel-heading {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
gap: 20px;
|
||||||
|
min-height: 82px;
|
||||||
|
padding: 18px 22px;
|
||||||
|
border-bottom: 1px solid #ededed;
|
||||||
|
}
|
||||||
|
|
||||||
|
.data-panel-heading .overline {
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.data-panel-heading h2 {
|
||||||
|
margin: 0;
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.data-panel-heading > span {
|
||||||
|
font:
|
||||||
|
400 11px/1.4 'IBM Plex Mono',
|
||||||
|
monospace;
|
||||||
|
color: var(--faint);
|
||||||
|
}
|
||||||
|
|
||||||
|
.configuration-panel {
|
||||||
|
margin-top: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.config-list {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.config-row {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
gap: 20px;
|
||||||
|
padding: 14px 22px;
|
||||||
|
border-bottom: 1px solid #f0f0f0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.config-row:last-child {
|
||||||
|
border-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.config-row dt {
|
||||||
|
font-size: 12px;
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
|
||||||
|
.config-row dd {
|
||||||
|
margin: 0;
|
||||||
|
font:
|
||||||
|
400 13px/1.4 'IBM Plex Mono',
|
||||||
|
monospace;
|
||||||
|
color: var(--ink);
|
||||||
|
}
|
||||||
|
|
||||||
|
.config-row .config-row-actions {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.config-row-actions .row-action {
|
||||||
|
font-family: 'DM Sans', 'Helvetica Neue', sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.config-danger {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
gap: 16px;
|
||||||
|
padding: 16px 22px;
|
||||||
|
border-top: 1px solid #ededed;
|
||||||
|
background: #fdfafa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.config-danger p {
|
||||||
|
margin: 0;
|
||||||
|
font-size: 12px;
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
|
||||||
|
.chart-panel,
|
||||||
|
.uptime-panel {
|
||||||
|
min-height: 330px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sparkline-wrap {
|
||||||
|
position: relative;
|
||||||
|
height: 245px;
|
||||||
|
padding: 26px 24px 24px;
|
||||||
|
background: linear-gradient(180deg, #fdfefe, #fff);
|
||||||
|
}
|
||||||
|
|
||||||
|
.chart-scale {
|
||||||
|
position: absolute;
|
||||||
|
inset: 19px 22px 20px auto;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-between;
|
||||||
|
pointer-events: none;
|
||||||
|
font:
|
||||||
|
400 9px/1 'IBM Plex Mono',
|
||||||
|
monospace;
|
||||||
|
color: #aaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.uptime-bar {
|
||||||
|
height: 148px;
|
||||||
|
padding: 24px 22px 18px;
|
||||||
|
background: linear-gradient(180deg, #fcfefd 0%, #fff 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.uptime-legend {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 14px 22px 0;
|
||||||
|
border-top: 1px solid #f0f0f0;
|
||||||
|
font-size: 10px;
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.uptime-legend span {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.uptime-legend i {
|
||||||
|
width: 6px;
|
||||||
|
height: 6px;
|
||||||
|
border-radius: 50%;
|
||||||
|
background: var(--primary-deep);
|
||||||
|
}
|
||||||
|
|
||||||
|
.uptime-legend i.legend-down {
|
||||||
|
margin-left: 5px;
|
||||||
|
background: var(--chart-down);
|
||||||
|
}
|
||||||
|
|
||||||
|
.uptime-legend i.legend-degraded {
|
||||||
|
margin-left: 5px;
|
||||||
|
background: var(--chart-degraded);
|
||||||
|
}
|
||||||
|
|
||||||
|
.data-table-wrap {
|
||||||
|
overflow-x: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recent-checks-panel {
|
||||||
|
display: flex;
|
||||||
|
min-height: 0;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recent-checks-scroll,
|
||||||
|
.incident-list {
|
||||||
|
max-height: clamp(320px, 52vh, 556px);
|
||||||
|
overflow: auto;
|
||||||
|
overscroll-behavior: contain;
|
||||||
|
scrollbar-color: #b8c7c0 #f4f6f5;
|
||||||
|
scrollbar-gutter: stable;
|
||||||
|
scrollbar-width: thin;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recent-checks-scroll:focus-visible,
|
||||||
|
.incident-list:focus-visible {
|
||||||
|
outline: 2px solid rgb(36 180 126 / 0.45);
|
||||||
|
outline-offset: -2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recent-checks-scroll::-webkit-scrollbar,
|
||||||
|
.incident-list::-webkit-scrollbar {
|
||||||
|
width: 9px;
|
||||||
|
height: 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recent-checks-scroll::-webkit-scrollbar-track,
|
||||||
|
.incident-list::-webkit-scrollbar-track {
|
||||||
|
background: #f4f6f5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recent-checks-scroll::-webkit-scrollbar-thumb,
|
||||||
|
.incident-list::-webkit-scrollbar-thumb {
|
||||||
|
border: 2px solid #f4f6f5;
|
||||||
|
border-radius: 999px;
|
||||||
|
background: #b8c7c0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recent-checks-scroll::-webkit-scrollbar-thumb:hover,
|
||||||
|
.incident-list::-webkit-scrollbar-thumb:hover {
|
||||||
|
background: #91a69d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.incident-list {
|
||||||
|
min-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.incident-list article {
|
||||||
|
display: flex;
|
||||||
|
gap: 13px;
|
||||||
|
padding: 18px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.incident-list article > div {
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.incident-list article + article {
|
||||||
|
border-top: 1px solid #ededed;
|
||||||
|
}
|
||||||
|
|
||||||
|
.incident-list article > span {
|
||||||
|
display: grid;
|
||||||
|
flex: 0 0 auto;
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
place-items: center;
|
||||||
|
border-radius: 50%;
|
||||||
|
color: #16885b;
|
||||||
|
background: #eaf9f2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.incident-list article.open > span {
|
||||||
|
color: #aa4141;
|
||||||
|
background: #fff0f0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.incident-list article svg {
|
||||||
|
width: 15px;
|
||||||
|
height: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.incident-list strong {
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.incident-list p {
|
||||||
|
margin: 4px 0 6px;
|
||||||
|
overflow-wrap: anywhere;
|
||||||
|
font-size: 12px;
|
||||||
|
line-height: 1.45;
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
|
||||||
|
.incident-list small {
|
||||||
|
font:
|
||||||
|
400 10px/1.4 'IBM Plex Mono',
|
||||||
|
monospace;
|
||||||
|
color: #aaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.incident-list .incident-raw {
|
||||||
|
display: block;
|
||||||
|
margin: -1px 0 5px;
|
||||||
|
overflow-wrap: anywhere;
|
||||||
|
}
|
||||||
|
|
||||||
|
.incident-detail-link {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 10px;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
color: inherit;
|
||||||
|
background: transparent;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 1000px) {
|
||||||
|
.sla-grid {
|
||||||
|
grid-template-columns: repeat(3, 1fr);
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail-grid,
|
||||||
|
.detail-grid.lower-grid {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 760px) {
|
||||||
|
.detail-hero {
|
||||||
|
align-items: flex-start;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail-actions {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.config-row {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.config-danger {
|
||||||
|
align-items: flex-start;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail-title h1 {
|
||||||
|
font-size: 34px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sla-grid {
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
}
|
||||||
|
|
||||||
|
.sla-card.incident-summary {
|
||||||
|
grid-column: 1 / -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 520px) {
|
||||||
|
.detail-title {
|
||||||
|
align-items: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status-orb {
|
||||||
|
margin-top: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sla-grid {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sla-card.incident-summary {
|
||||||
|
grid-column: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.data-panel-heading {
|
||||||
|
padding: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Dark operations console. */
|
||||||
|
|
||||||
|
.dark .detail-main {
|
||||||
|
position: relative;
|
||||||
|
isolation: isolate;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .detail-main::before {
|
||||||
|
position: absolute;
|
||||||
|
z-index: -1;
|
||||||
|
top: -110px;
|
||||||
|
left: 50%;
|
||||||
|
width: min(920px, 92vw);
|
||||||
|
height: 430px;
|
||||||
|
background:
|
||||||
|
radial-gradient(circle at 35% 20%, rgb(62 207 142 / 0.075), transparent 45%),
|
||||||
|
linear-gradient(90deg, rgb(255 255 255 / 0.018) 1px, transparent 1px), linear-gradient(rgb(255 255 255 / 0.018) 1px, transparent 1px);
|
||||||
|
background-size:
|
||||||
|
auto,
|
||||||
|
44px 44px,
|
||||||
|
44px 44px;
|
||||||
|
content: '';
|
||||||
|
mask-image: linear-gradient(to bottom, #000 0%, transparent 82%);
|
||||||
|
pointer-events: none;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .back-link {
|
||||||
|
color: #858d9a;
|
||||||
|
transition: color 160ms ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .back-link:hover {
|
||||||
|
color: #f3f4f6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .back-link svg {
|
||||||
|
color: #4ade80;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .detail-hero {
|
||||||
|
border-bottom-color: rgb(255 255 255 / 0.09);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .detail-title h1 {
|
||||||
|
color: #f8fafc;
|
||||||
|
text-shadow: 0 1px 18px rgb(0 0 0 / 0.22);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .detail-title a {
|
||||||
|
color: #929aa7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .detail-title a:hover {
|
||||||
|
color: #4ade80;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .status-orb {
|
||||||
|
border-color: rgb(248 113 113 / 0.24);
|
||||||
|
background: #f87171;
|
||||||
|
box-shadow:
|
||||||
|
0 0 0 8px #090b0d,
|
||||||
|
0 0 22px rgb(248 113 113 / 0.32);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .status-orb.online {
|
||||||
|
border-color: rgb(62 207 142 / 0.22);
|
||||||
|
background: #3ecf8e;
|
||||||
|
box-shadow:
|
||||||
|
0 0 0 8px #090b0d,
|
||||||
|
0 0 24px rgb(62 207 142 / 0.38);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .status-orb.pending {
|
||||||
|
border-color: rgb(245 158 11 / 0.24);
|
||||||
|
background: #f0a440;
|
||||||
|
box-shadow:
|
||||||
|
0 0 0 8px #090b0d,
|
||||||
|
0 0 22px rgb(245 158 11 / 0.28);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .status-orb.checking {
|
||||||
|
border-color: rgb(250 204 21 / 0.22);
|
||||||
|
background: #e6c94b;
|
||||||
|
box-shadow:
|
||||||
|
0 0 0 8px #090b0d,
|
||||||
|
0 0 22px rgb(250 204 21 / 0.25);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .muted-alert {
|
||||||
|
color: #929aa7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .sla-card {
|
||||||
|
position: relative;
|
||||||
|
border-color: rgb(255 255 255 / 0.085);
|
||||||
|
background: linear-gradient(145deg, #13161b 0%, #0f1115 100%);
|
||||||
|
box-shadow:
|
||||||
|
0 10px 26px rgb(0 0 0 / 0.22),
|
||||||
|
inset 0 1px rgb(255 255 255 / 0.035);
|
||||||
|
transition:
|
||||||
|
border-color 180ms ease,
|
||||||
|
transform 180ms ease,
|
||||||
|
box-shadow 180ms ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .sla-card::before {
|
||||||
|
position: absolute;
|
||||||
|
top: -1px;
|
||||||
|
left: 20px;
|
||||||
|
width: 34px;
|
||||||
|
height: 1px;
|
||||||
|
background: rgb(62 207 142 / 0.65);
|
||||||
|
content: '';
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .sla-card p {
|
||||||
|
color: #929aa7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .sla-card strong {
|
||||||
|
color: #f4f7f6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .sla-card span {
|
||||||
|
color: #737c89;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .sla-card.incident-summary {
|
||||||
|
background: linear-gradient(145deg, #15171b 0%, #101216 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .sla-card.incident-summary::before {
|
||||||
|
background: rgb(148 163 184 / 0.48);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .sla-card.incident-summary.has-incident {
|
||||||
|
border-color: rgb(248 113 113 / 0.3);
|
||||||
|
background: linear-gradient(145deg, rgb(73 28 31 / 0.58), #151114 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .sla-card.incident-summary.has-incident::before {
|
||||||
|
background: #f87171;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .sla-card.incident-summary.has-incident strong {
|
||||||
|
color: #fca5a5;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (hover: hover) {
|
||||||
|
.dark .sla-card:hover {
|
||||||
|
border-color: rgb(62 207 142 / 0.24);
|
||||||
|
box-shadow:
|
||||||
|
0 14px 34px rgb(0 0 0 / 0.3),
|
||||||
|
0 0 0 1px rgb(62 207 142 / 0.035),
|
||||||
|
inset 0 1px rgb(255 255 255 / 0.05);
|
||||||
|
transform: translateY(-2px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .data-panel {
|
||||||
|
border-color: rgb(255 255 255 / 0.085);
|
||||||
|
background: #101216;
|
||||||
|
box-shadow:
|
||||||
|
0 16px 38px rgb(0 0 0 / 0.27),
|
||||||
|
inset 0 1px rgb(255 255 255 / 0.03);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .data-panel-heading {
|
||||||
|
border-bottom-color: rgb(255 255 255 / 0.075);
|
||||||
|
background: linear-gradient(180deg, rgb(255 255 255 / 0.022), transparent);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .data-panel-heading h2 {
|
||||||
|
color: #f3f5f7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .data-panel-heading > span {
|
||||||
|
color: #7e8794;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .sparkline-wrap,
|
||||||
|
.dark .uptime-bar {
|
||||||
|
background: linear-gradient(180deg, rgb(62 207 142 / 0.025), transparent 55%), #0d0f13;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .sparkline-wrap .recharts-cartesian-grid line {
|
||||||
|
stroke: rgb(255 255 255 / 0.075);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .chart-scale {
|
||||||
|
color: #68717e;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .monitor-chart-tooltip {
|
||||||
|
border-color: rgb(255 255 255 / 0.12);
|
||||||
|
color: #e5e7eb;
|
||||||
|
background: rgb(19 22 27 / 0.96);
|
||||||
|
box-shadow:
|
||||||
|
0 16px 40px rgb(0 0 0 / 0.55),
|
||||||
|
inset 0 1px rgb(255 255 255 / 0.045);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .uptime-legend {
|
||||||
|
border-top-color: rgb(255 255 255 / 0.065);
|
||||||
|
color: #747d89;
|
||||||
|
background: #0f1115;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .recent-checks-scroll,
|
||||||
|
.dark .incident-list {
|
||||||
|
scrollbar-color: #3c4650 #0c0e11;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .recent-checks-scroll::-webkit-scrollbar-track,
|
||||||
|
.dark .incident-list::-webkit-scrollbar-track {
|
||||||
|
background: #0c0e11;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .recent-checks-scroll::-webkit-scrollbar-thumb,
|
||||||
|
.dark .incident-list::-webkit-scrollbar-thumb {
|
||||||
|
border-color: #0c0e11;
|
||||||
|
background: #3c4650;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .recent-checks-scroll::-webkit-scrollbar-thumb:hover,
|
||||||
|
.dark .incident-list::-webkit-scrollbar-thumb:hover {
|
||||||
|
background: #53606b;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .recent-checks-panel [data-slot='table-row'] {
|
||||||
|
transition: background-color 140ms ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .recent-checks-panel [data-slot='table-body'] [data-slot='table-row']:hover {
|
||||||
|
background: rgb(255 255 255 / 0.022);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .recent-checks-panel code {
|
||||||
|
color: #c7ced7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .incident-list article + article {
|
||||||
|
border-top-color: rgb(255 255 255 / 0.065);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .incident-list article {
|
||||||
|
transition: background-color 140ms ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .incident-list article:hover {
|
||||||
|
background: rgb(255 255 255 / 0.022);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .incident-list article > span {
|
||||||
|
color: #4ade80;
|
||||||
|
background: rgb(62 207 142 / 0.105);
|
||||||
|
box-shadow: inset 0 0 0 1px rgb(62 207 142 / 0.12);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .incident-list article.open > span {
|
||||||
|
color: #f87171;
|
||||||
|
background: rgb(248 113 113 / 0.1);
|
||||||
|
box-shadow: inset 0 0 0 1px rgb(248 113 113 / 0.14);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .incident-list strong {
|
||||||
|
color: #e8ebef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .incident-detail-link:hover strong {
|
||||||
|
color: #4ade80;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .incident-list p {
|
||||||
|
color: #9ca3af;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .incident-list small {
|
||||||
|
color: #747d89;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .config-row {
|
||||||
|
border-bottom-color: rgb(255 255 255 / 0.065);
|
||||||
|
transition: background-color 140ms ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .config-row:hover {
|
||||||
|
background: rgb(255 255 255 / 0.018);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .config-row dt {
|
||||||
|
color: #929aa7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .config-row dd {
|
||||||
|
color: #e5e7eb;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .config-row-actions > span {
|
||||||
|
color: #4ade80;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .config-danger {
|
||||||
|
border-top-color: rgb(248 113 113 / 0.14);
|
||||||
|
background: linear-gradient(90deg, rgb(127 29 29 / 0.11), transparent 52%), #111215;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .config-danger p {
|
||||||
|
color: #929aa7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .detail-hero,
|
||||||
|
.dark .sla-grid,
|
||||||
|
.dark .detail-grid,
|
||||||
|
.dark .configuration-panel {
|
||||||
|
animation: monitor-detail-enter 420ms both cubic-bezier(0.22, 1, 0.36, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .sla-grid {
|
||||||
|
animation-delay: 45ms;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .detail-grid {
|
||||||
|
animation-delay: 90ms;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .detail-grid.lower-grid {
|
||||||
|
animation-delay: 135ms;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .configuration-panel {
|
||||||
|
animation-delay: 180ms;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes monitor-detail-enter {
|
||||||
|
from {
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateY(8px);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
opacity: 1;
|
||||||
|
transform: translateY(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 520px) {
|
||||||
|
.dark .detail-main::before {
|
||||||
|
top: -80px;
|
||||||
|
height: 330px;
|
||||||
|
background-size:
|
||||||
|
auto,
|
||||||
|
34px 34px,
|
||||||
|
34px 34px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .sla-card {
|
||||||
|
padding: 18px;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user