html { font-size: 10px; /* We have Fira Sans as default font in real device. But it isn't default in * browser. That's the main reason this line is here.*/ font-family: "Fira Sans"; } html, body { width: 100%; height: 100%; overflow: hidden; margin: 0; padding: 0; background-color: transparent; } #main-section { position: absolute; width: 100%; height: 100%; overflow: hidden; } a { outline: 0; } a:hover, a:active, a:focus { outline: 0; } section { font-size: 1.6rem; } /* Card list */ #card-viewer { position: absolute; overflow: hidden; width: 100%; height: 100%; top: 0; left: 0; overflow: hidden; } #card-list-frame { position: absolute; width: 100%; height: 33.6rem; top: 32.41%; overflow: visible; } #card-list { position: relative; width: 100%; height: 100%; transition: transform 0.4s cubic-bezier(0.25, 0, 0, 1); transform-origin: 0 50%; } #card-list.hidden { /* Using display none here would prevent animation, and using visibility hidden causes some bugs in rendering */ opacity: 0; } #card-list.no-transition, #folder-list.no-transition { transition-property: none; } .card { margin: 0; left: 0; top: 0; position: absolute; transition: transform 0.4s cubic-bezier(0.25, 0, 0, 1), filter 0.3s ease; } .card smart-button[type="app-button"].tv-channel { background-color: #272727; } .card smart-button[type="app-button"].tv-channel:before { font-size: 30rem; color: white; } .card smart-button[type="app-button"].new-card { opacity: 0; transform: scale(0.5, 0.5); } .card smart-button[type="app-button"].new-card-transition { transition: transform 0.4s cubic-bezier(0.25, 0, 0, 1) 0.2s, opacity 0.4s cubic-bezier(0.25, 0, 0, 1) 0.2s; } .card smart-button[type="app-button"].new-card-transition.last-card { transition-delay: 0s; } #folder-list .card smart-button[type="app-button"].new-card { opacity: 1; transform: translateY(-44rem); } #folder-list .card smart-button[type="app-button"].new-card-transition { transition: transform 0.4s cubic-bezier(0.25, 0, 0, 1), opacity 0.4s cubic-bezier(0.25, 0, 0, 1); } .card-panel { position: absolute; top: -23.14rem; width: 100%; height: 14.926rem; text-align: center; /* Use visibility hidden instead of display none here because display none may prevent transition happens */ visibility: hidden; z-index: 0; } .card-panel smart-button { position: relative; margin-left: 1.86em; width: 14.926rem; height: 14.926rem; transform: translateY(12rem); opacity: 0; } .card-panel smart-button:first-child { margin-left: 0; } .card-panel smart-button[data-icon]::before { width: 10.074rem; left: 2.43rem; font-size: 10.07rem; line-height: 15.47rem; } .card smart-button.app-button { /* smart-button should be in front of card-panel */ z-index: 1; } .card.focused { z-index: 100; } /** * folder list */ #folder-viewer { position: absolute; overflow: hidden; width: 100%; height: 100%; top: 0; left: 0; overflow: hidden; } #folder-list-frame { position: absolute; width: 100%; height: 33.6rem; top: calc(32.41% + 32.3rem); overflow: visible; } #folder-list { position: relative; width: 100%; height: 100%; transition: transform 0.4s cubic-bezier(0.25, 0, 0, 1); transform-origin: 0 50%; } /** * filters **/ .filter-tab-container { position: absolute; left: 6rem; bottom: 5.4rem; } .filter-tab-group.hidden { display: none; } /** * background section **/ .background { width: 100%; height: 100%; margin: 0; padding: 0; background-color: rgba(0, 0, 0, 0.65); transition: background-color 0.66s linear; } .background:before { content: ""; height: 29rem; position: absolute; top: 0; left: 0; right: 0; background: linear-gradient(180deg, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0)); } .background:after { content: ""; height: 29rem; position: absolute; left: 0; right: 0; bottom: 0; background: linear-gradient(0deg, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0)); } #edit-menu { position: absolute; top: 4rem; right: 6rem; } /** * nav bars */ nav { position: absolute; top: 0; left: 0; width: 100%; transition: transform 0.4s cubic-bezier(0.165, 0.840, 0.440, 1.000); } nav header { padding-left: 7rem; padding-top: 5rem; font-size: 5.4rem; font-style: italic; color: white; } #main-section[data-mode="edit"] #nav-regular, #main-section[data-mode="arrange"] #nav-regular, #main-section:not([data-mode="edit"]) #nav-edit-title, #main-section:not([data-mode="edit"]) #nav-edit { transform: translateY(-16rem); } smart-button.hidden { display: none; } /* For smart-button, we put card name in pseudo-element :after. However, we need * to localize card name and l10n library do not support localizing element with * children elements. * Instead of using :after, we create a 'span' element under smart-button and * put card name in it. */ smart-button[type="app-button"]:after { content: none; } smart-button[type="app-button"] > span.name { position: absolute; bottom: 0; left: 0; width: 33.6rem; height: 8rem; padding-top: 1rem; line-height: 3rem; text-align: center; font-size: 2.8rem; font-style: italic; color: #ffffff; } smart-button[type="app-button"][app-type="deck"] > span.name { background-color: transparent; } smart-button[type="app-button"][app-type="tv"] > span.name { background-color: #d90c83; } smart-button[type="app-button"][app-type="app"] > span.name, smart-button[type="app-button"][app-type="appbookmark"] > span.name { background-color: rgba(0, 0, 0, 0.4); } smart-button[type="app-button"][app-type="device"] > span.name { background-color: #4a82ea; }