feat(ui): UI/UX polish — layout, sidebar, button, theme improvements

- Fix global scrollbar overflow by removing h-svh from html element
- Add h-full overflow-hidden to html/body for proper app-like layout
- Fix default button variant: add shadow-sm and hover:bg-primary/90
- Update sidebar create-issue button to bg-background with shadow
- Add WorkspaceAvatar component and search/new-issue actions to sidebar header
- Improve theme provider with TooltipProvider wrapper
- Polish various page layouts, pickers, modals, and code block styling
- Clean up custom.css unused styles

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Naiyuan Qing 2026-03-25 18:53:14 +08:00
parent f150b39f1e
commit 6535efdd97
24 changed files with 255 additions and 210 deletions

View file

@ -57,15 +57,14 @@ export function AssigneePicker({
assigneeType && assigneeId ? (
<>
<div
className={`inline-flex shrink-0 items-center justify-center rounded-full font-medium text-[8px] ${
className={`inline-flex shrink-0 items-center justify-center rounded-full font-medium text-[8px] size-[18px] ${
assigneeType === "agent"
? "bg-purple-100 text-purple-700 dark:bg-purple-950 dark:text-purple-300"
? "bg-info/10 text-info"
: "bg-muted text-muted-foreground"
}`}
style={{ width: 18, height: 18 }}
>
{assigneeType === "agent" ? (
<Bot style={{ width: 10, height: 10 }} />
<Bot className="size-2.5" />
) : (
getActorInitials(assigneeType, assigneeId)
)}
@ -128,8 +127,8 @@ export function AssigneePicker({
setOpen(false);
}}
>
<div className="inline-flex h-[18px] w-[18px] shrink-0 items-center justify-center rounded-full bg-purple-100 text-purple-700 dark:bg-purple-950 dark:text-purple-300">
<Bot style={{ width: 10, height: 10 }} />
<div className="inline-flex h-[18px] w-[18px] shrink-0 items-center justify-center rounded-full bg-info/10 text-info">
<Bot className="size-2.5" />
</div>
<span>{a.name}</span>
</PickerItem>

View file

@ -62,6 +62,7 @@ export function PropertyPicker({
onSearchChange?.(e.target.value);
}}
placeholder={searchPlaceholder}
aria-label="Filter options"
className="w-full bg-transparent text-[13px] placeholder:text-muted-foreground outline-none"
/>
</div>