From d50c6bb9e3899e52818878a71348a1bb556555e1 Mon Sep 17 00:00:00 2001 From: Daniel Smith Date: Fri, 26 Oct 2018 11:59:49 -0400 Subject: Yaru: Add theme (preliminary) --- themes/dark/yaru.json | 400 ++++++++++++++++++++++++++++++++++++++++++++++++ themes/src/dark/yaru.ts | 67 ++++++++ 2 files changed, 467 insertions(+) create mode 100644 themes/dark/yaru.json create mode 100644 themes/src/dark/yaru.ts (limited to 'themes') diff --git a/themes/dark/yaru.json b/themes/dark/yaru.json new file mode 100644 index 0000000..fddab5f --- /dev/null +++ b/themes/dark/yaru.json @@ -0,0 +1,400 @@ +{ + "name": "Yaru", + "tokenColors": [ + { + "name": "Global settings", + "settings": { + "background": "#2b2929", + "foreground": "#FFFFFF" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#FF5555" + } + }, + { + "name": "String Escape", + "scope": "constant.character.escape, text.html constant.character.entity.named, punctuation.definition.entity.html", + "settings": { + "foreground": "#ff7f7f" + } + }, + { + "name": "Boolean", + "scope": "constant.language.boolean", + "settings": { + "foreground": "#e95420" + } + }, + { + "name": "Number", + "scope": "constant.numeric", + "settings": { + "foreground": "#9f639a" + } + }, + { + "name": "Identifier", + "scope": "variable, support.variable, support.class, support.constant, meta.definition.variable entity.name.function", + "settings": { + "foreground": "#ff7e30" + } + }, + { + "name": "Keyword", + "scope": "keyword, modifier, variable.language.this, support.type.object, constant.language", + "settings": { + "foreground": "#9f639a" + } + }, + { + "name": "Function call", + "scope": "entity.name.function, support.function", + "settings": { + "foreground": "#9f639a" + } + }, + { + "name": "Storage", + "scope": "storage.type, storage.modifier", + "settings": { + "foreground": "#e95420" + } + }, + { + "name": "Modules", + "scope": "support.module, support.node", + "settings": { + "foreground": "#ff7e30", + "fontStyle": "italic" + } + }, + { + "name": "Type", + "scope": "support.type", + "settings": { + "foreground": "#55FF55" + } + }, + { + "name": "Type", + "scope": "entity.name.type, entity.other.inherited-class", + "settings": { + "foreground": "#55FF55" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#817b7b", + "fontStyle": "italic" + } + }, + { + "name": "Class", + "scope": "entity.name.type.class", + "settings": { + "foreground": "#55FF55", + "fontStyle": "underline" + } + }, + { + "name": "Class variable", + "scope": "variable.object.property, meta.field.declaration entity.name.function", + "settings": { + "foreground": "#55FF55" + } + }, + { + "name": "Class method", + "scope": "meta.definition.method entity.name.function", + "settings": { + "foreground": "#55FF55" + } + }, + { + "name": "Function definition", + "scope": "meta.function entity.name.function", + "settings": { + "foreground": "#55FF55" + } + }, + { + "name": "Template expression", + "scope": "template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end", + "settings": { + "foreground": "#9f639a" + } + }, + { + "name": "Reset embedded/template expression colors", + "scope": "meta.embedded, source.groovy.embedded, meta.template.expression", + "settings": { + "foreground": "#FFFFFF" + } + }, + { + "name": "YAML key", + "scope": "entity.name.tag.yaml", + "settings": { + "foreground": "#ff7e30" + } + }, + { + "name": "JSON key", + "scope": "meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json", + "settings": { + "foreground": "#ff7e30" + } + }, + { + "name": "JSON constant", + "scope": "constant.language.json", + "settings": { + "foreground": "#9f639a" + } + }, + { + "name": "CSS class", + "scope": "entity.other.attribute-name.class", + "settings": { + "foreground": "#e95420" + } + }, + { + "name": "CSS ID", + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#FF5555" + } + }, + { + "name": "CSS tag", + "scope": "source.css entity.name.tag", + "settings": { + "foreground": "#55FF55" + } + }, + { + "name": "HTML tag outer", + "scope": "meta.tag, punctuation.definition.tag", + "settings": { + "foreground": "#9f639a" + } + }, + { + "name": "HTML tag inner", + "scope": "entity.name.tag", + "settings": { + "foreground": "#ff7e30" + } + }, + { + "name": "HTML tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#9f639a" + } + }, + { + "name": "Markdown heading", + "scope": "markup.heading", + "settings": { + "foreground": "#9f639a" + } + }, + { + "name": "Markdown link text", + "scope": "text.html.markdown meta.link.inline, meta.link.reference", + "settings": { + "foreground": "#ff7e30" + } + }, + { + "name": "Markdown list item", + "scope": "text.html.markdown beginning.punctuation.definition.list", + "settings": { + "foreground": "#9f639a" + } + }, + { + "name": "Markdown italic", + "scope": "markup.italic", + "settings": { + "foreground": "#ff7e30", + "fontStyle": "italic" + } + }, + { + "name": "Markdown bold", + "scope": "markup.bold", + "settings": { + "foreground": "#ff7e30", + "fontStyle": "bold" + } + }, + { + "name": "Markdown bold italic", + "scope": "markup.bold markup.italic, markup.italic markup.bold", + "settings": { + "foreground": "#ff7e30", + "fontStyle": "italic bold" + } + }, + { + "name": "Markdown code block", + "scope": "markup.fenced_code.block.markdown punctuation.definition.markdown", + "settings": { + "foreground": "#FF5555" + } + }, + { + "name": "Markdown inline code", + "scope": "markup.inline.raw.string.markdown", + "settings": { + "foreground": "#FF5555" + } + }, + { + "name": "INI property name", + "scope": "keyword.other.definition.ini", + "settings": { + "foreground": "#ff7e30" + } + }, + { + "name": "INI section title", + "scope": "entity.name.section.group-title.ini", + "settings": { + "foreground": "#9f639a" + } + }, + { + "name": "C# class", + "scope": "source.cs meta.class.identifier storage.type", + "settings": { + "foreground": "#55FF55", + "fontStyle": "underline" + } + }, + { + "name": "C# class method", + "scope": "source.cs meta.method.identifier entity.name.function", + "settings": { + "foreground": "#55FF55" + } + }, + { + "name": "C# function call", + "scope": "source.cs meta.method-call meta.method, source.cs entity.name.function", + "settings": { + "foreground": "#9f639a" + } + }, + { + "name": "C# type", + "scope": "source.cs storage.type", + "settings": { + "foreground": "#55FF55" + } + }, + { + "name": "C# return type", + "scope": "source.cs meta.method.return-type", + "settings": { + "foreground": "#55FF55" + } + }, + { + "name": "C# preprocessor", + "scope": "source.cs meta.preprocessor", + "settings": { + "foreground": "#817b7b" + } + }, + { + "name": "C# namespace", + "scope": "source.cs entity.name.type.namespace", + "settings": { + "foreground": "#FFFFFF" + } + }, + { + "name": "Global settings", + "settings": { + "background": "#2b2929", + "foreground": "#FFFFFF" + } + } + ], + "colors": { + "focusBorder": "#e95420", + "foreground": "#FFFFFF", + "dropdown.background": "#444141", + "input.background": "#444141", + "inputOption.activeBorder": "#e95420", + "list.activeSelectionBackground": "#e9542080", + "list.dropBackground": "#e9542080", + "list.focusBackground": "#e9542080", + "list.hoverBackground": "#FFFFFF1a", + "list.inactiveSelectionBackground": "#FFFFFF33", + "activityBar.background": "#3c3939", + "activityBar.dropBackground": "#e9542080", + "activityBarBadge.background": "#e95420", + "sideBar.background": "#2b2929", + "sideBarSectionHeader.background": "#3c3939", + "editorGroup.dropBackground": "#e9542080", + "editorGroup.focusedEmptyBorder": "#e95420", + "editorGroupHeader.tabsBackground": "#2b2929", + "tab.border": "#00000033", + "tab.activeBorder": "#e95420", + "tab.inactiveBackground": "#3c3939", + "editor.background": "#111111", + "editor.foreground": "#FFFFFF", + "editorLineNumber.foreground": "#FFFFFF4d", + "editorLineNumber.activeForeground": "#e95420", + "editor.lineHighlightBorder": "#FFFFFF1a", + "editor.rangeHighlightBackground": "#FFFFFF0d", + "editorWidget.background": "#333131", + "editorHoverWidget.background": "#333131", + "editorMarkerNavigation.background": "#333131", + "peekView.border": "#e95420", + "peekViewEditor.background": "#222020", + "peekViewResult.background": "#333131", + "peekViewTitle.background": "#2b2929", + "panel.background": "#111111", + "panel.border": "#FFFFFF1a", + "panelTitle.activeBorder": "#FFFFFF80", + "panelTitle.inactiveForeground": "#FFFFFF80", + "statusBar.background": "#222020", + "statusBar.debuggingBackground": "#e95420", + "statusBar.noFolderBackground": "#222020", + "statusBarItem.activeBackground": "#e9542080", + "statusBarItem.hoverBackground": "#FFFFFF1a", + "titleBar.activeBackground": "#222020", + "pickerGroup.border": "#FFFFFF1a", + "terminal.ansiBlack": "#000000", + "terminal.ansiBlue": "#0000aa", + "terminal.ansiBrightBlack": "#555555", + "terminal.ansiBrightBlue": "#5555ff", + "terminal.ansiBrightCyan": "#55ffff", + "terminal.ansiBrightGreen": "#55ff55", + "terminal.ansiBrightMagenta": "#ff55ff", + "terminal.ansiBrightRed": "#ff5555", + "terminal.ansiBrightWhite": "#ffffff", + "terminal.ansiBrightYellow": "#ffff55", + "terminal.ansiCyan": "#00aaaa", + "terminal.ansiGreen": "#00aa00", + "terminal.ansiMagenta": "#aa00aa", + "terminal.ansiRed": "#aa0000", + "terminal.ansiWhite": "#aaaaaa", + "terminal.ansiYellow": "#aa5500", + "debugToolBar.background": "#3c3939", + "selection.background": "#e95420", + "terminal.background": "#300a24" + } +} \ No newline at end of file diff --git a/themes/src/dark/yaru.ts b/themes/src/dark/yaru.ts new file mode 100644 index 0000000..a1a38cd --- /dev/null +++ b/themes/src/dark/yaru.ts @@ -0,0 +1,67 @@ +import * as path from 'path'; +import { generateTheme, IColorSet } from 'vscode-theme-generator'; + +const themeName = 'Yaru'; +const colors = { + black: '#111111', + white: '#FFFFFF', + blue: '#5555FF', + red: '#FF5555', + green: '#55FF55', + yellow: '#FFFF33', + ubuntuGray: '#2b2929', + ubuntuMediumGray: '#1e1d1d', + ubuntuDarkGray: '#111111', + ubuntuOrange: '#e95420', + lightAubergine: '#77216f', + lighterAubergine: '#9f639a', + midAubergine: '#5e2750', + darkAubergine: '#2c001e' +} + +const colorSet: IColorSet = { + base: { + background: colors.ubuntuGray, + foreground: colors.white, + color1: colors.ubuntuOrange, + color2: colors.red, + color3: colors.green, + color4: colors.lighterAubergine + }, + syntax: { + keyword: colors.lighterAubergine + }, + terminal: { + black: '#000000', + red: '#aa0000', + green: '#00aa00', + yellow: '#aa5500', + blue: '#0000aa', + magenta: '#aa00aa', + cyan: '#00aaaa', + white: '#aaaaaa', + brightBlack: '#555555', + brightRed: '#ff5555', + brightGreen: '#55ff55', + brightYellow: '#ffff55', + brightBlue: '#5555ff', + brightMagenta: '#ff55ff', + brightCyan: '#55ffff', + brightWhite: '#ffffff', + }, + overrides: { + 'editor.background': colors.ubuntuDarkGray, + 'editorGroupHeader.tabsBackground': colors.ubuntuGray, + 'panel.background': colors.ubuntuDarkGray, + 'sideBar.background': colors.ubuntuGray, + 'terminal.background': '#300a24', + } +}; + +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