diff --git a/apps/mobile/src/features/settings/SettingsThreadsRouteScreen.tsx b/apps/mobile/src/features/settings/SettingsThreadsRouteScreen.tsx index c7883989ddb15..0b3c7b5d2b485 100644 --- a/apps/mobile/src/features/settings/SettingsThreadsRouteScreen.tsx +++ b/apps/mobile/src/features/settings/SettingsThreadsRouteScreen.tsx @@ -179,14 +179,14 @@ function AutoSettleSettingsRows() { writeToAll({ autoResumeLimitedThreads: value })} /> writeToAll({ snoozeLimitedThreads: value })} diff --git a/apps/web/index.html b/apps/web/index.html index c6941cd039788..6c01298b624d9 100644 --- a/apps/web/index.html +++ b/apps/web/index.html @@ -398,7 +398,8 @@ body { background: #ffffff; color: #262626; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif; + font-family: + -apple-system, BlinkMacSystemFont, "Inter Variable", "Segoe UI", system-ui, sans-serif; } html.dark body { diff --git a/apps/web/package.json b/apps/web/package.json index 2ad03efe77e15..74516847d57af 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -22,6 +22,7 @@ "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", "@effect/atom-react": "catalog:", + "@fontsource-variable/inter": "^5.3.0", "@formkit/auto-animate": "^0.9.0", "@legendapp/list": "catalog:", "@noble/hashes": "catalog:", diff --git a/apps/web/src/appearanceFonts.ts b/apps/web/src/appearanceFonts.ts index 6d94ed565c707..48f8e5955e7e1 100644 --- a/apps/web/src/appearanceFonts.ts +++ b/apps/web/src/appearanceFonts.ts @@ -11,7 +11,7 @@ import { } from "@t3tools/contracts"; export const DEFAULT_SANS_FONT_STACK = - '-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif'; + '-apple-system, BlinkMacSystemFont, "Inter Variable", "Segoe UI", system-ui, sans-serif'; // Some engines map `ui-monospace` to a proportional font, so prefer concrete names. export const DEFAULT_CODE_FONT_STACK = diff --git a/apps/web/src/components/BranchToolbar.tsx b/apps/web/src/components/BranchToolbar.tsx index bfc8d0dd64500..059280bdb02c9 100644 --- a/apps/web/src/components/BranchToolbar.tsx +++ b/apps/web/src/components/BranchToolbar.tsx @@ -241,29 +241,34 @@ const RunContextSelector = memo(function RunContextSelector({ ); - const icon = showEnvironmentIndicator ? ( + const environmentIcon = ( + + }> + {autoEnvironmentLabel ? ( + + {autoEnvironmentLabel ?? activeEnvironment?.label ?? "Run on"} + + ); + const icon = !showEnvironmentIndicator ? ( + workspaceIcon + ) : isPanel ? ( + environmentIcon + ) : ( // Button's SVG margins consume 4px of the gap; mx-0! restores the intended 2px. - - }> - {autoEnvironmentLabel ? ( - - {autoEnvironmentLabel ?? activeEnvironment?.label ?? "Run on"} - + {environmentIcon} {workspaceIcon} - ) : ( - workspaceIcon ); const triggerContent = ( <> @@ -272,6 +277,8 @@ const RunContextSelector = memo(function RunContextSelector({ {autoEnvironmentLabel ?? (showEnvironmentIndicator ? (activeEnvironment?.label ?? "Run on") : workspaceLabel)} + {/* Trailing in the panel, so every row label starts on the same edge. */} + {isPanel && showEnvironmentIndicator ? workspaceIcon : null} ); @@ -313,7 +320,7 @@ const RunContextSelector = memo(function RunContextSelector({ ].join(" ")} > {triggerContent} - {!isPanel ? : null} + {!isPanel ? : null} - {displayMode !== "panel" ? ( - - ) : null} + {displayMode !== "panel" ? : null} {displayMode === "panel" && prNumber !== undefined && prUrl !== undefined ? ( diff --git a/apps/web/src/components/ChatMarkdown.tsx b/apps/web/src/components/ChatMarkdown.tsx index 238024cf332aa..5846cf18ae12f 100644 --- a/apps/web/src/components/ChatMarkdown.tsx +++ b/apps/web/src/components/ChatMarkdown.tsx @@ -1590,7 +1590,7 @@ function ChatMarkdown({ className={cn( "chat-markdown w-full min-w-0 [overflow-wrap:anywhere] [word-break:break-word]", !inline && - "text-sm leading-relaxed text-foreground/[calc(80%+var(--appearance-contrast-boost)/5)]", + "text-sm leading-relaxed text-foreground/[calc(90%+var(--appearance-contrast-boost)/10)]", className, )} data-streaming={componentState.isStreaming ? "" : undefined} diff --git a/apps/web/src/components/EnvironmentMachineIcon.tsx b/apps/web/src/components/EnvironmentMachineIcon.tsx index e174bb9e2382a..4d5184bdf31c6 100644 --- a/apps/web/src/components/EnvironmentMachineIcon.tsx +++ b/apps/web/src/components/EnvironmentMachineIcon.tsx @@ -12,7 +12,7 @@ function LucideLike(props: SVGProps) { viewBox="0 0 24 24" fill="none" stroke="currentColor" - strokeWidth="2" + strokeWidth="1.75" strokeLinecap="round" strokeLinejoin="round" {...props} diff --git a/apps/web/src/components/GitActionsControl.tsx b/apps/web/src/components/GitActionsControl.tsx index eea96772c84c6..f60cc41989ca0 100644 --- a/apps/web/src/components/GitActionsControl.tsx +++ b/apps/web/src/components/GitActionsControl.tsx @@ -1151,6 +1151,14 @@ export default function GitActionsControl({ ? (quickAction.hint ?? "This action is currently unavailable.") : null; const gitActionProgress = resolveGitActionProgressPresentation(vcsActionState); + // A fresh draft with nothing to commit, push, or diff hides those rows until there is work. + const quietEmptyDraft = + isPanel && + draftId !== undefined && + gitActionProgress === null && + quickAction.disabled && + !changesTotals?.insertions && + !changesTotals?.deletions; const pendingDefaultBranchActionCopy = pendingDefaultBranchAction ? resolveDefaultBranchActionDialogCopy({ action: pendingDefaultBranchAction.action, @@ -1684,7 +1692,7 @@ export default function GitActionsControl({ {initAction.isPending ? "Initializing..." : "Initialize Git"} - ) : compact && !gitActionProgress && !visibleInlineSuccess ? null : ( + ) : quietEmptyDraft || (compact && !gitActionProgress && !visibleInlineSuccess) ? null : ( )} - {isPanel && isRepo ? ( + {isPanel && isRepo && !quietEmptyDraft ? ( Changes - - + + +{formatDiffCount(changesTotals?.insertions ?? 0)} - + -{formatDiffCount(changesTotals?.deletions ?? 0)} diff --git a/apps/web/src/components/ThreadStatusIndicators.tsx b/apps/web/src/components/ThreadStatusIndicators.tsx index e31f38ec2b099..03bb1881609d1 100644 --- a/apps/web/src/components/ThreadStatusIndicators.tsx +++ b/apps/web/src/components/ThreadStatusIndicators.tsx @@ -287,11 +287,12 @@ function PullRequestBadge({ return ( - - - {presentation.text} + + + {presentation.text}