react-image-list-box
Version:
Image Annotation List Box
177 lines (155 loc) • 3.52 kB
CSS
.image-label {
color: rgb(75,85,99)
}
.image-grid {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
padding: 5px;
cursor: pointer
}
.image-item {
position: relative;
margin: 10px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
transition: box-shadow 0.3s ease;
box-sizing: border-box;
overflow: hidden;
}
.image-item {
position: relative;
margin: 10px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
box-sizing: border-box;
overflow: hidden;
transition: transform 0.3s ease, box-shadow 0.3s ease;
border: 5px solid transparent;
}
.image-item img {
width: 100%;
height: auto;
object-fit: cover;
transition: transform 0.3s ease;
}
.image-item:hover {
transform: scale(1.05);
z-index: 1;
}
.image-item-button {
position: absolute;
top: 5px;
right: 2px;
background-color: black;
color: white;
border: none;
border-radius: 50%;
padding: 5px;
cursor: pointer;
transition: opacity 0.3s ease;
opacity: 0;
z-index: 2;
display: flex;
justify-content: center;
align-items: center;
width: 25px;
height: 25px;
font-size: 16px;
line-height: 1;
}
.image-item:hover .image-item-button {
opacity: 1;
}
.image-checkbox {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
position: absolute;
top: 5px;
left: 2px;
opacity: 0;
z-index: 2;
border: 2px solid black;
background-color: #fff;
width: 20px;
height: 20px;
cursor: pointer;
transition: background-color 0.3s, border-color 0.3s;
}
.image-checkbox:checked {
opacity: 1;
background-color: black;
border-color: black;
}
.image-item:hover .image-checkbox {
opacity: 1;
}
.image-checkbox:checked::after {
content: '✔';
color: white;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
font-size: 16px;
line-height: 1;
}
.image-item:hover .image-checkbox,
.image-item .image-checkbox:checked {
opacity: 1;
}
.category-badge-container-left {
position: absolute;
bottom: 27px;
left: 2px;
z-index: 2;
}
.category-badge-container-right {
position: absolute;
bottom: 27px;
right: 2px;
z-index: 2;
}
.category-badge {
position: relative;
width: 25px;
height: 25px;
border-radius: 50%;
background-color: #000;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
transition: width 0.3s ease, border-radius 0.3s ease;
cursor: pointer;
overflow: visible;
}
.category-badge:hover {
width: 100px; /* expanded width */
border-radius: 25px; /* adjust as needed to maintain circular shape on the left side */
}
.badge-text {
visibility: hidden;
display: block;
margin-left: 5px; /* adjust as needed */
white-space: nowrap;
overflow: visible;
opacity: 0;
transition: opacity 0.3s ease;
font-size: 10px;
}
.category-badge:hover .badge-text {
opacity: 1;
visibility: visible;
}
.category-icon {
position: absolute;
bottom: 5px;
left: 4px;
z-index: 2;
}