Files
thetool/public/js/pages/AssetManagement/AssetManagement.css
2025-07-10 11:58:44 +02:00

191 lines
4.3 KiB
CSS

.asset-image-container {
width: 60px;
height: 60px;
flex-shrink: 0;
}
.asset-image {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 4px;
border: 1px solid #ddd;
}
.asset-image-placeholder {
width: 100%;
height: 100%;
background-color: #f0f0f0;
border-radius: 4px;
display: flex;
align-items: center;
justify-content: center;
color: #aaa;
font-size: 24px;
}
/* CSS for the full-screen image overlay */
.tt-fullscreen-image-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.8);
display: flex;
flex-direction: column; /* Allow content to stack */
justify-content: center;
align-items: center;
z-index: 9999;
cursor: zoom-out; /* Indicate it's closable */
outline: none;
}
.tt-fullscreen-image {
max-width: 90%;
max-height: 80%; /* Give space for gallery */
object-fit: contain;
cursor: default; /* Change cursor back to default when over the image */
transition: all 0.3s ease-in-out;
}
.tt-fullscreen-close-btn {
position: absolute;
top: 20px;
right: 20px;
background: none;
border: none;
color: white;
font-size: 30px;
cursor: pointer;
z-index: 10000;
padding: 0;
line-height: 1;
}
.tt-fullscreen-close-btn:hover {
color: #f0f0f0;
}
.tt-fullscreen-gallery-nav {
position: absolute;
bottom: 20px; /* Position at the bottom */
width: 90%; /* Match image width */
display: flex;
justify-content: center;
align-items: center;
gap: 10px;
z-index: 10000;
background-color: rgba(0, 0, 0, 0.5); /* Semi-transparent background for readability */
padding: 10px;
border-radius: 8px;
}
.tt-fullscreen-gallery-nav .nav-arrow {
background: none;
border: none;
color: white;
font-size: 24px;
cursor: pointer;
padding: 0 10px;
}
.tt-fullscreen-gallery-nav .nav-arrow:hover {
color: #f0f0f0;
}
.tt-fullscreen-gallery-nav .gallery-thumbnails {
display: flex;
gap: 8px;
overflow-x: auto; /* Allow horizontal scrolling for many thumbnails */
padding: 5px 0;
-ms-overflow-style: none; /* IE and Edge */
scrollbar-width: none; /* Firefox */
}
.tt-fullscreen-gallery-nav .gallery-thumbnails::-webkit-scrollbar {
display: none; /* Chrome, Safari, Opera */
}
.tt-fullscreen-gallery-nav .thumbnail {
width: 70px;
height: 70px;
object-fit: cover;
border: 2px solid transparent;
border-radius: 4px;
cursor: pointer;
transition: border-color 0.2s ease, transform 0.2s ease;
}
.tt-fullscreen-gallery-nav .thumbnail:hover {
border-color: #fff;
transform: scale(1.05);
}
.tt-fullscreen-gallery-nav .thumbnail.active {
border-color: #3b82f6; /* Highlight active thumbnail */
transform: scale(1.05);
}
/* Modal gallery grid for uploaded images */
.asset-gallery-upload-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); /* Responsive grid */
gap: 15px;
padding: 10px 0;
}
.asset-gallery-upload-grid .gallery-item {
position: relative;
border: 1px solid #eee;
border-radius: 5px;
overflow: hidden;
padding-bottom: 100%; /* Creates a square aspect ratio */
background-color: #f8f8f8;
}
.asset-gallery-upload-grid .gallery-item img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
.asset-gallery-upload-grid .gallery-item.is-main::before {
content: '\f005'; /* FontAwesome star icon */
font-family: 'Font Awesome 5 Free';
font-weight: 900;
position: absolute;
top: 5px;
left: 5px;
color: gold;
background-color: rgba(0, 0, 0, 0.4);
border-radius: 3px;
padding: 2px 5px;
font-size: 14px;
z-index: 5;
}
.asset-gallery-upload-grid .gallery-item-actions {
position: absolute;
bottom: 0;
left: 0;
right: 0;
background-color: rgba(0, 0, 0, 0.6);
display: flex;
justify-content: space-around;
padding: 5px;
opacity: 0;
transition: opacity 0.2s ease-in-out;
z-index: 4;
}
.asset-gallery-upload-grid .gallery-item:hover .gallery-item-actions {
opacity: 1;
}
.asset-gallery-upload-grid .gallery-item-actions .btn {
color: white;
font-size: 1rem;
padding: .25rem .5rem;
}