style: 调整整体的头部、尾部,增加注册登录的插图

This commit is contained in:
sealday 2024-04-06 01:43:25 +08:00
parent 910bd2d4dc
commit a743e0be92
7 changed files with 75 additions and 79 deletions

20
app/components/logo.tsx Normal file
View File

@ -0,0 +1,20 @@
export default function Logo() {
return (
<svg
viewBox="0 0 1024 1024"
version="1.1"
fill="none"
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
xmlns="http://www.w3.org/2000/svg"
className="w-10 h-10 text-white p-2 bg-indigo-500 rounded-full"
>
<path
d="M982.408306 18.466839c-3.577415-16.618263-33.607551-23.264652-66.743305-14.767718l-298.185137 76.444925a9874.756874 9874.756874 0 0 1-120.706853 29.970589l-112.613009 27.061934c-33.264009 7.988492-68.51598 23.718127-78.355018 34.945074-9.839038 11.231527-17.882497 48.402752-17.882496 82.605775V708.413324l-62.162747-1.873448s-74.333288-2.258215-131.283361 57.353162c-68.996939 72.221651-79.390224 174.290216-23.214266 227.937706 56.171378 53.674974 157.64447 38.627842 226.65057-33.59839 37.125419-38.866031 44.614631-69.867245 44.614631-69.867245 8.029717-33.250267 14.644043-60.449618 14.694428-60.449618 0.054967 0 0.096192-27.982626 0.096192-62.19023V409.417428c0-34.203023 27.098579-69.175581 60.220591-77.704579l440.292355-113.410025c33.122012-8.528998 60.220591 12.472858 60.220591 46.675882v204.187515c0 34.207604-27.982626 62.199391-62.18565 62.208553 0 0-63.110922 0.022903-115.136895 54.476571-65.140109 68.204502-74.956244 164.593176-21.93171 215.267884 53.056598 50.674709 148.895605 36.452077 214.044875-31.743264 35.132877-36.795619 41.394499-62.895636 41.394499-62.895636 7.979331-33.259429 14.547851-60.467941 14.593657-60.467941 0.050386 0 0.08245-27.982626 0.08245-62.185649V110.856685c0.004581-34.203023-2.922396-75.776164-6.504392-92.389846zM321.136111 730.271745l-1.749773-1.676484c-2.001704-1.731451-1.868867-2.070412 0.288575-0.746631 2.157443 1.323781 3.920957 2.972782 3.920957 3.673607 0 0.700825-0.723728 0.503861-1.612356-0.430572 0.004581-0.009161 0.004581-0.009161-0.847403-0.81992z"
fill="#fff"
></path>
</svg>
);
}

View File

