/* ==UserStyle== @name go.dev Catppuccin @namespace github.com/catppuccin/userstyles/styles/go.dev @homepageURL https://github.com/catppuccin/userstyles/tree/main/styles/go.dev @version 2026.01.06 @updateURL https://github.com/catppuccin/userstyles/raw/main/styles/go.dev/catppuccin.user.less @supportURL https://github.com/catppuccin/userstyles/issues?q=is%3Aopen+is%3Aissue+label%3Ago.dev @description Soothing pastel theme for go.dev @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://userstyles.catppuccin.com/lib/lib.less"; @-moz-document domain("go.dev") { :root[data-theme="auto"], :root:not([data-theme]) { @media (prefers-color-scheme: light) { #catppuccin(@lightFlavor); } @media (prefers-color-scheme: dark) { #catppuccin(@darkFlavor); } } :root[data-theme="dark"] { #catppuccin(@darkFlavor); } :root[data-theme="light"] { #catppuccin(@lightFlavor); } #catppuccin(@flavor) { #lib.palette(); #lib.defaults(); background-color: @base; --abbey: @mantle; --black-1: @crust; --color-border: @surface2; --color-background: @base; --color-background-accented: @mantle; --color-background-banner: @mantle; --color-background-card-footer: @crust; --color-background-code: @surface0; // Code Snippets --color-background-info: @surface1; --color-background-alert: fade(@red, 40%); --color-background-inverted: @crust; --color-background-logo: @text; --color-background-playground-input: @mantle; --color-brand-primary: @accent; // Affects most Go-Color Elements --color-button: @accent; --color-button-accented: @accent; --color-button-text: @crust; --color-button-text-disabled: @subtext0; --color-bright-text-link: @accent; --color-text: @text; --color-text-link: @accent; --color-text-subtle: @subtext1; --focus-box-shadow: 0 0 0.0625rem 0.0625rem @accent; // Only modifies color; --gray-2: @surface0; --gray-3: @text; --gray-6: @crust; --pink: @red; --turq-dark: @accent; --white: @text; --border-code: 0.0625rem @surface2 solid; .btn { background: @accent; color: @crust; } // /dl page in go.dev .Downloads { div.filename img { @svg: escape( '' ); content: url("data:image/svg+xml,@{svg}"); } table.downloadtable { --color-background-accented: @surface0; } } // Main Page Footer & Pkg.go Footer .Footer, .go-Footer { background-color: @mantle; img.Footer-gopher, img.go-Footer-gopher { @svg: escape( '' ); content: url("data:image/svg+xml,@{svg}"); } img.go-Footer-googleLogoImg, img.Footer-googleLogoImg { @svg: escape( '' ); content: url("data:image/svg+xml,@{svg}"); } } // Main Page Footer Get Started .GettingStartedGo-primaryCta { color: @crust; } // Main Page Carousel .GoCarousel button { background-color: @text; color: @crust; } // Download button in /learn .Learn-heroAction { background-color: @accent; .js-downloadBtn { color: @crust; } } // Active indicator in /learn .LearnNav .active svg circle { fill: @accent; } .LeftNav a.active, .LeftNav a:hover { background-color: fade(@accent, 30%); img { @svg: escape( '' ); content: url("data:image/svg+xml,@{svg}"); } } // /solutions/use-cases & Why Use Go / 4 icons .MarketingCardList, .WhyGo-reasons .WhyGo-reasonIcon { img.LightMode-img[alt="cloud icon"], img.DarkMode-img[alt="cloud icon"], img[alt="Sphere"] { @svg: escape( '' ); content: url("data:image/svg+xml,@{svg}"); } img.LightMode-img[alt="CLI icon"], img.DarkMode-img[alt="CLI icon"], img[alt="Command Line"] { @svg: escape( '' ); content: url("data:image/svg+xml,@{svg}"); } img.LightMode-img[alt="web dev icon"], img.DarkMode-img[alt="web dev icon"], img[alt="Code"] { @svg: escape( '' ); content: url("data:image/svg+xml,@{svg}"); } img.LightMode-img[alt="ops icon"], img.DarkMode-img[alt="ops icon"], img[alt="Sphere"][src="/images/icons/gear-dark.svg"], img[alt="Sphere"][src="/images/icons/gear.svg"] { @svg: escape( '' ); content: url("data:image/svg+xml,@{svg}"); } } // Mobile Nav Drawer .NavigationDrawer { .NavigationDrawer-header { border-bottom-color: @surface2; } // Drawer Selection .NavigationDrawer-listItem--active { background-color: fade(@accent, 30%); } } // /play .PlayPage { .lines div { color: @overlay1; // Line numbers } } // Run Button for Code Snippet .Playground-runButton { border-color: @accent; } // Go Main Header .Site-header, .go-Header { background: @crust; .Header-menuItem--active a, .go-Header-menuItem--active a { border-bottom-color: @accent; } // Mobile Burger Icon button.Header-navOpen--white, button.go-Header-navOpen--white { @svg: escape( '' ); background-image: url("data:image/svg+xml,@{svg}"); filter: none; } } // 'What's Possible With Go' .WhyGo-reasons { .WhyGo-reasonPackagesHeader img { @svg: escape( '' ); content: url("data:image/svg+xml,@{svg}"); } .WhyGo-reasonShowMoreLink a { color: @crust; } img.WhyGo-reasonShowMoreImg { @svg: escape( '' ); content: url("data:image/svg+xml,@{svg}"); } } // /doc/install icon img.CopyPaste-icon { @svg: escape( '' ); content: url("data:image/svg+xml,@{svg}"); } // Go Main Logo .Site-header .Header-logo, .NavigationDrawer-logo, .go-Header .go-Header-logo, .go-NavigationDrawer .go-NavigationDrawer-logo, .top-bar img.gopherlogo, .go-Main-headerLogo, .SearchResults-headerLogo img[alt="Go"] { @svg: escape( '' ); content: url("data:image/svg+xml,@{svg}"); } .SiteBreadcrumb .BreadcrumbNav-li::after { @svg: escape( '' ); background-image: url("data:image/svg+xml,@{svg}"); } // Menu Active Selector img.TabSection-underline { @svg: escape( '' ); content: url("data:image/svg+xml,@{svg}"); } // Code Snippet Highlights pre { .comment { color: @overlay2; } ins { color: @blue; } } // Companies in Main Page Contrast & when (@flavor = latte) { .WhoUsesCaseStudyList-caseStudyLink { background-color: @surface0; } } } } @-moz-document domain("pkg.go.dev") { :root[data-theme="auto"], :root:not([data-theme]) { @media (prefers-color-scheme: light) { #catppuccin(@lightFlavor); } @media (prefers-color-scheme: dark) { #catppuccin(@darkFlavor); } } :root[data-theme="dark"] { #catppuccin(@darkFlavor); } :root[data-theme="light"] { #catppuccin(@lightFlavor); } #catppuccin(@flavor) { #lib.palette(); // Pkg.go Carousel .go-Carousel { .go-Carousel-nextSlide img { @svg: escape( '' ); content: url("data:image/svg+xml,@{svg}"); filter: none; } .go-Carousel-prevSlide img { @svg: escape( '' ); content: url("data:image/svg+xml,@{svg}"); filter: none; } } // Alert Chips .go-Chip--alert { color: @crust; } // Pkg.go Header .go-Header { .go-Header-submenu { border-color: @accent; } // Triangle Icon Accented .go-Header-menuItem:hover a img.go-Icon { filter: @accent-filter !important; } } // Icons .go-Icon { &:not(.go-Icon--accented) { filter: @text-filter; } &.go-Icon--accented { filter: @accent-filter; } } // Pkg.go Fixed Header .go-Main-header[data-raised="true"] { background-color: @crust; } // Pkg.go Package Documentation Mobile Dropdown Icon .go-Main-navMobile label.go-Label::before { @svg: escape( '' ); background-image: url("data:image/svg+xml,@{svg}"); } // Pkg.go Mobile Navigation Drawer .go-NavigationDrawer { .go-NavigationDrawer-header { border-bottom-color: @overlay2; } .go-NavigationDrawer-listItem--active { background-color: fade(@accent, 30%); } } //Pkg.go Search Bar .go-SearchForm { input[type="search"]::-webkit-search-cancel-button { display: none; } } .go-Footer { background-color: @crust; } // Pkg.go Shortcut Helpers .go-ShortcutKey::after { background-color: @text; } // External Link Icon .Homepage-helpLink, .UnitFiles-titleLink, a[href="https://www.meetup.com/pro/go"], a[href="https://github.com/golang/go/wiki/Conferences"] { @svg: escape( '' ); img, img.go-Icon, img.go-Icon:not(.go-Icon--accented) { content: url("data:image/svg+xml,@{svg}"); filter: none; } a::after { background-image: url("data:image/svg+xml,@{svg}"); } } // 'Jump to' Dialog - Desktop .JumpDialog { .JumpDialog-active { color: @crust; } } // Pkg.go Package Search Results .SearchResults-header { input[type="search"]::-webkit-search-cancel-button { display: none; } } // Search Icon in pkg.go - Accented form.Homepage-search--symbol::before { @svg: escape( '' ); background-image: url("data:image/svg+xml,@{svg}"); } // Pkg.go Package Details Section .UnitMeta { .UnitMeta-links { img.depsdev-Icon { @svg: escape( '' ); content: url("data:image/svg+xml,@{svg}"); } } } // Deprecated Chip span.Documentation-deprecatedTag { color: @crust; } // Code Snippet Highlights pre { .comment { color: @overlay2; } ins { color: @blue; } } } } @-moz-document url-prefix("https://go.dev/tour") { :root[data-theme="auto"], :root:not([data-theme]) { @media (prefers-color-scheme: light) { #catppuccin(@lightFlavor); } @media (prefers-color-scheme: dark) { #catppuccin(@darkFlavor); } } :root[data-theme="dark"] { #catppuccin(@darkFlavor); } :root[data-theme="light"] { #catppuccin(@lightFlavor); } #catppuccin(@flavor) { #lib.palette(); #editor-container { #left-side { .slide-content { background-color: @base; a { color: @accent; } code { background-color: @accent !important; color: @crust; } h2, li, p { color: @text; } pre { background-color: @mantle; color: @text; } } .module-bar { background-color: @mantle; color: @text; a { color: @accent; } } } #right-side { background-color: @base; #explorer { background-color: @mantle; } #file-editor { .CodeMirror { background-color: @base; .CodeMirror-lines { background-color: @base; color: @text; .CodeMirror-linenumber { color: @overlay1; } span.cm-atom { color: @blue; } span.cm-comment { color: @peach; } span.cm-keyword { color: @mauve; } span.cm-number { color: @green; } span.cm-string { color: @red; } span.cm-variable { color: @text; } } } .CodeMirror-gutters { background-color: @mantle; border-right-color: @surface2; } } #file-menu { background-color: @mantle; } .output { background-color: @base; span.stdout { color: @subtext0; } span.system { color: @text; } } a { background-color: @text; color: @crust; } a#run { background-color: @accent; } pre.info { background-color: @surface0 !important; } } div[vertical-slide], div[horizontal-slide] { background-color: @surface2; } } .toc { background-color: @base; .toc-page.ng-scope { background-color: @mantle; color: @text; } .toc-module.ng-scope { background-color: @mantle; span.ng-binding { background-color: @base; color: @accent; } .toc-lesson span.ng-binding { background-color: @mantle; color: @text; } } } .top-bar { background-color: @crust; color: @text; span.nav { svg { fill: @text; } } } .wrapper.ng-scope { background-color: @base; .container { background-color: @base; .lesson.ng-scope { background-color: @mantle; } h1, p { color: @text; } a { color: @accent; } } } } }