circle-play for the background job button, at full strength
White rather than muted, 18px rather than 16. Its neighbours on that row are pickers — they report what is already selected — and this is the only control there that does something, so it should not be wearing the same recessive grey as a label. The glyph was a radio tower, chosen because a play button implies one-shot. That reasoning was too clever: most of what gets started here is a long-running process, and a watcher is still something you press start on. Recognisable beats precise at this size. The dialog's own title icon changes with it. A button and the thing it opens wearing different glyphs is a small lie about them being the same feature. tsgo clean, frontend builds. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { useEffect, useState } from 'react';
|
||||
import { Radio } from 'lucide-react';
|
||||
import { CirclePlay } from 'lucide-react';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import {
|
||||
Dialog,
|
||||
@@ -87,7 +87,7 @@ export const BackgroundJobDialog = ({ open, onOpenChange, cwd, onSubmit }: Backg
|
||||
<DialogContent className="sm:max-w-lg">
|
||||
<DialogHeader>
|
||||
<DialogTitle className="flex items-center gap-2">
|
||||
<Radio className="h-4 w-4" />
|
||||
<CirclePlay className="h-4 w-4" />
|
||||
Background job
|
||||
</DialogTitle>
|
||||
<DialogDescription>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useEffect } from 'react';
|
||||
import { Radio } from 'lucide-react';
|
||||
import { CirclePlay } from 'lucide-react';
|
||||
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
|
||||
import type { ModelOption } from 'state/useModels';
|
||||
import { getProviderDisplayName } from 'state/useModels';
|
||||
@@ -126,15 +126,21 @@ export function ModelSelector({
|
||||
)}
|
||||
{/* Background job. Sits between the harness (left) and the model (right), in the gap
|
||||
`justify-between` already leaves — session-level, like its neighbours, rather than about the
|
||||
message being typed. `Radio` because it listens; a play button would imply one-shot. */}
|
||||
message being typed.
|
||||
|
||||
Full-strength and a size up, unlike its muted neighbours: those are pickers reporting what is
|
||||
already set, and this is the one control on this row that DOES something. The earlier glyph was
|
||||
a radio tower, on the reasoning that a play button implies one-shot — but most of what gets
|
||||
started here is a long-running process, and a watcher is still something you press start on.
|
||||
Recognisable beats precise at 18px. */}
|
||||
{onBackgroundJob && (
|
||||
<button
|
||||
type="button"
|
||||
onClick={onBackgroundJob}
|
||||
title="Start a background job or watcher"
|
||||
className="shrink-0 rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-foreground/10 hover:text-foreground cursor-pointer"
|
||||
className="shrink-0 cursor-pointer rounded-md p-1.5 text-foreground transition-colors hover:bg-foreground/10"
|
||||
>
|
||||
<Radio className="h-4 w-4" />
|
||||
<CirclePlay className="h-[18px] w-[18px]" />
|
||||
</button>
|
||||
)}
|
||||
{/* The thinking toggle used to render here. It is gone because it did nothing: `thinking` is
|
||||
|
||||
Reference in New Issue
Block a user