aboutsummaryrefslogtreecommitdiff
path: root/src/App.css
diff options
context:
space:
mode:
Diffstat (limited to 'src/App.css')
-rw-r--r--src/App.css337
1 files changed, 337 insertions, 0 deletions
diff --git a/src/App.css b/src/App.css
new file mode 100644
index 0000000..12535df
--- /dev/null
+++ b/src/App.css
@@ -0,0 +1,337 @@
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+html,
+body,
+#root {
+ height: 100%;
+ width: 100%;
+ overflow: hidden;
+}
+
+.app {
+ display: flex;
+ height: 100vh;
+ width: 100vw;
+ font-family:
+ -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu,
+ sans-serif;
+}
+
+/* Sidebar */
+.sidebar {
+ width: 200px;
+ background: #1a1a2e;
+ color: #fff;
+ padding: 16px;
+ display: flex;
+ flex-direction: column;
+ gap: 12px;
+ border-right: 1px solid #333;
+ overflow-y: auto;
+}
+
+.sidebar::-webkit-scrollbar {
+ width: 6px;
+}
+
+.sidebar::-webkit-scrollbar-track {
+ background: #16213e;
+}
+
+.sidebar::-webkit-scrollbar-thumb {
+ background: #333;
+ border-radius: 3px;
+}
+
+.sidebar::-webkit-scrollbar-thumb:hover {
+ background: #444;
+}
+
+.sidebar-title {
+ font-size: 18px;
+ font-weight: 600;
+ padding-bottom: 12px;
+ border-bottom: 1px solid #333;
+}
+
+.model-list {
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
+}
+
+.model-item {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 12px 16px;
+ background: #16213e;
+ border-radius: 8px;
+ transition: all 0.2s ease;
+}
+
+.model-item:hover {
+ background: #0f3460;
+}
+
+.model-name {
+ font-size: 14px;
+}
+
+.add-model-btn {
+ padding: 6px 12px;
+ background: #e94560;
+ color: #fff;
+ border: none;
+ border-radius: 4px;
+ font-size: 12px;
+ cursor: pointer;
+ transition: all 0.2s ease;
+}
+
+.add-model-btn:hover {
+ background: #ff6b6b;
+}
+
+/* Main Content */
+.main-content {
+ flex: 1;
+ position: relative;
+ display: flex;
+ flex-direction: column;
+}
+
+.scene-container {
+ flex: 1;
+ background: #4a4a4a;
+ position: relative;
+}
+
+.spin-button {
+ position: absolute;
+ bottom: 20px;
+ left: 50%;
+ transform: translateX(-50%);
+ padding: 12px 24px;
+ background: #16213e;
+ color: #fff;
+ border: 1px solid #333;
+ border-radius: 8px;
+ font-size: 14px;
+ cursor: pointer;
+ transition: all 0.2s ease;
+ user-select: none;
+ z-index: 100;
+}
+
+.spin-button:hover {
+ background: #0f3460;
+}
+
+.spin-button:active,
+.spin-button.active {
+ background: #e94560;
+}
+
+/* Overlay Controls */
+.overlay-controls {
+ position: absolute;
+ top: 16px;
+ left: 16px;
+ display: flex;
+ gap: 12px;
+ z-index: 100;
+}
+
+.camera-selector-wrapper {
+ background: rgba(26, 26, 46, 0.9);
+ border-radius: 8px;
+ padding: 8px 12px;
+}
+
+.camera-selector {
+ background: #16213e;
+ color: #fff;
+ border: 1px solid #333;
+ border-radius: 4px;
+ padding: 8px 12px;
+ font-size: 14px;
+ cursor: pointer;
+ outline: none;
+}
+
+.camera-selector:hover {
+ border-color: #0f3460;
+}
+
+.camera-selector:focus {
+ border-color: #e94560;
+}
+
+/* Backdrop Upload */
+.backdrop-upload {
+ background: rgba(26, 26, 46, 0.9);
+ border-radius: 8px;
+ padding: 8px 12px;
+ display: flex;
+ gap: 8px;
+}
+
+.upload-backdrop,
+.clear-backdrop {
+ background: #16213e;
+ color: #fff;
+ border: 1px solid #333;
+ border-radius: 4px;
+ padding: 8px 12px;
+ font-size: 14px;
+ cursor: pointer;
+ transition: all 0.2s ease;
+}
+
+.upload-backdrop:hover,
+.clear-backdrop:hover {
+ background: #0f3460;
+ border-color: #0f3460;
+}
+
+.clear-backdrop {
+ background: #3d1a1a;
+ border-color: #5a2a2a;
+}
+
+.clear-backdrop:hover {
+ background: #5a2a2a;
+}
+
+/* Model Controls */
+.model-controls {
+ position: absolute;
+ top: 16px;
+ right: 16px;
+ width: 280px;
+ background: rgba(26, 26, 46, 0.95);
+ border-radius: 12px;
+ padding: 16px;
+ color: #fff;
+ z-index: 100;
+ max-height: calc(100vh - 100px);
+ overflow-y: auto;
+}
+
+.controls-title {
+ font-size: 16px;
+ font-weight: 600;
+ margin-bottom: 16px;
+ padding-bottom: 8px;
+ border-bottom: 1px solid #333;
+}
+
+.control-section {
+ margin-bottom: 16px;
+}
+
+.control-section h4 {
+ font-size: 12px;
+ text-transform: uppercase;
+ color: #888;
+ margin-bottom: 8px;
+ letter-spacing: 0.5px;
+}
+
+.control-row {
+ display: flex;
+ align-items: center;
+ gap: 12px;
+ margin-bottom: 8px;
+}
+
+.control-row label {
+ width: 24px;
+ font-size: 12px;
+ color: #aaa;
+}
+
+.control-row input[type="number"] {
+ flex: 1;
+ background: #16213e;
+ border: 1px solid #333;
+ border-radius: 4px;
+ padding: 8px;
+ color: #fff;
+ font-size: 14px;
+}
+
+.control-row input[type="number"]:focus {
+ outline: none;
+ border-color: #e94560;
+}
+
+.control-row input[type="range"] {
+ flex: 1;
+ height: 6px;
+ -webkit-appearance: none;
+ appearance: none;
+ background: #16213e;
+ border-radius: 3px;
+ outline: none;
+}
+
+.control-row input[type="range"]::-webkit-slider-thumb {
+ -webkit-appearance: none;
+ appearance: none;
+ width: 16px;
+ height: 16px;
+ background: #e94560;
+ border-radius: 50%;
+ cursor: pointer;
+}
+
+.control-row input[type="range"]::-moz-range-thumb {
+ width: 16px;
+ height: 16px;
+ background: #e94560;
+ border-radius: 50%;
+ cursor: pointer;
+ border: none;
+}
+
+.delete-model {
+ width: 100%;
+ padding: 12px;
+ background: #5a2a2a;
+ color: #fff;
+ border: none;
+ border-radius: 8px;
+ font-size: 14px;
+ cursor: pointer;
+ transition: all 0.2s ease;
+ margin-top: 8px;
+}
+
+.delete-model:hover {
+ background: #7a3a3a;
+}
+
+/* Scrollbar Styling */
+.model-controls::-webkit-scrollbar {
+ width: 6px;
+}
+
+.model-controls::-webkit-scrollbar-track {
+ background: #16213e;
+ border-radius: 3px;
+}
+
+.model-controls::-webkit-scrollbar-thumb {
+ background: #333;
+ border-radius: 3px;
+}
+
+.model-controls::-webkit-scrollbar-thumb:hover {
+ background: #444;
+}