Merge pull request #891 from zed-industries/solarized

Add solarized dark and light syntax themes
This commit is contained in:
Keith Simmons 2022-04-22 15:13:52 -07:00 committed by GitHub
commit 5ab21cc0fd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 5343 additions and 3 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

567
styles/dist/solarized-dark.json vendored Normal file
View file

@ -0,0 +1,567 @@
{
"meta": {
"themeName": "solarized-dark"
},
"text": {
"primary": {
"value": "#eee8d5",
"type": "color"
},
"secondary": {
"value": "#93a1a1",
"type": "color"
},
"muted": {
"value": "#93a1a1",
"type": "color"
},
"placeholder": {
"value": "#839496",
"type": "color"
},
"active": {
"value": "#fdf6e3",
"type": "color"
},
"feature": {
"value": "#268bd2",
"type": "color"
},
"ok": {
"value": "#859900",
"type": "color"
},
"error": {
"value": "#dc322f",
"type": "color"
},
"warning": {
"value": "#b58900",
"type": "color"
},
"info": {
"value": "#268bd2",
"type": "color"
}
},
"icon": {
"primary": {
"value": "#eee8d5",
"type": "color"
},
"secondary": {
"value": "#93a1a1",
"type": "color"
},
"muted": {
"value": "#93a1a1",
"type": "color"
},
"placeholder": {
"value": "#839496",
"type": "color"
},
"active": {
"value": "#fdf6e3",
"type": "color"
},
"feature": {
"value": "#268bd2",
"type": "color"
},
"ok": {
"value": "#859900",
"type": "color"
},
"error": {
"value": "#dc322f",
"type": "color"
},
"warning": {
"value": "#b58900",
"type": "color"
},
"info": {
"value": "#268bd2",
"type": "color"
}
},
"background": {
"100": {
"base": {
"value": "#073642",
"type": "color"
},
"hovered": {
"value": "#586e75",
"type": "color"
},
"active": {
"value": "#586e75",
"type": "color"
},
"focused": {
"value": "#586e75",
"type": "color"
}
},
"300": {
"base": {
"value": "#073642",
"type": "color"
},
"hovered": {
"value": "#586e75",
"type": "color"
},
"active": {
"value": "#586e75",
"type": "color"
},
"focused": {
"value": "#586e75",
"type": "color"
}
},
"500": {
"base": {
"value": "#002b36",
"type": "color"
},
"hovered": {
"value": "#073642",
"type": "color"
},
"active": {
"value": "#073642",
"type": "color"
},
"focused": {
"value": "#073642",
"type": "color"
}
},
"on300": {
"base": {
"value": "#002b36",
"type": "color"
},
"hovered": {
"value": "#073642",
"type": "color"
},
"active": {
"value": "#073642",
"type": "color"
},
"focused": {
"value": "#073642",
"type": "color"
}
},
"on500": {
"base": {
"value": "#073642",
"type": "color"
},
"hovered": {
"value": "#586e75",
"type": "color"
},
"active": {
"value": "#586e75",
"type": "color"
},
"focused": {
"value": "#586e75",
"type": "color"
}
},
"ok": {
"base": {
"value": "#859900",
"type": "color"
},
"hovered": {
"value": "#859900",
"type": "color"
},
"active": {
"value": "#859900",
"type": "color"
},
"focused": {
"value": "#859900",
"type": "color"
}
},
"error": {
"base": {
"value": "#dc322f",
"type": "color"
},
"hovered": {
"value": "#dc322f",
"type": "color"
},
"active": {
"value": "#dc322f",
"type": "color"
},
"focused": {
"value": "#dc322f",
"type": "color"
}
},
"warning": {
"base": {
"value": "#b58900",
"type": "color"
},
"hovered": {
"value": "#b58900",
"type": "color"
},
"active": {
"value": "#b58900",
"type": "color"
},
"focused": {
"value": "#b58900",
"type": "color"
}
},
"info": {
"base": {
"value": "#268bd2",
"type": "color"
},
"hovered": {
"value": "#268bd2",
"type": "color"
},
"active": {
"value": "#268bd2",
"type": "color"
},
"focused": {
"value": "#268bd2",
"type": "color"
}
}
},
"border": {
"primary": {
"value": "#002b36",
"type": "color"
},
"secondary": {
"value": "#073642",
"type": "color"
},
"muted": {
"value": "#586e75",
"type": "color"
},
"focused": {
"value": "#586e75",
"type": "color"
},
"active": {
"value": "#586e75",
"type": "color"
},
"ok": {
"value": "#859900",
"type": "color"
},
"error": {
"value": "#dc322f",
"type": "color"
},
"warning": {
"value": "#b58900",
"type": "color"
},
"info": {
"value": "#268bd2",
"type": "color"
}
},
"editor": {
"background": {
"value": "#002b36",
"type": "color"
},
"indent_guide": {
"value": "#586e75",
"type": "color"
},
"indent_guide_active": {
"value": "#073642",
"type": "color"
},
"line": {
"active": {
"value": "#fdf6e312",
"type": "color"
},
"highlighted": {
"value": "#fdf6e31f",
"type": "color"
},
"inserted": {
"value": "#859900",
"type": "color"
},
"deleted": {
"value": "#dc322f",
"type": "color"
},
"modified": {
"value": "#268bd2",
"type": "color"
}
},
"highlight": {
"selection": {
"value": "#268bd23d",
"type": "color"
},
"occurrence": {
"value": "#657b831f",
"type": "color"
},
"activeOccurrence": {
"value": "#657b8329",
"type": "color"
},
"matchingBracket": {
"value": "#073642",
"type": "color"
},
"match": {
"value": "#6c71c480",
"type": "color"
},
"activeMatch": {
"value": "#6c71c4b3",
"type": "color"
},
"related": {
"value": "#073642",
"type": "color"
}
},
"gutter": {
"primary": {
"value": "#839496",
"type": "color"
},
"active": {
"value": "#fdf6e3",
"type": "color"
}
}
},
"syntax": {
"primary": {
"value": "#fdf6e3",
"type": "color"
},
"comment": {
"value": "#eee8d5",
"type": "color"
},
"keyword": {
"value": "#268bd2",
"type": "color"
},
"function": {
"value": "#b58900",
"type": "color"
},
"type": {
"value": "#2aa198",
"type": "color"
},
"variant": {
"value": "#268bd2",
"type": "color"
},
"property": {
"value": "#268bd2",
"type": "color"
},
"enum": {
"value": "#cb4b16",
"type": "color"
},
"operator": {
"value": "#cb4b16",
"type": "color"
},
"string": {
"value": "#cb4b16",
"type": "color"
},
"number": {
"value": "#859900",
"type": "color"
},
"boolean": {
"value": "#859900",
"type": "color"
}
},
"player": {
"1": {
"baseColor": {
"value": "#268bd2",
"type": "color"
},
"cursorColor": {
"value": "#268bd2",
"type": "color"
},
"selectionColor": {
"value": "#268bd23d",
"type": "color"
},
"borderColor": {
"value": "#268bd2cc",
"type": "color"
}
},
"2": {
"baseColor": {
"value": "#859900",
"type": "color"
},
"cursorColor": {
"value": "#859900",
"type": "color"
},
"selectionColor": {
"value": "#8599003d",
"type": "color"
},
"borderColor": {
"value": "#859900cc",
"type": "color"
}
},
"3": {
"baseColor": {
"value": "#d33682",
"type": "color"
},
"cursorColor": {
"value": "#d33682",
"type": "color"
},
"selectionColor": {
"value": "#d336823d",
"type": "color"
},
"borderColor": {
"value": "#d33682cc",
"type": "color"
}
},
"4": {
"baseColor": {
"value": "#cb4b16",
"type": "color"
},
"cursorColor": {
"value": "#cb4b16",
"type": "color"
},
"selectionColor": {
"value": "#cb4b163d",
"type": "color"
},
"borderColor": {
"value": "#cb4b16cc",
"type": "color"
}
},
"5": {
"baseColor": {
"value": "#6c71c4",
"type": "color"
},
"cursorColor": {
"value": "#6c71c4",
"type": "color"
},
"selectionColor": {
"value": "#6c71c43d",
"type": "color"
},
"borderColor": {
"value": "#6c71c4cc",
"type": "color"
}
},
"6": {
"baseColor": {
"value": "#2aa198",
"type": "color"
},
"cursorColor": {
"value": "#2aa198",
"type": "color"
},
"selectionColor": {
"value": "#2aa1983d",
"type": "color"
},
"borderColor": {
"value": "#2aa198cc",
"type": "color"
}
},
"7": {
"baseColor": {
"value": "#dc322f",
"type": "color"
},
"cursorColor": {
"value": "#dc322f",
"type": "color"
},
"selectionColor": {
"value": "#dc322f3d",
"type": "color"
},
"borderColor": {
"value": "#dc322fcc",
"type": "color"
}
},
"8": {
"baseColor": {
"value": "#b58900",
"type": "color"
},
"cursorColor": {
"value": "#b58900",
"type": "color"
},
"selectionColor": {
"value": "#b589003d",
"type": "color"
},
"borderColor": {
"value": "#b58900cc",
"type": "color"
}
}
},
"shadowAlpha": {
"value": 0.32,
"type": "number"
}
}

