Files
better-xcloud/src/assets/css/root.styl
2025-03-27 07:26:05 +07:00

318 lines
6.9 KiB
Stylus
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

button_color(name, normal, hover, active, disabled)
prefix = unquote('--bx-' + name + '-button');
{prefix + '-color'}: normal;
{prefix + '-rgb'}: red(normal), green(normal), blue(normal);
{prefix + '-hover-color'}: hover;
{prefix + '-hover-rgb'}: red(hover), green(hover), blue(hover);
{prefix + '-active-color'}: active;
{prefix + '-active-rgb'}: red(active), green(active), blue(active);
{prefix + '-disabled-color'}: disabled;
{prefix + '-disabled-rgb'}: red(disabled), green(disabled), blue(disabled);
:root {
--bx-title-font: Bahnschrift, Arial, Helvetica, sans-serif;
--bx-title-font-semibold: Bahnschrift Semibold, Arial, Helvetica, sans-serif;
--bx-normal-font: "Segoe UI", Arial, Helvetica, sans-serif;
--bx-monospaced-font: Consolas, "Courier New", Courier, monospace;
--bx-promptfont-font: promptfont;
--bx-button-height: 40px;
button_color('default', #2d3036, #515863, #222428, #8e8e8e);
button_color('primary', #008746, #04b358, #044e2a, #448262);
button_color('warning', #c16e04, #fa9005, #965603, #a2816c);
button_color('danger', #c10404, #e61d1d, #a26c6c, #bd8282);
--bx-fullscreen-text-z-index: 9999;
--bx-toast-z-index: 6000;
--bx-key-binding-dialog-z-index: 5010;
--bx-key-binding-dialog-overlay-z-index: 5000;
--bx-stats-bar-z-index: 4010;
--bx-navigation-dialog-z-index: 3010;
--bx-navigation-dialog-overlay-z-index: 3000;
--bx-mkb-pointer-lock-msg-z-index: 2000;
--bx-game-bar-z-index: 1000;
--bx-screenshot-animation-z-index: 200;
--bx-wait-time-box-z-index: 100;
}
@font-face {
font-family: 'promptfont';
src: url('https://redphx.github.io/better-xcloud/fonts/promptfont.otf');
unicode-range: U+2196-E011, U+27F6, U+FF31;
}
/* Fix Stream menu buttons not hiding */
#StreamHud div[class^=HUDButton-module__hiddenContainer] ~ div:not([class^=HUDButton-module__hiddenContainer]) {
opacity: 0;
pointer-events: none !important;
position: absolute;
top: -9999px;
left: -9999px;
}
/* Remove the "Cloud Gaming" text in header when the screen is too small */
@media screen and (min-width: 641px) and (max-width: 767px) {
header {
button[class^="ExperienceDropdown-module__toggleButton"],
button[class^="XboxButton-module__headerXboxButton"] {
margin-right: 10px !important;
}
a[href="/play"],
button[class^="ExperienceDropdown-module__toggleButton"] {
> div {
> div {
font-size: 12px;
}
> svg {
width: 20px;
height: 20px;
}
}
}
}
}
@media screen and (max-width: 640px) {
header {
a[href="/play"],
button[class^="ExperienceDropdown-module__toggleButton"] {
display: none;
}
}
}
.bx-full-width {
width: 100% !important;
}
.bx-full-height {
height: 100% !important;
}
.bx-auto-height {
height: auto !important;
}
.bx-no-scroll {
overflow: hidden !important;
}
.bx-hide-scroll-bar {
scrollbar-width: none;
&::-webkit-scrollbar {
display: none;
}
}
.bx-gone {
display: none !important;
}
.bx-offscreen {
position: absolute !important;
top: -9999px !important;
left: -9999px !important;
visibility: hidden !important;
}
.bx-hidden {
visibility: hidden !important;
}
.bx-invisible {
opacity: 0;
}
.bx-unclickable {
pointer-events: none;
}
.bx-pixel {
width: 1px !important;
height: 1px !important;
}
.bx-no-margin {
margin: 0 !important;
}
.bx-no-padding {
padding: 0 !important;
}
.bx-prompt {
font-family: var(--bx-promptfont-font) !important;
}
.bx-monospaced {
font-family: var(--bx-monospaced-font) !important;
}
.bx-line-through {
text-decoration: line-through !important;
}
.bx-normal-case {
text-transform: none !important;
}
.bx-normal-link {
text-transform: none !important;
text-align: left !important;
font-weight: 400 !important;
font-family: var(--bx-normal-font) !important;
}
.bx-frosted {
backdrop-filter: blur(4px) brightness(1.5);
}
select[multiple], select[multiple]:focus {
overflow: auto;
border: none;
option {
padding: 4px 6px;
&:checked {
color = #1a7bc0;
background: color linear-gradient(0deg, color 0%, color 100%);
&::before {
content: '';
font-size: 12px;
display: inline-block;
margin-right: 6px;
height: 100%;
line-height: 100%;
vertical-align: middle;
}
}
}
}
/* Hide UI elements */
#headerArea, #uhfSkipToMain, .uhf-footer {
display: none;
}
#game-stream {
div[class^=NotFocusedDialog] {
position: absolute !important;
top: -9999px !important;
left: -9999px !important;
width: 0px !important;
height: 0px !important;
}
video:not([src]) {
visibility: hidden;
}
}
.bx-game-tile-wait-time {
position: absolute;
top: 0;
left: 0;
z-index: 1;
background: rgba(0, 0, 0, 0.5);
display: flex;
border-radius: 4px 0 4px 0;
align-items: center;
padding: 4px 8px;
svg {
width: 14px;
height: 16px;
margin-right: 2px;
}
span {
display: inline-block;
height: 16px;
line-height: 16px;
font-size: 12px;
font-weight: bold;
margin-left: 2px;
}
&[data-duration=short] {
background-color: rgba(0, 133, 133, 0.75);
}
&[data-duration=medium] {
background-color: rgba(213, 133, 0, 0.75);
}
&[data-duration=long] {
background-color: rgba(150, 0, 0, 0.75);
}
}
.bx-fullscreen-text {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: #000000cc;
z-index: var(--bx-fullscreen-text-z-index);
line-height: 100vh;
color: #fff;
text-align: center;
font-weight: 400;
font-family: var(--bx-normal-font);
font-size: 1.3rem;
user-select: none;
-webkit-user-select: none;
}
/* Device Code page */
#root {
section[class*=DeviceCodePage-module__page] {
margin-left: 20px !important;
margin-right: 20px !important;
margin-top: 20px !important;
max-width: 800px !important;
}
div[class*=DeviceCodePage-module__back] {
display: none;
}
}
.bx-blink-me {
animation: bx-blinker 1s linear infinite;
}
@keyframes bx-blinker {
100% {
opacity: 0;
}
}
.bx-horizontal-shaking {
animation: bx-horizontal-shaking .4s ease-in-out 2;
}
@keyframes bx-horizontal-shaking {
0% { transform: translateX(0) }
25% { transform: translateX(5px) }
50% { transform: translateX(-5px) }
75% { transform: translateX(5px) }
100% { transform: translateX(0) }
}