/* ==UserStyle== @name homepage Catppuccin @namespace github.com/Sebagabones/userstyles/styles/homepage @homepageURL https://github.com/Sebagabones/userstyles/tree/main/styles/homepage @version 2025.09.06 @updateURL https://github.com/Sebagabones/userstyles/raw/main/styles/homepage/catppuccin.user.less @supportURL https://github.com/Sebagabones/userstyles/issues?q=is%3Aopen+is%3Aissue+label%3Ahomepage @description Soothing pastel theme for homepage @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("homepage.example.com"), regexp("https?://homepage\\..*") { :root { @media (prefers-color-scheme: light) { #catppuccin(@lightFlavor); } @media (prefers-color-scheme: dark) { #catppuccin(@darkFlavor); } } #catppuccin(@flavor) { #lib.palette(); #lib.defaults(); //Page Level Features :is(.dark .dark\:bg-theme-800) { --tw-bg-opacity: 1; background-color: @base; //background Color } .dark { --bg-color: @base; --scrollbar-thumb: @accent; //ScrollBar --scrollbar-track: @mantle; //Scrollbar base } //Information Widget Features :is(.dark .dark\:bg-theme-200\/20) { background-color: @overlay0; //Information Widgets Progress Bar Background } :is(.dark .dark\:bg-theme-200\/50) { background-color: @text; //Information Widgets Progress Bar Value } .border-theme-300 { --tw-border-opacity: 1; border-color: @surface0 !important; //Search bar Border (important is needed so top separator doesn't override) } :is(.dark .dark\:bg-white\/10) { background-color: @base; //Search bar background } :is(.dark .dark\:focus\:ring-white\/50:focus) { --tw-ring-color: @text; //Search bar Focus Border } :is(.dark .dark\:text-white) { --tw-text-opacity: 1; color: @accent; //Search bar Text } // Services Level Features :is(.dark .dark\:bg-white\/5) { background-color: @mantle; //Box Background } :is(.dark .dark\:shadow-theme-900\/20) { --tw-shadow-color: @mantle; //Box Shadows --tw-shadow: var(--tw-shadow-colored); } :is(.dark .dark\:hover\:bg-white\/10:hover) { background-color: @surface1; //Box Hover Color } :is(.dark .dark\:bg-theme-900\/50) { background-color: @crust; //Ping & Docker Stats Box Background } :is(.dark .dark\:bg-theme-900\/20) { background-color: @surface0; //Stats Background Color } :is(.dark .dark\:bg-theme-900\/40) { background-color: @accent; //Progress Bar } :is(.dark .dark\:text-theme-300) { color: @text; //Section Names + Container Description } // api error .text-theme-900 { --tw-border-opacity: 1; color: @base; // api error text color } .bg-rose-900\/80 { --tw-border-opacity: 1; background-color: @red; // api error box color } // :is(.dark .dark\:text-theme-400) { --tw-border-opacity: 1; color: @text; // update and version text } .text-white { color: @subtext1; // search bar icon } :is(.dark .dark\:border-theme-200\/50) { --tw-border-opacity: 1; border-color: @surface2; // top separator } :is(.dark .dark\:hover\:text-theme-300:hover) { --tw-text-opacity: 1; color: darken( @accent, 10% ); //Section Names + Container Description Hover Color } :is(.dark .dark\:text-theme-200) { --tw-text-opacity: 1; color: @text; // Container Names + Stats } .text-emerald-500\/80 { color: lighten( @green, 10% ); //Ping & Docker Status Text (Running + Healthy) } .text-orange-400\/50 { color: lighten(@yellow, 10%); //Docker Status Text (Unhealthy) } .text-rose-500\/80 { color: darken(@red, 10%); //Ping Status Text (Bad) } } }