Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Landing Updates #638

Merged
merged 8 commits into from
Jan 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@
"@radix-ui/react-tooltip": "^1.0.7",
"@react-hook/throttle": "^2.2.0",
"@sendgrid/mail": "^7.4.6",
"@sentry/react": "^7.38.0",
"@sentry/tracing": "^7.38.0",
"@sentry/react": "^7.93.0",
"@sentry/tracing": "^7.93.0",
"@stripe/react-stripe-js": "^2.1.0",
"@stripe/stripe-js": "^1.52.1",
"@supabase/supabase-js": "^2.31.0",
Expand Down Expand Up @@ -96,7 +96,7 @@
"papaparse": "^5.4.1",
"phosphor-react": "^1.3.1",
"postcss-flexbugs-fixes": "^5.0.2",
"posthog-js": "^1.75.3",
"posthog-js": "^1.98.2",
"prettier": "^2.3.1",
"re-resizable": "^6.9.0",
"react": "^18.2.0",
Expand Down
100 changes: 100 additions & 0 deletions app/public/images/arrows-purple.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
50 changes: 35 additions & 15 deletions app/src/components/Checkout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,14 @@ import { PlanButton } from "./PlanButton";
import { PaymentStepperTitle } from "./PaymentStepperTitle";
import classNames from "classnames";

