diff --git a/src/app/components/Hero/Hero.tsx b/src/app/components/Hero/Hero.tsx new file mode 100644 index 0000000..e2b16bf --- /dev/null +++ b/src/app/components/Hero/Hero.tsx @@ -0,0 +1,27 @@ +import HeroContent from "./HeroContent"; +import HeroSVG from "./HeroSVG"; +import { HeroLeftTech, HeroRightTech } from "./HeroTechSVG"; +import React from "react"; + +const Hero = () => { + return ( +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+
+ ); +}; + +export default Hero; diff --git a/src/app/components/Hero/HeroContent.tsx b/src/app/components/Hero/HeroContent.tsx new file mode 100644 index 0000000..c0467d1 --- /dev/null +++ b/src/app/components/Hero/HeroContent.tsx @@ -0,0 +1,56 @@ +import { Badge } from "@/components/ui/badge"; +import { Button } from "@/components/ui/button"; +import { linksConfig } from "@/configs/links"; +import { CarrotIcon, TicketIcon } from "lucide-react"; +import Link from "next/link"; + +const HeroContent = () => { + return ( +
+ +
+ + فرانت چپتر پخت و پز می‌کند +
+
+

+ همایش فرانت چپتر ۱۴۰۳{" "} +

+ +

+ بزرگترین همایش فرانت‌اند ایران +

+

+ همایش فرانت چپتر محلی برای گردهمایی و به اشتراک‌گذاری تجربیات +
برنامه‌نویسان، متخصصین و علاقه‌مندان + حوزه فرانت‌اند +

+
+ + + +
+ + + +
+
+
+ ); +}; + +export default HeroContent; diff --git a/src/app/components/Hero/HeroSVG.tsx b/src/app/components/Hero/HeroSVG.tsx new file mode 100644 index 0000000..2b5c5f7 --- /dev/null +++ b/src/app/components/Hero/HeroSVG.tsx @@ -0,0 +1,271 @@ +import React from "react"; + +const HeroSVG: React.FC = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +}; + +export default HeroSVG; diff --git a/src/app/components/Hero/HeroTechSVG.tsx b/src/app/components/Hero/HeroTechSVG.tsx new file mode 100644 index 0000000..b660587 --- /dev/null +++ b/src/app/components/Hero/HeroTechSVG.tsx @@ -0,0 +1,1213 @@ +import React from "react"; + +export const HeroLeftTech: React.FC = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +}; + +export const HeroRightTech: React.FC = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +}; diff --git a/src/app/page.tsx b/src/app/page.tsx index 13b4ea4..1abcc15 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,3 +1,4 @@ +import Hero from "./components/Hero/Hero"; import Sponsors from "./components/Sponsors/Sponsors"; import TopNavigation from "./components/top-navigation/top-navigation"; import FAQ from "@/app/components/FAQ/FAQ"; @@ -8,6 +9,7 @@ export default function Home() { return ( <> + diff --git a/src/components/ui/badge.tsx b/src/components/ui/badge.tsx new file mode 100644 index 0000000..528b31c --- /dev/null +++ b/src/components/ui/badge.tsx @@ -0,0 +1,36 @@ +import * as React from "react"; +import { cva, type VariantProps } from "class-variance-authority"; + +import { cn } from "@/lib/utils"; + +const badgeVariants = cva( + "inline-flex items-center rounded-full border border-border/100 dark:border-border/20 px-2.5 py-1 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 gap-2", + { + variants: { + variant: { + default: + "border-transparent bg-primary text-foreground dark:shadow hover:bg-primary/80", + secondary: + "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", + destructive: + "border-transparent bg-destructive text-destructive-foreground dark:shadow hover:bg-destructive/80", + outline: "text-foreground", + }, + }, + defaultVariants: { + variant: "default", + }, + }, +); + +export interface BadgeProps + extends React.HTMLAttributes, + VariantProps {} + +function Badge({ className, variant, ...props }: BadgeProps) { + return ( +
+ ); +} + +export { Badge, badgeVariants }; diff --git a/src/configs/links.ts b/src/configs/links.ts new file mode 100644 index 0000000..231656b --- /dev/null +++ b/src/configs/links.ts @@ -0,0 +1,4 @@ +export const linksConfig = { + buyTicket: "https://frontchapter.ir/product/conf1403/", + support: "https://t.me/FrontChapterSupport", +};