|
|
| Line 26: |
Line 26: |
| text-decoration: none !important; | | text-decoration: none !important; |
| border-bottom: 2px solid currentColor; | | border-bottom: 2px solid currentColor; |
| }
| |
|
| |
| /* ===== Rotatable Model Viewer ===== */
| |
|
| |
| .rotatable-model-wrapper {
| |
| display: block;
| |
| text-align: center;
| |
| }
| |
|
| |
| .rotatable-model {
| |
| position: relative;
| |
| overflow: hidden;
| |
| cursor: grab;
| |
| background: #f8f9fa;
| |
| user-select: none;
| |
| -webkit-user-select: none;
| |
| touch-action: none;
| |
| }
| |
| .rotatable-model.rm-dragging {
| |
| cursor: grabbing;
| |
| }
| |
|
| |
| /* 3D sprite strip */
| |
| .rotatable-model img.rm-strip {
| |
| position: absolute;
| |
| top: 0;
| |
| left: 0;
| |
| max-width: none !important;
| |
| max-height: none !important;
| |
| pointer-events: none;
| |
| -webkit-user-drag: none;
| |
| user-select: none;
| |
| }
| |
|
| |
| /* 2D static image */
| |
| .rotatable-model img.rm-static {
| |
| position: absolute;
| |
| bottom: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| object-fit: cover;
| |
| pointer-events: none;
| |
| user-select: none;
| |
| display: none;
| |
| }
| |
|
| |
| /* 2D mode */
| |
| .rotatable-model.rm-is-2d {
| |
| cursor: default;
| |
| }
| |
| .rotatable-model.rm-is-2d img.rm-strip {
| |
| display: none !important;
| |
| }
| |
| .rotatable-model.rm-is-2d img.rm-static {
| |
| display: block !important;
| |
| }
| |
| .rotatable-model.rm-is-2d .rm-rotate-icon,
| |
| .rotatable-model.rm-is-2d .rotatable-model-hint {
| |
| display: none !important;
| |
| }
| |
| .rotatable-model-wrapper.rm-is-2d .rotatable-model-nav {
| |
| visibility: hidden;
| |
| pointer-events: none;
| |
| }
| |
|
| |
| /* ---- MODE TOGGLE — single button, top-right ---- */
| |
| .rm-mode-toggle {
| |
| position: absolute;
| |
| top: 2px;
| |
| right: 2px;
| |
| z-index: 10;
| |
| display: inline-flex;
| |
| align-items: center;
| |
| justify-content: center;
| |
| width: 40px;
| |
| height: 40px;
| |
| border-radius: 8px;
| |
| cursor: pointer;
| |
| pointer-events: auto;
| |
| }
| |
| .rm-mode-toggle:hover {
| |
| background: rgba(30, 30, 30, 0.8);
| |
| transform: scale(1.05);
| |
| }
| |
| .rm-mode-toggle:active {
| |
| transform: scale(0.95);
| |
| }
| |
|
| |
| /* Icon inside toggle button */
| |
| .rm-mode-icon {
| |
| width: 24px;
| |
| height: 24px;
| |
| object-fit: contain;
| |
| pointer-events: none;
| |
| filter: brightness(0) invert(1);
| |
| }
| |
|
| |
| /* Text fallback */
| |
| .rm-mode-toggle {
| |
| font-size: 14px;
| |
| font-weight: 700;
| |
| color: #fff;
| |
| font-family: sans-serif;
| |
| }
| |
|
| |
| /* ---- ROTATION ICON — bottom-right ---- */
| |
| .rm-rotate-icon {
| |
| position: absolute;
| |
| bottom: 2px;
| |
| right: 2px;
| |
| z-index: 5;
| |
| pointer-events: none;
| |
| opacity: 0.55;
| |
| transition: opacity 0.3s;
| |
| }
| |
| .rotatable-model:hover .rm-rotate-icon {
| |
| opacity: 0.85;
| |
| }
| |
| .rm-rotate-icon img {
| |
| width: 48px;
| |
| height: 48px;
| |
| object-fit: contain;
| |
| filter: brightness(0) invert(1) drop-shadow(0 1px 3px rgba(0,0,0,0.5));
| |
| }
| |
|
| |
| /* Loading */
| |
| .rotatable-model-loading {
| |
| position: absolute;
| |
| top: 50%;
| |
| left: 50%;
| |
| transform: translate(-50%, -50%);
| |
| color: #72777d;
| |
| font-size: 0.9em;
| |
| z-index: 1;
| |
| }
| |
|
| |
| /* ---- Nav buttons ---- */
| |
| .rotatable-model-nav {
| |
| display: flex;
| |
| justify-content: center;
| |
| gap: 4px;
| |
| margin-top: 4px;
| |
| transition: visibility 0.2s;
| |
| }
| |
| .rotatable-model-btn {
| |
| display: inline-flex;
| |
| align-items: center;
| |
| justify-content: center;
| |
| min-width: 28px;
| |
| height: 28px;
| |
| padding: 0 6px;
| |
| background: #f8f9fa;
| |
| border: 1px solid #a2a9b1;
| |
| border-radius: 3px;
| |
| cursor: pointer;
| |
| font-size: 14px;
| |
| color: #202122;
| |
| user-select: none;
| |
| transition: background 0.1s;
| |
| }
| |
| .rotatable-model-btn:hover { background: #eaecf0; border-color: #72777d; }
| |
| .rotatable-model-btn:active { background: #c8ccd1; }
| |
|
| |
| .rotatable-model-caption {
| |
| font-size: 0.9em;
| |
| color: #54595d;
| |
| margin-top: 4px;
| |
| } | | } |