feat: logo svg change

This commit is contained in:
2026-03-07 14:17:54 +03:30
parent 1ef0384a8e
commit d7ae6c64f3
8 changed files with 163 additions and 33 deletions
+1 -1
View File
@@ -41,7 +41,7 @@ export const HeroHeader = () => {
className="fixed z-20 w-full px-2">
<div className={cn('mx-auto mt-2 max-w-6xl px-2 transition-all duration-300 lg:px-2 bg-background/30 backdrop-blur-md rounded-md border border-border/10', isScrolled && 'bg-background/20 max-w-4xl shadow-lg lg:px-5')}>
<div className="relative flex flex-wrap items-center justify-between gap-2 lg:gap-0">
<div className="flex w-full justify-between lg:w-auto">
<div className="flex w-full justify-between lg:w-auto my-2">
<Logo />
<button
onClick={() => setMenuState(!menuState)}
+10 -6
View File
@@ -1,6 +1,6 @@
import React from "react";
import Link from "next/link";
import { ArrowLeft, ArrowRight, ChevronRight } from "lucide-react";
import { ArrowLeft, ArrowRight, ChevronDown, ChevronRight } from "lucide-react";
import { Button } from "@/components/ui/button";
import Image from "next/image";
import { TextEffect } from "@/components/ui/text-effect";
@@ -81,7 +81,7 @@ export default function HeroSection() {
<div className="mx-auto max-w-7xl px-6">
<div className="text-center sm:mx-auto lg:mr-auto lg:mt-0">
<AnimatedGroup variants={transitionVariants}>
{/* <AnimatedGroup variants={transitionVariants}>
<Link
href="#link"
className="hover:bg-background dark:hover:border-t-border bg-muted group mx-auto flex w-fit items-center gap-4 rounded-full border p-1 ps-4 shadow-md shadow-zinc-950/5 transition-colors duration-300 dark:border-t-white/5 dark:shadow-zinc-950"
@@ -102,7 +102,7 @@ export default function HeroSection() {
</div>
</div>
</Link>
</AnimatedGroup>
</AnimatedGroup> */}
<TextEffect
preset="fade-in-blur"
@@ -110,7 +110,8 @@ export default function HeroSection() {
as="h1"
className="mx-auto mt-8 max-w-4xl text-balance text-3xl max-md:font-semibold md:text-4xl lg:mt-16 lg:text-5xl leading-relaxed tracking-normal"
>
راه‌حل‌های مدرن برای تعامل هوشمند با مشتری و سیستم‌های شما
راه‌حل‌های مدرن برای اتصال هوشمند
</TextEffect>
<TextEffect
per="line"
@@ -120,7 +121,9 @@ export default function HeroSection() {
as="p"
className="mx-auto mt-8 max-w-2xl text-balance text-base md:text-lg leading-relaxed tracking-normal"
>
ما مجموعه‌ای از ابزارهای یکپارچه‌سازی، اتوماسیون و ارتباطات ارائه می‌کنیم که به شما کمک می‌کند داده‌ها، کاربران و فرآیندهای کسب‌وکارتان را از هر سیستم یا پلتفرمی — از وب‌سایت و CRM گرفته تا تلگرام و سرویس‌های سفارشی — به شکلی دقیق، سریع و قابل‌اعتماد بهم متصل کنید.
داده‌ها، کاربران و فرآیندهای شما را از هر پلتفرمی (وب، CRM، تلگرام، سرویس‌های سفارشی) به‌صورت سریع، دقیق و امن یکپارچه کنید.
فرآیندهای کسب‌وکاری شما با سرعت به هم متصل می‌شوند.
</TextEffect>
<AnimatedGroup
@@ -147,7 +150,8 @@ export default function HeroSection() {
className="rounded-xl px-5 text-base"
>
<Link href="#link">
<span className="text-nowrap">شروع کنید</span>
<span className="text-nowrap">مشاهده راهکارها</span>
<ChevronDown />
</Link>
</Button>
</div>
+85 -14
View File
@@ -3,6 +3,60 @@ import Image from "next/image";
import Link from "next/link";
import { Separator } from "./ui/separator";
import React from 'react';
interface LogoProps {
color?: string; // رنگ لوگو به صورت پیش‌فرض سفید است
className?: string; // برای اضافه کردن کلاس‌های اضافی در صورت نیاز
}
export const LogoType: React.FC<LogoProps> = ({
color = '#FFFFFF',
className = 'w-12'
}) => {
return (
<svg
version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlnsXlink="http://www.w3.org/1999/xlink"
x="0px"
y="0px"
viewBox="0 0 69.9 34.2"
xmlSpace="preserve"
className={cn(className, 'fill-primary dark:fill-foreground')}
>
<path
d="M63.5,9.2c-1.2,0-2.5-0.1-3.8-0.1c-2.2,0.3-3.5,2-4,4c0,0.1,0,0.2-0.1,0.3c-0.3,1-0.5,2-0.8,3.1
c-6.4,0.3-6.5-0.8-6.1-2.4c0-0.1,0.1-0.2,0.1-0.3c0.4-1.6,0.3-1.3,0.5-2.3c0.1-0.2,0.1-0.5,0.1-0.7c0-0.8-0.1-1.4-0.5-2
c-0.4-0.5-0.9-1-1.6-1.3c-1-0.5-1.5-0.3-1.7,0.8c0,0.2-0.1,0.4-0.1,0.7C45.1,10.4,44,15,44,15c-0.4,1.3-0.8,1.5-2.6,1.5
c-1.2,0-5.3,0-5.3,0c-1.5-0.2-2.2-0.9-1.9-2.4c0-0.1,0.1-0.2,0.1-0.3c0.4-1.6,0.3-1.3,0.5-2.3c0.1-0.2,0.1-0.5,0.1-0.7
c0-0.8-0.1-1.4-0.5-2c-0.4-0.5-0.9-1-1.6-1.3c-1-0.5-1.5-0.3-1.7,0.8c0,0.2-0.1,0.4-0.1,0.7c-0.3,1.5-1.4,6.1-1.4,6.1
c-0.4,1.3-0.8,1.5-2.6,1.5c-3.4-0.1-17.9,0.1-21.2,0c-2.5-0.1-3.3,1.4-3.7,2.9l-0.5,1.8c4.6,0.1,27.4,0,27.5,0
c0.5,0,0.9-0.1,1.3-0.3c0.7-0.2,1.2-0.6,1.7-1.1c0.6,0.6,1.4,1,2.3,1.2c0.1,0,9.1,0.1,9.2,0.1c1.2-0.1,2.2-0.6,2.9-1.3
c0.7,0.7,1.6,1.1,2.7,1.2c0,0,13.7,0.2,13.9,0.2c1.7-0.1,2.5-1.1,3.1-3c0.1-0.5,0.3-0.9,0.4-1.3c0.3-1,0.6-1.9,0.8-2.9
c0-0.1,0-0.2,0-0.2C67.9,11.1,66.4,9.3,63.5,9.2z M63,14.2c-0.6,2.4-0.3,2.4-2.6,2.3c-0.2,0-0.2,0-0.5,0c-0.8,0-0.6-0.6-0.6-0.8
c0.4-1.9,0.8-2.2,2.7-2.2c0.3,0,1.1,0,1.1,0S63.1,13.9,63,14.2z"
/>
<g>
<path
d="M17.9,24.3c-2.9,0-5,0-7.6,0c-2.6,0-2.9,1.5-3.3,2.6l-0.6,1.7c2.7,0,5.5,0,8.2,0c0.7,0,1.4,0,2.2,0
c0.6,0,0.9,0.2,0.7,0.8l-1.1,3.3c0.5,0,1.5,0,2,0c2.2,0,2.6-1,3.2-3.1C23.2,25.3,20.9,24.2,17.9,24.3z"
/>
</g>
<path
d="M64,5.9l-2.7-0.2c-0.5-0.1-0.8-0.6-0.7-1.1l0.6-2.4c0.1-0.5,0.6-0.8,1.1-0.7l2.7,0.2c0.5,0.1,0.8,0.6,0.7,1.1
l-0.6,2.4C65,5.7,64.5,6,64,5.9z"
/>
<g>
<path
d="M42.1,24.7c-0.9,0-5.7,0-8.3,0c-1.8,0-1.9,1.3-1.9,1.3l-0.7,3.2l7.8,0c2.3,0,4-1.1,4.3-3.4
C43.3,25.1,43,24.7,42.1,24.7z"
/>
</g>
</svg>
);
};
export const Logo = ({
className,
uniColor,
@@ -12,10 +66,10 @@ export const Logo = ({
uniColor?: boolean;
hasCaption?: boolean;
}) => {
const _feep = <span className="font-bold text-xl leading-tight">فـــیــپ</span>
const _feep = <span className="font-bold text-xl leading-tight"><LogoType /></span>
return (
<Link href="/" className={`flex items-center ${hasCaption ? 'flex-col' : 'gap-2'}`}>
<LogoIcon className={className} uniColor={uniColor} />
<LogoIcon className={cn(className, 'h-7 text-primary')} uniColor={uniColor} />
{hasCaption ?
<span className="flex flex-col items-center">
{_feep}
@@ -29,21 +83,38 @@ export const Logo = ({
);
};
export const LogoIcon = ({
className,
uniColor,
}: {
interface LogoIconProps {
color?: string;
className?: string;
uniColor?: boolean;
}
export const LogoIcon: React.FC<LogoIconProps> = ({
color = '#FFFFFF',
className = 'h-5 w-auto md:h-12 dark:invert fill-primary'
}) => {
return (
<Image
src="/assets/feep-Logo.svg"
alt="Logo"
width={50}
height={50}
className={cn("h-10 w-auto md:h-12 dark:invert", className)}
/>
<svg
version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlnsXlink="http://www.w3.org/1999/xlink"
x="0px"
y="0px"
viewBox="0 0 34.2 34.2"
xmlSpace="preserve"
className={cn(className, 'fill-primary dark:fill-foreground')}
>
<g>
<path
// fill={color}
d="M25.2,3.3l-0.5,1.8c-0.4,1.6-1.2,2.8-3.7,2.8c-3.4,0-4.6,0-8,0.1c-2,0-2.3,0.3-2.7,2.2c0,0.2-0.2,0.9,1.2,0.9
c4.7,0,9.7,0,14.4,0c3,0,4.6,1.9,4,4.8c-0.3,1.4-0.6,2.7-1.1,4.3c-0.6,2.1-1.4,3.1-3.7,3.1c-2.9,0-5.3,0-8.1,0
c-0.9,0-1.4,0.3-1.6,1.3c-0.4,2.2-1,4.4-1.4,6.7c-0.2,0.9-0.6,1-1.3,0.8c-2.2-0.7-2.9-2.6-2.4-4.9c0.5-2.3,1.1-4.6,1.5-6.9
c0.2-1.1,0.7-1.6,1.9-1.6c3.3,0.1,6,0.1,9.3,0.1c2.3,0,2,0,2.6-2.4c0.1-0.6-0.1-0.8-0.7-0.8c-0.7,0-1.4,0-2.2,0c-4,0-8,0-12.1,0
c-1.1,0-1.5,0.4-1.7,1.4c-0.3,1.7-0.7,3.4-1,5.1c-0.2,1.1-0.7,1.3-1.7,0.8c-1.7-0.8-2.5-2.1-2.1-4C4.9,15,5.7,11.2,6.6,7.4
c0.5-2.1,1.9-4,4.3-4.1C11,3.3,20.6,3.3,25.2,3.3z"
/>
</g>
</svg >
);
};