sunhat/themes/firefox/chrome/content/newtab.css

416 lines
14 KiB
CSS
Raw Normal View History

/* Edge-Frfox - content/newtab.css */
/*
MARK: Default colours
*/
@-moz-document url-prefix("about:newtab"),
url-prefix("about:home"),
url-prefix("about:firefoxview") {
:root:not([lwt-newtab], [lwt-newtab-brighttext]) {
--newtab-background-color: #F7F7F7 !important;
--newtab-background-color-secondary: #fff !important;
--newtab-text-primary-color: #252525 !important;
--newtab-primary-action-background: #0078D4 !important;
--newtab-text-secondary-color: color-mix(in srgb, var(--newtab-text-primary-color) 80%, transparent) !important;
--newtab-element-hover-color: color-mix(in srgb, var(--newtab-background-color) 95%, #000) !important;
--newtab-element-active-color: color-mix(in srgb, var(--newtab-background-color) 90%, #000) !important;
--newtab-element-secondary-color: color-mix(in srgb, currentColor 5%, transparent) !important;
--newtab-element-secondary-hover-color: color-mix(in srgb, currentColor 12%, transparent) !important;
--newtab-element-secondary-active-color: color-mix(in srgb, currentColor 25%, transparent) !important;
--newtab-primary-element-hover-color: color-mix(in srgb, var(--newtab-primary-action-background) 90%, #000) !important;
--newtab-primary-element-active-color: color-mix(in srgb, var(--newtab-primary-action-background) 80%, #000) !important;
--newtab-primary-element-text-color: #fff !important;
--newtab-primary-action-background-dimmed: color-mix(in srgb, var(--newtab-primary-action-background) 25%, transparent) !important;
--newtab-border-color: color-mix(in srgb, var(--newtab-background-color) 75%, #000) !important;
--newtab-wordmark-color: #737373 !important;
--newtab-status-success: #50B080 !important;
--newtab-status-error: #FF848A !important;
--newtab-inner-box-shadow-color: rgb(0 0 0 / .1) !important;
--newtab-overlay-color: color-mix(in srgb, var(--newtab-background-color) 85%, transparent) !important;
--newtab-text-emphasis-background: #FFED32 !important;
--newtab-text-emphasis-text-color: #000 !important;
--newtab-textbox-focus-color: var(--newtab-primary-action-background) !important;
--newtab-textbox-focus-boxshadow: 0 0 0 1px var(--newtab-primary-action-background), 0 0 0 4px rgba(var(--newtab-primary-action-background), 0.3) !important;
--newtab-button-secondary-color: inherit !important;
}
:root:not([style*="color"])[lwt-newtab-brighttext] {
--newtab-background-color: #252525 !important;
--newtab-background-color-secondary: #4A4A4A !important;
--newtab-text-primary-color: #fff !important;
--newtab-primary-action-background: #75B6E8 !important;
--newtab-element-hover-color: color-mix(in srgb, var(--newtab-background-color) 95%, #FFF) !important;
--newtab-element-active-color: color-mix(in srgb, var(--newtab-background-color) 90%, #FFF) !important;
--newtab-element-secondary-color: color-mix(in srgb, currentColor 10%, transparent) !important;
--newtab-element-secondary-hover-color: color-mix(in srgb, currentColor 17%, transparent) !important;
--newtab-element-secondary-active-color: color-mix(in srgb, currentColor 30%, transparent) !important;
--newtab-border-color: color-mix(in srgb, var(--newtab-background-color) 75%, #FFF) !important;
--newtab-primary-element-text-color: #252525 !important;
--newtab-wordmark-color: #fff !important;
--newtab-status-success: #50B080 !important;
}
/*
MARK: Custom GTK colours
*/
@media (-moz-gtk-csd-available) {
:root:not([lwt-newtab]):not([style*="color"]) {
/* Colour adjusted for readability. */
--uc-accent-adjusted: light-dark(color-mix(in oklch, AccentColor 92%, black), color-mix(in oklch, AccentColor 60%, white));
--newtab-background-color: light-dark(-moz-dialog, color-mix(in srgb, -moz-dialog 82%, black)) !important;
--newtab-background-color-secondary: light-dark(Field, color-mix(in srgb, -moz-dialog 86%, white)) !important;
--newtab-text-primary-color: -moz-dialogtext !important;
--newtab-wordmark-color: light-dark(color-mix(in srgb, -moz-dialogtext 65%, transparent), -moz-dialogtext) !important;
--newtab-primary-action-background: var(--uc-accent-adjusted) !important;
}
}
/* Adjustments for themes. */
:root[style*="--newtab-background-color"] {
/* Make the Firefox logo workmark follow text colour. */
--newtab-wordmark-color: color-mix(in srgb, var(--newtab-text-primary-color) 60%, var(--newtab-background-color)) !important;
/* If there is no secondary background, create one from other colours. */
&:not([style*="--newtab-background-color-secondary"]) {
--newtab-background-color-secondary: color-mix(in srgb, var(--newtab-background-color) 15%, white) !important;
}
/* Dark adjustments for themes. */
&[lwt-newtab-brighttext] {
/* Make the Firefox logo workmark follow text colour. */
--newtab-wordmark-color: var(--newtab-text-primary-color) !important;
/* If there is no secondary background, create one from other colours. */
&:not([style*="--newtab-background-color-secondary"]) {
--newtab-background-color-secondary: color-mix(in srgb, var(--newtab-text-primary-color) 15%, var(--newtab-background-color)) !important;
}
}
}
}
/*
MARK: New tab page
*/
@-moz-document url-prefix("about:newtab"),
url-prefix("about:home") {
/* Enforce system font selection. */
:where(body) {
font-family: system-ui !important;
}
/* Hide pin icons. */
.icon.icon-pin-small {
display: none !important;
}
/* Unpinned sites have lower opacity titles. */
.top-site-button .title:not(.pinned) {
opacity: 0.7 !important;
}
/*
MARK: Search bar
*/
.search-wrapper {
& .search-handoff-button {
border-radius: 99px !important;
background-position: 12px !important;
padding-inline-start: 48px !important;
white-space: nowrap !important;
text-overflow: ellipsis !important;
--elevation: 4;
box-shadow:
0 0 calc((var(--elevation) * 0.225px) + 2px) rgb(0 0 0 / .11),
0 calc(var(--elevation) * 0.4px) calc((var(--elevation) * 0.9px)) rgb(0 0 0 / .13) !important;
&:hover {
--elevation: 6;
}
}
& .search-inner-wrapper {
min-height: 44px !important;
}
&.fake-focus:not(.search.disabled) .search-handoff-button {
border-color: transparent !important;
outline: 2px solid var(--newtab-primary-action-background) !important;
outline-offset: -1px !important;
}
&.search-disabled .search-handoff-button {
opacity: 0 !important;
}
.search-handoff-button .fake-caret {
inset-inline-start: 48px !important;
top: 13px !important;
}
@media (height > 700px) {
.fixed-search & {
padding: 15px 0 !important;
min-height: auto !important;
border-bottom: none !important;
}
}
}
.fake-textbox {
overflow: hidden !important;
text-overflow: ellipsis !important;
}
.outer-wrapper.only-search {
display: flex !important;
padding: 30px !important;
}
/* Sticky search bar header when scrolling. */
@media (height > 700px) {
body:not(.inline-onboarding) .fixed-search.visible-logo main {
padding-top: 246px !important;
@media (-moz-bool-pref: "uc.tweak.hide-newtab-logo") {
padding-top: 82px !important;
}
}
}
.icon-settings {
background-image: url("../icons/settings.svg") !important;
}
/*
MARK: Top sites tiles
*/
.top-site-outer {
& .tile {
border-radius: 12px !important;
height: 44px !important;
width: 44px !important;
box-shadow: rgb(0 0 0 / 0.1) 0px 2px 4px !important;
& .icon-wrapper {
border-radius: 4px !important;
width: 24px !important;
height: 24px !important;
&.letter-fallback::before {
font-size: 32px !important;
}
}
}
& .default-icon,
& .search-topsite {
background-size: 16px !important;
height: 24px !important;
width: 24px !important;
}
}
/*
MARK: Recent activity cards
*/
.card-outer {
--uc-border-radius: 8px;
&,
& .card,
& .ds-card-grid.ds-card-grid-border .ds-card:not(.placeholder) {
border-radius: var(--uc-border-radius) !important;
}
& .card,
& .ds-card-grid.ds-card-grid-border .ds-card:not(.placeholder) {
box-shadow:
rgb(0 0 0 / 0.14) 0px 1px 2px,
rgb(0 0 0 / 0.12) 0px 0px 2px !important;
}
& .card-preview-image-outer,
& .ds-card-grid.ds-card-grid-border .ds-card:not(.placeholder) .img-wrapper .img img {
border-radius: var(--uc-border-radius) var(--uc-border-radius) 0 0 !important
}
}
/* Add background & adjust padding for Recent activity & Pocket section. */
.collapsible-section:not(.top-sites) {
background-color: var(--newtab-background-color) !important;
border-radius: 12px !important;
padding: 10px 20px 20px !important;
& .section-list {
gap: 12px !important;
}
}
@media (-moz-bool-pref: "uc.tweak.hide-newtab-logo") {
.logo-and-wordmark {
display: none !important;
}
.outer-wrapper:not(.fixed-search) .search-wrapper {
padding-top: 0 !important;
}
}
}
/*
MARK: Private browsing
*/
@-moz-document url-prefix(about:privatebrowsing) {
:root {
--uc-wordmark-color: light-dark(#737373, #fff);
--uc-background-color-secondary: light-dark(#fff, #4a4a4a);
@media (-moz-bool-pref: "browser.theme.dark-private-windows") {
color-scheme: dark !important;
}
}
/* Custom GTK colours. */
@media (-moz-gtk-csd-available) {
:root:not([lwt-newtab]):not([style*="color"]) {
/* Colour adjusted for readability. */
--uc-accent-adjusted: light-dark(color-mix(in oklch, AccentColor 92%, black), color-mix(in oklch, AccentColor 60%, white));
--in-content-page-background: light-dark(-moz-dialog, color-mix(in srgb, -moz-dialog 82%, black)) !important;
--uc-background-color-secondary: light-dark(Field, color-mix(in srgb, -moz-dialog 86%, white)) !important;
--in-content-page-color: -moz-dialogtext !important;
--in-content-focus-outline-color: var(--uc-accent-adjusted) !important;
}
}
/*
MARK: Search bar
*/
.search-inner-wrapper {
height: 44px !important;
.search-handoff-button,
.search-handoff-button:active,
.search-handoff-button:enabled:hover:active {
background-color: var(--uc-background-color-secondary) !important;
border: 0 !important;
border-radius: 99px !important;
padding-inline-start: 48px !important;
--elevation: 4;
box-shadow:
0 0 calc((var(--elevation) * 0.225px) + 2px) rgb(0 0 0 / .11),
0 calc(var(--elevation) * 0.4px) calc((var(--elevation) * 0.9px)) rgb(0 0 0 / .13) !important;
&:hover {
--elevation: 6;
}
&.focused:not(.disabled) {
box-shadow: none !important;
outline: 2px solid var(--in-content-focus-outline-color) !important;
outline-offset: -1px !important;
}
&.disabled {
opacity: 0 !important;
}
& .fake-textbox {
color: var(--in-content-page-color) !important;
}
}
}
.wordmark {
fill: var(--uc-wordmark-color) !important;
}
/* Information box in private browsing. */
.info {
background-color: var(--uc-background-color-secondary) !important;
background-image: none !important;
position: relative !important;
/* Private browsing icon. */
&::before {
content: "";
position: absolute;
left: 32px;
top: 20px;
height: 32px;
aspect-ratio: 1 / 1;
background: center / contain url("../icons/account-private.svg");
border-radius: 99px;
}
}
}
/*
MARK: Background images
*/
@media (-moz-bool-pref: "uc.tweak.newtab-background") {
@-moz-document url(about:newtab),
url(about:home),
url(about:privatebrowsing) {
body {
/* Specify both jpg and png file extensions, but jpg images will always
* have a higher priority. */
--bg-0: url(../background-0.jpg), url(../background-0.png);
--bg-1: url(../background-1.jpg), url(../background-1.png);
--newtab-element-hover-color: rgb(239 239 239 / .3) !important;
--newtab-element-active-color: rgb(239 239 239 / .45) !important;
--text-shadow: 0 1px 2px #000;
--icon-shadow: drop-shadow(0 0.3px 0.6px #000);
background-color: #252525 !important;
background-image: var(--bg-0) !important;
background-position: center !important;
background-size: cover !important;
background-attachment: fixed !important;
:root[lwt-newtab-brighttext] &,
:root.private & {
background-image: var(--bg-1), var(--bg-0) !important;
--newtab-element-hover-color: rgb(66 66 66 / .4) !important;
--newtab-element-active-color: rgb(66 66 66 / .55) !important;
}
@media not (-moz-bool-pref: "browser.theme.dark-private-windows") {
:root.private & {
background-image: var(--bg-0) !important;
@media (prefers-color-scheme: dark) {
background-image: var(--bg-1), var(--bg-0) !important;
}
}
}
}
/* Change text colour & add backgrounds to text over the background. */
.top-site-outer .title {
text-shadow: var(--text-shadow) !important;
color: #fff !important;
-moz-osx-font-smoothing: auto !important;
}
.wordmark,
.icon-settings,
.top-site-outer .context-menu-button {
filter: var(--icon-shadow) !important;
color: #fff !important;
fill: currentColor !important
}
.top-site-outer .title .sponsored-label {
color: #eee !important;
}
/* Add transparent sticky search header. */
@media (height > 700px) {
.fixed-search .search-wrapper {
border-bottom: 0 !important;
background: transparent linear-gradient(#0004, transparent) !important;
}
}
}
}