LANCommander/LANCommander.Launcher/wwwroot/css/app.css
2024-11-12 02:35:28 -06:00

725 lines
14 KiB
CSS

* {
user-select: none;
}
.hidden {
display: none;
}
.appbar {
position: absolute;
top: 0;
left: 0;
right: 0;
z-index: 300;
background: rgba(0, 0, 0, 0.5);
backdrop-filter: blur(3px);
}
.appbar-profile-button {
position: relative;
overflow: hidden;
}
.appbar-profile-button:focus span, .appbar-profile-button:active span {
position: static;
}
.appbar-profile-button img + span {
padding-left: 32px;
}
.appbar-profile-button img {
width: 32px;
height: 32px;
position: absolute;
top: -1px;
left: -1px;
}
.appbar-draggable-titlebar {
flex-grow: 1;
height: 32px;
display: block;
}
.appbar-draggable-titlebar > div {
cursor: move;
height: 32px;
width: 100%;
}
:root {
--pb-custom-window-main-color: #000;
--pb-custom-window-main-unfocused-color: #000;
--pb-custom-window-background-color: #000;
--pb-custom-window-title-color: #fff;
--pb-custom-window-controls-color: #fff;
--pb-custom-window-close-control-background: firebrick;
--pb-custom-window-controls-background: rgba(0,0,0,.25); /* rgba(255,255,255,.25); */
--pb-custom-window-controls-background-hover: rgba(0,0,0,.5); /* rgba(255,255,255,.5); */
}
.pb-custom-window > * {
position: absolute;
z-index: 500;
}
.pb-custom-window-content {
top: 0 !important;
left: 0 !important;
height: 100vh !important;
width: 100vw !important;
display: flex;
flex-direction: column;
}
.pb-custom-window-content::before {
content: "";
position: fixed;
top: 0;
left: 0;
right: 0;
height: 37px;
backdrop-filter: blur(3px);
z-index: 700;
background: rgba(0, 0, 0, 0.5);
}
.pb-custom-window-drag-area {
background: none !important;
}
.pb-custom-window-controls {
background: none !important;
}
.pb-custom-window-controls .ant-btn-icon-only > * {
font-size: 22px;
display: flex;
justify-content: center;
}
.pb-custom-window-controls .ant-btn.ant-btn-loading::before {
display: none;
}
.pb-custom-window-control-button {
border-radius: 0;
}
.pb-custom-window-title {
display: none;
}
.pb-custom-window-header {
display: none;
}
.pb-custom-window-resize-thumb {
z-index: 9999;
}
*:hover::-webkit-scrollbar {
opacity: 1;
}
*::-webkit-scrollbar {
width: 6px;
opacity: 0;
transition: opacity 0.1s;
}
*::-webkit-scrollbar-track {
background-color: #141414;
border: none;
}
*::-webkit-scrollbar-thumb {
background-color: rgba(255, 255, 255, 0);
transition: background-color linear 0.1s;
}
*:hover::-webkit-scrollbar-thumb {
background-color: rgb(255, 255, 255);
}
.no-scrollbar::-webkit-scrollbar {
width: 0;
}
body {
background: #000;
}
app {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.ant-layout {
flex-grow: 1;
overflow: hidden;
}
.logo {
position: fixed;
width: 333px;
height: 74px;
z-index: 1000;
}
.logo > img {
width: 100%;
filter: drop-shadow(5px 0px 5px rgba(0, 0, 0, 0.5));
}
.logo::before {
content: "";
opacity: 0;
background: linear-gradient(100deg, rgb(255, 0, 0) 0%, rgb(255, 154, 0) 10%, rgb(208, 222, 33) 20%, rgb(79, 220, 74) 30%, rgb(63, 218, 216) 40%, rgb(47, 201, 226) 50%, rgb(28, 127, 238) 60%, rgb(95, 21, 242) 70%, rgb(186, 12, 248) 80%, rgb(251, 7, 217) 90%, rgb(255, 0, 0) 100%) 0 0/200% 100%;
position: absolute;
top: 0;
left: 0;
right: 16px;
bottom: 0;
transition: 0.5s opacity;
animation: a 3s linear infinite;
}
.logo:hover::before {
opacity: 1;
}
@keyframes a {
to {
background-position: -200% 0;
}
}
.footer {
background: #1f1f1f;
padding: 8px;
}
.ant-btn,
.ant-btn-sm,
.ant-btn-lg {
border-radius: 0;
}
.radio-group-vertical .ant-radio-wrapper,
.radio-group-vertical .ant-radio-button-wrapper {
display: block;
}
.radio-group-vertical .ant-radio-wrapper + .ant-radio-wrapper,
.radio-group-vertical .ant-radio-button-wrapper + .ant-radio-button-wrapper {
margin-top: 16px;
}
.radio-group-block {
width: 100%;
}
.radio-group-block .ant-radio-wrapper,
.radio-group-block .ant-radio-button-wrapper {
display: block;
}
.ant-modal-close,
.ant-modal-max-btn {
color: rgba(255, 255, 255, 0.45);
}
.ant-modal-close:hover,
.ant-modal-max-btn:hover {
color: rgba(255, 255, 255, 0.75);
}
.ant-modal-wrap-no-padding .ant-modal-body {
padding: 0;
}
.ant-modal-wrap-no-padding .ant-table-tbody > tr > td:first-child,
.ant-modal-wrap-no-padding .ant-table-thead > tr > th:first-child {
padding-left: 24px;
}
.ant-modal-wrap-no-padding .ant-table-tbody > tr > td:last-child,
.ant-modal-wrap-no-padding .ant-table-thead > tr > th:last-child {
padding-right: 24px;
}
.ant-collapse .ant-list {
margin: -16px;
}
.ant-card-body > .ant-list {
border: none;
border-radius: 0;
margin: -24px;
}
.ant-list-clickable .ant-list-item {
cursor: pointer;
position: relative;
}
.ant-list-clickable .ant-list-item:hover, .ant-list-clickable .ant-list-item.selected {
background: #262626;
}
.ant-list-clickable .ant-list-item:hover::after, .ant-list-clickable .ant-list-item.selected::after {
background: linear-gradient(270deg, rgb(38, 38, 38) 0%, rgba(38, 38, 38, 0) 100%);
}
.ant-list-clickable .ant-list-item::after {
content: "";
position: absolute;
top: 0;
right: 0;
bottom: 0;
width: 24px;
background: linear-gradient(270deg, rgb(20, 20, 20) 0%, rgba(20, 20, 20, 0) 100%);
}
.authentication-form {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 24px;
}
.authentication-form .ant-spin-nested-loading {
width: 100%;
}
.authentication-form .authentication-box {
min-width: 640px;
max-width: 800px;
box-shadow: 0px 0px 32px rgba(255, 255, 255, 0.05);
}
.authentication-form .discovered-servers-pane {
background: rgba(0, 0, 0, 0.75);
backdrop-filter: blur(8px);
}
.authentication-form .discovered-servers-pane .ant-list-header {
padding: 12px;
text-align: center;
border: none;
}
.authentication-form .discovered-servers-pane .ant-list-item {
padding: 12px;
}
.authentication-form .discovered-servers-pane .ant-list-item:hover {
background-color: rgba(255, 255, 255, 0.1);
cursor: pointer;
}
.authentication-form .discovered-servers-pane .ant-list-item-meta-title {
margin-bottom: 0;
}
.authentication-form .login-form-pane {
background: #000;
}
.authentication-form .login-form-pane .ant-form {
padding: 24px;
}
.authentication-form .login-form-pane .ant-form-item:last-child {
margin-bottom: 0;
}
.library {
width: 100%;
height: 100%;
display: flex;
position: relative;
flex-direction: row;
}
.library .pane {
overflow-x: hidden;
}
.library::after {
content: "";
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 10px;
background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.3) 100%);
z-index: 600;
}
.library-list {
position: relative;
z-index: 500;
width: 320px;
margin-top: 74px;
flex-shrink: 0;
}
.library-list .ant-collapse {
border: none;
overflow-y: scroll;
overflow-x: hidden;
height: 100%;
}
.library-list .ant-collapse::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 10px;
background: linear-gradient(0deg, rgba(0, 0, 0, 0) 0%, rgb(0, 0, 0) 100%);
z-index: 600;
}
.library-list .ant-collapse-content {
padding-top: 8px;
padding-bottom: 8px;
}
.library-list .ant-collapse > .ant-collapse-item.no-header > .ant-collapse-header {
display: none;
}
.library-list .ant-collapse > .ant-collapse-item.no-header > .ant-collapse-content {
display: block;
}
.library-list .ant-collapse > .ant-collapse-item > .ant-collapse-header {
padding: 10px 12px;
}
.library-list .ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow {
margin: 0;
margin-right: 12px;
padding-left: 6px;
padding-right: 6px;
}
.library-list .ant-list-item {
cursor: pointer;
white-space: nowrap;
gap: 12px;
padding: 5px 12px;
border: none;
color: #aaa;
}
.library-list .ant-list-item.installed {
font-weight: 400;
color: #fff;
}
.library-list .ant-list-item .library-list-icon {
width: 24px;
height: 24px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.library-list .ant-list-item .library-list-icon img {
width: 24px;
height: 24px;
object-fit: cover;
}
.library-list .ant-list-item span {
flex-grow: 1;
}
.library-list .ant-collapse-header-text {
cursor: pointer;
white-space: nowrap;
}
.library-filter .ant-popover-inner-content {
width: 320px;
}
.library-filter .ant-form-item {
margin-bottom: 8px;
}
.library-filter .ant-form-item-label {
padding-bottom: 0;
}
.game-details {
width: 100%;
overflow-y: scroll;
overflow-x: hidden;
}
.game-hero {
position: relative;
aspect-ratio: 8/3;
}
.game-hero h1 {
position: absolute;
left: 32px;
bottom: 32px;
margin-bottom: 0;
z-index: 200;
font-size: 2rem;
}
.game-hero::after {
content: "";
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 128px;
background: linear-gradient(0deg, rgb(0, 0, 0) 0%, rgba(0, 0, 0, 0) 100%);
z-index: 100;
}
.game-details-background {
width: 100%;
height: 100%;
object-fit: cover;
}
.game-details-logo {
position: absolute;
left: 48px;
bottom: 64px;
width: 512px;
height: 512px;
object-fit: contain;
object-position: bottom left;
max-width: 33%;
max-height: 50%;
z-index: 200;
}
.game-info {
padding-left: 16px;
padding-right: 16px;
}
.game-action-bar .ant-statistic {
line-height: 1;
}
.game-action-bar .ant-statistic-title {
margin-bottom: 4px;
}
.game-action-bar .ant-statistic-content {
font-size: 16px;
}
.game-cover img {
width: 100%;
}
.game-metadata {
display: flex;
flex-direction: column;
gap: 16px;
padding-top: 32px;
padding-bottom: 32px;
}
.game-metadata-description {
text-align: justify;
}
.game-metadata h3 {
font-weight: bold;
margin-bottom: 0;
}
.depot {
width: 100%;
height: 100%;
display: flex;
position: relative;
flex-direction: row;
}
.depot .ant-drawer-content-wrapper {
height: calc(100% - 128px) !important;
transform: none !important;
}
.depot-filter {
position: relative;
z-index: 500;
width: 320px;
margin-top: 74px;
flex-shrink: 0;
}
.depot-games {
width: 100%;
overflow-y: scroll;
overflow-x: hidden;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
gap: 16px;
padding-top: 59.5px;
padding-left: 31px;
padding-right: 31px;
padding-bottom: 38.5px;
}
.depot-game {
display: flex;
align-items: center;
aspect-ratio: 2/3;
}
.depot-game-cover {
transition: all 0.25s;
box-shadow: 0px 0px 0px 0px #000;
position: relative;
cursor: pointer;
}
.depot-game-cover:hover {
transform: scale(1.2);
box-shadow: 0px 0px 64px 32px #000;
z-index: 100;
}
.depot-game-add-btn, .depot-game-add-btn.ant-btn.ant-btn-loading {
position: absolute;
top: 0;
right: 0;
display: none;
opacity: 0;
transition: opacity 0.25s;
}
.depot-game-cover:hover .depot-game-add-btn {
display: block;
opacity: 1;
}
.depot-game img {
width: 100%;
}
.depot-game-details {
z-index: 600;
}
.depot-game-details .ant-drawer-mask {
background: linear-gradient(45deg, rgba(0, 0, 0, 0.5882352941), rgba(58, 58, 58, 0.5411764706));
backdrop-filter: blur(3px);
z-index: auto;
}
.depot-game-details .ant-drawer-content {
background: #000;
}
.depot-game-details .ant-drawer-header-no-title {
display: none;
}
.depot-game-details .ant-drawer-content-wrapper {
height: calc(100% - 128px) !important;
width: 106.6666666667vh;
transform: none !important;
left: calc(50vw - 53.33vh);
right: auto;
box-shadow: 0 0 64px black;
}
.depot-game-details .ant-drawer-body {
padding: 0;
}
.depot-game-details .ant-drawer-body::-webkit-scrollbar {
width: 0;
}
.depot-game-details .game-hero {
position: relative;
aspect-ratio: 2.6666666667;
height: 40vh;
}
.depot-game-details-background {
object-fit: cover;
max-height: 20vw;
}
.depot-game-details .game-details-close-btn {
position: absolute;
top: 0;
right: 0;
z-index: 100;
}
.downloader {
flex-grow: 1;
max-width: 512px;
font-size: 12px;
cursor: pointer;
}
.downloader-current {
display: flex;
gap: 16px;
}
.downloader-current .ant-progress,
.downloader-current .ant-progress-inner,
.downloader-current .ant-progress-outer {
display: block;
}
.downloader-current .ant-progress-text {
display: none;
}
.downloader-current .ant-progress-show-info .ant-progress-outer {
padding-right: 0;
}
.downloader-current-icon {
display: flex;
align-items: center;
}
.downloader-current-icon img {
width: 32px;
height: 32px;
object-fit: contain;
}
.downloader-current-info {
flex-grow: 1;
}
.downloader-current-upper, .downloader-current-lower {
display: flex;
justify-content: space-between;
}
.downloader-current-progress {
margin-top: 4px;
margin-bottom: 4px;
}
.download-queue {
top: 100%;
transition: 0.3s all;
z-index: 9999 !important;
}
.download-queue.ant-drawer-open {
top: 0;
}
.download-queue .ant-drawer-mask {
position: fixed;
}
.download-queue .ant-drawer-content-wrapper {
height: calc(100% - 128px) !important;
transform: none !important;
}
.download-queue .queue-item {
display: flex;
gap: 16px;
align-items: center;
}
.download-queue .queue-item + .queue-item {
margin-top: 16px;
}
.download-queue .queue-item-info {
flex-grow: 1;
}
.download-queue .queue-item-info h3 {
font-size: 1.4rem;
}
.download-queue .queue-item-cover {
max-height: 128px;
}
.download-queue .queue-item-current-download {
flex-grow: 1;
min-width: 300px;
}
.download-queue .queue-item + h2 {
margin-top: 32px;
}
.download-queue .ant-drawer-close {
position: absolute;
top: 4px;
right: 0;
padding: 4px;
font-size: 24px;
}
.game-actions-dialog .ant-modal-body {
padding: 0;
}
.game-actions-dialog .ant-list-clickable .ant-list-item::after {
display: none;
}
.install-dialog-addons-selector .ant-collapse-header {
padding: 6px 8px;
}
.install-dialog-addons-selector .ant-collapse-content {
border: 0;
}
.install-dialog-addons-selector + .install-dialog-directory-selector {
margin-top: 16px;
}
.checkbox-button-group {
width: 100%;
}
.checkbox-button-group .ant-btn {
display: flex;
flex-direction: row-reverse;
align-items: center;
}
.checkbox-button-group .ant-btn span:not(.anticon) {
flex-grow: 1;
text-align: left;
margin-left: 0;
}
/*# sourceMappingURL=app.css.map */