.gitignore π
@@ -7,6 +7,6 @@
/crates/collab/static/styles.css
/vendor/bin
/assets/themes/*.json
-/assets/themes/internal/*.json
-/assets/themes/experiments/*.json
+/assets/themes/Internal/*.json
+/assets/themes/Experiments/*.json
**/venv
Nate Butler created
Add new internal themes
.gitignore | 4
assets/settings/default.json | 442 +++++++++---------
assets/themes/experiments/.gitkeep | 0
assets/themes/internal/.gitkeep | 0
crates/settings/src/settings.rs | 2
crates/theme/src/theme_registry.rs | 4
styles/src/buildThemes.ts | 19
styles/src/themes/andromeda.ts | 8
styles/src/themes/atelier-cave.ts | 17
styles/src/themes/atelier-sulphurpool.ts | 12
styles/src/themes/common/base16.ts | 6
styles/src/themes/common/ramps.ts | 16
styles/src/themes/experiments/brushtrees.ts | 73 +++
styles/src/themes/internal/atelier-dune.ts | 34 +
styles/src/themes/internal/atelier-heath.ts | 53 ++
styles/src/themes/internal/atelier-seaside.ts | 34 +
styles/src/themes/internal/ayu-mirage.ts | 31 +
styles/src/themes/internal/ayu.ts | 52 ++
styles/src/themes/internal/dracula.ts | 31 +
styles/src/themes/internal/gruvbox-medium.ts | 138 +++++
styles/src/themes/internal/monokai.ts | 32 +
styles/src/themes/internal/nord.ts | 32 +
styles/src/themes/internal/seti-ui.ts | 32 +
styles/src/themes/internal/tokyo-night-storm.ts | 32 +
styles/src/themes/internal/tokyo-night.ts | 53 ++
styles/src/themes/internal/zed-pro.ts | 12
styles/src/themes/internal/zenburn.ts | 32 +
styles/src/themes/one-dark.ts | 60 +-
styles/src/themes/one-light.ts | 63 +-
styles/src/themes/rose-pine-dawn.ts | 8
styles/src/themes/rose-pine-moon.ts | 8
styles/src/themes/rose-pine.ts | 8
styles/src/themes/sandcastle.ts | 8
styles/src/themes/solarized.ts | 12
styles/src/themes/summercamp.ts | 8
styles/src/themes/template.ts | 69 --
36 files changed, 1,048 insertions(+), 397 deletions(-)
@@ -7,6 +7,6 @@
/crates/collab/static/styles.css
/vendor/bin
/assets/themes/*.json
-/assets/themes/internal/*.json
-/assets/themes/experiments/*.json
+/assets/themes/Internal/*.json
+/assets/themes/Experiments/*.json
**/venv
@@ -1,230 +1,230 @@
{
- // The name of the Zed theme to use for the UI
- "theme": "one-dark",
- // The name of a font to use for rendering text in the editor
- "buffer_font_family": "Zed Mono",
- // The default font size for text in the editor
- "buffer_font_size": 15,
- // Whether to enable vim modes and key bindings
- "vim_mode": false,
- // Whether to show the informational hover box when moving the mouse
- // over symbols in the editor.
- "hover_popover_enabled": true,
- // Whether the cursor blinks in the editor.
- "cursor_blink": true,
- // Whether to pop the completions menu while typing in an editor without
- // explicitly requesting it.
- "show_completions_on_input": true,
- // Whether new projects should start out 'online'. Online projects
- // appear in the contacts panel under your name, so that your contacts
- // can see which projects you are working on. Regardless of this
- // setting, projects keep their last online status when you reopen them.
- "projects_online_by_default": true,
- // Whether to use language servers to provide code intelligence.
- "enable_language_server": true,
- // When to automatically save edited buffers. This setting can
- // take four values.
- //
- // 1. Never automatically save:
- // "autosave": "off",
- // 2. Save when changing focus away from the Zed window:
- // "autosave": "on_window_change",
- // 3. Save when changing focus away from a specific buffer:
- // "autosave": "on_focus_change",
- // 4. Save when idle for a certain amount of time:
- // "autosave": { "after_delay": {"milliseconds": 500} },
- "autosave": "off",
- // Where to place the dock by default. This setting can take three
- // values:
- //
- // 1. Position the dock attached to the bottom of the workspace
- // "default_dock_anchor": "bottom"
- // 2. Position the dock to the right of the workspace like a side panel
- // "default_dock_anchor": "right"
- // 3. Position the dock full screen over the entire workspace"
- // "default_dock_anchor": "expanded"
- "default_dock_anchor": "right",
- // Whether or not to perform a buffer format before saving
- "format_on_save": "on",
- // How to perform a buffer format. This setting can take two values:
- //
- // 1. Format code using the current language server:
- // "format_on_save": "language_server"
- // 2. Format code using an external command:
- // "format_on_save": {
- // "external": {
- // "command": "prettier",
- // "arguments": ["--stdin-filepath", "{buffer_path}"]
- // }
+ // The name of the Zed theme to use for the UI
+ "theme": "One Dark",
+ // The name of a font to use for rendering text in the editor
+ "buffer_font_family": "Zed Mono",
+ // The default font size for text in the editor
+ "buffer_font_size": 15,
+ // Whether to enable vim modes and key bindings
+ "vim_mode": false,
+ // Whether to show the informational hover box when moving the mouse
+ // over symbols in the editor.
+ "hover_popover_enabled": true,
+ // Whether the cursor blinks in the editor.
+ "cursor_blink": true,
+ // Whether to pop the completions menu while typing in an editor without
+ // explicitly requesting it.
+ "show_completions_on_input": true,
+ // Whether new projects should start out 'online'. Online projects
+ // appear in the contacts panel under your name, so that your contacts
+ // can see which projects you are working on. Regardless of this
+ // setting, projects keep their last online status when you reopen them.
+ "projects_online_by_default": true,
+ // Whether to use language servers to provide code intelligence.
+ "enable_language_server": true,
+ // When to automatically save edited buffers. This setting can
+ // take four values.
+ //
+ // 1. Never automatically save:
+ // "autosave": "off",
+ // 2. Save when changing focus away from the Zed window:
+ // "autosave": "on_window_change",
+ // 3. Save when changing focus away from a specific buffer:
+ // "autosave": "on_focus_change",
+ // 4. Save when idle for a certain amount of time:
+ // "autosave": { "after_delay": {"milliseconds": 500} },
+ "autosave": "off",
+ // Where to place the dock by default. This setting can take three
+ // values:
+ //
+ // 1. Position the dock attached to the bottom of the workspace
+ // "default_dock_anchor": "bottom"
+ // 2. Position the dock to the right of the workspace like a side panel
+ // "default_dock_anchor": "right"
+ // 3. Position the dock full screen over the entire workspace"
+ // "default_dock_anchor": "expanded"
+ "default_dock_anchor": "right",
+ // Whether or not to perform a buffer format before saving
+ "format_on_save": "on",
+ // How to perform a buffer format. This setting can take two values:
+ //
+ // 1. Format code using the current language server:
+ // "format_on_save": "language_server"
+ // 2. Format code using an external command:
+ // "format_on_save": {
+ // "external": {
+ // "command": "prettier",
+ // "arguments": ["--stdin-filepath", "{buffer_path}"]
+ // }
+ // }
+ "formatter": "language_server",
+ // How to soft-wrap long lines of text. This setting can take
+ // three values:
+ //
+ // 1. Do not soft wrap.
+ // "soft_wrap": "none",
+ // 2. Soft wrap lines that overflow the editor:
+ // "soft_wrap": "editor_width",
+ // 3. Soft wrap lines at the preferred line length
+ // "soft_wrap": "preferred_line_length",
+ "soft_wrap": "none",
+ // The column at which to soft-wrap lines, for buffers where soft-wrap
+ // is enabled.
+ "preferred_line_length": 80,
+ // Whether to indent lines using tab characters, as opposed to multiple
+ // spaces.
+ "hard_tabs": false,
+ // How many columns a tab should occupy.
+ "tab_size": 4,
+ // Git gutter behavior configuration.
+ "git": {
+ // Control whether the git gutter is shown. May take 2 values:
+ // 1. Show the gutter
+ // "git_gutter": "tracked_files"
+ // 2. Hide the gutter
+ // "git_gutter": "hide"
+ "git_gutter": "tracked_files"
+ },
+ // Settings specific to journaling
+ "journal": {
+ // The path of the directory where journal entries are stored
+ "path": "~",
+ // What format to display the hours in
+ // May take 2 values:
+ // 1. hour12
+ // 2. hour24
+ "hour_format": "hour12"
+ },
+ // Settings specific to the terminal
+ "terminal": {
+ // What shell to use when opening a terminal. May take 3 values:
+ // 1. Use the system's default terminal configuration (e.g. $TERM).
+ // "shell": "system"
+ // 2. A program:
+ // "shell": {
+ // "program": "sh"
+ // }
+ // 3. A program with arguments:
+ // "shell": {
+ // "with_arguments": {
+ // "program": "/bin/bash",
+ // "arguments": ["--login"]
+ // }
// }
- "formatter": "language_server",
- // How to soft-wrap long lines of text. This setting can take
- // three values:
+ "shell": "system",
+ // What working directory to use when launching the terminal.
+ // May take 4 values:
+ // 1. Use the current file's project directory. Will Fallback to the
+ // first project directory strategy if unsuccessful
+ // "working_directory": "current_project_directory"
+ // 2. Use the first project in this workspace's directory
+ // "working_directory": "first_project_directory"
+ // 3. Always use this platform's home directory (if we can find it)
+ // "working_directory": "always_home"
+ // 4. Always use a specific directory. This value will be shell expanded.
+ // If this path is not a valid directory the terminal will default to
+ // this platform's home directory (if we can find it)
+ // "working_directory": {
+ // "always": {
+ // "directory": "~/zed/projects/"
+ // }
+ // }
//
- // 1. Do not soft wrap.
- // "soft_wrap": "none",
- // 2. Soft wrap lines that overflow the editor:
- // "soft_wrap": "editor_width",
- // 3. Soft wrap lines at the preferred line length
- // "soft_wrap": "preferred_line_length",
- "soft_wrap": "none",
- // The column at which to soft-wrap lines, for buffers where soft-wrap
- // is enabled.
- "preferred_line_length": 80,
- // Whether to indent lines using tab characters, as opposed to multiple
- // spaces.
- "hard_tabs": false,
- // How many columns a tab should occupy.
- "tab_size": 4,
- // Git gutter behavior configuration.
- "git": {
- // Control whether the git gutter is shown. May take 2 values:
- // 1. Show the gutter
- // "git_gutter": "tracked_files"
- // 2. Hide the gutter
- // "git_gutter": "hide"
- "git_gutter": "tracked_files"
+ //
+ "working_directory": "current_project_directory",
+ // Set the cursor blinking behavior in the terminal.
+ // May take 4 values:
+ // 1. Never blink the cursor, ignoring the terminal mode
+ // "blinking": "off",
+ // 2. Default the cursor blink to off, but allow the terminal to
+ // set blinking
+ // "blinking": "terminal_controlled",
+ // 3. Always blink the cursor, ignoring the terminal mode
+ // "blinking": "on",
+ "blinking": "terminal_controlled",
+ // Set whether Alternate Scroll mode (code: ?1007) is active by default.
+ // Alternate Scroll mode converts mouse scroll events into up / down key
+ // presses when in the alternate screen (e.g. when running applications
+ // like vim or less). The terminal can still set and unset this mode.
+ // May take 2 values:
+ // 1. Default alternate scroll mode to on
+ // "alternate_scroll": "on",
+ // 2. Default alternate scroll mode to off
+ // "alternate_scroll": "off",
+ "alternate_scroll": "off",
+ // Set whether the option key behaves as the meta key.
+ // May take 2 values:
+ // 1. Rely on default platform handling of option key, on macOS
+ // this means generating certain unicode characters
+ // "option_to_meta": false,
+ // 2. Make the option keys behave as a 'meta' key, e.g. for emacs
+ // "option_to_meta": true,
+ "option_as_meta": false,
+ // Whether or not selecting text in the terminal will automatically
+ // copy to the system clipboard.
+ "copy_on_select": false,
+ // Any key-value pairs added to this list will be added to the terminal's
+ // enviroment. Use `:` to seperate multiple values.
+ "env": {
+ // "KEY": "value1:value2"
+ }
+ // Set the terminal's font size. If this option is not included,
+ // the terminal will default to matching the buffer's font size.
+ // "font_size": "15"
+ // Set the terminal's font family. If this option is not included,
+ // the terminal will default to matching the buffer's font family.
+ // "font_family": "Zed Mono"
+ },
+ // Different settings for specific languages.
+ "languages": {
+ "Plain Text": {
+ "soft_wrap": "preferred_line_length"
+ },
+ "C": {
+ "tab_size": 2
},
- // Settings specific to journaling
- "journal": {
- // The path of the directory where journal entries are stored
- "path": "~",
- // What format to display the hours in
- // May take 2 values:
- // 1. hour12
- // 2. hour24
- "hour_format": "hour12"
+ "C++": {
+ "tab_size": 2
},
- // Settings specific to the terminal
- "terminal": {
- // What shell to use when opening a terminal. May take 3 values:
- // 1. Use the system's default terminal configuration (e.g. $TERM).
- // "shell": "system"
- // 2. A program:
- // "shell": {
- // "program": "sh"
- // }
- // 3. A program with arguments:
- // "shell": {
- // "with_arguments": {
- // "program": "/bin/bash",
- // "arguments": ["--login"]
- // }
- // }
- "shell": "system",
- // What working directory to use when launching the terminal.
- // May take 4 values:
- // 1. Use the current file's project directory. Will Fallback to the
- // first project directory strategy if unsuccessful
- // "working_directory": "current_project_directory"
- // 2. Use the first project in this workspace's directory
- // "working_directory": "first_project_directory"
- // 3. Always use this platform's home directory (if we can find it)
- // "working_directory": "always_home"
- // 4. Always use a specific directory. This value will be shell expanded.
- // If this path is not a valid directory the terminal will default to
- // this platform's home directory (if we can find it)
- // "working_directory": {
- // "always": {
- // "directory": "~/zed/projects/"
- // }
- // }
- //
- //
- "working_directory": "current_project_directory",
- // Set the cursor blinking behavior in the terminal.
- // May take 4 values:
- // 1. Never blink the cursor, ignoring the terminal mode
- // "blinking": "off",
- // 2. Default the cursor blink to off, but allow the terminal to
- // set blinking
- // "blinking": "terminal_controlled",
- // 3. Always blink the cursor, ignoring the terminal mode
- // "blinking": "on",
- "blinking": "terminal_controlled",
- // Set whether Alternate Scroll mode (code: ?1007) is active by default.
- // Alternate Scroll mode converts mouse scroll events into up / down key
- // presses when in the alternate screen (e.g. when running applications
- // like vim or less). The terminal can still set and unset this mode.
- // May take 2 values:
- // 1. Default alternate scroll mode to on
- // "alternate_scroll": "on",
- // 2. Default alternate scroll mode to off
- // "alternate_scroll": "off",
- "alternate_scroll": "off",
- // Set whether the option key behaves as the meta key.
- // May take 2 values:
- // 1. Rely on default platform handling of option key, on macOS
- // this means generating certain unicode characters
- // "option_to_meta": false,
- // 2. Make the option keys behave as a 'meta' key, e.g. for emacs
- // "option_to_meta": true,
- "option_as_meta": false,
- // Whether or not selecting text in the terminal will automatically
- // copy to the system clipboard.
- "copy_on_select": false,
- // Any key-value pairs added to this list will be added to the terminal's
- // enviroment. Use `:` to seperate multiple values.
- "env": {
- // "KEY": "value1:value2"
- }
- // Set the terminal's font size. If this option is not included,
- // the terminal will default to matching the buffer's font size.
- // "font_size": "15"
- // Set the terminal's font family. If this option is not included,
- // the terminal will default to matching the buffer's font family.
- // "font_family": "Zed Mono"
+ "Elixir": {
+ "tab_size": 2
},
- // Different settings for specific languages.
- "languages": {
- "Plain Text": {
- "soft_wrap": "preferred_line_length"
- },
- "C": {
- "tab_size": 2
- },
- "C++": {
- "tab_size": 2
- },
- "Elixir": {
- "tab_size": 2
- },
- "Go": {
- "tab_size": 4,
- "hard_tabs": true
- },
- "Markdown": {
- "soft_wrap": "preferred_line_length"
- },
- "Rust": {
- "tab_size": 4
- },
- "JavaScript": {
- "tab_size": 2
- },
- "TypeScript": {
- "tab_size": 2
- },
- "TSX": {
- "tab_size": 2
- }
+ "Go": {
+ "tab_size": 4,
+ "hard_tabs": true
},
- // LSP Specific settings.
- "lsp": {
- // Specify the LSP name as a key here.
- // As of 8/10/22, supported LSPs are:
- // pyright
- // gopls
- // rust-analyzer
- // typescript-language-server
- // vscode-json-languageserver
- // "rust_analyzer": {
- // //These initialization options are merged into Zed's defaults
- // "initialization_options": {
- // "checkOnSave": {
- // "command": "clippy"
- // }
- // }
- // }
+ "Markdown": {
+ "soft_wrap": "preferred_line_length"
+ },
+ "Rust": {
+ "tab_size": 4
+ },
+ "JavaScript": {
+ "tab_size": 2
+ },
+ "TypeScript": {
+ "tab_size": 2
+ },
+ "TSX": {
+ "tab_size": 2
}
+ },
+ // LSP Specific settings.
+ "lsp": {
+ // Specify the LSP name as a key here.
+ // As of 8/10/22, supported LSPs are:
+ // pyright
+ // gopls
+ // rust-analyzer
+ // typescript-language-server
+ // vscode-json-languageserver
+ // "rust_analyzer": {
+ // //These initialization options are merged into Zed's defaults
+ // "initialization_options": {
+ // "checkOnSave": {
+ // "command": "clippy"
+ // }
+ // }
+ // }
+ }
}
@@ -665,7 +665,7 @@ mod tests {
fn test_write_theme_into_settings_with_theme() {
let settings = r#"
{
- "theme": "one-dark"
+ "theme": "One Dark"
}
"#
.unindent();
@@ -28,14 +28,14 @@ impl ThemeRegistry {
if !internal {
dirs = dirs
.into_iter()
- .filter(|path| !path.starts_with("themes/internal"))
+ .filter(|path| !path.starts_with("themes/Internal"))
.collect()
}
if !experiments {
dirs = dirs
.into_iter()
- .filter(|path| !path.starts_with("themes/experiments"))
+ .filter(|path| !path.starts_with("themes/Experiments"))
.collect()
}
@@ -10,17 +10,22 @@ import snakeCase from "./utils/snakeCase";
import { ColorScheme } from "./themes/common/colorScheme";
const themeDirectory = `${__dirname}/../../assets/themes`;
-const internalDirectory = `${themeDirectory}/internal`;
-const experimentsDirectory = `${themeDirectory}/experiments`;
+const internalDirectory = `${themeDirectory}/Internal`;
+const experimentsDirectory = `${themeDirectory}/Experiments`;
+
const tempDirectory = fs.mkdtempSync(path.join(tmpdir(), "build-themes"));
// Clear existing themes
function clearThemes(themeDirectory: string) {
- for (const file of fs.readdirSync(themeDirectory)) {
- if (file.endsWith(".json")) {
- const name = file.replace(/\.json$/, "");
- if (!colorSchemes.find((colorScheme) => colorScheme.name === name)) {
- fs.unlinkSync(path.join(themeDirectory, file));
+ if (!fs.existsSync(themeDirectory)) {
+ fs.mkdirSync(themeDirectory, { recursive: true });
+ } else {
+ for (const file of fs.readdirSync(themeDirectory)) {
+ if (file.endsWith(".json")) {
+ const name = file.replace(/\.json$/, "");
+ if (!colorSchemes.find((colorScheme) => colorScheme.name === name)) {
+ fs.unlinkSync(path.join(themeDirectory, file));
+ }
}
}
}
@@ -1,7 +1,13 @@
import chroma from "chroma-js";
import { colorRamp, createColorScheme } from "./common/ramps";
-const name = "andromeda";
+const name = "Andromeda";
+const author = "EliverLara";
+const url = "https://github.com/EliverLara/Andromeda";
+const license = {
+ type: "MIT",
+ url: "https://github.com/EliverLara/Andromeda/blob/master/LICENSE.md",
+};
const ramps = {
neutral: chroma
@@ -1,9 +1,15 @@
import chroma from "chroma-js";
import { colorRamp, createColorScheme } from "./common/ramps";
-const name = "cave";
+const name = "Atelier Cave";
+const author = "atelierbram";
+const url = "https://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave/";
+const license = {
+ type: "MIT",
+ url: "https://github.com/atelierbram/syntax-highlighting/blob/master/LICENSE",
+};
-export const dark = createColorScheme(`${name}-dark`, false, {
+export const dark = createColorScheme(`${name} Dark`, false, {
neutral: chroma
.scale([
"#19171c",
@@ -26,7 +32,7 @@ export const dark = createColorScheme(`${name}-dark`, false, {
magenta: colorRamp(chroma("#bf40bf")),
});
-export const light = createColorScheme(`${name}-light`, true, {
+export const light = createColorScheme(`${name} Light`, true, {
neutral: chroma
.scale([
"#19171c",
@@ -37,7 +43,8 @@ export const light = createColorScheme(`${name}-light`, true, {
"#8b8792",
"#e2dfe7",
"#efecf4",
- ]).correctLightness(),
+ ])
+ .correctLightness(),
red: colorRamp(chroma("#be4678")),
orange: colorRamp(chroma("#aa573c")),
yellow: colorRamp(chroma("#a06e3b")),
@@ -46,4 +53,4 @@ export const light = createColorScheme(`${name}-light`, true, {
blue: colorRamp(chroma("#576ddb")),
violet: colorRamp(chroma("#955ae7")),
magenta: colorRamp(chroma("#bf40bf")),
-});
+});
@@ -1,7 +1,13 @@
import chroma from "chroma-js";
import { colorRamp, createColorScheme } from "./common/ramps";
-const name = "sulphurpool";
+const name = "Atelier Sulphurpool";
+const author = "atelierbram";
+const url = "https://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune/";
+const license = {
+ type: "MIT",
+ url: "https://github.com/atelierbram/syntax-highlighting/blob/master/LICENSE",
+};
const ramps = {
neutral: chroma
@@ -26,5 +32,5 @@ const ramps = {
magenta: colorRamp(chroma("#9c637a")),
};
-export const dark = createColorScheme(`${name}-dark`, false, ramps);
-export const light = createColorScheme(`${name}-light`, true, ramps);
+export const dark = createColorScheme(`${name} Dark`, false, ramps);
+export const light = createColorScheme(`${name} Light`, true, ramps);
@@ -116,8 +116,8 @@ export function createTheme(
on500Ok: {
base: sample(ramps.green, 0.05),
hovered: sample(ramps.green, 0.1),
- active: sample(ramps.green, 0.15)
- }
+ active: sample(ramps.green, 0.15),
+ },
};
const borderColor = {
@@ -186,7 +186,7 @@ export function createTheme(
weight: fontWeights.normal,
},
"variable.special": {
- color: sample(ramps.blue, 0.80),
+ color: sample(ramps.blue, 0.8),
weight: fontWeights.normal,
},
comment: {
@@ -142,9 +142,13 @@ function buildStyleSet(
ramp: Scale,
backgroundBase: number,
foregroundBase: number,
- step: number = 0.08,
+ step: number = 0.08
): StyleSet {
- let styleDefinitions = buildStyleDefinition(backgroundBase, foregroundBase, step);
+ let styleDefinitions = buildStyleDefinition(
+ backgroundBase,
+ foregroundBase,
+ step
+ );
function colorString(indexOrColor: number | Color): string {
if (typeof indexOrColor === "number") {
@@ -172,7 +176,11 @@ function buildStyleSet(
};
}
-function buildStyleDefinition(bgBase: number, fgBase: number, step: number = 0.08) {
+function buildStyleDefinition(
+ bgBase: number,
+ fgBase: number,
+ step: number = 0.08
+) {
return {
background: {
default: bgBase,
@@ -199,4 +207,4 @@ function buildStyleDefinition(bgBase: number, fgBase: number, step: number = 0.0
inverted: bgBase + step * 2,
},
};
-}
+}
@@ -0,0 +1,73 @@
+import chroma from "chroma-js";
+import { colorRamp, createColorScheme } from "../common/ramps";
+
+const name = "Brush Trees";
+const author = "Abraham White <abelincoln.white@gmail.com>";
+const url = "https://github.com/WhiteAbeLincoln/base16-brushtrees-scheme";
+const license = {
+ type: "MIT",
+ url: "https://github.com/WhiteAbeLincoln/base16-brushtrees-scheme/blob/master/LICENSE"
+}
+
+export const dark = createColorScheme(`${name} Dark`, false, {
+ neutral: chroma.scale([
+ "#485867",
+ "#5A6D7A",
+ "#6D828E",
+ "#8299A1",
+ "#98AFB5",
+ "#B0C5C8",
+ "#C9DBDC",
+ "#E3EFEF",
+ ]),
+ red: colorRamp(chroma("#b38686")),
+ orange: colorRamp(chroma("#d8bba2")),
+ yellow: colorRamp(chroma("#aab386")),
+ green: colorRamp(chroma("#87b386")),
+ cyan: colorRamp(chroma("#86b3b3")),
+ blue: colorRamp(chroma("#868cb3")),
+ violet: colorRamp(chroma("#b386b2")),
+ magenta: colorRamp(chroma("#b39f9f")),
+});
+
+export const mirage = createColorScheme(`${name} Mirage`, false, {
+ neutral: chroma.scale([
+ "#485867",
+ "#5A6D7A",
+ "#6D828E",
+ "#8299A1",
+ "#98AFB5",
+ "#B0C5C8",
+ "#C9DBDC",
+ "#E3EFEF",
+ ]),
+ red: colorRamp(chroma("#F28779")),
+ orange: colorRamp(chroma("#FFAD66")),
+ yellow: colorRamp(chroma("#FFD173")),
+ green: colorRamp(chroma("#D5FF80")),
+ cyan: colorRamp(chroma("#95E6CB")),
+ blue: colorRamp(chroma("#5CCFE6")),
+ violet: colorRamp(chroma("#D4BFFF")),
+ magenta: colorRamp(chroma("#F29E74")),
+});
+
+export const light = createColorScheme(`${name} Light`, true, {
+ neutral: chroma.scale([
+ "#1A1F29",
+ "#242936",
+ "#5C6773",
+ "#828C99",
+ "#ABB0B6",
+ "#F8F9FA",
+ "#F3F4F5",
+ "#FAFAFA",
+ ]),
+ red: colorRamp(chroma("#b38686")),
+ orange: colorRamp(chroma("#d8bba2")),
+ yellow: colorRamp(chroma("#aab386")),
+ green: colorRamp(chroma("#87b386")),
+ cyan: colorRamp(chroma("#86b3b3")),
+ blue: colorRamp(chroma("#868cb3")),
+ violet: colorRamp(chroma("#b386b2")),
+ magenta: colorRamp(chroma("#b39f9f")),
+});
@@ -0,0 +1,34 @@
+import chroma from "chroma-js";
+import { colorRamp, createColorScheme } from "../common/ramps";
+
+const name = "Atelier Dune";
+const author = "atelierbram";
+const url = "https://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune/";
+const license = {
+ type: "MIT",
+ url: "https://github.com/atelierbram/syntax-highlighting/blob/master/LICENSE",
+};
+
+const ramps = {
+ neutral: chroma.scale([
+ "#20201d",
+ "#292824",
+ "#6e6b5e",
+ "#7d7a68",
+ "#999580",
+ "#a6a28c",
+ "#e8e4cf",
+ "#fefbec",
+ ]),
+ red: colorRamp(chroma("#d73737")),
+ orange: colorRamp(chroma("#b65611")),
+ yellow: colorRamp(chroma("#ae9513")),
+ green: colorRamp(chroma("#60ac39")),
+ cyan: colorRamp(chroma("#1fad83")),
+ blue: colorRamp(chroma("#6684e1")),
+ violet: colorRamp(chroma("#b854d4")),
+ magenta: colorRamp(chroma("#d43552")),
+};
+
+export const dark = createColorScheme(`${name} Dark`, false, ramps);
+export const light = createColorScheme(`${name} Light`, true, ramps);
@@ -0,0 +1,53 @@
+import chroma from "chroma-js";
+import { colorRamp, createColorScheme } from "../common/ramps";
+
+const name = "Atelier Heath";
+const author = "atelierbram";
+const url = "https://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath/";
+const license = {
+ type: "MIT",
+ url: "https://github.com/atelierbram/syntax-highlighting/blob/master/LICENSE",
+};
+
+// `name-[light|dark]`, isLight, color ramps
+export const dark = createColorScheme(`${name} Dark`, false, {
+ neutral: chroma.scale([
+ "#1b181b",
+ "#292329",
+ "#695d69",
+ "#776977",
+ "#9e8f9e",
+ "#ab9bab",
+ "#d8cad8",
+ "#f7f3f7",
+ ]),
+ red: colorRamp(chroma("#ca402b")),
+ orange: colorRamp(chroma("#a65926")),
+ yellow: colorRamp(chroma("#bb8a35")),
+ green: colorRamp(chroma("#918b3b")),
+ cyan: colorRamp(chroma("#159393")),
+ blue: colorRamp(chroma("#516aec")),
+ violet: colorRamp(chroma("#7b59c0")),
+ magenta: colorRamp(chroma("#cc33cc")),
+});
+
+export const light = createColorScheme(`${name} Light`, true, {
+ neutral: chroma.scale([
+ "#161b1d",
+ "#1f292e",
+ "#516d7b",
+ "#5a7b8c",
+ "#7195a8",
+ "#7ea2b4",
+ "#c1e4f6",
+ "#ebf8ff",
+ ]),
+ red: colorRamp(chroma("#d22d72")),
+ orange: colorRamp(chroma("#935c25")),
+ yellow: colorRamp(chroma("#8a8a0f")),
+ green: colorRamp(chroma("#568c3b")),
+ cyan: colorRamp(chroma("#2d8f6f")),
+ blue: colorRamp(chroma("#257fad")),
+ violet: colorRamp(chroma("#6b6bb8")),
+ magenta: colorRamp(chroma("#b72dd2")),
+});
@@ -0,0 +1,34 @@
+import chroma from "chroma-js";
+import { colorRamp, createColorScheme } from "../common/ramps";
+
+const name = "Atelier Seaside";
+const author = "atelierbram";
+const url = "https://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/";
+const license = {
+ type: "MIT",
+ url: "https://github.com/atelierbram/syntax-highlighting/blob/master/LICENSE",
+};
+
+const ramps = {
+ neutral: chroma.scale([
+ "#131513",
+ "#242924",
+ "#5e6e5e",
+ "#687d68",
+ "#809980",
+ "#8ca68c",
+ "#cfe8cf",
+ "#f4fbf4",
+ ]),
+ red: colorRamp(chroma("#e6193c")),
+ orange: colorRamp(chroma("#87711d")),
+ yellow: colorRamp(chroma("#98981b")),
+ green: colorRamp(chroma("#29a329")),
+ cyan: colorRamp(chroma("#1999b3")),
+ blue: colorRamp(chroma("#3d62f5")),
+ violet: colorRamp(chroma("#ad2bee")),
+ magenta: colorRamp(chroma("#e619c3")),
+};
+
+export const dark = createColorScheme(`${name} Dark`, false, ramps);
+export const light = createColorScheme(`${name} Light`, true, ramps);
@@ -0,0 +1,31 @@
+import chroma from "chroma-js";
+import { colorRamp, createColorScheme } from "../common/ramps";
+
+const name = "Ayu";
+const author = "Konstantin Pschera <me@kons.ch>";
+const url = "https://github.com/ayu-theme/ayu-colors";
+const license = {
+ type: "MIT",
+ url: "https://github.com/ayu-theme/ayu-colors/blob/master/license"
+}
+
+export const dark = createColorScheme(`${name} Mirage`, false, {
+ neutral: chroma.scale([
+ "#171B24",
+ "#1F2430",
+ "#242936",
+ "#707A8C",
+ "#8A9199",
+ "#CCCAC2",
+ "#D9D7CE",
+ "#F3F4F5",
+ ]),
+ red: colorRamp(chroma("#F28779")),
+ orange: colorRamp(chroma("#FFAD66")),
+ yellow: colorRamp(chroma("#FFD173")),
+ green: colorRamp(chroma("#D5FF80")),
+ cyan: colorRamp(chroma("#95E6CB")),
+ blue: colorRamp(chroma("#5CCFE6")),
+ violet: colorRamp(chroma("#D4BFFF")),
+ magenta: colorRamp(chroma("#F29E74")),
+});
@@ -0,0 +1,52 @@
+import chroma from "chroma-js";
+import { colorRamp, createColorScheme } from "../common/ramps";
+
+const name = "Ayu";
+const author = "Konstantin Pschera <me@kons.ch>";
+const url = "https://github.com/ayu-theme/ayu-colors";
+const license = {
+ type: "MIT",
+ url: "https://github.com/ayu-theme/ayu-colors/blob/master/license"
+}
+
+export const dark = createColorScheme(`${name} Dark`, false, {
+ neutral: chroma.scale([
+ "#0F1419",
+ "#131721",
+ "#272D38",
+ "#3E4B59",
+ "#BFBDB6",
+ "#E6E1CF",
+ "#E6E1CF",
+ "#F3F4F5",
+ ]),
+ red: colorRamp(chroma("#F07178")),
+ orange: colorRamp(chroma("#FF8F40")),
+ yellow: colorRamp(chroma("#FFB454")),
+ green: colorRamp(chroma("#B8CC52")),
+ cyan: colorRamp(chroma("#95E6CB")),
+ blue: colorRamp(chroma("#59C2FF")),
+ violet: colorRamp(chroma("#D2A6FF")),
+ magenta: colorRamp(chroma("#E6B673")),
+});
+
+export const light = createColorScheme(`${name} Light`, true, {
+ neutral: chroma.scale([
+ "#1A1F29",
+ "#242936",
+ "#5C6773",
+ "#828C99",
+ "#ABB0B6",
+ "#F8F9FA",
+ "#F3F4F5",
+ "#FAFAFA",
+ ]),
+ red: colorRamp(chroma("#F07178")),
+ orange: colorRamp(chroma("#FA8D3E")),
+ yellow: colorRamp(chroma("#F2AE49")),
+ green: colorRamp(chroma("#86B300")),
+ cyan: colorRamp(chroma("#4CBF99")),
+ blue: colorRamp(chroma("#36A3D9")),
+ violet: colorRamp(chroma("#A37ACC")),
+ magenta: colorRamp(chroma("#E6BA7E")),
+});
@@ -0,0 +1,31 @@
+import chroma from "chroma-js";
+import { colorRamp, createColorScheme } from "../common/ramps";
+
+const name = "Dracula";
+const author = "zenorocha";
+const url = "https://github.com/dracula/dracula-theme";
+const license = {
+ type: "MIT",
+ url: "https://github.com/dracula/dracula-theme/blob/master/LICENSE",
+};
+
+export const dark = createColorScheme(`${name}`, false, {
+ neutral: chroma.scale([
+ "#282A36",
+ "#3a3c4e",
+ "#4d4f68",
+ "#626483",
+ "#62d6e8",
+ "#e9e9f4",
+ "#f1f2f8",
+ "#f8f8f2",
+ ]),
+ red: colorRamp(chroma("#ff5555")),
+ orange: colorRamp(chroma("#ffb86c")),
+ yellow: colorRamp(chroma("#f1fa8c")),
+ green: colorRamp(chroma("#50fa7b")),
+ cyan: colorRamp(chroma("#8be9fd")),
+ blue: colorRamp(chroma("#6272a4")),
+ violet: colorRamp(chroma("#bd93f9")),
+ magenta: colorRamp(chroma("#00f769")),
+});
@@ -0,0 +1,138 @@
+import chroma from "chroma-js";
+import { colorRamp, createColorScheme } from "../common/ramps";
+
+const name = "Gruvbox";
+const author = "Dawid Kurek (dawikur@gmail.com)";
+const url = "https://github.com/morhetz/gruvbox";
+const license = {
+ type: "MIT/X11",
+ url: "https://en.wikipedia.org/wiki/MIT_License",
+};
+
+export const dark = createColorScheme(`${name} Dark Medium`, false, {
+ neutral: chroma.scale([
+ "#282828",
+ "#3c3836",
+ "#504945",
+ "#665c54",
+ "#7C6F64",
+ "#928374",
+ "#A89984",
+ "#BDAE93",
+ "#D5C4A1",
+ "#EBDBB2",
+ "#FBF1C7",
+ ]),
+ red: chroma.scale([
+ "#4D150F",
+ "#7D241A",
+ "#A31C17",
+ "#CC241D",
+ "#C83A29",
+ "#FB4934",
+ "#F06D61",
+ "#E6928E",
+ "#FFFFFF",
+ ]),
+ orange: chroma.scale([
+ "#462307",
+ "#7F400C",
+ "#AB4A0B",
+ "#D65D0E",
+ "#CB6614",
+ "#FE8019",
+ "#F49750",
+ "#EBAE87",
+ "#FFFFFF",
+ ]),
+ yellow: chroma.scale([
+ "#3D2C05",
+ "#7D5E17",
+ "#AC7A1A",
+ "#D79921",
+ "#E8AB28",
+ "#FABD2F",
+ "#F2C45F",
+ "#EBCC90",
+ "#FFFFFF",
+ ]),
+ green: chroma.scale([
+ "#32330A",
+ "#5C5D13",
+ "#797814",
+ "#98971A",
+ "#93951E",
+ "#B8BB26",
+ "#C2C359",
+ "#CCCB8D",
+ "#FFFFFF",
+ ]),
+ cyan: chroma.scale([
+ "#283D20",
+ "#47603E",
+ "#537D54",
+ "#689D6A",
+ "#719963",
+ "#8EC07C",
+ "#A1C798",
+ "#B4CEB5",
+ "#FFFFFF",
+ ]),
+ blue: chroma.scale([
+ "#103738",
+ "#214C4D",
+ "#376A6C",
+ "#458588",
+ "#688479",
+ "#83A598",
+ "#92B3AE",
+ "#A2C2C4",
+ "#FFFFFF",
+ ]),
+ violet: chroma.scale([
+ "#392228",
+ "#69434D",
+ "#8D4E6B",
+ "#B16286",
+ "#A86B7C",
+ "#D3869B",
+ "#D59BAF",
+ "#D8B1C3",
+ "#FFFFFF",
+ ]),
+ magenta: chroma.scale([
+ "#48402C",
+ "#756D59",
+ "#867A69",
+ "#A89984",
+ "#BCAF8E",
+ "#EBDBB2",
+ "#DFD3BA",
+ "#D4CCC2",
+ "#FFFFFF",
+ ]),
+});
+
+export const light = createColorScheme(`${name} Light Medium`, true, {
+ neutral: chroma.scale([
+ "#282828",
+ "#3c3836",
+ "#504945",
+ "#665c54",
+ "#7C6F64",
+ "#928374",
+ "#A89984",
+ "#BDAE93",
+ "#D5C4A1",
+ "#EBDBB2",
+ "#FBF1C7",
+ ]),
+ red: colorRamp(chroma("#9d0006")),
+ orange: colorRamp(chroma("#af3a03")),
+ yellow: colorRamp(chroma("#b57614")),
+ green: colorRamp(chroma("#79740e")),
+ cyan: colorRamp(chroma("#427b58")),
+ blue: colorRamp(chroma("#076678")),
+ violet: colorRamp(chroma("#8f3f71")),
+ magenta: colorRamp(chroma("#d65d0e")),
+});
@@ -0,0 +1,32 @@
+import chroma from "chroma-js";
+import { colorRamp, createColorScheme } from "../common/ramps";
+
+const name = "Monokai";
+const author = "Wimer Hazenberg (http://www.monokai.nl)";
+const url = "https://base16.netlify.app/previews/base16-monokai.html";
+const license = {
+ type: "?",
+ url: "?",
+};
+
+// `name-[light|dark]`, isLight, color ramps
+export const dark = createColorScheme(`${name}`, false, {
+ neutral: chroma.scale([
+ "#272822",
+ "#383830",
+ "#49483e",
+ "#75715e",
+ "#a59f85",
+ "#f8f8f2",
+ "#f5f4f1",
+ "#f9f8f5",
+ ]),
+ red: colorRamp(chroma("#f92672")),
+ orange: colorRamp(chroma("#fd971f")),
+ yellow: colorRamp(chroma("#f4bf75")),
+ green: colorRamp(chroma("#a6e22e")),
+ cyan: colorRamp(chroma("#a1efe4")),
+ blue: colorRamp(chroma("#66d9ef")),
+ violet: colorRamp(chroma("#ae81ff")),
+ magenta: colorRamp(chroma("#cc6633")),
+});
@@ -0,0 +1,32 @@
+import chroma from "chroma-js";
+import { colorRamp, createColorScheme } from "../common/ramps";
+
+const name = "Nord";
+const author = "arcticicestudio";
+const url = "https://www.nordtheme.com/";
+const license = {
+ type: "MIT",
+ url: "https://github.com/arcticicestudio/nord/blob/develop/LICENSE.md",
+};
+
+// `name-[light|dark]`, isLight, color ramps
+export const dark = createColorScheme(`${name}`, false, {
+ neutral: chroma.scale([
+ "#2E3440",
+ "#3B4252",
+ "#434C5E",
+ "#4C566A",
+ "#D8DEE9",
+ "#E5E9F0",
+ "#ECEFF4",
+ "#8FBCBB",
+ ]),
+ red: colorRamp(chroma("#88C0D0")),
+ orange: colorRamp(chroma("#81A1C1")),
+ yellow: colorRamp(chroma("#5E81AC")),
+ green: colorRamp(chroma("#BF616A")),
+ cyan: colorRamp(chroma("#D08770")),
+ blue: colorRamp(chroma("#EBCB8B")),
+ violet: colorRamp(chroma("#A3BE8C")),
+ magenta: colorRamp(chroma("#B48EAD")),
+});
@@ -0,0 +1,32 @@
+import chroma from "chroma-js";
+import { colorRamp, createColorScheme } from "../common/ramps";
+
+const name = "Seti UI";
+const author = "jesseweed";
+const url = "https://github.com/jesseweed/seti-ui";
+const license = {
+ type: "MIT",
+ url: "https://github.com/jesseweed/seti-ui/blob/master/LICENSE.md",
+};
+
+// `name-[light|dark]`, isLight, color ramps
+export const dark = createColorScheme(`${name}`, false, {
+ neutral: chroma.scale([
+ "#151718",
+ "#262B30",
+ "#1E2326",
+ "#41535B",
+ "#43a5d5",
+ "#d6d6d6",
+ "#eeeeee",
+ "#ffffff",
+ ]),
+ red: colorRamp(chroma("#Cd3f45")),
+ orange: colorRamp(chroma("#db7b55")),
+ yellow: colorRamp(chroma("#e6cd69")),
+ green: colorRamp(chroma("#9fca56")),
+ cyan: colorRamp(chroma("#55dbbe")),
+ blue: colorRamp(chroma("#55b5db")),
+ violet: colorRamp(chroma("#a074c4")),
+ magenta: colorRamp(chroma("#8a553f")),
+});
@@ -0,0 +1,32 @@
+import chroma from "chroma-js";
+import { colorRamp, createColorScheme } from "../common/ramps";
+
+const name = "Tokyo Night Storm";
+const author = "folke";
+const url = "https://github.com/folke/tokyonight.nvim";
+const license = {
+ type: "MIT",
+ url: "https://github.com/ghifarit53/tokyonight-vim/blob/master/LICENSE",
+};
+
+// `name-[light|dark]`, isLight, color ramps
+export const dark = createColorScheme(`${name}`, false, {
+ neutral: chroma.scale([
+ "#24283B",
+ "#16161E",
+ "#343A52",
+ "#444B6A",
+ "#787C99",
+ "#A9B1D6",
+ "#CBCCD1",
+ "#D5D6DB",
+ ]),
+ red: colorRamp(chroma("#C0CAF5")),
+ orange: colorRamp(chroma("#A9B1D6")),
+ yellow: colorRamp(chroma("#0DB9D7")),
+ green: colorRamp(chroma("#9ECE6A")),
+ cyan: colorRamp(chroma("#B4F9F8")),
+ blue: colorRamp(chroma("#2AC3DE")),
+ violet: colorRamp(chroma("#BB9AF7")),
+ magenta: colorRamp(chroma("#F7768E")),
+});
@@ -0,0 +1,53 @@
+import chroma from "chroma-js";
+import { colorRamp, createColorScheme } from "../common/ramps";
+
+const name = "Tokyo";
+const author = "folke";
+const url = "https://github.com/folke/tokyonight.nvim";
+const license = {
+ type: "Apache License 2.0",
+ url: "https://github.com/folke/tokyonight.nvim/blob/main/LICENSE",
+};
+
+// `name-[light|dark]`, isLight, color ramps
+export const dark = createColorScheme(`${name} Night`, false, {
+ neutral: chroma.scale([
+ "#1A1B26",
+ "#16161E",
+ "#2F3549",
+ "#444B6A",
+ "#787C99",
+ "#A9B1D6",
+ "#CBCCD1",
+ "#D5D6DB",
+ ]),
+ red: colorRamp(chroma("#C0CAF5")),
+ orange: colorRamp(chroma("#A9B1D6")),
+ yellow: colorRamp(chroma("#0DB9D7")),
+ green: colorRamp(chroma("#9ECE6A")),
+ cyan: colorRamp(chroma("#B4F9F8")),
+ blue: colorRamp(chroma("#2AC3DE")),
+ violet: colorRamp(chroma("#BB9AF7")),
+ magenta: colorRamp(chroma("#F7768E")),
+});
+
+export const light = createColorScheme(`${name} Day`, true, {
+ neutral: chroma.scale([
+ "#1A1B26",
+ "#1A1B26",
+ "#343B59",
+ "#4C505E",
+ "#9699A3",
+ "#DFE0E5",
+ "#CBCCD1",
+ "#D5D6DB",
+ ]),
+ red: colorRamp(chroma("#343B58")),
+ orange: colorRamp(chroma("#965027")),
+ yellow: colorRamp(chroma("#166775")),
+ green: colorRamp(chroma("#485E30")),
+ cyan: colorRamp(chroma("#3E6968")),
+ blue: colorRamp(chroma("#34548A")),
+ violet: colorRamp(chroma("#5A4A78")),
+ magenta: colorRamp(chroma("#8C4351")),
+});
@@ -1,7 +1,13 @@
import chroma from "chroma-js";
import { colorRamp, createColorScheme } from "../common/ramps";
-const name = "zed-pro";
+const name = "Zed Pro";
+const author = "Nate Butler"
+const url = "https://github.com/iamnbutler"
+const license = {
+ type: "?",
+ url: "?",
+};
const ramps = {
neutral: chroma
@@ -26,5 +32,5 @@ const ramps = {
magenta: colorRamp(chroma("#DE9AB8")),
};
-export const dark = createColorScheme(`${name}-dark`, false, ramps);
-export const light = createColorScheme(`${name}-light`, true, ramps);
+export const dark = createColorScheme(`${name} Dark`, false, ramps);
+export const light = createColorScheme(`${name} Light`, true, ramps);
@@ -0,0 +1,32 @@
+import chroma from "chroma-js";
+import { colorRamp, createColorScheme } from "../common/ramps";
+
+const name = "Zenburn";
+const author = "elnawe";
+const url = "https://github.com/elnawe/base16-zenburn-scheme";
+const license = {
+ type: "None",
+ url: "",
+};
+
+// `name-[light|dark]`, isLight, color ramps
+export const dark = createColorScheme(`${name}`, false, {
+ neutral: chroma.scale([
+ "#383838",
+ "#404040",
+ "#606060",
+ "#6f6f6f",
+ "#808080",
+ "#dcdccc",
+ "#c0c0c0",
+ "#ffffff",
+ ]),
+ red: colorRamp(chroma("#dca3a3")),
+ orange: colorRamp(chroma("#dfaf8f")),
+ yellow: colorRamp(chroma("#e0cf9f")),
+ green: colorRamp(chroma("#5f7f5f")),
+ cyan: colorRamp(chroma("#93e0e3")),
+ blue: colorRamp(chroma("#7cb8bb")),
+ violet: colorRamp(chroma("#dc8cc3")),
+ magenta: colorRamp(chroma("#000000")),
+});
@@ -1,40 +1,34 @@
import chroma from "chroma-js";
import { colorRamp, createColorScheme } from "./common/ramps";
-const name = "one";
-const author = "Chris Kempson (http://chriskempson.com)";
-const url =
- "https://github.com/chriskempson/base16-vim/blob/master/colors/base16-onedark.vim";
-
-const base00 = "#282c34";
-const base01 = "#353b45";
-const base02 = "#3e4451";
-const base03 = "#545862";
-const base04 = "#565c64";
-const base05 = "#abb2bf";
-const base06 = "#b6bdca";
-const base07 = "#c8ccd4";
-const base08 = "#e06c75";
-const base09 = "#d19a66";
-const base0A = "#e5c07b";
-const base0B = "#98c379";
-const base0C = "#56b6c2";
-const base0D = "#61afef";
-const base0E = "#c678dd";
-const base0F = "#be5046";
+const name = "One Dark";
+const author = "simurai";
+const url = "https://github.com/atom/atom/tree/master/packages/one-dark-ui";
+const license = {
+ type: "MIT",
+ url: "https://github.com/atom/atom/blob/master/packages/one-dark-ui/LICENSE.md",
+};
-const ramps = {
+export const dark = createColorScheme(`${name}`, false, {
neutral: chroma
- .scale([base00, base01, base02, base03, base04, base05, base06, base07])
+ .scale([
+ "#282c34",
+ "#353b45",
+ "#3e4451",
+ "#545862",
+ "#565c64",
+ "#abb2bf",
+ "#b6bdca",
+ "#c8ccd4",
+ ])
.domain([0.05, 0.22, 0.25, 0.45, 0.62, 0.8, 0.9, 1]),
- red: colorRamp(chroma(base08)),
- orange: colorRamp(chroma(base09)),
- yellow: colorRamp(chroma(base0A)),
- green: colorRamp(chroma(base0B)),
- cyan: colorRamp(chroma(base0C)),
- blue: colorRamp(chroma(base0D)),
- violet: colorRamp(chroma(base0E)),
- magenta: colorRamp(chroma(base0F)),
-};
-export const dark = createColorScheme(`${name}-dark`, false, ramps);
+ red: colorRamp(chroma("#e06c75")),
+ orange: colorRamp(chroma("#d19a66")),
+ yellow: colorRamp(chroma("#e5c07b")),
+ green: colorRamp(chroma("#98c379")),
+ cyan: colorRamp(chroma("#56b6c2")),
+ blue: colorRamp(chroma("#61afef")),
+ violet: colorRamp(chroma("#c678dd")),
+ magenta: colorRamp(chroma("#be5046")),
+});
@@ -1,40 +1,33 @@
import chroma from "chroma-js";
import { colorRamp, createColorScheme } from "./common/ramps";
-const name = "one";
-const author = "Daniel Pfeifer (http://github.com/purpleKarrot)";
-const url =
- "https://github.com/purpleKarrot/base16-one-light-scheme/blob/master/one-light.yaml";
-
-const base00 = "#090a0b";
-const base01 = "#202227";
-const base02 = "#383a42";
-const base03 = "#696c77";
-const base04 = "#a0a1a7";
-const base05 = "#e5e5e6";
-const base06 = "#f0f0f1";
-const base07 = "#fafafa";
-const base08 = "#ca1243";
-const base09 = "#d75f00";
-const base0A = "#c18401";
-const base0B = "#50a14f";
-const base0C = "#0184bc";
-const base0D = "#4078f2";
-const base0E = "#a626a4";
-const base0F = "#986801";
-
-const ramps = {
- neutral: chroma
- .scale([base00, base01, base02, base03, base04, base05, base06, base07])
- .domain([0, 0.05, 0.77, 1]),
- red: colorRamp(chroma(base08)),
- orange: colorRamp(chroma(base09)),
- yellow: colorRamp(chroma(base0A)),
- green: colorRamp(chroma(base0B)),
- cyan: colorRamp(chroma(base0C)),
- blue: colorRamp(chroma(base0D)),
- violet: colorRamp(chroma(base0E)),
- magenta: colorRamp(chroma(base0F)),
+const name = "One Light";
+const author = "simurai";
+const url = "https://github.com/atom/atom/tree/master/packages/one-light-ui";
+const license = {
+ type: "MIT",
+ url: "https://github.com/atom/atom/blob/master/packages/one-light-ui/LICENSE.md",
};
-export const light = createColorScheme(`${name}-light`, true, ramps);
+export const light = createColorScheme(`${name}`, true, {
+ neutral: chroma.scale([
+ "#090a0b",
+ "#202227",
+ "#383a42",
+ "#696c77",
+ "#a0a1a7",
+ "#e5e5e6",
+ "#f0f0f1",
+ "#fafafa",
+ ])
+ .domain([0.05, 0.22, 0.25, 0.45, 0.62, 0.8, 0.9, 1]),
+
+ red: colorRamp(chroma("#ca1243")),
+ orange: colorRamp(chroma("#d75f00")),
+ yellow: colorRamp(chroma("#c18401")),
+ green: colorRamp(chroma("#50a14f")),
+ cyan: colorRamp(chroma("#0184bc")),
+ blue: colorRamp(chroma("#4078f2")),
+ violet: colorRamp(chroma("#a626a4")),
+ magenta: colorRamp(chroma("#986801")),
+});
@@ -1,7 +1,13 @@
import chroma from "chroma-js";
import { colorRamp, createColorScheme } from "./common/ramps";
-const name = "rosΓ©-pine-dawn";
+const name = "RosΓ© Pine Dawn";
+const author = "edunfelt";
+const url = "https://github.com/edunfelt/base16-rose-pine-scheme";
+const license = {
+ type: "MIT",
+ url: "https://github.com/edunfelt/base16-rose-pine-scheme/blob/main/rose-pine-dawn.yaml",
+};
const ramps = {
neutral: chroma
@@ -1,7 +1,13 @@
import chroma from "chroma-js";
import { colorRamp, createColorScheme } from "./common/ramps";
-const name = "rosΓ©-pine-moon";
+const name = "RosΓ© Pine Moon";
+const author = "edunfelt";
+const url = "https://github.com/edunfelt/base16-rose-pine-scheme";
+const license = {
+ type: "MIT",
+ url: "https://github.com/edunfelt/base16-rose-pine-scheme/blob/main/rose-pine-moon.yaml",
+};
const ramps = {
neutral: chroma
@@ -1,7 +1,13 @@
import chroma from "chroma-js";
import { colorRamp, createColorScheme } from "./common/ramps";
-const name = "rosΓ©-pine";
+const name = "RosΓ© Pine";
+const author = "edunfelt";
+const url = "https://github.com/edunfelt/base16-rose-pine-scheme";
+const license = {
+ type: "MIT",
+ url: "https://github.com/edunfelt/base16-rose-pine-scheme",
+};
const ramps = {
neutral: chroma.scale([
@@ -1,7 +1,13 @@
import chroma from "chroma-js";
import { colorRamp, createColorScheme } from "./common/ramps";
-const name = "sandcastle";
+const name = "Sandcastle";
+const author = "gessig";
+const url = "https://github.com/gessig/base16-sandcastle-scheme";
+const license = {
+ type: "MIT",
+ url: "https://github.com/gessig/base16-sandcastle-scheme/blob/master/LICENSE",
+};
const ramps = {
neutral: chroma.scale([
@@ -1,7 +1,13 @@
import chroma from "chroma-js";
import { colorRamp, createColorScheme } from "./common/ramps";
-const name = "solarized";
+const name = "Solarized";
+const author = "Ethan Schoonover";
+const url = "https://github.com/altercation/solarized";
+const license = {
+ type: "MIT",
+ url: "https://github.com/altercation/solarized/blob/master/README.md",
+};
const ramps = {
neutral: chroma
@@ -26,5 +32,5 @@ const ramps = {
magenta: colorRamp(chroma("#d33682")),
};
-export const dark = createColorScheme(`${name}-dark`, false, ramps);
-export const light = createColorScheme(`${name}-light`, true, ramps);
+export const dark = createColorScheme(`${name} Dark`, false, ramps);
+export const light = createColorScheme(`${name} Light`, true, ramps);
@@ -1,7 +1,13 @@
import chroma from "chroma-js";
import { colorRamp, createColorScheme } from "./common/ramps";
-const name = "summercamp";
+const name = "Summercamp";
+const author = "zoefiri";
+const url = "https://github.com/zoefiri/base16-sc";
+const license = {
+ type: "MIT",
+ url: "https://github.com/zoefiri/base16-sc/blob/master/summercamp.yaml",
+};
const ramps = {
neutral: chroma
@@ -1,69 +0,0 @@
-/**
- * To create a new theme duplicate this file and move into templates
- **/
-
-import chroma from "chroma-js";
-import { colorRamp, createColorScheme } from "./common/ramps";
-
-/**
- * Theme Name
- *
- * What the theme will be called in the UI
- * Also used to generate filenames, etc
- **/
-
-const name = "themeName";
-
-/**
- * Theme Colors
- *
- * Zed themes are based on [base16](https://github.com/chriskempson/base16)
- * The first 8 colors ("Neutrals") are used to construct the UI background, panels, etc.
- * The latter 8 colors ("Accents") are used for syntax themes, semantic colors, and UI states.
- **/
-
-/**
- * Color Ramps
- *
- * We use (chroma-js)[https://gka.github.io/chroma.js/] to minipulate color in themes and to build color ramps.
- *
- * You can use chroma-js operations on the ramps here.
- * For example, you could use chroma.scale(...).correctLightness if your color ramps seem washed out near the ends.
- **/
-
-// TODO: Express accents without refering to them directly by color name.
-// See common/base16.ts for where color tokens are used.
-
-const ramps = {
- neutral: chroma.scale([
- "#19171c", // Dark: darkest backgrounds, inputs | Light: Lightest text, active states
- "#26232a",
- "#585260",
- "#655f6d",
- "#7e7887",
- "#8b8792",
- "#e2dfe7",
- "#efecf4", // Light: darkest backgrounds, inputs | Dark: Lightest text, active states
- ]),
- red: colorRamp(chroma("#be4678")), // Errors
- orange: colorRamp(chroma("#aa573c")),
- yellow: colorRamp(chroma("#a06e3b")), // Warnings
- green: colorRamp(chroma("#2a9292")), // Positive
- cyan: colorRamp(chroma("#398bc6")), // Player 1 (Host)
- blue: colorRamp(chroma("#576ddb")), // Info
- violet: colorRamp(chroma("#955ae7")),
- magenta: colorRamp(chroma("#bf40bf")),
-};
-
-/**
- * Color Scheme Variants
- *
- * Currently we only support (and require) dark and light themes
- * Eventually you will be able to have only a light or dark theme,
- * and define other variants here.
- *
- * createColorScheme([name], [isLight], [arrayOfRamps])
- **/
-
-export const dark = createColorScheme(`${name}-dark`, false, ramps);
-export const light = createColorScheme(`${name}-light`, true, ramps);