diff --git a/resources/[tools]/nordi_dj/html/style.css b/resources/[tools]/nordi_dj/html/style.css
index 361085036..8553a285c 100644
--- a/resources/[tools]/nordi_dj/html/style.css
+++ b/resources/[tools]/nordi_dj/html/style.css
@@ -22,18 +22,25 @@ body {
/* DJ Interface Container */
#dj-interface {
- width: 100vw;
- height: 100vh;
+ width: 1000px; /* Standard-Breite */
+ height: 700px; /* Standard-Höhe */
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
flex-direction: column;
- -webkit-flex-direction: column;
- -ms-flex-direction: column;
background: linear-gradient(135deg, #0f0f23 0%, #1a1a2e 100%);
background: -webkit-linear-gradient(135deg, #0f0f23 0%, #1a1a2e 100%);
background: -moz-linear-gradient(135deg, #0f0f23 0%, #1a1a2e 100%);
- position: relative;
+ border-radius: 20px;
+ overflow: hidden;
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
+ transition: opacity 0.3s ease;
+ min-width: 800px;
+ min-height: 600px;
+ max-width: 100vw;
+ max-height: 100vh;
}
/* Header */
@@ -47,16 +54,12 @@ body {
-webkit-animation: gradientShift 3s ease infinite;
-moz-animation: gradientShift 3s ease infinite;
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
align-items: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
justify-content: space-between;
- -webkit-justify-content: space-between;
- -ms-flex-pack: justify;
padding: 0 20px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
+ cursor: move;
+ user-select: none;
}
@keyframes gradientShift {
@@ -79,11 +82,7 @@ body {
.logo {
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
align-items: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
gap: 10px;
font-family: 'Orbitron', 'Arial Black', Gadget, sans-serif;
font-weight: 900;
@@ -93,18 +92,12 @@ body {
.status-bar {
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
gap: 20px;
}
.status-item {
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
align-items: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
gap: 5px;
font-weight: 600;
}
@@ -115,14 +108,8 @@ body {
border-radius: 50%;
background: rgba(255, 255, 255, 0.2);
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
align-items: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
justify-content: center;
- -webkit-justify-content: center;
- -ms-flex-pack: center;
cursor: pointer;
transition: all 0.3s ease;
-webkit-transition: all 0.3s ease;
@@ -139,21 +126,16 @@ body {
/* Main DJ Console */
.dj-console {
flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
padding: 20px;
gap: 20px;
min-height: 0;
+ overflow: auto;
}
/* Decks */
.deck {
flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
background: linear-gradient(145deg, #1e1e2e, #2a2a3e);
background: -webkit-linear-gradient(145deg, #1e1e2e, #2a2a3e);
background: -moz-linear-gradient(145deg, #1e1e2e, #2a2a3e);
@@ -164,18 +146,14 @@ body {
inset -5px -5px 15px rgba(255, 255, 255, 0.1),
0 10px 30px rgba(0, 0, 0, 0.3);
border: 2px solid rgba(255, 255, 255, 0.1);
+ display: flex;
+ flex-direction: column;
}
.deck-header {
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
justify-content: space-between;
- -webkit-justify-content: space-between;
- -ms-flex-pack: justify;
align-items: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
margin-bottom: 20px;
padding-bottom: 10px;
border-bottom: 2px solid rgba(255, 255, 255, 0.1);
@@ -190,8 +168,6 @@ body {
.deck-controls {
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
gap: 10px;
}
@@ -234,6 +210,7 @@ body {
/* Vinyl Plattenspieler */
.turntable {
margin-bottom: 20px;
+ flex-shrink: 0;
}
.vinyl-container {
@@ -294,14 +271,8 @@ body {
background: -webkit-linear-gradient(145deg, #ff6b6b, #4ecdc4);
background: -moz-linear-gradient(145deg, #ff6b6b, #4ecdc4);
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
align-items: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
justify-content: center;
- -webkit-justify-content: center;
- -ms-flex-pack: center;
box-shadow: 0 0 20px rgba(255, 107, 107, 0.5);
}
@@ -318,14 +289,8 @@ body {
width: 70px;
height: 70px;
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
align-items: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
justify-content: center;
- -webkit-justify-content: center;
- -ms-flex-pack: center;
text-align: center;
font-size: 10px;
font-weight: 600;
@@ -412,14 +377,8 @@ body {
/* Turntable Controls */
.turntable-controls {
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
align-items: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
justify-content: space-between;
- -webkit-justify-content: space-between;
- -ms-flex-pack: justify;
gap: 15px;
}
@@ -484,14 +443,8 @@ body {
.pitch-slider {
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
flex-direction: column;
- -webkit-flex-direction: column;
- -ms-flex-direction: column;
align-items: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
gap: 5px;
}
@@ -572,6 +525,7 @@ body {
/* Track Info */
.track-info {
text-align: center;
+ margin-bottom: 10px;
}
.track-title {
@@ -597,6 +551,7 @@ body {
/* Mixer */
.mixer {
width: 400px;
+ min-width: 300px;
background: linear-gradient(145deg, #2a2a3e, #1e1e2e);
background: -webkit-linear-gradient(145deg, #2a2a3e, #1e1e2e);
background: -moz-linear-gradient(145deg, #2a2a3e, #1e1e2e);
@@ -607,6 +562,8 @@ body {
inset -5px -5px 15px rgba(255, 255, 255, 0.1),
0 10px 30px rgba(0, 0, 0, 0.3);
border: 2px solid rgba(255, 255, 255, 0.1);
+ display: flex;
+ flex-direction: column;
}
.mixer-header {
@@ -630,11 +587,7 @@ body {
.crossfader-container {
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
align-items: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
gap: 15px;
margin-bottom: 10px;
}
@@ -648,8 +601,6 @@ body {
#crossfader {
flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
height: 8px;
background: linear-gradient(90deg, #4ecdc4, #ff6b6b, #4ecdc4);
background: -webkit-linear-gradient(90deg, #4ecdc4, #ff6b6b, #4ecdc4);
@@ -691,12 +642,8 @@ body {
.crossfader-curve {
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
gap: 5px;
justify-content: center;
- -webkit-justify-content: center;
- -ms-flex-pack: center;
}
.curve-btn {
@@ -725,16 +672,12 @@ body {
/* Channel Controls */
.channel-controls {
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
gap: 20px;
margin-bottom: 30px;
}
.channel {
flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
background: linear-gradient(145deg, #1a1a2e, #0f0f23);
background: -webkit-linear-gradient(145deg, #1a1a2e, #0f0f23);
background: -moz-linear-gradient(145deg, #1a1a2e, #0f0f23);
@@ -764,25 +707,15 @@ body {
/* EQ Section */
.eq-section {
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
flex-direction: column;
- -webkit-flex-direction: column;
- -ms-flex-direction: column;
gap: 15px;
margin-bottom: 20px;
}
.eq-knob {
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
flex-direction: column;
- -webkit-flex-direction: column;
- -ms-flex-direction: column;
align-items: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
gap: 5px;
}
@@ -841,14 +774,8 @@ body {
/* Volume Faders */
.volume-fader, .master-volume {
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
flex-direction: column;
- -webkit-flex-direction: column;
- -ms-flex-direction: column;
align-items: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
gap: 10px;
margin-bottom: 15px;
}
@@ -1016,14 +943,8 @@ body {
.effect-knob {
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
flex-direction: column;
- -webkit-flex-direction: column;
- -ms-flex-direction: column;
align-items: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
gap: 5px;
}
@@ -1035,8 +956,6 @@ body {
background: -moz-linear-gradient(145deg, #1e1e2e, #2a2a3e);
border-top: 2px solid rgba(255, 255, 255, 0.1);
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
padding: 15px;
gap: 20px;
}
@@ -1044,26 +963,20 @@ body {
/* Playlist Browser */
.playlist-browser {
flex: 1;
- -webkit-flex: 1;
- -ms-flex: 1;
background: linear-gradient(145deg, #0f0f23, #1a1a2e);
background: -webkit-linear-gradient(145deg, #0f0f23, #1a1a2e);
background: -moz-linear-gradient(145deg, #0f0f23, #1a1a2e);
border-radius: 15px;
padding: 15px;
border: 1px solid rgba(255, 255, 255, 0.1);
+ display: flex;
+ flex-direction: column;
}
.browser-header {
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
justify-content: space-between;
- -webkit-justify-content: space-between;
- -ms-flex-pack: justify;
align-items: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
margin-bottom: 15px;
padding-bottom: 10px;
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
@@ -1078,11 +991,7 @@ body {
.search-box {
position: relative;
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
align-items: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
}
.search-box i {
@@ -1107,7 +1016,7 @@ body {
}
.track-list {
- height: 120px;
+ flex: 1;
overflow-y: auto;
scrollbar-width: thin;
scrollbar-color: #4ecdc4 transparent;
@@ -1235,14 +1144,8 @@ body {
height: 100%;
background: rgba(0, 0, 0, 0.8);
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
align-items: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
justify-content: center;
- -webkit-justify-content: center;
- -ms-flex-pack: center;
z-index: 1000;
}
@@ -1260,14 +1163,8 @@ body {
.modal-header {
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
justify-content: space-between;
- -webkit-justify-content: space-between;
- -ms-flex-pack: justify;
align-items: center;
- -webkit-align-items: center;
- -ms-flex-align: center;
margin-bottom: 20px;
padding-bottom: 15px;
border-bottom: 2px solid rgba(255, 255, 255, 0.1);
@@ -1336,12 +1233,8 @@ body {
.modal-actions {
display: flex;
- display: -webkit-flex;
- display: -ms-flexbox;
gap: 15px;
justify-content: flex-end;
- -webkit-justify-content: flex-end;
- -ms-flex-pack: end;
margin-top: 30px;
}
@@ -1384,12 +1277,72 @@ body {
box-shadow: 0 8px 20px rgba(78, 205, 196, 0.4);
}
+/* Notification */
+.notification {
+ position: fixed;
+ top: 80px;
+ right: 20px;
+ padding: 15px 20px;
+ border-radius: 10px;
+ color: white;
+ font-weight: 600;
+ z-index: 10000;
+ transform: translateX(100%);
+ transition: transform 0.3s ease;
+ box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
+}
+
+.notification-success {
+ background: #4ecdc4;
+}
+
+.notification-error {
+ background: #ff6b6b;
+}
+
+.notification-warning {
+ background: #feca57;
+}
+
+.notification-info {
+ background: #45b7d1;
+}
+
+/* Resize Handle */
+.resize-handle {
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ width: 20px;
+ height: 20px;
+ cursor: nwse-resize;
+ color: rgba(255, 255, 255, 0.5);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ z-index: 1000;
+ transition: color 0.3s ease;
+}
+
+.resize-handle:hover {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+/* Animation für Ein- und Ausblenden */
+#dj-interface.hidden {
+ opacity: 0;
+ pointer-events: none;
+}
+
+#dj-interface:not(.hidden) {
+ opacity: 1;
+ pointer-events: auto;
+}
+
/* Responsive Design */
@media (max-width: 1200px) {
.dj-console {
flex-direction: column;
- -webkit-flex-direction: column;
- -ms-flex-direction: column;
gap: 15px;
}
@@ -1410,6 +1363,61 @@ body {
width: 150px;
height: 150px;
}
+
+ .bottom-panel {
+ flex-direction: column;
+ height: auto;
+ }
+
+ .recording-section {
+ width: 100%;
+ }
+}
+
+@media (max-width: 768px) {
+ #dj-interface {
+ width: 100%;
+ height: 100%;
+ border-radius: 0;
+ }
+
+ .dj-header {
+ height: 50px;
+ }
+
+ .logo {
+ font-size: 18px;
+ }
+
+ .turntable-controls {
+ flex-direction: column;
+ align-items: center;
+ }
+
+ .channel-controls {
+ flex-direction: column;
+ }
+
+ .master-section {
+ width: 100%;
+ display: flex;
+ justify-content: space-around;
+ align-items: center;
+ }
+
+ .master-volume {
+ flex-direction: row;
+ }
+
+.master-volume input[type="range"]::-moz-range-thumb {
+ width: 15px;
+ height: 15px;
+ border-radius: 50%;
+ background: #ffffff;
+ cursor: pointer;
+ box-shadow: 0 0 10px rgba(255, 255, 255, 0.8);
+ border: none;
+}
}
/* Animations */
@@ -1446,3 +1454,4 @@ body {
.p-10 { padding: 10px; }
.p-15 { padding: 15px; }
.p-20 { padding: 20px; }
+