:root {
--bubble-bg: #f8f8f8;
--bubble-border-color: #ddd;
--bubble-border: solid 1px var(--bubble-border-color);
}
.image-strip {
display: flex;
flex-direction: row;
width: 100%;
gap: 10px;
position: relative;
margin-bottom: 40px;
}
.image-strip img {
flex: 1 1 0;
min-width: 0;
}
.image-bubble {
display: none;
position: absolute;
left: 0;
right: 0;
z-index: 10;
background: var(--bubble-bg);
border: var(--bubble-border);
border-radius: 8px;
padding: 8px;
text-align: center;
}
.image-bubble::before,
.image-bubble::after {
content: '';
position: absolute;
left: var(--arrow-x, 50%);
transform: translateX(-50%);
border: 10px solid transparent;
}
.image-bubble.above { bottom: calc(100% + 10px); }
.image-bubble.above::before {
bottom: -21px;
border-top-color: var(--bubble-border-color);
}
.image-bubble.above::after {
bottom: -19px;
border-top-color: var(--bubble-bg);
}
.image-bubble.below { top: calc(100% + 10px); }
.image-bubble.below::before {
top: -21px;
border-bottom-color: var(--bubble-border-color);
}
.image-bubble.below::after {
top: -19px;
border-bottom-color: var(--bubble-bg);
}
.image-bubble img {
max-width: 100%;
max-height: 50vh;
object-fit: contain;
border-radius: 4px;
}