feat: update marketing site

Signed-off-by: Adithya Krishna <adithya@documenso.com>
This commit is contained in:
Adithya Krishna
2024-02-16 17:54:23 +05:30
committed by Mythie
parent 53d18eb3c8
commit deea6b1535
8 changed files with 64 additions and 11 deletions

View File

@ -5,6 +5,7 @@ import React, { useEffect, useState } from 'react';
import { usePathname } from 'next/navigation'; import { usePathname } from 'next/navigation';
import { cn } from '@documenso/ui/lib/utils'; import { cn } from '@documenso/ui/lib/utils';
import { AnnouncementBar } from '@documenso/ui/primitives/announcement-bar';
import { Footer } from '~/components/(marketing)/footer'; import { Footer } from '~/components/(marketing)/footer';
import { Header } from '~/components/(marketing)/header'; import { Header } from '~/components/(marketing)/header';
@ -38,6 +39,7 @@ export default function MarketingLayout({ children }: MarketingLayoutProps) {
'bg-background/50 backdrop-blur-md': scrollY > 5, 'bg-background/50 backdrop-blur-md': scrollY > 5,
})} })}
> >
<AnnouncementBar isShown={true} />
<Header className="mx-auto h-16 max-w-screen-xl px-4 md:h-20 lg:px-8" /> <Header className="mx-auto h-16 max-w-screen-xl px-4 md:h-20 lg:px-8" />
</div> </div>

View File

@ -40,9 +40,9 @@ export const Callout = ({ starCount }: CalloutProps) => {
className="rounded-full bg-transparent backdrop-blur-sm" className="rounded-full bg-transparent backdrop-blur-sm"
onClick={onSignUpClick} onClick={onSignUpClick}
> >
Get the Early Adopters Plan Claim Community Plan
<span className="bg-primary dark:text-background -mr-2.5 ml-2.5 rounded-full px-2 py-1.5 text-xs"> <span className="bg-primary dark:text-background -mr-2.5 ml-2.5 rounded-full px-2 py-1.5 text-xs font-medium">
$30/mo. forever! -80%
</span> </span>
</Button> </Button>

View File

@ -74,6 +74,15 @@ export const Header = ({ className, ...props }: HeaderProps) => {
> >
Sign in Sign in
</Link> </Link>
<Link
href="https://app.documenso.com/signin"
target="_blank"
className="text-muted-foreground hover:text-muted-foreground/80 text-sm font-semibold"
>
<span className="bg-primary dark:text-background rounded-full px-3 py-2 text-xs">
Sign up
</span>
</Link>
</div> </div>
<HamburgerMenu <HamburgerMenu

View File

@ -3,7 +3,8 @@
import Image from 'next/image'; import Image from 'next/image';
import Link from 'next/link'; import Link from 'next/link';
import { Variants, motion } from 'framer-motion'; import type { Variants } from 'framer-motion';
import { motion } from 'framer-motion';
import { usePlausible } from 'next-plausible'; import { usePlausible } from 'next-plausible';
import { LuGithub } from 'react-icons/lu'; import { LuGithub } from 'react-icons/lu';
import { match } from 'ts-pattern'; import { match } from 'ts-pattern';
@ -113,9 +114,9 @@ export const Hero = ({ className, ...props }: HeroProps) => {
className="rounded-full bg-transparent backdrop-blur-sm" className="rounded-full bg-transparent backdrop-blur-sm"
onClick={onSignUpClick} onClick={onSignUpClick}
> >
Get the Early Adopters Plan Claim Community Plan
<span className="bg-primary dark:text-background -mr-2.5 ml-2.5 rounded-full px-2 py-1.5 text-xs"> <span className="bg-primary dark:text-background -mr-2.5 ml-2.5 rounded-full px-2 py-1.5 text-xs font-medium">
$30/mo. forever! -80%
</span> </span>
</Button> </Button>

View File

@ -50,6 +50,10 @@ export const MENU_NAVIGATION_LINKS = [
href: 'https://app.documenso.com/signin', href: 'https://app.documenso.com/signin',
text: 'Sign in', text: 'Sign in',
}, },
{
href: 'https://app.documenso.com/signup',
text: 'Sign up',
},
]; ];
export const MobileNavigation = ({ isMenuOpen, onMenuOpenChange }: MobileNavigationProps) => { export const MobileNavigation = ({ isMenuOpen, onMenuOpenChange }: MobileNavigationProps) => {
@ -104,7 +108,13 @@ export const MobileNavigation = ({ isMenuOpen, onMenuOpenChange }: MobileNavigat
onClick={() => handleMenuItemClick()} onClick={() => handleMenuItemClick()}
target={target} target={target}
> >
{text} {href === 'https://app.documenso.com/signup' ? (
<span className="bg-primary dark:text-background rounded-full px-3 py-2 text-xl">
{text}
</span>
) : (
text
)}
</Link> </Link>
</motion.div> </motion.div>
))} ))}

View File

@ -199,7 +199,7 @@ export const Widget = ({ className, children, ...props }: WidgetProps) => {
className="bg-foreground/5 col-span-12 flex flex-col rounded-2xl p-6 lg:col-span-5" className="bg-foreground/5 col-span-12 flex flex-col rounded-2xl p-6 lg:col-span-5"
onSubmit={handleSubmit(onFormSubmit)} onSubmit={handleSubmit(onFormSubmit)}
> >
<h3 className="text-2xl font-semibold">Sign up for the early adopters plan</h3> <h3 className="text-2xl font-semibold">Sign up to Community Plan</h3>
<p className="text-muted-foreground mt-2 text-xs"> <p className="text-muted-foreground mt-2 text-xs">
with Timur Ercan & Lucas Smith from Documenso with Timur Ercan & Lucas Smith from Documenso
</p> </p>
@ -220,7 +220,7 @@ export const Widget = ({ className, children, ...props }: WidgetProps) => {
<Input <Input
id="email" id="email"
type="email" type="email"
placeholder="" placeholder="your@example.com"
className="bg-background w-full pr-16" className="bg-background w-full pr-16"
disabled={isSubmitting} disabled={isSubmitting}
onKeyDown={(e) => onKeyDown={(e) =>

View File

@ -0,0 +1,30 @@
import Link from 'next/link';
interface AnnouncementBarProps {
isShown: boolean;
}
export const AnnouncementBar: React.FC<AnnouncementBarProps> = ({ isShown }) => {
return (
isShown && (
<div className="flex h-full w-full items-center justify-center gap-4 border-b-2 bg-green-400 p-1">
<div className="text-center">
<span className="text-sm text-gray-800">
Claim your documenso public profile URL now!
</span>{' '}
<span className="text-sm font-medium text-gray-800">documenso.com/u/yourname</span>
</div>
<div className="flex items-center justify-center gap-4 rounded-lg bg-white px-3 py-1">
<div className="text-xs text-gray-900">
<Link
href="https://app.documenso.com"
>
Claim now
</Link>
</div>
</div>
</div>
)
);
};

View File

@ -3,7 +3,8 @@
import * as React from 'react'; import * as React from 'react';
import * as TogglePrimitive from '@radix-ui/react-toggle'; import * as TogglePrimitive from '@radix-ui/react-toggle';
import { VariantProps, cva } from 'class-variance-authority'; import type { VariantProps } from 'class-variance-authority';
import { cva } from 'class-variance-authority';
import { cn } from '../lib/utils'; import { cn } from '../lib/utils';