From 9a0134df27cfbdaff641197a44ad3b94d149beb6 Mon Sep 17 00:00:00 2001 From: Daniel Smith Date: Sat, 27 Jun 2020 16:38:29 -0400 Subject: Add Elementary theme (#25) --- themes/light/elementary.json | 433 +++++++++++++++++++++++++++++++++++++++++ themes/src/light/elementary.ts | 139 +++++++++++++ 2 files changed, 572 insertions(+) create mode 100644 themes/light/elementary.json create mode 100644 themes/src/light/elementary.ts (limited to 'themes') diff --git a/themes/light/elementary.json b/themes/light/elementary.json new file mode 100644 index 0000000..0af8ba7 --- /dev/null +++ b/themes/light/elementary.json @@ -0,0 +1,433 @@ +{ + "name": "Elementary", + "tokenColors": [ + { + "name": "Global settings", + "settings": { + "background": "#eff0f1", + "foreground": "#5e5e5e" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#ff0000" + } + }, + { + "name": "String Escape", + "scope": "constant.character.escape, text.html constant.character.entity.named, punctuation.definition.entity.html", + "settings": { + "foreground": "#7f0000" + } + }, + { + "name": "Boolean", + "scope": "constant.language.boolean", + "settings": { + "foreground": "#92a2a0" + } + }, + { + "name": "Number", + "scope": "constant.numeric", + "settings": { + "foreground": "#49b8b9" + } + }, + { + "name": "Identifier", + "scope": "variable, support.variable, support.class, support.constant, meta.definition.variable entity.name.function", + "settings": { + "foreground": "#495150" + } + }, + { + "name": "Keyword", + "scope": "keyword, modifier, variable.language.this, support.type.object, constant.language", + "settings": { + "foreground": "#cb5226" + } + }, + { + "name": "Function call", + "scope": "entity.name.function, support.function", + "settings": { + "foreground": "#727dc9" + } + }, + { + "name": "Storage", + "scope": "storage.type, storage.modifier", + "settings": { + "foreground": "#cb5226" + } + }, + { + "name": "Modules", + "scope": "support.module, support.node", + "settings": { + "foreground": "#495150", + "fontStyle": "italic" + } + }, + { + "name": "Type", + "scope": "support.type", + "settings": { + "foreground": "#b78e1d" + } + }, + { + "name": "Type", + "scope": "entity.name.type, entity.other.inherited-class", + "settings": { + "foreground": "#b78e1d" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#aab5b1", + "fontStyle": "italic" + } + }, + { + "name": "Class", + "scope": "entity.name.type.class", + "settings": { + "foreground": "#b78e1d", + "fontStyle": "underline" + } + }, + { + "name": "Class variable", + "scope": "variable.object.property, meta.field.declaration entity.name.function", + "settings": { + "foreground": "#b78e1d" + } + }, + { + "name": "Class method", + "scope": "meta.definition.method entity.name.function", + "settings": { + "foreground": "#b78e1d" + } + }, + { + "name": "Function definition", + "scope": "meta.function entity.name.function", + "settings": { + "foreground": "#727dc9" + } + }, + { + "name": "Template expression", + "scope": "template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end", + "settings": { + "foreground": "#cb5226" + } + }, + { + "name": "Reset embedded/template expression colors", + "scope": "meta.embedded, source.groovy.embedded, meta.template.expression", + "settings": { + "foreground": "#5e5e5e" + } + }, + { + "name": "YAML key", + "scope": "entity.name.tag.yaml", + "settings": { + "foreground": "#495150" + } + }, + { + "name": "JSON key", + "scope": "meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json", + "settings": { + "foreground": "#495150" + } + }, + { + "name": "JSON constant", + "scope": "constant.language.json", + "settings": { + "foreground": "#cb5226" + } + }, + { + "name": "CSS class", + "scope": "entity.other.attribute-name.class", + "settings": { + "foreground": "#92a2a0" + } + }, + { + "name": "CSS ID", + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#ff0000" + } + }, + { + "name": "CSS tag", + "scope": "source.css entity.name.tag", + "settings": { + "foreground": "#b78e1d" + } + }, + { + "name": "HTML tag outer", + "scope": "meta.tag, punctuation.definition.tag", + "settings": { + "foreground": "#cb5226" + } + }, + { + "name": "HTML tag inner", + "scope": "entity.name.tag", + "settings": { + "foreground": "#495150" + } + }, + { + "name": "HTML tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#727dc9" + } + }, + { + "name": "Markdown heading", + "scope": "markup.heading", + "settings": { + "foreground": "#cb5226" + } + }, + { + "name": "Markdown link text", + "scope": "text.html.markdown meta.link.inline, meta.link.reference", + "settings": { + "foreground": "#495150" + } + }, + { + "name": "Markdown block quote", + "scope": "text.html.markdown markup.quote", + "settings": { + "foreground": "#aab5b1" + } + }, + { + "name": "Markdown list item", + "scope": "text.html.markdown beginning.punctuation.definition.list", + "settings": { + "foreground": "#cb5226" + } + }, + { + "name": "Markdown italic", + "scope": "markup.italic", + "settings": { + "foreground": "#495150", + "fontStyle": "italic" + } + }, + { + "name": "Markdown bold", + "scope": "markup.bold", + "settings": { + "foreground": "#495150", + "fontStyle": "bold" + } + }, + { + "name": "Markdown bold italic", + "scope": "markup.bold markup.italic, markup.italic markup.bold", + "settings": { + "foreground": "#495150", + "fontStyle": "italic bold" + } + }, + { + "name": "Markdown code block", + "scope": "markup.fenced_code.block.markdown punctuation.definition.markdown", + "settings": { + "foreground": "#ff0000" + } + }, + { + "name": "Markdown inline code", + "scope": "markup.inline.raw.string.markdown", + "settings": { + "foreground": "#ff0000" + } + }, + { + "name": "INI property name", + "scope": "keyword.other.definition.ini", + "settings": { + "foreground": "#495150" + } + }, + { + "name": "INI section title", + "scope": "entity.name.section.group-title.ini", + "settings": { + "foreground": "#cb5226" + } + }, + { + "name": "C# class", + "scope": "source.cs meta.class.identifier storage.type", + "settings": { + "foreground": "#b78e1d", + "fontStyle": "underline" + } + }, + { + "name": "C# class method", + "scope": "source.cs meta.method.identifier entity.name.function", + "settings": { + "foreground": "#b78e1d" + } + }, + { + "name": "C# function call", + "scope": "source.cs meta.method-call meta.method, source.cs entity.name.function", + "settings": { + "foreground": "#727dc9" + } + }, + { + "name": "C# type", + "scope": "source.cs storage.type", + "settings": { + "foreground": "#b78e1d" + } + }, + { + "name": "C# return type", + "scope": "source.cs meta.method.return-type", + "settings": { + "foreground": "#b78e1d" + } + }, + { + "name": "C# preprocessor", + "scope": "source.cs meta.preprocessor", + "settings": { + "foreground": "#aab5b1" + } + }, + { + "name": "C# namespace", + "scope": "source.cs entity.name.type.namespace", + "settings": { + "foreground": "#5e5e5e" + } + }, + { + "name": "Global settings", + "settings": { + "background": "#eff0f1", + "foreground": "#5e5e5e" + } + } + ], + "colors": { + "focusBorder": "#92a2a0", + "foreground": "#5e5e5e", + "dropdown.background": "#f5f5f5", + "input.background": "#f5f5f5", + "inputOption.activeBorder": "#92a2a0", + "list.activeSelectionBackground": "#92a2a0", + "list.dropBackground": "#92a2a080", + "list.focusBackground": "#92a2a080", + "list.hoverBackground": "#cccccc", + "list.inactiveSelectionBackground": "#cccccc", + "activityBar.background": "#d1d1d1", + "activityBar.dropBackground": "#92a2a080", + "activityBarBadge.background": "#92a2a0", + "sideBar.background": "#e2e2e2", + "sideBarSectionHeader.background": "#d1d1d1", + "editorGroup.dropBackground": "#92a2a080", + "editorGroup.focusedEmptyBorder": "#92a2a0", + "editorGroupHeader.tabsBackground": "#fbefce", + "tab.border": "#e9d18d", + "tab.activeBorder": "#fdf6e3", + "tab.inactiveBackground": "#fbefce", + "tab.activeModifiedBorder": "#92a2a0", + "tab.inactiveModifiedBorder": "#576160", + "tab.unfocusedActiveModifiedBorder": "#748180", + "tab.unfocusedInactiveModifiedBorder": "#576160", + "editor.background": "#fdf6e3", + "editor.foreground": "#5e5e5e", + "editorLineNumber.foreground": "#93a1a1", + "editorLineNumber.activeForeground": "#92a2a0", + "editor.selectionBackground": "#92a2a0", + "editor.selectionHighlightBackground": "#d6d6d6", + "editor.findMatchHighlight": "#d6d6d6", + "editor.findRangeHighlightBackground": "#d6d6d6", + "editor.lineHighlightBorder": "#d6d6d6", + "editor.rangeHighlightBackground": "#FFFFFF0d", + "editorWhitespace.foreground": "#e9d18d", + "editorIndentGuide.background": "#e9d18d", + "editorWidget.background": "#fbefce", + "editorHoverWidget.background": "#fbefce", + "editorMarkerNavigation.background": "#fbefce", + "peekView.border": "#92a2a0", + "peekViewEditor.background": "#fbefce", + "peekViewResult.background": "#fbefce", + "peekViewTitle.background": "#fbefce", + "panel.background": "#fbefce", + "panel.border": "#e9d18d", + "panelTitle.activeBorder": "#5e5e5e80", + "panelTitle.inactiveForeground": "#5e5e5e80", + "statusBar.background": "#ffffff", + "statusBar.debuggingBackground": "#92a2a0", + "statusBar.noFolderBackground": "#ffffff", + "statusBarItem.activeBackground": "#92a2a080", + "statusBarItem.hoverBackground": "#FFFFFF1a", + "titleBar.activeBackground": "#dcdcdc", + "pickerGroup.border": "#FFFFFF1a", + "terminal.ansiBlack": "#586e75", + "terminal.ansiBlue": "#268bd2", + "terminal.ansiBrightBlack": "#073642", + "terminal.ansiBrightBlue": "#268bd2", + "terminal.ansiBrightCyan": "#2aa198", + "terminal.ansiBrightGreen": "#859900", + "terminal.ansiBrightMagenta": "#ec0048", + "terminal.ansiBrightRed": "#dc322f", + "terminal.ansiBrightWhite": "#94a3a5", + "terminal.ansiBrightYellow": "#b58900", + "terminal.ansiCyan": "#2aa198", + "terminal.ansiGreen": "#859900", + "terminal.ansiMagenta": "#d33682", + "terminal.ansiRed": "#cb4b16", + "terminal.ansiWhite": "#eeeeee", + "terminal.ansiYellow": "#b58900", + "debugToolBar.background": "#8f9090", + "selection.background": "#92a2a0", + "activityBar.foreground": "#5e5e5e", + "editorCursor.foreground": "#5e5e5e", + "editorGroupHeader.tabsBorder": "#e9d18d", + "editorGutter.background": "#eee8d5", + "editorIndentGuide.activeBackground": "#92a2a0", + "editorRuler.foreground": "#e9d18d", + "editorSuggestWidget.background": "#fbefce", + "menu.background": "#f5f5f5", + "menu.selectionBackground": "#d6d6d6", + "menu.selectionForeground": "#5e5e5e", + "statusBar.foreground": "#5e5e5e", + "tab.inactiveBorder": "#e9d18d", + "terminal.background": "#252e32", + "terminal.foreground": "#94a3a5", + "titleBar.activeForeground": "#5e5e5e", + "titleBar.inactiveBackground": "#ececec", + "titleBar.inactiveForeground": "#848484" + } +} \ No newline at end of file diff --git a/themes/src/light/elementary.ts b/themes/src/light/elementary.ts new file mode 100644 index 0000000..7035df7 --- /dev/null +++ b/themes/src/light/elementary.ts @@ -0,0 +1,139 @@ +import * as path from 'path'; +import { generateTheme, IColorSet } from 'vscode-theme-generator'; + +const themeName = 'Elementary'; +const colors = { + white: '#FFFFFF', + cyan: '#008080', + red: '#ff0000', + green: '#00b300', + ubuntuOrange: '#e95420', + titleBarGray: '#dcdcdc', + inactiveTitleBarGray: '#ececec', + titleBarText: '#5e5e5e', + titleBarTextInactive: '#848484', + menuGray: '#f5f5f5', + menuSelectionGray: '#d6d6d6', + bodyGray: '#eff0f1', + editorGray: '#2f2f2f', + sideBarGray: '#e2e2e2', + highlightGray: '#cccccc', + commentGray: '#8c8c8c', + textGray: '#5e5e5e', + textSelectionGray: '#92a2a0', + ubuntuWarmGray: '#aea79f', + editorBackground: '#fdf6e3', + editorGutter: '#eee8d5', + lineNumberGray: '#93a1a1', + tabsBackground: '#fbefce', + tabsBorder: '#e9d18d', + activityBarGray: '#d1d1d1', + syntaxOrange: '#cb5226', + syntaxGold: '#b78e1d', + syntaxTeal: '#49b8b9', + syntaxLightGray: '#aab5b1', + syntaxLavender: '#727dc9', +} + +const colorSet: IColorSet = { + type: 'light', + base: { + background: colors.bodyGray, + foreground: colors.textGray, + color1: colors.textSelectionGray, + color2: colors.red, + color3: colors.syntaxGold, + color4: colors.syntaxTeal, + }, + syntax: { + comment: colors.syntaxLightGray, + function: colors.syntaxLavender, + functionCall: colors.syntaxLavender, + keyword: colors.syntaxOrange, + markdownQuote: colors.syntaxLightGray, + storage: colors.syntaxOrange, + }, + terminal: { + black: '#586e75', + red: '#cb4b16', + green: '#859900', + yellow: '#b58900', + blue: '#268bd2', + magenta: '#d33682', + cyan: '#2aa198', + white: '#eeeeee', + brightBlack: '#073642', + brightRed: '#dc322f', + brightGreen: '#859900', + brightYellow: '#b58900', + brightBlue: '#268bd2', + brightMagenta: '#ec0048', + brightCyan: '#2aa198', + brightWhite: '#94a3a5', + }, + ui: { + invisibles: colors.tabsBorder, + findMatchHighlight: colors.menuSelectionGray, + findRangeHighlight: colors.menuSelectionGray, + guide: colors.tabsBorder, + rangeHighlight: colors.menuSelectionGray, + selection: colors.textSelectionGray, + selectionHighlight: colors.menuSelectionGray, + }, + overrides: { + 'activityBar.background': colors.activityBarGray, + 'activityBar.foreground': colors.textGray, + // 'debugToolBar.background': colors.white, + 'dropdown.background': colors.menuGray, + 'editor.background': colors.editorBackground, + 'editorCursor.foreground': colors.textGray, + 'editorGroupHeader.tabsBackground': colors.tabsBackground, + 'editorGroupHeader.tabsBorder': colors.tabsBorder, + 'editorGutter.background': colors.editorGutter, + 'editorHoverWidget.background': colors.tabsBackground, + 'editorIndentGuide.activeBackground': colors.textSelectionGray, + 'editorLineNumber.foreground': colors.lineNumberGray, + 'editorMarkerNavigation.background': colors.tabsBackground, + 'editorRuler.foreground': colors.tabsBorder, + 'editorSuggestWidget.background': colors.tabsBackground, + 'editorWidget.background': colors.tabsBackground, + 'input.background': colors.menuGray, + 'list.activeSelectionBackground': colors.textSelectionGray, + 'list.hoverBackground': colors.highlightGray, + 'list.inactiveSelectionBackground': colors.highlightGray, + 'menu.background': colors.menuGray, + 'menu.selectionBackground': colors.menuSelectionGray, + 'menu.selectionForeground': colors.textGray, + // 'menubar.selectionBackground': colors.white, + // 'menubar.selectionForeground': colors.textGray, + 'panel.background': colors.tabsBackground, + 'panel.border': colors.tabsBorder, + 'peekViewEditor.background': colors.tabsBackground, + 'peekViewResult.background': colors.tabsBackground, + 'peekViewTitle.background': colors.tabsBackground, + 'sideBar.background': colors.sideBarGray, + 'sideBarSectionHeader.background': colors.activityBarGray, + // 'statusBar.background': colors.white, + // 'statusBar.debuggingForeground': colors.white, + 'statusBar.foreground': colors.textGray, + 'tab.activeBorder': colors.editorBackground, + 'tab.border': colors.tabsBorder, + 'tab.inactiveBackground': colors.tabsBackground, + 'tab.inactiveBorder': colors.tabsBorder, + // 'tab.unfocusedInactiveBackground': colors.bodyGray, + 'terminal.background': '#252e32', + 'terminal.foreground': '#94a3a5', + 'titleBar.activeBackground': colors.titleBarGray, + 'titleBar.activeForeground': colors.titleBarText, + 'titleBar.inactiveBackground': colors.inactiveTitleBarGray, + 'titleBar.inactiveForeground': colors.titleBarTextInactive, + } +}; + +var fileName = themeName + .toLowerCase() + .replace(/\[\w*\]/, '') + .trim() + .replace(/\s+/, '-') + '.json'; + +generateTheme(themeName, colorSet, path.join(__dirname, fileName)); \ No newline at end of file -- cgit v1.2.3