mirror of
https://github.com/aaif-goose/goose.git
synced 2026-07-03 14:10:03 +02:00
feat(goose2): Alex redesign — tighten agents page
- Card and figure sized down ~20% (w-200→160, h-420→336) for a tighter grid. - Persona name promoted out of the description paragraph onto its own row above the body, so the pill reads as a label rather than an inline prefix. - Gallery container switches from fixed gap-32 to justify-evenly with a gap-8 floor — cards redistribute evenly when the sidebar collapses and fall back to horizontal scroll when they overflow. - SkeletonCard updated to match the new dimensions and the split name/description layout. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -76,14 +76,14 @@ export function PersonaCard({
|
||||
onKeyDown={handleCardKeyDown}
|
||||
tabIndex={0}
|
||||
className={cn(
|
||||
"group relative flex w-[200px] shrink-0 cursor-pointer flex-col py-4",
|
||||
"group relative flex w-[160px] shrink-0 cursor-pointer flex-col py-4",
|
||||
"transition-colors duration-200",
|
||||
isActive && "bg-black/[0.03]",
|
||||
)}
|
||||
>
|
||||
{/* Fixed-height figure box: figure aligned to bottom, centered horizontally;
|
||||
wider figures bleed into the gap between cells (intentional editorial overflow) */}
|
||||
<div className="flex h-[420px] w-full items-end justify-center">
|
||||
<div className="flex h-[336px] w-full items-end justify-center">
|
||||
<img
|
||||
src={resolvePersonaFigure(persona.displayName)}
|
||||
alt=""
|
||||
@@ -94,10 +94,13 @@ export function PersonaCard({
|
||||
|
||||
<div className="mt-4 h-px w-full bg-black/30" />
|
||||
|
||||
<p className="mt-4 line-clamp-6 h-[144px] w-full text-[16px] leading-[24px] text-[var(--text-muted-alex)]">
|
||||
<span className="mr-1 inline-flex h-5 items-center rounded-full bg-[var(--surface-button)] px-[6px] pb-[3px] align-middle text-[14px] text-[var(--text-title-alex)]">
|
||||
<div className="mt-4 w-full">
|
||||
<span className="inline-flex h-5 items-center rounded-full bg-[var(--surface-button)] px-[6px] pb-[3px] text-[14px] text-[var(--text-title-alex)]">
|
||||
{persona.displayName}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<p className="mt-2 line-clamp-6 h-[144px] w-full text-[16px] leading-[24px] text-[var(--text-muted-alex)]">
|
||||
{persona.systemPrompt}
|
||||
</p>
|
||||
|
||||
|
||||
@@ -20,12 +20,13 @@ interface PersonaGalleryProps {
|
||||
|
||||
function SkeletonCard() {
|
||||
return (
|
||||
<div aria-hidden="true" className="flex w-[200px] shrink-0 flex-col py-4">
|
||||
<div className="flex h-[420px] w-full items-end justify-center">
|
||||
<Skeleton className="h-full w-[140px]" />
|
||||
<div aria-hidden="true" className="flex w-[160px] shrink-0 flex-col py-4">
|
||||
<div className="flex h-[336px] w-full items-end justify-center">
|
||||
<Skeleton className="h-full w-[112px]" />
|
||||
</div>
|
||||
<Skeleton className="mt-4 h-px w-full" />
|
||||
<Skeleton className="mt-4 h-[144px] w-full" />
|
||||
<Skeleton className="mt-4 h-5 w-24 rounded-full" />
|
||||
<Skeleton className="mt-2 h-[144px] w-full" />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -58,7 +59,7 @@ export function PersonaGallery({
|
||||
<section
|
||||
role="status"
|
||||
aria-label={t("gallery.loading")}
|
||||
className="flex h-full items-center gap-32 overflow-x-auto px-16"
|
||||
className="flex h-full items-center justify-evenly gap-8 overflow-x-auto px-16"
|
||||
>
|
||||
<SkeletonCard />
|
||||
<SkeletonCard />
|
||||
@@ -72,7 +73,7 @@ export function PersonaGallery({
|
||||
<section
|
||||
{...dropHandlers}
|
||||
className={cn(
|
||||
"flex h-full items-center gap-32 overflow-x-auto px-16 transition-colors",
|
||||
"flex h-full items-center justify-evenly gap-8 overflow-x-auto px-16 transition-colors",
|
||||
isDragOver && "ring-2 ring-ring ring-offset-2 ring-inset",
|
||||
)}
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user