-
-
- }
- />
- } />
- }
- />
+
+
+
+
+ }
+ />
+
+
+ } />
+
+
+ }
+ />
+
+
-
-
{videoQualitySettings}
+
+
+
+ {videoQualitySettings}
+
+
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
);
diff --git a/web/pages/offline-notice.tsx b/web/pages/offline-notice.tsx
index a5bb16ab8..28b059616 100644
--- a/web/pages/offline-notice.tsx
+++ b/web/pages/offline-notice.tsx
@@ -1,5 +1,5 @@
import Link from 'next/link';
-import { Result, Card } from 'antd';
+import { Result, Card, Row, Col } from 'antd';
import {
MessageTwoTone,
QuestionCircleTwoTone,
@@ -55,22 +55,23 @@ export default function Offline({ logs = [] }) {
return (
<>
-
-
+
+
}
title="No stream is active."
subTitle="You should start one."
/>
-
-
+
+
+
{data.map(item => (
-
+
))}
-
-
+
+
>
);
diff --git a/web/pages/viewer-info.tsx b/web/pages/viewer-info.tsx
index b54b08f47..eaa73a8eb 100644
--- a/web/pages/viewer-info.tsx
+++ b/web/pages/viewer-info.tsx
@@ -1,5 +1,5 @@
import React, { useState, useEffect, useContext } from 'react';
-import { Table, Row } from 'antd';
+import { Table, Row, Typography } from 'antd';
import { formatDistanceToNow } from 'date-fns';
import { UserOutlined } from '@ant-design/icons';
import { SortOrder } from 'antd/lib/table/interface';
@@ -94,7 +94,9 @@ export default function ViewersOverTime() {
];
return (
-
+ <>
+
Viewer Info
+
{online && (
{online && row.clientID} />}
-
+ >
);
}
diff --git a/web/styles/ant-overrides.scss b/web/styles/ant-overrides.scss
index e275a075f..03e03f381 100644
--- a/web/styles/ant-overrides.scss
+++ b/web/styles/ant-overrides.scss
@@ -9,6 +9,9 @@
.ant-card,
.ant-collapse,
.ant-collapse-content,
+.ant-statistic,
+.ant-statistic-title,
+.ant-statistic-content,
.ant-table,
.ant-table-thead > tr > th,
.ant-table-small .ant-table-thead > tr > th,
@@ -187,12 +190,10 @@ h3.ant-typography {
.ant-card-meta-description {
color: var(--white-75);
}
-.ant-card {
- .ant-statistic,
- .ant-statistic-title,
- .ant-statistic-content {
- color: var(--default-text-color);
- }
+.ant-card-type-inner .ant-card-head {
+ background-color: var(--black);
+ color: var(--white-88);
+ border-color: var(--white-25);
}
@@ -262,7 +263,6 @@ textarea.ant-input {
&:hover,
&:focus {
background-color: var(--button-focused);
- border-color: var(--button-focused);
color: var(--white);
}
}
@@ -273,11 +273,16 @@ textarea.ant-input {
.ant-btn-primary:hover,
.ant-btn-primary:focus {
background-color: var(--button-focused);
- border-color: var(--button-focused);
+ color: var(--white);
}
.ant-btn.ant-btn-primary:hover {
border-color: var(--white);
}
+.ant-btn:focus,
+.ant-btn-primary:focus {
+ border-color: var(--white);
+}
+
.ant-btn-primary[disabled] {
background-color: var(--white-25);
border-color: var(--white-25);
@@ -375,9 +380,29 @@ textarea.ant-input {
// SELECT
.ant-select-dropdown {
- background-color: var(--gray);
+ background-color: var(--black);
+}
+.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
+ background-color: var(--black);
+ border-color: var(--owncast-purple-50);
+}
+.ant-select-arrow {
+ color: var(--owncast-purple);
+}
+.ant-select-selection-placeholder {
+ color: var(--owncast-purple-50);
+}
+.ant-select {
+ color: var(--white);
+}
+.ant-select-item {
+ background-color: var(--gray-dark);
+ color: var(--white-88);
+}
+.ant-select-item-option-active:not(.ant-select-item-option-disabled) {
+ background-color: var(--gray);
+ color: var(--white-75);
}
-
// SLIDER
// .ant-slider-with-marks {
@@ -460,13 +485,12 @@ textarea.ant-input {
-
// ANT TAGS
-
-.ant-tag-orange {
- background: #fa8c16;
- color: #fff7e6;
- border-color: #ffd591;
+.ant-tag-red,
+.ant-tag-orange,
+.ant-tag-green,
+.ant-tag-blue {
+ background-color: var(--black);
}
diff --git a/web/styles/config-public-details.scss b/web/styles/config-public-details.scss
index f1e50acbf..c97ad7e4d 100644
--- a/web/styles/config-public-details.scss
+++ b/web/styles/config-public-details.scss
@@ -69,4 +69,8 @@
height: 6em !important;
}
}
-}
\ No newline at end of file
+}
+
+.other-field-container {
+ margin: .5em 0;
+}
diff --git a/web/styles/config-socialhandles.scss b/web/styles/config-socialhandles.scss
index 9e880c935..188d0d92a 100644
--- a/web/styles/config-socialhandles.scss
+++ b/web/styles/config-socialhandles.scss
@@ -31,7 +31,7 @@
flex-direction: row;
align-items: center;
justify-content: flex-start;
- color: rgba(255,255,255,.85);
+ color: var(--white-75);
.option-icon {
height: 2em;
diff --git a/web/styles/home.scss b/web/styles/home.scss
index 68fd41559..dbb9f9643 100644
--- a/web/styles/home.scss
+++ b/web/styles/home.scss
@@ -1,121 +1,45 @@
.home-container {
max-width: 1000px;
- .statistics-list {
- li {
- margin-left: -.5em;
- }
- }
-
- .section {
- margin: 1rem 0;
-
- .ant-statistic-content {
- font-size: 1rem;
- }
- }
-
.online-status-section {
- > .ant-card {
- box-shadow: 0px 1px 10px 2px rgba(0, 22, 40, 0.1);
+ margin-bottom: 1em;
+ .online-details-card {
+ border-color: var(--online-color);
}
-
- .ant-card-head {
- background-color: #40b246;
- border-color: #ccc;
- color:#fff;
- @media (prefers-color-scheme: dark) {
- background-color: #2a762e;
- border-bottom-color: black;
- }
- }
- .ant-card-head-title {
- font-size: .88rem;
+ .ant-statistic {
+ text-align: center;
}
.ant-statistic-title {
- font-size: .88rem;
- }
- .ant-card-body {
- display: flex;
- flex-direction: row;
- justify-content: center;
- align-items: flex-start;
- .ant-statistic {
- width: 30%;
- text-align: center;
- margin: 0 1rem;
- }
+ color: var(--white-50);
}
}
+ .ant-card-head {
+ color: var(--online-color);
+ }
- .stream-details-section {
- display: flex;
- flex-direction: row;
- justify-content: space-between;
- align-items: flex-start;
- width: 100%;
- .details {
- width: 49%;
-
- > .ant-card {
- margin-bottom: 1rem;
- }
-
- .ant-card-head {
- background-color: #ccd;
- color: black;
- @media (prefers-color-scheme: dark) {
- background-color: #000;
- color: #ccd;
- }
-
- }
+ .stream-details-item-container {
+ margin: 1em 0;
+ &:first-of-type {
+ margin-top: 0;
}
- .server-detail {
- .ant-card-body {
- display: flex;
- flex-direction: row;
- justify-content: space-between;
- align-items: flex-start;
-
- .ant-card {
- width: 45%;
- text-align: center;
- }
- }
- .ant-card-head {
- background-color: #669;
- color: #fff;
- }
+ }
+ .ant-statistic.stream-details-item {
+ background-color: var(--black-50);
+ padding: 1em;
+ .ant-statistic-title {
+ color: var(--blue);
+ }
+ .ant-statistic-content {
+ font-size: 1.25em;
+ white-space: nowrap;
}
}
-
- @media (max-width: 800px) {
- .online-status-section{
- .ant-card-body {
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: flex-start;
- .ant-statistic {
- width: auto;
- text-align: left;
- margin: 1em;
- }
- }
- }
-
- .stream-details-section {
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: flex-start;
- width: 100%;
- .details {
- width: 100%;
- }
+ .outbound-details,
+ .inbound-details {
+ >.ant-card-bordered {
+ border-color: rgba(255,255,255,.1);
}
}
}
@@ -124,14 +48,7 @@
.offline-content {
max-width: 1000px;
-
- display: flex;
- flex-direction: row;
- justify-content: center;
- align-items: flex-start;
- width: 100%;
.logo-section {
- width: 50%;
.ant-result-title {
font-size: 2rem;
}
@@ -144,36 +61,20 @@
}
}
.list-section {
- width: 50%;
+ background-color: var(--container-bg-color-alt);
+ border-radius: var(--container-border-radius);
+ padding: 1em;
+
> .ant-card {
- margin-bottom: 1rem;
- .ant-card-head {
- background-color: #dde;
- }
- .ant-card-head-title {
- font-size: 1rem;
- }
+ background-color: var(--black);
+ margin-bottom: 1em;
.ant-card-meta-avatar {
margin-top: .25rem;
svg {
- height: 1.25rem;
- width: 1.25rem;
+ height: 1.5em;
+ width: 1.5em;
}
}
- .ant-card-body {
- font-size: .88rem;
- }
}
}
-
- @media (max-width: 800px) {
- flex-direction: column;
- justify-content: flex-start;
- align-items: flex-start;
- .logo-section,
- .list-section {
- width: 100%
- }
-
- }
}
diff --git a/web/styles/main-layout.scss b/web/styles/main-layout.scss
index d36045c44..a17425a3e 100644
--- a/web/styles/main-layout.scss
+++ b/web/styles/main-layout.scss
@@ -84,7 +84,7 @@
}
}
}
- .online {
+ &.online {
.online-status-indicator {
.status-icon {
svg {
@@ -92,6 +92,7 @@
}
}
.status-label {
+ white-space: nowrap;
color: var(--online-color);
}
}
@@ -111,8 +112,21 @@
align-items: center;
margin-bottom: 0;
+ .ant-input-affix-wrapper {
+ border-color: var(--owncast-purple-50);
+ }
+ input.ant-input {
+ &::placeholder {
+ color: var(--owncast-purple);
+ text-align: center;
+ }
+ }
+
.input-side {
width: 400px;
+ @media (max-width: 800px) {
+ width: auto;
+ }
}
.label-side {