VulpesOS/gaia/tv_apps/smart-home/style/home.css
OverSu b38dea0597 Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
2026-09-30 23:13:03 +02:00

314 lines
5.7 KiB
CSS
Executable file

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