Files
time_to_leave/apps/web/src/app/ui/LogoIcon.tsx
T
fegger eac4f6e216 Revamp branding, UI styling, and HAFAS integration
- Update BRAND_GUIDELINES.md with new melting clock logo concept
- Rebrand UI components with new violet-to-pink gradient color scheme
- Implement HAFAS authentication headers and GET support in route
- Update logo SVGs to match new brand guidelines
- Fix HAFAS time format to exclude millisecond padding
- Update default station to Mödling Bahnhof
- Bump workspace package versions to 1.0.0
2026-05-12 09:44:37 +02:00

85 lines
2.5 KiB
TypeScript

export default function LogoIcon({
size = 48,
className = "",
}: {
size?: number;
className?: string;
}) {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 512 512"
width={size}
height={size}
className={className}
aria-label="TimeToLeave logo"
>
<defs>
<linearGradient
id="ttt-iconMelt"
x1="100"
y1="80"
x2="420"
y2="430"
gradientUnits="userSpaceOnUse"
>
<stop offset="0%" stopColor="#8B5CF6" />
<stop offset="40%" stopColor="#B23CFF" />
<stop offset="72%" stopColor="#D946EF" />
<stop offset="100%" stopColor="#FF2D8D" />
</linearGradient>
</defs>
{/* Melting clock outline */}
<g>
<path
d="M160,310 C150,280 160,240 180,210 C210,160 260,140 310,145 C370,150 420,210 430,280 C435,310 430,340 425,360 C420,380 430,400 450,410 C470,420 475,380 495,375 C510,370 520,410 505,440 C495,460 480,470 460,465"
fill="none"
stroke="url(#ttt-iconMelt)"
strokeWidth="28"
strokeLinecap="round"
strokeLinejoin="round"
/>
{/* Melting drip */}
<path
d="M290,465 C288,490 290,510 300,510 C312,510 310,490 315,465"
fill="none"
stroke="url(#ttt-iconMelt)"
strokeWidth="28"
strokeLinecap="round"
/>
{/* Flowing arrow */}
<path
d="M460,465 C480,450 500,435 520,425"
fill="none"
stroke="url(#ttt-iconMelt)"
strokeWidth="28"
strokeLinecap="round"
/>
<path
d="M500,400 L540,420 L490,455 L500,430 Z"
fill="#FF2D8D"
/>
</g>
{/* Clock ticks */}
<g stroke="#F4F1EA" strokeWidth="10" strokeLinecap="round" opacity="0.96">
<line x1="290" y1="180" x2="290" y2="200" />
<line x1="370" y1="220" x2="385" y2="210" />
<line x1="400" y1="310" x2="420" y2="310" />
<line x1="290" y1="400" x2="290" y2="420" />
<line x1="200" y1="390" x2="215" y2="375" />
<line x1="170" y1="310" x2="190" y2="310" />
<line x1="200" y1="230" x2="215" y2="245" />
</g>
{/* Clock hands — 10:10 */}
<g stroke="#F4F1EA" strokeWidth="14" strokeLinecap="round">
<line x1="290" y1="310" x2="290" y2="230" />
<line x1="290" y1="310" x2="360" y2="355" />
</g>
<circle cx="290" cy="310" r="16" fill="#F4F1EA" />
</svg>
);
}