/* ==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;
}
}
}
}
}