@bismawy/pi-arnative 0.4.0 → 0.5.2
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/CHANGELOG.md +41 -0
- package/README.md +8 -0
- package/extensions/arnative.ts +14 -3
- package/extensions/footer.ts +25 -26
- package/extensions/section-headers.ts +39 -11
- package/extensions/tools.ts +12 -10
- package/extensions/ui-render-tweaks.ts +53 -4
- package/extensions/usage.ts +21 -16
- package/lib/ansi.ts +83 -6
- package/package.json +1 -1
- package/themes/arnative-cyberpunk.json +35 -33
- package/themes/arnative-dracula.json +27 -25
- package/themes/arnative-emerald.json +8 -6
- package/themes/arnative-gruvbox.json +27 -25
- package/themes/arnative-matrix.json +24 -22
- package/themes/arnative-nord.json +24 -22
- package/themes/arnative-sun.json +9 -7
- package/themes/arnative-synthwave.json +35 -33
- package/themes/arnative-violet.json +9 -7
- package/themes/arnative-zinc.json +8 -6
- package/themes/arnative.json +9 -7
- package/themes/gen-themes.mjs +145 -54
package/lib/ansi.ts
CHANGED
|
@@ -38,16 +38,73 @@ export function setActiveTheme<T>(th: T | null): void {
|
|
|
38
38
|
else delete (globalThis as Record<symbol, T>)[THEME_PROXY_KEY];
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
/**
|
|
42
|
-
|
|
41
|
+
/**
|
|
42
|
+
* Soft tier of a resolved theme color: clone at L 0.82 with a fifth of its chroma and
|
|
43
|
+
* the hue kept. The generator's `soften()` (themes/gen-themes.mjs) applies the identical
|
|
44
|
+
* recipe, so a declared `vars.*Soft` and this derived value agree. `chroma * 0.18` is
|
|
45
|
+
* the single tuning constant for how far a soft tone leans toward grey.
|
|
46
|
+
*/
|
|
47
|
+
const SOFT_L = 0.82;
|
|
48
|
+
const SOFT_CHROMA_SCALE = 0.18;
|
|
49
|
+
function softenColor(c: { c?: number; h?: number }): { kind: "oklch"; l: number; c: number; h: number } {
|
|
50
|
+
return { kind: "oklch", l: SOFT_L, c: (c.c ?? 0) * SOFT_CHROMA_SCALE, h: c.h ?? 0 };
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Painter for arnative's soft accent (`accentSoft`).
|
|
55
|
+
*
|
|
56
|
+
* Pi <=1.1.0 let a theme declare extra tokens in `colors`, so `accentSoft` was
|
|
57
|
+
* addressable directly. 1.2.0 validates `colors` with `additionalProperties: false`
|
|
58
|
+
* and rejects the whole theme if it carries one, so the token now lives only in
|
|
59
|
+
* `vars` and `fg("accentSoft")` throws. The soft accent stays available through the
|
|
60
|
+
* resolved `accent` color (both 1.1.0 and 1.2.0 expose `theme.colors`): its hue and
|
|
61
|
+
* chroma are softened to the generator's `*Soft` recipe, which keeps the two-tone look
|
|
62
|
+
* instead of collapsing to grey. Falls back to `muted`, then `accent`, on older themes.
|
|
63
|
+
*/
|
|
64
|
+
export function softOf(th: {
|
|
65
|
+
fg?(c: string, t: string): string;
|
|
66
|
+
style?(t: string, o: { fg: unknown }): string;
|
|
67
|
+
colors?: Record<string, { kind?: string; c?: number; h?: number }>;
|
|
68
|
+
} | null): (s: string) => string {
|
|
43
69
|
const fg = th?.fg?.bind(th);
|
|
44
70
|
if (!fg) return (s) => s;
|
|
45
71
|
try {
|
|
46
72
|
fg("accentSoft", "");
|
|
47
73
|
return (s) => fg("accentSoft", s);
|
|
48
74
|
} catch {
|
|
49
|
-
|
|
75
|
+
// 1.2.0+ rejects `accentSoft`: derive the soft tint from the resolved accent.
|
|
76
|
+
}
|
|
77
|
+
const accent = th?.colors?.accent;
|
|
78
|
+
const style = th?.style?.bind(th);
|
|
79
|
+
if (accent?.kind === "oklch" && style) {
|
|
80
|
+
const soft = softenColor(accent);
|
|
81
|
+
return (s) => style(s, { fg: soft });
|
|
50
82
|
}
|
|
83
|
+
return (s) => fg("muted", s);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Painter for the soft *label* tier (`secondarySoft`): the footer's cwd, branch, clock
|
|
88
|
+
* and status text.
|
|
89
|
+
*
|
|
90
|
+
* The two-tone footer puts icons on `accent` and their text on the border-accent tier.
|
|
91
|
+
* `secondarySoft` is declared only in `vars`, so it cannot be read back with `fg()`;
|
|
92
|
+
* it is derived instead from `borderAccent`, the official token that tier maps to. The
|
|
93
|
+
* generator softens that same value, so declared and derived agree. Falls back to
|
|
94
|
+
* `softOf` (the accent tier) when the theme exposes no resolvable `borderAccent`.
|
|
95
|
+
*/
|
|
96
|
+
export function softSecondaryOf(th: {
|
|
97
|
+
fg?(c: string, t: string): string;
|
|
98
|
+
style?(t: string, o: { fg: unknown }): string;
|
|
99
|
+
colors?: Record<string, { kind?: string; c?: number; h?: number }>;
|
|
100
|
+
} | null): (s: string) => string {
|
|
101
|
+
const border = th?.colors?.borderAccent;
|
|
102
|
+
const style = th?.style?.bind(th);
|
|
103
|
+
if (border?.kind === "oklch" && style) {
|
|
104
|
+
const soft = softenColor(border);
|
|
105
|
+
return (s) => style(s, { fg: soft });
|
|
106
|
+
}
|
|
107
|
+
return softOf(th);
|
|
51
108
|
}
|
|
52
109
|
|
|
53
110
|
/** pi defines one theme slot per thinking level (`thinkingOff`…`thinkingMax`), so a box
|
|
@@ -98,15 +155,35 @@ if (isMain(import.meta.url)) {
|
|
|
98
155
|
assert(getActiveTheme<object>() === null, "clearing the active theme leaves no stale slot");
|
|
99
156
|
|
|
100
157
|
const tag = { fg: (c: string, t: string) => `<${c}>${t}</${c}>` };
|
|
101
|
-
assert(
|
|
158
|
+
assert(softOf(tag)("x") === "<accentSoft>x</accentSoft>", "softOf uses accentSoft when the theme defines it");
|
|
102
159
|
const noSoft = {
|
|
103
160
|
fg: (c: string, t: string) => {
|
|
104
161
|
if (c === "accentSoft") throw new Error("Unknown theme color: accentSoft");
|
|
105
162
|
return `<${c}>${t}</${c}>`;
|
|
106
163
|
},
|
|
107
164
|
};
|
|
108
|
-
assert(
|
|
109
|
-
assert(
|
|
165
|
+
assert(softOf(noSoft)("x") === "<muted>x</muted>", "softOf falls back to muted without the token or colors");
|
|
166
|
+
assert(softOf(null)("x") === "x", "softOf without a theme is identity");
|
|
167
|
+
// Pi 1.2.0: accentSoft is rejected, so the soft tint is derived from `colors.accent`.
|
|
168
|
+
const modern = {
|
|
169
|
+
fg: (c: string, t: string) => {
|
|
170
|
+
throw new Error(`Unknown theme color: ${c}`);
|
|
171
|
+
},
|
|
172
|
+
style: (t: string, o: { fg: unknown }) => `<soft:${JSON.stringify(o.fg)}>${t}</soft>`,
|
|
173
|
+
colors: { accent: { kind: "oklch", c: 0.2, h: 355 }, borderAccent: { kind: "oklch", c: 0.1, h: 200 } },
|
|
174
|
+
};
|
|
175
|
+
const modernOut = softOf(modern)("x");
|
|
176
|
+
assert(modernOut.includes('"l":0.82') && modernOut.includes('"c":0.036'), "softOf derives the soft tint from accent (l=0.82, c=accent*0.18)");
|
|
177
|
+
assert(modernOut.includes("x"), "softOf keeps the text");
|
|
178
|
+
// The label tier softens `borderAccent`, NOT `accent`: that is what keeps footer text
|
|
179
|
+
// on the blue tier instead of inheriting the pink accent hue.
|
|
180
|
+
const labelOut = softSecondaryOf(modern)("x");
|
|
181
|
+
assert(
|
|
182
|
+
labelOut.includes('"l":0.82') && labelOut.includes('"c":0.018') && labelOut.includes('"h":200'),
|
|
183
|
+
"softSecondaryOf softens borderAccent (l=0.82, c=borderAccent*0.18, same hue)",
|
|
184
|
+
);
|
|
185
|
+
assert(labelOut !== modernOut, "the soft label tier differs from the soft accent tier");
|
|
186
|
+
assert(softSecondaryOf({ fg: () => "", style: (t) => `<x>${t}</x>`, colors: {} })("x") === softOf({ fg: () => "", style: (t) => `<x>${t}</x>`, colors: {} })("x"), "softSecondaryOf falls back to softOf without a borderAccent");
|
|
110
187
|
|
|
111
188
|
assert(thinkingColorSlot("off") === "thinkingOff", "thinking off maps to thinkingOff");
|
|
112
189
|
assert(thinkingColorSlot(undefined) === "thinkingOff", "missing level falls back to thinkingOff");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bismawy/pi-arnative",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.2",
|
|
4
4
|
"description": "Refined aesthetics. Cohesive tools. Built for Pi. Warm themes, rounded tool boxes, tabbed header, compact footer and a /usage dashboard.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://
|
|
2
|
+
"$schema": "https://pi.dev/schemas/theme.schema.json",
|
|
3
3
|
"name": "arnative-cyberpunk",
|
|
4
4
|
"appearance": "dark",
|
|
5
5
|
"vars": {
|
|
@@ -7,19 +7,21 @@
|
|
|
7
7
|
"fgMuted": "oklch(72% 0.02 275)",
|
|
8
8
|
"fgDim": "oklch(61% 0.02 275)",
|
|
9
9
|
"fgFaint": "oklch(49% 0.02 275)",
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
10
|
+
"primary": "oklch(88% 0.18 95)",
|
|
11
|
+
"secondary": "oklch(82% 0.139 200)",
|
|
12
|
+
"secondarySoft": "oklch(82% 0.02502 200)",
|
|
13
|
+
"accent": "oklch(78% 0.146 355)",
|
|
14
|
+
"accentSoft": "oklch(82% 0.02628 355)",
|
|
15
|
+
"accentBorder": "oklch(82% 0.114 355)",
|
|
13
16
|
"success": "oklch(78% 0.15 145)",
|
|
14
17
|
"error": "oklch(76% 0.143 25)",
|
|
15
18
|
"warning": "oklch(86% 0.14 85)",
|
|
16
|
-
"surfaceMsg": "oklch(
|
|
19
|
+
"surfaceMsg": "oklch(24% 0.035 200)"
|
|
17
20
|
},
|
|
18
21
|
"colors": {
|
|
19
22
|
"accent": "accent",
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"borderAccent": "accentBorder",
|
|
23
|
+
"border": "oklch(55% 0.07 200)",
|
|
24
|
+
"borderAccent": "secondary",
|
|
23
25
|
"borderMuted": "fgFaint",
|
|
24
26
|
"success": "success",
|
|
25
27
|
"error": "error",
|
|
@@ -29,58 +31,58 @@
|
|
|
29
31
|
"text": "fg",
|
|
30
32
|
|
|
31
33
|
"thinkingText": "fgMuted",
|
|
32
|
-
"selectedBg": "oklch(
|
|
34
|
+
"selectedBg": "oklch(31% 0.05 200)",
|
|
33
35
|
"scrollbarTrack": "fgFaint",
|
|
34
36
|
"scrollbarThumb": "accentSoft",
|
|
35
|
-
"searchMatchBg": "oklch(
|
|
37
|
+
"searchMatchBg": "oklch(38% 0.078 95)",
|
|
36
38
|
"searchMatchText": "fg",
|
|
37
39
|
"userMessageBg": "surfaceMsg",
|
|
38
40
|
"userMessageText": "fg",
|
|
39
|
-
"customMessageBg": "oklch(
|
|
41
|
+
"customMessageBg": "oklch(25% 0.043 200)",
|
|
40
42
|
"customMessageText": "fg",
|
|
41
|
-
"customMessageLabel": "oklch(78% 0.
|
|
42
|
-
"toolPendingBg": "oklch(
|
|
43
|
-
"toolSuccessBg": "oklch(
|
|
44
|
-
"toolErrorBg": "oklch(
|
|
43
|
+
"customMessageLabel": "oklch(78% 0.133 200)",
|
|
44
|
+
"toolPendingBg": "oklch(22% 0.05 355)",
|
|
45
|
+
"toolSuccessBg": "oklch(21% 0.06 145)",
|
|
46
|
+
"toolErrorBg": "oklch(21% 0.06 25)",
|
|
45
47
|
"toolTitle": "fg",
|
|
46
48
|
|
|
47
49
|
"toolOutput": "fgMuted",
|
|
48
|
-
"mdHeading": "
|
|
49
|
-
"mdLink": "oklch(80% 0.
|
|
50
|
+
"mdHeading": "primary",
|
|
51
|
+
"mdLink": "oklch(80% 0.136 200)",
|
|
50
52
|
"mdLinkUrl": "fgDim",
|
|
51
|
-
"mdCode": "
|
|
53
|
+
"mdCode": "secondary",
|
|
52
54
|
"mdCodeBlock": "success",
|
|
53
55
|
"mdCodeBlockBorder": "fgMuted",
|
|
54
56
|
"mdQuote": "fgMuted",
|
|
55
57
|
"mdQuoteBorder": "fgMuted",
|
|
56
58
|
"mdHr": "fgFaint",
|
|
57
59
|
|
|
58
|
-
"mdListBullet": "
|
|
60
|
+
"mdListBullet": "primary",
|
|
59
61
|
"toolDiffAdded": "success",
|
|
60
62
|
"toolDiffRemoved": "error",
|
|
61
63
|
"toolDiffContext": "fgMuted",
|
|
62
64
|
"syntaxComment": "fgDim",
|
|
63
|
-
"syntaxKeyword": "
|
|
64
|
-
"syntaxFunction": "oklch(86% 0.
|
|
65
|
-
"syntaxVariable": "oklch(84% 0.
|
|
66
|
-
"syntaxString": "oklch(82% 0.14
|
|
67
|
-
"syntaxNumber": "oklch(80% 0.
|
|
68
|
-
"syntaxType": "oklch(80% 0.
|
|
65
|
+
"syntaxKeyword": "secondary",
|
|
66
|
+
"syntaxFunction": "oklch(86% 0.16 95)",
|
|
67
|
+
"syntaxVariable": "oklch(84% 0.1 355)",
|
|
68
|
+
"syntaxString": "oklch(82% 0.14 140)",
|
|
69
|
+
"syntaxNumber": "oklch(80% 0.122 45)",
|
|
70
|
+
"syntaxType": "oklch(80% 0.136 200)",
|
|
69
71
|
"syntaxOperator": "fg",
|
|
70
72
|
|
|
71
73
|
"syntaxPunctuation": "fgMuted",
|
|
72
74
|
"thinkingOff": "oklch(40% 0.02 275)",
|
|
73
|
-
"thinkingMinimal": "oklch(47% 0.05
|
|
74
|
-
"thinkingLow": "oklch(55% 0.08
|
|
75
|
-
"thinkingMedium": "oklch(63% 0.12
|
|
76
|
-
"thinkingHigh": "oklch(71% 0.16
|
|
77
|
-
"thinkingXhigh": "oklch(79% 0.
|
|
75
|
+
"thinkingMinimal": "oklch(47% 0.05 355)",
|
|
76
|
+
"thinkingLow": "oklch(55% 0.08 355)",
|
|
77
|
+
"thinkingMedium": "oklch(63% 0.12 355)",
|
|
78
|
+
"thinkingHigh": "oklch(71% 0.16 355)",
|
|
79
|
+
"thinkingXhigh": "oklch(79% 0.138 355)",
|
|
78
80
|
"thinkingMax": "accent",
|
|
79
81
|
"bashMode": "success"
|
|
80
82
|
},
|
|
81
83
|
"export": {
|
|
82
|
-
"pageBg": "oklch(
|
|
83
|
-
"cardBg": "oklch(
|
|
84
|
-
"infoBg": "oklch(
|
|
84
|
+
"pageBg": "oklch(18% 0.02 275)",
|
|
85
|
+
"cardBg": "oklch(21% 0.02 275)",
|
|
86
|
+
"infoBg": "oklch(29% 0.05 355)"
|
|
85
87
|
}
|
|
86
88
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://
|
|
2
|
+
"$schema": "https://pi.dev/schemas/theme.schema.json",
|
|
3
3
|
"name": "arnative-dracula",
|
|
4
4
|
"appearance": "dark",
|
|
5
5
|
"vars": {
|
|
@@ -7,9 +7,12 @@
|
|
|
7
7
|
"fgMuted": "oklch(72% 0.012 285)",
|
|
8
8
|
"fgDim": "oklch(61% 0.012 285)",
|
|
9
9
|
"fgFaint": "oklch(49% 0.012 285)",
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
10
|
+
"primary": "oklch(78% 0.125 295)",
|
|
11
|
+
"secondary": "oklch(82% 0.13 190)",
|
|
12
|
+
"secondarySoft": "oklch(82% 0.0234 190)",
|
|
13
|
+
"accent": "oklch(78% 0.14 330)",
|
|
14
|
+
"accentSoft": "oklch(82% 0.0252 330)",
|
|
15
|
+
"accentBorder": "oklch(82% 0.084 330)",
|
|
13
16
|
"success": "oklch(78% 0.14 145)",
|
|
14
17
|
"error": "oklch(76% 0.14 25)",
|
|
15
18
|
"warning": "oklch(86% 0.14 85)",
|
|
@@ -17,9 +20,8 @@
|
|
|
17
20
|
},
|
|
18
21
|
"colors": {
|
|
19
22
|
"accent": "accent",
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"borderAccent": "accentBorder",
|
|
23
|
+
"border": "oklch(55% 0.049 295)",
|
|
24
|
+
"borderAccent": "secondary",
|
|
23
25
|
"borderMuted": "fgFaint",
|
|
24
26
|
"success": "success",
|
|
25
27
|
"error": "error",
|
|
@@ -29,58 +31,58 @@
|
|
|
29
31
|
"text": "fg",
|
|
30
32
|
|
|
31
33
|
"thinkingText": "fgMuted",
|
|
32
|
-
"selectedBg": "oklch(36% 0.035
|
|
34
|
+
"selectedBg": "oklch(36% 0.035 295)",
|
|
33
35
|
"scrollbarTrack": "fgFaint",
|
|
34
36
|
"scrollbarThumb": "accentSoft",
|
|
35
|
-
"searchMatchBg": "oklch(43% 0.063
|
|
37
|
+
"searchMatchBg": "oklch(43% 0.063 85)",
|
|
36
38
|
"searchMatchText": "fg",
|
|
37
39
|
"userMessageBg": "surfaceMsg",
|
|
38
40
|
"userMessageText": "fg",
|
|
39
|
-
"customMessageBg": "oklch(30% 0.
|
|
41
|
+
"customMessageBg": "oklch(30% 0.05 190)",
|
|
40
42
|
"customMessageText": "fg",
|
|
41
|
-
"customMessageLabel": "oklch(78% 0.098
|
|
42
|
-
"toolPendingBg": "oklch(27% 0.042
|
|
43
|
+
"customMessageLabel": "oklch(78% 0.098 190)",
|
|
44
|
+
"toolPendingBg": "oklch(27% 0.042 330)",
|
|
43
45
|
"toolSuccessBg": "oklch(26% 0.056 145)",
|
|
44
46
|
"toolErrorBg": "oklch(26% 0.056 25)",
|
|
45
47
|
"toolTitle": "fg",
|
|
46
48
|
|
|
47
49
|
"toolOutput": "fgMuted",
|
|
48
|
-
"mdHeading": "oklch(88% 0.
|
|
50
|
+
"mdHeading": "oklch(88% 0.084 85)",
|
|
49
51
|
"mdLink": "oklch(80% 0.098 190)",
|
|
50
52
|
"mdLinkUrl": "fgDim",
|
|
51
|
-
"mdCode": "
|
|
53
|
+
"mdCode": "secondary",
|
|
52
54
|
"mdCodeBlock": "success",
|
|
53
55
|
"mdCodeBlockBorder": "fgMuted",
|
|
54
56
|
"mdQuote": "fgMuted",
|
|
55
57
|
"mdQuoteBorder": "fgMuted",
|
|
56
58
|
"mdHr": "fgFaint",
|
|
57
59
|
|
|
58
|
-
"mdListBullet": "
|
|
60
|
+
"mdListBullet": "accent",
|
|
59
61
|
"toolDiffAdded": "success",
|
|
60
62
|
"toolDiffRemoved": "error",
|
|
61
63
|
"toolDiffContext": "fgMuted",
|
|
62
64
|
"syntaxComment": "fgDim",
|
|
63
|
-
"syntaxKeyword": "oklch(80% 0.098
|
|
64
|
-
"syntaxFunction": "oklch(86% 0.112
|
|
65
|
+
"syntaxKeyword": "oklch(80% 0.098 330)",
|
|
66
|
+
"syntaxFunction": "oklch(86% 0.112 140)",
|
|
65
67
|
"syntaxVariable": "oklch(84% 0.077 190)",
|
|
66
|
-
"syntaxString": "oklch(82% 0.098
|
|
67
|
-
"syntaxNumber": "oklch(80% 0.098
|
|
68
|
+
"syntaxString": "oklch(82% 0.098 85)",
|
|
69
|
+
"syntaxNumber": "oklch(80% 0.098 295)",
|
|
68
70
|
"syntaxType": "oklch(80% 0.112 190)",
|
|
69
71
|
"syntaxOperator": "fg",
|
|
70
72
|
|
|
71
73
|
"syntaxPunctuation": "fgMuted",
|
|
72
74
|
"thinkingOff": "oklch(40% 0.012 285)",
|
|
73
|
-
"thinkingMinimal": "oklch(47% 0.035
|
|
74
|
-
"thinkingLow": "oklch(55% 0.056
|
|
75
|
-
"thinkingMedium": "oklch(63% 0.084
|
|
76
|
-
"thinkingHigh": "oklch(71% 0.112
|
|
77
|
-
"thinkingXhigh": "oklch(79% 0.
|
|
75
|
+
"thinkingMinimal": "oklch(47% 0.035 330)",
|
|
76
|
+
"thinkingLow": "oklch(55% 0.056 330)",
|
|
77
|
+
"thinkingMedium": "oklch(63% 0.084 330)",
|
|
78
|
+
"thinkingHigh": "oklch(71% 0.112 330)",
|
|
79
|
+
"thinkingXhigh": "oklch(79% 0.14 330)",
|
|
78
80
|
"thinkingMax": "accent",
|
|
79
81
|
"bashMode": "success"
|
|
80
82
|
},
|
|
81
83
|
"export": {
|
|
82
84
|
"pageBg": "oklch(23% 0.012 285)",
|
|
83
85
|
"cardBg": "oklch(26% 0.012 285)",
|
|
84
|
-
"infoBg": "oklch(34% 0.035
|
|
86
|
+
"infoBg": "oklch(34% 0.035 330)"
|
|
85
87
|
}
|
|
86
88
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://
|
|
2
|
+
"$schema": "https://pi.dev/schemas/theme.schema.json",
|
|
3
3
|
"name": "arnative-emerald",
|
|
4
4
|
"appearance": "dark",
|
|
5
5
|
"vars": {
|
|
@@ -7,8 +7,11 @@
|
|
|
7
7
|
"fgMuted": "oklch(72% 0.012 165)",
|
|
8
8
|
"fgDim": "oklch(61% 0.012 165)",
|
|
9
9
|
"fgFaint": "oklch(49% 0.012 165)",
|
|
10
|
+
"primary": "oklch(84% 0.13 165)",
|
|
11
|
+
"secondary": "oklch(78% 0.1 195)",
|
|
12
|
+
"secondarySoft": "oklch(82% 0.01296 165)",
|
|
10
13
|
"accent": "oklch(78% 0.12 165)",
|
|
11
|
-
"accentSoft": "oklch(82% 0.
|
|
14
|
+
"accentSoft": "oklch(82% 0.0216 165)",
|
|
12
15
|
"accentBorder": "oklch(82% 0.072 165)",
|
|
13
16
|
"success": "oklch(78% 0.12 145)",
|
|
14
17
|
"error": "oklch(76% 0.12 25)",
|
|
@@ -17,8 +20,7 @@
|
|
|
17
20
|
},
|
|
18
21
|
"colors": {
|
|
19
22
|
"accent": "accent",
|
|
20
|
-
"
|
|
21
|
-
"border": "oklch(55% 0.042 165)",
|
|
23
|
+
"border": "oklch(55% 0.042 0)",
|
|
22
24
|
"borderAccent": "accentBorder",
|
|
23
25
|
"borderMuted": "fgFaint",
|
|
24
26
|
"success": "success",
|
|
@@ -29,10 +31,10 @@
|
|
|
29
31
|
"text": "fg",
|
|
30
32
|
|
|
31
33
|
"thinkingText": "fgMuted",
|
|
32
|
-
"selectedBg": "oklch(34% 0.03
|
|
34
|
+
"selectedBg": "oklch(34% 0.03 0)",
|
|
33
35
|
"scrollbarTrack": "fgFaint",
|
|
34
36
|
"scrollbarThumb": "accentSoft",
|
|
35
|
-
"searchMatchBg": "oklch(41% 0.054
|
|
37
|
+
"searchMatchBg": "oklch(41% 0.054 0)",
|
|
36
38
|
"searchMatchText": "fg",
|
|
37
39
|
"userMessageBg": "surfaceMsg",
|
|
38
40
|
"userMessageText": "fg",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://
|
|
2
|
+
"$schema": "https://pi.dev/schemas/theme.schema.json",
|
|
3
3
|
"name": "arnative-gruvbox",
|
|
4
4
|
"appearance": "dark",
|
|
5
5
|
"vars": {
|
|
@@ -7,9 +7,12 @@
|
|
|
7
7
|
"fgMuted": "oklch(72% 0.015 70)",
|
|
8
8
|
"fgDim": "oklch(61% 0.015 70)",
|
|
9
9
|
"fgFaint": "oklch(49% 0.015 70)",
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
10
|
+
"primary": "oklch(84% 0.14 83)",
|
|
11
|
+
"secondary": "oklch(78% 0.1 175)",
|
|
12
|
+
"secondarySoft": "oklch(82% 0.018 175)",
|
|
13
|
+
"accent": "oklch(78% 0.137 45)",
|
|
14
|
+
"accentSoft": "oklch(82% 0.02466 45)",
|
|
15
|
+
"accentBorder": "oklch(82% 0.084 45)",
|
|
13
16
|
"success": "oklch(78% 0.14 145)",
|
|
14
17
|
"error": "oklch(76% 0.14 25)",
|
|
15
18
|
"warning": "oklch(86% 0.14 85)",
|
|
@@ -17,9 +20,8 @@
|
|
|
17
20
|
},
|
|
18
21
|
"colors": {
|
|
19
22
|
"accent": "accent",
|
|
20
|
-
"accentSoft": "accentSoft",
|
|
21
23
|
"border": "oklch(55% 0.049 83)",
|
|
22
|
-
"borderAccent": "
|
|
24
|
+
"borderAccent": "secondary",
|
|
23
25
|
"borderMuted": "fgFaint",
|
|
24
26
|
"success": "success",
|
|
25
27
|
"error": "error",
|
|
@@ -36,51 +38,51 @@
|
|
|
36
38
|
"searchMatchText": "fg",
|
|
37
39
|
"userMessageBg": "surfaceMsg",
|
|
38
40
|
"userMessageText": "fg",
|
|
39
|
-
"customMessageBg": "oklch(25% 0.
|
|
41
|
+
"customMessageBg": "oklch(25% 0.047 175)",
|
|
40
42
|
"customMessageText": "fg",
|
|
41
|
-
"customMessageLabel": "oklch(78% 0.098
|
|
42
|
-
"toolPendingBg": "oklch(22% 0.042
|
|
43
|
+
"customMessageLabel": "oklch(78% 0.098 175)",
|
|
44
|
+
"toolPendingBg": "oklch(22% 0.042 45)",
|
|
43
45
|
"toolSuccessBg": "oklch(21% 0.056 145)",
|
|
44
46
|
"toolErrorBg": "oklch(21% 0.056 25)",
|
|
45
47
|
"toolTitle": "fg",
|
|
46
48
|
|
|
47
49
|
"toolOutput": "fgMuted",
|
|
48
|
-
"mdHeading": "
|
|
49
|
-
"mdLink": "oklch(80% 0.098
|
|
50
|
+
"mdHeading": "primary",
|
|
51
|
+
"mdLink": "oklch(80% 0.098 175)",
|
|
50
52
|
"mdLinkUrl": "fgDim",
|
|
51
|
-
"mdCode": "
|
|
53
|
+
"mdCode": "secondary",
|
|
52
54
|
"mdCodeBlock": "success",
|
|
53
55
|
"mdCodeBlockBorder": "fgMuted",
|
|
54
56
|
"mdQuote": "fgMuted",
|
|
55
57
|
"mdQuoteBorder": "fgMuted",
|
|
56
58
|
"mdHr": "fgFaint",
|
|
57
59
|
|
|
58
|
-
"mdListBullet": "
|
|
60
|
+
"mdListBullet": "accent",
|
|
59
61
|
"toolDiffAdded": "success",
|
|
60
62
|
"toolDiffRemoved": "error",
|
|
61
63
|
"toolDiffContext": "fgMuted",
|
|
62
64
|
"syntaxComment": "fgDim",
|
|
63
|
-
"syntaxKeyword": "oklch(80% 0.098
|
|
64
|
-
"syntaxFunction": "oklch(86% 0.
|
|
65
|
-
"syntaxVariable": "oklch(84% 0.077
|
|
66
|
-
"syntaxString": "oklch(82% 0.098
|
|
67
|
-
"syntaxNumber": "oklch(80% 0.098
|
|
68
|
-
"syntaxType": "oklch(80% 0.112
|
|
65
|
+
"syntaxKeyword": "oklch(80% 0.098 45)",
|
|
66
|
+
"syntaxFunction": "oklch(86% 0.112 83)",
|
|
67
|
+
"syntaxVariable": "oklch(84% 0.077 175)",
|
|
68
|
+
"syntaxString": "oklch(82% 0.098 145)",
|
|
69
|
+
"syntaxNumber": "oklch(80% 0.098 45)",
|
|
70
|
+
"syntaxType": "oklch(80% 0.112 83)",
|
|
69
71
|
"syntaxOperator": "fg",
|
|
70
72
|
|
|
71
73
|
"syntaxPunctuation": "fgMuted",
|
|
72
74
|
"thinkingOff": "oklch(40% 0.015 70)",
|
|
73
|
-
"thinkingMinimal": "oklch(47% 0.035
|
|
74
|
-
"thinkingLow": "oklch(55% 0.056
|
|
75
|
-
"thinkingMedium": "oklch(63% 0.084
|
|
76
|
-
"thinkingHigh": "oklch(71% 0.112
|
|
77
|
-
"thinkingXhigh": "oklch(79% 0.
|
|
75
|
+
"thinkingMinimal": "oklch(47% 0.035 45)",
|
|
76
|
+
"thinkingLow": "oklch(55% 0.056 45)",
|
|
77
|
+
"thinkingMedium": "oklch(63% 0.084 45)",
|
|
78
|
+
"thinkingHigh": "oklch(71% 0.112 45)",
|
|
79
|
+
"thinkingXhigh": "oklch(79% 0.13 45)",
|
|
78
80
|
"thinkingMax": "accent",
|
|
79
81
|
"bashMode": "success"
|
|
80
82
|
},
|
|
81
83
|
"export": {
|
|
82
84
|
"pageBg": "oklch(18% 0.015 70)",
|
|
83
85
|
"cardBg": "oklch(21% 0.015 70)",
|
|
84
|
-
"infoBg": "oklch(29% 0.035
|
|
86
|
+
"infoBg": "oklch(29% 0.035 45)"
|
|
85
87
|
}
|
|
86
88
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://
|
|
2
|
+
"$schema": "https://pi.dev/schemas/theme.schema.json",
|
|
3
3
|
"name": "arnative-matrix",
|
|
4
4
|
"appearance": "dark",
|
|
5
5
|
"vars": {
|
|
@@ -7,18 +7,20 @@
|
|
|
7
7
|
"fgMuted": "oklch(72% 0.02 145)",
|
|
8
8
|
"fgDim": "oklch(61% 0.02 145)",
|
|
9
9
|
"fgFaint": "oklch(49% 0.02 145)",
|
|
10
|
+
"primary": "oklch(88% 0.24 145)",
|
|
11
|
+
"secondary": "oklch(76% 0.16 165)",
|
|
12
|
+
"secondarySoft": "oklch(82% 0.02376 144)",
|
|
10
13
|
"accent": "oklch(78% 0.22 144)",
|
|
11
|
-
"accentSoft": "oklch(82% 0.
|
|
14
|
+
"accentSoft": "oklch(82% 0.0396 144)",
|
|
12
15
|
"accentBorder": "oklch(82% 0.132 144)",
|
|
13
16
|
"success": "oklch(78% 0.15 145)",
|
|
14
17
|
"error": "oklch(76% 0.143 25)",
|
|
15
18
|
"warning": "oklch(86% 0.14 85)",
|
|
16
|
-
"surfaceMsg": "oklch(
|
|
19
|
+
"surfaceMsg": "oklch(24% 0.035 145)"
|
|
17
20
|
},
|
|
18
21
|
"colors": {
|
|
19
22
|
"accent": "accent",
|
|
20
|
-
"
|
|
21
|
-
"border": "oklch(55% 0.077 144)",
|
|
23
|
+
"border": "oklch(55% 0.077 0)",
|
|
22
24
|
"borderAccent": "accentBorder",
|
|
23
25
|
"borderMuted": "fgFaint",
|
|
24
26
|
"success": "success",
|
|
@@ -29,43 +31,43 @@
|
|
|
29
31
|
"text": "fg",
|
|
30
32
|
|
|
31
33
|
"thinkingText": "fgMuted",
|
|
32
|
-
"selectedBg": "oklch(
|
|
34
|
+
"selectedBg": "oklch(31% 0.055 0)",
|
|
33
35
|
"scrollbarTrack": "fgFaint",
|
|
34
36
|
"scrollbarThumb": "accentSoft",
|
|
35
|
-
"searchMatchBg": "oklch(
|
|
37
|
+
"searchMatchBg": "oklch(38% 0.099 0)",
|
|
36
38
|
"searchMatchText": "fg",
|
|
37
39
|
"userMessageBg": "surfaceMsg",
|
|
38
40
|
"userMessageText": "fg",
|
|
39
|
-
"customMessageBg": "oklch(
|
|
41
|
+
"customMessageBg": "oklch(25% 0.05 145)",
|
|
40
42
|
"customMessageText": "fg",
|
|
41
|
-
"customMessageLabel": "oklch(78% 0.
|
|
42
|
-
"toolPendingBg": "oklch(
|
|
43
|
-
"toolSuccessBg": "oklch(
|
|
44
|
-
"toolErrorBg": "oklch(
|
|
43
|
+
"customMessageLabel": "oklch(78% 0.14 145)",
|
|
44
|
+
"toolPendingBg": "oklch(22% 0.05 144)",
|
|
45
|
+
"toolSuccessBg": "oklch(21% 0.06 145)",
|
|
46
|
+
"toolErrorBg": "oklch(21% 0.06 25)",
|
|
45
47
|
"toolTitle": "fg",
|
|
46
48
|
|
|
47
49
|
"toolOutput": "fgMuted",
|
|
48
50
|
"mdHeading": "oklch(88% 0.132 145)",
|
|
49
|
-
"mdLink": "oklch(80% 0.
|
|
51
|
+
"mdLink": "oklch(80% 0.14 145)",
|
|
50
52
|
"mdLinkUrl": "fgDim",
|
|
51
|
-
"mdCode": "oklch(80% 0.
|
|
53
|
+
"mdCode": "oklch(80% 0.14 144)",
|
|
52
54
|
"mdCodeBlock": "success",
|
|
53
55
|
"mdCodeBlockBorder": "fgMuted",
|
|
54
56
|
"mdQuote": "fgMuted",
|
|
55
57
|
"mdQuoteBorder": "fgMuted",
|
|
56
58
|
"mdHr": "fgFaint",
|
|
57
59
|
|
|
58
|
-
"mdListBullet": "oklch(80% 0.
|
|
60
|
+
"mdListBullet": "oklch(80% 0.14 144)",
|
|
59
61
|
"toolDiffAdded": "success",
|
|
60
62
|
"toolDiffRemoved": "error",
|
|
61
63
|
"toolDiffContext": "fgMuted",
|
|
62
64
|
"syntaxComment": "fgDim",
|
|
63
|
-
"syntaxKeyword": "oklch(80% 0.
|
|
64
|
-
"syntaxFunction": "oklch(86% 0.
|
|
65
|
+
"syntaxKeyword": "oklch(80% 0.14 144)",
|
|
66
|
+
"syntaxFunction": "oklch(86% 0.16 145)",
|
|
65
67
|
"syntaxVariable": "oklch(84% 0.121 145)",
|
|
66
68
|
"syntaxString": "oklch(82% 0.154 145)",
|
|
67
|
-
"syntaxNumber": "oklch(80% 0.
|
|
68
|
-
"syntaxType": "oklch(80% 0.
|
|
69
|
+
"syntaxNumber": "oklch(80% 0.15 145)",
|
|
70
|
+
"syntaxType": "oklch(80% 0.16 145)",
|
|
69
71
|
"syntaxOperator": "fg",
|
|
70
72
|
|
|
71
73
|
"syntaxPunctuation": "fgMuted",
|
|
@@ -79,8 +81,8 @@
|
|
|
79
81
|
"bashMode": "success"
|
|
80
82
|
},
|
|
81
83
|
"export": {
|
|
82
|
-
"pageBg": "oklch(
|
|
83
|
-
"cardBg": "oklch(
|
|
84
|
-
"infoBg": "oklch(
|
|
84
|
+
"pageBg": "oklch(18% 0.02 145)",
|
|
85
|
+
"cardBg": "oklch(21% 0.02 145)",
|
|
86
|
+
"infoBg": "oklch(29% 0.055 144)"
|
|
85
87
|
}
|
|
86
88
|
}
|