:root { --spice-main-elevated: var(--spice-main); --spice-highlight: var(--spice-main-secondary); --spice-highlight-elevated: var(--spice-main-secondary); } /* ------------- TOPBAR ------------- */ /* unset colors of history buttons */ .main-topBar-historyButtons .main-topBar-button { background-color: unset; } /* change appearance of icons on search tab input */ .x-searchInput-searchInputSearchIcon svg { color: var(--spice-text); height: 17px; } .x-searchInput-searchInputClearButton svg { color: var(--spice-text); height: 17px; } /* topbar navigation items*/ .main-topBar-topbarContentWrapper a { transition-duration: 0.3s; border-radius: 8px; } /* smooth topbar background colour */ .main-topBar-background { background-image: linear-gradient(var(--spice-main) 5%, 75%, transparent); background-color: unset !important; } .main-topBar-overlay { background-color: var(--spice-main); } /* simplify profile menu */ .main-userWidget-displayName, .main-userWidget-notificationIndicator { display: none; } .main-avatar-userIcon { color: white; } .main-userWidget-box { color: var(--spice-subtext); background-color: transparent !important; } .main-userWidget-chevron { display: none; } /* ------------- NAVBAR ------------- */ /* remove divider gradient */ .main-rootlist-rootlistDividerGradient { display: none; } /* change color of divider */ .main-rootlist-rootlistDivider { background-color: var(--spice-sidebar); } /* add gradient to navbar */ .Root__nav-bar { background-image: linear-gradient(to bottom left, var(--spice-sidebar) 0%, var(--spice-player) 100%) !important; } /* change color of navbar playing icon */ [aria-label="Playing"] { color: var(--spice-text); } .main-navBar-entryPoints [data-id="/add"] { margin-top: 20px; } .main-createPlaylistButton-button { color: var(--spice-text); } .main-createPlaylistButton-createPlaylistIcon { background-color: var(--spice-text); } /* change color of navbar icons */ .main-likedSongsButton-likedSongsIcon { background: var(--spice-text); color: var(--spice-sidebar); } .main-yourEpisodesButton-yourEpisodesIcon { background: var(--spice-text); } .main-yourEpisodesButton-yourEpisodesIcon path { fill: var(--spice-sidebar); } /* remove opacity of navbar buttons */ .main-collectionLinkButton-collectionLinkButton .main-collectionLinkButton-icon, .main-collectionLinkButton-collectionLinkButton .main-collectionLinkButton-collectionLinkText, .main-createPlaylistButton-button { opacity: unset; } .main-collectionLinkButton-collectionLinkButton { color: var(--spice-subtext); } /* change colors of active tab */ .main-yourLibraryX-navLink { border-radius: 8px; margin: 6px 0; padding: 0 10px; } .main-yourLibraryX-navItem { padding: 0; } .main-navBar-navBarLinkActive, .main-navBar-navBarLinkActive:focus, .main-navBar-navBarLinkActive:hover, .main-collectionLinkButton-selected, .main-collectionLinkButton-selected svg, .main-yourLibraryX-navLinkActive, .main-yourLibraryX-navLinkActive .home-active-icon, .main-yourLibraryX-navLinkActive .search-active-icon { color: var(--spice-nav-active-text) !important; background-color: var(--spice-nav-active); } /* color of navbar icons */ .collection-icon, .premiumSpotifyIcon, .search-icon { color: var(--spice-subtext); } .main-navBar-navBarLink { transition: none; } .main-navBar-navBarLink:not(.main-navBar-navBarLinkActive):hover svg { color: var(--spice-text); } .main-yourLibraryX-entryPoints { background-color: var(--spice-sidebar); } .main-yourLibraryX-isScrolled { -webkit-box-shadow: 0 20px 10px -10px var(--spice-sidebar); box-shadow: 0 20px 10px -10px var(--spice-sidebar); } /* traclists and playlists loading placeholder */ .main-trackList-placeholder, .Pns6F5g4OEwEpdmOWTLg, .eldivguzYznZgQoShJbe { background-color: var(--background-base); background-blend-mode: color-dodge; } /* --------------- PLAYBACK BAR --------------- */ /* playback progress bar moves smoothly */ .x-progressBar-fillColor { transition: transform 1s linear; } .progress-bar__slider { transition: left 1s linear; } .progress-bar--isDragging .x-progressBar-fillColor, .progress-bar--isDragging .progress-bar__slider { transition: none; } /* round cover art when collapsed */ .main-coverSlotCollapsed-container .cover-art-image { border-radius: 8px; transition-duration: 0.15s; } .main-coverSlotExpandedCollapseButton-collapseButton { right: 10px !important; top: 10px !important; } /* hide and move progress time location */ .playback-bar__progress-time-elapsed { opacity: 0; position: absolute; bottom: 13px; left: 0; transition-duration: 0.3s; background-color: rgba(var(--spice-rgb-sidebar),.5); box-shadow: 0 0 20px 20px rgba(var(--spice-rgb-sidebar),.5); border-radius: 8px; z-index: -1; } .main-playbackBarRemainingTime-container { opacity: 0; position: absolute; bottom: 13px; right: 0; transition-duration: 0.3s; background-color: rgba(var(--spice-rgb-sidebar),.5); box-shadow: 0 0 20px 20px rgba(var(--spice-rgb-sidebar),.5); border-radius: 8px; z-index: -1; } /* show time on hover & better visibility */ .playback-bar:hover .playback-bar__progress-time-elapsed, .playback-bar:hover .main-playbackBarRemainingTime-container { opacity: 1; } /* move progress bar */ html:not(.fullscreen) .playback-bar { width: 100%; bottom: 83px; position: absolute; left: 0px; } .main-nowPlayingBar-nowPlayingBar:nth-last-child(2) .playback-bar { bottom: 107px; } .player-controls__buttons { transform: translateY(3px); align-items: center; } /* change progress bar color */ .playback-bar .x-progressBar-fillColor { background-color: var(--spice-playback-bar); } /* change appearance of play-button */ .main-playPauseButton-button { background-color: inherit; color: var(--spice-play-button); transition-duration: 0.3s !important; } .main-playPauseButton-button svg { height: 19px; width: 19px; } html.fullscreen .main-playPauseButton-button svg { height: 32px; width: 32px; } .main-playPauseButton-button:focus, .main-playPauseButton-button:hover { transform: none !important; } /* change progress bar slider color */ .progress-bar__slider { background-color: var(--spice-subtext); } .x-progressBar-progressBarBg { background-color: var(--spice-button-disabled); border-radius: 0px; } /* matching button colors */ .main-nowPlayingBar-extraControls button { color: rgba(var(--spice-rgb-selected-row),.7); } /* --------------- BUDDY FEED --------------- */ /* change text color */ .main-buddyFeed-activityMetadata .main-buddyFeed-artistAndTrackName a, .main-buddyFeed-activityMetadata .main-buddyFeed-username a, .main-buddyFeed-activityMetadata .main-buddyFeed-playbackContextLink, p.main-buddyFeed-timestamp.main-type-finale, .main-buddyFeed-findFriendsButton .main-buddyFeed-findFriendsIcon { color: var(--spice-subtext); } .spotify__os--is-windows .main-buddyFeed-header { padding-left: 0; padding-right: 5px; } /* add gradient */ .main-buddyFeed-friendsFeedContainer { background-image: linear-gradient(to bottom left, var(--spice-sidebar) 0%, var(--spice-player) 100%) !important; } /* hide buddyfeed scrollbar */ .main-buddyFeed-scrollableArea > .os-scrollbar { display: none; } .main-avatar-avatar.BzunmwrVMyWGpopPJRt2:after { background: var(--spice-button); } /* --------------- MAIN VIEW --------------- */ /* hide banner ads */ .main-leaderboardComponent-container { display: none; } .WiPggcPDzbwGxoxwLWFf.contentSpacing { display: none; } .desktoproutes-homepage-takeover-ad-hptoComponent-parentContainer, .desktoproutes-homepage-takeover-ad-hptoComponent-container { display: none !important; } /* hide upgrade button */ .main-topBar-UpgradeButton { display: none; } /* change input box appearance */ input { background-color: var(--spice-main-secondary) !important; border-radius: 8px !important; padding: 6px 10px 6px 48px; color: var(--spice-text) !important; } ::placeholder { color: var(--spice-subtext) !important; } /* remove background color from main headers */ .main-home-homeHeader, .x-441-entityHeader-overlay, .main-actionBarBackground-background, .main-entityHeader-overlay, .main-entityHeader-backgroundColor { background-color: unset !important; background-image: unset !important; } /* change playlist image shadow */ .main-entityHeader-shadow { box-shadow: 0 5px 10px rgba(var(--spice-rgb-shadow), 0.5) !important; } /* change playlist image border-radius */ .main-entityHeader-image { border-radius: 8px; } /* change playing icon from gif to svg */ .main-trackList-playingIcon { -webkit-mask-image: url("data:image/svg+xml,%3Csvg id='playing-icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 24'%3E%3Cdefs%3E%3Cstyle%3E %23playing-icon %7B fill: %2320BC54; %7D @keyframes play %7B 0%25 %7Btransform: scaleY(1);%7D 3.3%25 %7Btransform: scaleY(0.9583);%7D 6.6%25 %7Btransform: scaleY(0.9166);%7D 9.9%25 %7Btransform: scaleY(0.8333);%7D 13.3%25 %7Btransform: scaleY(0.7083);%7D 16.6%25 %7Btransform: scaleY(0.5416);%7D 19.9%25 %7Btransform: scaleY(0.4166);%7D 23.3%25 %7Btransform: scaleY(0.25);%7D 26.6%25 %7Btransform: scaleY(0.1666);%7D 29.9%25 %7Btransform: scaleY(0.125);%7D 33.3%25 %7Btransform: scaleY(0.125);%7D 36.6%25 %7Btransform: scaleY(0.1666);%7D 39.9%25 %7Btransform: scaleY(0.1666);%7D 43.3%25 %7Btransform: scaleY(0.2083);%7D 46.6%25 %7Btransform: scaleY(0.2916);%7D 49.9%25 %7Btransform: scaleY(0.375);%7D 53.3%25 %7Btransform: scaleY(0.5);%7D 56.6%25 %7Btransform: scaleY(0.5833);%7D 59.9%25 %7Btransform: scaleY(0.625);%7D 63.3%25 %7Btransform: scaleY(0.6666);%7D 66.6%25 %7Btransform: scaleY(0.6666);%7D 69.9%25 %7Btransform: scaleY(0.6666);%7D 73.3%25 %7Btransform: scaleY(0.6666);%7D 76.6%25 %7Btransform: scaleY(0.7083);%7D 79.9%25 %7Btransform: scaleY(0.75);%7D 83.3%25 %7Btransform: scaleY(0.8333);%7D 86.6%25 %7Btransform: scaleY(0.875);%7D 89.9%25 %7Btransform: scaleY(0.9166);%7D 93.3%25 %7Btransform: scaleY(0.9583);%7D 96.6%25 %7Btransform: scaleY(1);%7D %7D %23bar1 %7B transform-origin: bottom; animation: play 0.9s -0.51s infinite; %7D %23bar2 %7B transform-origin: bottom; animation: play 0.9s infinite; %7D %23bar3 %7B transform-origin: bottom; animation: play 0.9s -0.15s infinite; %7D %23bar4 %7B transform-origin: bottom; animation: play 0.9s -0.75s infinite; %7D %3C/style%3E%3C/defs%3E%3Ctitle%3Eplaying-icon%3C/title%3E%3Crect id='bar1' class='cls-1' width='4' height='24'/%3E%3Crect id='bar2' class='cls-1' x='6' width='4' height='24'/%3E%3Crect id='bar3' class='cls-1' x='12' width='4' height='24'/%3E%3Crect id='bar4' class='cls-1' x='18' width='4' height='24'/%3E%3C/svg%3E"); background: var(--spice-button); content-visibility: hidden; -webkit-mask-repeat: no-repeat; } /* recolor animated liked or heart button on click */ #_R_G *:not([fill="none"]) { fill: var(--spice-button-active) !important; } #_R_G *:not([stroke="none"]) { stroke: var(--spice-button-active); } /* change appearance of 'playlist' tag */ .main-entityHeader-subtitle.main-entityHeader-small.main-entityHeader-uppercase.main-entityHeader-bold { border: 2px var(--spice-text) solid; border-radius: 8px; width: fit-content; display: inline; text-align: center; padding: 3px 7px; } /* change appearance of 'follow' button */ .artist-artistOverview-overview .main-actionBar-ActionBarRow > button:first-of-type { border-radius: 8px; border: 2px solid var(--spice-button); } /* change scrollbar appearance */ .os-theme-spotify.os-host-transition > .os-scrollbar-vertical > .os-scrollbar-track > .os-scrollbar-handle { border-radius: 4px; width: 6px; background-color: var(--spice-button-disabled); } .os-theme-spotify.os-host-transition > .os-scrollbar-vertical > .os-scrollbar-track { width: 6px; } /* add smooth shadow under headers */ .main-trackList-trackListHeaderStuck.main-trackList-trackListHeader, .artist-artistDiscography-topBar.artist-artistDiscography-topBarScrolled { background-color: var(--spice-main); border-bottom: none; -webkit-box-shadow: 0 0 50px 50px var(--spice-main); box-shadow: 0 0 50px 50px var(--spice-main); transition: box-shadow 0.2s; } .search-searchCategory-SearchCategory { -webkit-box-shadow: 0 0 20px 20px var(--spice-main); box-shadow: 0 0 20px 20px var(--spice-main); z-index: 3; } /* play button */ .main-home-home .main-playButton-PlayButton > button > span { inline-size: 42px; block-size: 42px; min-block-size: auto; } .main-home-home .main-playButton-PlayButton svg { width: 24px; height: 24px; } .main-home-home .main-playButton-PlayButton > button > span > span { position: initial; height: 24px; } .main-actionBar-ActionBar .main-playButton-PlayButton svg { width: 30px; height: 30px; } .main-actionBar-ActionBar .main-playButton-PlayButton > button > span > span { position: initial; height: 30px; } /* change text color on category cards in 'search' tab */ a.x-categoryCard-CategoryCard, a.x-heroCategoryCard-HeroCategoryCard { color: var(--spice-subtext); } /* recolor sub-buttons */ .main-moreButton-button { color: var(--spice-button-secondary); } .x-downloadButton-button, .x-contributorButton-button svg, .main-actionBar-ActionBarRow .main-addButton-button { color: var(--spice-button-secondary) !important; } .main-entityHeader-metaDataText, .x-filterBox-searchIconContainer { color: var(--spice-button-secondary); } .main-entityHeader-metaDataText span { color: var(--spice-button-secondary); } .x-sortBox-sortDropdown { background-color: var(--spice-main-secondary) !important; border-radius: 8px; } [dir="ltr"] .main-actionBar-ActionBarRow > :first-child { margin-right: 40px; } .x-filterBox-expandButton:focus, .x-filterBox-expandButton:hover { background-color: var(--spice-main-secondary) !important; border-radius: 8px; } .x-sortBox-sortDropdown, .x-filterBox-expandButton { color: var(--spice-text) !important; } /* change background color of 'home' tab shortcut items */ .view-homeShortcutsGrid-shortcut { background-color: rgba(var(--spice-rgb-main-secondary), 0.5) !important; } .view-homeShortcutsGrid-shortcut:focus-within, .view-homeShortcutsGrid-shortcut:hover, .view-homeShortcutsGrid-shortcut[data-context-menu-open="true"] { background-color: var(--spice-main-secondary) !important; } .main-card-card { background-color: rgba(var(--spice-rgb-main-secondary), 0.5) !important; } .main-card-card:focus-within, .main-card-card:hover { background-color: var(--spice-main-secondary) !important; } /* card background color for editing playlist details */ .main-playlistEditDetailsModal-descriptionTextarea { background: var(--spice-main-secondary); } .main-playlistEditDetailsModal-textElementLabel { display: none; } /* change color of search icon for new playlists */ .playlist-inlineSearchBox-searchIcon { fill: var(--spice-text) !important; } /* change appearance of verified artist badge */ .main-entityHeader-headerText > span:first-child { border: 0.25em solid var(--spice-text); border-radius: 0.5em; width: fit-content; gap: 0px; text-align: center; padding: 0.25em 0.75em; --font-family: CircularSp,CircularSp-Arab,CircularSp-Hebr,CircularSp-Cyrl,CircularSp-Grek,CircularSp-Deva,var(--fallback-fonts,sans-serif),sans-serif; } .main-entityHeader-headerText > span:first-child > span { font-weight: bold; text-transform: uppercase; font-size: 0.75rem; } .main-entityHeader-headerText > span:first-child svg, .main-entityHeader-headerText > span:first-child div { display: none; } /* change text color of hero card on 'library' tab */ .main-heroCard-card, .collection-collectionEntityHeroCard-descriptionContainer { color: var(--spice-subtext) !important; } /* -------------- CONTEXT MENU -------------- */ /* change hover color when selecting in context menu */ .main-contextMenu-menuItemButton:not(.main-contextMenu-disabled):focus, .main-contextMenu-menuItemButton:not(.main-contextMenu-disabled):hover { background-color: rgba(0, 0, 0, 0.2) !important; } .main-contextMenu-menuItemButton[aria-expanded="true"] { background-color: rgba(0, 0, 0, 0.2) !important; } /* disabled options */ .main-contextMenu-disabled > span { color: rgba(var(--spice-button-disabled), 0.5); } /* dividers between option subgroups */ .main-contextMenu-menuItem:not(:first-child) > .main-contextMenu-dividerBefore:before { border-bottom: 1px solid var(--spice-button-disabled); } /* ------------- TRACKS GRID ------------- */ /* change color of track titles */ .main-trackList-rowTitle { color: var(--spice-subtext); } /* change color of 'explicit' badge */ .main-tag-container { background-color: var(--spice-subtext); } /* change background color of selected row */ .main-trackList-trackListRow.main-trackList-selected, .main-trackList-trackListRow.main-trackList-selected:hover { background-color: var(--spice-main-secondary) !important; } .main-trackList-trackListRow:focus-within, .main-trackList-trackListRow:hover { background-color: rgba(var(--spice-rgb-main-secondary), 0.5); } /* When song is currently playing */ .main-trackList-active .main-type-mesto, .main-trackList-active .main-trackList-rowSubTitle, .main-trackList-active .main-trackList-rowSubTitle a, .main-trackList-active .main-trackList-rowMarker, .main-trackList-active .main-trackList-rowSectionVariable, .main-trackList-active .main-trackList-rowSectionVariable a, .main-trackList-active .main-trackList-rowSectionVariable span, .main-trackList-active .main-trackList-rowMarker, .main-trackList-active .main-trackList-rowDuration { color: var(--spice-button) !important; } .main-trackList-active .main-tag-container { background-color: var(--spice-button); } /* When song is hovered/selected */ .main-trackList-trackListRow.main-trackList-selected:not(.main-trackList-active) .main-tag-container, .main-trackList-trackListRow:hover:not(.main-trackList-disabled):not(.main-trackList-active) .main-tag-container { background-color: var(--spice-text); } .main-trackList-trackListRow:hover:not(.main-trackList-disabled) .main-addButton-button, .main-trackList-trackListRow:focus-within:not(.main-trackList-disabled) .main-addButton-button { color: var(--spice-text); } .main-trackList-trackListRow.main-trackList-selected:not(.main-trackList-active) .main-trackList-rowTitle, .main-trackList-trackListRow:hover:not(.main-trackList-disabled):not(.main-trackList-active) .main-trackList-rowTitle { color: var(--spice-text); } .main-trackList-trackListRow.main-trackList-selected:not(.main-trackList-active) .main-trackList-rowSubTitle, .main-trackList-trackListRow:hover:not(.main-trackList-disabled):not(.main-trackList-active) .main-trackList-rowSubTitle { color: var(--spice-text) !important; } /* color of selected row infos */ .main-trackList-rowSectionVariable span, .main-trackList-rowSectionEnd div { color: inherit; } /* --------------- NEW HOME LAYOUT --------------- */ .main-topBar-navLinks a { border-radius: 8px; color: var(--spice-text); background-color: var(--spice-main-secondary); } .main-topBar-navLinks a:hover { color: var(--spice-button-active); background-color: var(--spice-main-secondary); } .main-topBar-navLinks a.main-topBar-buttonActive { background-color: var(--spice-button-active); color: var(--spice-main); } .nav-alt .x-searchInput-searchInputInput:focus { box-shadow: none; } /* ------- TOGGLE ------- */ .x-toggle-indicatorWrapper { background-color: transparent; height: 20px; width: 40px; box-shadow: 0 0 0 1px var(--spice-subtext); } input:hover:not([disabled], :active) ~ .x-toggle-indicatorWrapper { background-color: var(--spice-main-secondary); } input:checked ~ .x-toggle-indicatorWrapper { background-color: var(--spice-button); box-shadow: none; } .x-toggle-indicator { background-color: var(--spice-subtext); height: 12px; width: 12px; top: 4px; left: 3px; } input:not([disabled]) ~ .x-toggle-indicatorWrapper:hover .x-toggle-indicator { transform: scale(1.2); } input:checked ~ .x-toggle-indicatorWrapper .x-toggle-indicator { background-color: var(--spice-main); right: 4px; }