Files
55a1dddc-7962-48bf-8418-1f9…/src/components/shared/SvgTextLogo/SvgTextLogo.tsx

55 lines
1.3 KiB
TypeScript

import React from 'react';
interface SvgTextLogoProps {
text: string;
className?: string;
fontSize?: number;
fontWeight?: number | string;
letterSpacing?: number;
dominantBaseline?: 'auto' | 'middle' | 'hanging' | 'mathematical';
}
export const SvgTextLogo: React.FC<SvgTextLogoProps> = ({
text,
className = '',
fontSize = 32,
fontWeight = 700,
letterSpacing = 2,
dominantBaseline = 'middle',
}) => {
return (
<svg
viewBox={`0 0 ${text.length * fontSize} ${fontSize * 1.5}`}
className={className}
xmlns="http://www.w3.org/2000/svg"
>
<defs>
<style>
{`
.svg-text-logo-text {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
sans-serif;
font-size: ${fontSize}px;
font-weight: ${fontWeight};
letter-spacing: ${letterSpacing}px;
fill: currentColor;
}
`}
</style>
</defs>
<text
x="50%"
y="50%"
textAnchor="middle"
dominantBaseline={dominantBaseline}
className="svg-text-logo-text"
>
{text}
</text>
</svg>
);
};
export default SvgTextLogo;