VulpesOS/overrides/system.gaiamobile.org/style/cards_view/cards_view.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

465 lines
13 KiB
CSS

#task-manager {
visibility: hidden;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
-moz-user-select: none;
background-color: rgb(51, 51, 51);
}
#cards-view {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow-x: auto;
overflow-y: hidden;
/* NOTE: We can't use scroll-snap-destination, even though it's what we want,
because it thinks every element is positioned at 0px since everything
is positioned using CSS transforms. */
scroll-snap-points-x: repeat(calc(50% + 25px));
/* Requires that scrolling always end at a snap point
when the operation completes (hard snap). */
scroll-snap-type: mandatory;
direction: ltr;
}
@media not all and (-moz-physical-home-button) {
#screen:not(.software-button-disabled) #task-manager {
height: calc(100% - var(--software-home-button-height));
bottom: var(--software-home-button-height);
}
}
/* This reduce overpaint while the cards view is active */
#screen.cards-view #windows {
opacity: 0;
}
#screen.software-button-enabled #task-manager {
/* clip the horizontal scrollbar */
height: calc(100% - var(--software-home-button-height));
bottom: var(--software-home-button-height);
}
@media (orientation:landscape) {
/* not currently in use, see bug 1174325 */
#screen.software-button-enabled #task-manager {
height: 100%;
width: calc(100% - var(--software-home-button-height));
bottom: 0;
right: var(--software-home-button-height);
}
}
#task-manager.active {
visibility: inherit;
}
#task-manager .no-recent-apps {
display: none;
position: absolute;
top: calc(50% - 1rem);
width: calc(100% - 6rem);
height: 2rem;
text-align: center;
color: #52b6cc;
font-size: 2rem;
font-weight: 500;
}
html[dir="ltr"] #cards-view .no-recent-apps { left: 3rem; }
html[dir="rtl"] #cards-view .no-recent-apps { right: 3rem; }
#task-manager.empty .no-recent-apps {
display: block;
}
#task-manager.empty.active {
background-color: rgba(51, 51, 51, .85);
}
#cards-list {
list-style: none;
position: absolute;
margin: 0;
padding: 0;
height: 100%;
overflow: hidden;
white-space: nowrap;
text-align: center;
}
/* Cards */
#cards-view .card {
display: block;
position: absolute;
top: 0;
width: 50vw;
height: 50%;
transform: translateY(0);
/* Defines the left of each card (column) as the
coordinate that should be used for snapping */
scroll-snap-coordinate: 0 0;
left: 0; /* BiDi proof */
}
#task-manager.active .card {
transition: transform var(--transition-duration) cubic-bezier(.27,.02,.74,1.14);
}
#cards-view .card > * {
pointer-events: none;
}
/* Screenshots */
#cards-view .screenshotView {
background-size: cover;
background-repeat: no-repeat;
width: 100%;
height: 100%;
position: relative;
}
html[dir="ltr"] #cards-view .screenshotView {
background-position: left top;
}
html[dir="rtl"] #cards-view .screenshotView {
background-position: right top;
}
#cards-view .screenshotView.rotate-90 {
transform: rotate(90deg);
}
#cards-view .screenshotView.rotate-270 {
transform: rotate(270deg);
}
#cards-view .screenshotView.rotate-180 {
transform: rotate(180deg);
transform-origin: 50% 50%;
}
#cards-view .card .privateOverlay {
display: none;
pointer-events: none;
}
#cards-view .card.private .privateOverlay {
display: block;
width: 100%;
height: 100%;
content: "";
position: absolute;
left: 0; top: 0;
background-color: rgba(57, 46, 84, 0.9);
background-image: image-set(url("../icons/pb_icon.png") 1x, url("../icons/pb_icon@1.5x.png") 1.5x, url("../icons/pb_icon@2x.png") 2x, url("../icons/pb_icon@2.25x.png") 2.25x);
background-repeat: no-repeat;
background-size: 50%;
background-position: center center;
}
/* Various */
#cards-view .card.appIconPreview {
background-color: rgba(255, 255, 255, 1);
}
#cards-view .card > .appIconView {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: image-set(url("../icons/Default.png") 1x, url("../icons/Default@1.5x.png") 1.5x, url("../icons/Default@2x.png") 2x);
background-position: center center;
background-size: 8rem 8rem;
background-repeat: no-repeat;
opacity: 0;
}
#cards-view .card.appIconPreview > .appIconView {
opacity: 1;
}
#task-manager.filtered {
background-color: rgba(255, 255, 255, 1);
}
#task-manager.filtered .card .screenshotView {
outline: solid 1px rgba(133, 133, 133, 0.8);
}
/* Card Tray */
#cards-view .card-tray {
position: absolute;
bottom: 0;
left: 0;
height: 3rem;
width: 100%;
overflow: visible;
padding: 0;
box-sizing: border-box;
color: #fff;
background-color: rgb(95, 95, 95);
opacity: 0;
}
.cards-view .card-tray {
animation-name: card-tray-fade-in;
animation-duration: var(--transition-duration);
animation-fill-mode: both;
}
@keyframes card-tray-fade-in {
0% { opacity: 0; }
100% { opacity: 1; }
}
#task-manager.filtered .card-tray {
background-color: rgb(244, 244, 244);
}
#task-manager.filtered .private .card-tray {
background-color: rgb(95, 95, 95);
}
#cards-view .card-tray > menu.buttonbar {
margin: 0;
padding: 0;
}
#cards-view .card-tray > menu.buttonbar > button {
position: absolute;
top: 0;
width: 20%;
height: 100%;
border: none;
pointer-events: auto;
background-size: 20px 20px;
background-position: center center;
background-repeat: no-repeat;
background-color: transparent;
}
#cards-view .card-tray .close-button {
background-image: image-set(url("../task-manager/light/close.png") 1x, url("../task-manager/light/close@1.5x.png") 1.5x, url("../task-manager/light/close@2x.png") 2x, url("../task-manager/light/close@2.25x.png") 2.25x);
}
html[dir="ltr"] #cards-view .card-tray .close-button { left: 0; }
html[dir="rtl"] #cards-view .card-tray .close-button { right: 0; }
#task-manager.filtered .card-tray .close-button {
background-image: image-set(url("../task-manager/dark/close.png") 1x, url("../task-manager/dark/close@1.5x.png") 1.5x, url("../task-manager/dark/close@2x.png") 2x, url("../task-manager/dark/close@2.25x.png") 2.25x);
}
#cards-view .card-tray .favorite-button {
background-image: image-set(url("../task-manager/light/favorite.png") 1x, url("../task-manager/light/favorite@1.5x.png") 1.5x, url("../task-manager/light/favorite@2x.png") 2x, url("../task-manager/light/favorite@2.25x.png") 2.25x);
display: none;
}
html[dir="ltr"] #cards-view .card-tray .favorite-button { right: 0; }
html[dir="rtl"] #cards-view .card-tray .favorite-button { left: 0; }
#task-manager.filtered .card-tray .favorite-button {
background-image: image-set(url("../task-manager/dark/favorite.png") 1x, url("../task-manager/dark/favorite@1.5x.png") 1.5x, url("../task-manager/dark/favorite@2x.png") 2x);
}
#cards-view .card-tray > button.appIcon {
top: 1rem;
left: calc(50% - 2rem);
width: 4rem;
height: 4rem;
background-image: image-set(url("../icons/Default.png") 1x, url("../icons/Default@1.5x.png") 1.5x, url("../icons/Default@2x.png") 2x);
background-color: transparent;
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
display: block;
border: none;
position: absolute;
pointer-events: auto;
opacity: 1;
transition: opacity var(--transition-duration);
}
html[dir="ltr"] #cards-view .card-tray > button.appIcon { left: calc(50% - 2rem); }
html[dir="rtl"] #cards-view .card-tray > button.appIcon { right: calc(50% - 2rem); }
#cards-view .card.browser .card-tray > button.appIcon {
background-image: url('../../shared/resources/branding/browser_126.png');
}
#cards-view .card .card-tray > button.appIcon.pending {
opacity: 0;
}
#cards-view .private .close-button,
#task-manager.filtered .private .close-button {
background-image: image-set(url("../task-manager/light/close.png") 1x, url("../task-manager/light/close@1.5x.png") 1.5x, url("../task-manager/light/close@2x.png") 2x, url("../task-manager/light/close@2.25x.png") 2.25x);
}
/* Titles */
#cards-view .card .titles {
position: absolute;
top: -4rem;
left: 0;
width: 100%;
}
#cards-view .card .title {
width: 100%;
height: 2rem;
line-height: 2rem;
overflow-x: hidden;
margin: 0;
font-size: 1.4rem;
font-weight: 300;
font-style: italic;
text-overflow: ellipsis;
text-align: center;
pointer-events: auto;
}
#task-manager.filtered .card .titles h1 {
color: #4d4d4d;
}
#cards-view .card p.subtitle {
display: none;
pointer-events: auto;
overflow: hidden;
margin: 0;
text-align: center;
font-weight: normal;
}
#cards-view .card.show-subtitle p.subtitle {
display: block;
}
#cards-view .card.browser p.subtitle {
color: #e7e7e7;
pointer-events: auto;
font-style: italic;
}
#task-manager.filtered .card p.subtitle {
color: #858585;
}
#cards-view .titles .subtitle-url {
direction: ltr;
display: inline-block;
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
}
#cards-view .card.show-subtitle[data-ssl="secure"] p.subtitle,
#cards-view .card.show-subtitle[data-ssl="broken"] p.subtitle {
padding-inline-start: 2rem;
padding-inline-end: 1rem;
min-height: 2rem;
background-repeat: no-repeat;
background-size: 3rem 3rem;
}
html[dir="ltr"] #cards-view .card.show-subtitle[data-ssl="secure"] p.subtitle,
html[dir="ltr"] #cards-view .card.show-subtitle[data-ssl="broken"] p.subtitle {
background-position: left -0.5rem top -1rem;
}
html[dir="rtl"] #cards-view .card.show-subtitle[data-ssl="secure"] p.subtitle,
html[dir="rtl"] #cards-view .card.show-subtitle[data-ssl="broken"] p.subtitle {
background-position: right -0.5rem top -1rem;
}
#cards-view .card.show-subtitle[data-ssl="secure"] p.subtitle {
background-image: image-set(url("../chrome/images/dark/ssl.png") 1x, url("../chrome/images/dark/ssl@1.5x.png") 1.5x, url("../chrome/images/dark/ssl@2x.png") 2x, url("../chrome/images/dark/ssl@2.25x.png") 2.25x);
}
#cards-view .card.show-subtitle[data-ssl="broken"] p.subtitle {
background-image: image-set(url("../chrome/images/dark/ssl_broken.png") 1x, url("../chrome/images/dark/ssl_broken@1.5x.png") 1.5x, url("../chrome/images/dark/ssl_broken@2x.png") 2x, url("../chrome/images/dark/ssl_broken@2.25x.png") 2.25x);
}
#task-manager.filtered .card.show-subtitle[data-ssl="secure"] p.subtitle {
background-image: image-set(url("../chrome/images/light/ssl.png") 1x, url("../chrome/images/light/ssl@1.5x.png") 1.5x, url("../chrome/images/light/ssl@2x.png") 2x, url("../chrome/images/light/ssl@2.25x.png") 2.25x);
}
#cards-view .card.show-subtitle[data-ssl="broken"] p.subtitle {
background-image: image-set(url("../chrome/images/light/ssl_broken.png") 1x, url("../chrome/images/light/ssl_broken@1.5x.png") 1.5x, url("../chrome/images/light/ssl_broken@2x.png") 2x, url("../chrome/images/light/ssl_broken@2.25x.png") 2.25x);
}
/* Animations */
#task-manager.from-home {
animation: cardview-from-home 0.3s forwards cubic-bezier(0.7, 0.0, 1.0, 1.0);
}
#task-manager.to-home {
animation: cardview-to-home 0.3s forwards cubic-bezier(0.7, 0.0, 1.0, 1.0);
animation-fill-mode: forwards;
}
@keyframes cardview-from-home {
0% { opacity: 0; }
100% { opacity: 1; }
}
@keyframes cardview-to-home {
0% { opacity: 1; }
100% { opacity: 0; }
}
#task-manager-buttons {
position: absolute;
left: 0;
right: 0;
bottom: 0;
display: flex;
justify-content: space-between;
}
#task-manager-new-private-sheet-button {
width: 7.5rem;
height: 4.8rem;
border: none;
background: image-set(url("../task-manager/images/tm_pb_tab.png") 1x, url("../task-manager/images/tm_pb_tab@1.5x.png") 1.5x, url("../task-manager/images/tm_pb_tab@2x.png") 2x, url("../task-manager/images/tm_pb_tab@2.25x.png") 2.25x) no-repeat center;
background-size: 3.5rem 1.8rem;
}
#task-manager-new-sheet-button {
width: 6.4rem;
height: 4.8rem;
border: none;
background: image-set(url("../task-manager/images/tm_new_tab.png") 1x, url("../task-manager/images/tm_new_tab@1.5x.png") 1.5x, url("../task-manager/images/tm_new_tab@2x.png") 2x, url("../task-manager/images/tm_new_tab@2.25x.png") 2.25x) no-repeat center;
background-size: 2.4rem 2.4rem;
}
#task-manager-new-private-sheet-button:active {
background-image: image-set(url("../task-manager/images/tm_pb_tab_press.png") 1x, url("../task-manager/images/tm_pb_tab_press@1.5x.png") 1.5x, url("../task-manager/images/tm_pb_tab_press@2x.png") 2x, url("../task-manager/images/tm_pb_tab_press@2.25x.png") 2.25x);
}
#task-manager-new-sheet-button:active {
background-image: image-set(url("../task-manager/images/tm_new_tab_press.png") 1x, url("../task-manager/images/tm_new_tab_press@1.5x.png") 1.5x, url("../task-manager/images/tm_new_tab_press@2x.png") 2x, url("../task-manager/images/tm_new_tab_press@2.25x.png") 2.25x);
}
#task-manager.filtered #task-manager-new-private-sheet-button:not(:active) {
filter: brightness(0.5);
}
#task-manager.filtered #task-manager-new-sheet-button:not(:active) {
filter: brightness(0.5);
}