@textui/core 0.8.0 → 0.9.0
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.
- package/dist/themes/builtin.d.ts +4 -4
- package/dist/themes/builtin.d.ts.map +1 -1
- package/dist/themes/builtin.js +67 -52
- package/package.json +1 -1
- package/src/themes/builtin.ts +68 -53
package/dist/themes/builtin.d.ts
CHANGED
|
@@ -7,10 +7,6 @@ export declare const CONSOLE: ThemeDefinition;
|
|
|
7
7
|
export declare const PAPER: ThemeDefinition;
|
|
8
8
|
/** Borderless. Whitespace and alignment do the separating. */
|
|
9
9
|
export declare const PAPER_LIGHT: ThemeDefinition;
|
|
10
|
-
/** Rounded chrome around a persistent frame. */
|
|
11
|
-
export declare const WORKBENCH: ThemeDefinition;
|
|
12
|
-
/** No colour at all. What a `colorDepth: 0` terminal or a pipe gets. */
|
|
13
|
-
export declare const MONO: ThemeDefinition;
|
|
14
10
|
/**
|
|
15
11
|
* Paper, after dark.
|
|
16
12
|
*
|
|
@@ -20,5 +16,9 @@ export declare const MONO: ThemeDefinition;
|
|
|
20
16
|
* reader moving between them is not moving between two different products.
|
|
21
17
|
*/
|
|
22
18
|
export declare const PAPER_DARK: ThemeDefinition;
|
|
19
|
+
/** Rounded chrome around a persistent frame. */
|
|
20
|
+
export declare const WORKBENCH: ThemeDefinition;
|
|
21
|
+
/** No colour at all. What a `colorDepth: 0` terminal or a pipe gets. */
|
|
22
|
+
export declare const MONO: ThemeDefinition;
|
|
23
23
|
export declare const BUILTIN_THEMES: ThemeDefinition[];
|
|
24
24
|
//# sourceMappingURL=builtin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtin.d.ts","sourceRoot":"","sources":["../../src/themes/builtin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"builtin.d.ts","sourceRoot":"","sources":["../../src/themes/builtin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAgFzD,eAAO,MAAM,IAAI,EAAE,eAgDlB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,eAgDnB,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,OAAO,EAAE,eA0CrB,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,KAAK,EAAE,eAyDnB,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,WAAW,EAAE,eAqCzB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,EAAE,eAiCxB,CAAC;AAEF,gDAAgD;AAChD,eAAO,MAAM,SAAS,EAAE,eAsCvB,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,IAAI,EAAE,eAiElB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,eAAe,EAE3C,CAAC"}
|
package/dist/themes/builtin.js
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* otherwise moves with it, while a theme that states `components.List.focused`
|
|
22
22
|
* moves the list and leaves the table where it was.
|
|
23
23
|
*/
|
|
24
|
-
const SELECTION_FOCUSED = { bg: 'selected', fg: 'onSelected',
|
|
24
|
+
const SELECTION_FOCUSED = { bg: 'selected', fg: 'onSelected', bold: true };
|
|
25
25
|
const SELECTION_UNFOCUSED = { bg: 'active', fg: 'onActive' };
|
|
26
26
|
const SELECTION_HOVER = { bg: 'hover', fg: 'onActive' };
|
|
27
27
|
// The other way to draw a selection: reverse video, which is legible whatever
|
|
@@ -50,7 +50,8 @@ const STATE_STYLES = {
|
|
|
50
50
|
// A marked line is a selection. The caret line is that selection plus the
|
|
51
51
|
// keyboard, so it takes the next fill up rather than a colour of its own.
|
|
52
52
|
CodeViewer: { selected: SELECTION_UNFOCUSED, focus: SELECTION_HOVER },
|
|
53
|
-
Menu: { selected: SELECTION_UNFOCUSED, focus: SELECTION_FOCUSED },
|
|
53
|
+
Menu: { base: { fg: 'text' }, selected: SELECTION_UNFOCUSED, focus: SELECTION_FOCUSED },
|
|
54
|
+
TextInput: { base: { fg: 'text' } },
|
|
54
55
|
// A tab is open, not selected. Dimming it when the strip does not have the
|
|
55
56
|
// keyboard would say no document is open, which is a different claim and a
|
|
56
57
|
// wrong one - so it has one state and no second.
|
|
@@ -66,10 +67,11 @@ const STATE_STYLES = {
|
|
|
66
67
|
ToolCallRow: { selected: SELECTION_FOCUSED },
|
|
67
68
|
ReasoningBlock: { selected: SELECTION_FOCUSED },
|
|
68
69
|
ComposerChip: { focus: SELECTION_FOCUSED },
|
|
69
|
-
// A range in a document is a selection,
|
|
70
|
-
// under it was already drawn in - the syntax of a
|
|
71
|
-
// the code it covers
|
|
72
|
-
|
|
70
|
+
// A range in a document is a selection, drawn in reverse video so it keeps
|
|
71
|
+
// the colours the text under it was already drawn in - the syntax of a
|
|
72
|
+
// selection is the syntax of the code it covers - and shows whether or not
|
|
73
|
+
// the theme's `active` is a fill.
|
|
74
|
+
Editor: { selected: { inverse: true } },
|
|
73
75
|
};
|
|
74
76
|
export const DARK = {
|
|
75
77
|
id: 'dark',
|
|
@@ -86,9 +88,9 @@ export const DARK = {
|
|
|
86
88
|
borderStrong: '#484f58',
|
|
87
89
|
borderSubtle: '#21262d',
|
|
88
90
|
divider: '#484f58',
|
|
89
|
-
text: '#
|
|
91
|
+
text: '#f3e6f1',
|
|
90
92
|
muted: '#8b949e',
|
|
91
|
-
subtle: '#
|
|
93
|
+
subtle: '#546f94',
|
|
92
94
|
inverted: '#0d1117',
|
|
93
95
|
accent: '#58a6ff',
|
|
94
96
|
primary: '#388bfd',
|
|
@@ -107,8 +109,10 @@ export const DARK = {
|
|
|
107
109
|
onWarning: '#0d1117',
|
|
108
110
|
onDanger: '#0d1117',
|
|
109
111
|
hover: '#1f2937',
|
|
110
|
-
active: '
|
|
111
|
-
|
|
112
|
+
active: 'default',
|
|
113
|
+
onActive: '#3191ff',
|
|
114
|
+
selected: 'default',
|
|
115
|
+
onSelected: '#3191ff',
|
|
112
116
|
focus: '#58a6ff',
|
|
113
117
|
disabled: '#484f58',
|
|
114
118
|
scrim: '#010409',
|
|
@@ -154,8 +158,10 @@ export const LIGHT = {
|
|
|
154
158
|
onWarning: '#ffffff',
|
|
155
159
|
onDanger: '#ffffff',
|
|
156
160
|
hover: '#eaeef2',
|
|
157
|
-
active: '
|
|
158
|
-
|
|
161
|
+
active: 'default',
|
|
162
|
+
onActive: '#0969da',
|
|
163
|
+
selected: 'default',
|
|
164
|
+
onSelected: '#0969da',
|
|
159
165
|
focus: '#0969da',
|
|
160
166
|
disabled: '#8c959f',
|
|
161
167
|
scrim: '#8c959f',
|
|
@@ -195,6 +201,9 @@ export const CONSOLE = {
|
|
|
195
201
|
info: '#88c0d0',
|
|
196
202
|
selected: '#6ba3b2',
|
|
197
203
|
active: '#1e3d47',
|
|
204
|
+
// Stated, because `dark` states its own for a selection with no fill.
|
|
205
|
+
onSelected: '#0a0e14',
|
|
206
|
+
onActive: '#d8dee9',
|
|
198
207
|
onAccent: '#0a0e14',
|
|
199
208
|
onPrimary: '#0a0e14',
|
|
200
209
|
onInfo: '#0a0e14',
|
|
@@ -291,6 +300,9 @@ export const PAPER_LIGHT = {
|
|
|
291
300
|
hover: '#f7f1e7',
|
|
292
301
|
active: '#efe4d2',
|
|
293
302
|
selected: '#eadcc6',
|
|
303
|
+
// Stated, because `light` states its own for a selection with no fill.
|
|
304
|
+
onActive: '#2b2a27',
|
|
305
|
+
onSelected: '#2b2a27',
|
|
294
306
|
inverted: '#2b2a27',
|
|
295
307
|
focus: '#b4531f',
|
|
296
308
|
},
|
|
@@ -300,6 +312,48 @@ export const PAPER_LIGHT = {
|
|
|
300
312
|
Button: { base: { padding: [0, 2] } },
|
|
301
313
|
},
|
|
302
314
|
};
|
|
315
|
+
/**
|
|
316
|
+
* Paper, after dark.
|
|
317
|
+
*
|
|
318
|
+
* The same airy, borderless, warm-accented character as `paper` - the point of
|
|
319
|
+
* it is the restraint, not the brightness - with the ink and the page swapped.
|
|
320
|
+
* A warm dark rather than a blue one, so the two read as one family and a
|
|
321
|
+
* reader moving between them is not moving between two different products.
|
|
322
|
+
*/
|
|
323
|
+
export const PAPER_DARK = {
|
|
324
|
+
id: 'paper-dark',
|
|
325
|
+
name: 'Paper Dark',
|
|
326
|
+
appearance: 'dark',
|
|
327
|
+
extends: 'dark',
|
|
328
|
+
border: 'none',
|
|
329
|
+
density: 'airy',
|
|
330
|
+
colors: {
|
|
331
|
+
canvas: '#1c1a17',
|
|
332
|
+
surface: '#1c1a17',
|
|
333
|
+
surfaceAlt: '#26231f',
|
|
334
|
+
border: '#3a352e',
|
|
335
|
+
borderSubtle: '#2a2621',
|
|
336
|
+
divider: 'default',
|
|
337
|
+
subtle: '#db8c4c',
|
|
338
|
+
text: '#e8e3d9',
|
|
339
|
+
muted: '#9a9287',
|
|
340
|
+
accent: '#e0873f',
|
|
341
|
+
primary: '#e0873f',
|
|
342
|
+
// The same restraint, the other way up.
|
|
343
|
+
hover: '#26231f',
|
|
344
|
+
active: 'default',
|
|
345
|
+
onActive: '#e0873f',
|
|
346
|
+
selected: 'default',
|
|
347
|
+
onSelected: '#e0873f',
|
|
348
|
+
inverted: '#f4efe6',
|
|
349
|
+
focus: '#e0873f',
|
|
350
|
+
},
|
|
351
|
+
spacing: { none: 0, xs: 1, sm: 1, md: 2, lg: 3, xl: 4 },
|
|
352
|
+
components: {
|
|
353
|
+
Panel: { base: { border: 'none', padding: [1, 2] } },
|
|
354
|
+
Button: { base: { padding: [0, 2] } },
|
|
355
|
+
},
|
|
356
|
+
};
|
|
303
357
|
/** Rounded chrome around a persistent frame. */
|
|
304
358
|
export const WORKBENCH = {
|
|
305
359
|
id: 'workbench',
|
|
@@ -332,6 +386,7 @@ export const WORKBENCH = {
|
|
|
332
386
|
// The selection is a mid grey, so the light text is what reads on it; the
|
|
333
387
|
// inherited `inverted` is darker than the fill and nearly disappears.
|
|
334
388
|
onSelected: '#cdd6f4',
|
|
389
|
+
onActive: '#cdd6f4',
|
|
335
390
|
focus: '#89b4fa',
|
|
336
391
|
scrim: '#11111b',
|
|
337
392
|
},
|
|
@@ -406,46 +461,6 @@ export const MONO = {
|
|
|
406
461
|
Button: { base: { padding: [0, 1] } },
|
|
407
462
|
}
|
|
408
463
|
};
|
|
409
|
-
/**
|
|
410
|
-
* Paper, after dark.
|
|
411
|
-
*
|
|
412
|
-
* The same airy, borderless, warm-accented character as `paper` - the point of
|
|
413
|
-
* it is the restraint, not the brightness - with the ink and the page swapped.
|
|
414
|
-
* A warm dark rather than a blue one, so the two read as one family and a
|
|
415
|
-
* reader moving between them is not moving between two different products.
|
|
416
|
-
*/
|
|
417
|
-
export const PAPER_DARK = {
|
|
418
|
-
id: 'paper-dark',
|
|
419
|
-
name: 'Paper Dark',
|
|
420
|
-
appearance: 'dark',
|
|
421
|
-
extends: 'dark',
|
|
422
|
-
border: 'none',
|
|
423
|
-
density: 'airy',
|
|
424
|
-
colors: {
|
|
425
|
-
canvas: '#1c1a17',
|
|
426
|
-
surface: '#1c1a17',
|
|
427
|
-
surfaceAlt: '#26231f',
|
|
428
|
-
border: '#3a352e',
|
|
429
|
-
borderSubtle: '#2a2621',
|
|
430
|
-
divider: 'default',
|
|
431
|
-
subtle: '#db8c4c',
|
|
432
|
-
text: '#e8e3d9',
|
|
433
|
-
muted: '#9a9287',
|
|
434
|
-
accent: '#e0873f',
|
|
435
|
-
primary: '#e0873f',
|
|
436
|
-
// The same restraint, the other way up.
|
|
437
|
-
hover: '#26231f',
|
|
438
|
-
active: '#332e27',
|
|
439
|
-
selected: '#3d362c',
|
|
440
|
-
inverted: '#f4efe6',
|
|
441
|
-
focus: '#e0873f',
|
|
442
|
-
},
|
|
443
|
-
spacing: { none: 0, xs: 1, sm: 1, md: 2, lg: 3, xl: 4 },
|
|
444
|
-
components: {
|
|
445
|
-
Panel: { base: { border: 'none', padding: [1, 2] } },
|
|
446
|
-
Button: { base: { padding: [0, 2] } },
|
|
447
|
-
},
|
|
448
|
-
};
|
|
449
464
|
export const BUILTIN_THEMES = [
|
|
450
465
|
DARK, LIGHT, CONSOLE, PAPER, PAPER_LIGHT, PAPER_DARK, WORKBENCH, MONO,
|
|
451
466
|
];
|
package/package.json
CHANGED
package/src/themes/builtin.ts
CHANGED
|
@@ -25,7 +25,7 @@ import type { ThemeDefinition } from '../types/theme.js';
|
|
|
25
25
|
* otherwise moves with it, while a theme that states `components.List.focused`
|
|
26
26
|
* moves the list and leaves the table where it was.
|
|
27
27
|
*/
|
|
28
|
-
const SELECTION_FOCUSED: Style = { bg: 'selected', fg: 'onSelected',
|
|
28
|
+
const SELECTION_FOCUSED: Style = { bg: 'selected', fg: 'onSelected', bold: true };
|
|
29
29
|
const SELECTION_UNFOCUSED: Style = { bg: 'active', fg: 'onActive' };
|
|
30
30
|
const SELECTION_HOVER: Style = { bg: 'hover', fg: 'onActive' };
|
|
31
31
|
// The other way to draw a selection: reverse video, which is legible whatever
|
|
@@ -55,7 +55,8 @@ const STATE_STYLES: ThemeDefinition['components'] = {
|
|
|
55
55
|
// A marked line is a selection. The caret line is that selection plus the
|
|
56
56
|
// keyboard, so it takes the next fill up rather than a colour of its own.
|
|
57
57
|
CodeViewer: { selected: SELECTION_UNFOCUSED, focus: SELECTION_HOVER },
|
|
58
|
-
Menu: { selected: SELECTION_UNFOCUSED, focus: SELECTION_FOCUSED },
|
|
58
|
+
Menu: { base: { fg: 'text' }, selected: SELECTION_UNFOCUSED, focus: SELECTION_FOCUSED },
|
|
59
|
+
TextInput: { base: { fg: 'text' } },
|
|
59
60
|
// A tab is open, not selected. Dimming it when the strip does not have the
|
|
60
61
|
// keyboard would say no document is open, which is a different claim and a
|
|
61
62
|
// wrong one - so it has one state and no second.
|
|
@@ -71,10 +72,11 @@ const STATE_STYLES: ThemeDefinition['components'] = {
|
|
|
71
72
|
ToolCallRow: { selected: SELECTION_FOCUSED },
|
|
72
73
|
ReasoningBlock: { selected: SELECTION_FOCUSED },
|
|
73
74
|
ComposerChip: { focus: SELECTION_FOCUSED },
|
|
74
|
-
// A range in a document is a selection,
|
|
75
|
-
// under it was already drawn in - the syntax of a
|
|
76
|
-
// the code it covers
|
|
77
|
-
|
|
75
|
+
// A range in a document is a selection, drawn in reverse video so it keeps
|
|
76
|
+
// the colours the text under it was already drawn in - the syntax of a
|
|
77
|
+
// selection is the syntax of the code it covers - and shows whether or not
|
|
78
|
+
// the theme's `active` is a fill.
|
|
79
|
+
Editor: { selected: { inverse: true } },
|
|
78
80
|
};
|
|
79
81
|
|
|
80
82
|
export const DARK: ThemeDefinition = {
|
|
@@ -92,9 +94,9 @@ export const DARK: ThemeDefinition = {
|
|
|
92
94
|
borderStrong: '#484f58',
|
|
93
95
|
borderSubtle: '#21262d',
|
|
94
96
|
divider: '#484f58',
|
|
95
|
-
text: '#
|
|
97
|
+
text: '#f3e6f1',
|
|
96
98
|
muted: '#8b949e',
|
|
97
|
-
subtle: '#
|
|
99
|
+
subtle: '#546f94',
|
|
98
100
|
inverted: '#0d1117',
|
|
99
101
|
accent: '#58a6ff',
|
|
100
102
|
primary: '#388bfd',
|
|
@@ -113,8 +115,10 @@ export const DARK: ThemeDefinition = {
|
|
|
113
115
|
onWarning: '#0d1117',
|
|
114
116
|
onDanger: '#0d1117',
|
|
115
117
|
hover: '#1f2937',
|
|
116
|
-
active: '
|
|
117
|
-
|
|
118
|
+
active: 'default',
|
|
119
|
+
onActive: '#3191ff',
|
|
120
|
+
selected: 'default',
|
|
121
|
+
onSelected: '#3191ff',
|
|
118
122
|
focus: '#58a6ff',
|
|
119
123
|
disabled: '#484f58',
|
|
120
124
|
scrim: '#010409',
|
|
@@ -161,8 +165,10 @@ export const LIGHT: ThemeDefinition = {
|
|
|
161
165
|
onWarning: '#ffffff',
|
|
162
166
|
onDanger: '#ffffff',
|
|
163
167
|
hover: '#eaeef2',
|
|
164
|
-
active: '
|
|
165
|
-
|
|
168
|
+
active: 'default',
|
|
169
|
+
onActive: '#0969da',
|
|
170
|
+
selected: 'default',
|
|
171
|
+
onSelected: '#0969da',
|
|
166
172
|
focus: '#0969da',
|
|
167
173
|
disabled: '#8c959f',
|
|
168
174
|
scrim: '#8c959f',
|
|
@@ -203,6 +209,9 @@ export const CONSOLE: ThemeDefinition = {
|
|
|
203
209
|
info: '#88c0d0',
|
|
204
210
|
selected: '#6ba3b2',
|
|
205
211
|
active: '#1e3d47',
|
|
212
|
+
// Stated, because `dark` states its own for a selection with no fill.
|
|
213
|
+
onSelected: '#0a0e14',
|
|
214
|
+
onActive: '#d8dee9',
|
|
206
215
|
onAccent: '#0a0e14',
|
|
207
216
|
onPrimary: '#0a0e14',
|
|
208
217
|
onInfo: '#0a0e14',
|
|
@@ -302,6 +311,9 @@ export const PAPER_LIGHT: ThemeDefinition = {
|
|
|
302
311
|
hover: '#f7f1e7',
|
|
303
312
|
active: '#efe4d2',
|
|
304
313
|
selected: '#eadcc6',
|
|
314
|
+
// Stated, because `light` states its own for a selection with no fill.
|
|
315
|
+
onActive: '#2b2a27',
|
|
316
|
+
onSelected: '#2b2a27',
|
|
305
317
|
inverted: '#2b2a27',
|
|
306
318
|
focus: '#b4531f',
|
|
307
319
|
},
|
|
@@ -312,6 +324,49 @@ export const PAPER_LIGHT: ThemeDefinition = {
|
|
|
312
324
|
},
|
|
313
325
|
};
|
|
314
326
|
|
|
327
|
+
/**
|
|
328
|
+
* Paper, after dark.
|
|
329
|
+
*
|
|
330
|
+
* The same airy, borderless, warm-accented character as `paper` - the point of
|
|
331
|
+
* it is the restraint, not the brightness - with the ink and the page swapped.
|
|
332
|
+
* A warm dark rather than a blue one, so the two read as one family and a
|
|
333
|
+
* reader moving between them is not moving between two different products.
|
|
334
|
+
*/
|
|
335
|
+
export const PAPER_DARK: ThemeDefinition = {
|
|
336
|
+
id: 'paper-dark',
|
|
337
|
+
name: 'Paper Dark',
|
|
338
|
+
appearance: 'dark',
|
|
339
|
+
extends: 'dark',
|
|
340
|
+
border: 'none',
|
|
341
|
+
density: 'airy',
|
|
342
|
+
colors: {
|
|
343
|
+
canvas: '#1c1a17',
|
|
344
|
+
surface: '#1c1a17',
|
|
345
|
+
surfaceAlt: '#26231f',
|
|
346
|
+
border: '#3a352e',
|
|
347
|
+
borderSubtle: '#2a2621',
|
|
348
|
+
divider: 'default',
|
|
349
|
+
subtle: '#db8c4c',
|
|
350
|
+
text: '#e8e3d9',
|
|
351
|
+
muted: '#9a9287',
|
|
352
|
+
accent: '#e0873f',
|
|
353
|
+
primary: '#e0873f',
|
|
354
|
+
// The same restraint, the other way up.
|
|
355
|
+
hover: '#26231f',
|
|
356
|
+
active: 'default',
|
|
357
|
+
onActive: '#e0873f',
|
|
358
|
+
selected: 'default',
|
|
359
|
+
onSelected: '#e0873f',
|
|
360
|
+
inverted: '#f4efe6',
|
|
361
|
+
focus: '#e0873f',
|
|
362
|
+
},
|
|
363
|
+
spacing: { none: 0, xs: 1, sm: 1, md: 2, lg: 3, xl: 4 },
|
|
364
|
+
components: {
|
|
365
|
+
Panel: { base: { border: 'none', padding: [1, 2] } },
|
|
366
|
+
Button: { base: { padding: [0, 2] } },
|
|
367
|
+
},
|
|
368
|
+
};
|
|
369
|
+
|
|
315
370
|
/** Rounded chrome around a persistent frame. */
|
|
316
371
|
export const WORKBENCH: ThemeDefinition = {
|
|
317
372
|
id: 'workbench',
|
|
@@ -344,6 +399,7 @@ export const WORKBENCH: ThemeDefinition = {
|
|
|
344
399
|
// The selection is a mid grey, so the light text is what reads on it; the
|
|
345
400
|
// inherited `inverted` is darker than the fill and nearly disappears.
|
|
346
401
|
onSelected: '#cdd6f4',
|
|
402
|
+
onActive: '#cdd6f4',
|
|
347
403
|
focus: '#89b4fa',
|
|
348
404
|
scrim: '#11111b',
|
|
349
405
|
},
|
|
@@ -420,47 +476,6 @@ export const MONO: ThemeDefinition = {
|
|
|
420
476
|
}
|
|
421
477
|
};
|
|
422
478
|
|
|
423
|
-
/**
|
|
424
|
-
* Paper, after dark.
|
|
425
|
-
*
|
|
426
|
-
* The same airy, borderless, warm-accented character as `paper` - the point of
|
|
427
|
-
* it is the restraint, not the brightness - with the ink and the page swapped.
|
|
428
|
-
* A warm dark rather than a blue one, so the two read as one family and a
|
|
429
|
-
* reader moving between them is not moving between two different products.
|
|
430
|
-
*/
|
|
431
|
-
export const PAPER_DARK: ThemeDefinition = {
|
|
432
|
-
id: 'paper-dark',
|
|
433
|
-
name: 'Paper Dark',
|
|
434
|
-
appearance: 'dark',
|
|
435
|
-
extends: 'dark',
|
|
436
|
-
border: 'none',
|
|
437
|
-
density: 'airy',
|
|
438
|
-
colors: {
|
|
439
|
-
canvas: '#1c1a17',
|
|
440
|
-
surface: '#1c1a17',
|
|
441
|
-
surfaceAlt: '#26231f',
|
|
442
|
-
border: '#3a352e',
|
|
443
|
-
borderSubtle: '#2a2621',
|
|
444
|
-
divider: 'default',
|
|
445
|
-
subtle: '#db8c4c',
|
|
446
|
-
text: '#e8e3d9',
|
|
447
|
-
muted: '#9a9287',
|
|
448
|
-
accent: '#e0873f',
|
|
449
|
-
primary: '#e0873f',
|
|
450
|
-
// The same restraint, the other way up.
|
|
451
|
-
hover: '#26231f',
|
|
452
|
-
active: '#332e27',
|
|
453
|
-
selected: '#3d362c',
|
|
454
|
-
inverted: '#f4efe6',
|
|
455
|
-
focus: '#e0873f',
|
|
456
|
-
},
|
|
457
|
-
spacing: { none: 0, xs: 1, sm: 1, md: 2, lg: 3, xl: 4 },
|
|
458
|
-
components: {
|
|
459
|
-
Panel: { base: { border: 'none', padding: [1, 2] } },
|
|
460
|
-
Button: { base: { padding: [0, 2] } },
|
|
461
|
-
},
|
|
462
|
-
};
|
|
463
|
-
|
|
464
479
|
export const BUILTIN_THEMES: ThemeDefinition[] = [
|
|
465
480
|
DARK, LIGHT, CONSOLE, PAPER, PAPER_LIGHT, PAPER_DARK, WORKBENCH, MONO,
|
|
466
481
|
];
|