I am batman

This commit is contained in:
2026-07-10 20:07:29 -04:00
commit 4aac54bff6
175 changed files with 18136 additions and 0 deletions

991
modules/firefox/firefox.nix Normal file
View File

@@ -0,0 +1,991 @@
{ config, pkgs, lib, ... }:
let
firefoxAddons = pkgs.nur.repos.rycee.firefox-addons;
in
{
programs.firefox = {
enable = true;
profiles.default = {
bookmarks = {
force = true;
settings = [
{
name = "Toolbar";
toolbar = true;
bookmarks = [
{
name = "Dev";
bookmarks = [
{ name = "GitHub"; url = "https://github.com/gibbyDev"; }
{ name = "ChatGPT"; url = "https://chatgpt.com"; }
{ name = "Hostinger"; url = "https://hostinger.com"; }
{ name = "UpWork"; url = "https://www.upwork.com/nx/find-work/best-matches"; }
{ name = "Servers"; bookmarks = [ { name = "8080"; url = "http://localhost:8080"; } { name = "3000"; url = "http://localhost:3000"; } { name = "5000"; url = "http://localhost:5000"; } ]; }
];
}
{
name = "Personal";
bookmarks = [
{ name = "Dropbox"; url = "https://www.dropbox.com/home"; }
{ name = "Betterhelp"; url = "https://www.betterhelp.com/"; }
];
}
{
name = "Mail";
bookmarks = [
{ name = "ProtonMail"; url = "https://protonmail.com"; }
{ name = "Gmail"; url = "https://gmail.com"; }
];
}
{
name = "Social";
bookmarks = [
{ name = "LinkedIn"; url = "https://linkedin.com"; }
{ name = "YouTube"; url = "https://youtube.com"; }
{ name = "YouTube Studio"; url = "https://studio.youtube.com/channel/UCrWyV9qsJOPCF2af1gYzDeQ"; }
];
}
# You can still mix in loose bookmarks if you want
{ name = "Search"; url = "https://duckduckgo.com"; }
];
}
];
};
# ------------------------------
# ⚙️ Firefox preferences
# ------------------------------
settings = {
"places.favicons.enabled" = true;
"privacy.donottrackheader.enabled" = true;
"network.trr.mode" = 2;
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
};
# ------------------------------
# 🧩 Extensions
# ------------------------------
extensions.packages = with firefoxAddons; [
pywalfox
vimium
ublock-origin
sponsorblock
darkreader
tridactyl
youtube-shorts-block
];
userChrome = ''
/* ===================================================================
LATIN ACCENT - FIREFOX TRANSPARENT THEME
Made with cariño by Acercandr0
=================================================================== */
:root {
/* 🎯 Core Transparency */
--tabpanel-background-color: transparent !important;
--chrome-content-separator-color: transparent !important;
--toolbar-bgcolor: transparent !important;
/* 🌈 Adaptive Color System */
--accent-color: color-mix(in srgb, AccentColor 100%, transparent) !important;
--accent-color-subtle: color-mix(in srgb, AccentColor 30%, transparent) !important;
/* 💻 Opacity System */
--inactive-opacity: 0.3 !important;
--hover-opacity: 1 !important;
--semi-opacity: 0.7 !important;
/* Animation System */
--transition-smooth: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
--transition-bounce: all 0.45s cubic-bezier(0.65, -0.50, 0.260, 1.50) !important;
--transition-quick: all 0.15s ease-out !important;
/* 📐 Layout Constants */
--border-radius: 5px;
--border-radius-large: 7px;
/* 🔍 Outline & Border System */
--border-outline-width: 1px;
/* 🎨 Adaptive Interface Colors - Light/Dark aware */
--base-bg: light-dark(rgb(245, 245, 245), rgb(20, 20, 20));
--panel-bg: color-mix(in srgb, var(--accent-color) 1%, var(--base-bg) 99%) !important;
--panel-border: var(--accent-color) !important;
--panel-text: light-dark(rgb(40, 40, 40), white) !important;
--hover-bg: light-dark(rgba(0, 0, 0, 0.08), rgba(255, 255, 255, 0.08)) !important;
/* 🔍 Focus System */
--focus-outline-color: var(--accent-color) !important;
--focus-outline-width: var(--border-outline-width) !important;
--toolbarbutton-icon-fill-attention: var(--accent-color) !important;
/* 📋 Dropdown Styling */
--arrowpanel-background: var(--panel-bg) !important;
--arrowpanel-border-color: var(--panel-border) !important;
--arrowpanel-color: var(--panel-text) !important;
--urlbar-open-background: var(--panel-bg) !important;
--urlbar-open-color: var(--panel-text) !important;
/* 🚫 Button Background Override */
--toolbarbutton-hover-background: transparent !important;
--toolbarbutton-active-background: transparent !important;
}
/* ===========================
🧹 GLOBAL RESETS
=========================== */
*,
#content,
#content > *,
#main-window,
#browser,
#appcontent,
#browserContainer,
#tabbrowser-tabpanels,
#tabbrowser-tabbox,
#tabbrowser-arrowscrollbox,
.tabbrowser-tabs,
.webRenderCompositor,
.browserContainer,
.browserStack,
#webrtcIndicator,
#navigator-toolbox,
#TabsToolbar,
#PersonalToolbar {
box-shadow: none !important;
filter: none !important;
}
/* ===========================
📑 TAB SYSTEM
=========================== */
#navigator-toolbox,
#TabsToolbar,
#nav-bar {
border: none !important;
}
/* Tab Layout */
.titlebar-spacer[type="pre-tabs"] {
width: 1px !important;
}
/* Mimized window tab spacing */
#main-window[sizemode="maximized"] #TabsToolbar {
padding-left: 2px !important;
}
#main-window[sizemode="maximized"] .tabbrowser-tabs {
margin-left: 0 !important;
}
/* Post-tabs spacer - Windows */
@supports not (-moz-bool-pref: "widget.macos.titlebar-blend") {
.titlebar-spacer[type="post-tabs"] {
width: 40px !important;
}
}
/* Pre-tabs spacer - macOS */
@supports (-moz-bool-pref: "widget.macos.titlebar-blend") {
.titlebar-spacer[type="pre-tabs"] {
width: 80px !important;
}
.titlebar-spacer[type="post-tabs"] {
width: 1px !important;
}
}
/* Base Tab Styling */
.tabbrowser-tab {
transition: var(--transition-smooth) !important;
position: relative;
}
/* Active Tab */
.tabbrowser-tab[selected="true"] .tab-background {
border: var(--border-outline-width) solid var(--accent-color) !important;
background: transparent !important;
border-radius: var(--border-radius) !important;
animation: tabActivate 0.3s ease-out;
}
/* Inactive Tabs */
.tabbrowser-tab:not([selected]) .tab-icon-image,
.tabbrowser-tab:not([selected]) .tab-label,
#tabs-newtab-button {
opacity: var(--inactive-opacity) !important;
transition: var(--transition-smooth) !important;
}
/* Tab Hover Effects */
.tabbrowser-tab:hover .tab-text,
.tabbrowser-tab:hover .tab-icon-image,
#tabs-newtab-button:hover {
opacity: var(--hover-opacity) !important;
}
/* Tab Close Button */
.tabbrowser-tab .tab-close-button {
opacity: 0 !important;
visibility: hidden !important;
transform: scale(0.8) rotate(30deg) !important;
transition: var(--transition-bounce) !important;
}
.tabbrowser-tab:hover .tab-close-button {
opacity: var(--semi-opacity) !important;
visibility: visible !important;
transform: scale(1) rotate(0deg) !important;
}
.tabbrowser-tab .tab-close-button:hover {
opacity: var(--hover-opacity) !important;
transform: scale(1.1) !important;
}
/* ===========================
🏷 TAB GROUPS STYLING
=========================== */
/* Hide original underline */
.tab-group-line {
display: none !important;
}
/* Hide label underline */
.tab-group-label-container {
#tabbrowser-tabs:is([orient="horizontal"], [orient="vertical"]:not([expanded])) tab-group:not([collapsed]) > &::after {
display: none !important;
}
}
/* Group outline */
tab-group:not([collapsed]) .tabbrowser-tab .tab-background {
outline: var(--border-outline-width) solid var(--tab-group-color) !important;
outline-offset: -1px !important;
}
/* Inactive tabs inside group */
tab-group:not([collapsed]) .tabbrowser-tab:not([selected]) .tab-background {
outline: var(--border-outline-width) solid color-mix(in srgb, var(--tab-group-color) 30%, transparent) !important;
outline-offset: -1px !important;
}
/* Active group tab */
tab-group:not([collapsed]) .tabbrowser-tab[selected="true"] .tab-background {
border: none !important;
outline: var(--border-outline-width) solid var(--tab-group-color) !important;
outline-offset: -1px !important;
}
/* 🏷 Label text - inactive/closed state */
.tab-group-label {
text-transform: uppercase !important;
font-weight: 500 !important;
letter-spacing: 0.5px !important;
color: light-dark(#666666, #cccccc) !important;
background-color: transparent !important;
transition: var(--transition-smooth) !important;
outline: var(--border-outline-width) solid var(--tab-group-color) !important;
outline-offset: -1px !important;
padding: 8px !important;
border-radius: var(--border-radius) !important;
}
/* 🌟 Label hover effect */
.tab-group-label-container:hover .tab-group-label {
color: light-dark(#333333, white) !important;
background-color: color-mix(in srgb, var(--tab-group-color) 35%, light-dark(white, black)) !important;
outline: var(--border-outline-width) solid var(--tab-group-color) !important;
outline-offset: -1px !important;
}
/* ===========================
📊 AUDIO TAB INDICATORS
=========================== */
/* 🔊 Sound playing (not muted) */
.tab-audio-button[soundplaying]:not([muted]) {
background-image: url("chrome://global/skin/media/audio.svg") !important;
background-repeat: no-repeat !important;
background-position: center !important;
background-size: contain !important;
-moz-context-properties: fill, stroke !important;
fill: currentColor !important;
opacity: 0.6 !important;
background-color: transparent !important;
border: none !important;
padding: 0 !important;
padding-right: 4px !important;
margin-inline-start: 4px !important;
width: 10px !important;
height: 10px !important;
display: block !important;
transform-origin: center;
}
/* 🔇 Muted tab */
.tab-audio-button[muted] {
background-image: url("chrome://global/skin/media/audio-muted.svg") !important;
background-repeat: no-repeat !important;
background-position: center !important;
background-size: contain !important;
-moz-context-properties: fill, stroke !important;
fill: var(--accent-color) !important;
opacity: 0.8 !important;
background-color: transparent !important;
border: none !important;
padding: 0 !important;
padding-right: 4px !important;
margin-inline-start: 4px !important;
width: 10px !important;
height: 10px !important;
display: block !important;
}
/* ===========================
🔍 URL BAR SYSTEM
=========================== */
/* Closed State - Force transparent background */
#urlbar:not([open]) #urlbar-background,
#urlbar:not([open]) .urlbar-background,
#searchbar:not([open]),
#urlbar[breakout][breakout-extend]:not([open]) > #urlbar-background {
background: transparent !important;
background-color: transparent !important;
background-clip: border-box !important;
}
/* Open State - Updated selectors for new Firefox versions */
#urlbar[open] > #urlbar-background,
#urlbar[breakout][breakout-extend][open] > #urlbar-background,
#urlbar[open] .urlbar-background {
background: var(--urlbar-open-background) !important;
background-color: var(--panel-bg) !important;
background-clip: border-box !important;
color: var(--urlbar-open-color) !important;
border: var(--border-outline-width) solid var(--accent-color) !important;
border-radius: var(--border-radius-large) !important;
margin: 1px !important;
animation: urlbarExpand 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
box-shadow: none !important;
}
/* Fix for urlbar input container when closed */
#urlbar:not([open]) #urlbar-input-container {
background: transparent !important;
background-color: transparent !important;
}
/* Search Results - always transparent background, panel shows behind */
#urlbar-results,
#urlbar-results .urlbarView,
#urlbar-results .urlbarView-body,
#urlbar-results .urlbarView-row {
background: transparent !important;
}
/* Search Results Container */
#urlbar[open] #urlbar-results,
#urlbar[open] #urlbar-results .urlbarView,
#urlbar[breakout][breakout-extend][open] #urlbar-results {
background: transparent !important;
}
#urlbar[open] #urlbar-results .urlbarView-body {
background: transparent !important;
}
/* Search Result Items */
#urlbar-results .urlbarView-row {
transition: var(--transition-quick) !important;
border-radius: var(--border-radius) !important;
margin-right: 8px !important;
}
#urlbar-results .urlbarView-row:hover {
background: var(--hover-bg) !important;
transform: translateX(4px);
margin-right: 8px !important;
}
#urlbar-searchmode-switcher {
background-color: transparent !important;
}
/* URL Input Styling */
.urlbar-input-box {
display: flex !important;
justify-content: center !important;
}
.urlbar-input {
text-align: center !important;
transition: var(--transition-smooth) !important;
}
#urlbar[focused] .urlbar-input {
transform: scale(1.02);
}
/* ===========================
📚 BOOKMARKS BAR
=========================== */
/* Personal Toolbar (Bookmarks Bar) */
#PersonalToolbar {
background: transparent !important;
border: none !important;
padding: 2px 5px !important;
}
/* Bookmark Items Container */
#PlacesToolbarItems {
display: flex !important;
align-items: center !important;
gap: 2px !important;
}
/* Individual Bookmark Items */
.bookmark-item {
background: transparent !important;
border: none !important;
border-radius: var(--border-radius) !important;
opacity: var(--inactive-opacity) !important;
transition: var(--transition-smooth) !important;
padding: 4px 8px !important;
margin: 0 1px !important;
min-height: 24px !important;
max-height: 24px !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
white-space: nowrap !important;
overflow: hidden !important;
text-overflow: ellipsis !important;
transform-origin: center !important;
flex-shrink: 0 !important;
}
/* Bookmark Icons */
.bookmark-item .toolbarbutton-icon {
width: 16px !important;
height: 16px !important;
margin-right: 4px !important;
flex-shrink: 0 !important;
}
/* Bookmark Text */
.bookmark-item .toolbarbutton-text {
font-size: 12px !important;
max-width: 120px !important;
overflow: hidden !important;
text-overflow: ellipsis !important;
white-space: nowrap !important;
}
/* Bookmark Hover - Only opacity and subtle effects */
.bookmark-item:hover {
opacity: var(--hover-opacity) !important;
background: var(--hover-bg) !important;
transform: none !important;
}
/* Bookmark Icon Color on Hover */
.bookmark-item:hover .toolbarbutton-icon {
fill: var(--accent-color) !important;
}
/* Bookmarks Chevron Button */
#PlacesChevron {
background: transparent !important;
border: none !important;
opacity: var(--inactive-opacity) !important;
transition: var(--transition-smooth) !important;
min-width: 20px !important;
max-width: 20px !important;
margin-left: 5px !important;
}
#PlacesChevron:hover {
opacity: var(--hover-opacity) !important;
background: var(--hover-bg) !important;
transform: none !important;
}
/* ===========================
🎛 REFINED BUTTON SYSTEM
=========================== */
/* 🔧 COMPREHENSIVE BUTTON SELECTOR - keeping normal behavior for urlbar buttons */
toolbarbutton:not(.bookmark-item):not([id*="identity"]):not([id*="tracking"]):not([id*="star"]):not([id*="picture"]):not([id*="reader"]),
.toolbarbutton-1:not(.bookmark-item):not([id*="identity"]):not([id*="tracking"]):not([id*="star"]):not([id*="picture"]):not([id*="reader"]),
#back-button,
#forward-button,
#reload-button,
#stop-button,
#home-button,
#library-button,
#fxa-toolbar-menu-button,
#unified-extensions-button,
#downloads-button,
#bookmarks-menu-button,
#history-panelmenu,
#appMenu-button,
#PanelUI-menu-button,
#sidebar-switcher-target toolbarbutton,
#sidebar-box .sidebar-placesTree toolbarbutton,
.sidebar-placesTreechildren toolbarbutton,
#sidebar-header .sidebar-close-button,
#sidebar-header toolbarbutton,
.sidebar-panel toolbarbutton,
#sidebar toolbarbutton,
#context-navigation toolbarbutton,
#context-sep-navigation + toolbarbutton,
.unified-extensions-item-action-button,
.panel-subview-footer-button,
toolbarpaletteitem > toolbarbutton,
.chromeclass-toolbar-additional toolbarbutton,
#addon-bar toolbarbutton,
.tabs-newtab-button,
#new-tab-button,
.tab-close-button,
.close-button,
.button-background {
background: transparent !important;
opacity: var(--inactive-opacity) !important;
transition: var(--transition-smooth) !important;
border-radius: var(--border-radius) !important;
position: relative;
overflow: hidden;
border: none !important;
box-shadow: none !important;
}
/* Keep urlbar buttons with their normal transparent behavior */
#urlbar-container toolbarbutton,
#urlbar toolbarbutton,
#identity-permission-box,
#identity-icon-box,
#tracking-protection-icon-container,
#star-button-box,
#picture-in-picture-button,
#reader-mode-button,
#pageAction-urlbar-_testpilot-containers,
#pageAction-panel-bookmark,
#pageAction-panel-copyURL,
#pageAction-panel-emailLink,
#pageAction-panel-pinTab,
#pageAction-panel-sendToDevice,
#page-action-buttons > toolbarbutton,
.urlbar-page-action {
background: transparent !important;
opacity: var(--inactive-opacity) !important;
transition: var(--transition-smooth) !important;
border-radius: var(--border-radius) !important;
border: none !important;
box-shadow: none !important;
}
/* 🚫 FORCE NO BACKGROUNDS */
#navigator-toolbox toolbarbutton:not(.bookmark-item),
#navigator-toolbox .toolbarbutton-1:not(.bookmark-item),
#nav-bar > * > toolbarbutton:not(.bookmark-item),
#nav-bar > toolbarbutton:not(.bookmark-item),
#nav-bar toolbarbutton:not(.bookmark-item),
#nav-bar .toolbarbutton-1:not(.bookmark-item),
#back-button,
#forward-button,
#reload-button,
#stop-button,
#home-button,
#library-button,
#fxa-toolbar-menu-button,
#unified-extensions-button,
#downloads-button,
#bookmarks-menu-button,
#history-panelmenu,
#appMenu-button,
#PanelUI-menu-button,
#sidebar-switcher-target toolbarbutton,
.toolbarbutton-1:not(.bookmark-item),
.button-background {
background-color: transparent !important;
background-image: none !important;
background: transparent !important;
}
#navigator-toolbox toolbarbutton:not(.bookmark-item):hover,
#navigator-toolbox .toolbarbutton-1:not(.bookmark-item):hover,
#nav-bar > * > toolbarbutton:not(.bookmark-item):hover,
#nav-bar > toolbarbutton:not(.bookmark-item):hover,
#nav-bar toolbarbutton:not(.bookmark-item):hover,
#nav-bar .toolbarbutton-1:not(.bookmark-item):hover,
#back-button:hover,
#forward-button:hover,
#reload-button:hover,
#stop-button:hover,
#home-button:hover,
#library-button:hover,
#fxa-toolbar-menu-button:hover,
#unified-extensions-button:hover,
#downloads-button:hover,
#bookmarks-menu-button:hover,
#history-panelmenu:hover,
#appMenu-button:hover,
#PanelUI-menu-button:hover,
#sidebar-switcher-target toolbarbutton:hover,
.toolbarbutton-1:not(.bookmark-item):hover,
.toolbarbutton-1:not(.bookmark-item):hover:active,
.button-background:hover {
background-color: transparent !important;
background-image: none !important;
background: transparent !important;
}
/* 🎯 REFINED HOVER EFFECTS - subtle scale only */
toolbarbutton:not(.bookmark-item):not([id*="identity"]):not([id*="tracking"]):not([id*="star"]):not([id*="picture"]):not([id*="reader"]):hover,
.toolbarbutton-1:not(.bookmark-item):not([id*="identity"]):not([id*="tracking"]):not([id*="star"]):not([id*="picture"]):not([id*="reader"]):hover,
#nav-bar toolbarbutton:not(.bookmark-item):hover,
#nav-bar-customization-target > toolbarbutton:not(.bookmark-item):hover,
#back-button:hover,
#forward-button:hover,
#reload-button:hover,
#stop-button:hover,
#home-button:hover,
#library-button:hover,
#fxa-toolbar-menu-button:hover,
#unified-extensions-button:hover,
#downloads-button:hover,
#bookmarks-menu-button:hover,
#history-panelmenu:hover,
#appMenu-button:hover,
#PanelUI-menu-button:hover,
#sidebar-switcher-target toolbarbutton:hover,
#sidebar-box .sidebar-placesTree toolbarbutton:hover,
.sidebar-placesTreechildren toolbarbutton:hover,
#sidebar-header .sidebar-close-button:hover,
#sidebar-header toolbarbutton:hover,
.sidebar-panel toolbarbutton:hover,
#sidebar toolbarbutton:hover,
#context-navigation toolbarbutton:hover,
#context-sep-navigation + toolbarbutton:hover,
.unified-extensions-item-action-button:hover,
.panel-subview-footer-button:hover,
toolbarpaletteitem > toolbarbutton:hover,
.chromeclass-toolbar-additional toolbarbutton:hover,
#addon-bar toolbarbutton:hover,
.tabs-newtab-button:hover,
#new-tab-button:hover,
.tab-close-button:hover,
.close-button:hover,
.button-background:hover {
opacity: var(--hover-opacity) !important;
transform: scale(1.05) !important;
}
/* Keep urlbar buttons transparent on hover */
#urlbar-container toolbarbutton:hover,
#urlbar toolbarbutton:hover,
#identity-permission-box:hover,
#identity-icon-box:hover,
#tracking-protection-icon-container:hover,
#star-button-box:hover,
#picture-in-picture-button:hover,
#reader-mode-button:hover,
.urlbar-page-action:hover {
opacity: var(--hover-opacity) !important;
background: transparent !important;
transform: scale(1.05) !important;
}
/* 🎨 ICON COLOR CHANGE ON HOVER */
toolbarbutton:not(.bookmark-item):hover image,
.toolbarbutton-1:not(.bookmark-item):hover image,
#nav-bar toolbarbutton:not(.bookmark-item):hover image,
#urlbar toolbarbutton:hover image,
#urlbar #identity-icon-box:hover image,
#urlbar #identity-permission-box:hover image,
#urlbar #tracking-protection-icon-container:hover image,
#urlbar #star-button-box:hover image,
#urlbar #picture-in-picture-button:hover image,
#urlbar #reader-mode-button:hover image,
.urlbar-page-action:hover image,
#sidebar toolbarbutton:hover image,
toolbarpaletteitem > toolbarbutton:hover image,
.panel-subview-footer-button:hover image {
fill: var(--accent-color) !important;
filter: none !important;
}
.button-background:hover {
& img {
fill: var(--accent-color) !important;
}
}
/* 🌟 SPECIAL STATES */
toolbarbutton[checked="true"]:not(.bookmark-item),
toolbarbutton[open="true"]:not(.bookmark-item),
.toolbarbutton-1[checked="true"]:not(.bookmark-item),
.toolbarbutton-1[open="true"]:not(.bookmark-item),
#downloads-button[attention="true"],
#library-button[attention="true"] {
opacity: var(--hover-opacity) !important;
background: var(--accent-color-subtle) !important;
}
/* ===========================
🎭 ELEMENT VISIBILITY
=========================== */
#identity-icon-box label {
display: none !important;
}
#sidebar-tools-and-extensions-splitter {
display: none !important;
}
#forward-button[disabled="true"] {
display: none !important;
}
toolbarbutton[label="Bookmarks toolbar items"] {
display: none !important;
}
/* ===========================
🎮 WINDOW CONTROLS
=========================== */
/* Normal Window */
#main-window:not([tabsintitlebar]) .titlebar-buttonbox toolbarbutton,
#main-window[tabsintitlebar]:not([sizemode="maximized"]) .titlebar-buttonbox toolbarbutton {
opacity: var(--semi-opacity) !important;
transform: scale(0.9) !important;
transition: var(--transition-smooth) !important;
fill: currentColor !important;
color: inherit !important;
}
/* Hover - Normal Window - subtle scaling */
#main-window:not([tabsintitlebar]) .titlebar-buttonbox toolbarbutton:hover,
#main-window[tabsintitlebar]:not([sizemode="maximized"]) .titlebar-buttonbox toolbarbutton:hover {
opacity: var(--hover-opacity) !important;
transform: scale(1.05) !important;
color: var(--accent-color) !important;
}
/* Maximized Window */
#main-window[tabsintitlebar][sizemode="maximized"] .titlebar-buttonbox toolbarbutton,
.titlebar-buttonbox toolbarbutton {
opacity: var(--hover-opacity) !important;
transform: scale(0.9) !important;
transition: var(--transition-smooth) !important;
fill: currentColor !important;
color: inherit !important;
}
/* Hover - Maximized Window - subtle scaling */
.titlebar-buttonbox toolbarbutton:hover {
transform: scale(1.05) !important;
color: var(--accent-color) !important;
}
/* ===========================
ANIMATIONS & KEYFRAMES
=========================== */
/* URL Bar Expand Animation */
@keyframes urlbarExpand {
0% {
opacity: 0;
transform: scale(0.95) translateY(-5px);
}
70% {
transform: scale(1.02) translateY(0);
}
100% {
opacity: 1;
transform: scale(1) translateY(0);
}
}
/* Tab Activation Animation */
@keyframes tabActivate {
0% {
transform: scale(0.98);
opacity: 0.8;
}
50% {
transform: scale(1.02);
}
100% {
transform: scale(1);
opacity: 1;
}
}
/* Dropdown Slide Animation */
#urlbar-results {
animation: slideDown 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55) !important;
}
@keyframes slideDown {
0% {
opacity: 0;
transform: translateY(-15px) scale(0.95);
}
60% {
transform: translateY(2px) scale(1.01);
}
100% {
opacity: 1;
transform: translateY(0) scale(1);
}
}
/* Loading Indicator */
.tab-throbber {
transition: var(--transition-smooth) !important;
}
.tab-throbber[busy] {
animation: pulse 1.5s ease-in-out infinite;
}
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.6; }
}
/* Button Press Animation */
@keyframes buttonPress {
0% { transform: scale(1); }
50% { transform: scale(0.95); }
100% { transform: scale(1.05); }
}
/* Bookmark Button Animation */
toolbarbutton:not(.bookmark-item):active,
.toolbarbutton-1:not(.bookmark-item):active {
animation: buttonPress 0.15s ease-out !important;
}
'';
userContent = ''
/* ===================================================================
LATIN ACCENT - FIREFOX TRANSPARENT THEME
Made with cariño by Acercandr0
=================================================================== */
@-moz-document url("about:home"), url("about:newtab"), url("about:blank") {
html,
body,
#root,
.outer-wrapper,
main,
.discovery-stream,
.ds-layout,
.sections-list,
.top-sites,
.search-wrapper {
background: transparent !important;
background-color: transparent !important;
background-image: none !important;
box-shadow: none !important;
filter: none !important;
border: none !important;
}
/* ===========================
🎯 TOP SITES
=========================== */
/* Remove ALL backgrounds from top sites */
.top-sites .top-site-outer,
.top-sites .top-site-inner,
.top-site-outer .tile,
.tile,
.shortcuts-refresh .top-sites-list .top-site-outer .tile,
.shortcuts-refresh .top-sites-list:not(.dnd-active) .top-site-outer:is(.active, :focus, :hover) .tile {
background: transparent !important;
background-color: transparent !important;
background-image: none !important;
box-shadow: none !important;
border: none !important;
}
/* Only opacity changes on hover */
.top-sites .top-site-outer {
opacity: 0.3 !important;
transition: opacity 0.3s ease !important;
}
.top-sites .top-site-outer:hover {
opacity: 1 !important;
}
/* Force transparent background for topsites section */
.top-sites {
--newtab-background-color-secondary: transparent !important;
}
/* ===========================
🛠 CUSTOMIZE MENU FIX
=========================== */
/* Restore proper background for customize menu */
.customize-menu,
.customize-menu.customize-animate-enter-done {
background: var(--newtab-background-color) !important;
background-color: var(--newtab-background-color) !important;
}
/* Ensure customize menu has proper styling */
.customize-menu {
box-shadow: none !important;
border: none !important;
border-radius: 0px !important;
}
/* Fix text visibility in customize menu */
.customize-menu .section-title,
.customize-menu .section-disclaimer,
.customize-menu .personalize-button,
.customize-menu label,
.customize-menu input,
.customize-menu button {
color: var(--newtab-text-primary-color) !important }
}
/* ===========================
🎭 HIDE ELEMENTS
=========================== */
/* Recent Activity */
.body-wrapper.on .section-title,
.body-wrapper.on .sections-list .section:last-of-type,
.body-wrapper.on .topics {
display: none !important;
}
/* Search bar */
.search-wrapper .search-inner-wrapper {
display: none !important;
}
'';
};
};
}