diff options
Diffstat (limited to 'src/App.css')
| -rw-r--r-- | src/App.css | 337 |
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; +} |