chore: changed hero layout

This commit is contained in:
0xSage 2023-09-21 19:25:24 +08:00
parent 4ecbaf9b9c
commit bda152f654
5 changed files with 222 additions and 125 deletions

View File

@ -240,7 +240,7 @@ const config = {
additionalLanguages: ["python"], additionalLanguages: ["python"],
}, },
colorMode: { colorMode: {
defaultMode: "light", defaultMode: "dark",
disableSwitch: false, disableSwitch: false,
respectPrefersColorScheme: false, respectPrefersColorScheme: false,
}, },

View File

@ -1,8 +1,80 @@
import React from "react"; import React from "react";
import { useColorMode } from "@docusaurus/theme-common"; import { useColorMode } from "@docusaurus/theme-common";
import {
ArrowPathIcon,
CloudArrowUpIcon,
LockClosedIcon,
} from "@heroicons/react/20/solid";
const features = [
{
name: "Powerful models",
description:
"Commodo nec sagittis tortor mauris sed. Turpis tortor quis scelerisque diam id accumsan nullam tempus. Pulvinar etiam lacus volutpat eu. Phasellus praesent ligula sit faucibus.",
href: "#",
icon: CloudArrowUpIcon,
},
{
name: "AI that you control",
description:
"Pellentesque enim a commodo malesuada turpis eleifend risus. Facilisis donec placerat sapien consequat tempor fermentum nibh.",
href: "#",
icon: LockClosedIcon,
},
{
name: "Unlimited use",
description:
"Pellentesque sit elit congue ante nec amet. Dolor aenean curabitur viverra suspendisse iaculis eget. Nec mollis placerat ultricies euismod ut condimentum.",
href: "#",
icon: ArrowPathIcon,
},
];
export default function HomepageFeatures() { export default function HomepageFeatures() {
const { isDarkTheme } = useColorMode(); const { isDarkTheme } = useColorMode();
return (
return <div>Features section</div>; <div className="bg-white dark:bg-gray-900 py-12 sm:py-16">
<div className="mx-auto max-w-7xl px-6 lg:px-8">
<div className="mx-auto max-w-2xl lg:text-center">
<h2 className="text-base font-semibold leading-7 text-indigo-600 dark:text-indigo-400">
Deploy faster
</h2>
<p className="mt-2 text-3xl font-bold tracking-tight text-gray-900 dark:text-gray-300 sm:text-4xl">
Why Jan
</p>
<p className="mt-6 text-lg leading-8 text-gray-600 dark:text-gray-300">
Quis tellus eget adipiscing convallis sit sit eget aliquet quis.
Suspendisse eget egestas a elementum pulvinar et feugiat blandit at.
In mi viverra elit nunc.
</p>
</div>
<div className="mx-auto mt-16 max-w-2xl sm:mt-20 lg:mt-24 lg:max-w-none">
<dl className="grid max-w-xl grid-cols-1 gap-x-8 gap-y-16 lg:max-w-none lg:grid-cols-3">
{features.map((feature) => (
<div key={feature.name} className="flex flex-col">
<dt className="flex items-center gap-x-3 text-base font-semibold leading-7 text-gray-900 dark: text-white">
<feature.icon
className="h-5 w-5 flex-none text-indigo-600 dark:text-indigo-400"
aria-hidden="true"
/>
{feature.name}
</dt>
<dd className="mt-4 flex flex-auto flex-col text-base leading-7 text-gray-600 dark:text-gray-300">
<p className="flex-auto">{feature.description}</p>
<p className="mt-6">
<a
href={feature.href}
className="text-sm font-semibold leading-6 text-indigo-600 dark:text-indigo-400"
>
Learn more <span aria-hidden="true"></span>
</a>
</p>
</dd>
</div>
))}
</dl>
</div>
</div>
</div>
);
} }

View File

