mirror of
https://github.com/formbricks/formbricks.git
synced 2025-12-30 10:19:51 -06:00
chore: tweak billing page for clarity (#2028)
This commit is contained in:
@@ -112,7 +112,7 @@ export default function PricingTableComponent({
|
||||
unlimited: false,
|
||||
},
|
||||
{
|
||||
title: "Multi Language Surveys",
|
||||
title: "Multi-Language Surveys",
|
||||
comingSoon: true,
|
||||
},
|
||||
{
|
||||
@@ -153,11 +153,15 @@ export default function PricingTableComponent({
|
||||
comingSoon: false,
|
||||
},
|
||||
{
|
||||
title: "File Uploads upto 1 GB",
|
||||
title: "File Uploads up to 1 GB",
|
||||
comingSoon: false,
|
||||
},
|
||||
{
|
||||
title: "Custom Domain",
|
||||
comingSoon: true,
|
||||
},
|
||||
{
|
||||
title: "Multi Language Surveys",
|
||||
title: "Multi-Language Surveys",
|
||||
comingSoon: true,
|
||||
},
|
||||
];
|
||||
@@ -255,11 +259,13 @@ export default function PricingTableComponent({
|
||||
</defs>
|
||||
</svg>
|
||||
<div className="mx-auto max-w-md text-center lg:mx-0 lg:flex-auto lg:py-16 lg:text-left">
|
||||
<h2 className="text-2xl font-bold text-white sm:text-3xl">Get the most out of Formbricks</h2>
|
||||
<h2 className="text-2xl font-bold text-white sm:text-3xl">
|
||||
Unlock the full power of Formbricks, for free.
|
||||
</h2>
|
||||
<p className="text-md mt-6 leading-8 text-slate-300">
|
||||
Get access to all features by upgrading to a paid plan.
|
||||
Add a credit card, get access to all features.
|
||||
<br />
|
||||
With our metered billing you will not be charged until you exceed the free tier limits.{" "}
|
||||
You will <b>not</b> be charged until you exceed the free tier limits.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -267,8 +273,8 @@ export default function PricingTableComponent({
|
||||
)}
|
||||
|
||||
<PricingCard
|
||||
title={"Core & App Surveys"}
|
||||
subtitle={"Get up to 250 free responses every month"}
|
||||
title={"Formbricks Core & Surveys"}
|
||||
subtitle={"Get 250 responses free every month"}
|
||||
featureName={ProductFeatureKeys[ProductFeatureKeys.inAppSurvey]}
|
||||
monthlyPrice={0}
|
||||
actionText={"Starting at"}
|
||||
@@ -291,7 +297,7 @@ export default function PricingTableComponent({
|
||||
/>
|
||||
|
||||
<PricingCard
|
||||
title={"Link Survey"}
|
||||
title={"Link Survey Pro"}
|
||||
subtitle={"Link Surveys include unlimited surveys and responses for free."}
|
||||
featureName={ProductFeatureKeys[ProductFeatureKeys.linkSurvey]}
|
||||
monthlyPrice={30}
|
||||
@@ -304,8 +310,8 @@ export default function PricingTableComponent({
|
||||
/>
|
||||
|
||||
<PricingCard
|
||||
title={"User Targeting"}
|
||||
subtitle={"Target up to 2500 users every month"}
|
||||
title={"User Identification"}
|
||||
subtitle={"Identify up to 2.500 users every month"}
|
||||
featureName={ProductFeatureKeys[ProductFeatureKeys.userTargeting]}
|
||||
monthlyPrice={0}
|
||||
actionText={"Starting at"}
|
||||
|
||||
@@ -17,7 +17,7 @@ export const BillingSlider = React.forwardRef<React.ElementRef<typeof SliderPrim
|
||||
ref={ref}
|
||||
className={cn("relative flex w-full touch-none select-none items-center", className)}
|
||||
{...props}>
|
||||
<SliderPrimitive.Track className="relative h-2 w-full grow overflow-hidden rounded-full bg-slate-300">
|
||||
<SliderPrimitive.Track className="relative h-2 w-full grow overflow-hidden rounded-r-full bg-slate-300">
|
||||
<div
|
||||
style={{ width: `calc(${Math.min(value / max, 0.93) * 100}%)` }}
|
||||
className="absolute h-full bg-slate-800"></div>
|
||||
@@ -26,12 +26,12 @@ export const BillingSlider = React.forwardRef<React.ElementRef<typeof SliderPrim
|
||||
width: `${((freeTierLimit - value) / max) * 100}%`,
|
||||
left: `${(value / max) * 100}%`,
|
||||
}}
|
||||
className="absolute h-full bg-slate-500"></div>
|
||||
className="absolute h-full bg-slate-400"></div>
|
||||
</SliderPrimitive.Track>
|
||||
|
||||
<div
|
||||
style={{ left: `calc(${Math.min(value / max, 0.93) * 100}%)` }}
|
||||
className="absolute mt-4 h-6 w-px bg-slate-500"></div>
|
||||
className="absolute mt-4 h-6 w-px bg-slate-400"></div>
|
||||
|
||||
<div
|
||||
style={{ left: `calc(${Math.min(value / max, 0.93) * 100}% + 0.5rem)` }}
|
||||
@@ -48,7 +48,7 @@ export const BillingSlider = React.forwardRef<React.ElementRef<typeof SliderPrim
|
||||
className="absolute mt-4 h-6 w-px bg-slate-300"></div>
|
||||
<div
|
||||
style={{ left: `calc(${(freeTierLimit / max) * 100}% + 0.5rem)` }}
|
||||
className="absolute mt-12 text-sm text-slate-700">
|
||||
className="absolute mt-16 text-sm text-slate-700">
|
||||
<p className="text-xs">
|
||||
Free Tier Limit
|
||||
<br />
|
||||
|
||||
@@ -66,7 +66,7 @@ export const PricingCard = ({
|
||||
<Badge text="Cancelling at End of this Month" size="normal" type="warning" />
|
||||
) : null}
|
||||
|
||||
<p className=" whitespace-pre-wrap text-sm text-slate-600">{subtitle}</p>
|
||||
<p className=" mt-1 whitespace-pre-wrap text-sm text-slate-600">{subtitle}</p>
|
||||
|
||||
{metric && perMetricCharge && (
|
||||
<div className="rounded-xl bg-slate-100 py-4 dark:bg-slate-800">
|
||||
@@ -95,9 +95,9 @@ export const PricingCard = ({
|
||||
<div className="flex py-3">
|
||||
<div className="w-3/5">
|
||||
{team.billing.features[featureNameKey].status === "inactive" && (
|
||||
<p className=" whitespace-pre-wrap text-sm text-slate-600">
|
||||
<p className="whitespace-pre-wrap text-sm leading-6 text-slate-600">
|
||||
You're on the <b>Free plan</b> in {title}.<br />
|
||||
Upgrade now to unlock the below features:
|
||||
Upgrade now to unlock the following:
|
||||
</p>
|
||||
)}
|
||||
|
||||
@@ -118,8 +118,7 @@ export const PricingCard = ({
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div className="w-1/5"></div>
|
||||
<div className="w-1/5">
|
||||
<div className="ml-6 flex w-2/5 flex-col items-end space-y-2">
|
||||
{!team.billing.features[featureNameKey].unlimited && (
|
||||
<div className="my-2">
|
||||
{team.billing.features[featureNameKey].status !== "inactive" ? (
|
||||
@@ -160,12 +159,8 @@ export const PricingCard = ({
|
||||
</div>
|
||||
)}
|
||||
{team.billing.features[featureNameKey].status === "inactive" && (
|
||||
<Button
|
||||
variant="darkCTA"
|
||||
className="w-full justify-center py-2 text-white shadow-sm"
|
||||
loading={loading}
|
||||
onClick={() => onUpgrade()}>
|
||||
Upgrade
|
||||
<Button variant="darkCTA" loading={loading} onClick={() => onUpgrade()}>
|
||||
Upgrade {title !== "Link Survey Pro" ? "for free" : "now"}
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user