Download css/style.css from MikaFil/VR: direct link, hf CLI and curl.
- Browser
- Download file 4.66 kB
-
https://huggingface.co/spaces/MikaFil/VR/resolve/main/css/style.css
- Command line
-
hf download hf://spaces/MikaFil/VR/css/style.css
-
curl -L -o style.css https://huggingface.co/spaces/MikaFil/VR/resolve/main/css/style.css
4.66 kB
| /* =========================== | |
| Global overlay scaffolding | |
| =========================== */ | |
| #xr-overlay-root { | |
| position: fixed; | |
| inset: 0; | |
| z-index: 9999; /* Above site chrome */ | |
| pointer-events: none; /* Let underlying elements receive events unless explicitly enabled */ | |
| } | |
| /* Message toast (bottom center) */ | |
| .pc-ar-msg { | |
| position: fixed; | |
| left: 50%; | |
| transform: translateX(-50%); | |
| bottom: 16px; | |
| z-index: 2; | |
| padding: 10px 14px; | |
| background: rgba(0, 0, 0, 0.65); | |
| color: #fff; | |
| border-radius: 12px; | |
| font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif; | |
| font-size: 14px; | |
| line-height: 1.3; | |
| text-align: center; | |
| max-width: min(90vw, 640px); | |
| box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25); | |
| backdrop-filter: blur(4px); | |
| pointer-events: none; /* Non-clickable */ | |
| user-select: none; | |
| } | |
| /* =========================== | |
| AR Launch Button | |
| =========================== */ | |
| #ar-launch-btn { | |
| position: fixed; | |
| left: 50%; | |
| transform: translateX(-50%); | |
| bottom: 72px; /* Sits above the message toast */ | |
| z-index: 10001; | |
| pointer-events: auto; | |
| appearance: none; | |
| border: none; | |
| border-radius: 14px; | |
| padding: 12px 18px; | |
| font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif; | |
| font-size: 15px; | |
| font-weight: 600; | |
| color: #fff; | |
| background: rgba(0, 0, 0, 0.85); | |
| box-shadow: 0 6px 18px rgba(0,0,0,.25); | |
| backdrop-filter: blur(6px); | |
| cursor: pointer; | |
| touch-action: manipulation; | |
| -webkit-tap-highlight-color: transparent; | |
| } | |
| #ar-launch-btn:active { transform: translateX(-50%) scale(0.98); } | |
| #ar-launch-btn:disabled { | |
| opacity: 0.5; | |
| cursor: not-allowed; | |
| } | |
| /* Hidden anchor used for iOS Quick Look trigger (kept invisible) */ | |
| #ios-quicklook-anchor { | |
| position: absolute ; | |
| width: 1px ; | |
| height: 1px ; | |
| overflow: hidden ; | |
| clip-path: inset(50%) ; | |
| pointer-events: none ; | |
| } | |
| /* =========================== | |
| Vertical Rotation Slider UI | |
| =========================== */ | |
| /* Panel container */ | |
| .ar-ui { | |
| position: absolute; /* inside #xr-overlay-root space */ | |
| right: 12px; | |
| top: 50%; | |
| transform: translateY(-50%); | |
| z-index: 10000; | |
| pointer-events: auto; /* Make this panel interactive */ | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| gap: 8px; | |
| width: 56px; | |
| padding: 12px 10px; | |
| border-radius: 16px; | |
| font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif; | |
| color: #fff; | |
| background: rgba(0, 0, 0, 0.55); | |
| box-shadow: 0 6px 18px rgba(0,0,0,.25); | |
| backdrop-filter: blur(6px); | |
| touch-action: none; /* Prevent page scroll while sliding */ | |
| -webkit-tap-highlight-color: transparent; | |
| user-select: none; | |
| } | |
| .ar-ui .label { | |
| font-size: 12px; | |
| text-align: center; | |
| opacity: 0.95; | |
| } | |
| /* Big touch area for the slider */ | |
| .rotY-wrap { | |
| position: relative; | |
| width: 48px; | |
| height: 200px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| /* Critical: ensure slider grabs interactions and blocks scene drag beneath */ | |
| pointer-events: auto; | |
| touch-action: none; | |
| overflow: visible; | |
| } | |
| /* The vertical rail (full height) */ | |
| .rotY-rail { | |
| position: absolute; | |
| left: 50%; | |
| transform: translateX(-50%); | |
| width: 4px; | |
| height: 100%; | |
| background: rgba(255, 255, 255, 0.35); | |
| border-radius: 2px; | |
| pointer-events: none; /* visual only */ | |
| } | |
| /* The knob — centered on the rail */ | |
| .rotY-knob { | |
| position: absolute; | |
| left: 50%; | |
| transform: translate(-50%, -50%); /* perfectly centered */ | |
| top: 50%; | |
| width: 24px; | |
| height: 24px; | |
| border-radius: 50%; | |
| background: #ffffff; | |
| box-shadow: 0 2px 8px rgba(0,0,0,.35); | |
| will-change: top; | |
| pointer-events: none; /* moved by JS, wrapper handles input */ | |
| } | |
| /* Input range is hidden (we use it only to store the numeric value) */ | |
| .ar-ui input[type="range"].rotY { | |
| position: absolute; | |
| opacity: 0; | |
| pointer-events: none; | |
| width: 0; | |
| height: 0; | |
| } | |
| /* Degree label below slider */ | |
| .ar-ui .val { | |
| font-size: 12px; | |
| opacity: 0.95; | |
| } | |
| /* =========================== | |
| Optional: container hints | |
| =========================== */ | |
| /* If you mount the canvas in a custom container (e.g., #my-ar), you can set a min height */ | |
| #ar-mount-fallback { | |
| position: relative; | |
| width: 100%; | |
| min-height: 70vh; /* can be overridden inline on your site */ | |
| touch-action: manipulation; | |
| -webkit-tap-highlight-color: transparent; | |
| } | |
| /* Make sure the canvas fills its mount container */ | |
| #ar-mount-fallback > #application-canvas, | |
| #application-canvas { | |
| position: absolute; | |
| inset: 0; | |
| width: 100%; | |
| height: 100%; | |
| display: block; | |
| } | |