/* ==UserStyle==
@name ichi.moe Catppuccin
@namespace github.com/catppuccin/userstyles/styles/ichi.moe
@homepageURL https://github.com/catppuccin/userstyles/tree/main/styles/ichi.moe
@version 2025.09.06
@updateURL https://github.com/catppuccin/userstyles/raw/main/styles/ichi.moe/catppuccin.user.less
@supportURL https://github.com/catppuccin/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://userstyles.catppuccin.com/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;
}
}
}
}