color.ts

  1import { generateColorFamily } from "../lib/generate";
  2import { curve } from "./curves";
  3
  4// These are the source colors for the color scales in the system.
  5// These should never directly be used directly in components or themes as they generate thousands of lines of code.
  6// Instead, use the outputs from the reference palette which exports a smaller subset of colors.
  7
  8// Token or user-facing colors should use short, clear names and a 100-900 scale to match the font weight scale.
  9
 10// Light Gray ======================================== //
 11
 12export const lightgray = generateColorFamily({
 13  name: "lightgray",
 14  color: {
 15    hue: {
 16      start: 210,
 17      end: 210,
 18      curve: curve.linear,
 19    },
 20    saturation: {
 21      start: 10,
 22      end: 15,
 23      curve: curve.saturation,
 24    },
 25    lightness: {
 26      start: 97,
 27      end: 50,
 28      curve: curve.linear,
 29    },
 30  },
 31});
 32
 33// Light Dark ======================================== //
 34
 35export const darkgray = generateColorFamily({
 36  name: "darkgray",
 37  color: {
 38    hue: {
 39      start: 210,
 40      end: 210,
 41      curve: curve.linear,
 42    },
 43    saturation: {
 44      start: 15,
 45      end: 20,
 46      curve: curve.saturation,
 47    },
 48    lightness: {
 49      start: 55,
 50      end: 8,
 51      curve: curve.linear,
 52    },
 53  },
 54});
 55
 56// Red ======================================== //
 57
 58export const red = generateColorFamily({
 59  name: "red",
 60  color: {
 61    hue: {
 62      start: 0,
 63      end: 0,
 64      curve: curve.linear,
 65    },
 66    saturation: {
 67      start: 95,
 68      end: 75,
 69      curve: curve.saturation,
 70    },
 71    lightness: {
 72      start: 97,
 73      end: 25,
 74      curve: curve.lightness,
 75    },
 76  },
 77});
 78
 79// Sunset ======================================== //
 80
 81export const sunset = generateColorFamily({
 82  name: "sunset",
 83  color: {
 84    hue: {
 85      start: 15,
 86      end: 15,
 87      curve: curve.linear,
 88    },
 89    saturation: {
 90      start: 100,
 91      end: 90,
 92      curve: curve.saturation,
 93    },
 94    lightness: {
 95      start: 97,
 96      end: 25,
 97      curve: curve.lightness,
 98    },
 99  },
100});
101
102// Orange ======================================== //
103
104export const orange = generateColorFamily({
105  name: "orange",
106  color: {
107    hue: {
108      start: 25,
109      end: 25,
110      curve: curve.linear,
111    },
112    saturation: {
113      start: 100,
114      end: 95,
115      curve: curve.saturation,
116    },
117    lightness: {
118      start: 97,
119      end: 20,
120      curve: curve.lightness,
121    },
122  },
123});
124
125// Amber ======================================== //
126
127export const amber = generateColorFamily({
128  name: "amber",
129  color: {
130    hue: {
131      start: 38,
132      end: 38,
133      curve: curve.linear,
134    },
135    saturation: {
136      start: 100,
137      end: 100,
138      curve: curve.saturation,
139    },
140    lightness: {
141      start: 97,
142      end: 18,
143      curve: curve.lightness,
144    },
145  },
146});
147
148// Yellow ======================================== //
149
150export const yellow = generateColorFamily({
151  name: "yellow",
152  color: {
153    hue: {
154      start: 48,
155      end: 48,
156      curve: curve.linear,
157    },
158    saturation: {
159      start: 90,
160      end: 100,
161      curve: curve.saturation,
162    },
163    lightness: {
164      start: 97,
165      end: 15,
166      curve: curve.lightness,
167    },
168  },
169});
170
171// Lemon ======================================== //
172
173export const lemon = generateColorFamily({
174  name: "lemon",
175  color: {
176    hue: {
177      start: 55,
178      end: 55,
179      curve: curve.linear,
180    },
181    saturation: {
182      start: 85,
183      end: 95,
184      curve: curve.saturation,
185    },
186    lightness: {
187      start: 97,
188      end: 15,
189      curve: curve.lightness,
190    },
191  },
192});
193
194// Citron ======================================== //
195
196export const citron = generateColorFamily({
197  name: "citron",
198  color: {
199    hue: {
200      start: 70,
201      end: 70,
202      curve: curve.linear,
203    },
204    saturation: {
205      start: 85,
206      end: 90,
207      curve: curve.saturation,
208    },
209    lightness: {
210      start: 97,
211      end: 15,
212      curve: curve.lightness,
213    },
214  },
215});
216
217// Lime ======================================== //
218
219export const lime = generateColorFamily({
220  name: "lime",
221  color: {
222    hue: {
223      start: 85,
224      end: 85,
225      curve: curve.linear,
226    },
227    saturation: {
228      start: 85,
229      end: 80,
230      curve: curve.saturation,
231    },
232    lightness: {
233      start: 97,
234      end: 18,
235      curve: curve.lightness,
236    },
237  },
238});
239
240// Green ======================================== //
241
242export const green = generateColorFamily({
243  name: "green",
244  color: {
245    hue: {
246      start: 108,
247      end: 108,
248      curve: curve.linear,
249    },
250    saturation: {
251      start: 60,
252      end: 70,
253      curve: curve.saturation,
254    },
255    lightness: {
256      start: 97,
257      end: 18,
258      curve: curve.lightness,
259    },
260  },
261});
262
263// Mint ======================================== //
264
265export const mint = generateColorFamily({
266  name: "mint",
267  color: {
268    hue: {
269      start: 142,
270      end: 142,
271      curve: curve.linear,
272    },
273    saturation: {
274      start: 60,
275      end: 75,
276      curve: curve.saturation,
277    },
278    lightness: {
279      start: 97,
280      end: 20,
281      curve: curve.lightness,
282    },
283  },
284});
285
286// Cyan ======================================== //
287
288export const cyan = generateColorFamily({
289  name: "cyan",
290  color: {
291    hue: {
292      start: 179,
293      end: 179,
294      curve: curve.linear,
295    },
296    saturation: {
297      start: 70,
298      end: 80,
299      curve: curve.saturation,
300    },
301    lightness: {
302      start: 97,
303      end: 20,
304      curve: curve.lightness,
305    },
306  },
307});
308
309// Sky ======================================== //
310
311export const sky = generateColorFamily({
312  name: "sky",
313  color: {
314    hue: {
315      start: 195,
316      end: 205,
317      curve: curve.linear,
318    },
319    saturation: {
320      start: 85,
321      end: 90,
322      curve: curve.saturation,
323    },
324    lightness: {
325      start: 97,
326      end: 15,
327      curve: curve.lightness,
328    },
329  },
330});
331
332// Blue ======================================== //
333
334export const blue = generateColorFamily({
335  name: "blue",
336  color: {
337    hue: {
338      start: 218,
339      end: 218,
340      curve: curve.linear,
341    },
342    saturation: {
343      start: 85,
344      end: 70,
345      curve: curve.saturation,
346    },
347    lightness: {
348      start: 97,
349      end: 15,
350      curve: curve.lightness,
351    },
352  },
353});
354
355// Indigo ======================================== //
356
357export const indigo = generateColorFamily({
358  name: "indigo",
359  color: {
360    hue: {
361      start: 245,
362      end: 245,
363      curve: curve.linear,
364    },
365    saturation: {
366      start: 60,
367      end: 50,
368      curve: curve.saturation,
369    },
370    lightness: {
371      start: 97,
372      end: 22,
373      curve: curve.lightness,
374    },
375  },
376});
377
378// Purple ======================================== //
379
380export const purple = generateColorFamily({
381  name: "purple",
382  color: {
383    hue: {
384      start: 260,
385      end: 270,
386      curve: curve.linear,
387    },
388    saturation: {
389      start: 65,
390      end: 55,
391      curve: curve.saturation,
392    },
393    lightness: {
394      start: 97,
395      end: 20,
396      curve: curve.lightness,
397    },
398  },
399});
400
401// Pink ======================================== //
402
403export const pink = generateColorFamily({
404  name: "pink",
405  color: {
406    hue: {
407      start: 320,
408      end: 330,
409      curve: curve.linear,
410    },
411    saturation: {
412      start: 70,
413      end: 65,
414      curve: curve.saturation,
415    },
416    lightness: {
417      start: 97,
418      end: 32,
419      curve: curve.lightness,
420    },
421  },
422});
423
424// Rose ======================================== //
425
426export const rose = generateColorFamily({
427  name: "rose",
428  color: {
429    hue: {
430      start: 345,
431      end: 345,
432      curve: curve.linear,
433    },
434    saturation: {
435      start: 90,
436      end: 70,
437      curve: curve.saturation,
438    },
439    lightness: {
440      start: 97,
441      end: 32,
442      curve: curve.lightness,
443    },
444  },
445});