Files
community-rule/app/components/Logo.js
T
2025-08-01 12:55:52 -06:00

78 lines
2.1 KiB
JavaScript

export default function Logo({ size = "default", showText = true }) {
// Size configurations
const sizes = {
default: {
containerHeight: "h-[41px]",
gap: "gap-[8.28px]",
textSize: "text-[21.97px]",
lineHeight: "leading-[27.05px]",
iconSize: "w-[27.05px] h-[27.05px]",
},
header: {
containerHeight: "h-[14.24px]",
gap: "gap-[2.11px]",
textSize: "text-[18px]",
lineHeight: "leading-[22px]",
iconSize: "w-[22px] h-[22px]",
},
headerLg: {
containerHeight: "h-[36px]",
gap: "gap-[7px]",
textSize: "text-[20px]",
lineHeight: "leading-[24px]",
iconSize: "w-[24px] h-[24px]",
},
footer: {
containerHeight: "h-[calc(40px*1.37)]",
gap: "gap-[calc(8px*1.37)]",
textSize: "text-[calc(21.97px*1.37)]",
lineHeight: "leading-[calc(27.05px*1.37)]",
iconSize: "w-[calc(27.05px*1.37)] h-[calc(27.05px*1.37)]",
},
footerLg: {
containerHeight: "h-[calc(40px*2.05)]",
gap: "gap-[calc(8px*2.05)]",
textSize: "text-[calc(21.97px*2.05)]",
lineHeight: "leading-[calc(27.05px*2.05)]",
iconSize: "w-[calc(27.05px*2.05)] h-[calc(27.05px*2.05)]",
},
};
const config =
size === "header"
? sizes.header
: size === "headerLg"
? sizes.headerLg
: size === "footer"
? sizes.footer
: size === "footerLg"
? sizes.footerLg
: sizes.default;
return (
<div
className={`flex items-center ${config.containerHeight} ${
showText ? config.gap : ""
}`}
>
{/* Logo Text - only show if showText is true */}
{showText && (
<div
className={`font-['Bricolage_Grotesque'] text-[var(--color-content-default-primary)] ${config.textSize} ${config.lineHeight} font-normal tracking-[0px]`}
>
CommunityRule
</div>
)}
{/* Vector Icon */}
<img
src="/assets/Logo.svg"
alt="CommunityRule Logo Icon"
width={27.05}
height={27.05}
className={`flex-shrink-0 ${config.iconSize}`}
/>
</div>
);
}