[website] Add keycard page (#430)

This commit is contained in:
Pavel 2023-06-29 14:39:06 +01:00 committed by GitHub
parent 823273bc26
commit 274fd1a299
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 192 additions and 0 deletions

View File

@ -16,6 +16,7 @@ export const ROUTES = {
{ name: 'Mobile', href: '/platforms/mobile' }, { name: 'Mobile', href: '/platforms/mobile' },
{ name: 'Desktop', href: '/platforms/desktop' }, { name: 'Desktop', href: '/platforms/desktop' },
{ name: 'Web', href: '/platforms/web' }, { name: 'Web', href: '/platforms/web' },
{ name: 'Keycard', href: '/keycard' },
], ],
About: [ About: [
{ name: 'Mission', href: '/' }, { name: 'Mission', href: '/' },

View File

@ -0,0 +1,191 @@
import keycardImage from '@assets/homepage/illustration-keycard.png'
import sectionImage1 from '@assets/wallet/section-01.png'
import { Button, Tag, Text } from '@status-im/components'
import { KeycardIcon, PlayIcon } from '@status-im/icons'
import Image from 'next/image'
import { Section } from '@/components/cards'
import { FeatureList } from '@/components/feature-list'
import { VideoSection } from '@/components/video-section'
import { illustrations } from '@/config/illustrations'
import { stickers } from '@/config/stickers'
import { AppLayout, Content } from '@/layouts/app-layout'
import type { Page } from 'next'
const KeycardPage: Page = () => {
return (
<Content>
<div className="relative grid grid-cols-2 items-center gap-[140px] overflow-hidden py-40">
<Image
src={keycardImage}
alt="Hand holding a green keycard"
width={742}
height={720}
/>
<div className="grid max-w-[518px]">
<div className="mb-4 flex">
<Tag size={32} label="Keycard" />
</div>
<h1 className="mb-6 text-88">Status is better with Keycard</h1>
<Text size={27}>
The most secure, simple and open hardware wallet
</Text>
<div className="flex">
<div className="flex gap-2 rounded-2xl border border-dashed border-neutral-80/20 p-2">
<Button variant="primary" iconAfter={<KeycardIcon size={20} />}>
Get a Keycard
</Button>
<Button variant="outline" icon={<PlayIcon size={20} />}>
Watch demo
</Button>
</div>
</div>
</div>
</div>
<div>
<div className="container px-40 pb-20 pt-40">
<h2 className="text-64">
Intuitive security.
<br />
For everyday use.
</h2>
</div>
<FeatureList list={FEATURE_LIST} />
</div>
<VideoSection
title="Fully integrated with Status"
description="Get offline private key management, transaction authorization, and two-factor authentication."
/>
<div className="pb-20">
<Section
icon="skull"
color="yellow"
title="True multi-chain experience"
description="All networks, all the time. See all your assets and NFTs in one place, even if spread across multiple blockchains."
image={sectionImage1}
imageAlt="wallet-2"
secondaryTitle="Can be used as single chain at a time wallet"
secondaryDescription="You are in full control of what you own, and no one except your self can ever recover or access your private keys"
/>
<Section
icon="skull"
color="yellow"
title="Protect your identity"
description="Keycard allows you to create a profile and login to Status in the most secure fashion."
image={sectionImage1}
imageAlt="wallet-2"
secondaryTitle="Easily migrate to a new device"
secondaryDescription="Holding keycard and your pin code, you can migrate your whole Status experience to a new device"
reverse
/>
</div>
<div className="relative border-t border-dashed border-neutral-30">
<Image
{...stickers.cube}
alt={stickers.cube.alt}
className="absolute bottom-8 left-8"
/>
<Image
{...stickers.gamepad}
alt={stickers.gamepad.alt}
className="absolute left-1/2 top-0 -translate-y-1/2"
/>
<Image
{...stickers.megaphone}
alt={stickers.megaphone.alt}
className="absolute right-8 top-8"
/>
<div className="container flex justify-center divide-x divide-dashed divide-neutral-30 lg:px-30">
{PREFOOTER_LIST.map(({ title, description, tags }) => (
<div key={title} className="px-10 py-40">
<div className="mb-6 gap-1">
<h3>
<Text size={27} weight="semibold">
{title}
</Text>
</h3>
<Text size={19}>{description}</Text>
</div>
<div className="flex gap-2">
{tags.map(tag => (
<Tag key={tag} size={32} label={tag} />
))}
</div>
</div>
))}
</div>
</div>
</Content>
)
}
const FEATURE_LIST = [
{
title: 'Top tier security',
description:
'Our hardware security successfully passed Common Criteria EAL6+ certification ',
image: illustrations.doge,
},
{
title: 'Keys stored in the card',
description:
'Its impossible for Status or any government to extract your private keys from keycard',
image: illustrations.mushroom,
},
{
title: 'Feature 3',
description:
'Here will say something more about security and how kc is revolutionary when it comes to security',
image: illustrations.hand,
},
{
title: 'Mobile friendly',
description:
'Keycard is using NFC which is natively embedded in all mobile phones',
image: illustrations.duck,
},
{
title: 'No need to charge',
description: 'Keycard has no battery so its always ready to go.',
image: illustrations.flower,
},
{
title: 'Easy to carry around',
description:
'Its credit card form factor is small and convenient to fit in any wallet.',
image: illustrations.megaphone,
},
]
const PREFOOTER_LIST = [
{
title: 'Open standards',
description:
'We use key management that is following open and commonly used standards. ',
tags: ['bip-32', 'bip-39', 'bip-44'],
},
{
title: 'Easy to integrate',
description:
'Integrate keycard as a hardware wallet with your mobile or desktop apps with our SDKs.',
tags: ['Walleth', 'EnnoWallet'],
},
{
title: 'Full customizable',
description:
'We can support you with design, manufacturing, and fulfillment of your custom cards.',
tags: ['getkeycard@status.im'],
},
] as const
KeycardPage.getLayout = page => <AppLayout>{page}</AppLayout>
export default KeycardPage