feat: 增加 Catppuccin 四种主题

This commit is contained in:
RavenHogwarts 2026-06-11 22:36:43 +08:00 committed by RavenHogWarts
parent dc9d3c7411
commit 940b440d33
6 changed files with 401 additions and 21 deletions

@ -1 +1 @@
Subproject commit 87743ad74d04cd59099bfda39a0552e673edbc54
Subproject commit 98aa4e2456a8524cce77a5a76307af2b7fa82b2c

View file

@ -50,33 +50,38 @@ import "ace-builds/src-noconflict/theme-tomorrow_night_eighties";
import "ace-builds/src-noconflict/theme-twilight";
import "ace-builds/src-noconflict/theme-vibrant_ink";
// === 社区主题 (由 convert-themes.mjs 自动生成) ===
import "./themes/active4d";
import "./themes/all-hallows-eve";
import "./themes/all-hallows-eve-custom";
import "./themes/all-hallows-eve";
import "./themes/amy";
import "./themes/argonaut";
import "./themes/barf";
import "./themes/bbedit";
import "./themes/bespin";
import "./themes/birds-of-paradise";
import "./themes/black-pearl";
import "./themes/black-pearl-ii";
import "./themes/blackboard";
import "./themes/black-pearl";
import "./themes/blackboard-black";
import "./themes/blackboard-mod";
import "./themes/blackboard-new";
import "./themes/blackboard";
import "./themes/blacklight";
import "./themes/bongzilla";
import "./themes/boys-girls-01";
import "./themes/brilliance-black";
import "./themes/brilliance-dull";
import "./themes/catppuccin-frappe";
import "./themes/catppuccin-latte";
import "./themes/catppuccin-macchiato";
import "./themes/catppuccin-mocha";
import "./themes/choco";
import "./themes/claire";
import "./themes/classic-modified";
import "./themes/close_to_the_sea";
import "./themes/clouds";
import "./themes/clouds-midnight";
import "./themes/clouds";
import "./themes/coal-graal";
import "./themes/cobalt";
import "./themes/coda";
@ -85,8 +90,8 @@ import "./themes/cool-glow";
import "./themes/creeper";
import "./themes/cssedit";
import "./themes/daniel-fischer";
import "./themes/dawn";
import "./themes/dawn-mod1";
import "./themes/dawn";
import "./themes/deluxe";
import "./themes/django-dark";
import "./themes/django-smoothy";
@ -94,16 +99,16 @@ import "./themes/dominion-day";
import "./themes/eiffel";
import "./themes/emacs-strict";
import "./themes/erebus";
import "./themes/espresso";
import "./themes/espresso-libre";
import "./themes/espresso-tutti";
import "./themes/espresso";
import "./themes/fade-to-grey";
import "./themes/fake";
import "./themes/fluidvision";
import "./themes/forlatex";
import "./themes/freckle";
import "./themes/freckle-mod1";
import "./themes/freckle-mod2";
import "./themes/freckle";
import "./themes/friendship-bracelet";
import "./themes/funky_dashboard";
import "./themes/github";
@ -131,31 +136,31 @@ import "./themes/mac-classic";
import "./themes/made-of-code";
import "./themes/magicwb-amiga";
import "./themes/menage-a-trois";
import "./themes/merbivore";
import "./themes/merbivore-soft";
import "./themes/merbivore";
import "./themes/midnight";
import "./themes/minimal-theme";
import "./themes/monoindustrial";
import "./themes/monokai";
import "./themes/monokai-dark";
import "./themes/monokai-for-textmaters-custom";
import "./themes/monokai-for-textmaters-custom-philtr";
import "./themes/monokai-mod";
import "./themes/monokai-for-textmaters-custom";
import "./themes/monokai-mod-1";
import "./themes/monokai-mod-seangaffney";
import "./themes/monokai-mod";
import "./themes/monokai";
import "./themes/multimarkdown";
import "./themes/notebook";
import "./themes/notepad2";
import "./themes/offy";
import "./themes/pastels-on-dark";
import "./themes/pastie";
import "./themes/pengwynn";
import "./themes/pengwynn-menlo";
import "./themes/pengwynn";
import "./themes/plum-dumb";
import "./themes/putty";
import "./themes/rails-envy";
import "./themes/railscasts";
import "./themes/railscasts-boost";
import "./themes/railscasts";
import "./themes/rdark";
import "./themes/resesif";
import "./themes/ruby-blue";
@ -178,27 +183,27 @@ import "./themes/sunburst";
import "./themes/sweyla650478";
import "./themes/sweyla674314";
import "./themes/swyphs-ii";
import "./themes/tango";
import "./themes/tango-in-twilight";
import "./themes/tango";
import "./themes/tek";
import "./themes/text-ex-machina";
import "./themes/text-ex-machina-lighter-comments";
import "./themes/tomorrow";
import "./themes/tomorrow-night";
import "./themes/text-ex-machina";
import "./themes/tomorrow-night-blue";
import "./themes/tomorrow-night-bright";
import "./themes/tomorrow-night-eighties";
import "./themes/tomorrow-night";
import "./themes/tomorrow";
import "./themes/tubster";
import "./themes/twilight";
import "./themes/twilight-bright";
import "./themes/twilight-remix";
import "./themes/twilight";
import "./themes/upstream-sunburst";
import "./themes/upstream-vibrant";
import "./themes/venom";
import "./themes/vibrant-fin";
import "./themes/vibrant-ink";
import "./themes/vibrant-ink-choppednscrewed";
import "./themes/vibrant-ink-remix";
import "./themes/vibrant-ink";
import "./themes/vibrant-tango";
import "./themes/vintage-aurora";
import "./themes/whys-poignant";
@ -206,7 +211,6 @@ import "./themes/zachstronaut-theme-41";
import "./themes/zenburn";
import "./themes/zenburnesque";
// === END 社区主题 ===
export const AceLightThemesList = [
"chrome",
"cloud_editor",
@ -262,6 +266,7 @@ export const AceLightThemesList = [
"tango",
"twilight-bright",
"whys-poignant",
"catppuccin-latte",
];
export type AceLightThemes = (typeof AceLightThemesList)[number];
@ -406,6 +411,9 @@ export const AceDarkThemesList = [
"zenburn",
"zenburnesque",
"argonaut",
"catppuccin-frappe",
"catppuccin-macchiato",
"catppuccin-mocha",
];
export type AceDarkThemes = (typeof AceDarkThemesList)[number];

View file

@ -0,0 +1,93 @@
import * as ace from "ace-builds";
const cssText = `
.ace-catppuccin-frappe .ace_gutter {
background: #303446;
color: rgb(123, 130, 158);
}
.ace-catppuccin-frappe .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-catppuccin-frappe {
background-color: #303446;
color: #c6d0f5;
}
.ace-catppuccin-frappe .ace_cursor {
color: #f2d5cf;
}
.ace-catppuccin-frappe .ace_marker-layer .ace_selection {
background: rgba(148, 156, 187, 0.25);
}
.ace-catppuccin-frappe.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #303446;
border-radius: 2px;
}
.ace-catppuccin-frappe .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-catppuccin-frappe .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgb(192, 192, 192);
}
.ace-catppuccin-frappe .ace_marker-layer .ace_active-line {
background: #414559;
}
.ace-catppuccin-frappe .ace_gutter-active-line {
background-color: #414559;
}
.ace-catppuccin-frappe .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(148, 156, 187, 0.25);
}
.ace-catppuccin-frappe .ace_fold {
background-color: italic;
border-color: #c6d0f5;
}
.ace-catppuccin-frappe .ace_keyword{color:#ca9ee6;}
.ace-catppuccin-frappe .ace_keyword.ace_operator{color:#81c8be;}
.ace-catppuccin-frappe .ace_constant.ace_language{color:#e78284;}
.ace-catppuccin-frappe .ace_constant.ace_numeric{color:#ef9f76;}
.ace-catppuccin-frappe .ace_constant.ace_character.ace_escape{color:#f4b8e4;}
.ace-catppuccin-frappe .ace_support.ace_function{font-style:italic;
color:#8caaee;}
.ace-catppuccin-frappe .ace_support.ace_class{font-style:italic;
color:#e5c890;}
.ace-catppuccin-frappe .ace_support.ace_type{font-style:italic;
color:#e5c890;}
.ace-catppuccin-frappe .ace_storage.ace_type{color:#ca9ee6;}
.ace-catppuccin-frappe .ace_string{color:#a6d189;}
.ace-catppuccin-frappe .ace_comment{font-style:italic;
color:#949cbb;}
.ace-catppuccin-frappe .ace_variable{font-style:italic;
color:#8caaee;}
.ace-catppuccin-frappe .ace_variable.ace_parameter{font-style:italic;
color:#ea999c;}
.ace-catppuccin-frappe .ace_entity.ace_other.ace_attribute-name{color:#e5c890;}
.ace-catppuccin-frappe .ace_entity.ace_name.ace_function{font-style:italic;
color:#8caaee;}
.ace-catppuccin-frappe .ace_entity.ace_name{color:#81c8be;}
.ace-catppuccin-frappe .ace_entity.ace_name.ace_tag{color:#8caaee;}
`;
(ace as any).define("ace/theme/catppuccin-frappe-css", ["require", "exports", "module"], function (require: any, exports: any, module: any) {
module.exports = cssText;
});
(ace as any).define("ace/theme/catppuccin-frappe", ["require", "exports", "module", "ace/theme/catppuccin-frappe-css", "ace/lib/dom"], function (require: any, exports: any, module: any) {
exports.isDark = true;
exports.cssClass = "ace-catppuccin-frappe";
exports.cssText = require("./catppuccin-frappe-css");
var dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,93 @@
import * as ace from "ace-builds";
const cssText = `
.ace-catppuccin-latte .ace_gutter {
background: #eff1f5;
color: rgb(158, 160, 175);
}
.ace-catppuccin-latte .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-catppuccin-latte {
background-color: #eff1f5;
color: #4c4f69;
}
.ace-catppuccin-latte .ace_cursor {
color: #dc8a78;
}
.ace-catppuccin-latte .ace_marker-layer .ace_selection {
background: rgba(124, 127, 147, 0.30);
}
.ace-catppuccin-latte.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #eff1f5;
border-radius: 2px;
}
.ace-catppuccin-latte .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-catppuccin-latte .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgb(192, 192, 192);
}
.ace-catppuccin-latte .ace_marker-layer .ace_active-line {
background: #ccd0da;
}
.ace-catppuccin-latte .ace_gutter-active-line {
background-color: #ccd0da;
}
.ace-catppuccin-latte .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(124, 127, 147, 0.30);
}
.ace-catppuccin-latte .ace_fold {
background-color: italic;
border-color: #4c4f69;
}
.ace-catppuccin-latte .ace_keyword{color:#8839ef;}
.ace-catppuccin-latte .ace_keyword.ace_operator{color:#179299;}
.ace-catppuccin-latte .ace_constant.ace_language{color:#d20f39;}
.ace-catppuccin-latte .ace_constant.ace_numeric{color:#fe640b;}
.ace-catppuccin-latte .ace_constant.ace_character.ace_escape{color:#ea76cb;}
.ace-catppuccin-latte .ace_support.ace_function{font-style:italic;
color:#1e66f5;}
.ace-catppuccin-latte .ace_support.ace_class{font-style:italic;
color:#df8e1d;}
.ace-catppuccin-latte .ace_support.ace_type{font-style:italic;
color:#df8e1d;}
.ace-catppuccin-latte .ace_storage.ace_type{color:#8839ef;}
.ace-catppuccin-latte .ace_string{color:#40a02b;}
.ace-catppuccin-latte .ace_comment{font-style:italic;
color:#7c7f93;}
.ace-catppuccin-latte .ace_variable{font-style:italic;
color:#1e66f5;}
.ace-catppuccin-latte .ace_variable.ace_parameter{font-style:italic;
color:#e64553;}
.ace-catppuccin-latte .ace_entity.ace_other.ace_attribute-name{color:#df8e1d;}
.ace-catppuccin-latte .ace_entity.ace_name.ace_function{font-style:italic;
color:#1e66f5;}
.ace-catppuccin-latte .ace_entity.ace_name{color:#179299;}
.ace-catppuccin-latte .ace_entity.ace_name.ace_tag{color:#1e66f5;}
`;
(ace as any).define("ace/theme/catppuccin-latte-css", ["require", "exports", "module"], function (require: any, exports: any, module: any) {
module.exports = cssText;
});
(ace as any).define("ace/theme/catppuccin-latte", ["require", "exports", "module", "ace/theme/catppuccin-latte-css", "ace/lib/dom"], function (require: any, exports: any, module: any) {
exports.isDark = false;
exports.cssClass = "ace-catppuccin-latte";
exports.cssText = require("./catppuccin-latte-css");
var dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,93 @@
import * as ace from "ace-builds";
const cssText = `
.ace-catppuccin-macchiato .ace_gutter {
background: #24273a;
color: rgb(119, 125, 152);
}
.ace-catppuccin-macchiato .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-catppuccin-macchiato {
background-color: #24273a;
color: #cad3f5;
}
.ace-catppuccin-macchiato .ace_cursor {
color: #f4dbd6;
}
.ace-catppuccin-macchiato .ace_marker-layer .ace_selection {
background: rgba(147, 154, 183, 0.25);
}
.ace-catppuccin-macchiato.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #24273a;
border-radius: 2px;
}
.ace-catppuccin-macchiato .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-catppuccin-macchiato .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgb(192, 192, 192);
}
.ace-catppuccin-macchiato .ace_marker-layer .ace_active-line {
background: #363a4f;
}
.ace-catppuccin-macchiato .ace_gutter-active-line {
background-color: #363a4f;
}
.ace-catppuccin-macchiato .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(147, 154, 183, 0.25);
}
.ace-catppuccin-macchiato .ace_fold {
background-color: italic;
border-color: #cad3f5;
}
.ace-catppuccin-macchiato .ace_keyword{color:#c6a0f6;}
.ace-catppuccin-macchiato .ace_keyword.ace_operator{color:#8bd5ca;}
.ace-catppuccin-macchiato .ace_constant.ace_language{color:#ed8796;}
.ace-catppuccin-macchiato .ace_constant.ace_numeric{color:#f5a97f;}
.ace-catppuccin-macchiato .ace_constant.ace_character.ace_escape{color:#f5bde6;}
.ace-catppuccin-macchiato .ace_support.ace_function{font-style:italic;
color:#8aadf4;}
.ace-catppuccin-macchiato .ace_support.ace_class{font-style:italic;
color:#eed49f;}
.ace-catppuccin-macchiato .ace_support.ace_type{font-style:italic;
color:#eed49f;}
.ace-catppuccin-macchiato .ace_storage.ace_type{color:#c6a0f6;}
.ace-catppuccin-macchiato .ace_string{color:#a6da95;}
.ace-catppuccin-macchiato .ace_comment{font-style:italic;
color:#939ab7;}
.ace-catppuccin-macchiato .ace_variable{font-style:italic;
color:#8aadf4;}
.ace-catppuccin-macchiato .ace_variable.ace_parameter{font-style:italic;
color:#ee99a0;}
.ace-catppuccin-macchiato .ace_entity.ace_other.ace_attribute-name{color:#eed49f;}
.ace-catppuccin-macchiato .ace_entity.ace_name.ace_function{font-style:italic;
color:#8aadf4;}
.ace-catppuccin-macchiato .ace_entity.ace_name{color:#8bd5ca;}
.ace-catppuccin-macchiato .ace_entity.ace_name.ace_tag{color:#8aadf4;}
`;
(ace as any).define("ace/theme/catppuccin-macchiato-css", ["require", "exports", "module"], function (require: any, exports: any, module: any) {
module.exports = cssText;
});
(ace as any).define("ace/theme/catppuccin-macchiato", ["require", "exports", "module", "ace/theme/catppuccin-macchiato-css", "ace/lib/dom"], function (require: any, exports: any, module: any) {
exports.isDark = true;
exports.cssClass = "ace-catppuccin-macchiato";
exports.cssText = require("./catppuccin-macchiato-css");
var dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});

View file

@ -0,0 +1,93 @@
import * as ace from "ace-builds";
const cssText = `
.ace-catppuccin-mocha .ace_gutter {
background: #1e1e2e;
color: rgb(118, 122, 145);
}
.ace-catppuccin-mocha .ace_print-margin {
width: 1px;
background: #e8e8e8;
}
.ace-catppuccin-mocha {
background-color: #1e1e2e;
color: #cdd6f4;
}
.ace-catppuccin-mocha .ace_cursor {
color: #f5e0dc;
}
.ace-catppuccin-mocha .ace_marker-layer .ace_selection {
background: rgba(147, 153, 178, 0.25);
}
.ace-catppuccin-mocha.ace_multiselect .ace_selection.ace_start {
box-shadow: 0 0 3px 0px #1e1e2e;
border-radius: 2px;
}
.ace-catppuccin-mocha .ace_marker-layer .ace_step {
background: rgb(198, 219, 174);
}
.ace-catppuccin-mocha .ace_marker-layer .ace_bracket {
margin: -1px 0 0 -1px;
border: 1px solid rgb(192, 192, 192);
}
.ace-catppuccin-mocha .ace_marker-layer .ace_active-line {
background: #313244;
}
.ace-catppuccin-mocha .ace_gutter-active-line {
background-color: #313244;
}
.ace-catppuccin-mocha .ace_marker-layer .ace_selected-word {
border: 1px solid rgba(147, 153, 178, 0.25);
}
.ace-catppuccin-mocha .ace_fold {
background-color: italic;
border-color: #cdd6f4;
}
.ace-catppuccin-mocha .ace_keyword{color:#cba6f7;}
.ace-catppuccin-mocha .ace_keyword.ace_operator{color:#94e2d5;}
.ace-catppuccin-mocha .ace_constant.ace_language{color:#f38ba8;}
.ace-catppuccin-mocha .ace_constant.ace_numeric{color:#fab387;}
.ace-catppuccin-mocha .ace_constant.ace_character.ace_escape{color:#f5c2e7;}
.ace-catppuccin-mocha .ace_support.ace_function{font-style:italic;
color:#89b4fa;}
.ace-catppuccin-mocha .ace_support.ace_class{font-style:italic;
color:#f9e2af;}
.ace-catppuccin-mocha .ace_support.ace_type{font-style:italic;
color:#f9e2af;}
.ace-catppuccin-mocha .ace_storage.ace_type{color:#cba6f7;}
.ace-catppuccin-mocha .ace_string{color:#a6e3a1;}
.ace-catppuccin-mocha .ace_comment{font-style:italic;
color:#9399b2;}
.ace-catppuccin-mocha .ace_variable{font-style:italic;
color:#89b4fa;}
.ace-catppuccin-mocha .ace_variable.ace_parameter{font-style:italic;
color:#eba0ac;}
.ace-catppuccin-mocha .ace_entity.ace_other.ace_attribute-name{color:#f9e2af;}
.ace-catppuccin-mocha .ace_entity.ace_name.ace_function{font-style:italic;
color:#89b4fa;}
.ace-catppuccin-mocha .ace_entity.ace_name{color:#94e2d5;}
.ace-catppuccin-mocha .ace_entity.ace_name.ace_tag{color:#89b4fa;}
`;
(ace as any).define("ace/theme/catppuccin-mocha-css", ["require", "exports", "module"], function (require: any, exports: any, module: any) {
module.exports = cssText;
});
(ace as any).define("ace/theme/catppuccin-mocha", ["require", "exports", "module", "ace/theme/catppuccin-mocha-css", "ace/lib/dom"], function (require: any, exports: any, module: any) {
exports.isDark = true;
exports.cssClass = "ace-catppuccin-mocha";
exports.cssText = require("./catppuccin-mocha-css");
var dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass, false);
});