/* *********************************************************************** fpPS4 Temmie's Launcher styles.css CSS Styles *********************************************************************** */ @font-face { font-family: "customFont"; src: url('font.ttf'); } /* HTML Tags */ body { color: #fff; overflow: hidden; user-select: none; white-space: nowrap; font-family: monospace; background-color: #000; width: -webkit-fill-available; height: -webkit-fill-available; text-rendering: optimizelegibility; } a, a:visited { color: #fff; -webkit-user-drag: none; } img { user-select: none; -webkit-user-drag: none; } input[type="text"] { outline: none; } sup { font-size: 70%; font-family: 'customFont', system-ui; } code { font-family: 'customFont', system-ui; } /* Scrollbar */ ::-webkit-scrollbar { width: 2.2px; height: 2.2px; } ::-webkit-scrollbar-track { margin: 6px 0px 6px 0px; } ::-webkit-scrollbar-thumb { background: #e7e7e7; } ::-webkit-scrollbar-thumb:hover { background: #f0f0f0; } ::-webkit-scrollbar-thumb:active { background: #fff; } /* Sepearator */ .SEPARATOR_00 { width: 100%; height: 1px; margin: 2px 0px 6px 0px; background-color: #0000; background-image: linear-gradient(90deg, #fff, #fff); } /* Divs */ /* Lock mouse input */ .APP_LOCKINPUT { top: 0px; left: 0px; width: 100%; height: 100%; z-index: 900; display: block; position: absolute; background-color: #0000; } /* Canvas (Main) */ .APP_CANVAS { z-index: 500; width: 1280px; height: 720px; position: fixed; overflow: hidden; top: calc(50% - 360px); left: calc(50% - 640px); transform-origin: center; } /* Canvas (Inner) */ .APP_CANVAS_INNER { zoom: 1; top: 0px; left: 0px; width: 100%; height: 100%; overflow: hidden; position: absolute; } /* Popup (msgsys) */ .APP_MSGSYS { top: 0px; left: 0px; opacity: 0; width: 100%; height: 100%; display: none; z-index: 1000; transition: 0.2s; position: absolute; background-color: #0000; backdrop-filter: blur(4px) grayscale(0); } .APP_POPUP_LINE { width: 100%; height: 1px; position: absolute; background-color: #0000; background-image: linear-gradient(90deg, #fff4, #fff6, #fff4); } .APP_POPUP_LINE_TOP { top: 12.45%; /* 12.4 */ } .APP_POPUP_LINE_BOTTOM { bottom: 12.4%; } .APP_POPUP_TITLE { left: 5.5%; font-size: 250%; overflow: hidden; position: absolute; top: calc(12.4% - 58px); text-shadow: 0px 0px 4px #0004; font-family: 'customFont', system-ui; } .APP_POPUP_CONTENT_HOLDER { top: 12.4%; left: 14.2%; width: 71.6%; height: 75.2%; display: table; font-size: 138%; overflow: hidden; position: absolute; background-color: #0000; white-space: break-spaces; transition-duration: 0.6s; font-family: 'customFont', system-ui; transition-timing-function: cubic-bezier(0, 1, 0, 1); } .APP_POPUP_MESSAGE { width: 100%; overflow: auto; text-align: center; display: table-cell; vertical-align: middle; height: calc(100% - 40px); padding: 20px 0px 20px 0px; } .APP_POPUP_MESSAGE_CONFIRM { width: 100%; height: 78%; display: flex; overflow: auto; flex-wrap: wrap; text-align: center; align-items: center; flex-direction: row; align-content: center; justify-content: center; } .APP_POPUP_MESSAGE_CONFIRM_ACTIONS { width: 100%; bottom: 0px; height: 22%; display: flex; flex-wrap: nowrap; position: absolute; align-items: center; justify-content: center; } .APP_POPUP_BUTTON_LABEL { height: 34px; display: flex; overflow: hidden; padding-right: 15px; margin: 0px 15px 0px 0px; transition-duration: 0.2s; text-shadow: 0px 0px 6px #000; text-underline-position: under; } .APP_POPUP_BUTTON_LABEL_HOLDER { height: 30px; display: flex; font-size: larger; flex-wrap: nowrap; position: absolute; align-items: center; flex-direction: row; left: calc(6% - 6px); align-content: center; justify-content: center; bottom: calc(12.4% - 35px); font-family: 'customFont', system-ui; } /* Main canvas */ .APP_MAIN { top: 0px; left: 0px; opacity: 0; width: 100%; height: 100%; z-index: 900; display: none; position: absolute; background-color: #0000; transition-duration: 0.6s; backdrop-filter: blur(6px); } .APP_CANVAS_BG { top: 0px; left: 0px; z-index: 2; opacity: 0; width: 100%; height: 100%; position: absolute; background-size: cover; transition-duration: 0.2s; background-position: center; background-repeat: no-repeat; -webkit-mask-image: linear-gradient(0deg, #000a, #000, #000, #000, #000b); } .APP_CANVAS_BG_ICON { top: 0px; left: 0px; z-index: 1; opacity: 0; width: 100%; height: 100%; position: absolute; filter: opacity(0.2); transition-duration: 0.2s; background-size: auto 100%; background-position-x: 100%; background-position-y: 100%; background-repeat: no-repeat; background-image: url('../img/4.webp'); } .APP_CANVAS_BG_ICON_BOOT { top: 0px; left: 0px; opacity: 0; width: 100%; height: 100%; z-index: 100; position: absolute; background-size: auto 20%; transition-duration: 1.2s; background-position: center; background-position: center; background-repeat: no-repeat; background-image: url('../img/4.webp'); } .APP_CANVAS_BG_COLOR { top: 0px; left: 0px; z-index: 0; opacity: 0; width: 100%; height: 100%; position: absolute; transition-duration: 4s; } .APP_LABEL_BOOT_INFO { top: 0px; left: 0px; z-index: 3; opacity: 0; width: 100%; height: 100%; display: flex; overflow: hidden; font-size: larger; flex-wrap: nowrap; position: absolute; text-align: center; align-items: center; flex-direction: row; justify-content: center; background-color: #0000; transition-duration: 2s; text-shadow: 0px 0px 20px #fff; font-family: 'customFont', system-ui; } /* Game list */ .APP_MAIN_TOP { top: 0px; left: 0px; width: 100%; z-index: 10; height: 10%; display: flex; overflow: hidden; flex-wrap: nowrap; position: absolute; flex-direction: row; align-items: flex-end; justify-content: center; background-color: #0008; padding: 4px 0px 4px 0px; transition-duration: 0.6s; backdrop-filter: blur(6px); } .APP_MAIN_GAMELIST { left: 0px; z-index: 5; padding: 4px; overflow: auto; position: absolute; top: calc(10.4% + 2px); width: calc(100% - 9px); background-color: #0000; transition-duration: 0.6s; height: calc(77.1% - 10px); text-align: -webkit-center; font-family: 'customFont', system-ui; transition-timing-function: cubic-bezier(0, 1, 0, 1); } .APP_GAMELIST_EMPTY { width: 99%; height: 99%; display: flex; flex-wrap: nowrap; position: absolute; align-items: center; flex-direction: row; justify-content: center; } .APP_GAMELIST_ENTRY { overflow: hidden; text-align: left; text-shadow: 1px 1px 2px #0009; } .GAMELIST_ENTRY_LIST { width: 98%; color: #fff; height: 104px; outline: none; display: flex; overflow: hidden; flex-wrap: nowrap; border-width: 2px; align-items: center; border-style: solid; border-color: #fff0; flex-direction: row; margin: 5px 0px 5px 0px; background-color: #0000; transition-duration: 200ms; } .GAMELIST_ENTRY_LIST:hover, .GAMELIST_ENTRY_LIST:focus { border-color: #fff; background-color: #fff2; } .APP_GAMELIST_ENTRY_METADATA { max-width: 88%; overflow: hidden; margin-left: 106px; font-family: 'customFont', system-ui; } .METADATA_LIST { position: absolute; } .METADATA_LIST_BOTTOM_LINE { width: 92%; height: 1px; border-top-width: 1px; border-top-style: solid; margin-top: calc(8% + 6px); } /* Game status */ .APP_GAME_LIST_STATUS { width: 100px; max-width: 160px; text-align: center; display: inline-block; margin: 8px 0px 0px 0px; background-color: #0000; padding: 4px 0px 4px 0px; text-shadow: 1px 1px 3px #000; } .APP_GAME_LIST_STATUS_ok { border-radius: 20px; background-image: linear-gradient(180deg, #0d0, #080); } .APP_GAME_LIST_STATUS_mf { border-radius: 3px; background-image: linear-gradient(180deg, #d7bc00, #868902); } .APP_GAME_LIST_STATUS_hb { border-radius: 10px 4px 10px 4px; background-image: linear-gradient(180deg, #06f2ff, #008d95); } /* Game options */ .APP_MAIN_SETTINGS_LEFT { padding: 4px; overflow: auto; position: absolute; text-align: center; left: calc(6% + 3px); top: calc(12.4% + 2px); width: calc(19% - 2px); background-color: #0000; height: calc(75.1% - 10px); } .APP_MAIN_SETTINGS_RIGHT { padding: 4px; overflow: auto; position: absolute; text-align: center; left: calc(30% + 8px); top: calc(12.4% + 2px); width: calc(61% + 5px); background-color: #0000; height: calc(75.1% - 10px); } /* Quick settings */ .APP_QUICK_SETTINGS { top: 0px; left: 0px; width: 100%; height: 100%; z-index: 1000; position: absolute; } .APP_QUICK_SETTINGS_FADE { top: -20px; width: 0px; opacity: 0; z-index: 90; right: -20px; filter: blur(6px); position: absolute; background-color: #000b; height: calc(100% + 40px); transition-duration: 0.2s; transition-timing-function: cubic-bezier(0, 1, 0, 1); } .APP_QUICK_SETTINGS_BACKDROP { top: -20px; width: 0px; opacity: 0; z-index: 80; right: -20px; position: absolute; background-color: #0000; height: calc(100% + 40px); transition-duration: 0.2s; backdrop-filter: blur(4px); transition-timing-function: cubic-bezier(0, 1, 0, 1); } .APP_QUICK_SETTINGS_HOLDER_TOP { top: 0px; width: 0px; right: 0px; opacity: 0; height: 100%; z-index: 100; overflow: hidden; position: absolute; padding-right: 10px; display: inline-table; background-color: #0000; transition-duration: 0.36s; font-family: 'customFont', system-ui; transition-timing-function: cubic-bezier(0, 1, 0, 1); } .APP_QUICK_SETTINGS_HOLDER { width: 100%; height: 100%; overflow: auto; display: table-cell; vertical-align: middle; } .APP_QUICK_SETTINGS_CLOSE { width: 100%; z-index: 50; height: 100%; cursor: alias; position: absolute; } /* Emu running options */ .APP_EMU_OPTIONS { top: 0px; left: 0px; opacity: 0; width: 100%; height: 100%; z-index: 910; display: flex; flex-wrap: nowrap; position: absolute; align-items: center; flex-direction: row; justify-content: center; background-color: #0000; transition-duration: 0.6s; backdrop-filter: blur(2px); } .APP_EMU_OPTIONS_FADE { left: -10%; width: 120%; height: 26%; bottom: -26%; filter: blur(10px); position: absolute; background-color: #000b; transition-duration: 0.4s; transition-timing-function: cubic-bezier(0, 1, 0, 1); } .APP_EMU_OPTIONS_LIST { width: 100%; bottom: 0px; height: 16%; display: flex; flex-wrap: nowrap; position: absolute; align-items: center; flex-direction: row; justify-content: center; } /* Launcher settings */ .DIV_SETTINGS_MENU_LABEL { max-width: 88%; overflow: hidden; margin-top: -2px; padding-left: 4px; position: absolute; white-space: nowrap; } /* Input */ /* Message system (Popup / msgsys) */ .BTN_GUI_POPUP { color: #fff; display: flex; font-size: large; min-width: 286px; min-height: 46px; font-weight: 600; border-width: 1px; flex-wrap: nowrap; text-align: center; border-color: #fff; align-items: center; border-style: solid; flex-direction: row; margin: 0px 5px 2px 5px; justify-content: center; background-color: #fff1; font-family: 'customFont', system-ui; } .BTN_GUI_POPUP:focus { outline-width: 0px; box-shadow: 0px 0px 10px #fff6; } .BTN_GUI_POPUP:active { border-width: 1px; border-color: #fff; outline-style: solid; animation-duration: 0.28s; animation-name: GUI_BTN_ACTIVE; animation-timing-function: linear; } .BTN_GUI_SAFE_MODE { color: #fff; border: none; background-color: #0000; } .BTN_GUI_SAFE_MODE:focus { color: #000; animation: none; background-color: #06f2ff; } .BTN_GUI_SAFE_MODE:active { animation: none; } .BTN_QUICKSETTINGS_CHECKBOX_LABEL { max-width: 82%; overflow: hidden; position: relative; margin: 0px 0px 0px 44px; white-space: break-spaces; font-family: 'customFont', system-ui; } .BTN_QUICKSETTINGS_CHECKBOX_LABEL_SELECTED { max-width: 82%; overflow: hidden; position: relative; margin: 0px 0px 0px 4px; white-space: break-spaces; font-family: 'customFont', system-ui; } /* Game list (Top) */ .INPUT_TEXT_GAME_SEARCH { color: #fff; border: none; height: 40px; min-width: 230px; font-size: large; text-align: center; margin: 0px 4px 0px 4px; padding: 0px 0px 0px 0px; transition-duration: 0.2s; background-color: #0000 !important; font-family: 'customFont', system-ui; } .BTN_GUI_TOP { color: #fff; border: none; outline: none; display: flex; flex-wrap: nowrap; font-size: x-large; align-items: center; flex-direction: row; align-content: center; margin: 0px 4px 0px 4px; justify-content: center; background-color: #0000; padding: 0px 8px 8px 8px; transition-duration: 0.2s; font-variant: all-small-caps; text-shadow: 1px 1px 2px #0006; font-family: 'customFont', system-ui; } .BTN_GUI_TOP:focus { border-radius: 4px; background-color: #fff2; text-shadow: 0px 0px 10px #fff; text-decoration-thickness: 1px; } /* Game Options */ .BTN_GUI_OPTIONS { color: #fff; padding: 14px; outline: none; display: flex; overflow: hidden; text-align: left; min-height: 63px; flex-wrap: nowrap; font-size: larger; align-items: center; border-color: #fff0; border-style: solid; flex-direction: row; margin: 2px 0px 2px 0px; background-color: #0000; transition-duration: 0.26s; width: -webkit-fill-available; font-family: 'customFont', system-ui; } .BTN_GUI_OPTIONS:hover, .BTN_GUI_OPTIONS:focus { border-color: #fff; background-color: #fff2; } .BTN_GUI_OPTIONS_HOVER { border-color: #fff; background-color: #fff2; backdrop-filter: blur(6px); } .BTN_GUI_OPTIONS_ERROR { width: 100%; transition-duration: 0s; animation-duration: 0.08s; backdrop-filter: blur(8px); animation-iteration-count: 1; border-color: #f22 !important; animation-name: GUI_BTN_ERROR; text-shadow: 0px 0px 10px #fff6; background-color: #ff00008c !important; } .BTN_GUI_OPTIONS_QUICK { height: 68px; max-height: 68px; padding-left: 6px; } .BTN_GUI_OPTIONS_FIRST_ITEM { margin-top: 6px; } /* Launcher settings */ .BTN_LAUNCHER_SETTINGS { min-height: 63px; padding-bottom: 15px; } /* Images / SVG Vectors */ .IMG_ABOUT_ICON { width: 20%; } .IMG_CONTROLLER_BUTTON { width: 23px; height: 23px; border-radius: 10px; margin: 2px 6px 0px 4px; } .IMG_MSG_CONTROLLER_BUTTON { width: 32px; height: 32px; border-radius: 10px; margin: 0px 2px -9px 2px; } .IMG_POPUP_CONTROLLER_BUTTON { width: 28px; height: 28px; margin-right: 6px; border-radius: 10px; } .IMG_GAME_ICON { width: 90.63px; position: unset; margin-left: 6px; border-radius: 6px; } .IMG_GUI_PLUS { width: 24px; height: 24px; margin: 0px 8px -4px 8px; } .IMG_GUI_CHECKBOX { width: 20px; height: 20px; margin: 4px 10px 4px 10px; } .IMG_GUI_CHECKBOX_on { width: 22px; height: 23px; margin: 4px 8px 4px 10px; } .IMG_GUI_CHECKBOX_off { width: 20px; height: 21px; margin: 4px 10px 4px 10px; } .IMG_GUI_SETTINGS_CHECKBOX { position: absolute; margin: 4px 10px 4px 10px; } .IMG_GUI_SETTINGS_CHECKBOX_on { right: 14px; width: 22px; height: 23px; } .IMG_GUI_SETTINGS_CHECKBOX_off { right: 16px; width: 20px; height: 21px; } .ABOUT_PLUGIN_ICON { height: 70px; margin: 0px 10px 0px 10px; } /* Labels */ .LABEL_ENTRY_METADATA { font-size: small; } .LABEL_FPPS4_COLOR { color: #fffb8e; } .LABEL_ENTRY_APP_NAME_LIST { font-size: 142%; font-family: 'customFont', system-ui; } .LABEL_TITLE { font-size: 140%; font-family: system-ui; } .LABEL_QUICKSETTINGS_TITLE { font-size: 152%; font-family: 'customFont', system-ui; } .LABEL_APP_MENU_OPTIONS_MIDDLE { font-size: 140%; text-align: center; text-shadow: 0px 0px 10px #0006; font-family: 'customFont', system-ui; } .LABEL_LAUNCHER_SETTINGS_SCALE_MODE{ min-height: 100px; } /* Animations */ @keyframes GUI_BTN_ACTIVE { 0% { outline-width: 0px; border-color: #fff0; outline-color: #fff; outline-offset: 0px; } 50% { outline-width: 3px; outline-color: #fff; } 95% { outline-offset: 6px; outline-color: #fff0; } 100% { border-color: #fff; outline-width: 4px; } } /* Button: Error */ @keyframes GUI_BTN_ERROR { 0% { margin-left: 0px; } 25% { margin-left: 10px; } 50% { margin-left: 0px; } 75% { margin-left: -10px; } 100% { margin-left: 0px; } } /* Misc */ /* TODO: Find a better way of creating this effect */ .list-fade { scroll-behavior: smooth; -webkit-mask-image: linear-gradient(0deg, #0000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #0000); } .cursor-pointer { cursor: pointer; } .cursor-move { cursor: move; } .text-small { font-size: 70%; } .text-align-left { text-align: left; } .text-align-center { text-align: center; } .display-flex-center { display: flex; flex-wrap: nowrap; text-align: center; align-items: center; align-content: center; justify-content: center; } .user-can-select { user-select: all; } .position-absolute { position: absolute; } .none { display: none !important; } .font-italic { font-style: italic !important; } .text-underline { text-decoration: underline; }