@uiw/codemirror-theme-duotone
Version:
Theme duotone for CodeMirror.
102 lines • 2.58 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
/**
* @name duotone
* @author Bram de Haan
* by Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes)
*/
import { tags as t } from '@lezer/highlight';
import { createTheme } from '@uiw/codemirror-themes';
export var defaultSettingsDuotoneLight = {
background: '#faf8f5',
foreground: '#b29762',
caret: '#93abdc',
selection: '#e3dcce',
selectionMatch: '#e3dcce',
gutterBackground: '#faf8f5',
gutterForeground: '#cdc4b1',
gutterBorder: 'transparent',
lineHighlight: '#ddceb154'
};
export var douToneLightStyle = [{
tag: [t.comment, t.bracket],
color: '#b6ad9a'
}, {
tag: [t.atom, t.number, t.keyword, t.link, t.attributeName, t.quote],
color: '#063289'
}, {
tag: [t.emphasis, t.heading, t.tagName, t.propertyName, t.variableName],
color: '#2d2006'
}, {
tag: [t.typeName, t.url, t.string],
color: '#896724'
}, {
tag: [t.operator, t.string],
color: '#1659df'
}, {
tag: [t.propertyName],
color: '#b29762'
}, {
tag: [t.unit, t.punctuation],
color: '#063289'
}];
export var duotoneLightInit = options => {
var {
theme = 'light',
settings = {},
styles = []
} = options || {};
return createTheme({
theme: theme,
settings: _extends({}, defaultSettingsDuotoneLight, settings),
styles: [...douToneLightStyle, ...styles]
});
};
export var duotoneLight = duotoneLightInit();
export var defaultSettingsDuotoneDark = {
background: '#2a2734',
foreground: '#6c6783',
caret: '#ffad5c',
selection: '#91ff6c26',
selectionMatch: '#91ff6c26',
gutterBackground: '#2a2734',
gutterForeground: '#545167',
lineHighlight: '#36334280'
};
export var duotoneDarkStyle = [{
tag: [t.comment, t.bracket],
color: '#6c6783'
}, {
tag: [t.atom, t.number, t.keyword, t.link, t.attributeName, t.quote],
color: '#ffcc99'
}, {
tag: [t.emphasis, t.heading, t.tagName, t.propertyName, t.className, t.variableName],
color: '#eeebff'
}, {
tag: [t.typeName, t.url],
color: '#7a63ee'
}, {
tag: t.operator,
color: '#ffad5c'
}, {
tag: t.string,
color: '#ffb870'
}, {
tag: [t.propertyName],
color: '#9a86fd'
}, {
tag: [t.unit, t.punctuation],
color: '#e09142'
}];
export var duotoneDarkInit = options => {
var {
theme = 'dark',
settings = {},
styles = []
} = options || {};
return createTheme({
theme: theme,
settings: _extends({}, defaultSettingsDuotoneDark, settings),
styles: [...duotoneDarkStyle, ...styles]
});
};
export var duotoneDark = duotoneDarkInit();