Files
michaelschiemer/resources/css/components/lightbox.css
Michael Schiemer 55a330b223 Enable Discovery debug logging for production troubleshooting
- Add DISCOVERY_LOG_LEVEL=debug
- Add DISCOVERY_SHOW_PROGRESS=true
- Temporary changes for debugging InitializerProcessor fixes on production
2025-08-11 20:13:26 +02:00

172 lines
3.3 KiB
CSS

/* Lightbox Component Styles */
/* Enhanced images cursor */
.lightbox-enabled {
cursor: zoom-in;
transition: opacity 0.2s ease;
}
.lightbox-enabled:hover {
opacity: 0.9;
}
/* Lightbox dialog styles */
.lightbox {
background-color: rgba(0, 0, 0, 0.9);
padding: 2rem;
border: none;
border-radius: 0;
max-width: 95vw;
max-height: 95vh;
width: auto;
height: auto;
}
.lightbox::backdrop {
background-color: rgba(0, 0, 0, 0.8);
}
.lightbox-content {
display: flex;
flex-direction: column;
align-items: center;
max-width: 100%;
max-height: 100%;
}
.lightbox-image {
max-width: 100%;
max-height: calc(90vh - 4rem);
width: auto;
height: auto;
object-fit: contain;
border-radius: 4px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.lightbox-caption {
color: white;
text-align: center;
margin-top: 1rem;
font-size: 0.9rem;
line-height: 1.4;
max-width: 600px;
}
/* Responsive picture elements in lightbox */
.lightbox picture {
display: flex;
justify-content: center;
align-items: center;
max-width: 100%;
max-height: calc(90vh - 4rem);
}
.lightbox picture img {
max-width: 100%;
max-height: 100%;
width: auto;
height: auto;
object-fit: contain;
}
/* Close button styling (if using Dialog component) */
.lightbox .dialog-close {
position: absolute;
top: 1rem;
right: 1rem;
background: rgba(255, 255, 255, 0.1);
border: 1px solid rgba(255, 255, 255, 0.2);
color: white;
width: 40px;
height: 40px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
font-size: 1.2rem;
transition: background-color 0.2s ease;
}
.lightbox .dialog-close:hover {
background: rgba(255, 255, 255, 0.2);
}
/* Loading state for images */
.lightbox-image[src=""] {
background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
background-size: 200% 100%;
animation: loading 1.5s infinite;
min-width: 200px;
min-height: 150px;
}
@keyframes loading {
0% { background-position: 200% 0; }
100% { background-position: -200% 0; }
}
/* Mobile optimizations */
@media (max-width: 768px) {
.lightbox {
padding: 1rem;
max-width: 98vw;
max-height: 98vh;
}
.lightbox-image {
max-height: calc(95vh - 2rem);
}
.lightbox picture {
max-height: calc(95vh - 2rem);
}
.lightbox-caption {
font-size: 0.8rem;
margin-top: 0.5rem;
}
.lightbox .dialog-close {
top: 0.5rem;
right: 0.5rem;
width: 32px;
height: 32px;
font-size: 1rem;
}
}
/* Focus management for accessibility */
.lightbox:focus {
outline: none;
}
.lightbox-image:focus {
outline: 2px solid white;
outline-offset: 2px;
}
/* Animation for lightbox open/close */
.lightbox {
animation: lightboxFadeIn 0.3s ease-out;
}
@keyframes lightboxFadeIn {
from {
opacity: 0;
transform: scale(0.9);
}
to {
opacity: 1;
transform: scale(1);
}
}
/* High DPI display optimizations */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
.lightbox-image {
image-rendering: -webkit-optimize-contrast;
image-rendering: crisp-edges;
}
}