Skip to content

Commit

Permalink
feat(web): Add Pricing Page (#243)
Browse files Browse the repository at this point in the history
Co-authored-by: Sawan Bhattacharya <74916308+kriptonian1@users.noreply.github.com>
Co-authored-by: Rajdip Bhattacharya <agentR47@gmail.com>
  • Loading branch information
3 people committed Jul 11, 2024
1 parent 6694fc3 commit 2c7f1d6
Show file tree
Hide file tree
Showing 19 changed files with 659 additions and 815 deletions.
2 changes: 1 addition & 1 deletion apps/web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
"@tsparticles/slim": "^3.3.0",
"@types/mdx": "^2.0.13",
"clsx": "^2.1.0",
"framer-motion": "^11.0.6",
"framer-motion": "^11.2.9",
"geist": "^1.2.2",
"next": "^13.5.6",
"react": "^18.2.0",
Expand Down
Binary file added apps/web/public/pricing/grid.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions apps/web/public/pricing/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import ProjectSVG from './project.svg'
import UserSVG from './user.svg'
import SupportSVG from './support.svg'
import TickSVG from './tick.svg'
import StarsLeftSVG from './stars_left.svg'
import StarsRightSVG from './stars_right.svg'

export { ProjectSVG, UserSVG, SupportSVG, TickSVG, StarsLeftSVG, StarsRightSVG }
16 changes: 16 additions & 0 deletions apps/web/public/pricing/project.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 30 additions & 0 deletions apps/web/public/pricing/stars_left.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 30 additions & 0 deletions apps/web/public/pricing/stars_right.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 19 additions & 0 deletions apps/web/public/pricing/support.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 15 additions & 0 deletions apps/web/public/pricing/tick.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 14 additions & 0 deletions apps/web/public/pricing/user.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
68 changes: 68 additions & 0 deletions apps/web/src/app/(main)/pricing/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
'use client'

import { useState } from 'react'
import AnimatedTab from '@/components/ui/animated-tabs'
import { ColorBGSVG } from '@public/hero'
import PriceCard from '@/components/pricing/card'
import { PriceCardsData, tabsData } from '@/constants/pricing'

function About(): React.JSX.Element {
const [activeTab, setActiveTab] = useState<string>(tabsData[0].id)

return (
<div className="relative flex flex-col items-center justify-center ">
<ColorBGSVG className="absolute -z-10 h-screen w-screen" />

<div className="pb-4 pt-14">
<h3 className="w-24 rounded-full border-[1px] border-white border-opacity-[.04] bg-white bg-opacity-5 p-2 text-center text-xs uppercase tracking-widest text-white md:text-sm">
pricing
</h3>
</div>

<h1 className="text-brandBlue/90 w-[25rem] text-center text-4xl font-extralight md:w-auto md:text-6xl">
<span className="self-center font-bold tracking-wide">
Transparent Pricing
</span>
</h1>
<span className="text-brandBlue/80 mt-5 w-[20rem] text-center text-sm md:mt-9 md:w-[35rem] md:text-xl">
Keyshade combines enterprise-grade capabilities with simplicity offering
plans tailored to users of all levels.
</span>
<div className="mt-8 md:mt-12">
<AnimatedTab
activeTab={activeTab}
setActiveTab={setActiveTab}
tabs={tabsData}
/>
</div>
<div className="flex h-fit w-fit justify-center">
<div className="mt-10 w-fit md:mt-20 ">
<div className="grid grid-cols-1 gap-10 md:grid-cols-2 lg:grid-cols-4 ">
{PriceCardsData.map((card) => (
<PriceCard
PricingType={activeTab}
description={card.description}
isPopular={card.isPopular}
key={card.title}
miscFeatures={card.miscFeatures}
price={card.price}
spaceAccessSpecifier={card.spaceAccessSpecifier}
spaceEnvironment={card.spaceEnvironment}
spaceIntegerations={card.spaceIntegerations}
spaceLiveSupport={card.spaceLiveSupport}
spaceProjects={card.spaceProjects}
spaceSecrets={card.spaceSecrets}
spaceUsers={card.spaceUsers}
spaceWorkspace={card.spaceWorkspace}
title={card.title}
yearlyPrice={card.yearlyPrice}
/>
))}
</div>
</div>
</div>
</div>
)
}

export default About
Loading

0 comments on commit 2c7f1d6

Please sign in to comment.