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 = () => {