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;
}