tripoli.cloud/app/src/components/layout/TripoliLogo.tsx

33 lines
1.1 KiB
TypeScript
Raw Normal View History

interface TripoliLogoProps {
size?: number;
variant?: 'hero' | 'sidebar';
}
/** Minimalist inline SVG mark — no external asset, easy to swap later. */
export function TripoliLogo({ size = 28, variant = 'sidebar' }: TripoliLogoProps) {
const badgeFill = variant === 'hero' ? 'rgba(23,20,14,0.05)' : 'rgba(91,140,255,0.14)';
const badgeStroke = variant === 'hero' ? 'rgba(23,20,14,0.16)' : 'rgba(91,140,255,0.36)';
return (
<svg width={size} height={size} viewBox="0 0 32 32" fill="none" aria-hidden="true">
<rect x="1" y="1" width="30" height="30" rx="9" fill={badgeFill} stroke={badgeStroke} />
<path
d="M10 20.5h11a3.6 3.6 0 0 0 .3-7.2 5.6 5.6 0 0 0-10.7-1.1A3.6 3.6 0 0 0 10 20.5z"
fill="none"
stroke="#7ba4ff"
strokeWidth="1.6"
strokeLinejoin="round"
/>
<circle cx="16" cy="16.6" r="1.5" fill="#5b8cff" />
</svg>
);
}
export function TripoliWordmark({ className = '' }: { className?: string }) {
return (
<span className={`text-[15px] font-bold tracking-tight ${className}`}>
Tripoli<span className="font-medium opacity-55"> Cloud</span>
</span>
);
}