@astryxdesign/theme-stone 0.7.3 → 0.7.4-canary.28b1cd4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,501 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ // Generated by astryx-oklch-v1. Review before committing.
4
+ export const black = '#000000' as const;
5
+ export const white = '#ffffff' as const;
6
+
7
+ // prettier-ignore
8
+ export const palette = {
9
+ "neutral": {
10
+ "name": "Stone Neutral",
11
+ "light": {
12
+ "0": "#000000",
13
+ "5": "#101019",
14
+ "10": "#1b1b21",
15
+ "15": "#25252a",
16
+ "20": "#2f2f36",
17
+ "25": "#3a3a42",
18
+ "30": "#46464e",
19
+ "35": "#525259",
20
+ "40": "#5f5f64",
21
+ "45": "#6b6b6f",
22
+ "50": "#77777c",
23
+ "55": "#848489",
24
+ "60": "#919197",
25
+ "65": "#9e9da5",
26
+ "70": "#ababb3",
27
+ "75": "#b8b8c2",
28
+ "80": "#c6c5d0",
29
+ "85": "#d4d3dd",
30
+ "90": "#e2e2e8",
31
+ "95": "#f0f0f7",
32
+ "100": "#ffffff"
33
+ },
34
+ "dark": {
35
+ "0": "#000000",
36
+ "5": "#101018",
37
+ "10": "#1b1b21",
38
+ "15": "#25252a",
39
+ "20": "#302f36",
40
+ "25": "#3a3a42",
41
+ "30": "#46464e",
42
+ "35": "#525159",
43
+ "40": "#5e5e64",
44
+ "45": "#6a6a70",
45
+ "50": "#77777c",
46
+ "55": "#838489",
47
+ "60": "#909097",
48
+ "65": "#9d9ea5",
49
+ "70": "#ababb3",
50
+ "75": "#b8b8c2",
51
+ "80": "#c6c6cf",
52
+ "85": "#d4d4dd",
53
+ "90": "#e2e2e8",
54
+ "95": "#f0f0f9",
55
+ "100": "#ffffff"
56
+ }
57
+ },
58
+ "red": {
59
+ "name": "Red",
60
+ "light": {
61
+ "0": "#000000",
62
+ "5": "#1c0c09",
63
+ "10": "#2b1411",
64
+ "15": "#381d19",
65
+ "20": "#462722",
66
+ "25": "#53312c",
67
+ "30": "#603c37",
68
+ "35": "#6a4943",
69
+ "40": "#745752",
70
+ "45": "#7e6460",
71
+ "50": "#8a716d",
72
+ "55": "#987d79",
73
+ "60": "#a98984",
74
+ "65": "#ba948e",
75
+ "70": "#caa099",
76
+ "75": "#d8ada6",
77
+ "80": "#e4bcb5",
78
+ "85": "#f0cac4",
79
+ "90": "#fbdad4",
80
+ "95": "#ffece9",
81
+ "100": "#ffffff"
82
+ },
83
+ "dark": {
84
+ "0": "#000000",
85
+ "5": "#1b0c0a",
86
+ "10": "#291613",
87
+ "15": "#361f1b",
88
+ "20": "#432825",
89
+ "25": "#50332e",
90
+ "30": "#5c3e3a",
91
+ "35": "#684a45",
92
+ "40": "#735752",
93
+ "45": "#7d6460",
94
+ "50": "#8a716d",
95
+ "55": "#987e79",
96
+ "60": "#a78985",
97
+ "65": "#b79590",
98
+ "70": "#c6a29c",
99
+ "75": "#d4afa9",
100
+ "80": "#e0bdb8",
101
+ "85": "#ecccc7",
102
+ "90": "#f7dbd7",
103
+ "95": "#ffece9",
104
+ "100": "#ffffff"
105
+ }
106
+ },
107
+ "orange": {
108
+ "name": "Orange",
109
+ "light": {
110
+ "0": "#000000",
111
+ "5": "#1b0d04",
112
+ "10": "#291607",
113
+ "15": "#36200d",
114
+ "20": "#442a14",
115
+ "25": "#51341d",
116
+ "30": "#5e3f27",
117
+ "35": "#6a4a31",
118
+ "40": "#77573c",
119
+ "45": "#836448",
120
+ "50": "#8f7154",
121
+ "55": "#9c7d5f",
122
+ "60": "#aa8a6b",
123
+ "65": "#b99776",
124
+ "70": "#c8a382",
125
+ "75": "#d7b18d",
126
+ "80": "#e5be9b",
127
+ "85": "#f2cdaa",
128
+ "90": "#ffdcbb",
129
+ "95": "#ffeddd",
130
+ "100": "#ffffff"
131
+ },
132
+ "dark": {
133
+ "0": "#000000",
134
+ "5": "#1a0e05",
135
+ "10": "#28170b",
136
+ "15": "#342112",
137
+ "20": "#412b19",
138
+ "25": "#4e3522",
139
+ "30": "#5b402b",
140
+ "35": "#684c34",
141
+ "40": "#75583f",
142
+ "45": "#836448",
143
+ "50": "#8f7154",
144
+ "55": "#9c7e5f",
145
+ "60": "#ab8b6b",
146
+ "65": "#ba9777",
147
+ "70": "#c9a382",
148
+ "75": "#d6b18e",
149
+ "80": "#e5be9c",
150
+ "85": "#f2cdab",
151
+ "90": "#ffdcbb",
152
+ "95": "#ffeedd",
153
+ "100": "#ffffff"
154
+ }
155
+ },
156
+ "yellow": {
157
+ "name": "Yellow",
158
+ "light": {
159
+ "0": "#000000",
160
+ "5": "#151101",
161
+ "10": "#211b02",
162
+ "15": "#2d2605",
163
+ "20": "#38300b",
164
+ "25": "#443b13",
165
+ "30": "#524818",
166
+ "35": "#61551a",
167
+ "40": "#736419",
168
+ "45": "#83721a",
169
+ "50": "#927f25",
170
+ "55": "#a08c36",
171
+ "60": "#ac9848",
172
+ "65": "#b8a35a",
173
+ "70": "#c3af6c",
174
+ "75": "#cfbb7f",
175
+ "80": "#dbc790",
176
+ "85": "#e7d3a4",
177
+ "90": "#f4e1b7",
178
+ "95": "#fdf0d3",
179
+ "100": "#ffffff"
180
+ },
181
+ "dark": {
182
+ "0": "#000000",
183
+ "5": "#141103",
184
+ "10": "#201b06",
185
+ "15": "#2c260c",
186
+ "20": "#373013",
187
+ "25": "#433b1b",
188
+ "30": "#514821",
189
+ "35": "#615620",
190
+ "40": "#72641d",
191
+ "45": "#84721b",
192
+ "50": "#927f25",
193
+ "55": "#a08c37",
194
+ "60": "#ab9849",
195
+ "65": "#b7a45b",
196
+ "70": "#c2af6e",
197
+ "75": "#cdba81",
198
+ "80": "#d9c794",
199
+ "85": "#e5d3a6",
200
+ "90": "#f1e1b9",
201
+ "95": "#fbf0d5",
202
+ "100": "#ffffff"
203
+ }
204
+ },
205
+ "green": {
206
+ "name": "Green",
207
+ "light": {
208
+ "0": "#000000",
209
+ "5": "#0a1408",
210
+ "10": "#122010",
211
+ "15": "#1a2b17",
212
+ "20": "#233620",
213
+ "25": "#2d4229",
214
+ "30": "#354f31",
215
+ "35": "#3c5e37",
216
+ "40": "#416d3b",
217
+ "45": "#487d40",
218
+ "50": "#528b49",
219
+ "55": "#609757",
220
+ "60": "#6ea366",
221
+ "65": "#7eaf76",
222
+ "70": "#8ebb87",
223
+ "75": "#9fc798",
224
+ "80": "#b0d3aa",
225
+ "85": "#bfdfbb",
226
+ "90": "#d2eccf",
227
+ "95": "#e7f6e5",
228
+ "100": "#ffffff"
229
+ },
230
+ "dark": {
231
+ "0": "#000000",
232
+ "5": "#0b1409",
233
+ "10": "#141f12",
234
+ "15": "#1c2a1a",
235
+ "20": "#253523",
236
+ "25": "#2f412c",
237
+ "30": "#384e35",
238
+ "35": "#3e5d38",
239
+ "40": "#426d3b",
240
+ "45": "#487d40",
241
+ "50": "#528b49",
242
+ "55": "#609857",
243
+ "60": "#6fa467",
244
+ "65": "#80af78",
245
+ "70": "#90ba8a",
246
+ "75": "#a3c59d",
247
+ "80": "#b3d0af",
248
+ "85": "#c3ddbf",
249
+ "90": "#d5e9d2",
250
+ "95": "#e9f4e7",
251
+ "100": "#ffffff"
252
+ }
253
+ },
254
+ "teal": {
255
+ "name": "Teal",
256
+ "light": {
257
+ "0": "#000000",
258
+ "5": "#051410",
259
+ "10": "#0a201a",
260
+ "15": "#112b24",
261
+ "20": "#19372e",
262
+ "25": "#224339",
263
+ "30": "#2c4f44",
264
+ "35": "#365b50",
265
+ "40": "#40675c",
266
+ "45": "#4c7468",
267
+ "50": "#588174",
268
+ "55": "#658e81",
269
+ "60": "#729b8e",
270
+ "65": "#81a89b",
271
+ "70": "#91b4a8",
272
+ "75": "#a1c1b6",
273
+ "80": "#b2cec4",
274
+ "85": "#c3dbd2",
275
+ "90": "#d4e8e1",
276
+ "95": "#e6f5ef",
277
+ "100": "#ffffff"
278
+ },
279
+ "dark": {
280
+ "0": "#000000",
281
+ "5": "#071410",
282
+ "10": "#0e201a",
283
+ "15": "#152b24",
284
+ "20": "#1e362f",
285
+ "25": "#274239",
286
+ "30": "#304e45",
287
+ "35": "#3a5b50",
288
+ "40": "#43675b",
289
+ "45": "#4d7567",
290
+ "50": "#588174",
291
+ "55": "#668e80",
292
+ "60": "#749a8d",
293
+ "65": "#84a79b",
294
+ "70": "#94b3a9",
295
+ "75": "#a5c0b7",
296
+ "80": "#b5cdc5",
297
+ "85": "#c6dad3",
298
+ "90": "#d6e7e1",
299
+ "95": "#e7f4f0",
300
+ "100": "#ffffff"
301
+ }
302
+ },
303
+ "cyan": {
304
+ "name": "Cyan",
305
+ "light": {
306
+ "0": "#000000",
307
+ "5": "#031418",
308
+ "10": "#061f25",
309
+ "15": "#0c2a31",
310
+ "20": "#14363e",
311
+ "25": "#1d414a",
312
+ "30": "#264d57",
313
+ "35": "#305862",
314
+ "40": "#3a646e",
315
+ "45": "#446e79",
316
+ "50": "#507b86",
317
+ "55": "#5d8893",
318
+ "60": "#6c96a1",
319
+ "65": "#7ba5b0",
320
+ "70": "#8ab3be",
321
+ "75": "#99c1cb",
322
+ "80": "#a9ced8",
323
+ "85": "#badbe4",
324
+ "90": "#cbe9f0",
325
+ "95": "#def6fc",
326
+ "100": "#ffffff"
327
+ },
328
+ "dark": {
329
+ "0": "#000000",
330
+ "5": "#051317",
331
+ "10": "#0b1f24",
332
+ "15": "#122a30",
333
+ "20": "#1a353c",
334
+ "25": "#234048",
335
+ "30": "#2c4c54",
336
+ "35": "#345761",
337
+ "40": "#3c636d",
338
+ "45": "#456e79",
339
+ "50": "#507b86",
340
+ "55": "#5d8893",
341
+ "60": "#6e96a0",
342
+ "65": "#7ea4ae",
343
+ "70": "#8fb2bb",
344
+ "75": "#9ebfc8",
345
+ "80": "#aecdd5",
346
+ "85": "#bedae2",
347
+ "90": "#cfe8ee",
348
+ "95": "#e1f5fa",
349
+ "100": "#ffffff"
350
+ }
351
+ },
352
+ "blue": {
353
+ "name": "Blue",
354
+ "light": {
355
+ "0": "#000000",
356
+ "5": "#08111e",
357
+ "10": "#0f1c2d",
358
+ "15": "#17263a",
359
+ "20": "#203148",
360
+ "25": "#293c56",
361
+ "30": "#344861",
362
+ "35": "#42546b",
363
+ "40": "#516074",
364
+ "45": "#5f6b7c",
365
+ "50": "#6c7888",
366
+ "55": "#788597",
367
+ "60": "#8292a8",
368
+ "65": "#8ba0ba",
369
+ "70": "#96adcb",
370
+ "75": "#a4bbda",
371
+ "80": "#b3c9e6",
372
+ "85": "#c2d6f1",
373
+ "90": "#d3e4fc",
374
+ "95": "#e8f2ff",
375
+ "100": "#ffffff"
376
+ },
377
+ "dark": {
378
+ "0": "#000000",
379
+ "5": "#09111c",
380
+ "10": "#111c2a",
381
+ "15": "#1a2637",
382
+ "20": "#233145",
383
+ "25": "#2c3c52",
384
+ "30": "#37485e",
385
+ "35": "#445469",
386
+ "40": "#515f72",
387
+ "45": "#5f6b7c",
388
+ "50": "#6c7888",
389
+ "55": "#778596",
390
+ "60": "#8292a6",
391
+ "65": "#8ea0b7",
392
+ "70": "#9aadc7",
393
+ "75": "#a7bbd5",
394
+ "80": "#b6c8e1",
395
+ "85": "#c5d6ed",
396
+ "90": "#d5e4f8",
397
+ "95": "#e8f2ff",
398
+ "100": "#ffffff"
399
+ }
400
+ },
401
+ "purple": {
402
+ "name": "Purple",
403
+ "light": {
404
+ "0": "#000000",
405
+ "5": "#130e1b",
406
+ "10": "#1f1828",
407
+ "15": "#2a2135",
408
+ "20": "#352b42",
409
+ "25": "#40364f",
410
+ "30": "#4c405b",
411
+ "35": "#574d66",
412
+ "40": "#635a70",
413
+ "45": "#6f677a",
414
+ "50": "#7b7486",
415
+ "55": "#888094",
416
+ "60": "#968ca4",
417
+ "65": "#a398b4",
418
+ "70": "#b1a4c4",
419
+ "75": "#beb2d2",
420
+ "80": "#ccc0de",
421
+ "85": "#d9cfea",
422
+ "90": "#e7def5",
423
+ "95": "#f4edff",
424
+ "100": "#ffffff"
425
+ },
426
+ "dark": {
427
+ "0": "#000000",
428
+ "5": "#130e19",
429
+ "10": "#1e1827",
430
+ "15": "#292233",
431
+ "20": "#342c40",
432
+ "25": "#3f374c",
433
+ "30": "#4b4258",
434
+ "35": "#574e64",
435
+ "40": "#625b6f",
436
+ "45": "#6f687a",
437
+ "50": "#7b7486",
438
+ "55": "#888194",
439
+ "60": "#958da2",
440
+ "65": "#a399b1",
441
+ "70": "#b0a5c0",
442
+ "75": "#beb3ce",
443
+ "80": "#cbc1da",
444
+ "85": "#d9d0e7",
445
+ "90": "#e6def3",
446
+ "95": "#f4edfe",
447
+ "100": "#ffffff"
448
+ }
449
+ },
450
+ "pink": {
451
+ "name": "Pink",
452
+ "light": {
453
+ "0": "#000000",
454
+ "5": "#1a0c15",
455
+ "10": "#271420",
456
+ "15": "#341d2c",
457
+ "20": "#412737",
458
+ "25": "#4e3143",
459
+ "30": "#5a3c4f",
460
+ "35": "#644959",
461
+ "40": "#6e5765",
462
+ "45": "#786470",
463
+ "50": "#83727c",
464
+ "55": "#927d89",
465
+ "60": "#a28898",
466
+ "65": "#b394a6",
467
+ "70": "#c39fb4",
468
+ "75": "#d1adc2",
469
+ "80": "#ddbbcf",
470
+ "85": "#e9cadc",
471
+ "90": "#f5d9ea",
472
+ "95": "#ffeaf6",
473
+ "100": "#ffffff"
474
+ },
475
+ "dark": {
476
+ "0": "#000000",
477
+ "5": "#180c14",
478
+ "10": "#261620",
479
+ "15": "#321f2b",
480
+ "20": "#3e2836",
481
+ "25": "#4b3242",
482
+ "30": "#573e4e",
483
+ "35": "#624a59",
484
+ "40": "#6d5864",
485
+ "45": "#776570",
486
+ "50": "#83727c",
487
+ "55": "#917d89",
488
+ "60": "#a08997",
489
+ "65": "#b095a5",
490
+ "70": "#bfa1b3",
491
+ "75": "#cdaec1",
492
+ "80": "#dabdce",
493
+ "85": "#e6ccdb",
494
+ "90": "#f2dbe8",
495
+ "95": "#fdebf6",
496
+ "100": "#ffffff"
497
+ }
498
+ }
499
+ } as const;
500
+
501
+ export default palette;
@@ -0,0 +1,87 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ import {describe, expect, it} from 'vitest';
4
+ import {palette as stoneModePalettes} from './stonePalettes.generated';
5
+ import {stonePalettes} from './stoneTheme';
6
+
7
+ const stops = [
8
+ 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95,
9
+ 100,
10
+ ] as const;
11
+
12
+ const chromaticFamilies = [
13
+ 'blue',
14
+ 'cyan',
15
+ 'green',
16
+ 'teal',
17
+ 'yellow',
18
+ 'orange',
19
+ 'red',
20
+ 'pink',
21
+ 'purple',
22
+ ] as const;
23
+
24
+ const exactMidpoints = {
25
+ red: '#8a716d',
26
+ orange: '#8f7154',
27
+ yellow: '#927f25',
28
+ green: '#528b49',
29
+ teal: '#588174',
30
+ cyan: '#507b86',
31
+ blue: '#6c7888',
32
+ purple: '#7b7486',
33
+ pink: '#83727c',
34
+ } as const;
35
+
36
+ describe('stone palette artifact', () => {
37
+ it('keeps every reviewed family and mode structurally complete', () => {
38
+ expect(Object.keys(stonePalettes)).toEqual([
39
+ 'neutral',
40
+ ...chromaticFamilies,
41
+ ]);
42
+
43
+ for (const familyName of ['neutral', ...chromaticFamilies] as const) {
44
+ const family = stonePalettes[familyName];
45
+ expect(family.hue).toBeTypeOf('number');
46
+ expect(family.chroma).toBeTypeOf('number');
47
+ for (const stop of stops) {
48
+ expect(family[stop]).toMatch(/^#[0-9a-f]{6}$/i);
49
+ expect(stoneModePalettes[familyName].light[stop]).toMatch(
50
+ /^#[0-9a-f]{6}$/i,
51
+ );
52
+ expect(stoneModePalettes[familyName].dark[stop]).toMatch(
53
+ /^#[0-9a-f]{6}$/i,
54
+ );
55
+ }
56
+ expect(family[0]).toBe('#000000');
57
+ expect(family[100]).toBe('#ffffff');
58
+ }
59
+ });
60
+
61
+ it('preserves Stone exact anchors in both modes', () => {
62
+ expect(stoneModePalettes.neutral.light[15]).toBe('#25252a');
63
+ expect(stoneModePalettes.neutral.light[50]).toBe('#77777c');
64
+ expect(stoneModePalettes.neutral.light[90]).toBe('#e2e2e8');
65
+ expect(stoneModePalettes.neutral.dark[15]).toBe('#25252a');
66
+ expect(stoneModePalettes.neutral.dark[50]).toBe('#77777c');
67
+ expect(stoneModePalettes.neutral.dark[90]).toBe('#e2e2e8');
68
+
69
+ for (const familyName of chromaticFamilies) {
70
+ expect(stoneModePalettes[familyName].light[50]).toBe(
71
+ exactMidpoints[familyName],
72
+ );
73
+ expect(stoneModePalettes[familyName].dark[50]).toBe(
74
+ exactMidpoints[familyName],
75
+ );
76
+ expect(stonePalettes[familyName]).not.toHaveProperty('light');
77
+ expect(stonePalettes[familyName]).not.toHaveProperty('dark');
78
+ }
79
+
80
+ expect(stoneModePalettes.yellow.light[90]).toBe('#f4e1b7');
81
+ expect(stoneModePalettes.yellow.dark[90]).toBe('#f1e1b9');
82
+ expect(stoneModePalettes.orange.light[90]).toBe('#ffdcbb');
83
+ expect(stoneModePalettes.orange.dark[90]).toBe('#ffdcbb');
84
+ expect(stoneModePalettes.green.light[85]).toBe('#bfdfbb');
85
+ expect(stoneModePalettes.green.dark[85]).toBe('#c3ddbf');
86
+ });
87
+ });