/* ============================================== Components: Material UI Components (VR Optimized) All sizes increased for VR readability and raycast interaction All interactive elements have hover/active states ============================================== */ /* ============== Status Bar (VR-sized) ============== */ .status-bar { height: 36px; padding: 0 16px; background-color: transparent; display: flex; justify-content: space-between; align-items: center; font-size: 16px; color: #FFFFFF; } .status-bar-time { font-weight: 500; } .status-bar-icons { display: flex; gap: 8px; } /* ============== App Bar (VR-sized) ============== */ .app-bar { height: 72px; padding: 0 16px; background-color: #1E1E1E; display: flex; align-items: center; } .app-bar-nav { width: 56px; height: 56px; display: flex; align-items: center; justify-content: center; margin-right: 12px; cursor: pointer; border-radius: 28px; } .app-bar-nav:hover { background-color: rgba(255, 255, 255, 0.1); } .app-bar-nav:active { background-color: rgba(255, 255, 255, 0.2); } .app-bar-title { font-size: 26px; font-weight: 500; flex: 1; color: #FFFFFF; } .app-bar-actions { display: flex; gap: 8px; } /* ============== Buttons (VR-sized) ============== */ .btn { padding: 16px 32px; font-size: 18px; font-weight: 500; font-family: LatoLatin; text-align: center; border-radius: 8px; cursor: pointer; min-height: 56px; } .btn:hover { opacity: 0.9; } .btn:active { opacity: 0.8; } .btn-primary { background-color: #BB86FC; color: #000000; } .btn-primary:hover { background-color: #D4A5FF; } .btn-primary:active { background-color: #9A67EA; } .btn-secondary { background-color: #03DAC6; color: #000000; } .btn-secondary:hover { background-color: #4AEADB; } .btn-secondary:active { background-color: #00B3A1; } .btn-outlined { background-color: transparent; color: #BB86FC; } .btn-outlined:hover { background-color: rgba(187, 134, 252, 0.15); } .btn-outlined:active { background-color: rgba(187, 134, 252, 0.25); } .btn-text { background-color: transparent; color: #BB86FC; padding: 12px 20px; } .btn-text:hover { background-color: rgba(187, 134, 252, 0.1); } .btn-text:active { background-color: rgba(187, 134, 252, 0.2); } /* Icon Button (VR-sized - larger touch target) */ .btn-icon { width: 64px; height: 64px; padding: 0; border-radius: 32px; background-color: transparent; display: flex; align-items: center; justify-content: center; font-size: 28px; cursor: pointer; } .btn-icon:hover { background-color: rgba(255, 255, 255, 0.12); } .btn-icon:active { background-color: rgba(255, 255, 255, 0.2); } /* Floating Action Button (VR-sized) */ .btn-fab { width: 72px; height: 72px; border-radius: 36px; background-color: #BB86FC; color: #000000; display: flex; align-items: center; justify-content: center; font-size: 32px; position: absolute; bottom: 100px; right: 20px; cursor: pointer; } .btn-fab:hover { background-color: #D4A5FF; transform: scale(1.05); } .btn-fab:active { background-color: #9A67EA; transform: scale(0.95); } /* ============== Input Fields (VR-sized) ============== */ .input-container { margin-bottom: 20px; } .input-label { font-size: 16px; color: #B3B3B3; margin-bottom: 8px; } .input-field { width: 100%; padding: 16px 0; font-size: 20px; font-family: LatoLatin; color: #FFFFFF; background-color: transparent; border-bottom-width: 2px; border-bottom-color: #333333; } .input-field:focus { border-bottom-color: #BB86FC; } .input-field:hover { border-bottom-color: #666666; } /* Search Input (VR-sized) */ .search-bar { display: flex; align-items: center; padding: 14px 20px; background-color: #2D2D2D; border-radius: 32px; margin: 12px 16px; cursor: pointer; } .search-bar:hover { background-color: #3D3D3D; } .search-icon { font-size: 24px; color: #B3B3B3; margin-right: 16px; } .search-input { flex: 1; background-color: transparent; font-size: 20px; color: #FFFFFF; } /* ============== Cards (VR-sized) ============== */ .card { background-color: #1E1E1E; border-radius: 12px; padding: 20px; margin: 12px; cursor: pointer; } .card:hover { background-color: #252525; } .card:active { background-color: #2A2A2A; } .card-elevated { background-color: #2D2D2D; } .card-elevated:hover { background-color: #353535; } .card-header { font-size: 24px; font-weight: 500; margin-bottom: 10px; color: #FFFFFF; } .card-subtitle { font-size: 18px; color: #B3B3B3; margin-bottom: 16px; } .card-content { font-size: 18px; color: #B3B3B3; } .card-actions { display: flex; justify-content: flex-end; margin-top: 20px; gap: 12px; } /* ============== Lists (VR-sized) ============== */ .list { display: flex; flex-direction: column; } .list-item { display: flex; align-items: center; padding: 16px 20px; min-height: 72px; cursor: pointer; } .list-item:hover { background-color: rgba(255, 255, 255, 0.08); } .list-item:active { background-color: rgba(255, 255, 255, 0.15); } .list-item-avatar { width: 56px; height: 56px; border-radius: 28px; background-color: #BB86FC; margin-right: 20px; display: flex; align-items: center; justify-content: center; font-size: 24px; color: #000000; } .list-item-icon { width: 56px; height: 56px; margin-right: 20px; display: flex; align-items: center; justify-content: center; font-size: 28px; color: #B3B3B3; } .list-item-content { flex: 1; display: flex; flex-direction: column; } .list-item-title { font-size: 20px; color: #FFFFFF; } .list-item-subtitle { font-size: 16px; color: #B3B3B3; margin-top: 4px; } .list-item-action { font-size: 28px; color: #666666; cursor: pointer; } .list-item-action:hover { color: #FFFFFF; } .list-divider { height: 1px; background-color: #333333; margin-left: 96px; } .list-header { padding: 20px 20px 12px 20px; font-size: 18px; font-weight: 500; color: #BB86FC; } /* ============== Bottom Navigation (VR-sized) ============== */ .bottom-nav { position: absolute; bottom: 0; left: 0; right: 0; height: 72px; background-color: #1E1E1E; display: flex; } .bottom-nav-item { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; cursor: pointer; color: #666666; } .bottom-nav-item:hover { color: #B3B3B3; background-color: rgba(255, 255, 255, 0.05); } .bottom-nav-item:active { background-color: rgba(255, 255, 255, 0.1); } .bottom-nav-item.active { color: #BB86FC; } .bottom-nav-item.active:hover { color: #D4A5FF; } .bottom-nav-icon { font-size: 28px; margin-bottom: 6px; } .bottom-nav-label { font-size: 14px; } /* ============== Dialogs/Modals (VR-sized) ============== */ .modal-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.7); display: flex; align-items: center; justify-content: center; } .modal-dialog { background-color: #2D2D2D; border-radius: 16px; padding: 32px; width: 360px; max-width: 90%; } .modal-title { font-size: 26px; font-weight: 500; color: #FFFFFF; margin-bottom: 20px; } .modal-content { font-size: 18px; color: #B3B3B3; margin-bottom: 32px; } .modal-actions { display: flex; justify-content: flex-end; gap: 12px; } /* ============== Toast/Snackbar (VR-sized) ============== */ .toast { position: absolute; bottom: 100px; left: 20px; right: 20px; background-color: #323232; color: #FFFFFF; padding: 20px 24px; border-radius: 8px; display: flex; align-items: center; justify-content: space-between; font-size: 18px; } .toast-action { color: #BB86FC; font-weight: 500; margin-left: 20px; cursor: pointer; } .toast-action:hover { color: #D4A5FF; } /* ============== Toggle/Switch (VR-sized) ============== */ .toggle { width: 52px; height: 32px; border-radius: 16px; background-color: #666666; position: relative; cursor: pointer; } .toggle:hover { background-color: #777777; } .toggle.active { background-color: rgba(187, 134, 252, 0.5); } .toggle.active:hover { background-color: rgba(187, 134, 252, 0.6); } .toggle-thumb { width: 24px; height: 24px; border-radius: 12px; background-color: #B3B3B3; position: absolute; top: 4px; left: 4px; } .toggle.active .toggle-thumb { background-color: #BB86FC; left: 24px; } /* ============== Chips/Tags (VR-sized) ============== */ .chip { display: inline-flex; align-items: center; padding: 10px 18px; background-color: #2D2D2D; border-radius: 24px; font-size: 18px; color: #FFFFFF; margin: 6px; cursor: pointer; } .chip:hover { background-color: #3D3D3D; } .chip:active { background-color: #454545; } .chip.active { background-color: #BB86FC; color: #000000; } .chip.active:hover { background-color: #D4A5FF; } .chip-icon { margin-right: 10px; } .chip-delete { margin-left: 10px; font-size: 22px; color: #B3B3B3; cursor: pointer; } .chip-delete:hover { color: #FFFFFF; } /* ============== Dividers ============== */ .divider { height: 1px; background-color: #333333; } .divider-inset { margin-left: 96px; } /* ============== App Grid (Home Screen - VR-sized) ============== */ .app-grid { display: flex; flex-wrap: wrap; padding: 20px; } .app-icon { width: 25%; display: flex; flex-direction: column; align-items: center; padding: 16px 0; cursor: pointer; border-radius: 12px; } .app-icon:hover { background-color: rgba(255, 255, 255, 0.08); } .app-icon:active { background-color: rgba(255, 255, 255, 0.15); } .app-icon-image { width: 72px; height: 72px; border-radius: 18px; background-color: #BB86FC; display: flex; align-items: center; justify-content: center; font-size: 32px; color: #000000; margin-bottom: 12px; } .app-icon-image:hover { transform: scale(1.05); } .app-icon-label { font-size: 16px; color: #FFFFFF; text-align: center; } /* ============== Dock (VR-sized) ============== */ .dock { position: absolute; bottom: 0; left: 0; right: 0; height: 100px; background-color: rgba(30, 30, 30, 0.95); display: flex; justify-content: space-around; align-items: center; padding: 0 40px; } .dock-item { width: 72px; height: 72px; border-radius: 18px; background-color: #BB86FC; display: flex; align-items: center; justify-content: center; font-size: 36px; color: #000000; cursor: pointer; } .dock-item:hover { transform: scale(1.1); background-color: #D4A5FF; } .dock-item:active { transform: scale(0.95); background-color: #9A67EA; } /* ============== Dial Pad (VR-sized) ============== */ .dial-pad { display: flex; flex-wrap: wrap; padding: 20px; } .dial-key { width: 33.33%; height: 96px; display: flex; flex-direction: column; align-items: center; justify-content: center; cursor: pointer; border-radius: 48px; } .dial-key:hover { background-color: rgba(255, 255, 255, 0.12); } .dial-key:active { background-color: rgba(255, 255, 255, 0.2); } .dial-key-number { font-size: 42px; font-weight: 300; color: #FFFFFF; } .dial-key-letters { font-size: 14px; color: #B3B3B3; letter-spacing: 3px; margin-top: 4px; } .dial-display { font-size: 48px; font-weight: 300; color: #FFFFFF; text-align: center; padding: 32px 20px; letter-spacing: 3px; } .dial-actions { display: flex; justify-content: center; padding: 20px; gap: 64px; } .dial-call-btn { width: 80px; height: 80px; border-radius: 40px; background-color: #4CAF50; display: flex; align-items: center; justify-content: center; font-size: 36px; color: #FFFFFF; cursor: pointer; } .dial-call-btn:hover { background-color: #66BB6A; transform: scale(1.05); } .dial-call-btn:active { background-color: #43A047; transform: scale(0.95); } /* ============== Chat Bubbles (VR-sized) ============== */ .chat-container { display: flex; flex-direction: column; padding: 20px; gap: 12px; } .chat-bubble { max-width: 75%; padding: 14px 20px; border-radius: 24px; font-size: 18px; } .chat-bubble-sent { align-self: flex-end; background-color: #BB86FC; color: #000000; border-bottom-right-radius: 6px; } .chat-bubble-received { align-self: flex-start; background-color: #2D2D2D; color: #FFFFFF; border-bottom-left-radius: 6px; } .chat-timestamp { font-size: 14px; color: #666666; text-align: center; margin: 12px 0; } .chat-input-container { display: flex; align-items: center; padding: 12px 20px; background-color: #1E1E1E; } .chat-input { flex: 1; padding: 14px 20px; background-color: #2D2D2D; border-radius: 32px; font-size: 18px; color: #FFFFFF; margin-right: 12px; } .chat-input:hover { background-color: #3D3D3D; } .chat-input:focus { background-color: #353535; } .chat-send-btn { width: 56px; height: 56px; border-radius: 28px; background-color: #BB86FC; display: flex; align-items: center; justify-content: center; font-size: 28px; color: #000000; cursor: pointer; } .chat-send-btn:hover { background-color: #D4A5FF; transform: scale(1.05); } .chat-send-btn:active { background-color: #9A67EA; transform: scale(0.95); } /* ============== Section Headers (VR-sized) ============== */ .section-header { display: flex; align-items: center; justify-content: space-between; padding: 24px 20px 16px 20px; } .section-title { font-size: 24px; font-weight: 600; color: #FFFFFF; } .section-action { font-size: 16px; font-weight: 600; color: #B3B3B3; cursor: pointer; } .section-action:hover { color: #FFFFFF; } /* ============== Navigation Item (VR-sized) ============== */ .nav-item { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; cursor: pointer; color: #B3B3B3; padding: 12px; } .nav-item:hover { background-color: rgba(255, 255, 255, 0.05); } .nav-item:active { background-color: rgba(255, 255, 255, 0.1); } .nav-item.active { color: #FFFFFF; } .nav-item img { width: 32px; height: 32px; margin-bottom: 6px; } .nav-item span { font-size: 14px; } /* ============== Quick Cards (VR-sized) ============== */ .quick-card { display: flex; align-items: center; background-color: #282828; border-radius: 8px; padding: 0; height: 72px; overflow: hidden; cursor: pointer; } .quick-card:hover { background-color: #353535; } .quick-card:active { background-color: #3D3D3D; } .quick-card-art { width: 72px; height: 72px; display: flex; align-items: center; justify-content: center; font-size: 28px; color: #FFFFFF; } .quick-card-title { font-size: 17px; font-weight: 600; color: #FFFFFF; padding: 0 16px; } /* ============== Recent/Playlist Items (VR-sized) ============== */ .recent-item { min-width: 160px; cursor: pointer; padding: 8px; border-radius: 8px; } .recent-item:hover { background-color: rgba(255, 255, 255, 0.05); } .recent-art { width: 160px; height: 160px; border-radius: 12px; margin-bottom: 16px; display: flex; align-items: center; justify-content: center; font-size: 52px; color: #FFFFFF; } .recent-title { font-size: 18px; color: #FFFFFF; font-weight: 500; margin-bottom: 6px; } .recent-subtitle { font-size: 16px; color: #B3B3B3; } .playlist-item { display: flex; align-items: center; padding: 16px 20px; cursor: pointer; } .playlist-item:hover { background-color: rgba(255, 255, 255, 0.05); } .playlist-item:active { background-color: rgba(255, 255, 255, 0.1); } .playlist-art { width: 72px; height: 72px; border-radius: 8px; margin-right: 16px; display: flex; align-items: center; justify-content: center; font-size: 28px; color: #FFFFFF; } .playlist-info { flex: 1; } .playlist-title { font-size: 20px; color: #FFFFFF; font-weight: 500; } .playlist-meta { font-size: 16px; color: #B3B3B3; margin-top: 6px; } /* ============== Mini Player (VR-sized) ============== */ .mini-player { display: flex; align-items: center; padding: 12px 20px; background-color: #282828; } .mini-player-art { width: 64px; height: 64px; border-radius: 8px; background-color: #667eea; margin-right: 16px; display: flex; align-items: center; justify-content: center; font-size: 28px; color: #FFFFFF; } .mini-player-info { flex: 1; } .mini-player-title { font-size: 18px; color: #FFFFFF; font-weight: 500; } .mini-player-artist { font-size: 16px; color: #B3B3B3; margin-top: 4px; } .mini-player-controls { display: flex; gap: 12px; } .mini-control-btn { width: 56px; height: 56px; display: flex; align-items: center; justify-content: center; cursor: pointer; border-radius: 28px; } .mini-control-btn:hover { background-color: rgba(255, 255, 255, 0.1); } .mini-control-btn:active { background-color: rgba(255, 255, 255, 0.2); } .mini-control-btn img { width: 32px; height: 32px; } /* ============== Camera Controls (VR-sized) ============== */ .camera-btn { width: 56px; height: 56px; border-radius: 28px; background-color: rgba(0, 0, 0, 0.5); display: flex; align-items: center; justify-content: center; cursor: pointer; } .camera-btn:hover { background-color: rgba(255, 255, 255, 0.25); } .camera-btn:active { background-color: rgba(255, 255, 255, 0.35); } .camera-btn img { width: 32px; height: 32px; } .camera-mode { font-size: 18px; color: #B3B3B3; cursor: pointer; padding: 12px; border-radius: 8px; } .camera-mode:hover { background-color: rgba(255, 255, 255, 0.1); color: #FFFFFF; } .camera-mode.active { color: #FFD700; font-weight: 600; } .capture-btn { width: 88px; height: 88px; border-radius: 44px; background-color: #FFFFFF; cursor: pointer; display: flex; align-items: center; justify-content: center; } .capture-btn:hover { transform: scale(1.05); } .capture-btn:active { transform: scale(0.95); background-color: #E0E0E0; } .switch-camera-btn { width: 64px; height: 64px; border-radius: 32px; background-color: rgba(255, 255, 255, 0.25); cursor: pointer; display: flex; align-items: center; justify-content: center; } .switch-camera-btn:hover { background-color: rgba(255, 255, 255, 0.35); } .switch-camera-btn:active { background-color: rgba(255, 255, 255, 0.45); } .switch-camera-btn img { width: 32px; height: 32px; } .gallery-preview { width: 64px; height: 64px; border-radius: 12px; background-color: #333333; cursor: pointer; display: flex; align-items: center; justify-content: center; } .gallery-preview:hover { background-color: #444444; } .gallery-preview img { width: 32px; height: 32px; opacity: 0.8; } .zoom-btn { width: 44px; height: 44px; border-radius: 22px; background-color: rgba(0, 0, 0, 0.6); display: flex; align-items: center; justify-content: center; font-size: 24px; color: #FFFFFF; cursor: pointer; } .zoom-btn:hover { background-color: rgba(255, 255, 255, 0.2); } /* ============== Store Components (VR-sized) ============== */ .app-card { min-width: 180px; background-color: #1E1E1E; border-radius: 16px; padding: 16px; cursor: pointer; } .app-card:hover { background-color: #2A2A2A; } .app-card:active { background-color: #303030; } .app-card-icon { width: 80px; height: 80px; border-radius: 20px; margin-bottom: 16px; display: flex; align-items: center; justify-content: center; font-size: 36px; color: #000000; } .app-card-name { font-size: 18px; font-weight: 500; color: #FFFFFF; margin-bottom: 6px; } .app-card-category { font-size: 16px; color: #B3B3B3; margin-bottom: 10px; } .app-card-rating { display: flex; align-items: center; font-size: 16px; color: #B3B3B3; } .app-list-item { display: flex; align-items: center; padding: 16px 20px; cursor: pointer; } .app-list-item:hover { background-color: rgba(255, 255, 255, 0.05); } .app-list-item:active { background-color: rgba(255, 255, 255, 0.1); } .app-list-icon { width: 72px; height: 72px; border-radius: 16px; margin-right: 20px; display: flex; align-items: center; justify-content: center; font-size: 32px; color: #000000; } .app-list-info { flex: 1; } .app-list-name { font-size: 20px; font-weight: 500; color: #FFFFFF; } .app-list-meta { font-size: 16px; color: #B3B3B3; margin-top: 4px; } .app-list-rating { display: flex; align-items: center; margin-top: 6px; } .app-list-rating span { font-size: 16px; color: #B3B3B3; } .install-btn { background-color: #BB86FC; color: #000000; font-size: 16px; font-weight: 600; padding: 12px 28px; border-radius: 24px; cursor: pointer; } .install-btn:hover { background-color: #D4A5FF; } .install-btn:active { background-color: #9A67EA; } .install-btn.installed { background-color: transparent; color: #BB86FC; } .install-btn.installed:hover { background-color: rgba(187, 134, 252, 0.15); } .category-chip { background-color: #2D2D2D; color: #FFFFFF; font-size: 18px; padding: 12px 24px; border-radius: 24px; white-space: nowrap; cursor: pointer; } .category-chip:hover { background-color: #3D3D3D; } .category-chip.active { background-color: #BB86FC; color: #000000; } .category-chip.active:hover { background-color: #D4A5FF; } /* ============== Featured Banner (VR-sized) ============== */ .featured-banner { margin: 0 20px 20px 20px; height: 200px; background-color: #6200EE; border-radius: 20px; padding: 28px; display: flex; flex-direction: column; justify-content: flex-end; cursor: pointer; } .featured-banner:hover { opacity: 0.95; } .featured-tag { font-size: 14px; color: rgba(255,255,255,0.7); text-transform: uppercase; margin-bottom: 10px; } .featured-title { font-size: 32px; font-weight: 600; color: #FFFFFF; margin-bottom: 6px; } .featured-subtitle { font-size: 18px; color: rgba(255,255,255,0.8); } /* ============== Store Search (VR-sized) ============== */ .store-search { margin: 20px; background-color: #2D2D2D; border-radius: 32px; padding: 16px 24px; display: flex; align-items: center; cursor: pointer; } .store-search:hover { background-color: #3D3D3D; } .store-search img { width: 28px; height: 28px; margin-right: 16px; opacity: 0.6; } .store-search-text { font-size: 20px; color: #B3B3B3; } /* ============== Store Navigation (VR-sized) ============== */ .store-bottom-nav { display: flex; height: 72px; background-color: #1E1E1E; } .store-nav-item { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; cursor: pointer; color: #B3B3B3; } .store-nav-item:hover { background-color: rgba(255, 255, 255, 0.05); } .store-nav-item.active { color: #BB86FC; } .store-nav-item img { width: 32px; height: 32px; margin-bottom: 6px; } .store-nav-item span { font-size: 14px; } /* ============== Music Navigation (VR-sized) ============== */ .music-bottom-nav { display: flex; height: 72px; background-color: #1E1E1E; }