/* ==UserStyle== @name Vercel/Next.js Catppuccin @namespace github.com/Sebagabones/userstyles/styles/vercel @homepageURL https://github.com/Sebagabones/userstyles/tree/main/styles/vercel @version 2026.02.25 @updateURL https://github.com/Sebagabones/userstyles/raw/main/styles/vercel/catppuccin.user.less @supportURL https://github.com/Sebagabones/userstyles/issues?q=is%3Aopen+is%3Aissue+label%3Avercel @description Soothing pastel theme for Vercel and Next.js @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"] ==/UserStyle== */ @import "https://raw.githubusercontent.com/Sebagabones/userstyles/refs/heads/main/lib/lib.less"; @-moz-document domain("vercel.com"), domain("nextjs.org") { @import url("https://prismjs.catppuccin.com/variables.important.css"); :root.dark-theme { #catppuccin(@darkFlavor); } :root.light-theme { #catppuccin(@lightFlavor); } #catppuccin(@flavor) { #lib.palette(); #lib.defaults(); #lib.css-variables(); --geist-foreground: @text; --geist-background: @mantle; --accents-1: @base; --accents-2: @surface0; --accents-3: @surface1; --accents-4: @surface2; --accents-5: @overlay0; --accents-6: @overlay1; --accents-7: @overlay2; --accents-8: @subtext0; --geist-link-color: @accent; --geist-selection: @subtext0; --geist-success: @accent; --geist-error: @red; --geist-cyan: @teal; --ds-background-100: @base; --ds-background-200: @mantle; --ds-gray-100: @mantle; --ds-gray-200: @surface0; --ds-gray-300: @surface1; --ds-gray-400: @surface1; --ds-gray-600: @subtext0; --ds-gray-700: @subtext1; --ds-gray-800: @subtext1; --ds-gray-900: @subtext0; --ds-gray-900-value: #lib.rgbify(@subtext0)[]; --ds-gray-1000: @text; --ds-gray-1000-value: #lib.rgbify(@text)[]; --ds-gray-alpha-100: fade(@text, 6%); --ds-gray-alpha-200: fade(@text, 9%); --ds-gray-alpha-400: @surface0; --ds-gray-alpha-900: fade(@text, 61%); --themed-hover-bg: @subtext1; --ds-red-400: @red; --ds-red-800: @red; --ds-red-900: lighten(@red, 5%); --ds-blue-200: fade(@accent, 30%); --ds-blue-300: fade(@accent, 40%); --ds-blue-400: fade(@accent, 50%); --ds-blue-700: @accent; --ds-blue-900: @accent; --tw-gradient-top: transparent; svg { --geist-stroke: var(--geist-background) !important; } .geist-disabled img, .geist-disabled svg { filter: none; } .styled-scrollbar { scrollbar-color: @accent transparent; } .dark\:from-black, .from-white { --tw-gradient-from: @mantle; } .shadow, .shadow-md, .shadow-sm { box-shadow: none !important; } .card-grid_card__S85BZ { background: linear-gradient(180deg, @base 0%, @crust 100%); &:hover { background: linear-gradient(180deg, @base 0%, @mantle 100%); } } [class*="fieldset_footer"] { background-color: @base; } } } @-moz-document domain("nextjs.org") { :root.dark-theme { #catppuccin(@darkFlavor); } :root.light-theme { #catppuccin(@lightFlavor); } #catppuccin(@flavor) { #lib.palette(); article { :not(h1, h2, h3, h4) > a { color: @accent; } a:hover { color: darken(@accent, 5%); } } nav { /* Vertical line to the left of links */ a > div.bg-blue-600 { background-color: @accent; } } button[role="combobox"], [data-radix-popper-content-wrapper] { --ds-blue-400: @base; --ds-purple-400: @base; /* App Router icon */ --ds-blue-700: @blue; /* Pages Router icon */ --ds-purple-700: @mauve; } /* Syntax higlighting */ [class*="code-block_pre"] { --shiki-token-punctuation: @overlay2; --shiki-token-constant: @peach; --shiki-token-string: @green; --shiki-token-string-expression: @green; --shiki-token-comment: @overlay2; --shiki-token-keyword: @mauve; --shiki-token-parameter: @maroon; --shiki-token-function: @blue; } /* Footer social media icons */ img[src="/icons/github.svg"] { @svg: escape( '' ); content: url("data:image/svg+xml,@{svg}"); } img[src="/icons/x.svg"] { @svg: escape( '' ); content: url("data:image/svg+xml,@{svg}"); } .group:hover .dark\:group-hover\:bg-white { background-color: @subtext1; } .group:hover .dark\:group-hover\:text-black { color: @crust; } [data-docs-container] code:not(pre code), [data-docs-table-of-contents] code:not(pre code) { border-color: @surface0 !important; background-color: @mantle !important; } td a { color: @accent; } .animated-optimizations_window__CjM85 { background: @mantle !important; } .features_card__xYla9, .foundation_root__wm0ez, .foundation_card__v7VKB { background: @base; } .foundation_cpu__ciXpm { background: @mantle; } .header_header__zJOD0 { background: @base; } .mute, .subtitle { color: @subtext0; } .mobile-menu_mobileMenu__xqbOP a.mobile-menu_selected__G55UL { color: var(--geist-background); } .dark-theme .dark\:bg-black\/50 { background-color: var(--geist-background); } .gradient, .gradient-text { --text-gradient: @text; } .bg-background-200, .bg-vercel-100 { background-color: @mantle; } .guides_book__j9vP8 { background: @base !important; } .guides_bind__9COxI { background: @overlay0 !important; } .bg-gray-50 { background-color: @mantle; } } }