/* ==UserStyle== @name YouTube Catppuccin @namespace github.com/Sebagabones/userstyles/styles/youtube @homepageURL https://github.com/Sebagabones/userstyles/tree/main/styles/youtube @version 2026.04.14 @updateURL https://github.com/Sebagabones/userstyles/raw/main/styles/youtube/catppuccin.user.less @supportURL https://github.com/Sebagabones/userstyles/issues?q=is%3Aopen+is%3Aissue+label%3Ayoutube @description Soothing pastel theme for YouTube @author Catppuccin @license MIT @preprocessor less @var select lightFlavor "Light Flavor" ["latte:Latte*", "frappe:Frappé", "macchiato:Macchiato", "mocha:Mocha"] @var select darkFlavor "Dark Flavor" ["latte:Latte", "frappe:Frappé", "macchiato:Macchiato", "mocha:Mocha*"] @var select accentColor "Accent" ["rosewater:Rosewater", "flamingo:Flamingo", "pink:Pink", "mauve:Mauve*", "red:Red", "maroon:Maroon", "peach:Peach", "yellow:Yellow", "green:Green", "teal:Teal", "blue:Blue", "sapphire:Sapphire", "sky:Sky", "lavender:Lavender", "subtext0:Gray"] @var checkbox logo "Enable YouTube logo" 1 @var checkbox oled "Enable black bars" 0 @var checkbox sponsorBlock "Enable SponsorBlock segments" 1 ==/UserStyle== */ @import "https://raw.githubusercontent.com/Sebagabones/userstyles/refs/heads/main/lib/lib.less"; @-moz-document domain("youtube.com") { :root[dark] { #catppuccin(@darkFlavor); } :root:not([dark]) { #catppuccin(@lightFlavor); } #catppuccin(@flavor) { #lib.palette(); #lib.defaults(); @white: if(@flavor = latte, @base, @text); @black: if(@flavor = latte, @text, @base); color: @text; background: @base; #--variables() { &, [dark], [system-icons], [darker-dark-theme], &[dark], &[system-icons], &[darker-dark-theme] { --efyt-control-bar-background-color: @mantle; --dimmer-text: @text; /* Newest Variables */ --yt-sys-color-baseline--base-background: @base; --yt-sys-color-baseline--menu-background: @mantle; --yt-sys-color-baseline--raised-background: @surface0; --yt-sys-color-baseline--additive-background: @surface0; --yt-sys-color-baseline--wordmark-text: @text; --yt-sys-color-baseline--text-primary: @text; --yt-sys-color-baseline--text-secondary: @subtext0; --yt-sys-color-baseline--call-to-action: @accent; --yt-sys-color-baseline--suggested-action: mix(@accent, @base, 30%); --yt-sys-color-baseline--outline: @surface0; --yt-sys-color-baseline--outline-opaque: @surface1; --yt-sys-color-baseline--outline-inverse-opaque: @overlay0; --yt-sys-color-baseline--overlay-background-medium-light: fade( @black, 60% ); --yt-sys-color-baseline--overlay-background-heavy: fade(@black, 80%); --yt-sys-color-baseline--overlay-background-solid: @crust; --yt-sys-color-baseline--overlay-text-primary: @text; --yt-spec-white-1: @text; --yt-spec-white-2: @subtext0; --yt-spec-white-3: @subtext1; --yt-spec-white-4: darken(@subtext1, 5%); --yt-spec-black-1: @overlay1; --yt-spec-black-2: @overlay0; --yt-spec-black-3: @surface2; --yt-spec-black-4: @surface1; --yt-spec-black-pure: @surface0; --yt-spec-grey-1: @text; --yt-spec-grey-2: @subtext0; --yt-spec-grey-3: @subtext1; --yt-spec-grey-4: @overlay2; --yt-spec-grey-5: @overlay1; --yt-brand-youtube-red: @accent; --yt-brand-medium-red: @accent; --yt-brand-light-red: @accent; --yt-spec-red-30: @peach; --yt-spec-red-70: @red; --yt-spec-red-indicator: @accent; --yt-spec-pale-blue: @sky; --yt-spec-light-blue: @sky; --yt-spec-dark-blue: @sapphire; --yt-spec-navy-blue: @teal; --yt-spec-light-green: @green; --yt-spec-dark-green: @green; --yt-spec-yellow: @peach; --yt-spec-black-pure-alpha-5: @subtext0; --yt-spec-black-pure-alpha-10: @overlay2; --yt-spec-black-pure-alpha-15: fade(@crust, 85%); --yt-spec-black-pure-alpha-30: fade(@crust, 70%); --yt-spec-black-pure-alpha-60: fade(@crust, 40%); --yt-spec-black-pure-alpha-80: fade(@crust, 20%); --yt-spec-black-1-alpha-98: fade(@crust, 2%); --yt-spec-black-1-alpha-95: fade(@crust, 5%); --yt-spec-white-1-alpha-10: fade(@text, 90%); --yt-spec-white-1-alpha-20: fade(@text, 80%); --yt-spec-white-1-alpha-25: fade(@text, 75%); --yt-spec-white-1-alpha-30: fade(@text, 70%); --yt-spec-white-1-alpha-70: fade(@text, 30%); --yt-spec-white-1-alpha-95: fade(@text, 5%); --yt-spec-white-1-alpha-98: fade(@text, 2%); --yt-brand-medium-red-alpha-90: fade(@accent, 10%); --yt-brand-medium-red-alpha-30: fade(@accent, 70%); --yt-brand-light-red-alpha-30: fade(@accent, 70%); --yt-spec-light-blue-alpha-30: fade(@sapphire, 70%); --yt-spec-dark-blue-alpha-30: fade(@sapphire, 70%); --yt-spec-base-background: @base; --yt-spec-raised-background: @surface0; --yt-spec-menu-background: @mantle; --yt-spec-inverted-background: @text; --yt-spec-additive-background: @surface0; --yt-spec-outline: @surface0; --yt-spec-shadow: fade(@crust, 75%); --yt-spec-text-primary: @text; --yt-spec-text-secondary: @subtext0; --yt-spec-text-disabled: @subtext1; --yt-spec-text-primary-inverse: @crust; --yt-spec-call-to-action: @accent; --yt-spec-call-to-action-inverse: @accent; --yt-spec-suggested-action: fade(@accent, 20%); --yt-spec-suggested-action-inverse: @text; --yt-spec-icon-active-other: @text; --yt-spec-button-chip-background-hover: @surface1; --yt-spec-touch-response: @surface0; --yt-spec-touch-response-inverse: @accent; --yt-spec-brand-icon-active: @accent; --yt-spec-brand-button-background: @accent; --yt-spec-brand-link-text: @sapphire; --yt-spec-wordmark-text: @text; --yt-spec-error-indicator: @red; --yt-spec-themed-blue: @accent; --yt-spec-themed-green: @green; --yt-spec-ad-indicator: @teal; --yt-spec-themed-overlay-background: fade(@crust, 80%); --yt-spec-commerce-badge-background: @green; --yt-spec-static-brand-red: @accent; --yt-spec-static-brand-white: @text; --yt-spec-static-brand-black: @base; --yt-spec-static-clear-color: fade(@crust, 100%); --yt-spec-static-clear-black: @base; --yt-spec-static-ad-yellow: @peach; --yt-spec-static-grey: @subtext0; --yt-spec-static-overlay-background-solid: @crust; --yt-spec-static-overlay-background-heavy: @crust; --yt-spec-static-overlay-background-medium: fade(@crust, 50%); --yt-spec-static-overlay-background-light: fade( @crust, 90% ); --yt-spec-static-overlay-text-primary: @text; --yt-spec-static-overlay-text-secondary: fade( @subtext0, 30% ); --yt-spec-static-overlay-text-disabled: fade( @subtext0, 70% ); --yt-spec-static-overlay-call-to-action: @accent; --yt-spec-static-overlay-icon-active-other: @crust; --yt-spec-static-overlay-icon-inactive: @surface1; --yt-spec-static-overlay-icon-disabled: @surface2; --yt-spec-static-overlay-button-primary: @accent; --yt-spec-static-overlay-touch-response: @overlay1; --yt-spec-static-overlay-touch-response-inverse: @surface1; --yt-spec-static-overlay-background-brand: @accent; --yt-spec-assistive-feed-themed-gradient-1: @subtext0; --yt-spec-assistive-feed-themed-gradient-2: @lavender; --yt-spec-assistive-feed-themed-gradient-3: @red; --yt-spec-brand-background-solid: @base; --yt-spec-brand-background-primary: @base; --yt-spec-brand-background-secondary: @mantle; --yt-spec-general-background-a: @base; --yt-spec-general-background-b: @base; --yt-spec-general-background-c: @crust; --yt-spec-error-background: @base; --yt-spec-10-percent-layer: @surface1; --yt-spec-snackbar-background: @mantle; --yt-spec-snackbar-background-updated: @mantle; --yt-spec-badge-chip-background: if( @flavor = latte, @crust, @surface0 ); --yt-spec-verified-badge-background: @overlay0; --yt-spec-call-to-action-fadeoutd: fade(@sapphire, 70%); --yt-spec-call-to-action-hover: @accent; --yt-spec-brand-button-background-hover: @accent; --yt-spec-brand-link-text-fadeoutd: fade( @accent, 70% ); --yt-spec-filled-button-focus-outline: @surface0; --yt-spec-static-overlay-button-hover: @surface1; --yt-spec-mono-filled-hover: @surface1; --yt-spec-commerce-filled-hover: @accent; --yt-spec-mono-tonal-hover: @surface1; --yt-spec-commerce-tonal-hover: @surface2; --yt-spec-static-overlay-filled-hover: @overlay1; --yt-spec-static-overlay-tonal-hover: @surface1; --yt-spec-paper-tab-ink: fade(@text, 70%); --yt-spec-filled-button-text: @text; --yt-spec-selected-nav-text: @text; --iron-icon-fill-color: @text; --yt-spec-overlay-text-primary: @text; --yt-spec-overlay-background-medium-light: fade(@black, 60%); --yt-spec-overlay-background-heavy: fade(@black, 80%); --yt-spec-overlay-background-solid: @black; /* Search bar */ --ytd-searchbox-border-color: @surface0; --ytd-searchbox-legacy-border-color: @surface0; --ytd-searchbox-legacy-border-shadow-color: fade( @crust, 100% ); --ytd-searchbox-legacy-button-color: @mantle; --ytd-searchbox-legacy-button-border-color: @surface0; --ytd-searchbox-legacy-button-focus-color: @accent; --ytd-searchbox-legacy-button-hover-color: @mantle; --ytd-searchbox-legacy-button-hover-border-color: @surface0; --ytd-searchbox-legacy-button-icon-color: @accent; --ytd-searchbox-background: @base; --ytd-searchbox-text-color: @text; /* System icons */ --yt-spec-icon-inactive: @text; --yt-spec-icon-disabled: @overlay1; --yt-spec-brand-icon-inactive: @overlay2; /* Live chat */ --yt-live-chat-background-color: @base; --yt-live-chat-primary-text-color: @text; --yt-live-chat-action-panel-background-color: @base; --yt-live-chat-secondary-background-color: @surface1; --yt-live-chat-toast-background-color: @surface2; --yt-live-chat-mode-change-background-color: @base; --yt-live-chat-secondary-text-color: @subtext0; --yt-live-chat-tertiary-text-color: fade(@text, 46%); --yt-live-chat-text-input-field-inactive-underline-color: @subtext0; --yt-live-chat-text-input-field-placeholder-color: @subtext0; --yt-live-chat-enabled-send-button-color: @text; --yt-live-chat-disabled-icon-button-color: @subtext1; --yt-live-chat-picker-button-hover-color: @accent; --yt-live-chat-mention-background-color: @accent; --yt-live-chat-mention-text-color: @text; --yt-live-chat-deleted-message-color: @subtext0; --yt-live-chat-deleted-message-bar-color: @subtext1; --yt-live-chat-reconnect-message-color: @text; --yt-live-chat-disabled-button-background-color: @overlay0; --yt-live-chat-sub-panel-background-color: @base; --yt-live-chat-sub-panel-background-color-transparent: @mantle; --yt-live-chat-moderator-color: @lavender; --yt-live-chat-owner-color: @peach; --yt-live-chat-message-highlight-background-color: @base; --yt-live-chat-sponsor-color: @green; --yt-live-chat-overlay-color: fade(@mantle, 50%); --yt-live-chat-dialog-background-color: @base; --yt-emoji-picker-variant-selector-bg-color: @base; --yt-live-chat-moderation-mode-hover-background-color: fade( @mantle, 70% ); --yt-grey: @subtext0; --yt-live-chat-text-input-field-suggestion-background-color: @subtext0; --yt-live-chat-text-input-field-suggestion-background-color-hover: @subtext1; --yt-emoji-picker-search-background-color: @surface0; --yt-emoji-picker-search-color: @text; --yt-emoji-picker-search-placeholder-color: @accent; --yt-live-chat-slider-active-color: @accent; --yt-live-chat-slider-container-color: @surface0; --yt-live-chat-slider-markers-color: @text; --yt-live-chat-banner-gradient-scrim: linear-gradient( @mantle, transparent ); --yt-live-chat-action-panel-gradient-scrim: linear-gradient( to top, @mantle, transparent ); --yt-live-chat-automod-button-background-color-hover: fade( @crust, 50% ); --yt-live-chat-automod-button-explanation-color: fade( @accent, 30% ); --yt-live-chat-shimmer-background-color: fade(@crust, 60%); --yt-live-chat-shimmer-linear-gradient: linear-gradient( 0deg, fade(@text, 90%) 40%, fade(@base, 70%) 50%, fade(@text, 90%) 60% ); --yt-live-chat-vem-background-color: @mantle; --yt-live-chat-product-picker-icon-color: fade(@text, 50%); --yt-live-chat-product-picker-hover-color: @overlay0; --yt-live-chat-product-picker-disabled-icon-color: fade( @text, 70% ); --yt-live-chat-action-panel-background-color-transparent: (null); --paper-tooltip-background: @surface2; --paper-tooltip-text-color: @text; .ytTooltipContainerDefaultTooltipContent { background: var(--paper-tooltip-background); color: var(--paper-tooltip-text-color); } /* Links */ --yt-endpoint-color: @text; --yt-endpoint-visited-color: @text; --yt-endpoint-hover-color: @accent; --sb-dark-red-outline: @accent; --sb-main-bg-color: @base; --sb-main-fg-color: @text; --sb-grey-bg-color: @base; --sb-grey-fg-color: @subtext0; --sb-red-bg-color: @accent; & when (@sponsorBlock = 1) { --sb-category-sponsor: @green; --sb-category-selfpromo: @yellow; --sb-category-exclusive_access: @teal; --sb-category-interaction: @mauve; --sb-category-poi_highlight: @pink; --sb-category-intro: @sky; --sb-category-outro: @blue; --sb-category-preview: @sapphire; --sb-category-filler: @lavender; --sb-category-music_offtopic: @peach; } } &:not(.style-scope) { --primary-text-color: @text; --primary-background-color: @base; --secondary-text-color: @subtext0; --disabled-text-color: @subtext1; --divider-color: @overlay0; --error-color: @red; --primary-color: @accent; --light-primary-color: @accent; --dark-primary-color: @blue; --accent-color: @accent; --light-accent-color: @accent; --dark-accent-color: @accent; --light-theme-background-color: @base; --light-theme-base-color: @text; --light-theme-text-color: @text; --light-theme-secondary-color: @subtext0; --light-theme-disabled-color: @subtext1; --light-theme-divider-color: @overlay0; --dark-theme-background-color: @base; --dark-theme-base-color: @text; --dark-theme-text-color: @text; --dark-theme-secondary-color: @subtext0; --dark-theme-disabled-color: @subtext1; --dark-theme-divider-color: @overlay0; } } #--variables() !important; /* Misc */ & when (@logo = 0) { ytd-topbar-logo-renderer, svg.ytd-consent-bump-v2-lightbox { display: none; } } #progress.yt-page-navigation-progress { background: @accent; } /* Selected chapter */ ytd-macro-markers-list-item-renderer { --ytd-macro-markers-list-item-background-color: @surface0; --ytd-macro-markers-list-item-title-color: @text; --ytd-macro-markers-list-item-secondary-color: @subtext1; --ytd-macro-markers-list-item-timestamp-background-color: @surface1; } ytd-playlist-panel-video-renderer { --yt-lightsource-section2-color: @surface1; --yt-lightsource-section4-color: @surface2; --yt-lightsource-primary-title-color: @text; --yt-lightsource-secondary-title-color: @text; --yt-active-playlist-panel-background-color: @surface0; } ytd-playlist-panel-renderer[collapsible][collapsed][use-color-palette] .header.ytd-playlist-panel-renderer { --iron-icon-fill-color: @text; background-color: @base; } #container.ytd-masthead { --iron-icon-fill-color: @text; } #background.ytd-masthead, #frosted-glass { --yt-frosted-glass-desktop: @base; --yt-spec-frosted-glass-desktop: @base; } ytd-feed-filter-chip-bar-renderer[expand-instead-of-scroll] #chips-wrapper.ytd-feed-filter-chip-bar-renderer { --iron-icon-fill-color: @text; background-color: @base; } .ytp-progress-list when not(@flavor = latte) { background: fade(@surface0, 80%); } .ytp-load-progress when not(@flavor = latte) { background: fade(@overlay0, 100%); } ytd-expandable-metadata-renderer { --yt-lightsource-section1-color: @base; --yt-lightsource-section2-color: @surface0; --yt-lightsource-section3-color: @surface1; --yt-lightsource-section4-color: @surface2; --yt-lightsource-primary-title-color: @text; --yt-lightsource-secondary-title-color: @subtext0; } yt-live-chat-renderer { --yt-button-default-text-color: @text; --yt-button-default-background-color: @base; --yt-button-dark-text-color: @base; --yt-button-dark-background-color: @accent; --yt-button-payment-background-color: @accent; } yt-icon-button.yt-live-chat-item-list-renderer { background-color: @accent; color: @base; &:hover { background-color: darken(@accent, 5%); } } /* Skeleton */ #guide-skeleton, #home-container-skeleton, #home-chips { background-color: @base; z-index: -1; } ytd-app[is-shorts-page] { background: var( --yt-spec-base-background ); // fix unset background on shorts page } #guide-skeleton .guide-ghost-icon, #guide-skeleton .guide-ghost-text, .masthead-skeleton-icon, #home-page-skeleton .skeleton-bg-color, .watch-skeleton .skeleton-bg-color { background-color: @surface1; } /* Ambient mode */ #cinematics, #cinematic-container { display: none; } .ytp-settings-button.ytp-hd-quality-badge::after, .ytp-settings-button.ytp-hdr-quality-badge::after, .ytp-settings-button.ytp-4k-quality-badge::after, .ytp-settings-button.ytp-5k-quality-badge::after, .ytp-settings-button.ytp-8k-quality-badge::after, .ytp-settings-button.ytp-3d-badge-grey::after, .ytp-settings-button.ytp-3d-badge::after { background-color: @accent; } /* Icons */ [fill="red"], [fill="#F00"], [fill="#FF0000"], [fill="#f03"], [fill="#FF0033"] { fill: @accent; } [fill="white"] { fill: if(@flavor = latte, @base, @text); } yt-icon.ytd-logo [fill="white"] { fill: @crust; } .yt-spec-icon-shape { [fill="#FAFAFA"], [fill="#000"], [fill="#fff"], [fill="#FFF"], [fill="#FFFFFF"] { fill: @crust; } } /* Notifications Bell and Indicator */ .ytSpecIconBadgeShapeStyleOverlay .ytSpecIconBadgeShapeIcon, .ytSpecIconBadgeShapeBadge { color: @text; } .ytSpecIconBadgeShapeTypeNotification .ytSpecIconBadgeShapeBadge { background-color: @accent; color: @base; } /* Buttons */ .yt-spec-button-shape-next--mono { &.yt-spec-button-shape-next--tonal { color: @text; background-color: @surface0; [fill="rgb(3,3,3)"], [fill="rgb(0,0,0)"], [fill="rgb(255,255,255)"] { fill: @text; } [stroke="rgb(0,0,0)"], [stroke="rgb(255,255,255)"] { stroke: @text; } /* Accent for filled-in thumbs up (like button) */ [animated-icon-type="LIKE"] { g path[fill] { fill: @accent; + [stroke] { stroke: @accent; } } } &:hover { background-color: @surface1; } } &.yt-spec-button-shape-next--outline { color: @text; border-color: @surface2; &:hover { background-color: @surface2; } } &.yt-spec-button-shape-next--text { color: @text; /* Accent for filled-in thumbs up (like button) */ path[d="M3,11h3v10H3V11z M18.77,11h-4.23l1.52-4.94C16.38,5.03,15.54,4,14.38,4c-0.58,0-1.14,0.24-1.52,0.65L7,11v10h10.43 c1.06,0,1.98-0.67,2.19-1.61l1.34-6C21.23,12.15,20.18,11,18.77,11z"] { fill: @accent; } &:hover { background-color: @surface1; } } &.yt-spec-button-shape-next--filled { color: @base; background-color: @accent; &:hover { background-color: darken(@accent, 5%); } } } .yt-spec-button-shape-next--disabled { color: @overlay1; } .yt-spec-button-shape-next--overlay { &.yt-spec-button-shape-next--tonal { color: @text; background-color: @surface0; &:hover { background-color: @surface1; } } &.yt-spec-button-shape-next--text { color: @text; &:hover { background-color: @surface0; } } &.yt-spec-button-shape-next--filled { color: @base; background-color: @accent; } &.yt-spec-button-shape-next--outline { color: @text; border-color: @surface1; &:hover { background: @surface0; } } } .yt-spec-button-shape-next--call-to-action { &.yt-spec-button-shape-next--outline { color: @accent; border-color: @surface2; &:hover { background-color: fade(@accent, 30%); color: @accent; } } &.yt-spec-button-shape-next--text { color: @accent; &:hover { background-color: fade(@accent, 30%); } } &.yt-spec-button-shape-next--filled { color: @base; background-color: @accent; &:hover { background-color: lighten(@accent, 5%); } } } .yt-spec-button-shape-next--disabled.yt-spec-button-shape-next--filled { color: @subtext0; background-color: fade(@surface1, 70%); } /* Search box */ .ytSearchboxComponentInputBox, .ytSearchboxComponentInputBoxDark { background: var(--ytd-searchbox-background); color: var(--ytd-searchbox-text-color); border-color: var(--ytd-searchbox-border-color); box-shadow: none; } .ytSearchboxComponentInputBoxHasFocus, .ytSearchboxComponentInputBoxHasFocusDark { border-color: @accent; } .ytSuggestionComponentPersonalizedSuggestion { color: @text; } .ytSuggestionComponentHighlighted { background: @surface1; } .ytSuggestionComponentLargerRemovedText { color: @overlay1; } .ytSearchboxComponentSuggestionsContainer, .ytSearchboxComponentSuggestionsContainerDark { background: var(--yt-spec-raised-background); border-color: var(--yt-spec-raised-background); } .ytSuggestionComponentSuggestion, .ytSuggestionComponentSuggestionDark { color: var(--ytd-searchbox-text-color); } .ytSearchboxComponentSearchButton, .ytSearchboxComponentSearchButtonDark { color: var(--ytd-searchbox-text-color); background: var(--yt-spec-raised-background); border-color: var(--ytd-searchbox-border-color); } .ytSearchboxComponentClearButtonIcon, .ytSearchboxComponentClearButtonIconDark { color: var(--ytd-searchbox-text-color); } /* Video description */ // Video description background (collapsed on hover) ytd-watch-metadata { --yt-saturated-raised-background: @surface1 !important; --yt-saturated-text-primary: @text !important; --yt-saturated-text-secondary: @subtext1 !important; } // Video description text (expanded) ytd-text-inline-expander .ytAttributedStringLinkInheritColor:not( .ytAttributedStringLink ) { color: @text !important; } // Video description YouTube links .ytAttributedStringHighlightTextDecorator { background-color: @surface2 !important; } /* Links */ .ytAttributedStringLinkCallToActionColor { color: @accent; } /* Course Playlist (e.g. https://www.youtube.com/playlist?list=PLZHQObOWTQDNPOjrT6KVlfJuKtYTftqH6) */ .ytwCourseProgressViewModelHostProgressTitle, .ytwCourseProgressViewModelHostProgressSubtitle { color: @text; } .ytwCourseProgressViewModelHostProgressBar { background-color: fade(@white, 20%); .ytwCourseProgressViewModelHostProgressBarFill { background-color: @text; } } .ytwHowThisWasMadeSectionViewModelSectionTitle, .ytwHowThisWasMadeSectionViewModelBodyHeader { color: @text; } .ytwHowThisWasMadeSectionViewModelBodyText { color: @subtext0; } // "Ask" - AI chat .ytVideoDescriptionYouchatSectionViewModelSectionTitle { color: @text; } .ytVideoDescriptionYouchatSectionViewModelSubHeaderText { color: @subtext0; } .ytwYouChatItemViewModelHost { color: @text; } .ytwYouChatChipsDataChip { color: @text; border-color: @surface2; &:hover { background-color: @surface1; } } .chatInputViewModelChatDisclaimer { color: @subtext0; } // Timeline/Transcript .ytwTimelineChapterViewModelTitle, .ytShelfHeaderLayoutTitle { color: @text; } .ytwTranscriptSegmentViewModelHost { color: @subtext0; } .ytwTranscriptSegmentViewModelTimestamp { background-color: @surface2; color: @subtext1; } .ytwTranscriptSegmentViewModelTimestampActive { background-color: @overlay0; color: @text; } // Video Attributes (Music, Games) .videoAttributesSectionViewModelTitle, .ytVideoAttributeViewModelTitle { color: @text; } .ytVideoAttributeViewModelSubtitle, .ytVideoAttributeViewModelSecondarySubtitle { color: @subtext1; } /* Thumbnails */ .ytp-sb-unsubscribe { background-color: @surface2; color: @text; } .ytp-sb-subscribe { background-color: @accent; color: @base; } // Watch progress bar .ytThumbnailOverlayProgressBarHostWatchedProgressBar { background-color: @surface2; } .ytThumbnailOverlayProgressBarHostWatchedProgressBarSegment { background: @accent; } // Watch progress bar (legacy component) ytd-thumbnail-overlay-resume-playback-renderer { background-color: @surface2; #progress.ytd-thumbnail-overlay-resume-playback-renderer { background: @accent; } } /* Panels, popups, tooltips */ .ytp-tooltip-bottom-text { background: fade(@surface0, 90%); color: @text; text-shadow: none; } .ytp-popup { background: fade(@surface0, 90%); text-shadow: none; } .ytp-panel-menu, .ytp-panel-header, .ytp-panel-footer, .ytp-menuitem-label, .ytp-premium-label, .ytp-menuitem-content, .ytp-menuitem-label-count, .ytp-menu-label-secondary, .ytd-menu-title-renderer { color: @text; } .ytp-panel-footer-content-link { color: @accent; } .ytp-panel-back-button { @svg: escape( '' ); background-image: url("data:image/svg+xml,@{svg}"); } .ytp-menuitem[aria-checked="false"] .ytp-menuitem-toggle-checkbox { &::after { background-color: @overlay1; } } .ytp-menuitem[aria-checked="true"] .ytp-menuitem-toggle-checkbox { background-color: @surface2; &::after { background-color: @text; } } .ytp-menuitem { &:not([aria-disabled="true"]):hover { background-color: @surface1; } } /* Video player */ // Shorts and video hover preview progress bars yt-progress-bar { .ytProgressBarLineProgressBarPlayed, .ytProgressBarPlayheadProgressBarPlayheadDot { background: @accent; } .ytProgressBarLineProgressBarHovered, .ytProgressBarLineProgressBarBackground { background: @text; // (background) opacity is already adequately set } } .ytp-cards-button { .ytp-cards-button-icon { use { fill: @black; } path { fill: @white; } } } .ytp-cards-teaser { .ytp-cards-teaser-box { background-color: @surface2; border-bottom-color: @surface2; } .ytp-cards-teaser-text { color: @text; } } .html5-video-player { color: @white; & when (@oled = 0) { background-color: @crust; } .ytp-swatch-background-color, .ytp-play-progress { background: @accent; } .ytp-svg-fill, [fill="#fff"] { fill: @white; } .ytp-volume-slider-handle { &, &::before { background-color: @white; } &::after { background-color: fade(@white, 20%); } } .ytp-time-current, .ytp-time-separator, .ytp-time-duration { color: @white; } .ytp-live-badge { &[disabled]::before { background: @accent; } &::before { background: @overlay0; } } .ytp-button, .ytp-subtitles-button { &[aria-pressed]::after { background-color: @accent; } } /* stats for nerds */ .ytp-sfn { background: fade(@base, 80%); color: @text; } .ytp-autonav-toggle-button { background-color: @surface2; &::after { @svg: escape( '' ); background-image: url("data:image/svg+xml,@{svg}"); background-color: @overlay1; } &[aria-checked="true"] { &::after { @svg: escape( '' ); background-image: url("data:image/svg+xml,@{svg}"); background-color: @white; } } } } /* Video highlight */ ytd-rich-item-renderer.ytd-rich-item-renderer-highlight { background-color: fade(@accent, 10%); box-shadow: fade(@accent, 10%) 0 0 0 10px; } #shorts-container { --yt-spec-static-overlay-text-primary: @white; .YtwFactoidRendererLabel { color: @subtext0; } .YtwFactoidRendererValue { color: @text; } ytd-reel-video-renderer:not([is-watch-while-mode]) { .ytSpecButtonShapeWithLabelLabel { color: @subtext1; } } ytd-reel-video-renderer[is-watch-while-mode] .ytSpecButtonShapeWithLabelLabel { color: @white; } .ytdVolumeControlsMuteIcon { color: @white; } /* Buy super thanks button */ .YtdShortsSuggestedActionStaticHostContainer { background-color: fade(@black, 60%); .YtdShortsSuggestedActionStaticHostLeadingIcon, .YtdShortsSuggestedActionStaticHostPrimaryText { color: @text; } } } // Video/thumbnail renderer overlayed buttons .ytBadgeShapeThumbnailDefaultRedesign, // Timestamp // Play Next .yt-spec-button-shape-next--overlay-dark.yt-spec-button-shape-next--tonal[style="background-color: rgba(0, 0, 0, 0.3);"], .ytdVolumeControlsBackgroundScrim, // Shorts Volume Slider .ytInlinePlayerControlsTopRightControlsCircleButton // Homepage { background: fade(@black, 60%) !important; color: @white; } .yt-spec-button-shape-next--overlay-dark.yt-spec-button-shape-next--filled { background: @accent; color: @base; } /* Video previews */ // Background (on hover) .ytSpecTouchFeedbackShapeHoverEffect { background-color: @surface0 !important; } // Title .ytLockupMetadataViewModelTitle { color: @text !important; } // Details .ytLockupMetadataViewModelMetadata { color: @subtext0 !important; } // Badges (e.g. "CC", "New") .ytBadgeShapeDefault { color: @subtext0; background: @surface1; &.ytBadgeShapeModern { background: none; } } // "Fundraiser" .ytBadgeShapeCommerce { color: @green; } // "Live" .ytBadgeShapeThumbnailLive { background: @accent; color: @base; } /* Shorts titles and views on homepage */ .shortsLockupViewModelHostOutsideMetadataEndpoint { color: @text; } .shortsLockupViewModelHostOutsideMetadataSubhead { color: @subtext0; } /* Buy super thanks bar */ #progressContainer.tp-yt-paper-progress { background-color: @mantle; } #comment-chip-container.yt-pdg-comment-chip-renderer, .slider-knob-inner.tp-yt-paper-slider { background: @accent; } #primaryProgress.tp-yt-paper-progress { background: linear-gradient(139deg, @peach, @maroon, @red, @pink); } #container.ytd-pdg-comment-preview-renderer { background-color: @mantle; } #comment-chip-price.yt-pdg-comment-chip-renderer, yt-icon.yt-pdg-comment-chip-renderer { color: @crust; } /* Avatar */ .ytSpecAvatarShapeLiveRing::after { background: @accent !important; } .ytSpecAvatarShapeLiveBadge { background-color: @accent; } .ytSpecAvatarShapeLiveBadgeText { color: @base; } /* Channel pages */ // Channel name .ytPageHeaderViewModelHost { .ytPageHeaderViewModelTitle { color: @text; } // Subscribers and video statistics .ytPageHeaderViewModelContentMetadata { color: @subtext0; } // Handle and verified checkmark [style$="color: rgb(255, 255, 255);"] { color: @text !important; } } // Channel bio .ytTruncatedTextHost { color: @subtext0; } // "...More", "and X more links" .ytAttributionViewModelSuffix .ytAttributedStringLinkCallToActionColor, .ytTruncatedTextAbsoluteButton { color: @text; } // Channel tabs .ytTabShapeTab { color: @subtext1; } .ytTabShapeTabSelected { color: @text; } .tabGroupShapeSlider { background-color: @text; } .ytTabShapeHost:hover .ytTabShapeTabBar { background-color: @subtext1; } /* Components */ /* Menus and context sheets */ .ytContextualSheetLayoutHost, ytd-menu-popup-renderer { background-color: @mantle; } .ytListItemViewModelTappable:hover { background-color: @surface0; } .ytPanelHeaderViewModelTitle, .ytListItemViewModelTitle, .ytListItemViewModelAccessory { color: @text; } .ytListItemViewModelSubtitle { color: @subtext1; } /* Dialogs */ .ytSpecDialogLayoutHost { background-color: @mantle; .ytDialogHeaderViewModelText { color: @text; } } /* Dropdowns */ .ytDropdownViewModelTitle { color: @text; } .ytDropdownViewModelLabel { color: @subtext0; } .ytDropdownViewModelSupportError { color: @red; } .ytDropdownViewModelDropdownContainerErrorBorder { border-color: @red; } .ytStandardsTextareaShapeTextareaContainerOutline:focus-within { border-color: @text; } /* Toggles/Switches */ .ytSwitchShapeTrack { background-color: @surface2; } .ytSwitchShapeKnob { background-color: @mantle; } .ytSwitchShapeTrackActive { background-color: @accent; } /* Textareas */ .ytStandardsTextareaShapeTextarea { color: @text; } .ytStandardsTextareaShapePlaceholder { color: @subtext0; } .ytStandardsTextareaShapeTextarea::placeholder { color: transparent !important; // defaults important overrides this } /* Comments */ .ytSubThreadConnection, .ytSubThreadContinuation { border-left-color: @surface1; } .ytSubThreadConnection { border-bottom-color: @surface1; } .ytSubThreadHovered > .ytSubThreadThreadline .ytSubThreadConnection, .ytSubThreadHovered > .ytSubThreadThreadline .ytSubThreadContinuation { border-left-color: @overlay0; } .ytSubThreadHovered > .ytSubThreadThreadline .ytSubThreadConnection { border-bottom-color: @overlay0; } /* Profile Card */ // (Click a user's profile picture in the comments to view.) .ytProfileCardViewModelHost { background-color: @mantle; // Name and handle .ytProfileIdentityInfoViewModelChannelName, .ytProfileIdentityInfoViewModelMetadataHandleWithBoldFont { color: @text; } // Verification badge .ytProfileIdentityInfoViewModelBadge { filter: @text-filter; } // Statistics .ytProfileIdentityInfoViewModelMetadataContent { color: @subtext0; } // Subsection (e.g. "On this channel") .ytProfileInfoViewModelSectionTitle { color: @text; } .ytProfileInfoViewModelSectionSubtitle { color: @subtext1; } .ytProfileInfoViewModelSectionHeartIcon { filter: @subtext1-filter; } // Subsection - "Recent comments on this channel" .ytCommentInteractionViewModelVideoTitle { color: @text; } .ytCommentInteractionViewModelCommentContent { color: @subtext1; } } /* Live chat replay */ .ytVideoMetadataCarouselViewModelHost, .YtVideoMetadataCarouselViewModelHost { background-color: @surface0; .ytCarouselTitleViewModelTitle, .YtCarouselTitleViewModelTitle, .yt-core-attributed-string, .yt-icon-shape { color: @text; } .ytTextCarouselItemViewModelHost { color: @subtext1; } } /* Category tag pills */ .ytChipShapeInactive { background-color: @surface0; color: @text; } .ytChipShapeActive { background-color: @accent; color: @base; } } } @-moz-document url-prefix("https://studio.youtube.com") { :root[dark] { #catppuccin(@darkFlavor); } :root { #catppuccin(@lightFlavor); } #catppuccin(@flavor) { #lib.palette(); [src="https://www.gstatic.com/youtube/img/creator/yt_studio_logo_white.svg"] { @svg: escape( '' ); content: url("data:image/svg+xml,@{svg}"); } &, html, html[dark], html[dark][dark], &[dark], &[light], [light], html[light], html[light][light] { --yt-spec-black-pure-alpha-80: (null); --yt-spec-black-pure-alpha-60: (null); --yt-spec-black-1-alpha-98: (null); --yt-spec-black-1-alpha-95: (null); --iron-icon-fill-color: unset; --yt-spec-text-primary: @text; --ytcp-text-primary: @text; --ytcp-text-primary-inverse: @base; --ytcp-static-overlay-text-primary-inverse: @base; --ytcp-wordmark-text: @text; --ytcp-text-secondary: @subtext0; --ytcp-text-disabled: @subtext1; --ytcp-overlay-text-primary: @overlay2; --ytcp-general-background-a: @base; --yt-spec-base-background: @base; --yt-spec-black-3: @base; --yt-spec-brand-background-solid: @mantle; --ytcp-brand-background-solid: @mantle; --yt-spec-raised-background: @mantle; --ytcp-general-background-b: @mantle; --ytcp-analytics-reach-background: @mantle; --yt-spec-black-2: @mantle; --ytcp-general-background-c: @crust; --ytcp-menu-background: @surface0; --ytcp-container-border-color: @surface0; --ytcp-container-hovered-border-color: @surface0; --ytcp-line-divider-solid: @surface0; --ytcp-container-border-color-inverse: @subtext0; --ytcp-line-divider-solid-inverse: @subtext0; --ytcp-call-to-action: @accent; --ytcp-call-to-action-inverse: @mantle; --ytcp-call-to-action-raised-background: @accent; --yt-spec-brand-button-background: @accent; --ytcp-call-to-action-raised-disabled: @surface2; --ytcp-call-to-action-raised-disabled-background: @overlay2; --ytcp-call-to-action-raised-background-inverse: @base; --ytcp-call-to-action-raised-disabled-inverse: @surface2; --ytcp-call-to-action-raised-disabled-background-inverse: @overlay2; --yt-spec-brand-background-primary: @surface0; --yt-compact-link-icon-color: @overlay2; --ytcp-icon-active: @accent; --ytcp-icon-inactive: @overlay2; --ytcp-icon-disabled: @overlay0; --ytcp-icon-active-inverse: @overlay1; --ytcp-icon-disabled-inverse: @subtext1; --ytcp-error-red: @red; --ytcp-badge-red: @red; --ytcp-error-red-inverse: @red; --ytcp-themed-red-inverse: @red; --ytcp-themed-red: @accent; --ytcp-themed-blue: @accent; --ytcp-badge-blue: fade(@accent, 30%); --ytcp-badge-blue-solid: @blue; --ytcp-themed-blue-inverse: @blue; --ytcp-themed-green: @green; --ytmus-genre-primary-melon: @green; --ytcp-themed-green-inverse: @green; --ytcp-analytics-pine: @green; --ytcp-analytics-pine-inverse: @green; --ytcp-analytics-parrot: @green; --ytcp-themed-yellow: @peach; --ytmus-genre-primary-gold: @peach; --ytcp-yellow-inverse: @peach; --ytcp-badge-yellow: @peach; --ytcp-analytics-yellow: @peach; --ytcp-analytics-apricot: @peach; --ytcp-suggested-action: @teal; --ytcp-analytics-overview: @teal; --ytcp-analytics-revenue: @teal; --ytcp-analytics-default-secondary: @teal; --ytcp-analytics-royal-blue: @lavender; --ytcp-analytics-reach: @lavender; --ytcp-analytics-audience: @lavender; --ytcp-analytics-engagement: @pink; --ytcp-analytics-revenue-secondary: @pink; --ytcp-analytics-bubblegum: @flamingo; --ytmus-genre-primary-ruby: @flamingo; --ytmus-genre-primary-salmon: @mauve; --ytmus-genre-primary-orange: @maroon; --ytmus-genre-primary-sky: @sky; --ytmus-genre-primary-sky-inverse: @sky; --yt-spec-badge-chip-background: @surface1; --ytcp-focus-inverse: @accent; --ytcp-focus: @accent; --ytcp-selected-item: @accent; --ytcp-hover-item: @overlay2; --ytcp-chip-active-focus: @accent; --ytcp-playhead: @overlay2; --ytcp-playhead-inverse: @overlay2; } ytcp-button.destructive.ytls-error-dialog { color: @base; } yt-formatted-string.ytls-error-dialog, tp-yt-iron-icon.ytls-error-dialog { color: @text; } } } @-moz-document domain("m.youtube.com") { html[darker-dark-theme] { #catppuccin(@darkFlavor); } html { #catppuccin(@lightFlavor); } #catppuccin(@flavor) { #lib.palette(); background-color: @base !important; color: @text !important; /* Ambient mode */ #cinematics { mix-blend-mode: lighten; } .mobile-topbar-header[data-mode="watch"], ytm-mobile-topbar-renderer:not([ambient-topbar]) { background: @base; } .mobile-topbar-header[data-mode="watch"] .mobile-topbar-logo, .mobile-topbar-header[data-mode="watch"] .mobile-topbar-title, .mobile-topbar-header[data-mode="watch"] .mobile-topbar-header-content { color: @text; } .yt-spec-bottom-sheet-layout__bottom-sheet-renderer-container, .modern-styling { background: @surface0; } .yt-spec-bottom-sheet-layout__bottom-sheet-layout-header-wrapper { border-bottom-color: @surface0; } .yt-spec-bottom-sheet-layout__bottom-sheet-content { color: @text; } /* Comment box */ .engagement-panel-container { background: @mantle; } /* Bottom bar */ ytm-pivot-bar-renderer { background: @mantle; color: @text; border-top-color: @surface0; } /* Chips */ .chip-bar { background-color: @base; } [chip-style*="STYLE_"] { .chip-container { color: @text; background-color: @surface0; } &.selected .chip-container { color: @base; background-color: @accent; } } /* Buttons */ .yt-spec-touch-feedback-shape--touch-response { .yt-spec-touch-feedback-shape__fill { background-color: @text; } .yt-spec-touch-feedback-shape__stroke { border-color: @surface1; } } .yt-spec-touch-feedback-shape--overlay-touch-response-inverse .yt-spec-touch-feedback-shape__fill { background-color: @accent; } .yt-spec-touch-feedback-shape--overlay-touch-response .yt-spec-touch-feedback-shape__fill { background-color: @text; } } }