Files
CC-Switch/src/components/BrandIcons.tsx
T
YoVinchen de7f93d513 refactor(ui): simplify AppSwitcher styles and migrate to local SVG icons
- Replace complex gradient animations with clean, minimal tab design
- Migrate from @lobehub/icons CDN to local SVG assets for better reliability
- Fix clippy warning in error.rs (use inline format args)
- Improve code formatting in skill service and commands
- Reduce CSS complexity in AppSwitcher component (removed blur effects and gradients)
- Update BrandIcons to use imported local SVG files instead of dynamic image loading

This improves performance, reduces external dependencies, and provides a cleaner UI experience.
2025-11-22 01:20:21 +08:00

49 lines
1003 B
TypeScript

interface IconProps {
size?: number;
className?: string;
}
// 导入本地 SVG 图标
import ClaudeSvg from "@/icons/extracted/claude.svg?url";
import OpenAISvg from "@/icons/extracted/openai.svg?url";
import GeminiSvg from "@/icons/extracted/gemini.svg?url";
export function ClaudeIcon({ size = 16, className = "" }: IconProps) {
return (
<img
src={ClaudeSvg}
width={size}
height={size}
className={className}
alt="Claude"
loading="lazy"
/>
);
}
export function CodexIcon({ size = 16, className = "" }: IconProps) {
return (
<img
src={OpenAISvg}
width={size}
height={size}
className={`dark:brightness-0 dark:invert ${className}`}
alt="Codex"
loading="lazy"
/>
);
}
export function GeminiIcon({ size = 16, className = "" }: IconProps) {
return (
<img
src={GeminiSvg}
width={size}
height={size}
className={className}
alt="Gemini"
loading="lazy"
/>
);
}