/* ==UserStyle== @name ichi.moe Catppuccin @namespace github.com/Sebagabones/userstyles/styles/ichi.moe @homepageURL https://github.com/Sebagabones/userstyles/tree/main/styles/ichi.moe @version 2025.09.06 @updateURL https://github.com/Sebagabones/userstyles/raw/main/styles/ichi.moe/catppuccin.user.less @supportURL https://github.com/Sebagabones/userstyles/issues?q=is%3Aopen+is%3Aissue+label%3Aichi.moe @description Soothing pastel theme for ichi.moe @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"] @var checkbox zen "Zen Mode" 0 ==/UserStyle== */ @import "https://raw.githubusercontent.com/Sebagabones/userstyles/refs/heads/main/lib/lib.less"; @-moz-document domain("ichi.moe") { :root { @media (prefers-color-scheme: light) { #catppuccin(@lightFlavor); } @media (prefers-color-scheme: dark) { #catppuccin(@darkFlavor); } } #catppuccin(@flavor) { #lib.palette(); #lib.defaults(); html, body { background: @base; color: @text; } footer { color: @subtext1; } span.query-word:hover { border-color: @pink; } .panel-error { background-color: fade(@red, 80%); } .highlight { background-color: fade(@yellow, 80%); } .gloss { background-color: if(@flavor = "latte", @base, @surface0); } .gloss, .gloss-rtext { border-color: if(@flavor = "latte", @surface2, @overlay0); } .gloss:target { & when (@flavor = "latte") { box-shadow: 0 0 5px @surface2; -webkit-box-shadow: 0 0 5px @surface2; -moz-box-shadow: 0 0 5px @surface2; } box-shadow: 0 0 5px @overlay0; -webkit-box-shadow: 0 0 5px @overlay0; -moz-box-shadow: 0 0 5px @overlay0; } a { color: @sapphire; } a.wiktionary-link { color: @text; } a.info-link { color: @text; } a.info-link:hover { border-bottom-color: @sapphire; } .note-skipped a { color: @subtext1; } .note-skipped a:hover { border-color: @subtext1; } .jspDrag { background-color: if(@flavor = "latte", @surface1, @surface2); } .conj-negative { color: @red; } .conj-formal { color: @blue; } .pos-desc { color: @green; } .reading-table tr:nth-of-type(2n), table.kanji-match tr:nth-of-type(2n) { background: fade(if(@flavor = "latte", @surface0, @surface1), 50%); } .kanji-big a { color: @subtext1; } .autocomplete-suggestions { border-color: if(@flavor = "latte", @surface2, @overlay0); } .autocomplete-suggestions, .autocomplete-selected { background: if(@flavor = "latte", @base, @surface0); } .autocomplete-suggestions strong { color: @lavender; } .autocomplete-group strong { border-bottom-color: @text; } .button { background-color: @sapphire; border-color: @sapphire; color: @base; } button:hover, button:focus, .button:hover, .button:focus { background-color: darken(@sapphire, 25%); color: @base; } h1, h2, h3, h4, h5, h6 { color: @text; } input[type="text"], input[type="password"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="week"], input[type="email"], input[type="number"], input[type="search"], input[type="tel"], input[type="time"], input[type="url"], input[type="color"], textarea, input[type="file"], input[type="checkbox"], input[type="radio"], select, input[type="text"]:focus, input[type="password"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="week"]:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="time"]:focus, input[type="url"]:focus, input[type="color"]:focus, textarea:focus, input[type="file"]:focus, input[type="checkbox"]:focus, input[type="radio"]:focus, select:focus { & when (@flavor = "latte") { background-color: @base; border-color: @surface0; } background-color: @surface0; border-color: @surface1; color: @text; } .header-nav a { color: @pink; } .header-nav a:hover { color: darken(@pink, 15%); } .jspTrack { background: if(@flavor = "latte", @surface0, @surface1); } .f-dropdown { background-color: if(@flavor = "latte", @base, @surface0); border-color: @subtext1; } .f-dropdown::before { border-color: transparent transparent @subtext1; } span.query-pick { color: @text; } .has-tip { color: @subtext1; border-color: @overlay1; } .has-tip:hover, .has-tip:focus { border-bottom-color: @sapphire; color: @sapphire; } label { color: @subtext1; } table { background: @base; background-color: if(@flavor = "latte", @surface0, @surface1); } table tr th, table tr td { color: @subtext1; } table tr.even, table tr.alt, table tr:nth-of-type(2n) { background: fade(if(@flavor = "latte", @surface0, @surface1), 50%); } .kanji-table td, .reading-table tr ~ tr > td, table.kanji-match td, tr.match-row-kanji, tr.match-row-reading { border-color: if(@flavor = "latte", @surface0, @surface1); } img { filter: contrast(1.2) opacity(85%); } /* Options */ & when (@zen = 1) { .header, footer, .landing-page { display: none; } div.wrapper { display: flex; flex-direction: column; align-items: center; place-content: center center; padding: 50px 0; min-height: 100vh; margin: 0; } .gloss-all { width: 100%; padding: 0 10px; } #div-ichiran-result { padding: 0 10px; } #div-kanji-form, #w-form { width: 100%; } #k-form > div > div, #w-form > div > div { width: 100%; max-width: 304px; } } } }