pi-studio 0.6.6 → 0.6.8

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 CHANGED
@@ -4,6 +4,17 @@ All notable changes to `pi-studio` are documented here.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.6.8] — 2026-05-01
8
+
9
+ ### Changed
10
+ - Sharpened rendered and raw Markdown links, bare URLs, list markers, and sync/history-style badges so low-contrast theme tokens remain readable in Studio.
11
+ - Softened the bundled `pi-studio-light` theme surfaces to reduce pure-white glare and large-surface contrast.
12
+
13
+ ## [0.6.7] — 2026-04-30
14
+
15
+ ### Changed
16
+ - Sharpened Markdown quote markers, fenced-code fence lines, rendered blockquote borders/text, and Studio badge text so they remain legible across darker custom themes.
17
+
7
18
  ## [0.6.6] — 2026-04-30
8
19
 
9
20
  ### Changed
package/client/studio.css CHANGED
@@ -396,7 +396,7 @@
396
396
  border-radius: 999px;
397
397
  padding: 4px 10px;
398
398
  font-size: 12px;
399
- color: var(--muted);
399
+ color: var(--studio-info-text, var(--muted));
400
400
  white-space: nowrap;
401
401
  }
402
402
 
@@ -406,7 +406,14 @@
406
406
 
407
407
  body.studio-ui-refresh #rightPane .reference-meta .source-badge {
408
408
  border-color: var(--border-subtle);
409
- color: color-mix(in srgb, var(--text) 58%, var(--muted));
409
+ color: var(--studio-info-text, var(--muted));
410
+ }
411
+
412
+ #historyIndexBadge {
413
+ color: var(--studio-info-text, var(--muted));
414
+ background: var(--reference-badge-bg, var(--panel));
415
+ border-color: var(--control-border);
416
+ font-weight: 500;
410
417
  }
411
418
 
