Files
vibe-kanban/frontend/src/components/logo.tsx

45 lines
34 KiB
TypeScript
Raw Normal View History

2025-06-25 09:36:07 +01:00
import { useTheme } from '@/components/theme-provider';
import { useEffect, useState } from 'react';
2025-06-17 21:41:57 -04:00
2025-06-25 09:36:07 +01:00
export function Logo({ className = '' }: { className?: string }) {
2025-06-17 21:41:57 -04:00
const { theme } = useTheme();
const [isDark, setIsDark] = useState(false);
useEffect(() => {
const updateTheme = () => {
if (theme === 'light') {
2025-06-17 21:41:57 -04:00
setIsDark(false);
} else if (theme === 'system') {
2025-06-17 21:41:57 -04:00
// System theme
2025-06-25 09:36:07 +01:00
setIsDark(window.matchMedia('(prefers-color-scheme: dark)').matches);
} else {
// All other themes (dark, purple, green, blue, orange, red) have dark backgrounds
setIsDark(true);
2025-06-17 21:41:57 -04:00
}
};
updateTheme();
// Listen for system theme changes when using system theme
2025-06-25 09:36:07 +01:00
if (theme === 'system') {
const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
mediaQuery.addEventListener('change', updateTheme);
return () => mediaQuery.removeEventListener('change', updateTheme);
2025-06-17 21:41:57 -04:00
}
}, [theme]);
2025-06-25 09:36:07 +01:00
const fillColor = isDark ? '#ffffff' : '#000000';
2025-06-17 21:41:57 -04:00
return (
<svg
width="200"
viewBox="0 0 604 74"
fill={fillColor}
xmlns="http://www.w3.org/2000/svg"
className={className}
>
<path d="M0 13.6035V0.00976562H7.20117V13.6035H0ZM7.20703 13.6035V0.00976562H14.4082V13.6035H7.20703ZM18.5215 13.6035V6.42578H14.4141V5.56445H19.3828V13.6035H18.5215ZM16.6465 8.30078H14.4141V7.43945H17.5078V13.6035H16.6465V8.30078ZM43.2422 13.6035V0.00976562H50.4434V13.6035H43.2422ZM50.4492 13.6035V0.00976562H57.6504V13.6035H50.4492ZM61.7637 13.6035V6.42578H57.6562V5.56445H62.625V13.6035H61.7637ZM59.8887 8.30078H57.6562V7.43945H60.75V13.6035H59.8887V8.30078ZM64.8633 13.6035V0.00976562H72.0645V13.6035H64.8633ZM72.0703 13.6035V0.00976562H79.2715V13.6035H72.0703ZM83.3848 13.6035V6.42578H79.2773V5.56445H84.2461V13.6035H83.3848ZM81.5098 8.30078H79.2773V7.43945H82.3711V13.6035H81.5098V8.30078ZM86.4844 13.6035V0.00976562H93.6855V13.6035H86.4844ZM93.6914 13.6035V0.00976562H100.893V13.6035H93.6914ZM100.898 13.6035V0.00976562H108.1V13.6035H100.898ZM108.105 13.6035V0.00976562H115.307V13.6035H108.105ZM115.312 13.6035V0.00976562H122.514V13.6035H115.312ZM122.52 13.6035V0.00976562H129.721V13.6035H122.52ZM133.834 13.6035V6.42578H129.727V5.56445H134.695V13.6035H133.834ZM131.959 8.30078H129.727V7.43945H132.82V13.6035H131.959V8.30078ZM144.141 13.6035V0.00976562H151.342V13.6035H144.141ZM151.348 13.6035V0.00976562H158.549V13.6035H151.348ZM158.555 13.6035V0.00976562H165.756V13.6035H158.555ZM165.762 13.6035V0.00976562H172.963V13.6035H165.762ZM172.969 13.6035V0.00976562H180.17V13.6035H172.969ZM180.176 13.6035V0.00976562H187.377V13.6035H180.176ZM187.383 13.6035V0.00976562H194.584V13.6035H187.383ZM198.697 13.6035V6.42578H194.59V5.56445H199.559V13.6035H198.697ZM196.822 8.30078H194.59V7.43945H197.684V13.6035H196.822V8.30078ZM230.625 13.6035V0.00976562H237.826V13.6035H230.625ZM237.832 13.6035V0.00976562H245.033V13.6035H237.832ZM249.146 13.6035V6.42578H245.039V5.56445H250.008V13.6035H249.146ZM247.271 8.30078H245.039V7.43945H248.133V13.6035H247.271V8.30078ZM266.66 13.6035V0.00976562H273.861V13.6035H266.66ZM273.867 13.6035V0.00976562H281.068V13.6035H273.867ZM285.182 13.6035V6.42578H281.074V5.56445H286.043V13.6035H285.182ZM283.307 8.30078H281.074V7.43945H284.168V13.6035H283.307V8.30078ZM295.488 13.6035V0.00976562H302.689V13.6035H295.488ZM302.695 13.6035V0.00976562H309.896V13.6035H302.695ZM309.902 13.6035V0.00976562H317.104V13.6035H309.902ZM317.109 13.6035V0.00976562H324.311V13.6035H317.109ZM324.316 13.6035V0.00976562H331.518V13.6035H324.316ZM335.631 13.6035V6.42578H331.523V5.56445H336.492V13.6035H335.631ZM333.756 8.30078H331.523V7.43945H334.617V13.6035H333.756V8.30078ZM345.938 13.6035V0.00976562H353.139V13.6035H345.938ZM353.145 13.6035V0.00976562H360.346V13.6035H353.145ZM360.352 13.6035V0.00976562H367.553V13.6035H360.352ZM371.666 13.6035V6.42578H367.559V5.56445H372.527V13.6035H371.666ZM369.791 8.30078H367.559V7.43945H370.652V13.6035H369.791V8.30078ZM396.387 13.6035V0.00976562H403.588V13.6035H396.387ZM403.594 13.6035V0.00976562H410.795V13.6035H403.594ZM414.908 13.6035V6.42578H410.801V5.56445H415.77V13.6035H414.908ZM413.033 8.30078H410.801V7.43945H413.895V13.6035H413.033V8.30078ZM418.008 13.6035V0.00976562H425.209V13.6035H418.008ZM425.215 13.6035V0.00976562H432.416V13.6035H425.215ZM432.422 13.6035V0.00976562H439.623V13.6035H432.422ZM439.629 13.6035V0.00976562H446.83V13.6035H439.629ZM446.836 13.6035V0.00976562H454.037V13.6035H446.836ZM454.043 13.6035V0.00976562H461.244V13.6035H454.043ZM465.357 13.6035V6.42578H461.25V5.56445H466.219V13.6035H465.357ZM463.482 8.30078H461.25V7.43945H464.344V13.6035H463.482V8.30078ZM482.871 13.6035V0.00976562H490.072V13.6035H482.871ZM490.078 13.6035V0.00976562H497.279V13.6035H490.078ZM497.285 13.6035V0.00976562H504.486V13.6035H497.285ZM504.492 13.6035V0.00976562H511.693V13.6035H504.492ZM511.699 13.6035V0.00976562H518.9V13.6035H511.699ZM523.014 13.6035V6.42578H518.906V5.56445H523.875V13.6035H523.014ZM521.139 8.30078H518.906V7.43945H522V13.6035H521.139V8.30078ZM533.32 13.6035V0.00976562H540.521V13.6035H533.32ZM540.527 13.6035V0.00976562H547.729V13.6035H540.527ZM547.734 13.6035V0.00976562H554.936V13.6035H547.734ZM559.049 13.6035V6.42578H554.941V5.56445H559.91V13.6035H559.049ZM557.174 8.30078H554.941V7.43945H558.035V13.6035H
</svg>
);
}