Files
australis-theme-generator/demo/generate.ts
2018-04-26 12:37:09 -07:00

125 lines
3.4 KiB
TypeScript

import * as path from 'path';
import { generateTheme, IColorSet } from '../dist';
const sapphireColors = {
red: '#DA6771',
redLight: '#e5949b',
green: '#4EB071',
greenDim: '#275839',
yellow: '#fff099',
blue: '#399EF4',
blueLight: '#9fcff9',
pink: '#B168DF',
teal: '#21C5C7',
grey: '#4A5160'
};
const sapphireColorSet: IColorSet = {
type: 'dark',
base: {
background: '#12171f',
foreground: '#efefef',
color1: sapphireColors.blue,
color2: sapphireColors.red,
color3: sapphireColors.green,
color4: sapphireColors.yellow
},
syntax: {
identifier: sapphireColors.blueLight,
string: sapphireColors.red,
number: sapphireColors.redLight,
keyword: sapphireColors.blue,
boolean: sapphireColors.blue,
function: sapphireColors.teal,
functionCall: sapphireColors.yellow,
storage: sapphireColors.blue,
comment: sapphireColors.grey,
class: sapphireColors.teal,
classMember: sapphireColors.teal,
type: sapphireColors.green,
cssClass: sapphireColors.blue,
cssId: sapphireColors.red,
cssTag: sapphireColors.teal,
markdownQuote: '#c0c0c0'
},
ui: {
cursor: '#ffffff',
guide: '#263040',
invisibles: '#263040',
rangeHighlight: '#263040',
// Bright red 50% opacity
findMatchHighlight: '#cb606080',
// Brighter red 50% opacity
currentFindMatchHighlight: '#ff777780',
selection: '#153958',
// Blue 50% opacity
selectionHighlight: '#2b74b380',
// White with ~10% opacity
wordHighlight: '#ffffff18',
wordHighlightStrong: '#ffffff18',
activeLinkForeground: sapphireColors.blue
},
terminal: {
black: '#666666',
red: sapphireColors.red,
green: sapphireColors.green,
yellow: sapphireColors.yellow,
blue: sapphireColors.blue,
magenta: sapphireColors.pink,
cyan: sapphireColors.teal,
white: '#efefef',
brightBlack: '#666666',
brightRed: sapphireColors.red,
brightGreen: sapphireColors.green,
brightYellow: sapphireColors.yellow,
brightBlue: sapphireColors.blue,
brightMagenta: sapphireColors.pink,
brightCyan: sapphireColors.teal,
brightWhite: '#efefef'
},
overrides: {
'editorError.foreground': '#ff0000'
}
};
const minimalDarkColorSet: IColorSet = {
type: 'dark',
base: {
background: '#22272f',
foreground: '#efefef',
color1: sapphireColors.blue,
color2: sapphireColors.red,
color3: sapphireColors.green,
color4: sapphireColors.yellow
}
};
const minimalLightColorSet: IColorSet = {
type: 'light',
base: {
background: '#efefff',
foreground: '#000011',
color1: sapphireColors.blue,
color2: sapphireColors.red,
color3: sapphireColors.green,
color4: sapphireColors.yellow
}
};
const minimalCoverageColorSet: IColorSet = {
type: 'dark',
base: {
background: '#FF0000',
foreground: '#0000FF',
color1: '#00FF00',
color2: '#00FF00',
color3: '#00FF00',
color4: '#00FF00'
}
};
generateTheme('Generated Theme', sapphireColorSet, path.join(__dirname, 'theme.json'));
generateTheme('Generated Theme (minimal, dark)', minimalDarkColorSet, path.join(__dirname, 'theme-minimal-dark.json'));
generateTheme('Generated Theme (minimal, light)', minimalLightColorSet, path.join(__dirname, 'theme-minimal-light.json'));
generateTheme('Generated Theme (minimal, coverage)', minimalCoverageColorSet, path.join(__dirname, 'theme-minimal-coverage.json'));