/* ****************************************************************************** fpPS4 Temmie's Launcher styles.css Main application stylesheet ****************************************************************************** */ html, body { color: #fff; overflow: hidden; user-select: none; touch-action: none; font-family: monospace; scroll-behavior: smooth; background-color: #0f1e3e; text-shadow: 2px 2px 4px #000; background-image: linear-gradient(146deg, #090f1b, #162a50); } code { padding: 6px; color: #6bd5f5; font-style: normal; border-radius: 6px; background-color: #000; } select, input[type='button'], input[type='checkbox'] { outline: none; cursor: pointer; } input[type='range'] { outline: none; margin-left: 6px; cursor: col-resize; } input[disabled='disabled'], input[disabled] { cursor: no-drop; } input[type='checkbox'] { margin-right: 8px; vertical-align: middle; } input[type='color'] { cursor: pointer; } img { -webkit-user-drag: none; } /* ScrollBar */ ::-webkit-scrollbar { width: 8px; height: 8px; border-radius: 4px; } ::-webkit-scrollbar-track { border-radius: 4px; margin: 6px 0px 6px 0px; } ::-webkit-scrollbar-thumb { border-radius: 4px; background: #e7e7e7; } ::-webkit-scrollbar-thumb:hover { border-radius: 4px; background: #f0f0f0; } ::-webkit-scrollbar-thumb:active { background: #fff; border-radius: 4px; } /* Separator */ .SEPARATOR_00 { height: 2px; margin-top: 10px; padding-left: 2px; padding-right: 2px; border-radius: 6px; margin-bottom: 10px; width: calc(100% - 4px); background-color: #0000; background-image: linear-gradient(45deg, #fff, #6661, #0000); } /* Divs */ .DIV_LIST { top: 0; left: 0px; z-index: 20; width: 100%; overflow: hidden; transition: 0.2s; position: absolute; background-color: #0000; height: calc(100% - 164px); transition-timing-function: cubic-bezier(0,1,0,1); } .DIV_LOG { left: 0px; bottom: 0px; width: 100%; z-index: 20; height: 164px; position: absolute; background-size: auto 50%; background-color: #010114c7; background-position: center; background-repeat: no-repeat; } .DIV_ACTIONS { top: 0px; left: 0px; z-index: 30; width: 100%; height: 22px; padding: 8px; display: flex; flex-wrap: nowrap; position: absolute; align-items: center; align-content: center; justify-content: center; background-color: #0000; backdrop-filter: blur(10px); background-image: linear-gradient(45deg, #28467fc0, #1c325fc0); } .DIV_OPTIONS { top: 38px; right: 0px; z-index: 20; padding: 6px; width: 288px; display: none; transition: 0.1s; position: absolute; background-color: #0000; height: calc(100% - 150px); backdrop-filter: blur(10px); transition-timing-function: cubic-bezier(0,1,0,1); background-image: linear-gradient(0deg, #162a50b0, #2a4a86b0); } .DIV_GAME_OPTIONS { width: 288px; bottom: 68px; overflow: auto; font-size: 14px; position: absolute; text-align: center; height: calc(100% - 128px); } .DIV_HACK_LIST { text-align: left; margin-bottom: 10px; } .DIV_TITLE { z-index: 10; font-size: 28px; margin-top: 10px; font-weight: bold; text-align: center; margin-bottom: 10px; } .DIV_LIST_INTERNAL { top: 0px; left: 0px; width: 100%; z-index: 10; height: 100%; overflow: auto; transition: 0.1s; position: absolute; background-color: #0000; } .DIV_LIST_GRID { z-index: 10; display: flex; flex-wrap: wrap; text-align: center; align-items: center; flex-direction: row; align-content: stretch; justify-content: center; } .DIV_GAMELIST_BG { top: -6px; left: -6px; z-index: 1; position: absolute; background-size: cover; background-color: #0006; width: calc(100% + 12px); height: calc(100% + 12px); background-position: center; background-repeat: no-repeat; background-blend-mode: screen; filter: blur(2px) opacity(0.7); } .GAME_ENTRY { margin: 6px; height: 78px; display: flex; cursor: pointer; overflow: hidden; max-height: 78px; flex-wrap: nowrap; padding-left: 0px; border-radius: 6px; align-items: center; align-content: center; width: calc(100% - 12px); backdrop-filter: blur(4px) invert(0.1); background-image: linear-gradient(90deg, #3a4b6b82, #0000); } .GAME_ENTRY:hover { box-shadow: 0px 0px 10px #0006; background-image: linear-gradient(45deg, #3a4b6b, #3a4b6b82); } .GAME_ENTRY:active { backdrop-filter: sepia(0.5) blur(6px); background-image: linear-gradient(180deg, #97a7ff85, #6464a578); } .GAME_ENTRY_FIRST_INDEX { margin-top: 44px; } .GAME_ENTRY_COMPACT { display: flex; flex-wrap: nowrap; align-items: center; flex-direction: row; align-content: center; max-height: 24px !important; padding-left: 10px !important; width: calc(100% - 22px) !important; } .GAME_ENTRY_GRID { z-index: 12; padding: 0px; display: table; box-shadow: none; border-radius: 8px; min-width: 92.93px; min-height: 92.93px; height: max-content; max-width: max-content; max-height: max-content; text-align: -webkit-right; backdrop-filter: blur(10px); background-color: #192e546e; } .GAME_ENTRY_GRID:hover { animation-duration: 4s; animation-name: gridGameFocus; animation-iteration-count: infinite; } .GAME_ENTRY_BG { top: 0px; left: 0px; z-index: 0; width: 100%; height: 100%; filter: blur(4px); position: absolute; background-size: cover; background-position: center; background-repeat: no-repeat; -webkit-mask-image: linear-gradient(45deg, #0006, #0000, #0000); } .GAME_ENTRY:hover .GAME_ENTRY_BG { filter: blur(3px); -webkit-mask-image: linear-gradient(45deg, #000c, #0002, #0000); } .GAME_ENTRY:focus .GAME_ENTRY_BG { filter: blur(3px); -webkit-mask-image: linear-gradient(45deg, #000c, #0002, #0000); } .GAME_ENTRY:active .GAME_ENTRY_BG { -webkit-mask-image: linear-gradient(45deg, #000, #0006, #0000); } .GAME_DETAILS { z-index: 1; cursor: pointer; width: calc(100% - 88px); } .GAME_DETAILS_COMPACT { width: calc(100% - 10px); } .GAME_DETAILS_GRID { right: 0px; bottom: 0px; position: absolute; background-color: #000a; padding: 2px 6px 2px 6px; backdrop-filter: blur(4px); text-shadow: 0px 0px 4px #000; border-radius: 6px 0px 0px 0px; } .DIV_RUN_BTN { bottom: 8px; position: absolute; text-align: center; width: calc(100% - 12px); } .DIV_GAME_DETAILS { z-index: 100; height: 256px; padding: 12px; display: none; transition: 1s; overflow: hidden; flex-wrap: nowrap; position: absolute; border-radius: 6px; align-items: center; top: calc(50% - 140px); left: calc(10% - 24px); width: calc(80% - 24px); justify-content: center; max-width: calc(80% - 24px); } .DIV_GAME_DETAILS_LABELS { margin-left: 24px; } .DIV_SETTINGS { top: 10%; left: 5%; width: 90%; z-index: 10; height: 80%; display: block; overflow: hidden; position: absolute; text-align: center; border-radius: 10px; box-shadow: 0px 0px 30px #000a; background-image: linear-gradient(180deg, #2f405f, #131f38); } .DIV_SETTINGS_BG { top: 0px; left: 0px; z-index: 0; width: 100%; height: 100%; position: absolute; background-size: auto 50%; background-position: center; background-repeat: no-repeat; box-shadow: 0px 0px 10px #0002 inset; background-image: url('../img/logo.png'); } .DIV_SETTINGS_HOLDER { top: 0px; left: 0px; width: 100%; height: 100%; z-index: 100; display: none; position: absolute; background-color: #0004; backdrop-filter: blur(4px) grayscale(0.4); } .DIV_SETTINGS_LIST { z-index: 10; padding: 8px; overflow: auto; font-size: 14px; text-align: left; margin-left: 8px; margin-bottom: 8px; border-radius: 4px; font-family: sans-serif; background-color: #111d; width: calc(100% - 32px); height: calc(100% - 146px); backdrop-filter: blur(4px); box-shadow: 0px 0px 10px #0006; background-image: linear-gradient(180deg, #000e2cab, #0000); } .DIV_settingsEntry { padding: 2px; overflow: hidden; font-style: italic; } .DIV_settingsEntryFlex { display: flex; align-items: center; flex-direction: row; align-content: center; } .DIV_settingsH2 { font-size: 20px; font-weight: 600; font-family: system-ui; margin: 0px 0px 8px 2px; } .DIV_settingsSave { width: 100%; z-index: 10; position: absolute; text-align: center; } .DIV_labelSelectedGame { display: flex; flex-wrap: wrap; text-align: center; align-items: center; margin-bottom: 4px; align-content: center; justify-content: center; } .DIV_selectedGameStatus { width: 114px; cursor: help; display: flex; overflow: hidden; font-size: small; max-width: 114px; max-height: 42px; margin-left: 4px; flex-wrap: nowrap; align-items: center; flex-direction: row; border-radius: 10px; align-content: center; background-color: #000; justify-content: center; padding: 4px 0px 4px 0px; transition-duration: 0.4s; text-shadow: 1px 1px 2px #000; box-shadow: 0px 0px 0px #0000 inset; } .DIV_ICON_STATUS_OK { background-image: linear-gradient(180deg, #0f0, #0b0); } .DIV_ICON_STATUS_WARN { border-radius: 2px; background-image: linear-gradient(180deg, #fbe800, #9f8d0c); } .DIV_ICON_STATUS_HB { border-radius: 3px 8px 3px 8px; background-image: linear-gradient(180deg, #63fdf6, #28b1ab); } /* Game compat status */ .DIV_COMPAT_STATUS_UNKNOWN { border-radius: 0px; background-image: linear-gradient(180deg, #aaa, #666); } .DIV_COMPAT_STATUS_BOOTS { border-radius: 10px 4px 10px 4px; background-image: linear-gradient(180deg, #f00, #a00); } .DIV_COMPAT_STATUS_MENUS { border-radius: 4px; background-image: linear-gradient(180deg, #45a6ff, #2157a5); } .DIV_COMPAT_STATUS_INGAME { border-radius: 8px 8px 4px 4px; background-image: linear-gradient(180deg, #fbe800, #9f8d0c); } .DIV_COMPAT_STATUS_NOTHING { border-radius: 4px; box-shadow: 0px 0px 10px #000 inset; background-image: linear-gradient(180deg, #000, #282828); } .DIV_COMPAT_STATUS_PLAYABLE { border-radius: 10px; background-image: linear-gradient(180deg, #0f0, #0b0); } .DIV_noGameFound { top: 0px; left: 0px; width: 100%; height: 100%; display: flex; flex-wrap: wrap; position: absolute; font-size: x-large; font-style: italic; align-items: center; align-content: center; font-family: system-ui; justify-content: center; text-shadow: 0px 0px 10px #f00; background-image: linear-gradient(45deg, #f002, #0000); } .DIV_launcherOptions { margin: 8px 0px 8px 0px; } .DIV_launcherOptionsPatchVersionMetadata { text-align: left; padding: 0px 6px 0px 6px; } .DIV_launcherOptionsTitle { font-size: 16px; text-align: center; margin-bottom: 2px; font-family: system-ui; } .DIV_FPPS4_UPDATER { top: 0px; left: 0px; width: 100%; height: 100%; z-index: 110; cursor: wait; display: none; transition: 0.4s; flex-wrap: nowrap; position: absolute; align-items: center; flex-direction: row; align-content: center; font-family: system-ui; justify-content: center; backdrop-filter: blur(4px); background-color: #03033144; } .DIV_PROGRESSBAR { width: 72%; height: 10px; cursor: wait; overflow: hidden; margin-top: 44px; border-width: 1px; position: absolute; border-style: solid; background-color: #c5c5c5ad; } .DIV_PROGRESSBAR_INTERNAL { top: 0px; left: 0px; width: 0%; height: 100%; transition: 0.4s; position: absolute; background-image: linear-gradient(90deg, #ccc, #fff); } .DIV_DESIGN_LINES { left: 0px; width: 100%; height: 1px; position: absolute; background-color: #fffb; } .LINE_TOP { top: 12%; } .LINE_BOTTOM { bottom: 12%; } /* Images */ .IMG_GAME_ICON { z-index: 1; width: 66px; cursor: pointer; border-radius: 6px; margin: 6px 10px 6px 6px; } .IMG_APP_ICON { width: 256px; border-radius: 6px; } .IMG_GRID { width: 116px; height: auto; padding: 0px; max-width: 512px; min-width: 92.93px; border-radius: 0px; margin: 0px 0px -3px 0px; } /* Input */ .BTN_launcherOptions { width: 96%; padding-top: 4px; padding-bottom: 4px; margin: 2px 0px 2px 0px; } .BTN_actions { height: 28px; max-height: 28px; margin-left: 2px; margin-right: 2px; } .BTN_displayMode { box-shadow: 0px 0px 4px #000 inset; width: 32px; height: 32px; border: initial; background-size: 68%; background-position: center; background-repeat: no-repeat; background-color: #0000; } .BTN_displayMode:disabled { filter: invert(1); box-shadow: none; background-color: #000; } .BTN_displayMode_normal { background-image: url('../img/svg/list-filled.svg'); } .BTN_displayMode_compact { background-image: url('../img/svg/view-list.svg'); } .BTN_displayMode_grid { background-image: url('../img/svg/app-menu.svg'); } .BTN_displayMode_holder { width: auto; height: 32px; display: flex; overflow: hidden; border-radius: 4px; align-items: center; justify-content: center; } .INPUT_gameListSearch { width: 195px; margin: -8px; border: none; outline: none; color: #fffb8e; text-align: center; font-family: monospace; background-image: none; background-color: #0000; margin: 0px 16px 0px 16px; padding: 12px 0px 12px 6px; } .INPUT_gameListSearch:focus { background-image: linear-gradient(90deg, #0000, #36185eb0, #0000); } .APP_LOG { color: #0f0; resize: none; border: none; cursor: text; padding: 6px; outline: none; background-color: #0000; width: calc(100% - 12px); height: calc(100% - 12px); backdrop-filter: blur(10px); background-repeat: no-repeat; text-shadow: 2px 2px 2px #000; box-shadow: 0px 0px 6px #000 inset; } .BTN_RUN { color: #000; height: 50px; border: none; font-size: 18px; border-radius: 6px; width: calc(100% - 6px); background-image: linear-gradient(180deg, #fff, #ccc); } .BTN_RUN:active { color: #888; box-shadow: 0px 0px 6px #000 inset; background-image: linear-gradient(0deg, #fff, #ccc); } .BTN_STOP { max-height: 28px; margin: 0px 4px 0px 4px; padding: 5px 30px 5px 30px; } .BTN_SAVE { border: none; font-size: 18px; min-width: 300px; min-height: 60px; border-radius: 6px; background-image: linear-gradient(180deg, #fff, #ccc); } .BTN_SAVE:active { color: #888; box-shadow: 0px 0px 6px #000 inset; background-image: linear-gradient(0deg, #fff, #ccc); } .BTN_selectPath { float: right; min-width: 120px; font-style: italic; border-radius: 4px; padding: 4px 14px 4px 14px; background-image: linear-gradient(180deg, #fff, #bbb); } .BTN_selectPath:active { background-image: linear-gradient(0deg, #fff, #bbb); } .SELECT_settings { margin-left: 4px; margin-bottom: 4px; font-style: italic; border-radius: 4px; padding: 4px 10px 4px 10px; background-image: linear-gradient(180deg, #fff, #bbb); } .SETTINGS_TEXT { color: #0f0; border: none; outline: none; min-width: 160px; margin-left: 4px; border-radius: 4px; font-family: monospace; background-color: #000; padding: 6px 0px 6px 6px; } /* Labels */ .LABEL_gameTitleOptions { width: 100%; font-size: 18px; text-align: center; font-family: system-ui; } .LABEL_detailsGameName { font-size: 28px; margin-top: 10px; font-weight: bold; margin-bottom: 10px; } .LABEL_checkbox { cursor: pointer; font-size: 14px; font-style: italic; } .LABEL_emuColor { color: #fffb8e; } .LABEL_gameTitle { font-size: 20px; cursor: pointer; } .LABEL_gameTitleCompact { font-size: 16px; cursor: pointer; } .LABEL_settingsPath { cursor: text; position: sticky; font-style: initial; font-family: monospace; user-select: all !important; } .LABEL_settingsExperimental { padding: 6px; cursor: pointer; font-family: monospace; background-color: #000; text-shadow: 0px 0px 10px #f00; } .LABEL_FLEX_MARGIN { margin: 4px; } .LABEL_monospace { font-family: monospace; } /* Animations */ /* Hint game focus after fpPS4 closes */ @keyframes hintGameFocus { 0% { box-shadow: 0px 0px 0px #0000; } 25% { box-shadow: 0px 0px 10px #fff6; } 50% { box-shadow: 0px 0px 0px #0000; } 75% { box-shadow: 0px 0px 14px #fffa; } 100% { box-shadow: 0px 0px 0px #0000; } } /* Grid Mode: Select App / Game */ @keyframes gridGameFocus { 0% { box-shadow: 0px 0px 6px #6ca7ffd1; } 25% { box-shadow: 0px 0px 10px #b6c0e5aa; } 50% { box-shadow: 0px 0px 10px #6ca7ffd1; } 75% { box-shadow: 0px 0px 14px #b6c0e5aa; } 100% { box-shadow: 0px 0px 6px #6ca7ffd1; } } /* Misc */ .float-right { float: right; } .align-center { text-align: center; } .user-can-select { cursor: text; user-select: all !important; } .none { display: none; }