diff --git a/src/components/AnnotationControls/AnnotationControls.css b/src/components/AnnotationControls/AnnotationControls.css
index d09d26b..8da947c 100644
--- a/src/components/AnnotationControls/AnnotationControls.css
+++ b/src/components/AnnotationControls/AnnotationControls.css
@@ -1,61 +1,47 @@
+.controls {
+ margin-top: 4px;
+}
+
.input-group {
display: flex;
flex-direction: row;
- padding: 0 4px;
+ background: #222531;
+ padding: 0 20px;
+ border-radius: 4px;
+}
+
+.time {
+ color: #fff;
}
.video-slider {
- width: 100%;
- margin: 12px 20px;
+ margin: 12px 26px;
+}
+
+.MuiSlider-root {
+ color: #fff !important;
}
.buttons-group {
display: flex;
- justify-content: center;
- position: relative;
- z-index: 1;
- padding: 10px;
- background: #f5f5f5;
- border-radius: 4px;
- margin-top: 10px;
+ flex-direction: row;
+ gap: 10px;
+ margin-top: 6px;
}
.control-btn {
+ width: 40px;
+ height: 40px;
display: flex;
+ justify-content: center;
align-items: center;
- gap: 4px;
- padding: 10px 20px;
- font-size: 16px;
- margin: 0 5px;
- border: 1px solid #ccc;
+ background: #222531;
+ padding: 4px;
+ border: 0;
border-radius: 4px;
cursor: pointer;
}
-.play-btn {
- background: #8aff8a;
-}
-
-.pause-btn {
- background: #ff8a8a;
-}
-
-.arrow-btn {
- background: #e0e0e0;
-}
-
-.stop-btn {
- background: #e8a1a5;
-}
-
-.save-btn {
- background: #8ad4ff;
-}
-
-.delete-btn {
- background: #ffb38a;
-}
-
-.clean-btn{
- background: #ff8a8a;
+.control-btn:hover {
+ background: #535b77;
}
\ No newline at end of file
diff --git a/src/components/AnnotationControls/AnnotationControls.js b/src/components/AnnotationControls/AnnotationControls.js
index 40f5b46..4e5363c 100644
--- a/src/components/AnnotationControls/AnnotationControls.js
+++ b/src/components/AnnotationControls/AnnotationControls.js
@@ -1,7 +1,13 @@
import { Slider } from '@mui/material';
-import { FaStop } from "react-icons/fa";
-import { MdCleaningServices } from "react-icons/md";
import './AnnotationControls.css';
+import PreviousIcon from '../../icons/PreviousIcon';
+import PlayIcon from '../../icons/PlayIcon';
+import PauseIcon from '../../icons/PauseIcon';
+import NextIcon from '../../icons/NextIcon';
+import StopIcon from '../../icons/StopIcon';
+import SaveIcon from '../../icons/SaveIcon';
+import CleanIcon from '../../icons/CleanIcon';
+import DeleteIcon from '../../icons/DeleteIcon';
function AnnotationControls({
videoRef,
@@ -32,7 +38,7 @@ function AnnotationControls({
return (
-
{formatDuration(currentTime)}
+
{formatDuration(currentTime)}
{videoRef.current !== null
- ?
{formatDuration(videoRef.current.duration - currentTime)}
- :
{formatDuration(0)}
+ ?
{formatDuration(videoRef.current.duration - currentTime)}
+ :
{formatDuration(0)}
}
@@ -55,46 +61,48 @@ function AnnotationControls({
onClick={onFrameBackward}
title="Previous Frame"
>
- ⏮️
+
diff --git a/src/components/AnnotationList/AnnotationList.css b/src/components/AnnotationList/AnnotationList.css
new file mode 100644
index 0000000..c5091be
--- /dev/null
+++ b/src/components/AnnotationList/AnnotationList.css
@@ -0,0 +1,28 @@
+.annotation-section {
+ background: #222531;
+ border-radius: 4px;
+ padding: 8px;
+ height: 80%;
+}
+
+.annotation-list {
+ display: flex;
+ flex-direction: column;
+ gap: 4px;
+ list-style-type: none;
+ padding: 0;
+}
+
+.annotation-list-item {
+ box-sizing: border-box;
+ display: flex;
+ align-items: center;
+ height: 22px;
+ background: #858CA2;
+ padding: 4px;
+ color: #fff;
+ font-size: 14px;
+ line-height: 1;
+ font-weight: 600;
+ border-radius: 4px ;
+}
\ No newline at end of file
diff --git a/src/components/AnnotationList.js b/src/components/AnnotationList/AnnotationList.js
similarity index 61%
rename from src/components/AnnotationList.js
rename to src/components/AnnotationList/AnnotationList.js
index 241964f..0430627 100644
--- a/src/components/AnnotationList.js
+++ b/src/components/AnnotationList/AnnotationList.js
@@ -1,14 +1,12 @@
-// src/components/AnnotationList.js
-// No changes
-import React from 'react';
+import './AnnotationList.css'
function AnnotationList({ annotations, onAnnotationClick }) {
return (
-
+
Annotations
-
+
{annotations.map((annotation, index) => (
- - onAnnotationClick(annotation.time)}>
+
- onAnnotationClick(annotation.time)}>
Frame {index + 1} - {annotation.annotations.length} objects
))}
diff --git a/src/components/AnnotationMain/AnnotationMain.css b/src/components/AnnotationMain/AnnotationMain.css
index 8c28be9..87005d5 100644
--- a/src/components/AnnotationMain/AnnotationMain.css
+++ b/src/components/AnnotationMain/AnnotationMain.css
@@ -1,33 +1,32 @@
.content-wrapper {
display: flex;
+ gap: 4px;
height: 100vh;
overflow: hidden;
+ background: #0D1421;
+ padding: 4px;
}
.side-menu {
display: flex;
flex-direction: column;
- width: 15%;
- height: 100%;
-}
-
-.left-menu{
- border-right: 1px solid #ccc;
+ width: 228px;
+ height: 100vh;
}
.right-menu{
overflow-y: auto;
- border-left: 1px solid #ccc;
}
.player-wrapper {
- width: 70%;
+ width: calc(100% - 464px);
height: 100%;
display: flex;
flex-direction: column;
}
.error-message {
+ position: absolute;
background: #ffdddd;
color: #d8000c;
padding: 6px;
@@ -51,4 +50,6 @@
justify-content: center;
align-items: center;
overflow: hidden;
+ border-radius: 8px;
+ border: 1px solid #222531;
}
\ No newline at end of file
diff --git a/src/components/AnnotationMain/AnnotationMain.js b/src/components/AnnotationMain/AnnotationMain.js
index fa310e4..df9b849 100644
--- a/src/components/AnnotationMain/AnnotationMain.js
+++ b/src/components/AnnotationMain/AnnotationMain.js
@@ -1,6 +1,6 @@
import React, { useState, useEffect, useRef } from 'react';
import VideoPlayer from '../VideoPlayer/VideoPlayer';
-import AnnotationList from '../AnnotationList';
+import AnnotationList from '../AnnotationList/AnnotationList';
import MediaList from '../MediaList/MediaList';
import DetectionClassList from '../DetectionClassList/DetectionClassList';
import CanvasEditor from '../CanvasEditor/CanvasEditor';
diff --git a/src/components/DetectionClassList/DetectionClassList.css b/src/components/DetectionClassList/DetectionClassList.css
index 6d0320c..0b642bb 100644
--- a/src/components/DetectionClassList/DetectionClassList.css
+++ b/src/components/DetectionClassList/DetectionClassList.css
@@ -1,56 +1,80 @@
+.detection {
+ margin-top: 4px;
+}
+
.class-list {
- flex-grow: 1;
+ display: flex;
+ flex-direction: column;
+ background: #858CA2;
+ border-radius: 4px;
+ padding: 4px;
+ height: 48vh;
+}
+
+.menu-title {
+ margin-bottom: 6px;
}
.class-list-group {
- list-style-type: none;
+ display: flex;
+ flex-direction: column;
+ gap: 3px;
padding: 0;
margin: 0;
- height: 40vh;
- min-height: 300px;
overflow: auto;
+ scrollbar-width: none;
+ list-style-type: none;
+}
+
+.class-list-group::-webkit-scrollbar {
+ display: none;
}
.class-list-item {
display: flex;
align-items: center;
- height: 12px;
+ height: 30px;
cursor: pointer;
padding: 8px;
font-size: 14px;
font-weight: 500;
- margin-bottom: 2px;
border-radius: 4px;
}
.detection-type-group {
+ background: #222531;
display: flex;
flex-direction: row;
- justify-content: center;
- gap: 5%;
- padding: 10px 12px;
-}
-
-.detection-type-btn {
- width: 25%;
- display: flex;
- justify-content: center;
- align-items: center;
- font-size: 18px;
- padding: 4px 10px;
+ justify-content: space-between;
+ padding: 16px 9px;
+ margin-top: 4px;
border-radius: 4px;
}
+.detection-type-btn {
+ width: 66px;
+ height: 40px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ background: #3862fb41;
+ color: #3861FB;
+ font-size: 30px;
+ padding: 5px 17px;
+ border-radius: 4px;
+ border: 0;
+}
+
.detection-type-btn:hover {
- background: #d6eed5;
+ background: #0e2060;
}
.active-type {
color: white;
- background: black;
+ background: #3861FB;
}
.active-type:hover {
cursor: default;
- background: black;
+ background: #3861FB;
}
\ No newline at end of file
diff --git a/src/components/DetectionClassList/DetectionClassList.js b/src/components/DetectionClassList/DetectionClassList.js
index c45cabd..a8d68a0 100644
--- a/src/components/DetectionClassList/DetectionClassList.js
+++ b/src/components/DetectionClassList/DetectionClassList.js
@@ -91,29 +91,32 @@ function DetectionClassList({ onClassSelect, detectionType, setDetectionType })
}
return (
-
-
Classes
-
- {detectionClasses.map((cls) => {
- const backgroundColor = calculateColor(cls.Id);
- const darkBg = calculateColor(cls.Id, '0.8');
- const isSelected = selectedClass && selectedClass.Id === cls.Id;
+
- return (
-
- handleClassClick(cls)}
- >
- {cls.Name}
-
- );
- })}
-
+
+
Classes
+
+ {detectionClasses.map((cls) => {
+ const backgroundColor = calculateColor(cls.Id);
+ const darkBg = calculateColor(cls.Id, '0.8');
+ const isSelected = selectedClass && selectedClass.Id === cls.Id;
+
+ return (
+ - handleClassClick(cls)}
+ >
+ {cls.Name}
+
+ );
+ })}
+
+