Files
red-valley/resources/[framework]/[addons]/qs-smartphone-pro/html/css/device.css
2026-03-29 21:41:17 +03:00

271 lines
5.7 KiB
CSS

:root {
--dynamic-island-default-height: 4rem;
--dynamic-island-default-width: 13rem;
--dynamic-island-signals-width: 45.5%;
--device-button-radius: 10px;
--device-button-width: 3px;
--phone-hide: 100%;
--phone-show: 0%;
--battery-percentage: 0%;
}
#phone-device-container {
width: 100%;
height: 100%;
transform: translateY(var(--phone-hide));
transition: transform 0.3s ease-in-out;
}
#phone-device {
position: absolute;
right: 3%;
display: inline;
padding: 1.3rem;
background: #000;
box-shadow: 0 0 0.1em 0.25em #39334d, 0 0 0 0.4em #d3cde4;
border-radius: 77px;
width: 42rem;
height: 88.5rem;
transform: scale(1.3);
bottom: 0px;
box-sizing: content-box;
transform-origin: bottom right;
margin-bottom: 2rem;
user-select: none;
transition: all 0.5s ease-in-out;
image-rendering: crisp-edges;
}
#phone-device::before {
content: "";
background-color: rgb(0 0 0 / 1);
border-radius: 70px;
width: calc(100% - 1rem);
height: calc(100% - 1rem);
left: 0.5rem;
top: 0.5rem;
margin: 0 auto;
position: absolute;
}
#phone-dynamic-island-container {
margin: 0 auto;
}
#phone-camera {
align-items: center;
aspect-ratio: 1/1;
border-radius: 50%;
cursor: default;
display: flex;
top: 3.3rem;
height: 3.5rem;
justify-content: center;
pointer-events: none;
position: absolute;
right: 16rem;
opacity: 0.6;
z-index: 9999999999999;
}
#phone-camera::before {
aspect-ratio: 1;
background: radial-gradient(#6667ac, transparent 50%) no-repeat 33.3% 10%/75%
50%,
radial-gradient(#454680, transparent 50%) no-repeat 60% 85%/50% 50%;
background-color: #080928;
border-radius: inherit;
box-shadow: inset 0 0 0.25em #4c4da3;
content: "";
height: 33.3%;
opacity: 0.75;
cursor: default;
pointer-events: none;
}
#phone-dynamic-island {
position: absolute;
margin: 0 auto;
inset: 0;
top: 3rem;
width: var(--dynamic-island-default-width);
height: var(--dynamic-island-default-height);
min-height: var(--dynamic-island-default-height);
max-width: 90%;
overflow: hidden;
background-color: #000;
z-index: 999999999;
transition: var(--transition-property) all 0.5s;
box-shadow: rgb(255 255 255 / 10%) 0px 0px 10px 0px;
border-radius: 45px;
}
#phone-device-buttons figure {
position: absolute;
left: -10px;
width: var(--device-button-width);
height: 6rem;
top: 100px;
background: linear-gradient(90deg, #fff, #2a2a35);
border-radius: var(--device-button-radius);
cursor: pointer;
}
#phone-device-buttons .phone-busy-mode {
top: 100px;
height: 3rem;
}
#phone-device-buttons .phone-volume-up {
top: 150px;
}
#phone-device-buttons .phone-volume-down {
top: 230px;
}
#phone-device-buttons .phone-lock {
top: 130px;
right: -10px;
left: auto;
height: 7rem;
cursor: pointer;
}
#phone-device-screen {
width: 100%;
height: 100%;
z-index: 3;
position: relative;
overflow: hidden;
display: block;
border-radius: 65px;
user-select: none;
/* fix black border when backdrop-filter use */
-webkit-filter: blur(0px);
filter: blur(0px);
}
.battery-container {
align-items: center;
display: flex;
flex-direction: row;
gap: 0.1rem;
transition: all 0.3s;
}
.battery-container .battery {
align-items: center;
border: 2px solid var(--battery-border);
border-radius: 5px;
display: flex;
height: 1.4rem;
justify-content: flex-start;
position: relative;
transition: 0.5s;
width: 2.5rem;
background-color: rgba(255, 255, 255, 0.5);
}
.battery-container .battery::before {
content: attr(data-percentage);
font-size: 1.3rem;
color: #000;
position: absolute;
left: 50%;
top: 50%;
text-align: center;
transform: translate(-50%, -50%);
font-weight: 600;
}
.battery-container .battery.dark::before {
color: #fff;
}
.battery-container .battery:has(.battery-bar[data-charging="true"])::before {
color: #fff;
}
.battery-container.home .battery {
border: 2px solid hsla(0, 0%, 100%, 0.5);
}
.battery-container.low-battery .battery {
border: none !important;
}
.battery-container.low-battery .battery-bar {
background-color: #ef4e4e !important;
}
.battery-container .battery .battery-bar-wrapper {
align-items: center;
display: flex;
height: 80%;
margin: 0.075rem;
width: 100%;
}
.battery-container .battery .battery-bar-wrapper .battery-bar {
background-color: var(--text-color);
border-radius: 3px;
height: 100%;
transition: 0.5s;
width: 100%;
}
.battery-container.home .battery .battery-bar-wrapper .battery-bar {
background-color: #fff;
}
.battery-container .battery-plup {
background-color: var(--battery-border);
border-bottom-right-radius: 2.5px;
border-top-right-radius: 2.5px;
height: 0.4rem;
margin-bottom: 0.025rem;
transition: 0.5s;
width: 0.15rem;
}
.battery-container.home .battery-plup {
background-color: hsla(0, 0%, 100%, 0.5);
}
.battery-container .battery-bar[data-charging="true"] {
background-color: #32d74b !important;
animation: charging 5s infinite linear;
}
@keyframes charging {
from {
width: var(--battery-percentage);
}
to {
width: 100%;
}
}
#volume-controller {
position: absolute;
top: 24%;
scale: 0.5;
left: -20rem;
width: 35%;
z-index: 99999999999999999;
transform: translateY(-50%) rotate(-90deg);
transform-origin: 20% 100%;
transition: 0.5s all;
}
#volume-controller.active {
scale: 1;
left: 4.2rem;
}
#volume-controller .control-center-input-icon {
height: 5.5rem;
}