Inline and lazy-load EasyMDE CSS, fix border colors (#36714)

Replace the external easymde.min.css import with an inlined and
lazy-loaded CSS file that uses proper theme variables for border colors.
All EasyMDE/CodeMirror rules are scoped under `.EasyMDEContainer`,
removing the need for !important overrides.

- Fixes easymde borders, these were broken since a while now
- Scope all easymde styles to .EasyMDEContainer
- Inline easymde.min.css and codemirror.css into web_src/css/easymde.css
- Lazy-load the CSS alongside the JS in switchToEasyMDE()
- Fix .editor-toolbar and .CodeMirror border colors to use
--color-input-border matching textarea inputs
- Remove unused gutter, line number, and other unconfigured styles
- Move .editor-loading to codeeditor.css where it belongs

<img width="891" height="518" alt="image"
src="https://github.com/user-attachments/assets/87495de5-7872-4645-90e7-96fe0f782f02"
/>

---------

Signed-off-by: silverwind <me@silverwind.io>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
silverwind
2026-02-26 11:50:44 +01:00
committed by GitHub
parent 840cf68c3e
commit 0d006290a7
8 changed files with 495 additions and 154 deletions

View File

@@ -1,106 +1,106 @@
.CodeMirror.cm-s-default .cm-property,
.CodeMirror.cm-s-paper .cm-property {
.EasyMDEContainer .CodeMirror.cm-s-default .cm-property,
.EasyMDEContainer .CodeMirror.cm-s-paper .cm-property {
color: #a0cc75;
}
.CodeMirror.cm-s-default .cm-header,
.CodeMirror.cm-s-paper .cm-header {
.EasyMDEContainer .CodeMirror.cm-s-default .cm-header,
.EasyMDEContainer .CodeMirror.cm-s-paper .cm-header {
color: #9daccc;
}
.CodeMirror.cm-s-default .cm-quote,
.CodeMirror.cm-s-paper .cm-quote {
.EasyMDEContainer .CodeMirror.cm-s-default .cm-quote,
.EasyMDEContainer .CodeMirror.cm-s-paper .cm-quote {
color: #009900;
}
.CodeMirror.cm-s-default .cm-keyword,
.CodeMirror.cm-s-paper .cm-keyword {
.EasyMDEContainer .CodeMirror.cm-s-default .cm-keyword,
.EasyMDEContainer .CodeMirror.cm-s-paper .cm-keyword {
color: #cc8a61;
}
.CodeMirror.cm-s-default .cm-atom,
.CodeMirror.cm-s-paper .cm-atom {
.EasyMDEContainer .CodeMirror.cm-s-default .cm-atom,
.EasyMDEContainer .CodeMirror.cm-s-paper .cm-atom {
color: #ef5e77;
}
.CodeMirror.cm-s-default .cm-number,
.CodeMirror.cm-s-paper .cm-number {
.EasyMDEContainer .CodeMirror.cm-s-default .cm-number,
.EasyMDEContainer .CodeMirror.cm-s-paper .cm-number {
color: #ff5656;
}
.CodeMirror.cm-s-default .cm-def,
.CodeMirror.cm-s-paper .cm-def {
.EasyMDEContainer .CodeMirror.cm-s-default .cm-def,
.EasyMDEContainer .CodeMirror.cm-s-paper .cm-def {
color: #e4e4e4;
}
.CodeMirror.cm-s-default .cm-variable-2,
.CodeMirror.cm-s-paper .cm-variable-2 {
.EasyMDEContainer .CodeMirror.cm-s-default .cm-variable-2,
.EasyMDEContainer .CodeMirror.cm-s-paper .cm-variable-2 {
color: #00bdbf;
}
.CodeMirror.cm-s-default .cm-variable-3,
.CodeMirror.cm-s-paper .cm-variable-3 {
.EasyMDEContainer .CodeMirror.cm-s-default .cm-variable-3,
.EasyMDEContainer .CodeMirror.cm-s-paper .cm-variable-3 {
color: #008855;
}
.CodeMirror.cm-s-default .cm-comment,
.CodeMirror.cm-s-paper .cm-comment {
.EasyMDEContainer .CodeMirror.cm-s-default .cm-comment,
.EasyMDEContainer .CodeMirror.cm-s-paper .cm-comment {
color: #8e9ab3;
}
.CodeMirror.cm-s-default .cm-string,
.CodeMirror.cm-s-paper .cm-string {
.EasyMDEContainer .CodeMirror.cm-s-default .cm-string,
.EasyMDEContainer .CodeMirror.cm-s-paper .cm-string {
color: #a77272;
}
.CodeMirror.cm-s-default .cm-string-2,
.CodeMirror.cm-s-paper .cm-string-2 {
.EasyMDEContainer .CodeMirror.cm-s-default .cm-string-2,
.EasyMDEContainer .CodeMirror.cm-s-paper .cm-string-2 {
color: #ff5500;
}
.CodeMirror.cm-s-default .cm-meta,
.CodeMirror.cm-s-paper .cm-meta,
.CodeMirror.cm-s-default .cm-qualifier,
.CodeMirror.cm-s-paper .cm-qualifier {
.EasyMDEContainer .CodeMirror.cm-s-default .cm-meta,
.EasyMDEContainer .CodeMirror.cm-s-paper .cm-meta,
.EasyMDEContainer .CodeMirror.cm-s-default .cm-qualifier,
.EasyMDEContainer .CodeMirror.cm-s-paper .cm-qualifier {
color: #ffb176;
}
.CodeMirror.cm-s-default .cm-builtin,
.CodeMirror.cm-s-paper .cm-builtin {
.EasyMDEContainer .CodeMirror.cm-s-default .cm-builtin,
.EasyMDEContainer .CodeMirror.cm-s-paper .cm-builtin {
color: #b7c951;
}
.CodeMirror.cm-s-default .cm-bracket,
.CodeMirror.cm-s-paper .cm-bracket {
.EasyMDEContainer .CodeMirror.cm-s-default .cm-bracket,
.EasyMDEContainer .CodeMirror.cm-s-paper .cm-bracket {
color: #999977;
}
.CodeMirror.cm-s-default .cm-tag,
.CodeMirror.cm-s-paper .cm-tag {
.EasyMDEContainer .CodeMirror.cm-s-default .cm-tag,
.EasyMDEContainer .CodeMirror.cm-s-paper .cm-tag {
color: #f1d273;
}
.CodeMirror.cm-s-default .cm-attribute,
.CodeMirror.cm-s-paper .cm-attribute {
.EasyMDEContainer .CodeMirror.cm-s-default .cm-attribute,
.EasyMDEContainer .CodeMirror.cm-s-paper .cm-attribute {
color: #bfcc70;
}
.CodeMirror.cm-s-default .cm-hr,
.CodeMirror.cm-s-paper .cm-hr {
.EasyMDEContainer .CodeMirror.cm-s-default .cm-hr,
.EasyMDEContainer .CodeMirror.cm-s-paper .cm-hr {
color: #999999;
}
.CodeMirror.cm-s-default .cm-url,
.CodeMirror.cm-s-paper .cm-url {
.EasyMDEContainer .CodeMirror.cm-s-default .cm-url,
.EasyMDEContainer .CodeMirror.cm-s-paper .cm-url {
color: #c5cfd0;
}
.CodeMirror.cm-s-default .cm-link,
.CodeMirror.cm-s-paper .cm-link {
.EasyMDEContainer .CodeMirror.cm-s-default .cm-link,
.EasyMDEContainer .CodeMirror.cm-s-paper .cm-link {
color: #d8c792;
}
.CodeMirror.cm-s-default .cm-error,
.CodeMirror.cm-s-paper .cm-error {
.EasyMDEContainer .CodeMirror.cm-s-default .cm-error,
.EasyMDEContainer .CodeMirror.cm-s-paper .cm-error {
color: #dbdbeb;
}