VulpesOS/gaia/apps/camera/style/focus-ring.css
OverSu b38dea0597 Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
2026-09-30 23:13:03 +02:00

158 lines
2.4 KiB
CSS
Executable file

/** Focus Ring
---------------------------------------------------------*/
.focus {
position: absolute;
width: 10rem;
height: 10rem;
margin-top: -5rem;
margin-left: -5rem;
pointer-events: none;
opacity: 0;
transform-origin: 50% 50%;
transform: rotate(0deg) scale(1);
transition: transform 0.2s ease-in;
text-shadow: 0 0 1px rgba(0, 0, 0, 0.2);
color: #fff;
}
/**
* [mode=fixed]
* [mode=none]
*/
.focus[mode="fixed"],
.focus[mode="none"] {
opacity: 0;
}
/**
* [state=focusing]
* [state=focused]
* [state=fail]
*/
.focus[state="focusing"],
.focus[state="focused"],
.focus[state="fail"] {
opacity: 0.8;
}
/**
* [state=focusing]
*/
.focus[state="focusing"] {
animation: 0.1s ring-animation 1 ease-in forwards;
}
/**
* [state=focused]
*/
.focus[state="focused"] {
color: #afff3d;
transition: transform 0.1s ease-in;
animation: 0.15s focuslocked ease-in forwards;
}
/**
* [state=fail]
*/
.focus[state="fail"] {
color: #ff0000;
transform: rotate(45deg);
transition: transform 0.1s ease-in;
}
/** Icon Wrappers
---------------------------------------------------------*/
.focus_locking,
.focus_locked {
position: absolute;
top: 0;
left: 0;
width: 100%;
text-align: center;
}
/** Icons
---------------------------------------------------------*/
.focus_locking:before,
.focus_locked:before {
font-size: 10rem;
line-height: 1;
}
/** Locking
---------------------------------------------------------*/
/**
* [state=focusing]
*/
.focus[state="focusing"] .focus_locking {
opacity: 1;
}
/**
* [state=focused]
*/
.focus[state="focused"] .focus_locking {
opacity: 0;
}
/**
* [state=fail]
*/
.focus[state="fail"] .focus_locking {
opacity: 0;
}
/** Locked
---------------------------------------------------------*/
/**
* [state=focusing]
*/
.focus[state="focusing"] .focus_locked {
opacity: 0;
}
/**
* [state=focused]
*/
.focus[state="focused"] .focus_locked {
opacity: 1;
}
/**
* [state=fail]
*/
.focus[state="fail"] .focus_locked {
opacity: 1;
}
/** Animation
---------------------------------------------------------*/
@keyframes ring-animation {
0% { transform: rotate(0deg) scale(1); }
100% { transform: rotate(45deg) scale(1); }
}
@keyframes focuslocked {
0% { transform: rotate(45deg) scale(1); }
50% { transform: rotate(45deg) scale(0.8478); }
100% { transform: rotate(45deg) scale(0.95); }
}