From 512ebf49572c03bb3f0afd47437a0f8a2c7def36 Mon Sep 17 00:00:00 2001 From: Dylan De Faoite Date: Sun, 16 Aug 2026 16:02:49 +0100 Subject: [PATCH] all other page restyling --- frontend/src/components/Selector.tsx | 4 +- frontend/src/components/Topbar.tsx | 6 +- .../src/components/buttons/BlueButton.tsx | 14 --- .../src/components/buttons/MenuButton.tsx | 2 +- .../src/components/buttons/PrimaryButton.tsx | 14 +++ frontend/src/components/video/ConfigBox.tsx | 4 +- .../src/components/video/ExportWidget.tsx | 12 +-- frontend/src/components/video/MetadataBox.tsx | 4 +- frontend/src/components/video/Playbar.tsx | 4 +- frontend/src/components/video/VideoCard.tsx | 20 ++--- frontend/src/index.css | 23 +++++ frontend/src/pages/ClipEdit.tsx | 12 +-- frontend/src/pages/EditClip.tsx | 22 ++--- frontend/src/pages/EditVod.tsx | 22 ++--- frontend/src/pages/Home.tsx | 2 +- frontend/src/pages/MediaPlayer.tsx | 46 +++++----- frontend/src/pages/MyClips.tsx | 6 +- frontend/src/pages/MyVods.tsx | 6 +- frontend/src/pages/Profile.tsx | 24 ++--- frontend/src/pages/StreamControl.tsx | 90 +++++++++---------- 20 files changed, 180 insertions(+), 157 deletions(-) delete mode 100644 frontend/src/components/buttons/BlueButton.tsx create mode 100644 frontend/src/components/buttons/PrimaryButton.tsx diff --git a/frontend/src/components/Selector.tsx b/frontend/src/components/Selector.tsx index 8eab14f..37e792a 100644 --- a/frontend/src/components/Selector.tsx +++ b/frontend/src/components/Selector.tsx @@ -7,8 +7,8 @@ type Props = { const Selector = ({ children, label }: Props) => (
- -
+ +
{children}
); diff --git a/frontend/src/components/Topbar.tsx b/frontend/src/components/Topbar.tsx index 4fcca7b..4e67b4a 100644 --- a/frontend/src/components/Topbar.tsx +++ b/frontend/src/components/Topbar.tsx @@ -76,8 +76,8 @@ const Topbar = ({ {user.name} {isStreaming && ( - - + + )} @@ -86,7 +86,7 @@ const Topbar = ({ onClick={() => navigate("/profile")} /> handleLogout()} - className={"text-red-500 font-medium"} /> + className={"text-[#B5432E] font-medium"} />
) : diff --git a/frontend/src/components/buttons/BlueButton.tsx b/frontend/src/components/buttons/BlueButton.tsx deleted file mode 100644 index 4dce83e..0000000 --- a/frontend/src/components/buttons/BlueButton.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import React from "react"; - -type Props = React.ButtonHTMLAttributes; - -const BlueButton: React.FC = ({ className = "", ...props }) => { - return ( -
- + {formatTime(video?.currentTime ?? 0)} / {formatTime(videoMetadata.duration ?? 0)} diff --git a/frontend/src/components/video/VideoCard.tsx b/frontend/src/components/video/VideoCard.tsx index 5653e7b..7e4eedf 100644 --- a/frontend/src/components/video/VideoCard.tsx +++ b/frontend/src/components/video/VideoCard.tsx @@ -70,7 +70,7 @@ const VideoCard = ({ id, title, duration, createdAt, onEdit, onDelete, className className="w-full aspect-video object-cover group-hover:scale-105 transition-transform duration-200" /> - + {formatTime(duration)} @@ -82,18 +82,18 @@ const VideoCard = ({ id, title, duration, createdAt, onEdit, onDelete, className > {menuOpen && ( -
+
{!confirmDelete && (<> {onEdit && ( @@ -101,7 +101,7 @@ const VideoCard = ({ id, title, duration, createdAt, onEdit, onDelete, className {onDelete && ( @@ -109,17 +109,17 @@ const VideoCard = ({ id, title, duration, createdAt, onEdit, onDelete, className )} {confirmDelete && (
-

Delete this {itemLabel}?

+

Delete this {itemLabel}?

@@ -133,10 +133,10 @@ const VideoCard = ({ id, title, duration, createdAt, onEdit, onDelete, className
-

+

{title === "" ? "(No Title)" : title}

-

{timeAgo}

+

{timeAgo}

diff --git a/frontend/src/index.css b/frontend/src/index.css index 1a8449b..6c91009 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -44,4 +44,27 @@ body { font-family: "Newsreader", serif; font-weight: 400; color: #2B2620; +} + +/* Clip trim slider (react-range-slider-input). Its own stylesheet ships blue + defaults; the #id beats those class selectors regardless of import order. */ +#range-slider { + height: 8px; + background: var(--color-fields); + border-radius: 8px; +} + +#range-slider .range-slider__range { + background: #C87A52; +} + +#range-slider .range-slider__thumb { + width: 18px; + height: 18px; + background: #A85A38; + box-shadow: 0 1px 2px rgba(90, 40, 20, 0.2); +} + +#range-slider .range-slider__thumb:focus-visible { + box-shadow: 0 0 0 4px rgba(168, 90, 56, 0.35); } \ No newline at end of file diff --git a/frontend/src/pages/ClipEdit.tsx b/frontend/src/pages/ClipEdit.tsx index cc0f4e4..0780230 100644 --- a/frontend/src/pages/ClipEdit.tsx +++ b/frontend/src/pages/ClipEdit.tsx @@ -79,7 +79,7 @@ const ClipEdit = () => { const interval = setInterval(async () => await pollProgress(jobId, interval), 500); }; - const pollProgress = async (jobId: string, intervalId: number) => { + const pollProgress = async (jobId: string, intervalId: ReturnType) => { getJob(jobId) .then((job) => { setProgress(job.progress); @@ -128,7 +128,7 @@ const ClipEdit = () => {