@ -2,6 +2,7 @@ import type { Metadata } from "next";
import { Inter } from "next/font/google"; import { Inter } from "next/font/google";
import "./globals.css"; import "./globals.css";
import SignoutButton from "./components/signout-button"; import SignoutButton from "./components/signout-button";
import Logo from "./components/logo";
const inter = Inter({ subsets: ["latin"] }); const inter = Inter({ subsets: ["latin"] });
@ -24,38 +25,27 @@ export default function RootLayout({
href="#" href="#"
className="flex title-font font-medium items-center text-gray-900 mb-4 md:mb-0" className="flex title-font font-medium items-center text-gray-900 mb-4 md:mb-0"
> >
<svg <Logo />
xmlns="http://www.w3.org/2000/svg"
fill="none"
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
className="w-10 h-10 text-white p-2 bg-indigo-500 rounded-full"
viewBox="0 0 24 24"
>
<path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"></path>
</svg>
<span className="ml-3 text-xl"></span> <span className="ml-3 text-xl"></span>
</a> </a>
<nav className="md:ml-auto md:mr-auto flex flex-wrap items-center text-base justify-center"> <nav className="md:ml-auto md:mr-auto flex flex-wrap items-center text-base justify-center">
<a href="#" className="mr-5 hover:text-gray-900"> <a href="#" className="mr-5 hover:text-gray-900">
First Link
</a> </a>
<a href="#" className="mr-5 hover:text-gray-900"> <a href="#" className="mr-5 hover:text-gray-900">
Second Link
</a> </a>
<a href="#" className="mr-5 hover:text-gray-900"> <a href="#" className="mr-5 hover:text-gray-900">
Third Link AI
</a> </a>
<a href="#" className="mr-5 hover:text-gray-900"> <a href="#" className="mr-5 hover:text-gray-900">
Fourth Link
</a> </a>
</nav> </nav>
<SignoutButton className="inline-flex items-center bg-gray-100 border-0 py-1 px-3 focus:outline-none hover:bg-gray-200 rounded text-base mt-4 md:mt-0" /> <SignoutButton className="inline-flex items-center bg-gray-100 border-0 py-1 px-3 focus:outline-none hover:bg-gray-200 rounded text-base mt-4 md:mt-0" />
</div> </div>
</header> </header>
<main className="min-h-[50vh]">{children}</main> <main>{children}</main>
<footer className="text-gray-600 body-font"> <footer className="text-gray-600 body-font">
<div className="container px-5 py-24 mx-auto flex md:items-center lg:items-start md:flex-row md:flex-nowrap flex-wrap flex-col"> <div className="container px-5 py-24 mx-auto flex md:items-center lg:items-start md:flex-row md:flex-nowrap flex-wrap flex-col">
<div className="w-64 flex-shrink-0 md:mx-0 mx-auto text-center md:text-left"> <div className="w-64 flex-shrink-0 md:mx-0 mx-auto text-center md:text-left">
@ -63,129 +53,113 @@ export default function RootLayout({
href="#" href="#"
className="flex title-font font-medium items-center md:justify-start justify-center text-gray-900" className="flex title-font font-medium items-center md:justify-start justify-center text-gray-900"
> >
<svg <Logo />
xmlns="http://www.w3.org/2000/svg" <span className="ml-3 text-xl"></span>
fill="none"
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
className="w-10 h-10 text-white p-2 bg-indigo-500 rounded-full"
viewBox="0 0 24 24"
>
<path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"></path>
</svg>
<span className="ml-3 text-xl">Tailblocks</span>
</a> </a>
<p className="mt-2 text-sm text-gray-500"> <p className="mt-2 text-sm text-gray-500">
Air plant banjo lyft occupy retro adaptogen indego
</p> </p>
</div> </div>
<div className="flex-grow flex flex-wrap md:pl-20 -mb-10 md:mt-0 mt-10 md:text-left text-center"> <div className="flex-grow flex flex-wrap md:pl-20 -mb-10 md:mt-0 mt-10 md:text-left text-center">
<div className="lg:w-1/4 md:w-1/2 w-full px-4"> <div className="lg:w-1/4 md:w-1/2 w-full px-4">
<h2 className="title-font font-medium text-gray-900 tracking-widest text-sm mb-3"> <h2 className="title-font font-medium text-gray-900 tracking-widest text-sm mb-3">
CATEGORIES
</h2> </h2>
<nav className="list-none mb-10"> <nav className="list-none mb-10">
<li> <li>
<a href="#" className="text-gray-600 hover:text-gray-800"> <a href="#" className="text-gray-600 hover:text-gray-800">
First Link
</a> </a>
</li> </li>
<li> <li>
<a href="#" className="text-gray-600 hover:text-gray-800"> <a href="#" className="text-gray-600 hover:text-gray-800">
Second Link
</a> </a>
</li> </li>
<li> <li>
<a href="#" className="text-gray-600 hover:text-gray-800"> <a href="#" className="text-gray-600 hover:text-gray-800">
Third Link
</a> </a>
</li> </li>
<li> <li>
<a href="#" className="text-gray-600 hover:text-gray-800"> <a href="#" className="text-gray-600 hover:text-gray-800">
Fourth Link
</a> </a>
</li> </li>
</nav> </nav>
</div> </div>
<div className="lg:w-1/4 md:w-1/2 w-full px-4"> <div className="lg:w-1/4 md:w-1/2 w-full px-4">
<h2 className="title-font font-medium text-gray-900 tracking-widest text-sm mb-3"> <h2 className="title-font font-medium text-gray-900 tracking-widest text-sm mb-3">
CATEGORIES
</h2> </h2>
<nav className="list-none mb-10"> <nav className="list-none mb-10">
<li> <li>
<a href="#" className="text-gray-600 hover:text-gray-800"> <a href="#" className="text-gray-600 hover:text-gray-800">
First Link
</a> </a>
</li> </li>
<li> <li>
<a href="#" className="text-gray-600 hover:text-gray-800"> <a href="#" className="text-gray-600 hover:text-gray-800">
Second Link
</a> </a>
</li> </li>
<li> <li>
<a href="#" className="text-gray-600 hover:text-gray-800"> <a href="#" className="text-gray-600 hover:text-gray-800">
Third Link
</a> </a>
</li> </li>
<li> <li>
<a href="#" className="text-gray-600 hover:text-gray-800"> <a href="#" className="text-gray-600 hover:text-gray-800">
Fourth Link
</a> </a>
</li> </li>
</nav> </nav>
</div> </div>
<div className="lg:w-1/4 md:w-1/2 w-full px-4"> <div className="lg:w-1/4 md:w-1/2 w-full px-4">
<h2 className="title-font font-medium text-gray-900 tracking-widest text-sm mb-3"> <h2 className="title-font font-medium text-gray-900 tracking-widest text-sm mb-3">
CATEGORIES AI
</h2> </h2>
<nav className="list-none mb-10"> <nav className="list-none mb-10">
<li> <li>
<a href="#" className="text-gray-600 hover:text-gray-800"> <a href="#" className="text-gray-600 hover:text-gray-800">
First Link
</a> </a>
</li> </li>
<li> <li>
<a href="#" className="text-gray-600 hover:text-gray-800"> <a href="#" className="text-gray-600 hover:text-gray-800">
Second Link
</a> </a>
</li> </li>
<li> <li>
<a href="#" className="text-gray-600 hover:text-gray-800"> <a href="#" className="text-gray-600 hover:text-gray-800">
Third Link
</a> </a>
</li> </li>
<li> <li>
<a href="#" className="text-gray-600 hover:text-gray-800"> <a href="#" className="text-gray-600 hover:text-gray-800">
Fourth Link
</a> </a>
</li> </li>
</nav> </nav>
</div> </div>
<div className="lg:w-1/4 md:w-1/2 w-full px-4"> <div className="lg:w-1/4 md:w-1/2 w-full px-4">
<h2 className="title-font font-medium text-gray-900 tracking-widest text-sm mb-3"> <h2 className="title-font font-medium text-gray-900 tracking-widest text-sm mb-3">
CATEGORIES
</h2> </h2>
<nav className="list-none mb-10"> <nav className="list-none mb-10">
<li> <li>
<a href="#" className="text-gray-600 hover:text-gray-800"> <a href="#" className="text-gray-600 hover:text-gray-800">
First Link
</a> </a>
</li> </li>
<li> <li>
<a href="#" className="text-gray-600 hover:text-gray-800"> <a href="#" className="text-gray-600 hover:text-gray-800">
Second Link
</a> </a>
</li> </li>
<li> <li>
<a href="#" className="text-gray-600 hover:text-gray-800"> <a href="#" className="text-gray-600 hover:text-gray-800">
Third Link
</a>
</li>
<li>
<a href="#" className="text-gray-600 hover:text-gray-800">
Fourth Link
</a> </a>
</li> </li>
</nav> </nav>

View File

@ -8,16 +8,13 @@ export default function Home() {
<div className="container mx-auto flex px-5 py-24 md:flex-row flex-col items-center"> <div className="container mx-auto flex px-5 py-24 md:flex-row flex-col items-center">
<div className="lg:flex-grow md:w-1/2 lg:pr-24 md:pr-16 flex flex-col md:items-start md:text-left mb-16 md:mb-0 items-center text-center"> <div className="lg:flex-grow md:w-1/2 lg:pr-24 md:pr-16 flex flex-col md:items-start md:text-left mb-16 md:mb-0 items-center text-center">
<h1 className="title-font sm:text-4xl text-3xl mb-4 font-medium text-gray-900"> <h1 className="title-font sm:text-4xl text-3xl mb-4 font-medium text-gray-900">
Before they sold out
<br className="hidden lg:inline-block" /> <br className="hidden lg:inline-block" />
readymade gluten
</h1> </h1>
<p className="mb-8 leading-relaxed"> <p className="mb-8 leading-relaxed">
Copper mug try-hard pitchfork pour-over freegan heirloom neutra air
plant cold-pressed tacos poke beard tote bag. Heirloom echo park
mlkshk tote bag selvage hot chicken authentic tumeric truffaut
hexagon try-hard chambray.
</p> </p>
<div className="flex justify-center"> <div className="flex justify-center">
<Link <Link
@ -27,7 +24,7 @@ export default function Home() {
</Link> </Link>
<button className="ml-4 inline-flex text-gray-700 bg-gray-100 border-0 py-2 px-6 focus:outline-none hover:bg-gray-200 rounded text-lg"> <button className="ml-4 inline-flex text-gray-700 bg-gray-100 border-0 py-2 px-6 focus:outline-none hover:bg-gray-200 rounded text-lg">
Button
</button> </button>
</div> </div>
</div> </div>

View File

@ -1,8 +1,11 @@
"use client"; "use client";
import { signin } from "@/app/lib/actions/auth"; import { signin } from "@/app/lib/actions/auth";
import Image from "next/image";
import Link from "next/link"; import Link from "next/link";
import { useFormState, useFormStatus } from "react-dom"; import { useFormState, useFormStatus } from "react-dom";
import signinSvg from '@/app/signin/signin.svg';
export default function Page() { export default function Page() {
const [errorMessage, dispatch] = useFormState(signin, undefined); const [errorMessage, dispatch] = useFormState(signin, undefined);
@ -11,13 +14,12 @@ export default function Page() {
<section className="text-gray-600 body-font"> <section className="text-gray-600 body-font">
<div className="container px-5 py-24 mx-auto flex flex-wrap items-center"> <div className="container px-5 py-24 mx-auto flex flex-wrap items-center">
<div className="lg:w-3/5 md:w-1/2 md:pr-16 lg:pr-0 pr-0"> <div className="lg:w-3/5 md:w-1/2 md:pr-16 lg:pr-0 pr-0">
<h1 className="title-font font-medium text-3xl text-gray-900"> <Image
Slow-carb next level shoindcgoitch ethical authentic, poko scenester width={600}
</h1> className="object-cover object-center rounded"
<p className="leading-relaxed mt-4"> alt="signin"
Poke slow-carb mixtape knausgaard, typewriter street art gentrify src={signinSvg}
hammock starladder roathse. Craies vegan tousled etsy austin. />
</p>
</div> </div>
<form <form
action={dispatch} action={dispatch}

1
app/signin/signin.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 52 KiB

View File

@ -3,6 +3,8 @@
import { signup } from "@/app/lib/actions/auth"; import { signup } from "@/app/lib/actions/auth";
import Link from "next/link"; import Link from "next/link";
import { useFormState, useFormStatus } from "react-dom"; import { useFormState, useFormStatus } from "react-dom";
import signupSvg from "@/app/signup/signup.svg";
import Image from "next/image";
export default function Page() { export default function Page() {
const [errorMessage, dispatch] = useFormState(signup, undefined); const [errorMessage, dispatch] = useFormState(signup, undefined);
@ -11,13 +13,12 @@ export default function Page() {
<section className="text-gray-600 body-font"> <section className="text-gray-600 body-font">
<div className="container px-5 py-24 mx-auto flex flex-wrap items-center"> <div className="container px-5 py-24 mx-auto flex flex-wrap items-center">
<div className="lg:w-3/5 md:w-1/2 md:pr-16 lg:pr-0 pr-0"> <div className="lg:w-3/5 md:w-1/2 md:pr-16 lg:pr-0 pr-0">
<h1 className="title-font font-medium text-3xl text-gray-900"> <Image
Slow-carb next level shoindcgoitch ethical authentic, poko scenester width={600}
</h1> className="object-cover object-center rounded"
<p className="leading-relaxed mt-4"> alt="signup"
Poke slow-carb mixtape knausgaard, typewriter street art gentrify src={signupSvg}
hammock starladder roathse. Craies vegan tousled etsy austin. />
</p>
</div> </div>
<form <form
action={dispatch} action={dispatch}
@ -72,7 +73,9 @@ export default function Page() {
/> />
</div> </div>
<SignupButton className="text-white bg-indigo-500 border-0 py-2 px-8 focus:outline-none hover:bg-indigo-600 rounded text-lg" /> <SignupButton className="text-white bg-indigo-500 border-0 py-2 px-8 focus:outline-none hover:bg-indigo-600 rounded text-lg" />
<Link href="/signin" className="btn btn-link"></Link> <Link href="/signin" className="btn btn-link">
</Link>
{errorMessage ? ( {errorMessage ? (
<p className="text-xs text-red-400 mt-3">{errorMessage}</p> <p className="text-xs text-red-400 mt-3">{errorMessage}</p>
) : null} ) : null}
@ -82,7 +85,6 @@ export default function Page() {
); );
} }
// export default function Page() { // export default function Page() {
// const [errorMessage, dispatch] = useFormState(signup, undefined); // const [errorMessage, dispatch] = useFormState(signup, undefined);
@ -122,4 +124,3 @@ function SignupButton({ className }: { className: string | undefined }) {
</button> </button>
); );
} }

1
app/signup/signup.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 73 KiB