567
styles/dist/solarized-light.json vendored Normal file
View file

@ -0,0 +1,567 @@
{
"meta": {
"themeName": "solarized-light"
},
"text": {
"primary": {
"value": "#073642",
"type": "color"
},
"secondary": {
"value": "#586e75",
"type": "color"
},
"muted": {
"value": "#586e75",
"type": "color"
},
"placeholder": {
"value": "#657b83",
"type": "color"
},
"active": {
"value": "#002b36",
"type": "color"
},
"feature": {
"value": "#268bd2",
"type": "color"
},
"ok": {
"value": "#859900",
"type": "color"
},
"error": {
"value": "#dc322f",
"type": "color"
},
"warning": {
"value": "#b58900",
"type": "color"
},
"info": {
"value": "#268bd2",
"type": "color"
}
},
"icon": {
"primary": {
"value": "#073642",
"type": "color"
},
"secondary": {
"value": "#586e75",
"type": "color"
},
"muted": {
"value": "#586e75",
"type": "color"
},
"placeholder": {
"value": "#657b83",
"type": "color"
},
"active": {
"value": "#002b36",
"type": "color"
},
"feature": {
"value": "#268bd2",
"type": "color"
},
"ok": {
"value": "#859900",
"type": "color"
},
"error": {
"value": "#dc322f",
"type": "color"
},
"warning": {
"value": "#b58900",
"type": "color"
},
"info": {
"value": "#268bd2",
"type": "color"
}
},
"background": {
"100": {
"base": {
"value": "#eee8d5",
"type": "color"
},
"hovered": {
"value": "#93a1a1",
"type": "color"
},
"active": {
"value": "#93a1a1",
"type": "color"
},
"focused": {
"value": "#93a1a1",
"type": "color"
}
},
"300": {
"base": {
"value": "#eee8d5",
"type": "color"
},
"hovered": {
"value": "#93a1a1",
"type": "color"
},
"active": {
"value": "#93a1a1",
"type": "color"
},
"focused": {
"value": "#93a1a1",
"type": "color"
}
},
"500": {
"base": {
"value": "#fdf6e3",
"type": "color"
},
"hovered": {
"value": "#eee8d5",
"type": "color"
},
"active": {
"value": "#eee8d5",
"type": "color"
},
"focused": {
"value": "#eee8d5",
"type": "color"
}
},
"on300": {
"base": {
"value": "#fdf6e3",
"type": "color"
},
"hovered": {
"value": "#eee8d5",
"type": "color"
},
"active": {
"value": "#eee8d5",
"type": "color"
},
"focused": {
"value": "#eee8d5",
"type": "color"
}
},
"on500": {
"base": {
"value": "#eee8d5",
"type": "color"
},
"hovered": {
"value": "#93a1a1",
"type": "color"
},
"active": {
"value": "#93a1a1",
"type": "color"
},
"focused": {
"value": "#93a1a1",
"type": "color"
}
},
"ok": {
"base": {
"value": "#859900",
"type": "color"
},
"hovered": {
"value": "#859900",
"type": "color"
},
"active": {
"value": "#859900",
"type": "color"
},
"focused": {
"value": "#859900",
"type": "color"
}
},
"error": {
"base": {
"value": "#dc322f",
"type": "color"
},
"hovered": {
"value": "#dc322f",
"type": "color"
},
"active": {
"value": "#dc322f",
"type": "color"
},
"focused": {
"value": "#dc322f",
"type": "color"
}
},
"warning": {
"base": {
"value": "#b58900",
"type": "color"
},
"hovered": {
"value": "#b58900",
"type": "color"
},
"active": {
"value": "#b58900",
"type": "color"
},
"focused": {
"value": "#b58900",
"type": "color"
}
},
"info": {
"base": {
"value": "#268bd2",
"type": "color"
},
"hovered": {
"value": "#268bd2",
"type": "color"
},
"active": {
"value": "#268bd2",
"type": "color"
},
"focused": {
"value": "#268bd2",
"type": "color"
}
}
},
"border": {
"primary": {
"value": "#fdf6e3",
"type": "color"
},
"secondary": {
"value": "#eee8d5",
"type": "color"
},
"muted": {
"value": "#93a1a1",
"type": "color"
},
"focused": {
"value": "#93a1a1",
"type": "color"
},
"active": {
"value": "#93a1a1",
"type": "color"
},
"ok": {
"value": "#859900",
"type": "color"
},
"error": {
"value": "#dc322f",
"type": "color"
},
"warning": {
"value": "#b58900",
"type": "color"
},
"info": {
"value": "#268bd2",
"type": "color"
}
},
"editor": {
"background": {
"value": "#fdf6e3",
"type": "color"
},
"indent_guide": {
"value": "#93a1a1",
"type": "color"
},
"indent_guide_active": {
"value": "#eee8d5",
"type": "color"
},
"line": {
"active": {
"value": "#002b3612",
"type": "color"
},
"highlighted": {
"value": "#002b361f",
"type": "color"
},
"inserted": {
"value": "#859900",
"type": "color"
},
"deleted": {
"value": "#dc322f",
"type": "color"
},
"modified": {
"value": "#268bd2",
"type": "color"
}
},
"highlight": {
"selection": {
"value": "#268bd23d",
"type": "color"
},
"occurrence": {
"value": "#8394961f",
"type": "color"
},
"activeOccurrence": {
"value": "#83949629",
"type": "color"
},
"matchingBracket": {
"value": "#eee8d5",
"type": "color"
},
"match": {
"value": "#6c71c480",
"type": "color"
},
"activeMatch": {
"value": "#6c71c4b3",
"type": "color"
},
"related": {
"value": "#eee8d5",
"type": "color"
}
},
"gutter": {
"primary": {
"value": "#657b83",
"type": "color"
},
"active": {
"value": "#002b36",
"type": "color"
}
}
},
"syntax": {
"primary": {
"value": "#002b36",
"type": "color"
},
"comment": {
"value": "#073642",
"type": "color"
},
"keyword": {
"value": "#268bd2",
"type": "color"
},
"function": {
"value": "#b58900",
"type": "color"
},
"type": {
"value": "#2aa198",
"type": "color"
},
"variant": {
"value": "#268bd2",
"type": "color"
},
"property": {
"value": "#268bd2",
"type": "color"
},
"enum": {
"value": "#cb4b16",
"type": "color"
},
"operator": {
"value": "#cb4b16",
"type": "color"
},
"string": {
"value": "#cb4b16",
"type": "color"
},
"number": {
"value": "#859900",
"type": "color"
},
"boolean": {
"value": "#859900",
"type": "color"
}
},
"player": {
"1": {
"baseColor": {
"value": "#268bd2",
"type": "color"
},
"cursorColor": {
"value": "#268bd2",
"type": "color"
},
"selectionColor": {
"value": "#268bd23d",
"type": "color"
},
"borderColor": {
"value": "#268bd2cc",
"type": "color"
}
},
"2": {
"baseColor": {
"value": "#859900",
"type": "color"
},
"cursorColor": {
"value": "#859900",
"type": "color"
},
"selectionColor": {
"value": "#8599003d",
"type": "color"
},
"borderColor": {
"value": "#859900cc",
"type": "color"
}
},
"3": {
"baseColor": {
"value": "#d33682",
"type": "color"
},
"cursorColor": {
"value": "#d33682",
"type": "color"
},
"selectionColor": {
"value": "#d336823d",
"type": "color"
},
"borderColor": {
"value": "#d33682cc",
"type": "color"
}
},
"4": {
"baseColor": {
"value": "#cb4b16",
"type": "color"
},
"cursorColor": {
"value": "#cb4b16",
"type": "color"
},
"selectionColor": {
"value": "#cb4b163d",
"type": "color"
},
"borderColor": {
"value": "#cb4b16cc",
"type": "color"
}
},
"5": {
"baseColor": {
"value": "#6c71c4",
"type": "color"
},
"cursorColor": {
"value": "#6c71c4",
"type": "color"
},
"selectionColor": {
"value": "#6c71c43d",
"type": "color"
},
"borderColor": {
"value": "#6c71c4cc",
"type": "color"
}
},
"6": {
"baseColor": {
"value": "#2aa198",
"type": "color"
},
"cursorColor": {
"value": "#2aa198",
"type": "color"
},
"selectionColor": {
"value": "#2aa1983d",
"type": "color"
},
"borderColor": {
"value": "#2aa198cc",
"type": "color"
}
},
"7": {
"baseColor": {
"value": "#dc322f",
"type": "color"
},
"cursorColor": {
"value": "#dc322f",
"type": "color"
},
"selectionColor": {
"value": "#dc322f3d",
"type": "color"
},
"borderColor": {
"value": "#dc322fcc",
"type": "color"
}
},
"8": {
"baseColor": {
"value": "#b58900",
"type": "color"
},
"cursorColor": {
"value": "#b58900",
"type": "color"
},
"selectionColor": {
"value": "#b589003d",
"type": "color"
},
"borderColor": {
"value": "#b58900cc",
"type": "color"
}
}
},
"shadowAlpha": {
"value": 0.32,
"type": "number"
}
}

