79 lines
2.3 KiB
CSS
79 lines
2.3 KiB
CSS
/* Minimap overlay — bottom-right corner of .canvas-content. */
|
|
.canvas-minimap {
|
|
position: absolute;
|
|
bottom: 16px;
|
|
right: 16px;
|
|
z-index: 20;
|
|
|
|
/* Frame: subtle dark surface that sits one step above the canvas bg. */
|
|
background: rgba(20, 20, 22, 0.9);
|
|
border: 1px solid rgba(255, 255, 255, 0.12);
|
|
border-radius: 8px;
|
|
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
|
|
backdrop-filter: blur(6px);
|
|
|
|
/* Disable text selection during drag — touch-action:none on the
|
|
* canvas-content already prevents browser-level pan/zoom, but we set
|
|
* it here too so the minimap works inside other containers. */
|
|
user-select: none;
|
|
touch-action: none;
|
|
overflow: hidden;
|
|
cursor: crosshair;
|
|
}
|
|
|
|
.canvas-minimap-world {
|
|
position: absolute;
|
|
inset: 0;
|
|
}
|
|
|
|
/* Boards are the visual anchor — render them in the brand blue with
|
|
* enough opacity to dominate over the component dots. */
|
|
.canvas-minimap-board {
|
|
position: absolute;
|
|
background: rgba(0, 113, 227, 0.55);
|
|
border: 0.5px solid rgba(0, 113, 227, 0.85);
|
|
border-radius: 1px;
|
|
pointer-events: none;
|
|
}
|
|
|
|
/* Components: small fixed-size dots, slightly transparent so a cluster
|
|
* still reads as 'busy area' without becoming a solid bar. */
|
|
.canvas-minimap-component {
|
|
position: absolute;
|
|
width: 3px;
|
|
height: 3px;
|
|
background: rgba(255, 255, 255, 0.55);
|
|
border-radius: 1px;
|
|
pointer-events: none;
|
|
}
|
|
|
|
/* Viewport rectangle — white outline + slight inner fill. The
|
|
* pointer-events: none lets the minimap's pointerdown handler decide
|
|
* whether the click landed inside (drag) or outside (teleport)
|
|
* based on the calculated rect bounds. */
|
|
.canvas-minimap-viewport {
|
|
position: absolute;
|
|
border: 1.5px solid rgba(255, 255, 255, 0.85);
|
|
background: rgba(255, 255, 255, 0.08);
|
|
border-radius: 2px;
|
|
pointer-events: none;
|
|
/* No transition on left/top — those values change every frame during
|
|
* a pan and a transition would lag the user's drag. */
|
|
}
|
|
|
|
/* Hover state on the minimap itself: subtle brightness bump so the user
|
|
* knows it's interactive. */
|
|
.canvas-minimap:hover {
|
|
border-color: rgba(255, 255, 255, 0.22);
|
|
}
|
|
|
|
@media (max-width: 720px) {
|
|
/* On phones the minimap eats too much of the canvas; shrink it. */
|
|
.canvas-minimap {
|
|
width: 140px !important;
|
|
height: 105px !important;
|
|
bottom: 12px;
|
|
right: 12px;
|
|
}
|
|
}
|