mirror of
https://github.com/go-gitea/gitea.git
synced 2026-04-01 16:57:18 +09:00
- Replace monaco-editor with CodeMirror 6 - Add `--color-syntax-*` CSS variables for all syntax token types, shared by CodeMirror, Chroma and EasyMDE - Consolidate chroma CSS into a single theme-independent file (`modules/chroma.css`) - Syntax colors in the code editor now match the code view and light/dark themes - Code editor is now 12px instead of 14px font size to match code view and GitHub - Use a global style for kbd elements - When editing existing files, focus will be on codemirror instead of filename input. - Keyboard shortcuts are roughtly the same as VSCode - Add a "Find" button, useful for mobile - Add context menu similar to Monaco - Add a command palette (Ctrl/Cmd+Shift+P or F1) or via button - Add clickable URLs via Ctrl/Cmd+click - Add e2e test for the code editor - Remove `window.codeEditors` global - The main missing Monaco features are hover types and semantic rename but these were not fully working because monaco operated only on single files and only for JS/TS/HTML/CSS/JSON. | | Monaco (main) | CodeMirror (cm) | Delta | |---|---|---|---| | **Build time** | 7.8s | 5.3s | **-32%** | | **JS output** | 25 MB | 14 MB | **-44%** | | **CSS output** | 1.2 MB | 1012 KB | **-17%** | | **Total (no maps)** | 23.3 MB | 12.1 MB | **-48%** | Fixes: #36311 Fixes: #14776 Fixes: #12171 <img width="1333" height="555" alt="image" src="https://github.com/user-attachments/assets/f0fe3a28-1ed9-4f22-bf25-2b161501d7ce" /> --------- Signed-off-by: silverwind <me@silverwind.io> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: Giteabot <teabot@gitea.io> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
294 lines
10 KiB
CSS
294 lines
10 KiB
CSS
gitea-theme-meta-info {
|
|
--theme-display-name: "Light";
|
|
--theme-color-scheme: "light";
|
|
}
|
|
|
|
:root {
|
|
--is-dark-theme: false;
|
|
--color-primary: #4183c4;
|
|
--color-primary-contrast: #ffffff;
|
|
--color-primary-dark-1: #3876b3;
|
|
--color-primary-dark-2: #31699f;
|
|
--color-primary-dark-3: #2b5c8b;
|
|
--color-primary-dark-4: #254f77;
|
|
--color-primary-dark-5: #193450;
|
|
--color-primary-dark-6: #0c1a28;
|
|
--color-primary-dark-7: #04080c;
|
|
--color-primary-light-1: #548fca;
|
|
--color-primary-light-2: #679cd0;
|
|
--color-primary-light-3: #7aa8d6;
|
|
--color-primary-light-4: #8db5dc;
|
|
--color-primary-light-5: #b3cde7;
|
|
--color-primary-light-6: #d9e6f3;
|
|
--color-primary-light-7: #f4f8fb;
|
|
--color-primary-alpha-10: #4183c419;
|
|
--color-primary-alpha-20: #4183c433;
|
|
--color-primary-alpha-30: #4183c44b;
|
|
--color-primary-alpha-40: #4183c466;
|
|
--color-primary-alpha-50: #4183c480;
|
|
--color-primary-alpha-60: #4183c499;
|
|
--color-primary-alpha-70: #4183c4b3;
|
|
--color-primary-alpha-80: #4183c4cc;
|
|
--color-primary-alpha-90: #4183c4e1;
|
|
--color-primary-hover: var(--color-primary-dark-1);
|
|
--color-primary-active: var(--color-primary-dark-2);
|
|
--color-secondary: #d0d7de;
|
|
--color-secondary-dark-1: #c7ced5;
|
|
--color-secondary-dark-2: #b9c0c7;
|
|
--color-secondary-dark-3: #99a0a7;
|
|
--color-secondary-dark-4: #899097;
|
|
--color-secondary-dark-5: #7a8188;
|
|
--color-secondary-dark-6: #6a7178;
|
|
--color-secondary-dark-7: #5b6269;
|
|
--color-secondary-dark-8: #4b5259;
|
|
--color-secondary-dark-9: #3c434a;
|
|
--color-secondary-dark-10: #2c333a;
|
|
--color-secondary-dark-11: #1d242b;
|
|
--color-secondary-dark-12: #0d141b;
|
|
--color-secondary-dark-13: #00040b;
|
|
--color-secondary-light-1: #dee5ec;
|
|
--color-secondary-light-2: #e4ebf2;
|
|
--color-secondary-light-3: #ebf2f9;
|
|
--color-secondary-light-4: #f1f8ff;
|
|
--color-secondary-alpha-10: #d0d7de19;
|
|
--color-secondary-alpha-20: #d0d7de33;
|
|
--color-secondary-alpha-30: #d0d7de4b;
|
|
--color-secondary-alpha-40: #d0d7de66;
|
|
--color-secondary-alpha-50: #d0d7de80;
|
|
--color-secondary-alpha-60: #d0d7de99;
|
|
--color-secondary-alpha-70: #d0d7deb3;
|
|
--color-secondary-alpha-80: #d0d7decc;
|
|
--color-secondary-alpha-90: #d0d7dee1;
|
|
--color-secondary-button: var(--color-secondary-dark-4);
|
|
--color-secondary-hover: var(--color-secondary-dark-5);
|
|
--color-secondary-active: var(--color-secondary-dark-6);
|
|
/* console colors - used for actions console and console files */
|
|
--color-console-fg: #0d1117;
|
|
--color-console-fg-subtle: #40474d;
|
|
--color-console-bg: #ffffff;
|
|
--color-console-border: #d0d7de;
|
|
--color-console-hover-bg: #f1f3f5;
|
|
--color-console-active-bg: #d0d7de;
|
|
--color-console-menu-bg: #f8f9fb;
|
|
--color-console-menu-border: #d0d7de;
|
|
--color-console-link: #5c656d;
|
|
/* named colors */
|
|
--color-red: #db2828;
|
|
--color-orange: #f2711c;
|
|
--color-yellow: #fbbd08;
|
|
--color-olive: #b5cc18;
|
|
--color-green: #21ba45;
|
|
--color-teal: #00b5ad;
|
|
--color-blue: #2185d0;
|
|
--color-violet: #6435c9;
|
|
--color-purple: #a333c8;
|
|
--color-pink: #e03997;
|
|
--color-brown: #a5673f;
|
|
--color-black: #1d2328;
|
|
/* light variants - produced via Sass scale-color(color, $lightness: +25%) */
|
|
--color-red-light: #e45e5e;
|
|
--color-orange-light: #f59555;
|
|
--color-yellow-light: #fcce46;
|
|
--color-olive-light: #d3e942;
|
|
--color-green-light: #46de6a;
|
|
--color-teal-light: #08fff4;
|
|
--color-blue-light: #51a5e3;
|
|
--color-violet-light: #8b67d7;
|
|
--color-purple-light: #bb64d8;
|
|
--color-pink-light: #e86bb1;
|
|
--color-brown-light: #c58b66;
|
|
--color-black-light: #4b5b68;
|
|
/* dark 1 variants - produced via Sass scale-color(color, $lightness: -10%) */
|
|
--color-red-dark-1: #c82121;
|
|
--color-orange-dark-1: #e6630d;
|
|
--color-yellow-dark-1: #e5ac04;
|
|
--color-olive-dark-1: #a3b816;
|
|
--color-green-dark-1: #1ea73e;
|
|
--color-teal-dark-1: #00a39c;
|
|
--color-blue-dark-1: #1e78bb;
|
|
--color-violet-dark-1: #5a30b5;
|
|
--color-purple-dark-1: #932eb4;
|
|
--color-pink-dark-1: #db228a;
|
|
--color-brown-dark-1: #955d39;
|
|
--color-black-dark-1: #2c3339;
|
|
/* dark 2 variants - produced via Sass scale-color(color, $lightness: -20%) */
|
|
--color-red-dark-2: #b11e1e;
|
|
--color-orange-dark-2: #cc580c;
|
|
--color-yellow-dark-2: #cc9903;
|
|
--color-olive-dark-2: #91a313;
|
|
--color-green-dark-2: #1a9537;
|
|
--color-teal-dark-2: #00918a;
|
|
--color-blue-dark-2: #1a6aa6;
|
|
--color-violet-dark-2: #502aa1;
|
|
--color-purple-dark-2: #8229a0;
|
|
--color-pink-dark-2: #c21e7b;
|
|
--color-brown-dark-2: #845232;
|
|
--color-black-dark-2: #131619;
|
|
/* ansi colors used for actions console and console files */
|
|
--color-ansi-black: #1e2327;
|
|
--color-ansi-red: #cc4848;
|
|
--color-ansi-green: #87ab63;
|
|
--color-ansi-yellow: #cc9903;
|
|
--color-ansi-blue: #3a8ac6;
|
|
--color-ansi-magenta: #d22e8b;
|
|
--color-ansi-cyan: #00918a;
|
|
--color-ansi-white: var(--color-console-fg-subtle);
|
|
--color-ansi-bright-black: #46494d;
|
|
--color-ansi-bright-red: #d15a5a;
|
|
--color-ansi-bright-green: #93b373;
|
|
--color-ansi-bright-yellow: #eaaf03;
|
|
--color-ansi-bright-blue: #4e96cc;
|
|
--color-ansi-bright-magenta: #d74397;
|
|
--color-ansi-bright-cyan: #00b6ad;
|
|
--color-ansi-bright-white: var(--color-console-fg);
|
|
/* other colors */
|
|
--color-grey: #697077;
|
|
--color-grey-light: #7c838a;
|
|
--color-gold: #a1882b;
|
|
--color-white: #ffffff;
|
|
--color-diff-added-fg: #21ba45;
|
|
--color-diff-added-linenum-bg: #d1f8d9;
|
|
--color-diff-added-row-bg: #e6ffed;
|
|
--color-diff-added-row-border: #e6ffed;
|
|
--color-diff-added-word-bg: #acf2bd;
|
|
--color-diff-moved-row-bg: #f1f8d1;
|
|
--color-diff-moved-row-border: #d0e27f;
|
|
--color-diff-removed-fg: #db2828;
|
|
--color-diff-removed-linenum-bg: #ffcecb;
|
|
--color-diff-removed-row-bg: #ffeef0;
|
|
--color-diff-removed-row-border: #f1c0c0;
|
|
--color-diff-removed-word-bg: #fdb8c0;
|
|
--color-diff-inactive: #f0f2f4;
|
|
--color-error-border: #ff818266;
|
|
--color-error-bg: #ffebe9;
|
|
--color-error-bg-active: #ffcecb;
|
|
--color-error-bg-hover: #ffdcd7;
|
|
--color-error-text: var(--color-text);
|
|
--color-success-border: #4ac26b66;
|
|
--color-success-bg: #dafbe1;
|
|
--color-success-text: var(--color-text);
|
|
--color-warning-border: #d4a72c66;
|
|
--color-warning-bg: #fff8c5;
|
|
--color-warning-text: var(--color-text);
|
|
--color-info-border: #54aeff66;
|
|
--color-info-bg: #ddf4ff;
|
|
--color-info-text: var(--color-text);
|
|
--color-red-badge: #db2828;
|
|
--color-red-badge-bg: #db28281a;
|
|
--color-red-badge-hover-bg: #db28284d;
|
|
--color-green-badge: #21ba45;
|
|
--color-green-badge-bg: #21ba451a;
|
|
--color-green-badge-hover-bg: #21ba454d;
|
|
--color-yellow-badge: #fbbd08;
|
|
--color-yellow-badge-bg: #fbbd081a;
|
|
--color-yellow-badge-hover-bg: #fbbd084d;
|
|
--color-orange-badge: #f2711c;
|
|
--color-orange-badge-bg: #f2711c1a;
|
|
--color-orange-badge-hover-bg: #f2711c4d;
|
|
--color-git: #f05133;
|
|
--color-logo: #609926;
|
|
/* target-based colors */
|
|
--color-body: #ffffff;
|
|
--color-box-header: #f1f3f5;
|
|
--color-box-body: #ffffff;
|
|
--color-box-body-highlight: #ecf5fd;
|
|
--color-text-dark: #01050a;
|
|
--color-text: #181c21;
|
|
--color-text-light: #30363b;
|
|
--color-text-light-1: #40474d;
|
|
--color-text-light-2: #5b6167;
|
|
--color-text-light-3: #747c84;
|
|
--color-footer: var(--color-nav-bg);
|
|
--color-timeline: #d0d7de;
|
|
--color-input-text: var(--color-text-dark);
|
|
--color-input-background: #fff;
|
|
--color-input-toggle-background: #d0d7de;
|
|
--color-input-border: var(--color-secondary-dark-1);
|
|
--color-light: #00001706;
|
|
--color-light-border: #0000171d;
|
|
--color-hover: #00001708;
|
|
--color-hover-opaque: #f1f3f5; /* TODO: color-mix(in srgb, var(--color-body), var(--color-hover)); */
|
|
--color-active: #00001714;
|
|
--color-menu: #f8f9fb;
|
|
--color-card: #f8f9fb;
|
|
--color-markup-table-row: #0030600a;
|
|
--color-markup-code-block: #00306010;
|
|
--color-markup-code-inline: #00306012;
|
|
--color-button: #f8f9fb;
|
|
--color-code-bg: #fafdff;
|
|
--color-shadow: #00001726;
|
|
--color-shadow-opaque: #c7ced5;
|
|
--color-secondary-bg: #f2f5f8;
|
|
--color-expand-button: #cfe8fa;
|
|
--color-placeholder-text: var(--color-text-light-3);
|
|
--color-editor-line-highlight: var(--color-secondary-alpha-30);
|
|
--color-editor-selection: var(--color-primary-alpha-30);
|
|
--color-project-column-bg: var(--color-secondary-light-4);
|
|
--color-caret: var(--color-text-dark);
|
|
--color-reaction-bg: #0000170a;
|
|
--color-reaction-hover-bg: var(--color-primary-light-5);
|
|
--color-reaction-active-bg: var(--color-primary-light-6);
|
|
--color-tooltip-text: #fbfdff;
|
|
--color-tooltip-bg: #000017f0;
|
|
--color-nav-bg: #f6f7fa;
|
|
--color-nav-hover-bg: var(--color-secondary-light-1);
|
|
--color-nav-text: var(--color-text);
|
|
--color-secondary-nav-bg: #f9fafb;
|
|
--color-label-text: var(--color-text);
|
|
--color-label-bg: #949da64b;
|
|
--color-label-hover-bg: #949da6a0;
|
|
--color-label-active-bg: #949da6ff;
|
|
--color-accent: var(--color-primary-light-1);
|
|
--color-small-accent: var(--color-primary-light-6);
|
|
--color-highlight-fg: #eed200;
|
|
--color-highlight-bg: #f5efc5;
|
|
--color-overlay-backdrop: #080808c0;
|
|
--color-danger: var(--color-red);
|
|
--color-transparency-grid-light: #fafafa;
|
|
--color-transparency-grid-dark: #e2e2e2;
|
|
--color-workflow-edge-hover: #b1b7bd;
|
|
--color-syntax-keyword: #a73a00;
|
|
--color-syntax-bool: #076872;
|
|
--color-syntax-control: #7d5700;
|
|
--color-syntax-name: #785900;
|
|
--color-syntax-type: #ae2368;
|
|
--color-syntax-number: #105ead;
|
|
--color-syntax-operator: #a73a00;
|
|
--color-syntax-regexp: #773dc5;
|
|
--color-syntax-string: #456800;
|
|
--color-syntax-comment: #506070;
|
|
--color-syntax-invalid: #c00000;
|
|
--color-syntax-link: var(--color-primary);
|
|
--color-syntax-tag: #a73a00;
|
|
--color-syntax-attribute: #6f41c5;
|
|
--color-syntax-property: #2060a0;
|
|
--color-syntax-variable: #944a00;
|
|
--color-syntax-string-special: #7d5700;
|
|
--color-syntax-escape: #785900;
|
|
--color-syntax-entity: #6f41c5;
|
|
--color-syntax-preproc: #2d6a4b;
|
|
--color-syntax-preproc-file: #105ead;
|
|
--color-syntax-decorator: #2d6a4b;
|
|
--color-syntax-namespace: #555555;
|
|
--color-syntax-name-pseudo: #6f41c5;
|
|
--color-syntax-comment-special: #773dc5;
|
|
--color-syntax-text: inherit;
|
|
--color-syntax-text-alt: #47525b;
|
|
--color-syntax-punctuation: inherit;
|
|
--color-syntax-whitespace: #bbbbbb;
|
|
--color-syntax-diff-fg: #000000;
|
|
--color-syntax-deleted-bg: #ffdddd;
|
|
--color-syntax-inserted-bg: #ddffdd;
|
|
--color-syntax-emph: #8b5000;
|
|
--color-syntax-strong: inherit;
|
|
--color-syntax-heading: #7d5700;
|
|
--color-syntax-subheading: #456800;
|
|
--color-syntax-output: #506070;
|
|
--color-syntax-prompt: #944a00;
|
|
--color-syntax-traceback: #c00000;
|
|
--color-syntax-matching-bracket-bg: #00b5ad38;
|
|
--color-syntax-nonmatching-bracket-bg: #db282838;
|
|
accent-color: var(--color-accent);
|
|
color-scheme: light;
|
|
}
|