1134
styles/dist/tokens.json vendored

File diff suppressed because it is too large Load diff

View file

@ -3,9 +3,11 @@ import * as path from "path";
import app from "./styleTree/app";
import dark from "./themes/dark";
import light from "./themes/light";
import solarizedDark from "./themes/solarized-dark";
import solarizedLight from "./themes/solarized-light";
import snakeCase from "./utils/snakeCase";
const themes = [dark, light];
const themes = [dark, light, solarizedDark, solarizedLight];
for (let theme of themes) {
let styleTree = snakeCase(app(theme));
let styleTreeJSON = JSON.stringify(styleTree, null, 2);

View file

@ -2,6 +2,8 @@ import * as fs from "fs";
import * as path from "path";
import dark from "./themes/dark";
import light from "./themes/light";
import solarizedDark from "./themes/solarized-dark";
import solarizedLight from "./themes/solarized-light";
import Theme from "./themes/theme";
import { colors, fontFamilies, fontSizes, fontWeights } from "./tokens";
@ -96,7 +98,7 @@ combinedTokens.core = coreTokens;
// Add each theme to the combined tokens and write ${theme}.json.
// We write `${theme}.json` as a separate file for the design team's convenience, but it isn't consumed by Figma Tokens directly.
let themes = [dark, light];
let themes = [dark, light, solarizedDark, solarizedLight];
themes.forEach((theme) => {
const themePath = `${distPath}/${theme.name}.json`
fs.writeFileSync(themePath, JSON.stringify(themeTokens(theme), null, 2));

View file

@ -1,4 +1,4 @@
import { colors, fontWeights, NumberToken } from "../tokens";
import { color, colors, fontWeights, NumberToken } from "../tokens";
import { withOpacity } from "../utils/color";
import Theme, { buildPlayer, Syntax } from "./theme";

View file

@ -0,0 +1,3 @@
import { solarized } from "./solarized";
export default solarized(true);

View file

@ -0,0 +1,3 @@
import { solarized } from "./solarized";
export default solarized(false);

View file

@ -0,0 +1,255 @@
import { color, fontWeights, NumberToken } from "../tokens";
import { withOpacity } from "../utils/color";
import Theme, { buildPlayer, Syntax } from "./theme";
const dark = {
0: color("#657b83"),
1: color("#586e75"),
2: color("#073642"),
3: color("#002b36"),
};
const light = {
0: color("#839496"),
1: color("#93a1a1"),
2: color("#eee8d5"),
3: color("#fdf6e3"),
};
const colors = {
"yellow": color("#b58900"),
"orange": color("#cb4b16"),
"red": color("#dc322f"),
"magenta": color("#d33682"),
"violet": color("#6c71c4"),
"blue": color("#268bd2"),
"cyan": color("#2aa198"),
"green": color("#859900"),
};
export function solarized(darkTheme: boolean): Theme {
let fg = darkTheme ? light : dark;
let bg = darkTheme ? dark : light;
let name = darkTheme ? "solarized-dark" : "solarized-light";
const backgroundColor = {
100: {
base: bg[2],
hovered: bg[1],
active: bg[1],
focused: bg[1],
},
300: {
base: bg[2],
hovered: bg[1],
active: bg[1],
focused: bg[1],
},
500: {
base: bg[3],
hovered: bg[2],
active: bg[2],
focused: bg[2],
},
on300: {
base: bg[3],
hovered: bg[2],
active: bg[2],
focused: bg[2],
},
on500: {
base: bg[2],
hovered: bg[1],
active: bg[1],
focused: bg[1],
},
ok: {
base: colors.green,
hovered: colors.green,
active: colors.green,
focused: colors.green,
},
error: {
base: colors.red,
hovered: colors.red,
active: colors.red,
focused: colors.red,
},
warning: {
base: colors.yellow,
hovered: colors.yellow,
active: colors.yellow,
focused: colors.yellow,
},
info: {
base: colors.blue,
hovered: colors.blue,
active: colors.blue,
focused: colors.blue,
},
};
const borderColor = {
primary: bg[3],
secondary: bg[2],
muted: bg[1],
focused: bg[1],
active: bg[1],
ok: colors.green,
error: colors.red,
warning: colors.yellow,
info: colors.blue,
};
const textColor = {
primary: fg[2],
secondary: fg[1],
muted: fg[1],
placeholder: fg[0],
active: fg[3],
//TODO: (design) define feature and it's correct value
feature: colors.blue,
ok: colors.green,
error: colors.red,
warning: colors.yellow,
info: colors.blue,
};
const player = {
1: buildPlayer(colors.blue),
2: buildPlayer(colors.green),
3: buildPlayer(colors.magenta),
4: buildPlayer(colors.orange),
5: buildPlayer(colors.violet),
6: buildPlayer(colors.cyan),
7: buildPlayer(colors.red),
8: buildPlayer(colors.yellow),
};
const editor = {
background: backgroundColor[500].base,
indent_guide: borderColor.muted,
indent_guide_active: borderColor.secondary,
line: {
active: withOpacity(fg[3], 0.07),
highlighted: withOpacity(fg[3], 0.12),
inserted: backgroundColor.ok.active,
deleted: backgroundColor.error.active,
modified: backgroundColor.info.active,
},
highlight: {
selection: player[1].selectionColor,
occurrence: withOpacity(bg[0], 0.12),
activeOccurrence: withOpacity(bg[0], 0.16), // TODO: This is not correctly hooked up to occurences on the rust side
matchingBracket: backgroundColor[500].active,
match: withOpacity(colors.violet, 0.5),
activeMatch: withOpacity(colors.violet, 0.7),
related: backgroundColor[500].focused,
},
gutter: {
primary: textColor.placeholder,
active: textColor.active,
},
};
const syntax: Syntax = {
primary: {
color: fg[3],
weight: fontWeights.normal,
},
comment: {
color: fg[2],
weight: fontWeights.normal,
},
punctuation: {
color: fg[1],
weight: fontWeights.normal,
},
constant: {
color: fg[0],
weight: fontWeights.normal,
},
keyword: {
color: colors.blue,
weight: fontWeights.normal,
},
function: {
color: colors.yellow,
weight: fontWeights.normal,
},
type: {
color: colors.cyan,
weight: fontWeights.normal,
},
variant: {
color: colors.blue,
weight: fontWeights.normal,
},
property: {
color: colors.blue,
weight: fontWeights.normal,
},
enum: {
color: colors.orange,
weight: fontWeights.normal,
},
operator: {
color: colors.orange,
weight: fontWeights.normal,
},
string: {
color: colors.orange,
weight: fontWeights.normal,
},
number: {
color: colors.green,
weight: fontWeights.normal,
},
boolean: {
color: colors.green,
weight: fontWeights.normal,
},
predictive: {
color: textColor.muted,
weight: fontWeights.normal,
},
title: {
color: colors.yellow,
weight: fontWeights.bold,
},
emphasis: {
color: textColor.feature,
weight: fontWeights.normal,
},
"emphasis.strong": {
color: textColor.feature,
weight: fontWeights.bold,
},
linkUri: {
color: colors.green,
weight: fontWeights.normal,
underline: true,
},
linkText: {
color: colors.orange,
weight: fontWeights.normal,
italic: true,
},
};
const shadowAlpha: NumberToken = {
value: 0.32,
type: "number",
};
return {
name,
backgroundColor,
borderColor,
textColor,
iconColor: textColor,
editor,
syntax,
player,
shadowAlpha,
};
}

View file

@ -62,10 +62,19 @@ export interface Syntax {
export default interface Theme {
name: string;
backgroundColor: {
// Basically just Title Bar
// Lowest background level
100: BackgroundColorSet;
// Tab bars, panels, popovers
// Mid-ground
300: BackgroundColorSet;
// The editor
// Foreground
500: BackgroundColorSet;
// Hacks for elements on top of the midground
// Buttons in a panel, tab bar, or panel
on300: BackgroundColorSet;
// Hacks for elements on top of the editor
on500: BackgroundColorSet;
ok: BackgroundColorSet;
error: BackgroundColorSet;

View file

@ -71,6 +71,12 @@ export interface ColorToken {
type: "color",
step?: number,
}
export function color(value: string): ColorToken {
return {
value,
type: "color",
};
}
export const colors = {
neutral: colorRamp(["white", "black"], { steps: 37, increment: 25 }), // (900/25) + 1
rose: colorRamp("#F43F5EFF"),