/* ------------------------------------------------------------- 18/12/2023 - *
* .b-portraitbox
* -------------------------------------------------------------------------- *
HTML
----
* -------------------------------------------------------------------------- */
.-tiny { --size: 80px; } /* tiny */
.-small { --size: 176px; } /* small */
.-medium { --size: 224px; } /* medium */
.-large { --size: 304px; } /* large */
.b-portraitbox {
position: relative;
overflow: hidden;
width: var(--size);
.b-fotogroup {
position: relative;
overflow: hidden;
height: calc(var(--size) * 1.25);
border-radius: 4px;
box-shadow: 0 15px 10px -15px rgba(var(--text-rgb, Fuchsia), .3);
&:before {
font: normal 600 400%/1 'Font Awesome 6 Free';
content: '\f110'; /* fa-spinner */
position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); /* absolute-center */
opacity: .05;
} /* before */
.b-center { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); /* absolute-center */ }
.b-icon {
z-index: 1;
position: absolute;
bottom: 0;
width: 100%;
padding: 0 4px;
text-align: right;
span {
display: inline-block;
margin: 4px auto;
padding: 1px 8px;
line-height: 2;
background: rgba(White, .3);
border-radius: 4px;
opacity: .6;
&:hover {
background: rgba(White, .9);
opacity: 1;
}
} /* span */
a { color: inherit; }
} /* .b-icon */
.b-foto {
position: relative;
display: block;
height: 100%;
background-size: cover;
transition: .3s;
&:hover { transform: scale(1.15); }
} /* .-foto */
} /* b-fotogroup */
.b-datagroup {
padding: 1em 0;
overflow: hidden;
mask-image: linear-gradient(90deg, var(--text-hex, Fuchsia) 80%, transparent); /* fadeOut Textüberlänge */
p { margin: 0; }
span { white-space: nowrap; }
} /* b-datagroup */
a:hover {
opacity: 1;
.b-foto { border: 4px solid var(--link-hex, Fuchsia); }
} /* hover */
} /* b-portraitbox */
/* -------------------------------------------------------------------------- *
.b-portraitbox-grid
* -------------------------------------------------------------------------- */
.b-portraitbox-grid {
//border: 1px dotted;
display: flex;
flex-wrap: wrap;
gap: 1em;
&.-align-center { justify-content: center; }
> * {
//border: 1px dotted;
flex-shrink: 1;
flex-basis: var(--size); /* darunter brechen Kindelemente um */
max-width: calc(50% - .5em); /* auf kleinen Display 2 nebeneinander */
} /* Childs */
&.-flex-grow > * { flex-grow: 1; }
} /* .b-flex-container */