1import chroma from "chroma-js"
2import { fontWeights } from "../common"
3import { Meta, ThemeSyntax } from "./common/colorScheme"
4import { colorRamp, createColorScheme } from "./common/ramps"
5
6const name = "One Light"
7
8const color = {
9 black: "#383A41",
10 grey: "#A2A3A7",
11 red: "#D36050",
12 darkRed: "#B92C46",
13 orange: "#AD6F26",
14 yellow: "#DFC184",
15 green: "#659F58",
16 teal: "#3982B7",
17 blue: "#5B79E3",
18 purple: "#A449AB",
19 magenta: "#994EA6",
20}
21
22const ramps = {
23 neutral: chroma
24 .scale([
25 "#383A41",
26 "#535456",
27 "#696c77",
28 "#9D9D9F",
29 "#A9A9A9",
30 "#DBDBDC",
31 "#EAEAEB",
32 "#FAFAFA",
33 ])
34 .domain([0.05, 0.22, 0.25, 0.45, 0.62, 0.8, 0.9, 1]),
35 red: colorRamp(chroma(color.red)),
36 orange: colorRamp(chroma(color.orange)),
37 yellow: colorRamp(chroma(color.yellow)),
38 green: colorRamp(chroma(color.green)),
39 cyan: colorRamp(chroma(color.teal)),
40 blue: colorRamp(chroma(color.blue)),
41 violet: colorRamp(chroma(color.purple)),
42 magenta: colorRamp(chroma(color.magenta)),
43}
44
45const syntax: ThemeSyntax = {
46 boolean: { color: color.orange },
47 comment: { color: color.grey },
48 enum: { color: color.red },
49 "emphasis.strong": { color: color.orange },
50 function: { color: color.blue },
51 keyword: { color: color.purple },
52 linkText: { color: color.blue },
53 linkUri: { color: color.teal },
54 number: { color: color.orange },
55 operator: { color: color.teal },
56 primary: { color: color.black },
57 property: { color: color.red },
58 punctuation: { color: color.black },
59 "punctuation.list_marker": { color: color.red },
60 "punctuation.special": { color: color.darkRed },
61 string: { color: color.green },
62 title: { color: color.red, weight: fontWeights.normal },
63 "text.literal": { color: color.green },
64 type: { color: color.teal },
65 "variable.special": { color: color.orange },
66 variant: { color: color.blue },
67}
68
69export const light = createColorScheme(name, true, ramps, syntax)
70
71export const meta: Meta = {
72 name,
73 author: "simurai",
74 license: {
75 SPDX: "MIT",
76 license_text: {
77 https_url:
78 "https://raw.githubusercontent.com/atom/atom/master/packages/one-light-ui/LICENSE.md",
79 license_checksum:
80 "d5af8fc171f6f600c0ab4e7597dca398dda80dbe6821ce01cef78e859e7a00f8",
81 },
82 },
83 url: "https://github.com/atom/atom/tree/master/packages/one-light-ui",
84}