412
419
  .source-badge-button {
@@ -429,8 +436,8 @@
429
436
 
430
437
  .sync-badge.sync {
431
438
  border-color: var(--control-border);
432
- color: var(--muted);
433
- opacity: 0.88;
439
+ color: var(--studio-info-text, var(--muted));
440
+ opacity: 0.96;
434
441
  }
435
442
 
436
443
  .source-actions {
@@ -727,7 +734,8 @@
727
734
  }
728
735
 
729
736
  .hl-fence {
730
- color: var(--muted);
737
+ color: var(--studio-markdown-marker-text, var(--studio-info-text, var(--muted)));
738
+ font-weight: 600;
731
739
  }
732
740
 
733
741
  .hl-code {
@@ -788,22 +796,26 @@
788
796
  }
789
797
 
790
798
  .hl-list {
791
- color: var(--md-list-bullet);
799
+ color: var(--studio-list-marker-text, var(--md-list-bullet));
792
800
  font-weight: 600;
793
801
  }
794
802
 
795
803
  .hl-quote {
796
- color: var(--md-quote);
804
+ color: var(--studio-markdown-marker-text, var(--md-quote));
797
805
  font-style: normal;
806
+ font-weight: 600;
798
807
  }
799
808
 
800
809
  .hl-link {
801
- color: var(--md-link);
810
+ color: var(--studio-link, var(--md-link));
802
811
  text-decoration: underline;
812
+ text-decoration-color: var(--studio-link-decoration, currentColor);
813
+ text-underline-offset: 0.13em;
803
814
  }
804
815
 
805
816
  .hl-url {
806
- color: var(--md-link-url);
817
+ color: var(--studio-link-url, var(--studio-link, var(--md-link-url)));
818
+ font-weight: 500;
807
819
  }
808
820
 
809
821
  .hl-annotation {
@@ -1011,30 +1023,34 @@
1011
1023
  }
1012
1024
 
1013
1025
  .rendered-markdown li::marker {
1014
- color: var(--md-list-bullet);
1026
+ color: var(--studio-list-marker-text, var(--md-list-bullet));
1015
1027
  }
1016
1028
 
1017
1029
  .rendered-markdown a {
1018
- color: var(--md-link);
1019
- text-decoration: none;
1030
+ color: var(--studio-link, var(--md-link));
1031
+ text-decoration: underline;
1032
+ text-decoration-color: var(--studio-link-decoration, currentColor);
1033
+ text-decoration-thickness: 0.06em;
1034
+ text-underline-offset: 0.14em;
1020
1035
  }
1021
1036
 
1022
1037
  .rendered-markdown a:hover {
1023
- text-decoration: underline;
1038
+ text-decoration-color: currentColor;
1024
1039
  }
1025
1040
 
1026
1041
  .rendered-markdown a.uri,
1027
1042
  .rendered-markdown .uri {
1028
- color: var(--md-link-url);
1043
+ color: var(--studio-link-url, var(--studio-link, var(--md-link-url)));
1044
+ font-weight: 500;
1029
1045
  }
1030
1046
 
1031
1047
  .rendered-markdown blockquote {
1032
1048
  margin-left: 0;
1033
1049
  padding: 0.2em 1em;
1034
- border-left: 0.25em solid var(--md-quote-border);
1050
+ border-left: 0.25em solid var(--studio-quote-border, var(--md-quote-border));
1035
1051
  border-radius: 0 8px 8px 0;
1036
1052
  background: var(--blockquote-bg);
1037
- color: var(--md-quote);
1053
+ color: var(--studio-quote-text, var(--md-quote));
1038
1054
  }
1039
1055
 
1040
1056
  .rendered-markdown .callout-note,
package/index.ts CHANGED
@@ -6210,9 +6210,20 @@ function buildThemeCssVars(style: StudioThemeStyle): Record<string, string> {
6210
6210
  const paneActiveBorder = capBorderContrast(rawPaneActiveBorder, style.palette.panel, style.mode === "light" ? 1.38 : 1.45);
6211
6211
  const accentContrast = style.accentContrast ?? (style.mode === "light" ? "#ffffff" : "#0e1616");
6212
6212
  const errorContrast = style.errorContrast ?? readableTextOn(style.palette.error);
6213
+ const quoteText = blendColors(style.palette.text, style.palette.mdQuote, style.mode === "light" ? 0.34 : 0.28);
6214
+ const quoteBorder = blendColors(style.palette.mdQuoteBorder, style.palette.text, style.mode === "light" ? 0.18 : 0.24);
6215
+ const markdownMarkerText = blendColors(style.palette.text, style.palette.muted, style.mode === "light" ? 0.28 : 0.24);
6216
+ const linkText = blendColors(style.palette.text, style.palette.mdLink, style.mode === "light" ? 0.62 : 0.58);
6217
+ const linkUrlText = blendColors(linkText, style.palette.mdLinkUrl, style.mode === "light" ? 0.22 : 0.18);
6218
+ const linkDecoration = withAlpha(
6219
+ linkText,
6220
+ style.mode === "light" ? 0.42 : 0.50,
6221
+ style.mode === "light" ? "rgba(84, 125, 167, 0.42)" : "rgba(129, 162, 190, 0.50)",
6222
+ );
6223
+ const listMarkerText = blendColors(markdownMarkerText, style.palette.mdListBullet, style.mode === "light" ? 0.46 : 0.42);
6213
6224
  const blockquoteBg = withAlpha(
6214
- style.palette.mdQuoteBorder,
6215
- style.mode === "light" ? 0.10 : 0.16,
6225
+ quoteBorder,
6226
+ style.mode === "light" ? 0.10 : 0.15,
6216
6227
  style.mode === "light" ? "rgba(15, 23, 42, 0.04)" : "rgba(255, 255, 255, 0.05)",
6217
6228
  );
6218
6229
  const tableAltBg = withAlpha(
@@ -6285,6 +6296,13 @@ function buildThemeCssVars(style: StudioThemeStyle): Record<string, string> {
6285
6296
  "--md-codeblock-border": codeBlockBorder,
6286
6297
  "--md-quote": style.palette.mdQuote,
6287
6298
  "--md-quote-border": style.palette.mdQuoteBorder,
6299
+ "--studio-quote-text": quoteText,
6300
+ "--studio-quote-border": quoteBorder,
6301
+ "--studio-markdown-marker-text": markdownMarkerText,
6302
+ "--studio-link": linkText,
6303
+ "--studio-link-url": linkUrlText,
6304
+ "--studio-link-decoration": linkDecoration,
6305
+ "--studio-list-marker-text": listMarkerText,
6288
6306
  "--md-hr": style.palette.mdHr,
6289
6307
  "--md-list-bullet": style.palette.mdListBullet,
6290
6308
  "--syntax-comment": style.palette.syntaxComment,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-studio",
3
- "version": "0.6.6",
3
+ "version": "0.6.8",
4
4
  "description": "Two-pane browser workspace for pi with prompt/response editing, annotations, critiques, prompt/response history, and live Markdown/LaTeX/code preview",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -2,9 +2,9 @@
2
2
  "$schema": "https://raw.githubusercontent.com/badlogic/pi-mono/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
3
3
  "name": "pi-studio-light",
4
4
  "vars": {
5
- "bg": "#ffffff",
6
- "surface": "#f6f8fa",
7
- "surfaceAlt": "#ffffff",
5
+ "bg": "#f7f8fa",
6
+ "surface": "#fbfcfd",
7
+ "surfaceAlt": "#f2f4f7",
8
8
  "border": "#d0d7de",
9
9
  "borderMuted": "#eaeef2",
10
10
  "fg": "#0e1116",
@@ -70,8 +70,8 @@
70
70
  "bashMode": "success"
71
71
  },
72
72
  "export": {
73
- "pageBg": "#ffffff",
74
- "cardBg": "#f6f8fa",
73
+ "pageBg": "#f7f8fa",
74
+ "cardBg": "#fbfcfd",
75
75
  "infoBg": "#f3ecf8"
76
76
  }
77
77
  }