Skip to content

Commit

Permalink
[ENH]:Pricing Section should be added below teams section,updated bot…
Browse files Browse the repository at this point in the history
…tom component, fixed button sizes,refactored codebase (#25)
  • Loading branch information
PJharwal authored Nov 3, 2024
1 parent dae9cf3 commit e5d409b
Show file tree
Hide file tree
Showing 25 changed files with 957 additions and 7,203 deletions.
9 changes: 6 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,14 @@ jobs:
with:
node-version: '20'

- name: Install pnpm
run: npm i -g pnpm

- name: Install Dependencies
run: npm install
run: pnpm install

- name: Lint Test
run: npm run lint
run: pnpm run lint

- name: Run Build
run: npm run build
run: pnpm run build
2 changes: 1 addition & 1 deletion app/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { Metadata } from "next";
import { Space_Grotesk } from 'next/font/google';
import "./globals.css";
import Navbar from "@/components/Navbar";
import Navbar from "@/components/main/navbar/Navbar";

export const metadata: Metadata = {
title: "Create Next App",
Expand Down
14 changes: 9 additions & 5 deletions app/page.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@

import Accordian from "@/components/Accordian";
import ContactPage from "@/components/Contact";
import HeroSection from "@/components/main/Hero";
import Accordian from "@/components/main/accordian/Accordian";
import { Bottom } from "@/components/main/bottom/Bottom";
import ContactPage from "@/components/main/contact/Contact";
import HeroSection from "@/components/main/hero/Hero";
import PricingSection from "@/components/Pricing/PricingSection";

import Services from "@/components/Services";
import TeamPage from "@/components/Team";
import Services from "@/components/main/services/Services";
import TeamPage from "@/components/main/team/Team";

export default function Home() {
return (
Expand All @@ -13,7 +15,9 @@ export default function Home() {
<Services />
<Accordian/>
<TeamPage/>
<PricingSection/>
<ContactPage/>
<Bottom/>
</>
);
}
11 changes: 11 additions & 0 deletions app/pricing/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import PricingSection from "@/components/Pricing/PricingSection"

const page = ()=> {

return (
<div>
<PricingSection/>
</div>
)
}
export default page;
55 changes: 55 additions & 0 deletions components/Pricing/GrowthCard.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import { Check} from "lucide-react"
import { Button } from "@/components/ui/button"
import { Card } from "@/components/ui/card"
import Link from "next/link"

export const GrowthCard = () => {
return(
<Card className="relative bg-white rounded-3xl p-8 shadow-2xl flex flex-col justify-between transition-all duration-300 hover:shadow-[0_0_30px_rgba(255,255,255,0.2)] hover:scale-105 border border-gray-200">
<div>
<div className="absolute -top-3 left-6">
<span className="bg-gray-800 text-white px-4 py-1.5 rounded-full text-sm shadow-lg">
Ongoing Support
</span>
</div>
<div className="inline-block bg-gray-800 text-white px-4 py-1.5 rounded-full text-sm mb-6 shadow-lg">
Monthly Retainer
</div>
<h2 className="text-2xl font-bold mb-2 text-gray-800">Growth Retainer Package</h2>
<div className="mb-4">
<span className="text-4xl font-bold text-gray-800">$2497/month</span>
</div>
<p className="text-gray-600 mb-8">No commitment, cancel anytime</p>

<div className="mb-8">
<h3 className="text-xl font-semibold mb-4 text-gray-800">Dedicated Monthly Services:</h3>
<ul className="space-y-4">
{[
"60 hours of development time per month",
"Flexible hours allocation",
"Weekly strategy calls",
"Priority feature development",
"Continuous maintenance & optimization",
"Same-day emergency support"
].map((feature, index) => (
<li key={index} className="flex items-center gap-3">
<div className="bg-gray-800 rounded-full p-1 shadow-md">
<Check className="w-4 h-4 text-white" />
</div>
<span className="text-gray-600">{feature}</span>
</li>
))}
</ul>
</div>
</div>

<Link href="https://cal.com/acex-labs" target="_blank">
<div className="space-y-4">
<Button className="w-full bg-gray-800 text-white hover:bg-gray-700 rounded-xl py-6 text-lg transition-all duration-300 shadow-lg hover:shadow-xl">
Schedule a Call →
</Button>
</div>
</Link>
</Card>
)
}
58 changes: 58 additions & 0 deletions components/Pricing/MvpCard.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import { Check} from "lucide-react"
import { Button } from "@/components/ui/button"
import { Card } from "@/components/ui/card"
import Link from "next/link"


export const MvpCard = () => {

return (
<Card className="relative bg-white rounded-3xl p-8 shadow-2xl flex flex-col justify-between transition-all duration-300 hover:shadow-[0_0_30px_rgba(255,255,255,0.2)] hover:scale-105 border border-gray-200">
<div>
<div className="absolute -top-3 left-6">
<span className="bg-gray-800 text-white px-4 py-1.5 rounded-full text-sm font-medium shadow-lg">
Most Popular
</span>
</div>
<div className="inline-block bg-gray-800 text-white px-4 py-1.5 rounded-full text-sm mb-6 shadow-lg">
One time
</div>
<h2 className="text-2xl font-bold mb-2 text-gray-800">MVP Development Package</h2>
<div className="mb-4">
<span className="text-4xl font-bold text-gray-800">Starting at $1997</span>
</div>
<p className="text-red-600 mb-8">20% off for early adopters</p>

<div className="mb-8">
<h3 className="text-xl font-semibold mb-4 text-gray-800">What&apos;s Included:</h3>
<ul className="space-y-4">
{[
"Complete MVP development in 2-3 weeks",
"Web application/ Mobile App",
"Modern, scalable tech stack",
"Seamless integrations (payments, auth, etc.)",
"30 days of free maintenance",
"Personalized, founder-led development",
"Regular updates and transparent process"
].map((feature, index) => (
<li key={index} className="flex items-center gap-3">
<div className="bg-gray-800 rounded-full p-1 shadow-md">
<Check className="w-4 h-4 text-white" />
</div>
<span className="text-gray-600">{feature}</span>
</li>
))}
</ul>
</div>
</div>

<Link href="https://cal.com/acex-labs" target="_blank">
<div className="space-y-4">
<Button className="w-full bg-gray-800 text-white hover:bg-gray-700 rounded-xl py-6 text-lg transition-all duration-300 shadow-lg hover:shadow-xl">
Get Started Now →
</Button>
</div>
</Link>
</Card>
)
}
35 changes: 35 additions & 0 deletions components/Pricing/PricingSection.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
'use client'

import { Button } from "@/components/ui/button"
import { usePathname, useRouter } from "next/navigation"
import { MvpCard } from "./MvpCard"
import { StartupCard } from "./StartupCard"
import { GrowthCard } from "./GrowthCard"

export default function Component() {
const router = useRouter();
const currentPath = usePathname();

return (
<div className="container mx-auto px-4 py-16 max-w-7xl ">
<div className="grid md:grid-cols-3 gap-8">
{/* MVP Development Package Card */}
<MvpCard/>
{/* Startup Booster Package Card */}
<StartupCard/>
{/* Growth Retainer Package Card */}
<GrowthCard/>
</div>
{ currentPath === '/' &&
<div className="mx-auto flex justify-center items-center">
<Button variant="outline" className="w-auto mt-12 text-white border-white hover:bg-white hover:text-black rounded-xl py-4 px-8 text-sm transition-all duration-300"
onClick={()=>{
router.push("/pricing");
}}>
View Details
</Button>
</div>
}
</div>
)
}
55 changes: 55 additions & 0 deletions components/Pricing/StartupCard.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import { Check } from "lucide-react";
import Link from "next/link";
import { Button } from "../ui/button";
import { Card } from "../ui/card";

export const StartupCard = () => {
return (
<Card className="relative bg-black rounded-3xl p-8 shadow-2xl flex flex-col justify-between transition-all duration-300 hover:shadow-[0_0_30px_rgba(255,255,255,0.2)] hover:scale-105 border border-gray-700">
<div>
<div className="inline-block bg-white text-black px-4 py-1.5 rounded-full text-sm mb-6 shadow-lg">
Quarterly Plan
</div>
<h2 className="text-2xl font-bold mb-2 text-white">
Startup Booster Package
</h2>
<div className="mb-4">
<span className="text-4xl font-bold text-white">$4997/quarter</span>
</div>
<p className="text-gray-400 mb-8">Billed quarterly, 3-month minimum</p>

<div className="mb-8">
<h3 className="text-xl font-semibold mb-4 text-white">
What&apos;s Included:
</h3>
<ul className="space-y-4">
{[
"120 hours of development time per quarter",
"Bi-weekly strategy calls",
"Priority bug fixes and feature updates",
"Quarterly performance review",
"Dedicated project manager",
"Scalability planning and implementation",
"24/7 emergency support",
].map((feature, index) => (
<li key={index} className="flex items-center gap-3">
<div className="bg-white rounded-full p-1 shadow-md">
<Check className="w-4 h-4 text-black" />
</div>
<span className="text-gray-300">{feature}</span>
</li>
))}
</ul>
</div>
</div>

<Link href="https://cal.com/acex-labs" target="_blank">
<div className="space-y-4">
<Button className="w-full bg-white text-black hover:bg-gray-200 rounded-xl py-6 text-lg transition-all duration-300 shadow-lg hover:shadow-xl">
Start Your Journey →
</Button>
</div>
</Link>
</Card>
);
};
2 changes: 1 addition & 1 deletion components/Team/Team.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"use client";
import Container from "../Container";
import Container from "../shared/Container";
import {
TopLeftShiningLight,
TopRightShiningLight,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@

import { Process } from '@/data/process'
import Container from './Container'
import Container from '../../shared/Container'
import AccordionItem from './AccordianItem'
import Topic from './Topic'
import Topic from '../../shared/Topic'

export default function Accordian() {
return (
Expand Down
File renamed without changes.
36 changes: 36 additions & 0 deletions components/main/bottom/Bottom.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/* eslint-disable @next/next/no-img-element */
import Link from "next/link"
import Container from "../../shared/Container"

export const Bottom = () => {
return (
<Container>
<div className="flex-row items-center my-6 p-14 bg-gray-900 rounded-[45px]">
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
<div className="justify-start items-center gap-[275px] flex">
<div className="flex-col justify-start items-start gap-[26px] inline-flex text-white">
<div className="text-3xl font-medium">
Let’s make things happen
</div>
<div className="text-lg font-normal">
Contact us today to learn more about how our digital marketing
services can help your business grow and succeed online.
</div>
<Link
href="/"
className="px-[35px] py-5 bg- text-white hover:border:1px_solid_rgba(255,255,255,.1)] hover:[box-shadow:0_-20px_80px_-20px_#8686f01f_inset] border rounded-[14px] justify-start items-start gap-2.5 inline-flex"
>
<div className="text-center text-xl font-normal leading-7">
Get your free proposal
</div>
</Link>
</div>
</div>
<div className="hidden md:grid justify-items-center -m-20 invert ">
<img src="/services/Illustration.svg" width="50%" alt="cat" />
</div>
</div>
</div>
</Container>
)
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
"use client"

import { useState, FormEvent } from 'react';
import Container from './Container';
import Topic from './Topic';
import Container from '../../shared/Container';
import Topic from '../../shared/Topic';
import Image from 'next/image';


Expand Down
8 changes: 4 additions & 4 deletions components/main/Hero.tsx → components/main/hero/Hero.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
TopLeftShiningLight,
TopRightShiningLight,
} from "@/components/farmui/ShinyLights";
import Container from "../Container";
import Container from "../../shared/Container";
import Link from "next/link";

export default function FUIDarkHeroSectionWithScrolls() {
Expand Down Expand Up @@ -49,13 +49,13 @@ export default function FUIDarkHeroSectionWithScrolls() {
into impactful digital experiences.
</p>
</div>
<div className="flex max-sm:flex-col md:gap-4 ">
<div className="flex max-sm:flex-col md:gap-4">
<Link href="https://cal.com/acex-labs" target="_blank">
<button className="flex gap-2 justify-center items-center py-2 px-10 mt-5 text-lg tracking-tighter text-center bg-gradient-to-br rounded-xl ring-2 ring-offset-2 transition-all hover:ring-transparent group/button w-fit from-zinc-100 to-zinc-300 font-geist text-md text-zinc-900 ring-zinc-500/80 ring-offset-zinc-950 hover:scale-[1.02] active:scale-[0.98] active:ring-zinc-500/70">
<button className="flex gap-2 justify-center items-center py-2 px-10 mt-5 text-lg tracking-tighter text-center bg-gradient-to-br rounded-xl ring-2 ring-offset-2 transition-all hover:ring-transparent group/button w-fit from-zinc-100 to-zinc-300 font-geist text-md text-zinc-900 ring-zinc-500/80 ring-offset-zinc-950 hover:scale-[1.02] active:scale-[0.98] active:ring-zinc-500/70 max-md:mr-4">
Book a call
</button>
</Link>
<button className="flex gap-2 justify-center items-center py-2 px-10 mt-5 text-lg tracking-tighter text-center bg-black rounded-xl ring-2 ring-offset-2 transition-all hover:ring-transparent group/button w-fit font-geist text-md text-white ring-white/80 ring-offset-black hover:scale-[1.02] active:scale-[0.98] active:ring-white/70">
<button className="flex gap-2 justify-center items-center py-2 max-sm:px-4 px-10 mt-5 text-lg tracking-tighter text-center bg-black rounded-xl ring-2 ring-offset-2 transition-all hover:ring-transparent group/button w-fit font-geist text-md text-white ring-white/80 ring-offset-black hover:scale-[1.02] active:scale-[0.98] active:ring-white/70">
Share your vision
</button>
</div>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"use client";
import { useState } from "react";
import Link from "next/link";
import Container from "./Container";
import Container from "../../shared/Container";
import { menuItems } from "@/data/menuitems";

const Navigation = () => {
Expand Down
Loading

0 comments on commit e5d409b

Please sign in to comment.