/* ==UserStyle== @name Lemmy Catppuccin @namespace github.com/Sebagabones/userstyles/styles/lemmy @homepageURL https://github.com/Sebagabones/userstyles/tree/main/styles/lemmy @version 2025.09.06 @updateURL https://github.com/Sebagabones/userstyles/raw/main/styles/lemmy/catppuccin.user.less @supportURL https://github.com/Sebagabones/userstyles/issues?q=is%3Aopen+is%3Aissue+label%3Alemmy @description Soothing pastel theme for Lemmy @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("lemmy.ml"), domain("lemmy.world") { :root { @media (prefers-color-scheme: light) { #catppuccin(@lightFlavor); } @media (prefers-color-scheme: dark) { #catppuccin(@darkFlavor); } } #catppuccin(@flavor) { #lib.palette(); #lib.defaults(); [data-bs-theme="dark"] { --bs-body-color: @text; --bs-body-bg: @base; --bs-emphasis-color: @subtext1; --bs-secondary-color: @subtext0; --bs-secondary-bg: @mantle; --bs-tertiary-color: @crust; --bs-tertiary-bg: @crust; --bs-primary-text-emphasis: @overlay0; --bs-secondary-text-emphasis: @overlay1; --bs-success-text-emphasis: @green; --bs-info-text-emphasis: @sky; --bs-warning-text-emphasis: @yellow; --bs-danger-text-emphasis: @red; --bs-light-text-emphasis: @overlay2; --bs-dark-text-emphasis: @overlay2; --bs-primary-bg-subtle: @base; --bs-secondary-bg-subtle: @mantle; --bs-success-bg-subtle: @green; --bs-info-bg-subtle: @accent; --bs-warning-bg-subtle: @yellow; --bs-danger-bg-subtle: @red; --bs-light-bg-subtle: @base; --bs-dark-bg-subtle: @base; --bs-primary-border-subtle: @accent; --bs-secondary-border-subtle: @accent; --bs-success-border-subtle: @green; --bs-info-border-subtle: @accent; --bs-warning-border-subtle: @yellow; --bs-danger-border-subtle: @red; --bs-light-border-subtle: @crust; --bs-dark-border-subtle: @crust; --bs-heading-color: @text; --bs-card-border-color: @crust; --bs-link-color: @blue; --bs-link-hover-color: @maroon; --bs-code-color: @lavender; --bs-highlight-color: @accent; --bs-highlight-bg: @mantle; --bs-border-color: @crust; --bs-form-valid-color: @green; --bs-form-valid-border-color: @green; --bs-form-invalid-color: @red; --bs-form-invalid-border-color: @red; --bs-dark-rgb: @accent; --bs-btn-bg: @base; } body { color: @text; background-color: @base; } .nav-link { color: @accent; } .card { --bs-card-cap-bg: @mantle; --bs-card-title-color: @text; --bs-card-subtitle-color: @subtext1; --bs-card-color: @text; --bs-card-cap-color: @mantle; --bs-card-bg: @crust; } .form-control { color: @text; background-color: @crust; border-color: @crust; } .btn-secondary { --bs-btn-color: @text; --bs-btn-bg: @base; --bs-btn-border-color: @overlay1; --bs-btn-hover-color: @accent; --bs-btn-hover-bg: @crust; --bs-btn-hover-border-color: @overlay2; --bs-btn-active-color: @text; --bs-btn-active-bg: @accent; --bs-btn-active-border-color: @crust; --bs-btn-active-shadow: inset 0 3px 5px @crust; --bs-btn-disabled-color: @red; --bs-btn-disabled-bg: @crust; --bs-btn-disabled-border-color: @mantle; } .table > :not(caption) > * > * { color: @text; background-color: @mantle; } .dropdown-menu-dark { --bs-dropdown-color: @text; --bs-dropdown-bg: @crust; --bs-dropdown-border-color: @mantle; --bs-dropdown-box-shadow: @mantle; --bs-dropdown-link-color: @blue; --bs-dropdown-link-hover-color: @accent; --bs-dropdown-divider-bg: @overlay0; --bs-dropdown-link-hover-bg: @crust; --bs-dropdown-link-active-color: @accent; --bs-dropdown-link-active-bg: @mantle; --bs-dropdown-link-disabled-color: @red; --bs-dropdown-header-color: @text; } .form-select { color: @text; background-color: @mantle; border-color: @crust; } .btn-outline-secondary { --bs-btn-color: @text; --bs-btn-border-color: @mantle; --bs-btn-hover-color: @accent; --bs-btn-hover-bg: @crust; --bs-btn-hover-border-color: @overlay0; --bs-btn-active-color: @accent; --bs-btn-active-bg: @crust; --bs-btn-active-border-color: @crust; --bs-btn-active-shadow: inset 0 3px 5px @crust; --bs-btn-disabled-color: @red; --bs-btn-disabled-border-color: @mantle; } .nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link { color: @accent; background-color: @crust; border-color: @mantle; } .dropdown-item { color: @text; background-color: @crust; } .dropdown-menu { --bs-dropdown-color: @text; --bs-dropdown-bg: @crust; --bs-dropdown-border-color: @mantle; --bs-dropdown-box-shadow: @mantle; --bs-dropdown-link-color: @blue; --bs-dropdown-link-hover-color: @accent; --bs-dropdown-divider-bg: @overlay0; --bs-dropdown-link-hover-bg: @crust; --bs-dropdown-link-active-color: @accent; --bs-dropdown-link-active-bg: @mantle; --bs-dropdown-link-disabled-color: @red; --bs-dropdown-header-color: @text; } a { color: @accent; } .text-bg-primary { color: @text; } .text-muted { color: @accent; } .text-bg-light { color: @text !important; background-color: rgba(#lib.rgbify(@mantle)[], 1) !important; } .alert-info, .alert-warning { background-color: @mantle !important; border-color: @mantle !important; color: @text !important; } } }