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