Files
tkmind_go/ui/desktop/src/components/GooseLogo.tsx
T
Zane 77ea27f5f5 UI update with sidebar and settings tabs (#3288)
Co-authored-by: Nahiyan Khan <nahiyan@squareup.com>
Co-authored-by: Taylor Ho <taylorkmho@gmail.com>
Co-authored-by: Lily Delalande <119957291+lily-de@users.noreply.github.com>
Co-authored-by: Spence <spencrmartin@gmail.com>
Co-authored-by: spencrmartin <spencermartin@squareup.com>
Co-authored-by: Judson Stephenson <Jud@users.noreply.github.com>
Co-authored-by: Max Novich <mnovich@squareup.com>
Co-authored-by: Best Codes <106822363+The-Best-Codes@users.noreply.github.com>
Co-authored-by: caroline-a-mckenzie <cmckenzie@squareup.com>
Co-authored-by: Michael Neale <michael.neale@gmail.com>
2025-07-15 17:24:41 -07:00

50 lines
1.0 KiB
TypeScript

import { Goose, Rain } from './icons/Goose';
import { cn } from '../utils';
interface GooseLogoProps {
className?: string;
size?: 'default' | 'small';
hover?: boolean;
}
export default function GooseLogo({
className = '',
size = 'default',
hover = true,
}: GooseLogoProps) {
const sizes = {
default: {
frame: 'w-16 h-16',
rain: 'w-[275px] h-[275px]',
goose: 'w-16 h-16',
},
small: {
frame: 'w-8 h-8',
rain: 'w-[150px] h-[150px]',
goose: 'w-8 h-8',
},
} as const;
const currentSize = sizes[size];
return (
<div
className={cn(
className,
currentSize.frame,
'relative overflow-hidden',
hover && 'group/with-hover'
)}
>
<Rain
className={cn(
currentSize.rain,
'absolute left-0 bottom-0 transition-all duration-300 z-1',
hover && 'opacity-0 group-hover/with-hover:opacity-100'
)}
/>
<Goose className={cn(currentSize.goose, 'absolute left-0 bottom-0 z-2')} />
</div>
);
}