export function Checkout() {
export function Checkout({
pricing2,
}: {
/**
* Is this the updated pricing page?
*/
pricing2?: boolean;
}) {
const session = useSession();
const sessionEmail = session?.user?.email;
const { checkedSession, customerIsLoading } = useContext(AppContext);
Expand Down Expand Up @@ -56,16 +63,15 @@ export function Checkout() {
<div className="w-full h-full flex items-center justify-center">
<div className="grid justify-center justify-items-center">
<p className="text-lg text-wrap-balance text-center leading-normal">
<Trans>
You must{" "}
<Link
to={`/l?${searchParams.toString()}`}
className="font-bold underline hover:text-blue-500"
>
log in
</Link>{" "}
before you can upgrade to Pro.
</Trans>
<Link
to={`/l?${searchParams.toString()}`}
className={classNames("font-bold hover:text-blue-500", {
"text-white hover:text-white text-xl hover:scale-105 transition-transform":
pricing2,
})}
>
<Trans>Log in to upgrade your account</Trans>
</Link>
</p>
</div>
</div>
Expand All @@ -83,12 +89,25 @@ export function Checkout() {
if (isProUser) {
return (
<div className="w-full h-full flex items-center justify-center">
<p className="text-xl text-center text-wrap-balance leading-normal">
<p
className={classNames(
"text-xl text-center text-wrap-balance leading-normal",
{
"text-white": pricing2,
}
)}
>
<Trans>
You're already a Pro User!
<br />
Have questions or feature requests?{" "}
<Link to="/o" className="underline hover:text-blue-500 font-bold">
Have questions or feature requests?
<br />
<Link
to="/o"
className={classNames("hover:text-blue-500", {
"hover:text-white": pricing2,
})}
>
Let Us Know
</Link>
</Trans>
Expand All @@ -101,10 +120,11 @@ export function Checkout() {
<div className="relative h-full">
<div
className={classNames(
"grid content-center h-full rounded-xl p-8 pb-16 bg-gradient-to-br from-neutral-50 to-neutral-300/50 shadow-inner dark:to-blue-900/50 dark:from-blue-900/0",
"grid content-center h-full rounded-xl p-8 pb-16 bg-neutral-50 border dark:to-blue-900/50 dark:from-blue-900/0",
{
"opacity-60 pointer-events-none cursor-loading":
createCheckoutSession.isLoading,
"dark:bg-neutral-900 dark:border-none": pricing2,
}
)}
>
Expand Down
6 changes: 5 additions & 1 deletion app/src/components/PaymentStepperTitle.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import classNames from "classnames";

export function PaymentStepperTitle({
children,
className = "",
Expand All @@ -7,7 +9,9 @@ export function PaymentStepperTitle({
}) {
return (
<h2
className={`text-xl font-bold dark:text-neutral-100 text-wrap-balance leading-tight flex items-center justify-center gap-4 ${className}`}
className={classNames(
`text-xl font-bold dark:text-neutral-100 text-wrap-balance leading-tight flex items-center justify-center gap-4 ${className}`
)}
>
{children}
</h2>
Expand Down
5 changes: 3 additions & 2 deletions app/src/components/Router.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ const Sandbox = lazy(() => import("../pages/Sandbox"));
const EditHosted = lazy(() => import("../pages/EditHosted"));
/** Read only chart, encoded in url / maybe fullscreen */
const ReadOnly = lazy(() => import("../pages/ReadOnly"));
const Pricing = lazy(() => import("../pages/Pricing"));
// const Pricing = lazy(() => import("../pages/Pricing"));
const Pricing2 = lazy(() => import("../pages/Pricing2"));
const Blog = lazy(() => import("../pages/Blog"));
const Post = lazy(() => import("../pages/post/Post"));
const Changelog = lazy(() => import("../pages/Changelog"));
Expand All @@ -40,7 +41,7 @@ export default function Router() {
<Routes>
<Route path="/" element={<Wrapper />}>
<Route index element={<Sandbox />} />
<Route path="/pricing" element={<Pricing />} />
<Route path="/pricing" element={<Pricing2 />} />
{/* "y" for "your charts" */}
<Route
path="/y"
Expand Down
86 changes: 86 additions & 0 deletions app/src/index.css
Original file line number Diff line number Diff line change
Expand Up @@ -288,3 +288,89 @@ main .monaco-editor {
transform: translateX(100%);
}
}

.checkout-wrapper {
background-blend-mode: normal;
background: radial-gradient(circle, #8252eb, #8252eb 20%, #baabf2 120%) 0 0/100%
100%;
}

body.dark .checkout-wrapper {
background-blend-mode: normal;
background-color: #0000;
background-image: radial-gradient(
circle,
#8252eb8a,
#8252eb8a 0%,
#44108a5e 63%
),
conic-gradient(at 0 100%, #000, #000 30deg);
background-position: 0 0;
background-repeat: repeat, repeat;
background-size: 100% 100%;
background-attachment: scroll, scroll;
background-origin: padding-box, padding-box;
background-clip: border-box, border-box;
}

/**
* Add 3d effect to the product video based on mouse cursor location using CSS
and --mouse-x
--mouse-y custom properties
*/
.pricing-video {
transform: perspective(200px) rotateY(calc(var(--mouse-x) * 1deg))
rotateX(calc(var(--mouse-y) * -1deg));
transition: transform 0.1s ease-out;
}

.feature::after {
content: " ";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
opacity: 0;
z-index: -1;

background-blend-mode: darken;
background-color: #0000;
background-image: radial-gradient(
circle at 50% 125%,
#baabf2,
#baabf2 0%,
#fff 21%
),
radial-gradient(circle at 50% 125%, #baabf2, #baabf2 0%, #fff 49%);
background-position: 0 0;
background-repeat: repeat, repeat;
background-size: 100% 100%;
background-attachment: scroll, scroll;
background-origin: padding-box, padding-box;
background-clip: border-box, border-box;

@apply transition-opacity duration-[400ms];
}

.feature:hover::after {
opacity: 1;
}

body.dark .feature::after {
background-blend-mode: screen;
background-color: #0000;
background-image: radial-gradient(
circle at 50% 125%,
#baabf2,
#baabf2 0%,
#000 21%
),
radial-gradient(circle at 50% 125%, #baabf2, #baabf2 0%, #000 49%);
background-position: 0 0;
background-repeat: repeat, repeat;
background-size: 100% 100%;
background-attachment: scroll, scroll;
background-origin: padding-box, padding-box;
background-clip: border-box, border-box;
}
2 changes: 1 addition & 1 deletion app/src/locales/de/messages.js

Large diffs are not rendered by default.

Loading
Loading