/*
* Device frames drawn around SealShare's screenshots: a laptop for the desktop captures
* (1512 × 982, a MacBook 14 viewport) and a phone for the phone captures (393 × 852, an iPhone 15
* Pro viewport). The screen keeps the capture's aspect ratio, so the frame holds its shape while an
* image loads. The screenshots come from `composer screenshots` (tests/Screenshots/).
*
*
*
…![]()
*
*/
.device {
--bezel: #1b1530;
--bezel-edge: #3a3355;
--deck: #c9c2dd;
--deck-shadow: #8f88a8;
position: relative;
width: 100%;
}
@media (prefers-color-scheme: dark) {
.device {
--bezel: #05020f;
--bezel-edge: #2a2244;
--deck: #4b426a;
--deck-shadow: #231649;
}
}
.device__screen {
position: relative;
overflow: hidden;
background: var(--surface-container-high, #e8deff);
}
.device__screen img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: top center;
}
/* ---------------------------------------------------------------- laptop */
.device--laptop {
padding-bottom: 3.2%;
margin-inline: 4%;
width: auto;
}
.device--laptop .device__lid {
position: relative;
padding: 2.4% 2.4% 3%;
border-radius: 3.2% 3.2% 0 0 / 4.8% 4.8% 0 0;
background: var(--bezel);
box-shadow: inset 0 0 0 1px var(--bezel-edge), 0 24px 48px -24px rgb(16 6 45 / 0.45);
}
.device--laptop .device__screen {
aspect-ratio: 1512 / 982;
border-radius: 0.6%;
}
/* The camera notch at the top of the lid. */
.device--laptop .device__lid::before {
content: '';
position: absolute;
top: 0.9%;
left: 50%;
width: 1%;
aspect-ratio: 1;
border-radius: 50%;
background: var(--bezel-edge);
translate: -50% 0;
}
/* The deck: wider than the lid, with a thumb recess in the middle. */
.device--laptop::after {
content: '';
position: absolute;
left: -4%;
right: -4%;
bottom: 0;
height: 3.2%;
border-radius: 0 0 40% 40% / 0 0 100% 100%;
background: linear-gradient(var(--deck), var(--deck-shadow));
}
.device--laptop::before {
content: '';
position: absolute;
left: 50%;
bottom: 1.8%;
z-index: 1;
width: 14%;
height: 1.4%;
border-radius: 0 0 12px 12px;
background: var(--deck-shadow);
translate: -50% 0;
}
/* ---------------------------------------------------------------- phone */
.device--phone {
padding: 3.4%;
border-radius: 15% / 7%;
background: var(--bezel);
box-shadow: inset 0 0 0 2px var(--bezel-edge), 0 24px 48px -20px rgb(16 6 45 / 0.5);
}
.device--phone .device__screen {
aspect-ratio: 393 / 852;
border-radius: 12.5% / 5.8%;
}