Files
voidraft/frontend/src/views/editor/theme/dark/one-dark.ts
2025-11-21 00:03:03 +08:00

124 lines
2.8 KiB
TypeScript

import {Extension} from '@codemirror/state';
import {createBaseTheme} from '../base';
import type {ThemeColors} from '../types';
const chalky = '#e5c07b';
const coral = '#e06c75';
const cyan = '#56b6c2';
const ivory = '#abb2bf';
const stone = '#7d8799';
const malibu = '#61afef';
const sage = '#98c379';
const whiskey = '#d19a66';
const violet = '#c678dd';
const darkBackground = '#21252b';
const highlightBackground = '#313949ff';
const background = '#282c34';
const selection = '#3e4451';
export const config: ThemeColors = {
themeName: 'one-dark',
dark: true,
background,
backgroundSecondary: highlightBackground,
foreground: ivory,
cursor: '#528bff',
selection,
activeLine: '#6699ff0b',
lineNumber: stone,
activeLineNumber: ivory,
diffInserted: sage,
diffDeleted: coral,
diffChanged: whiskey,
borderColor: darkBackground,
matchingBracket: '#bad0f847',
comment: stone,
lineComment: '#6c7484',
blockComment: '#606775',
docComment: '#8b92a0',
name: ivory,
variableName: coral,
typeName: chalky,
tagName: '#e4c78f',
propertyName: '#d7dee8',
attributeName: '#efb8c2',
className: chalky,
labelName: '#f7b267',
namespace: '#88c0ff',
macroName: malibu,
literal: chalky,
string: sage,
docString: '#b3d899',
character: '#d9f59c',
attributeValue: '#f0c390',
number: chalky,
integer: '#f2c78d',
float: '#f1ba6a',
bool: '#f28f6a',
regexp: cyan,
escape: '#7fd5e9',
color: whiskey,
url: '#7dc7ff',
keyword: violet,
self: '#d98ae8',
null: '#ef8fa8',
atom: whiskey,
unit: '#fbd38a',
modifier: '#d391f2',
operatorKeyword: '#78c3d6',
controlKeyword: '#bf6edb',
definitionKeyword: '#d383e6',
moduleKeyword: '#a6c1ff',
operator: cyan,
derefOperator: '#72c1d3',
arithmeticOperator: '#6ab4ce',
logicOperator: '#6ccad7',
bitwiseOperator: '#4fa8c2',
compareOperator: '#64b9cc',
updateOperator: '#4299b8',
definitionOperator: '#398daf',
typeOperator: '#3fc4e2',
controlOperator: '#3f96b0',
punctuation: '#8eaac2',
separator: '#7a96b1',
bracket: '#b3bcc7',
angleBracket: '#cfd5dd',
squareBracket: '#96a2ae',
paren: '#7f8c97',
brace: '#9aa5af',
content: ivory,
heading: coral,
heading1: '#ffb19d',
heading2: '#ffa188',
heading3: '#ff9173',
heading4: '#ff825e',
heading5: '#ff7249',
heading6: '#ff6234',
contentSeparator: cyan,
list: '#9da7b4',
quote: '#8b94a4',
emphasis: ivory,
strong: '#f4f6f8',
link: malibu,
monospace: '#c2cad1',
strikethrough: '#9ea5b1',
inserted: sage,
deleted: coral,
changed: whiskey,
invalid: '#ffffff',
meta: '#96a1b4',
documentMeta: '#8a95a6',
annotation: '#84d0ff',
processingInstruction: '#7c889c',
definition: '#c9cfd8',
constant: whiskey,
function: malibu,
standard: '#aeb7c5',
local: '#b9c2ce',
special: '#f4d67a',
};
export const oneDark: Extension = createBaseTheme(config);