diff --git a/frontend/src/components/model/ModelQuickSelect.tsx b/frontend/src/components/model/ModelQuickSelect.tsx index bf74e9d0..3efd799e 100644 --- a/frontend/src/components/model/ModelQuickSelect.tsx +++ b/frontend/src/components/model/ModelQuickSelect.tsx @@ -453,17 +453,17 @@ export function ModelQuickSelect({ return (
@@ -474,7 +474,7 @@ export function ModelQuickSelect({ event.stopPropagation() removeRecentModel({ providerID: item.providerID, modelID: item.modelID }) }} - className="rounded-full p-1.5 text-white/30 hover:bg-white/10 hover:text-white/70" + className="rounded-full p-1.5 text-muted-foreground/50 hover:bg-accent hover:text-foreground/70" aria-label="Remove from recent" > @@ -486,7 +486,7 @@ export function ModelQuickSelect({ event.stopPropagation() toggleFavorite({ providerID: item.providerID, modelID: item.modelID }) }} - className="rounded-full p-1.5 text-white/50 transition-opacity hover:bg-white/10 hover:text-white" + className="rounded-full p-1.5 text-muted-foreground transition-opacity hover:bg-accent hover:text-foreground" aria-label={isFavorite ? 'Remove from favorites' : 'Add to favorites'} > @@ -504,13 +504,13 @@ export function ModelQuickSelect({ key={provider.id} type="button" onClick={() => handleProviderSelect(provider.id)} - className="flex w-full items-center gap-3 rounded-xl py-2.5 text-left transition-colors hover:bg-white/5" + className="flex w-full items-center gap-3 rounded-xl py-2.5 text-left transition-colors hover:bg-accent" > - {provider.label} - {provider.count} {provider.count === 1 ? 'model' : 'models'} + {provider.label} + {provider.count} {provider.count === 1 ? 'model' : 'models'} - + ) } @@ -559,7 +559,7 @@ export function ModelQuickSelect({ isOpen={isOpen} onClose={() => handleOpenChange(false)} heightClass="h-[70dvh] max-h-[720px]" - className="z-[300] border-white/10 bg-zinc-950 text-white shadow-2xl md:mx-auto md:max-w-lg" + className="z-[300] border-border bg-popover text-foreground shadow-2xl md:mx-auto md:max-w-lg" ariaLabel="Select model" >
@@ -568,18 +568,18 @@ export function ModelQuickSelect({
- + setSearchQuery(event.target.value)} placeholder={selectedProviderId ? 'Search models...' : 'Search providers...'} - className="h-9 border-white/10 bg-white/5 pl-9 text-sm text-white placeholder:text-white/40" + className="h-9 border-border bg-muted pl-9 text-sm text-foreground placeholder:text-muted-foreground" autoComplete="off" name="model-search" /> @@ -590,7 +590,7 @@ export function ModelQuickSelect({
@@ -610,11 +610,11 @@ export function ModelQuickSelect({ @@ -629,11 +629,11 @@ export function ModelQuickSelect({ {showAllModels ? (
{/* Provider sidebar — desktop only */} -
+
{connectedProviderItems.length > 0 && ( <> -

Connected

+

Connected

{connectedProviderItems.map(provider => ( ))} - {availableProviderItems.length > 0 &&
} + {availableProviderItems.length > 0 &&
} )} {availableProviderItems.length > 0 && ( <> -

Available

+

Available

{availableProviderItems.map(provider => ( ))} @@ -707,20 +707,20 @@ export function ModelQuickSelect({
{connectedProviderItems.length > 0 && ( <> -

Connected

+

Connected

{connectedProviderItems.map(renderProviderOption)} - {availableProviderItems.length > 0 &&
} + {availableProviderItems.length > 0 &&
} )} {availableProviderItems.length > 0 && ( <> -

Available

+

Available

{availableProviderItems.map(renderProviderOption)} )}
{filteredProviderItems.length === 0 && ( -
No providers found
+
No providers found
)}
)} @@ -732,7 +732,7 @@ export function ModelQuickSelect({
{quickSections.map(section => (
-

+

{section.icon} {section.title}

@@ -742,14 +742,14 @@ export function ModelQuickSelect({
))}
-
+
diff --git a/frontend/src/index.css b/frontend/src/index.css index 42b3f4cc..ab1dfaf0 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -46,7 +46,7 @@ html { overscroll-behavior-x: none; } -:root:not(.dark) html { +html:not(.dark) { background-color: #ffffff; } @@ -147,7 +147,7 @@ body { } .shine-loading { - background: linear-gradient(90deg, + background: linear-gradient(90deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.2) 40%, rgba(255, 255, 255, 0.4) 50%, @@ -163,6 +163,23 @@ body { animation: shine-loading 3s linear infinite; } +:root:not(.dark) .shine-loading { + background: linear-gradient(90deg, + rgba(0, 0, 0, 0.3) 0%, + rgba(0, 0, 0, 0.3) 40%, + rgba(0, 0, 0, 0.5) 50%, + rgba(0, 0, 0, 0.7) 60%, + rgba(0, 0, 0, 0.85) 70%, + rgba(0, 0, 0, 1) 80%, + rgba(0, 0, 0, 0.3) 100% + ); + background-size: 200% 100%; + background-clip: text; + -webkit-background-clip: text; + color: transparent; + animation: shine-loading 3s linear infinite; +} + .prose-enhanced { line-height: 1.7; word-break: break-word; diff --git a/frontend/src/pages/AssistantRedirect.tsx b/frontend/src/pages/AssistantRedirect.tsx index 2b211434..e93f3c50 100644 --- a/frontend/src/pages/AssistantRedirect.tsx +++ b/frontend/src/pages/AssistantRedirect.tsx @@ -58,11 +58,11 @@ export function AssistantRedirect() {
- - diff --git a/frontend/src/pages/Login.tsx b/frontend/src/pages/Login.tsx index d4e898e4..90ad4b60 100644 --- a/frontend/src/pages/Login.tsx +++ b/frontend/src/pages/Login.tsx @@ -205,7 +205,7 @@ export function Login() { id="email" type="email" placeholder="" - className="border-border focus:border-primary" + className="bg-input border-border focus:border-primary" {...register('email')} aria-invalid={!!errors.email} /> @@ -219,7 +219,7 @@ export function Login() { id="password" type="password" placeholder="" - className="border-border focus:border-primary" + className="bg-input border-border focus:border-primary" {...register('password')} aria-invalid={!!errors.password} /> diff --git a/frontend/src/pages/RepoDetail.tsx b/frontend/src/pages/RepoDetail.tsx index 04d60033..088c6957 100644 --- a/frontend/src/pages/RepoDetail.tsx +++ b/frontend/src/pages/RepoDetail.tsx @@ -217,7 +217,7 @@ export function RepoDetail() { onClick={() => handleCreateSession()} disabled={!opcodeUrl || createSessionMutation.isPending} size="sm" - className="sm:hidden h-10 w-10 p-0 bg-blue-600 hover:bg-blue-700 text-white transition-all duration-200 hover:scale-105" + className="sm:hidden h-10 w-10 p-0 bg-primary hover:bg-primary-hover text-primary-foreground transition-all duration-200 hover:scale-105" > @@ -351,7 +351,7 @@ function CreateWorkspaceDialog({ open, onOpenChange, onCreate, isCreating }: Cre -