@ -6,137 +6,92 @@ export default function HomepageHero() {
const { isDarkTheme } = useColorMode(); const { isDarkTheme } = useColorMode();
return ( return (
<div className="relative isolate overflow-hidden bg-white dark:bg-gray-900"> <div className="bg-white dark:bg-gray-900">
{/* Background grid pattern */} <div className="relative isolate pt-14">
{isDarkTheme ? ( {/* Background top gradient styling */}
<svg {isDarkTheme ? (
className="absolute inset-0 -z-10 h-full w-full stroke-white/10 [mask-image:radial-gradient(100%_100%_at_top_right,white,transparent)]" <div
aria-hidden="true" className="absolute inset-x-0 -top-40 -z-10 transform-gpu overflow-hidden blur-3xl sm:-top-80"
> aria-hidden="true"
<defs> >
<pattern <div
id="983e3e4c-de6d-4c3f-8d64-b9761d1534cc" className="relative left-[calc(50%-11rem)] aspect-[1155/678] w-[36.125rem] -translate-x-1/2 rotate-[30deg] bg-gradient-to-tr from-[#ff80b5] to-[#9089fc] opacity-20 sm:left-[calc(50%-30rem)] sm:w-[72.1875rem]"
width={200} style={{
height={200} clipPath:
x="50%" "polygon(74.1% 44.1%, 100% 61.6%, 97.5% 26.9%, 85.5% 0.1%, 80.7% 2%, 72.5% 32.5%, 60.2% 62.4%, 52.4% 68.1%, 47.5% 58.3%, 45.2% 34.5%, 27.5% 76.7%, 0.1% 64.9%, 17.9% 100%, 27.6% 76.8%, 76.1% 97.7%, 74.1% 44.1%)",
y={-1} }}
patternUnits="userSpaceOnUse"
>
<path d="M.5 200V.5H200" fill="none" />
</pattern>
</defs>
<svg x="50%" y={-1} className="overflow-visible fill-gray-800/20">
<path
d="M-200 0h201v201h-201Z M600 0h201v201h-201Z M-400 600h201v201h-201Z M200 800h201v201h-201Z"
strokeWidth={0}
/> />
</svg> </div>
<rect ) : (
width="100%" <div
height="100%" className="absolute inset-x-0 -top-40 -z-10 transform-gpu overflow-hidden blur-3xl sm:-top-80"
strokeWidth={0} aria-hidden="true"
fill="url(#983e3e4c-de6d-4c3f-8d64-b9761d1534cc)" >
/> <div
</svg> className="relative left-[calc(50%-11rem)] aspect-[1155/678] w-[36.125rem] -translate-x-1/2 rotate-[30deg] bg-gradient-to-tr from-[#ff80b5] to-[#9089fc] opacity-30 sm:left-[calc(50%-30rem)] sm:w-[72.1875rem]"
) : ( style={{
<svg clipPath:
className="absolute inset-0 -z-10 h-full w-full stroke-gray-200 [mask-image:radial-gradient(100%_100%_at_top_right,white,transparent)]" "polygon(74.1% 44.1%, 100% 61.6%, 97.5% 26.9%, 85.5% 0.1%, 80.7% 2%, 72.5% 32.5%, 60.2% 62.4%, 52.4% 68.1%, 47.5% 58.3%, 45.2% 34.5%, 27.5% 76.7%, 0.1% 64.9%, 17.9% 100%, 27.6% 76.8%, 76.1% 97.7%, 74.1% 44.1%)",
aria-hidden="true" }}
> />
<defs> </div>
<pattern )}
id="0787a7c5-978c-4f66-83c7-11c213f99cb7"
width={200} {/* Main hero block */}
height={200} <div className="py-24 sm:py-32 lg:pb-40">
x="50%" <div className="mx-auto max-w-7xl px-6 lg:px-8">
y={-1} {/* Hero text and buttons */}
patternUnits="userSpaceOnUse" <div className="mx-auto max-w-2xl text-center">
> <h1 className="text-4xl font-bold tracking-tight text-gray-900 dark:text-white sm:text-6xl">
<path d="M.5 200V.5H200" fill="none" /> Run your own AI
</pattern> </h1>
</defs> <p className="mt-6 text-lg leading-8 text-gray-600 dark:text-gray-300">
<rect Anim aute id magna aliqua ad ad non deserunt sunt. Qui irure qui
width="100%" lorem cupidatat commodo. Elit sunt amet fugiat veniam occaecat
height="100%" fugiat aliqua.
strokeWidth={0} </p>
fill="url(#0787a7c5-978c-4f66-83c7-11c213f99cb7)" <div className="mt-10 flex items-center justify-center gap-x-6">
/> <a
</svg> href="#"
)} className="rounded-md bg-indigo-600 dark:bg-indigo-500 px-3.5 py-2.5 text-sm font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
{/* Background subtle gradient effect */} >
{isDarkTheme && ( Download (Mac Silicon)
</a>
<a
href="#"
className="text-sm font-semibold leading-6 text-gray-900 dark:text-white"
>
Book a Demo <span aria-hidden="true"></span>
</a>
</div>
</div>
{/* Desktop screenshot image full width */}
<img
src={
isDarkTheme
? require("@site/static/img/jan-app-screenshot-dark.png")
.default
: require("@site/static/img/jan-app-screenshot.png").default
}
alt="App screenshot"
width={2432}
className="mt-16 rounded-3xl bg-white/5 shadow-2xl ring-1 ring-white/10 sm:mt-24"
/>
</div>
</div>
{/* Background top gradient styling */}
<div <div
className="absolute left-[calc(50%-4rem)] top-10 -z-10 transform-gpu blur-3xl sm:left-[calc(50%-18rem)] lg:left-48 lg:top-[calc(50%-30rem)] xl:left-[calc(50%-24rem)]" className="absolute inset-x-0 top-[calc(100%-13rem)] -z-10 transform-gpu overflow-hidden blur-3xl sm:top-[calc(100%-30rem)]"
aria-hidden="true" aria-hidden="true"
> >
<div <div
className="aspect-[1108/632] w-[69.25rem] bg-gradient-to-r from-[#80caff] to-[#4f46e5] opacity-20" className="relative left-[calc(50%+3rem)] aspect-[1155/678] w-[36.125rem] -translate-x-1/2 bg-gradient-to-tr from-[#ff80b5] to-[#9089fc] opacity-30 sm:left-[calc(50%+36rem)] sm:w-[72.1875rem]"
style={{ style={{
clipPath: clipPath:
"polygon(73.6% 51.7%, 91.7% 11.8%, 100% 46.4%, 97.4% 82.2%, 92.5% 84.9%, 75.7% 64%, 55.3% 47.5%, 46.5% 49.4%, 45% 62.9%, 50.3% 87.2%, 21.3% 64.1%, 0.1% 100%, 5.4% 51.1%, 21.4% 63.9%, 58.9% 0.2%, 73.6% 51.7%)", "polygon(74.1% 44.1%, 100% 61.6%, 97.5% 26.9%, 85.5% 0.1%, 80.7% 2%, 72.5% 32.5%, 60.2% 62.4%, 52.4% 68.1%, 47.5% 58.3%, 45.2% 34.5%, 27.5% 76.7%, 0.1% 64.9%, 17.9% 100%, 27.6% 76.8%, 76.1% 97.7%, 74.1% 44.1%)",
}} }}
/> />
</div> </div>
)}
{/* Main hero content */}
<div className="mx-auto max-w-7xl px-6 pb-24 pt-10 sm:pb-32 lg:flex lg:px-8 lg:py-40">
<div className="mx-auto max-w-2xl flex-shrink-0 lg:mx-0 lg:max-w-xl lg:pt-8">
{/* App logo */}
<span role="img" aria-label="waving hand" className="h-11 text-4xl">
👋
</span>
{/* What's new */}
<div className="mt-24 sm:mt-32 lg:mt-16">
<a href="#" className="inline-flex space-x-6">
<span className="rounded-full bg-indigo-600/10 px-3 py-1 text-sm font-semibold leading-6 text-indigo-600 ring-1 ring-inset ring-indigo-600/10 dark:bg-indigo-500/10 dark:text-indigo-400 dark:ring-indigo-500/20">
What's new
</span>
<span className="inline-flex items-center space-x-2 text-sm font-medium leading-6 text-gray-600 dark:text-gray-300">
<span>Just shipped v0.1</span>
<ChevronRightIcon
className="h-5 w-5 text-gray-400 dark:text-gray-500"
aria-hidden="true"
/>
</span>
</a>
</div>
{/* Hero Title */}
<h1 className="mt-10 text-4xl font-bold tracking-tight text-gray-900 dark:text-white sm:text-6xl">
Run your own AI
</h1>
{/* Hero Subtitle */}
<p className="mt-6 text-lg leading-8 text-gray-600 dark:text-gray-300">
Free. Source available. Runs on your CPU and GPU with hardware
acceleration and collaboration mode.
</p>
{/* Download CTAs */}
<div className="mt-10 flex items-center gap-x-6">
<a
href="#"
className="rounded-md bg-indigo-600 dark:bg-indigo-500 px-3.5 py-2.5 text-sm font-semibold text-white shadow-sm hover:text-white hover:bg-indigo-500 dark:hover:bg-indigo-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 dark:focus-visible:outline-indigo-400"
>
Download on Mac
</a>
<a
href="#"
className="text-sm font-semibold leading-6 text-gray-900 dark:text-white hover:text-current"
>
Other Platforms <span aria-hidden="true"></span>
</a>
</div>
</div>
{/* App Screenshot */}
<div className="mx-auto mt-16 flex max-w-2xl sm:mt-24 lg:ml-10 lg:mr-0 lg:mt-0 lg:max-w-none lg:flex-none xl:ml-32">
<div className="max-w-3xl flex-none sm:max-w-5xl lg:max-w-none">
<img
src={require("@site/static/img/jan-app-screenshot.png").default}
alt="App screenshot"
width={2432}
className="w-[76rem] rounded-3xl shadow-2xl"
/>
</div>
</div>
</div> </div>
</div> </div>
); );

View File

@ -1,8 +1,78 @@
import React from "react"; import React from "react";
import { useColorMode } from "@docusaurus/theme-common"; import { useColorMode } from "@docusaurus/theme-common";
import {
CloudArrowUpIcon,
LockClosedIcon,
ServerIcon,
} from "@heroicons/react/20/solid";
const features = [
{
name: "Push to deploy.",
description:
"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores impedit perferendis suscipit eaque, iste dolor cupiditate blanditiis ratione.",
icon: CloudArrowUpIcon,
},
{
name: "SSL certificates.",
description:
"Anim aute id magna aliqua ad ad non deserunt sunt. Qui irure qui lorem cupidatat commodo.",
icon: LockClosedIcon,
},
{
name: "Database backups.",
description:
"Ac tincidunt sapien vehicula erat auctor pellentesque rhoncus. Et magna sit morbi lobortis.",
icon: ServerIcon,
},
];
export default function HomepageUseCases() { export default function HomepageUseCases() {
const { isDarkTheme } = useColorMode(); const { isDarkTheme } = useColorMode();
return <div>Use Cases Section</div>; return (
<div className="overflow-hidden bg-white dark:bg-gray-900 py-24 sm:py-32">
<div className="mx-auto max-w-7xl px-6 lg:px-8">
<div className="mx-auto grid max-w-2xl grid-cols-1 gap-x-8 gap-y-16 sm:gap-y-20 lg:mx-0 lg:max-w-none lg:grid-cols-2">
<div className="lg:ml-auto lg:pl-4 lg:pt-4">
<div className="lg:max-w-lg">
<h2 className="text-base font-semibold leading-7 text-indigo-600 dark:text-indigo-400">
Deploy faster
</h2>
<p className="mt-2 text-3xl font-bold tracking-tight text-gray-900 dark:text-white sm:text-4xl">
Why Jan
</p>
<p className="mt-6 text-lg leading-8 text-gray-600 dark:text-indigo-400">
Lorem ipsum, dolor sit amet consectetur adipisicing elit.
Maiores impedit perferendis suscipit eaque, iste dolor
cupiditate blanditiis ratione.
</p>
<dl className="mt-10 max-w-xl space-y-8 text-base leading-7 text-gray-600 dark:text-gray-300 lg:max-w-none">
{features.map((feature) => (
<div key={feature.name} className="relative pl-9">
<dt className="inline font-semibold text-gray-900 dark:text-gray-300">
<feature.icon
className="absolute left-1 top-1 h-5 w-5 text-indigo-600 dark:text-indigo-400"
aria-hidden="true"
/>
{feature.name}
</dt>{" "}
<dd className="inline">{feature.description}</dd>
</div>
))}
</dl>
</div>
</div>
<div className="flex items-start justify-end lg:order-first">
<img
src="https://tailwindui.com/img/component-images/dark-project-app-screenshot.png"
alt="Product screenshot"
className="w-[48rem] max-w-none rounded-xl shadow-xl ring-1 ring-gray-400/10 sm:w-[57rem]"
width={2432}
/>
</div>
</div>
</div>
</div>
);
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 KiB