Добавление камеры на сервер

This commit is contained in:
Tot Maxim
2026-05-09 18:20:00 +03:00
parent 549b0c5e63
commit e36823d3ba
6 changed files with 420 additions and 37 deletions

View File

@@ -224,6 +224,165 @@ h1 {
opacity: 0;
}
/* ОТКРЫТОЕ СОСТОЯНИЕ */
.cam-modal.open {
transform: translateX(0);
}
.cam-header {
display: flex;
justify-content: space-between;
padding: 8px;
color: white;
background: #222;
}
.cam-frame {
flex: 1;
width: 100%;
border: none;
object-fit: contain;
background: #000;
min-height: 200px;
}
.cam-loading {
display: flex;
align-items: center;
justify-content: center;
color: #00ff88;
font-size: 18px;
}
.hidden {
display: none;
}
/* ===== SPLIT LAYOUT ===== */
.layout {
display: flex;
height: 100vh;
width: 100vw;
overflow: hidden;
}
.panel {
height: 100%;
overflow: auto;
}
.left {
flex: 1;
min-width: 300px;
transition: all 0.3s ease;
}
.right {
flex: 0 0 40%;
min-width: 300px;
transition: all 0.3s ease;
}
.right.hidden {
flex: 0 0 0 !important;
min-width: 0 !important;
width: 0 !important;
overflow: hidden;
opacity: 0;
}
/* DRAG BAR */
.resizer {
width: 6px;
cursor: col-resize;
background: #00ff88;
opacity: 0.25;
transition: opacity 0.2s;
}
.resizer:hover {
opacity: 1;
}
.resizer.hidden {
display: none;
}
/* ===== CAMERA ===== */
.cam-modal {
height: 100%;
display: flex;
flex-direction: column;
background: black;
}
.cam-header {
display: flex;
justify-content: space-between;
padding: 8px;
background: #111;
color: #00ff88;
}
.cam-frame {
flex: 1;
width: 100%;
object-fit: contain;
background: black;
}
.cam-loading {
display: flex;
align-items: center;
justify-content: center;
color: #00ff88;
}
.cam-btn {
position: fixed;
top: 20px;
right: 20px;
z-index: 1001;
padding: 10px 15px;
background: rgba(0, 0, 0, 0.8);
color: #00ff88;
border: 1px solid #00ff88;
border-radius: 8px;
cursor: pointer;
font-family: monospace;
font-size: 14px;
display: flex;
align-items: center;
gap: 8px;
transition: all 0.3s;
}
.cam-btn:hover {
background: rgba(0, 255, 136, 0.2);
box-shadow: 0 0 15px rgba(0, 255, 136, 0.3);
}
.cam-btn-icon {
font-size: 18px;
}
/* Панель камеры скрыта */
.panel.right[style*="display: none"] {
display: none !important;
}
/* Когда камера скрыта, левая панель на весь экран */
.layout:has(.panel.right[style*="display: none"]) .left {
flex: 1;
}
.layout:has(.panel.right[style*="display: none"]) .resizer {
display: none;
}
/* ===== MOBILE ===== */
@media (max-width: 500px) {
h1 {