personal_site/_sass/model_viewer.scss
2025-01-25 19:20:05 +00:00

91 lines
1.7 KiB
SCSS

// For fallback images inside custom outline-model-viewer elements
.outline-model-poster {
width: 100%;
height: 100%;
}
outline-model-viewer,
point-cloud-viewer,
volume-viewer {
width: 100%;
min-height: 300px;
display: flex;
justify-content: center;
align-items: center;
border: var(--theme-subtle-outline) 1px solid;
border-radius: 10px;
margin-top: 1em;
margin-bottom: 1em;
}
.Hotspot {
background: #fff;
border-radius: 32px;
border: 0;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
box-sizing: border-box;
cursor: pointer;
height: 15px;
padding: 8px;
position: relative;
transition: opacity 0.3s;
width: 15px;
}
.Hotspot:not([data-visible]) {
background: transparent;
border: 4px solid #fff;
box-shadow: none;
height: 32px;
pointer-events: none;
width: 32px;
}
.Hotspot:focus {
border: 4px solid rgb(0, 128, 200);
height: 32px;
outline: none;
width: 32px;
}
.Hotspot > * {
opacity: 1;
transform: translateY(-50%);
}
.HotspotAnnotation {
background: #fff;
border-radius: 4px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
color: rgba(0, 0, 0, 0.8);
display: block;
font-family: Futura, Helvetica Neue, sans-serif;
font-size: 12px;
font-weight: 700;
left: calc(100% + 2em);
max-width: 128px;
overflow-wrap: break-word;
padding: 0.5em 1em;
position: absolute;
top: 50%;
width: max-content;
}
.left.HotspotAnnotation {
right: calc(100% + 2em);
left: unset;
}
.Hotspot:not([data-visible]) > * {
opacity: 0;
pointer-events: none;
transform: translateY(calc(-50% + 4px));
transition: transform 0.3s, opacity 0.3s;
}
// For the 3D model viewer
model-viewer {
width: 100%;
height: 300px;
}