starter首页

This commit is contained in:
tangly1024.com
2024-02-22 17:10:13 +08:00
parent 1d03e32bdd
commit f39f067a0a
24 changed files with 812 additions and 864 deletions

View File

@@ -11,28 +11,28 @@ export const About = () => {
{/* <!-- ====== About Section Start --> */}
<section
id="about"
class="bg-gray-1 pb-8 pt-20 dark:bg-dark-2 lg:pb-[70px] lg:pt-[120px]"
className="bg-gray-1 pb-8 pt-20 dark:bg-dark-2 lg:pb-[70px] lg:pt-[120px]"
>
<div class="container">
<div class="wow fadeInUp" data-wow-delay=".2s">
<div class="-mx-4 flex flex-wrap items-center">
<div className="container">
<div className="wow fadeInUp" data-wow-delay=".2s">
<div className="-mx-4 flex flex-wrap items-center">
{/* 左侧的文字说明板块 */}
<div class="w-full px-4 lg:w-1/2">
<div class="mb-12 max-w-[540px] lg:mb-0">
<div className="w-full px-4 lg:w-1/2">
<div className="mb-12 max-w-[540px] lg:mb-0">
<h2
class="mb-5 text-3xl font-bold leading-tight text-dark dark:text-white sm:text-[40px] sm:leading-[1.2]"
className="mb-5 text-3xl font-bold leading-tight text-dark dark:text-white sm:text-[40px] sm:leading-[1.2]"
>
{siteConfig('STARTER_ABOUT_TITLE', null, CONFIG)}
</h2>
<p class="mb-10 text-base leading-relaxed text-body-color dark:text-dark-6"
<p className="mb-10 text-base leading-relaxed text-body-color dark:text-dark-6"
dangerouslySetInnerHTML={
{ __html: siteConfig('STARTER_ABOUT_TEXT', null, CONFIG) }
}></p>
<a
href={siteConfig('STARTER_ABOUT_BUTTON_URL', null, CONFIG)}
class="inline-flex items-center justify-center rounded-md border border-primary bg-primary px-7 py-3 text-center text-base font-medium text-white hover:border-blue-dark hover:bg-blue-dark"
className="inline-flex items-center justify-center rounded-md border border-primary bg-primary px-7 py-3 text-center text-base font-medium text-white hover:border-blue-dark hover:bg-blue-dark"
>
{siteConfig('STARTER_ABOUT_BUTTON_TEXT', null, CONFIG)}
</a>
@@ -40,49 +40,49 @@ export const About = () => {
</div>
{/* 右侧的图片海报 */}
<div class="w-full px-4 lg:w-1/2">
<div class="-mx-2 flex flex-wrap sm:-mx-4 lg:-mx-2 xl:-mx-4">
<div class="w-full px-2 sm:w-1/2 sm:px-4 lg:px-2 xl:px-4">
<div className="w-full px-4 lg:w-1/2">
<div className="-mx-2 flex flex-wrap sm:-mx-4 lg:-mx-2 xl:-mx-4">
<div className="w-full px-2 sm:w-1/2 sm:px-4 lg:px-2 xl:px-4">
<div
class="mb-4 sm:mb-8 sm:h-[400px] md:h-[540px] lg:h-[400px] xl:h-[500px]"
className="mb-4 sm:mb-8 sm:h-[400px] md:h-[540px] lg:h-[400px] xl:h-[500px]"
>
<img
src={siteConfig('STARTER_ABOUT_IMAGE_1', null, CONFIG)}
alt="about image"
class="h-full w-full object-cover object-center"
className="h-full w-full object-cover object-center"
/>
</div>
</div>
<div class="w-full px-2 sm:w-1/2 sm:px-4 lg:px-2 xl:px-4">
<div className="w-full px-2 sm:w-1/2 sm:px-4 lg:px-2 xl:px-4">
<div
class="mb-4 sm:mb-8 sm:h-[220px] md:h-[346px] lg:mb-4 lg:h-[225px] xl:mb-8 xl:h-[310px]"
className="mb-4 sm:mb-8 sm:h-[220px] md:h-[346px] lg:mb-4 lg:h-[225px] xl:mb-8 xl:h-[310px]"
>
<img
src={siteConfig('STARTER_ABOUT_IMAGE_2', null, CONFIG)}
alt="about image"
class="h-full w-full object-cover object-center"
className="h-full w-full object-cover object-center"
/>
</div>
<div
class="relative z-10 mb-4 flex items-center justify-center overflow-hidden bg-primary px-6 py-12 sm:mb-8 sm:h-[160px] sm:p-5 lg:mb-4 xl:mb-8"
className="relative z-10 mb-4 flex items-center justify-center overflow-hidden bg-primary px-6 py-12 sm:mb-8 sm:h-[160px] sm:p-5 lg:mb-4 xl:mb-8"
>
<div>
<span class="block text-5xl font-extrabold text-white">
<span className="block text-5xl font-extrabold text-white">
{siteConfig('STARTER_ABOUT_TIPS_1', null, CONFIG)}
</span>
<span class="block text-base font-semibold text-white">
<span className="block text-base font-semibold text-white">
{siteConfig('STARTER_ABOUT_TIPS_2', null, CONFIG)}
</span>
<span
class="block text-base font-medium text-white text-opacity-70"
className="block text-base font-medium text-white text-opacity-70"
>
{siteConfig('STARTER_ABOUT_TIPS_3', null, CONFIG)}
</span>
</div>
<div>
<span class="absolute left-0 top-0 -z-10">
<span className="absolute left-0 top-0 -z-10">
<svg
width="106"
height="144"
@@ -118,7 +118,7 @@ export const About = () => {
</defs>
</svg>
</span>
<span class="absolute right-0 top-0 -z-10">
<span className="absolute right-0 top-0 -z-10">
<svg
width="130"
height="97"
@@ -154,7 +154,7 @@ export const About = () => {
</defs>
</svg>
</span>
<span class="absolute bottom-0 right-0 -z-10">
<span className="absolute bottom-0 right-0 -z-10">
<svg
width="175"
height="104"

View File

@@ -2,67 +2,72 @@
import { siteConfig } from '@/lib/config'
import CONFIG from '../config'
export const Blog = () => {
export const Blog = (props) => {
const count = siteConfig('STARTER_BLOG_COUNT', 3, CONFIG)
const posts = props?.allNavPages
? props.allNavPages.slice(0, count)
: []
return <>
{/* <!-- ====== Blog Section Start --> */}
<section class="bg-white pb-10 pt-20 dark:bg-dark lg:pb-20 lg:pt-[120px]">
<div class="container mx-auto">
<section className="bg-white pb-10 pt-20 dark:bg-dark lg:pb-20 lg:pt-[120px]">
<div className="container mx-auto">
{/* 区块标题文字 */}
<div class="-mx-4 flex flex-wrap justify-center">
<div class="w-full px-4">
<div class="mx-auto mb-[60px] max-w-[485px] text-center">
<span class="mb-2 block text-lg font-semibold text-primary">
<div className="-mx-4 flex flex-wrap justify-center">
<div className="w-full px-4">
<div className="mx-auto mb-[60px] max-w-[485px] text-center">
<span className="mb-2 block text-lg font-semibold text-primary">
{siteConfig('STARTER_BLOG_TITLE', null, CONFIG)}
</span>
<h2
class="mb-4 text-3xl font-bold text-dark dark:text-white sm:text-4xl md:text-[40px] md:leading-[1.2]"
className="mb-4 text-3xl font-bold text-dark dark:text-white sm:text-4xl md:text-[40px] md:leading-[1.2]"
>
{siteConfig('STARTER_BLOG_TEXT_1', null, CONFIG)}
</h2>
<p dangerouslySetInnerHTML={
{ __html: siteConfig('STARTER_BLOG_TEXT_2', null, CONFIG) }
} class="text-base text-body-color dark:text-dark-6">
} className="text-base text-body-color dark:text-dark-6">
</p>
</div>
</div>
</div>
{/* 博客列表 此处优先展示3片文章 */}
<div class="-mx-4 flex flex-wrap">
<div class="w-full px-4 md:w-1/2 lg:w-1/3">
<div class="wow fadeInUp group mb-10" data-wow-delay=".1s">
<div class="mb-8 overflow-hidden rounded-[5px]">
<a href="blog-details.html" class="block">
<div className="-mx-4 flex flex-wrap">
{posts?.map((item, index) => {
return <div key={index} className="w-full px-4 md:w-1/2 lg:w-1/3">
<div className="wow fadeInUp group mb-10" data-wow-delay=".1s">
<div className="mb-8 overflow-hidden rounded-[5px]">
<a href="blog-details.html" className="block">
<img
src="/images/starter/blog/blog-01.jpg"
alt="image"
class="w-full transition group-hover:rotate-6 group-hover:scale-125"
src={item.pageCoverThumbnail}
alt={item.title}
className="w-full transition group-hover:rotate-6 group-hover:scale-125"
/>
</a>
</div>
<div>
<span
class="mb-6 inline-block rounded-[5px] bg-primary px-4 py-0.5 text-center text-xs font-medium leading-loose text-white"
className="mb-6 inline-block rounded-[5px] bg-primary px-4 py-0.5 text-center text-xs font-medium leading-loose text-white"
>
Dec 22, 2023
{item.publishDay}
</span>
<h3>
<a
class="mb-4 inline-block text-xl font-semibold text-dark hover:text-primary dark:text-white dark:hover:text-primary sm:text-2xl lg:text-xl xl:text-2xl"
className="mb-4 inline-block text-xl font-semibold text-dark hover:text-primary dark:text-white dark:hover:text-primary sm:text-2xl lg:text-xl xl:text-2xl"
>
Meet AutoManage, the best AI management tools
{item.title}
</a>
</h3>
<p
class="max-w-[370px] text-base text-body-color dark:text-dark-6"
className="max-w-[370px] text-base text-body-color dark:text-dark-6"
>
Lorem Ipsum is simply dummy text of the printing and
typesetting industry.
{item.summary}
</p>
</div>
</div>
</div>
}) }
</div>
</div>
</section>

View File

@@ -1,72 +1,34 @@
/* eslint-disable @next/next/no-img-element */
import CONFIG from '../config'
/**
* 合作伙伴
* @returns
*/
export const Brand = () => {
return <>
{/* <!-- ====== Brands Section Start --> */}
<section class="pb-20 dark:bg-dark">
<div class="container px-4">
<section className="pb-20 dark:bg-dark">
<div className="container px-4">
<div
class="-mx-4 flex flex-wrap items-center justify-center gap-8 xl:gap-11"
className="-mx-4 flex flex-wrap items-center justify-center gap-8 xl:gap-11"
>
<a href="https://graygrids.com/">
{CONFIG.STARTER_BRANDS?.map((item, index) => {
return <a key={index} href={item.URL}>
<img
src="/images/starter/brands/graygrids.svg"
alt="graygrids"
class="dark:hidden"
src={item.IMAGE}
alt={item.TITLE}
className="dark:hidden"
/>
<img
src="/images/starter/brands/graygrids-white.svg"
alt="graygrids"
class="hidden dark:block"
/>
</a>
<a href="https://lineicons.com/">
<img
src="/images/starter/brands/lineicons.svg"
alt="lineicons"
class="dark:hidden"
/>
<img
src="/images/starter/brands/lineicons-white.svg"
alt="graygrids"
class="hidden dark:block"
/>
</a>
<a href="https://uideck.com/">
<img
src="/images/starter/brands/uideck.svg"
alt="uideck"
class="dark:hidden"
/>
<img
src="/images/starter/brands/uideck-white.svg"
alt="graygrids"
class="hidden dark:block"
/>
</a>
<a href="https://ayroui.com/">
<img
src="/images/starter/brands/ayroui.svg"
alt="ayroui"
class="dark:hidden"
/>
<img
src="/images/starter/brands/ayroui-white.svg"
alt="graygrids"
class="hidden dark:block"
/>
</a>
<a href="https://tailgrids.com/">
<img
src="/images/starter/brands/tailgrids.svg"
alt="tailgrids"
class="dark:hidden"
/>
<img
src="/images/starter/brands/tailgrids-white.svg"
alt="graygrids"
class="hidden dark:block"
src={item.IMAGE_WHITE}
alt={item.TITLE}
className="hidden dark:block"
/>
</a>
})}
</div>
</div>
</section>

View File

@@ -3,30 +3,30 @@ export const CTA = () => {
{/* <!-- ====== CTA Section Start --> */}
<section
class="relative z-10 overflow-hidden bg-primary py-20 lg:py-[115px]"
className="relative z-10 overflow-hidden bg-primary py-20 lg:py-[115px]"
>
<div class="container mx-auto">
<div class="relative overflow-hidden">
<div class="-mx-4 flex flex-wrap items-stretch">
<div class="w-full px-4">
<div class="mx-auto max-w-[570px] text-center">
<div className="container mx-auto">
<div className="relative overflow-hidden">
<div className="-mx-4 flex flex-wrap items-stretch">
<div className="w-full px-4">
<div className="mx-auto max-w-[570px] text-center">
<h2
class="mb-2.5 text-3xl font-bold text-white md:text-[38px] md:leading-[1.44]"
className="mb-2.5 text-3xl font-bold text-white md:text-[38px] md:leading-[1.44]"
>
<span>What Are You Looking For?</span>
<span class="text-3xl font-normal md:text-[40px]">
<span className="text-3xl font-normal md:text-[40px]">
Get Started Now
</span>
</h2>
<p
class="mx-auto mb-6 max-w-[515px] text-base leading-[1.5] text-white"
className="mx-auto mb-6 max-w-[515px] text-base leading-[1.5] text-white"
>
There are many variations of passages of Lorem Ipsum but the
majority have suffered in some form.
</p>
<a
class="inline-block rounded-md border border-transparent bg-secondary px-7 py-3 text-base font-medium text-white transition hover:bg-[#0BB489]"
className="inline-block rounded-md border border-transparent bg-secondary px-7 py-3 text-base font-medium text-white transition hover:bg-[#0BB489]"
>
Start using Play
</a>
@@ -36,7 +36,7 @@ export const CTA = () => {
</div>
</div>
<div>
<span class="absolute left-0 top-0">
<span className="absolute left-0 top-0">
<svg
width="495"
height="470"
@@ -67,7 +67,7 @@ export const CTA = () => {
/>
</svg>
</span>
<span class="absolute bottom-0 right-0">
<span className="absolute bottom-0 right-0">
<svg
width="493"
height="470"

View File

@@ -1,163 +1,148 @@
import { siteConfig } from '@/lib/config'
import CONFIG from '../config'
import { SVGLocation } from './svg/SVGLocation'
import { SVGEmail } from './svg/SVGEmail'
/* eslint-disable react/no-unescaped-entities */
export const Contact = () => {
return <>
{/* <!-- ====== Contact Start ====== --> */}
<section id="contact" class="relative py-20 md:py-[120px]">
<section id="contact" className="relative py-20 md:py-[120px]">
<div
class="absolute left-0 top-0 -z-[1] h-full w-full dark:bg-dark"
className="absolute left-0 top-0 -z-[1] h-full w-full dark:bg-dark"
></div>
<div
class="absolute left-0 top-0 -z-[1] h-1/2 w-full bg-[#E9F9FF] dark:bg-dark-700 lg:h-[45%] xl:h-1/2"
className="absolute left-0 top-0 -z-[1] h-1/2 w-full bg-[#E9F9FF] dark:bg-dark-700 lg:h-[45%] xl:h-1/2"
></div>
<div class="container px-4">
<div class="-mx-4 flex flex-wrap items-center">
<div class="w-full px-4 lg:w-7/12 xl:w-8/12">
<div class="ud-contact-content-wrapper">
<div class="ud-contact-title mb-12 lg:mb-[150px]">
<div className="container px-4">
<div className="-mx-4 flex flex-wrap items-center">
{/* 联系方式左侧文字 */}
<div className="w-full px-4 lg:w-7/12 xl:w-8/12">
<div className="ud-contact-content-wrapper">
<div className="ud-contact-title mb-12 lg:mb-[150px]">
<span
class="mb-6 block text-base font-medium text-dark dark:text-white"
className="mb-6 block text-base font-medium text-dark dark:text-white"
>
CONTACT US
{siteConfig('STARTER_CONTACT_TITLE', null, CONFIG)}
</span>
<h2
class="max-w-[260px] text-[35px] font-semibold leading-[1.14] text-dark dark:text-white"
className="max-w-[260px] text-[35px] font-semibold leading-[1.14] text-dark dark:text-white"
>
Let's talk about your problem.
{siteConfig('STARTER_CONTACT_TEXT', null, CONFIG)}
</h2>
</div>
<div class="mb-12 flex flex-wrap justify-between lg:mb-0">
<div class="mb-8 flex w-[330px] max-w-full">
<div class="mr-6 text-[32px] text-primary">
<svg
width="29"
height="35"
viewBox="0 0 29 35"
class="fill-current"
>
<path
d="M14.5 0.710938C6.89844 0.710938 0.664062 6.72656 0.664062 14.0547C0.664062 19.9062 9.03125 29.5859 12.6406 33.5234C13.1328 34.0703 13.7891 34.3437 14.5 34.3437C15.2109 34.3437 15.8672 34.0703 16.3594 33.5234C19.9688 29.6406 28.3359 19.9062 28.3359 14.0547C28.3359 6.67188 22.1016 0.710938 14.5 0.710938ZM14.9375 32.2109C14.6641 32.4844 14.2812 32.4844 14.0625 32.2109C11.3828 29.3125 2.57812 19.3594 2.57812 14.0547C2.57812 7.71094 7.9375 2.625 14.5 2.625C21.0625 2.625 26.4219 7.76562 26.4219 14.0547C26.4219 19.3594 17.6172 29.2578 14.9375 32.2109Z"
/>
<path
d="M14.5 8.58594C11.2734 8.58594 8.59375 11.2109 8.59375 14.4922C8.59375 17.7188 11.2187 20.3984 14.5 20.3984C17.7812 20.3984 20.4062 17.7734 20.4062 14.4922C20.4062 11.2109 17.7266 8.58594 14.5 8.58594ZM14.5 18.4297C12.3125 18.4297 10.5078 16.625 10.5078 14.4375C10.5078 12.25 12.3125 10.4453 14.5 10.4453C16.6875 10.4453 18.4922 12.25 18.4922 14.4375C18.4922 16.625 16.6875 18.4297 14.5 18.4297Z"
/>
</svg>
<div className="mb-12 flex flex-wrap justify-between lg:mb-0">
<div className="mb-8 flex w-[330px] max-w-full">
<div className="mr-6 text-[32px] text-primary">
<SVGLocation/>
</div>
<div>
<h5
class="mb-[18px] text-lg font-semibold text-dark dark:text-white"
className="mb-[18px] text-lg font-semibold text-dark dark:text-white"
>
Our Location
{siteConfig('STARTER_CONTACT_LOCATION_TITLE', null, CONFIG)}
</h5>
<p class="text-base text-body-color dark:text-dark-6">
401 Broadway, 24th Floor, Orchard Cloud View, London
<p className="text-base text-body-color dark:text-dark-6">
{siteConfig('STARTER_CONTACT_LOCATION_TEXT', null, CONFIG)}
</p>
</div>
</div>
<div class="mb-8 flex w-[330px] max-w-full">
<div class="mr-6 text-[32px] text-primary">
<svg
width="34"
height="25"
viewBox="0 0 34 25"
class="fill-current"
>
<path
d="M30.5156 0.960938H3.17188C1.42188 0.960938 0 2.38281 0 4.13281V20.9219C0 22.6719 1.42188 24.0938 3.17188 24.0938H30.5156C32.2656 24.0938 33.6875 22.6719 33.6875 20.9219V4.13281C33.6875 2.38281 32.2656 0.960938 30.5156 0.960938ZM30.5156 2.875C30.7891 2.875 31.0078 2.92969 31.2266 3.09375L17.6094 11.3516C17.1172 11.625 16.5703 11.625 16.0781 11.3516L2.46094 3.09375C2.67969 2.98438 2.89844 2.875 3.17188 2.875H30.5156ZM30.5156 22.125H3.17188C2.51562 22.125 1.91406 21.5781 1.91406 20.8672V5.00781L15.0391 12.9922C15.5859 13.3203 16.1875 13.4844 16.7891 13.4844C17.3906 13.4844 17.9922 13.3203 18.5391 12.9922L31.6641 5.00781V20.8672C31.7734 21.5781 31.1719 22.125 30.5156 22.125Z"
/>
</svg>
<div className="mb-8 flex w-[330px] max-w-full">
<div className="mr-6 text-[32px] text-primary">
<SVGEmail/>
</div>
<div>
<h5
class="mb-[18px] text-lg font-semibold text-dark dark:text-white"
className="mb-[18px] text-lg font-semibold text-dark dark:text-white"
>
How Can We Help?
{siteConfig('STARTER_CONTACT_EMAIL_TITLE', null, CONFIG)}
</h5>
<p class="text-base text-body-color dark:text-dark-6">
info@yourdomain.com
</p>
<p class="mt-1 text-base text-body-color dark:text-dark-6">
contact@yourdomain.com
<p className="text-base text-body-color dark:text-dark-6">
{siteConfig('STARTER_CONTACT_EMAIL_TEXT', null, CONFIG)}
</p>
</div>
</div>
</div>
</div>
</div>
<div class="w-full px-4 lg:w-5/12 xl:w-4/12">
{/* 联系方式右侧留言 */}
<div className="w-full px-4 lg:w-5/12 xl:w-4/12">
<div
class="wow fadeInUp rounded-lg bg-white px-8 py-10 shadow-testimonial dark:bg-dark-2 dark:shadow-none sm:px-10 sm:py-12 md:p-[60px] lg:p-10 lg:px-10 lg:py-12 2xl:p-[60px]"
data-wow-delay=".2s
"
className="wow fadeInUp rounded-lg bg-white px-8 py-10 shadow-testimonial dark:bg-dark-2 dark:shadow-none sm:px-10 sm:py-12 md:p-[60px] lg:p-10 lg:px-10 lg:py-12 2xl:p-[60px]"
data-wow-delay=".2s"
>
<h3
class="mb-8 text-2xl font-semibold text-dark dark:text-white md:text-[28px] md:leading-[1.42]"
className="mb-8 text-2xl font-semibold text-dark dark:text-white md:text-[28px] md:leading-[1.42]"
>
Send us a Message
{siteConfig('STARTER_CONTACT_MSG_TITLE', null, CONFIG)}
</h3>
<form>
<div class="mb-[22px]">
<div className="mb-[22px]">
<label
for="fullName"
class="mb-4 block text-sm text-body-color dark:text-dark-6"
>Full Name*</label
>
// for="fullName"
className="mb-4 block text-sm text-body-color dark:text-dark-6">
{siteConfig('STARTER_CONTACT_MSG_NAME', null, CONFIG)}*
</label>
<input
type="text"
name="fullName"
placeholder="Adam Gelius"
class="w-full border-0 border-b border-[#f1f1f1] bg-transparent pb-3 text-body-color placeholder:text-body-color/60 focus:border-primary focus:outline-none dark:border-dark-3 dark:text-dark-6"
className="w-full border-0 border-b border-[#f1f1f1] bg-transparent pb-3 text-body-color placeholder:text-body-color/60 focus:border-primary focus:outline-none dark:border-dark-3 dark:text-dark-6"
/>
</div>
<div class="mb-[22px]">
<div className="mb-[22px]">
<label
for="email"
class="mb-4 block text-sm text-body-color dark:text-dark-6"
>Email*</label
>
// for="email"
className="mb-4 block text-sm text-body-color dark:text-dark-6">
{siteConfig('STARTER_CONTACT_MSG_EMAIL', null, CONFIG)}*
</label >
<input
type="email"
name="email"
placeholder="example@yourmail.com"
class="w-full border-0 border-b border-[#f1f1f1] bg-transparent pb-3 text-body-color placeholder:text-body-color/60 focus:border-primary focus:outline-none dark:border-dark-3 dark:text-dark-6"
className="w-full border-0 border-b border-[#f1f1f1] bg-transparent pb-3 text-body-color placeholder:text-body-color/60 focus:border-primary focus:outline-none dark:border-dark-3 dark:text-dark-6"
/>
</div>
<div class="mb-[22px]">
<label
for="phone"
class="mb-4 block text-sm text-body-color dark:text-dark-6"
>Phone*</label
>
<div className="mb-[22px]">
<label
// for="phone"
className="mb-4 block text-sm text-body-color dark:text-dark-6">
{siteConfig('STARTER_CONTACT_MSG_PHONE', null, CONFIG)}*
</label >
<input
type="text"
name="phone"
placeholder="+885 1254 5211 552"
class="w-full border-0 border-b border-[#f1f1f1] bg-transparent pb-3 text-body-color placeholder:text-body-color/60 focus:border-primary focus:outline-none dark:border-dark-3 dark:text-dark-6"
className="w-full border-0 border-b border-[#f1f1f1] bg-transparent pb-3 text-body-color placeholder:text-body-color/60 focus:border-primary focus:outline-none dark:border-dark-3 dark:text-dark-6"
/>
</div>
<div class="mb-[30px]">
<div className="mb-[30px]">
<label
for="message"
class="mb-4 block text-sm text-body-color dark:text-dark-6"
>Message*</label
>
// for="message"
className="mb-4 block text-sm text-body-color dark:text-dark-6">
{siteConfig('STARTER_CONTACT_MSG_TEXT', null, CONFIG)}*
</label >
<textarea
name="message"
rows="1"
placeholder="type your message here"
class="w-full resize-none border-0 border-b border-[#f1f1f1] bg-transparent pb-3 text-body-color placeholder:text-body-color/60 focus:border-primary focus:outline-none dark:border-dark-3 dark:text-dark-6"
className="w-full resize-none border-0 border-b border-[#f1f1f1] bg-transparent pb-3 text-body-color placeholder:text-body-color/60 focus:border-primary focus:outline-none dark:border-dark-3 dark:text-dark-6"
></textarea>
</div>
<div class="mb-0">
<div className="mb-0">
<button
type="submit"
class="inline-flex items-center justify-center rounded-md bg-primary px-10 py-3 text-base font-medium text-white transition duration-300 ease-in-out hover:bg-blue-dark"
className="inline-flex items-center justify-center rounded-md bg-primary px-10 py-3 text-base font-medium text-white transition duration-300 ease-in-out hover:bg-blue-dark"
>
Send
{siteConfig('STARTER_CONTACT_MSG_SEND', null, CONFIG)}
</button>
</div>
</form>
</div>
</div>
</div>
</div>
</section>

View File

@@ -18,22 +18,22 @@ export const FAQ = () => {
return <>
{/* <!-- ====== FAQ Section Start --> */}
<section
class="relative z-20 overflow-hidden bg-white pb-8 pt-20 dark:bg-dark lg:pb-[50px] lg:pt-[120px]"
className="relative z-20 overflow-hidden bg-white pb-8 pt-20 dark:bg-dark lg:pb-[50px] lg:pt-[120px]"
>
<div class="container mx-auto">
<div class="-mx-4 flex flex-wrap">
<div class="w-full px-4">
<div class="mx-auto mb-[60px] max-w-[520px] text-center">
<span class="mb-2 block text-lg font-semibold text-primary">
<div className="container mx-auto">
<div className="-mx-4 flex flex-wrap">
<div className="w-full px-4">
<div className="mx-auto mb-[60px] max-w-[520px] text-center">
<span className="mb-2 block text-lg font-semibold text-primary">
{siteConfig('STARTER_FAQ_TITLE', null, CONFIG)}
</span>
<h2
class="mb-3 text-3xl font-bold leading-[1.2] text-dark dark:text-white sm:text-4xl md:text-[40px]"
className="mb-3 text-3xl font-bold leading-[1.2] text-dark dark:text-white sm:text-4xl md:text-[40px]"
>
{siteConfig('STARTER_FAQ_TEXT_1', null, CONFIG)}
</h2>
<p
class="mx-auto max-w-[485px] text-base text-body-color dark:text-dark-6"
className="mx-auto max-w-[485px] text-base text-body-color dark:text-dark-6"
>
{siteConfig('STARTER_FAQ_TEXT_2', null, CONFIG)}
</p>
@@ -41,80 +41,80 @@ export const FAQ = () => {
</div>
</div>
<div class="-mx-4 flex flex-wrap">
<div class="w-full px-4 lg:w-1/2">
<div class="mb-12 flex lg:mb-[70px]">
<div className="-mx-4 flex flex-wrap">
<div className="w-full px-4 lg:w-1/2">
<div className="mb-12 flex lg:mb-[70px]">
<div
class="mr-4 flex h-[50px] w-full max-w-[50px] items-center justify-center rounded-xl bg-primary text-white sm:mr-6 sm:h-[60px] sm:max-w-[60px]"
className="mr-4 flex h-[50px] w-full max-w-[50px] items-center justify-center rounded-xl bg-primary text-white sm:mr-6 sm:h-[60px] sm:max-w-[60px]"
>
<SVGQuestion/>
</div>
<div class="w-full">
<div className="w-full">
<h3
class="mb-6 text-xl font-semibold text-dark dark:text-white sm:text-2xl lg:text-xl xl:text-2xl"
className="mb-6 text-xl font-semibold text-dark dark:text-white sm:text-2xl lg:text-xl xl:text-2xl"
>
{siteConfig('STARTER_FAQ_1_QUESTION', null, CONFIG)}
</h3>
<p dangerouslySetInnerHTML={
{ __html: siteConfig('STARTER_FAQ_1_ANSWER', null, CONFIG) }
} class="text-base text-body-color dark:text-dark-6">
} className="text-base text-body-color dark:text-dark-6">
</p>
</div>
</div>
<div class="mb-12 flex lg:mb-[70px]">
<div className="mb-12 flex lg:mb-[70px]">
<div
class="mr-4 flex h-[50px] w-full max-w-[50px] items-center justify-center rounded-xl bg-primary text-white sm:mr-6 sm:h-[60px] sm:max-w-[60px]"
className="mr-4 flex h-[50px] w-full max-w-[50px] items-center justify-center rounded-xl bg-primary text-white sm:mr-6 sm:h-[60px] sm:max-w-[60px]"
>
<SVGQuestion/>
</div>
<div class="w-full">
<div className="w-full">
<h3
class="mb-6 text-xl font-semibold text-dark dark:text-white sm:text-2xl lg:text-xl xl:text-2xl"
className="mb-6 text-xl font-semibold text-dark dark:text-white sm:text-2xl lg:text-xl xl:text-2xl"
>
{siteConfig('STARTER_FAQ_2_QUESTION', null, CONFIG)}
</h3>
<p dangerouslySetInnerHTML={
{ __html: siteConfig('STARTER_FAQ_2_ANSWER', null, CONFIG) }
} class="text-base text-body-color dark:text-dark-6">
} className="text-base text-body-color dark:text-dark-6">
</p>
</div>
</div>
</div>
<div class="w-full px-4 lg:w-1/2">
<div class="mb-12 flex lg:mb-[70px]">
<div className="w-full px-4 lg:w-1/2">
<div className="mb-12 flex lg:mb-[70px]">
<div
class="mr-4 flex h-[50px] w-full max-w-[50px] items-center justify-center rounded-xl bg-primary text-white sm:mr-6 sm:h-[60px] sm:max-w-[60px]"
className="mr-4 flex h-[50px] w-full max-w-[50px] items-center justify-center rounded-xl bg-primary text-white sm:mr-6 sm:h-[60px] sm:max-w-[60px]"
>
<SVGQuestion/>
</div>
<div class="w-full">
<div className="w-full">
<h3
class="mb-6 text-xl font-semibold text-dark dark:text-white sm:text-2xl lg:text-xl xl:text-2xl"
className="mb-6 text-xl font-semibold text-dark dark:text-white sm:text-2xl lg:text-xl xl:text-2xl"
>
{siteConfig('STARTER_FAQ_3_QUESTION', null, CONFIG)}
</h3>
<p dangerouslySetInnerHTML={
{ __html: siteConfig('STARTER_FAQ_3_ANSWER', null, CONFIG) }
} class="text-base text-body-color dark:text-dark-6">
} className="text-base text-body-color dark:text-dark-6">
</p>
</div>
</div>
<div class="mb-12 flex lg:mb-[70px]">
<div className="mb-12 flex lg:mb-[70px]">
<div
class="mr-4 flex h-[50px] w-full max-w-[50px] items-center justify-center rounded-xl bg-primary text-white sm:mr-6 sm:h-[60px] sm:max-w-[60px]"
className="mr-4 flex h-[50px] w-full max-w-[50px] items-center justify-center rounded-xl bg-primary text-white sm:mr-6 sm:h-[60px] sm:max-w-[60px]"
>
<SVGQuestion/>
</div>
<div class="w-full">
<div className="w-full">
<h3
class="mb-6 text-xl font-semibold text-dark dark:text-white sm:text-2xl lg:text-xl xl:text-2xl"
className="mb-6 text-xl font-semibold text-dark dark:text-white sm:text-2xl lg:text-xl xl:text-2xl"
>
{siteConfig('STARTER_FAQ_4_QUESTION', null, CONFIG)}
</h3>
<p dangerouslySetInnerHTML={
{ __html: siteConfig('STARTER_FAQ_4_ANSWER', null, CONFIG) }
} class="text-base text-body-color dark:text-dark-6">
} className="text-base text-body-color dark:text-dark-6">
</p>
</div>
</div>
@@ -124,10 +124,10 @@ export const FAQ = () => {
{/* 背景图案 */}
<div>
<span class="absolute left-4 top-4 -z-[1]">
<span className="absolute left-4 top-4 -z-[1]">
<SVGCircleBG/>
</span>
<span class="absolute bottom-4 right-4 -z-[1]">
<span className="absolute bottom-4 right-4 -z-[1]">
<SVGCircleBG/>
</span>
</div>

View File

@@ -1,267 +1,94 @@
import { siteConfig } from '@/lib/config'
import CONFIG from '../config'
import { Logo } from './Logo'
import SocialButton from '@/themes/fukasawa/components/SocialButton'
import { SVGFooterCircleBG } from './svg/SVGFooterCircleBG'
import { checkContainHttp, sliceUrlFromHttp } from '@/lib/utils'
/* eslint-disable @next/next/no-img-element */
export const Footer = () => {
export const Footer = (props) => {
console.log('prop', props)
const latestPosts = props?.latestPosts ? props?.latestPosts.slice(0, 2) : []
return <>
{/* <!-- ====== Footer Section Start --> */}
<footer
class="wow fadeInUp relative z-10 bg-[#090E34] pt-20 lg:pt-[100px]"
className="wow fadeInUp relative z-10 bg-[#090E34] pt-20 lg:pt-[100px]"
data-wow-delay=".15s"
>
<div class="container">
<div class="-mx-4 flex flex-wrap">
<div class="w-full px-4 sm:w-1/2 md:w-1/2 lg:w-4/12 xl:w-3/12">
<div class="mb-10 w-full">
<div className="container">
<div className="-mx-4 flex flex-wrap">
<div className="w-full px-4 sm:w-1/2 md:w-1/2 lg:w-4/12 xl:w-3/12">
<div className="mb-10 w-full">
<a
class="mb-6 inline-block max-w-[160px]"
className="-mx-4 mb-6 inline-block max-w-[160px]"
>
<img
src="/images/starter/logo/logo-white.svg"
alt="logo"
class="max-w-full"
/>
<Logo white={true}/>
</a>
<p class="mb-8 max-w-[270px] text-base text-gray-7">
We create digital experiences for brands and companies by using
technology.
<p className="mb-8 max-w-[270px] text-base text-gray-7">
{siteConfig('STARTER_FOOTER_SLOGAN', null, CONFIG)}
</p>
<div class="-mx-3 flex items-center">
<a
class="px-3 text-gray-7 hover:text-white"
>
<svg
width="22"
height="22"
viewBox="0 0 22 22"
fill="none"
xmlns="http://www.w3.org/2000/svg"
class="fill-current"
>
<path
d="M16.294 8.86875H14.369H13.6815V8.18125V6.05V5.3625H14.369H15.8128C16.1909 5.3625 16.5003 5.0875 16.5003 4.675V1.03125C16.5003 0.653125 16.2253 0.34375 15.8128 0.34375H13.3034C10.5878 0.34375 8.69714 2.26875 8.69714 5.12187V8.1125V8.8H8.00964H5.67214C5.19089 8.8 4.74402 9.17812 4.74402 9.72812V12.2031C4.74402 12.6844 5.12214 13.1313 5.67214 13.1313H7.94089H8.62839V13.8188V20.7281C8.62839 21.2094 9.00652 21.6562 9.55652 21.6562H12.7878C12.994 21.6562 13.1659 21.5531 13.3034 21.4156C13.4409 21.2781 13.544 21.0375 13.544 20.8312V13.8531V13.1656H14.2659H15.8128C16.2596 13.1656 16.6034 12.8906 16.6721 12.4781V12.4438V12.4094L17.1534 10.0375C17.1878 9.79688 17.1534 9.52187 16.9471 9.24687C16.8784 9.075 16.569 8.90312 16.294 8.86875Z"
/>
</svg>
</a>
<a
class="px-3 text-gray-7 hover:text-white"
>
<svg
width="22"
height="22"
viewBox="0 0 22 22"
fill="none"
xmlns="http://www.w3.org/2000/svg"
class="fill-current"
>
<path
d="M20.1236 5.91236C20.2461 5.76952 20.0863 5.58286 19.905 5.64972C19.5004 5.79896 19.1306 5.8974 18.5837 5.95817C19.2564 5.58362 19.5693 5.04828 19.8237 4.39259C19.885 4.23443 19.7 4.09092 19.5406 4.16647C18.8931 4.47345 18.1945 4.70121 17.4599 4.83578C16.7338 4.11617 15.6988 3.6665 14.5539 3.6665C12.3554 3.6665 10.5725 5.32454 10.5725 7.36908C10.5725 7.65933 10.6081 7.94206 10.6752 8.21276C7.51486 8.06551 4.6968 6.71359 2.73896 4.64056C2.60477 4.49848 2.36128 4.51734 2.27772 4.69063C2.05482 5.15296 1.93056 5.66584 1.93056 6.20582C1.93056 7.49014 2.6332 8.62331 3.70132 9.28732C3.22241 9.27293 2.76441 9.17961 2.34234 9.02125C2.13684 8.94416 1.90127 9.07964 1.92888 9.28686C2.14084 10.8781 3.42915 12.1909 5.09205 12.5011C4.75811 12.586 4.40639 12.6311 4.04253 12.6311C3.95431 12.6311 3.86685 12.6284 3.78019 12.6231C3.55967 12.6094 3.38044 12.8067 3.47499 12.9954C4.09879 14.2404 5.44575 15.1096 7.0132 15.1367C5.65077 16.13 3.93418 16.7218 2.06882 16.7218C1.83882 16.7218 1.74015 17.0175 1.9442 17.1178C3.52016 17.8924 5.31487 18.3332 7.22182 18.3332C14.545 18.3332 18.549 12.6914 18.549 7.79843C18.549 7.63827 18.545 7.47811 18.5377 7.31945C19.1321 6.92012 19.6664 6.44528 20.1236 5.91236Z"
/>
</svg>
</a>
<a
class="px-3 text-gray-7 hover:text-white"
>
<svg
width="22"
height="22"
viewBox="0 0 22 22"
fill="none"
xmlns="http://www.w3.org/2000/svg"
class="fill-current"
>
<path
d="M11.0297 14.4305C12.9241 14.4305 14.4598 12.8948 14.4598 11.0004C14.4598 9.10602 12.9241 7.57031 11.0297 7.57031C9.13529 7.57031 7.59958 9.10602 7.59958 11.0004C7.59958 12.8948 9.13529 14.4305 11.0297 14.4305Z"
/>
<path
d="M14.7554 1.8335H7.24463C4.25807 1.8335 1.83334 4.25823 1.83334 7.24479V14.6964C1.83334 17.7421 4.25807 20.1668 7.24463 20.1668H14.6962C17.7419 20.1668 20.1667 17.7421 20.1667 14.7555V7.24479C20.1667 4.25823 17.7419 1.8335 14.7554 1.8335ZM11.0296 15.4948C8.51614 15.4948 6.53496 13.4545 6.53496 11.0002C6.53496 8.54586 8.54571 6.50554 11.0296 6.50554C13.4839 6.50554 15.4946 8.54586 15.4946 11.0002C15.4946 13.4545 13.5134 15.4948 11.0296 15.4948ZM17.2393 6.91952C16.9436 7.24479 16.5 7.42221 15.9973 7.42221C15.5538 7.42221 15.1102 7.24479 14.7554 6.91952C14.4301 6.59425 14.2527 6.18027 14.2527 5.67758C14.2527 5.17489 14.4301 4.79049 14.7554 4.43565C15.0807 4.08081 15.4946 3.90339 15.9973 3.90339C16.4409 3.90339 16.914 4.08081 17.2393 4.40608C17.535 4.79049 17.7419 5.23403 17.7419 5.70715C17.7124 6.18027 17.535 6.59425 17.2393 6.91952Z"
/>
<path
d="M16.0276 4.96777C15.6432 4.96777 15.318 5.29304 15.318 5.67745C15.318 6.06186 15.6432 6.38713 16.0276 6.38713C16.412 6.38713 16.7373 6.06186 16.7373 5.67745C16.7373 5.29304 16.4416 4.96777 16.0276 4.96777Z"
/>
</svg>
</a>
<a
class="px-3 text-gray-7 hover:text-white"
>
<svg
width="22"
height="22"
viewBox="0 0 22 22"
fill="none"
xmlns="http://www.w3.org/2000/svg"
class="fill-current"
>
<path
d="M18.8065 1.8335H3.16399C2.42474 1.8335 1.83334 2.42489 1.83334 3.16414V18.8362C1.83334 19.5459 2.42474 20.1668 3.16399 20.1668H18.7473C19.4866 20.1668 20.078 19.5754 20.078 18.8362V3.13457C20.1371 2.42489 19.5457 1.8335 18.8065 1.8335ZM7.24464 17.4168H4.55379V8.69371H7.24464V17.4168ZM5.88443 7.48135C4.99733 7.48135 4.31721 6.77167 4.31721 5.91414C4.31721 5.05661 5.0269 4.34694 5.88443 4.34694C6.74196 4.34694 7.45163 5.05661 7.45163 5.91414C7.45163 6.77167 6.8011 7.48135 5.88443 7.48135ZM17.4463 17.4168H14.7554V13.1883C14.7554 12.183 14.7258 10.8523 13.336 10.8523C11.9167 10.8523 11.7097 11.976 11.7097 13.0996V17.4168H9.01884V8.69371H11.6506V9.90608H11.6801C12.0645 9.1964 12.9221 8.48672 14.2527 8.48672C17.0027 8.48672 17.5054 10.2609 17.5054 12.6856V17.4168H17.4463Z"
/>
</svg>
</a>
<div className="-mx-3 flex items-center">
<div className='mx-3'><SocialButton/></div>
</div>
</div>
</div>
<div class="w-full px-4 sm:w-1/2 md:w-1/2 lg:w-2/12 xl:w-2/12">
<div class="mb-10 w-full">
<h4 class="mb-9 text-lg font-semibold text-white">About Us</h4>
<ul>
<li>
<a
class="mb-3 inline-block text-base text-gray-7 hover:text-primary"
>
Home
</a>
</li>
<li>
<a
class="mb-3 inline-block text-base text-gray-7 hover:text-primary"
>
Features
</a>
</li>
<li>
<a
class="mb-3 inline-block text-base text-gray-7 hover:text-primary"
>
About
</a>
</li>
<li>
<a
class="mb-3 inline-block text-base text-gray-7 hover:text-primary"
>
Testimonial
</a>
</li>
</ul>
</div>
</div>
<div class="w-full px-4 sm:w-1/2 md:w-1/2 lg:w-3/12 xl:w-2/12">
<div class="mb-10 w-full">
<h4 class="mb-9 text-lg font-semibold text-white">Features</h4>
<ul>
<li>
<a
class="mb-3 inline-block text-base text-gray-7 hover:text-primary"
>
How it works
</a>
</li>
<li>
<a
class="mb-3 inline-block text-base text-gray-7 hover:text-primary"
>
Privacy policy
</a>
</li>
<li>
<a
class="mb-3 inline-block text-base text-gray-7 hover:text-primary"
>
Terms of Service
</a>
</li>
<li>
<a
class="mb-3 inline-block text-base text-gray-7 hover:text-primary"
>
Refund policy
</a>
</li>
</ul>
</div>
</div>
<div class="w-full px-4 sm:w-1/2 md:w-1/2 lg:w-3/12 xl:w-2/12">
<div class="mb-10 w-full">
<h4 class="mb-9 text-lg font-semibold text-white">
Our Products
</h4>
<ul>
<li>
<a
class="mb-3 inline-block text-base text-gray-7 hover:text-primary"
>
LineIcons
</a>
</li>
<li>
<a
class="mb-3 inline-block text-base text-gray-7 hover:text-primary"
>
Ecommerce HTML
</a>
</li>
<li>
<a
class="mb-3 inline-block text-base text-gray-7 hover:text-primary"
>
TailAdmin
</a>
</li>
<li>
<a
class="mb-3 inline-block text-base text-gray-7 hover:text-primary"
>
PlainAdmin
</a>
</li>
</ul>
</div>
</div>
<div class="w-full px-4 md:w-2/3 lg:w-6/12 xl:w-3/12">
<div class="mb-10 w-full">
<h4 class="mb-9 text-lg font-semibold text-white">Latest blog</h4>
<div class="flex flex-col gap-8">
<a
href="blog-details.html"
class="group flex items-center gap-[22px]"
>
<div class="overflow-hidden rounded">
<img
src="/images/starter/blog/blog-footer-01.jpg"
alt="blog"
/>
</div>
<span
class="max-w-[180px] text-base text-gray-7 group-hover:text-white"
>
I think really important to design with...
</span>
</a>
<a
href="blog-details.html"
class="group flex items-center gap-[22px]"
>
<div class="overflow-hidden rounded">
<img
src="/images/starter/blog/blog-footer-02.jpg"
alt="blog"
/>
</div>
<span
class="max-w-[180px] text-base text-gray-7 group-hover:text-white"
>
Recognizing the need is the primary...
</span>
</a>
{/* 中间三列菜单组 */}
{CONFIG.STARTER_FOOTER_LINK_GROUP?.map((item, index) => {
return <div key={index} className="w-full px-4 sm:w-1/2 md:w-1/2 lg:w-2/12 xl:w-2/12">
<div className="mb-10 w-full">
<h4 className="mb-9 text-lg font-semibold text-white">
{item.TITLE}
</h4>
<ul>
{item?.LINK_GROUP?.map((l, i) => {
return <li key={i}>
<a href={l.URL}
className="mb-3 inline-block text-base text-gray-7 hover:text-primary"
>
{l.TITLE}
</a>
</li>
})}
</ul>
</div>
</div>
})}
{/* 页脚右侧最新博文 */}
<div className="w-full px-4 md:w-2/3 lg:w-6/12 xl:w-3/12">
<div className="mb-10 w-full">
<h4 className="mb-9 text-lg font-semibold text-white">
{siteConfig('STARTER_FOOTER_BLOG_LATEST_TITLE', null, CONFIG)}
</h4>
{/* 展示两条最新博客文章 */}
<div className="flex flex-col gap-8">
{latestPosts?.map((item, index) => {
const url = checkContainHttp(item.slug) ? sliceUrlFromHttp(item.slug) : `${siteConfig('SUB_PATH', '')}/${item.slug}`
return <a key={index}
href={url}
className="group flex items-center gap-[22px]"
>
<div className="overflow-hidden rounded w-20">
<img
src={item.pageCoverThumbnail}
alt={item.title}
/>
</div>
<span
className="line-clamp-2 max-w-[180px] text-base text-gray-7 group-hover:text-white"
>
{item.summary}
</span>
</a>
})}
</div>
</div>
</div>
</div>
</div>
@@ -269,47 +96,47 @@ export const Footer = () => {
{/* 底部版权信息相关 */}
<div
class="mt-12 border-t border-[#8890A4] border-opacity-40 py-8 lg:mt-[60px]"
className="mt-12 border-t border-[#8890A4] border-opacity-40 py-8 lg:mt-[60px]"
>
<div class="container">
<div class="-mx-4 flex flex-wrap">
<div class="w-full px-4 md:w-2/3 lg:w-1/2">
<div class="my-1">
<div className="container">
<div className="-mx-4 flex flex-wrap">
<div className="w-full px-4 md:w-2/3 lg:w-1/2">
<div className="my-1">
<div
class="-mx-3 flex items-center justify-center md:justify-start"
className="-mx-3 flex items-center justify-center md:justify-start"
>
<a
href= {siteConfig('STARTER_FOOTER_PRIVACY_POLICY_URL', null, CONFIG)}
class="px-3 text-base text-gray-7 hover:text-white hover:underline"
className="px-3 text-base text-gray-7 hover:text-white hover:underline"
>
{siteConfig('STARTER_FOOTER_PRIVACY_POLICY_TEXT', null, CONFIG)}
</a>
<a
href= {siteConfig('STARTER_FOOTER_PRIVACY_LEGAL_NOTICE_URL', null, CONFIG)}
class="px-3 text-base text-gray-7 hover:text-white hover:underline"
className="px-3 text-base text-gray-7 hover:text-white hover:underline"
>
{siteConfig('STARTER_FOOTER_PRIVACY_LEGAL_NOTICE_TEXT', null, CONFIG)}
</a>
<a
href= {siteConfig('STARTER_FOOTER_PRIVACY_TERMS_OF_SERVICE_URL', null, CONFIG)}
class="px-3 text-base text-gray-7 hover:text-white hover:underline"
className="px-3 text-base text-gray-7 hover:text-white hover:underline"
>
{siteConfig('STARTER_FOOTER_PRIVACY_TERMS_OF_SERVICE_TEXT', null, CONFIG)}
</a>
</div>
</div>
</div>
<div class="w-full px-4 md:w-1/3 lg:w-1/2">
<div class="my-1 flex justify-center md:justify-end">
<p class="text-base text-gray-7">
<div className="w-full px-4 md:w-1/3 lg:w-1/2">
<div className="my-1 flex justify-center md:justify-end">
<p className="text-base text-gray-7">
Designed and Developed by
<a
href="https://github.com/tangly1024/NotionNext"
rel="nofollow noopner noreferrer"
target="_blank"
class="px-1 text-gray-1 hover:underline"
className="px-1 text-gray-1 hover:underline"
>
NotionNext
NotionNext {siteConfig('VERSION')}
</a>
</p>
</div>
@@ -318,269 +145,18 @@ export const Footer = () => {
</div>
</div>
{/* Footer 背景 */}
<div>
<span class="absolute left-0 top-0 z-[-1]">
<span className="absolute left-0 top-0 z-[-1]">
<img src="/images/starter/footer/shape-1.svg" alt="" />
</span>
<span class="absolute bottom-0 right-0 z-[-1]">
<span className="absolute bottom-0 right-0 z-[-1]">
<img src="/images/starter/footer/shape-3.svg" alt="" />
</span>
<span class="absolute right-0 top-0 z-[-1]">
<svg
width="102"
height="102"
viewBox="0 0 102 102"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M1.8667 33.1956C2.89765 33.1956 3.7334 34.0318 3.7334 35.0633C3.7334 36.0947 2.89765 36.9309 1.8667 36.9309C0.835744 36.9309 4.50645e-08 36.0947 0 35.0633C-4.50645e-08 34.0318 0.835744 33.1956 1.8667 33.1956Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M18.2939 33.1956C19.3249 33.1956 20.1606 34.0318 20.1606 35.0633C20.1606 36.0947 19.3249 36.9309 18.2939 36.9309C17.263 36.9309 16.4272 36.0947 16.4272 35.0633C16.4272 34.0318 17.263 33.1956 18.2939 33.1956Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M34.7209 33.195C35.7519 33.195 36.5876 34.0311 36.5876 35.0626C36.5876 36.0941 35.7519 36.9303 34.7209 36.9303C33.69 36.9303 32.8542 36.0941 32.8542 35.0626C32.8542 34.0311 33.69 33.195 34.7209 33.195Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M50.9341 33.195C51.965 33.195 52.8008 34.0311 52.8008 35.0626C52.8008 36.0941 51.965 36.9303 50.9341 36.9303C49.9031 36.9303 49.0674 36.0941 49.0674 35.0626C49.0674 34.0311 49.9031 33.195 50.9341 33.195Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M1.8667 16.7605C2.89765 16.7605 3.7334 17.5966 3.7334 18.6281C3.7334 19.6596 2.89765 20.4957 1.8667 20.4957C0.835744 20.4957 4.50645e-08 19.6596 0 18.6281C-4.50645e-08 17.5966 0.835744 16.7605 1.8667 16.7605Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M18.2939 16.7605C19.3249 16.7605 20.1606 17.5966 20.1606 18.6281C20.1606 19.6596 19.3249 20.4957 18.2939 20.4957C17.263 20.4957 16.4272 19.6596 16.4272 18.6281C16.4272 17.5966 17.263 16.7605 18.2939 16.7605Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M34.7209 16.7605C35.7519 16.7605 36.5876 17.5966 36.5876 18.6281C36.5876 19.6596 35.7519 20.4957 34.7209 20.4957C33.69 20.4957 32.8542 19.6596 32.8542 18.6281C32.8542 17.5966 33.69 16.7605 34.7209 16.7605Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M50.9341 16.7605C51.965 16.7605 52.8008 17.5966 52.8008 18.6281C52.8008 19.6596 51.965 20.4957 50.9341 20.4957C49.9031 20.4957 49.0674 19.6596 49.0674 18.6281C49.0674 17.5966 49.9031 16.7605 50.9341 16.7605Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M1.8667 0.324951C2.89765 0.324951 3.7334 1.16115 3.7334 2.19261C3.7334 3.22408 2.89765 4.06024 1.8667 4.06024C0.835744 4.06024 4.50645e-08 3.22408 0 2.19261C-4.50645e-08 1.16115 0.835744 0.324951 1.8667 0.324951Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M18.2939 0.324951C19.3249 0.324951 20.1606 1.16115 20.1606 2.19261C20.1606 3.22408 19.3249 4.06024 18.2939 4.06024C17.263 4.06024 16.4272 3.22408 16.4272 2.19261C16.4272 1.16115 17.263 0.324951 18.2939 0.324951Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M34.7209 0.325302C35.7519 0.325302 36.5876 1.16147 36.5876 2.19293C36.5876 3.2244 35.7519 4.06056 34.7209 4.06056C33.69 4.06056 32.8542 3.2244 32.8542 2.19293C32.8542 1.16147 33.69 0.325302 34.7209 0.325302Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M50.9341 0.325302C51.965 0.325302 52.8008 1.16147 52.8008 2.19293C52.8008 3.2244 51.965 4.06056 50.9341 4.06056C49.9031 4.06056 49.0674 3.2244 49.0674 2.19293C49.0674 1.16147 49.9031 0.325302 50.9341 0.325302Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M66.9037 33.1956C67.9346 33.1956 68.7704 34.0318 68.7704 35.0633C68.7704 36.0947 67.9346 36.9309 66.9037 36.9309C65.8727 36.9309 65.037 36.0947 65.037 35.0633C65.037 34.0318 65.8727 33.1956 66.9037 33.1956Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M83.3307 33.1956C84.3616 33.1956 85.1974 34.0318 85.1974 35.0633C85.1974 36.0947 84.3616 36.9309 83.3307 36.9309C82.2997 36.9309 81.464 36.0947 81.464 35.0633C81.464 34.0318 82.2997 33.1956 83.3307 33.1956Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M99.7576 33.1956C100.789 33.1956 101.624 34.0318 101.624 35.0633C101.624 36.0947 100.789 36.9309 99.7576 36.9309C98.7266 36.9309 97.8909 36.0947 97.8909 35.0633C97.8909 34.0318 98.7266 33.1956 99.7576 33.1956Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M66.9037 16.7605C67.9346 16.7605 68.7704 17.5966 68.7704 18.6281C68.7704 19.6596 67.9346 20.4957 66.9037 20.4957C65.8727 20.4957 65.037 19.6596 65.037 18.6281C65.037 17.5966 65.8727 16.7605 66.9037 16.7605Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M83.3307 16.7605C84.3616 16.7605 85.1974 17.5966 85.1974 18.6281C85.1974 19.6596 84.3616 20.4957 83.3307 20.4957C82.2997 20.4957 81.464 19.6596 81.464 18.6281C81.464 17.5966 82.2997 16.7605 83.3307 16.7605Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M99.7576 16.7605C100.789 16.7605 101.624 17.5966 101.624 18.6281C101.624 19.6596 100.789 20.4957 99.7576 20.4957C98.7266 20.4957 97.8909 19.6596 97.8909 18.6281C97.8909 17.5966 98.7266 16.7605 99.7576 16.7605Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M66.9037 0.324966C67.9346 0.324966 68.7704 1.16115 68.7704 2.19261C68.7704 3.22408 67.9346 4.06024 66.9037 4.06024C65.8727 4.06024 65.037 3.22408 65.037 2.19261C65.037 1.16115 65.8727 0.324966 66.9037 0.324966Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M83.3307 0.324951C84.3616 0.324951 85.1974 1.16115 85.1974 2.19261C85.1974 3.22408 84.3616 4.06024 83.3307 4.06024C82.2997 4.06024 81.464 3.22408 81.464 2.19261C81.464 1.16115 82.2997 0.324951 83.3307 0.324951Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M99.7576 0.324951C100.789 0.324951 101.624 1.16115 101.624 2.19261C101.624 3.22408 100.789 4.06024 99.7576 4.06024C98.7266 4.06024 97.8909 3.22408 97.8909 2.19261C97.8909 1.16115 98.7266 0.324951 99.7576 0.324951Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M1.8667 82.2029C2.89765 82.2029 3.7334 83.039 3.7334 84.0705C3.7334 85.102 2.89765 85.9382 1.8667 85.9382C0.835744 85.9382 4.50645e-08 85.102 0 84.0705C-4.50645e-08 83.039 0.835744 82.2029 1.8667 82.2029Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M18.2939 82.2029C19.3249 82.2029 20.1606 83.039 20.1606 84.0705C20.1606 85.102 19.3249 85.9382 18.2939 85.9382C17.263 85.9382 16.4272 85.102 16.4272 84.0705C16.4272 83.039 17.263 82.2029 18.2939 82.2029Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M34.7209 82.2026C35.7519 82.2026 36.5876 83.0387 36.5876 84.0702C36.5876 85.1017 35.7519 85.9378 34.7209 85.9378C33.69 85.9378 32.8542 85.1017 32.8542 84.0702C32.8542 83.0387 33.69 82.2026 34.7209 82.2026Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M50.9341 82.2026C51.965 82.2026 52.8008 83.0387 52.8008 84.0702C52.8008 85.1017 51.965 85.9378 50.9341 85.9378C49.9031 85.9378 49.0674 85.1017 49.0674 84.0702C49.0674 83.0387 49.9031 82.2026 50.9341 82.2026Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M1.8667 65.7677C2.89765 65.7677 3.7334 66.6039 3.7334 67.6353C3.7334 68.6668 2.89765 69.503 1.8667 69.503C0.835744 69.503 4.50645e-08 68.6668 0 67.6353C-4.50645e-08 66.6039 0.835744 65.7677 1.8667 65.7677Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M18.2939 65.7677C19.3249 65.7677 20.1606 66.6039 20.1606 67.6353C20.1606 68.6668 19.3249 69.503 18.2939 69.503C17.263 69.503 16.4272 68.6668 16.4272 67.6353C16.4272 66.6039 17.263 65.7677 18.2939 65.7677Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M34.7209 65.7674C35.7519 65.7674 36.5876 66.6036 36.5876 67.635C36.5876 68.6665 35.7519 69.5027 34.7209 69.5027C33.69 69.5027 32.8542 68.6665 32.8542 67.635C32.8542 66.6036 33.69 65.7674 34.7209 65.7674Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M50.9341 65.7674C51.965 65.7674 52.8008 66.6036 52.8008 67.635C52.8008 68.6665 51.965 69.5027 50.9341 69.5027C49.9031 69.5027 49.0674 68.6665 49.0674 67.635C49.0674 66.6036 49.9031 65.7674 50.9341 65.7674Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M1.8667 98.2644C2.89765 98.2644 3.7334 99.1005 3.7334 100.132C3.7334 101.163 2.89765 102 1.8667 102C0.835744 102 4.50645e-08 101.163 0 100.132C-4.50645e-08 99.1005 0.835744 98.2644 1.8667 98.2644Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M1.8667 49.3322C2.89765 49.3322 3.7334 50.1684 3.7334 51.1998C3.7334 52.2313 2.89765 53.0675 1.8667 53.0675C0.835744 53.0675 4.50645e-08 52.2313 0 51.1998C-4.50645e-08 50.1684 0.835744 49.3322 1.8667 49.3322Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M18.2939 98.2644C19.3249 98.2644 20.1606 99.1005 20.1606 100.132C20.1606 101.163 19.3249 102 18.2939 102C17.263 102 16.4272 101.163 16.4272 100.132C16.4272 99.1005 17.263 98.2644 18.2939 98.2644Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M18.2939 49.3322C19.3249 49.3322 20.1606 50.1684 20.1606 51.1998C20.1606 52.2313 19.3249 53.0675 18.2939 53.0675C17.263 53.0675 16.4272 52.2313 16.4272 51.1998C16.4272 50.1684 17.263 49.3322 18.2939 49.3322Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M34.7209 98.2647C35.7519 98.2647 36.5876 99.1008 36.5876 100.132C36.5876 101.164 35.7519 102 34.7209 102C33.69 102 32.8542 101.164 32.8542 100.132C32.8542 99.1008 33.69 98.2647 34.7209 98.2647Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M50.9341 98.2647C51.965 98.2647 52.8008 99.1008 52.8008 100.132C52.8008 101.164 51.965 102 50.9341 102C49.9031 102 49.0674 101.164 49.0674 100.132C49.0674 99.1008 49.9031 98.2647 50.9341 98.2647Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M34.7209 49.3326C35.7519 49.3326 36.5876 50.1687 36.5876 51.2002C36.5876 52.2317 35.7519 53.0678 34.7209 53.0678C33.69 53.0678 32.8542 52.2317 32.8542 51.2002C32.8542 50.1687 33.69 49.3326 34.7209 49.3326Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M50.9341 49.3326C51.965 49.3326 52.8008 50.1687 52.8008 51.2002C52.8008 52.2317 51.965 53.0678 50.9341 53.0678C49.9031 53.0678 49.0674 52.2317 49.0674 51.2002C49.0674 50.1687 49.9031 49.3326 50.9341 49.3326Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M66.9037 82.2029C67.9346 82.2029 68.7704 83.0391 68.7704 84.0705C68.7704 85.102 67.9346 85.9382 66.9037 85.9382C65.8727 85.9382 65.037 85.102 65.037 84.0705C65.037 83.0391 65.8727 82.2029 66.9037 82.2029Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M83.3307 82.2029C84.3616 82.2029 85.1974 83.0391 85.1974 84.0705C85.1974 85.102 84.3616 85.9382 83.3307 85.9382C82.2997 85.9382 81.464 85.102 81.464 84.0705C81.464 83.0391 82.2997 82.2029 83.3307 82.2029Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M99.7576 82.2029C100.789 82.2029 101.624 83.039 101.624 84.0705C101.624 85.102 100.789 85.9382 99.7576 85.9382C98.7266 85.9382 97.8909 85.102 97.8909 84.0705C97.8909 83.039 98.7266 82.2029 99.7576 82.2029Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M66.9037 65.7674C67.9346 65.7674 68.7704 66.6036 68.7704 67.635C68.7704 68.6665 67.9346 69.5027 66.9037 69.5027C65.8727 69.5027 65.037 68.6665 65.037 67.635C65.037 66.6036 65.8727 65.7674 66.9037 65.7674Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M83.3307 65.7677C84.3616 65.7677 85.1974 66.6039 85.1974 67.6353C85.1974 68.6668 84.3616 69.503 83.3307 69.503C82.2997 69.503 81.464 68.6668 81.464 67.6353C81.464 66.6039 82.2997 65.7677 83.3307 65.7677Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M99.7576 65.7677C100.789 65.7677 101.624 66.6039 101.624 67.6353C101.624 68.6668 100.789 69.503 99.7576 69.503C98.7266 69.503 97.8909 68.6668 97.8909 67.6353C97.8909 66.6039 98.7266 65.7677 99.7576 65.7677Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M66.9037 98.2644C67.9346 98.2644 68.7704 99.1005 68.7704 100.132C68.7704 101.163 67.9346 102 66.9037 102C65.8727 102 65.037 101.163 65.037 100.132C65.037 99.1005 65.8727 98.2644 66.9037 98.2644Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M66.9037 49.3322C67.9346 49.3322 68.7704 50.1684 68.7704 51.1998C68.7704 52.2313 67.9346 53.0675 66.9037 53.0675C65.8727 53.0675 65.037 52.2313 65.037 51.1998C65.037 50.1684 65.8727 49.3322 66.9037 49.3322Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M83.3307 98.2644C84.3616 98.2644 85.1974 99.1005 85.1974 100.132C85.1974 101.163 84.3616 102 83.3307 102C82.2997 102 81.464 101.163 81.464 100.132C81.464 99.1005 82.2997 98.2644 83.3307 98.2644Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M83.3307 49.3322C84.3616 49.3322 85.1974 50.1684 85.1974 51.1998C85.1974 52.2313 84.3616 53.0675 83.3307 53.0675C82.2997 53.0675 81.464 52.2313 81.464 51.1998C81.464 50.1684 82.2997 49.3322 83.3307 49.3322Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M99.7576 98.2644C100.789 98.2644 101.624 99.1005 101.624 100.132C101.624 101.163 100.789 102 99.7576 102C98.7266 102 97.8909 101.163 97.8909 100.132C97.8909 99.1005 98.7266 98.2644 99.7576 98.2644Z"
fill="white"
fill-opacity="0.08"
></path>
<path
d="M99.7576 49.3322C100.789 49.3322 101.624 50.1684 101.624 51.1998C101.624 52.2313 100.789 53.0675 99.7576 53.0675C98.7266 53.0675 97.8909 52.2313 97.8909 51.1998C97.8909 50.1684 98.7266 49.3322 99.7576 49.3322Z"
fill="white"
fill-opacity="0.08"
></path>
</svg>
<span className="absolute right-0 top-0 z-[-1]">
<SVGFooterCircleBG/>
</span>
</div>
</footer>

View File

@@ -10,7 +10,7 @@ import CONFIG from '../config';
* 站点图标
* @returns
*/
export const Logo = () => {
export const Logo = ({ white }) => {
const router = useRouter()
const { isDarkMode } = useGlobal()
const logoWhite = siteConfig('STARTER_LOGO_WHITE', null, CONFIG)
@@ -30,7 +30,7 @@ export const Logo = () => {
const navBarScrollListener = throttle(() => {
const scrollY = window.scrollY;
// 何时显示浅色或白底的logo
if (isDarkMode || (!isDarkMode && router.route === '/' && scrollY < 1)) {
if (white || isDarkMode || (!isDarkMode && router.route === '/' && scrollY < 1)) {
setLogo(siteConfig('STARTER_LOGO_WHITE', null, CONFIG))
setLogoTextColor('text-white')
} else {

View File

@@ -5,23 +5,23 @@ export const MadeWithButton = () => {
<a
target="_blank"
rel="nofollow noopener noreferrer"
class="fixed bottom-8 left-4 z-[999] inline-flex items-center gap-[10px] rounded-lg bg-white px-[14px] py-2 shadow-2 dark:bg-dark-2 sm:left-9"
className="fixed bottom-8 left-4 z-[999] inline-flex items-center gap-[10px] rounded-lg bg-white px-[14px] py-2 shadow-2 dark:bg-dark-2 sm:left-9"
href="https://tailgrids.com/"
>
<span class="text-base font-medium text-dark-3 dark:text-dark-6">
<span className="text-base font-medium text-dark-3 dark:text-dark-6">
Made with
</span>
<span class="block h-4 w-px bg-stroke dark:bg-dark-3"></span>
<span class="block w-full max-w-[88px]">
<span className="block h-4 w-px bg-stroke dark:bg-dark-3"></span>
<span className="block w-full max-w-[88px]">
<img
src="/images/starter/brands/tailgrids.svg"
alt="tailgrids"
class="dark:hidden"
className="dark:hidden"
/>
<img
src="/images/starter/brands/tailgrids-white.svg"
alt="tailgrids"
class="hidden dark:block"
className="hidden dark:block"
/>
</span>
</a>

View File

@@ -10,21 +10,21 @@ export const Pricing = () => {
{/* <!-- ====== Pricing Section Start --> */}
<section
id="pricing"
class="relative z-20 overflow-hidden bg-white pb-12 pt-20 dark:bg-dark lg:pb-[90px] lg:pt-[120px]"
className="relative z-20 overflow-hidden bg-white pb-12 pt-20 dark:bg-dark lg:pb-[90px] lg:pt-[120px]"
>
<div class="container mx-auto">
<div class="-mx-4 flex flex-wrap">
<div class="w-full px-4">
<div class="mx-auto mb-[60px] max-w-[510px] text-center">
<span class="mb-2 block text-lg font-semibold text-primary">
<div className="container mx-auto">
<div className="-mx-4 flex flex-wrap">
<div className="w-full px-4">
<div className="mx-auto mb-[60px] max-w-[510px] text-center">
<span className="mb-2 block text-lg font-semibold text-primary">
{siteConfig('STARTER_PRICING_TITLE', null, CONFIG)}
</span>
<h2
class="mb-3 text-3xl font-bold text-dark dark:text-white sm:text-4xl md:text-[40px] md:leading-[1.2]"
className="mb-3 text-3xl font-bold text-dark dark:text-white sm:text-4xl md:text-[40px] md:leading-[1.2]"
>
{siteConfig('STARTER_PRICING_TEXT_1', null, CONFIG)}
</h2>
<p class="text-base text-body-color dark:text-dark-6">
<p className="text-base text-body-color dark:text-dark-6">
{siteConfig('STARTER_PRICING_TEXT_2', null, CONFIG)}
</p>
</div>
@@ -32,35 +32,35 @@ export const Pricing = () => {
</div>
{/* 第一个付费计划 */}
<div class="-mx-4 flex flex-wrap justify-center">
<div class="w-full px-4 md:w-1/2 lg:w-1/3">
<div className="-mx-4 flex flex-wrap justify-center">
<div className="w-full px-4 md:w-1/2 lg:w-1/3">
<div
class="relative z-10 mb-10 overflow-hidden rounded-xl bg-white px-8 py-10 shadow-pricing dark:bg-dark-2 sm:p-12 lg:px-6 lg:py-10 xl:p-14"
className="relative z-10 mb-10 overflow-hidden rounded-xl bg-white px-8 py-10 shadow-pricing dark:bg-dark-2 sm:p-12 lg:px-6 lg:py-10 xl:p-14"
>
<span
class="mb-5 block text-xl font-medium text-dark dark:text-white"
className="mb-5 block text-xl font-medium text-dark dark:text-white"
>
{siteConfig('STARTER_PRICING_1_TITLE', null, CONFIG)}
</span>
<h2
class="space-x-1 mb-11 text-4xl font-semibold text-dark dark:text-white xl:text-[42px] xl:leading-[1.21]"
className="space-x-1 mb-11 text-4xl font-semibold text-dark dark:text-white xl:text-[42px] xl:leading-[1.21]"
>
<span class="text-xl font-medium">{siteConfig('STARTER_PRICING_1_PRICE_CURRENCY', null, CONFIG)}</span>
<span class="-ml-1 -tracking-[2px]">{siteConfig('STARTER_PRICING_1_PRICE', null, CONFIG)}</span>
<span className="text-xl font-medium">{siteConfig('STARTER_PRICING_1_PRICE_CURRENCY', null, CONFIG)}</span>
<span className="-ml-1 -tracking-[2px]">{siteConfig('STARTER_PRICING_1_PRICE', null, CONFIG)}</span>
<span
class="text-base font-normal text-body-color dark:text-dark-6"
className="text-base font-normal text-body-color dark:text-dark-6"
>
{siteConfig('STARTER_PRICING_1_PRICE_PERIOD', null, CONFIG)}
</span>
</h2>
<div class="mb-[50px]">
<h5 class="mb-5 text-lg font-medium text-dark dark:text-white">
<div className="mb-[50px]">
<h5 className="mb-5 text-lg font-medium text-dark dark:text-white">
{siteConfig('STARTER_PRICING_1_HEADER', null, CONFIG)}
</h5>
<div class="flex flex-col gap-[14px]">
<div className="flex flex-col gap-[14px]">
{siteConfig('STARTER_PRICING_1_FEATURES', null, CONFIG)?.split(',').map((feature, index) => {
return <p key={index} class="text-base text-body-color dark:text-dark-6">
return <p key={index} className="text-base text-body-color dark:text-dark-6">
{feature}
</p>
})}
@@ -69,7 +69,7 @@ export const Pricing = () => {
</div>
<a
href={siteConfig('STARTER_PRICING_1_BUTTON_URL')}
class="inline-block rounded-md bg-primary px-7 py-3 text-center text-base font-medium text-white transition hover:bg-blue-dark"
className="inline-block rounded-md bg-primary px-7 py-3 text-center text-base font-medium text-white transition hover:bg-blue-dark"
>
{siteConfig('STARTER_PRICING_1_BUTTON_TEXT', null, CONFIG)}
</a>
@@ -77,39 +77,39 @@ export const Pricing = () => {
</div>
{/* 第二个付费计划 */}
<div class="w-full px-4 md:w-1/2 lg:w-1/3">
<div className="w-full px-4 md:w-1/2 lg:w-1/3">
<div
class="relative z-10 mb-10 overflow-hidden rounded-xl bg-white px-8 py-10 shadow-pricing dark:bg-dark-2 sm:p-12 lg:px-6 lg:py-10 xl:p-14"
className="relative z-10 mb-10 overflow-hidden rounded-xl bg-white px-8 py-10 shadow-pricing dark:bg-dark-2 sm:p-12 lg:px-6 lg:py-10 xl:p-14"
>
<p style={{ writingMode: 'vertical-rl', textOrientation: 'mixed' }}
class="absolute p-1 right-0 top-0 inline-block rounded-bl-md rounded-tl-md bg-primary text-base font-medium text-white tracking-wider"
className="absolute p-1 right-0 top-0 inline-block rounded-bl-md rounded-tl-md bg-primary text-base font-medium text-white tracking-wider"
>
{siteConfig('STARTER_PRICING_2_TAG', null, CONFIG)}
</p>
<span
class="mb-5 block text-xl font-medium text-dark dark:text-white"
className="mb-5 block text-xl font-medium text-dark dark:text-white"
>
{siteConfig('STARTER_PRICING_2_TITLE', null, CONFIG)}
</span>
<h2
class="space-x-1 mb-11 text-4xl font-semibold text-dark dark:text-white xl:text-[42px] xl:leading-[1.21]"
className="space-x-1 mb-11 text-4xl font-semibold text-dark dark:text-white xl:text-[42px] xl:leading-[1.21]"
>
<span class="text-xl font-medium">{siteConfig('STARTER_PRICING_1_PRICE_CURRENCY', null, CONFIG)}</span>
<span class="-ml-1 -tracking-[2px]">{siteConfig('STARTER_PRICING_1_PRICE', null, CONFIG)}</span>
<span className="text-xl font-medium">{siteConfig('STARTER_PRICING_1_PRICE_CURRENCY', null, CONFIG)}</span>
<span className="-ml-1 -tracking-[2px]">{siteConfig('STARTER_PRICING_1_PRICE', null, CONFIG)}</span>
<span
class="text-base font-normal text-body-color dark:text-dark-6"
className="text-base font-normal text-body-color dark:text-dark-6"
>
{siteConfig('STARTER_PRICING_2_PRICE_PERIOD', null, CONFIG)}
</span>
</h2>
<div class="mb-[50px]">
<h5 class="mb-5 text-lg font-medium text-dark dark:text-white">
<div className="mb-[50px]">
<h5 className="mb-5 text-lg font-medium text-dark dark:text-white">
{siteConfig('STARTER_PRICING_2_HEADER', null, CONFIG)}
</h5>
<div class="flex flex-col gap-[14px]">
<div className="flex flex-col gap-[14px]">
{siteConfig('STARTER_PRICING_2_FEATURES', null, CONFIG)?.split(',').map((feature, index) => {
return <p key={index} class="text-base text-body-color dark:text-dark-6">
return <p key={index} className="text-base text-body-color dark:text-dark-6">
{feature}
</p>
})}
@@ -118,7 +118,7 @@ export const Pricing = () => {
</div>
<a
href={siteConfig('STARTER_PRICING_2_BUTTON_URL')}
class="inline-block rounded-md bg-primary px-7 py-3 text-center text-base font-medium text-white transition hover:bg-blue-dark"
className="inline-block rounded-md bg-primary px-7 py-3 text-center text-base font-medium text-white transition hover:bg-blue-dark"
>
{siteConfig('STARTER_PRICING_2_BUTTON_TEXT', null, CONFIG)}
</a>
@@ -126,34 +126,34 @@ export const Pricing = () => {
</div>
{/* 第三个付费计划 */}
<div class="w-full px-4 md:w-1/2 lg:w-1/3">
<div className="w-full px-4 md:w-1/2 lg:w-1/3">
<div
class="relative z-10 mb-10 overflow-hidden rounded-xl bg-white px-8 py-10 shadow-pricing dark:bg-dark-2 sm:p-12 lg:px-6 lg:py-10 xl:p-14"
className="relative z-10 mb-10 overflow-hidden rounded-xl bg-white px-8 py-10 shadow-pricing dark:bg-dark-2 sm:p-12 lg:px-6 lg:py-10 xl:p-14"
>
<span
class="mb-5 block text-xl font-medium text-dark dark:text-white"
className="mb-5 block text-xl font-medium text-dark dark:text-white"
>
{siteConfig('STARTER_PRICING_3_TITLE', null, CONFIG)}
</span>
<h2
class="space-x-1 mb-11 text-4xl font-semibold text-dark dark:text-white xl:text-[42px] xl:leading-[1.21]"
className="space-x-1 mb-11 text-4xl font-semibold text-dark dark:text-white xl:text-[42px] xl:leading-[1.21]"
>
<span class="text-xl font-medium">{siteConfig('STARTER_PRICING_3_PRICE_CURRENCY', null, CONFIG)}</span>
<span class="-ml-1 -tracking-[2px]">{siteConfig('STARTER_PRICING_3_PRICE', null, CONFIG)}</span>
<span className="text-xl font-medium">{siteConfig('STARTER_PRICING_3_PRICE_CURRENCY', null, CONFIG)}</span>
<span className="-ml-1 -tracking-[2px]">{siteConfig('STARTER_PRICING_3_PRICE', null, CONFIG)}</span>
<span
class="text-base font-normal text-body-color dark:text-dark-6"
className="text-base font-normal text-body-color dark:text-dark-6"
>
{siteConfig('STARTER_PRICING_3_PRICE_PERIOD', null, CONFIG)}
</span>
</h2>
<div class="mb-[50px]">
<h5 class="mb-5 text-lg font-medium text-dark dark:text-white">
<div className="mb-[50px]">
<h5 className="mb-5 text-lg font-medium text-dark dark:text-white">
{siteConfig('STARTER_PRICING_3_HEADER', null, CONFIG)}
</h5>
<div class="flex flex-col gap-[14px]">
<div className="flex flex-col gap-[14px]">
{siteConfig('STARTER_PRICING_3_FEATURES', null, CONFIG)?.split(',').map((feature, index) => {
return <p key={index} class="text-base text-body-color dark:text-dark-6">
return <p key={index} className="text-base text-body-color dark:text-dark-6">
{feature}
</p>
})}
@@ -162,7 +162,7 @@ export const Pricing = () => {
</div>
<a
href={siteConfig('STARTER_PRICING_3_BUTTON_URL')}
class="inline-block rounded-md bg-primary px-7 py-3 text-center text-base font-medium text-white transition hover:bg-blue-dark"
className="inline-block rounded-md bg-primary px-7 py-3 text-center text-base font-medium text-white transition hover:bg-blue-dark"
>
{siteConfig('STARTER_PRICING_3_BUTTON_TEXT', null, CONFIG)}
</a>

View File

@@ -0,0 +1,44 @@
import { siteConfig } from '@/lib/config'
/**
* 社交联系方式按钮组
* @returns {JSX.Element}
* @constructor
*/
const SocialButton = () => {
return <div className='w-52 justify-center flex-wrap flex my-2'>
<div className='space-x-5 md:text-xl text-3xl text-gray-600 dark:text-gray-400 text-center'>
{siteConfig('CONTACT_GITHUB') && <a target='_blank' rel='noreferrer' title={'github'} href={siteConfig('CONTACT_GITHUB')} >
<i className='fab fa-github transform hover:scale-125 duration-150'/>
</a>}
{siteConfig('CONTACT_TWITTER') && <a target='_blank' rel='noreferrer' title={'twitter'} href={siteConfig('CONTACT_TWITTER')} >
<i className='fab fa-twitter transform hover:scale-125 duration-150'/>
</a>}
{siteConfig('CONTACT_TELEGRAM') && <a target='_blank' rel='noreferrer' href={siteConfig('CONTACT_TELEGRAM')} title={'telegram'} >
<i className='fab fa-telegram transform hover:scale-125 duration-150'/>
</a>}
{siteConfig('CONTACT_LINKEDIN') && <a target='_blank' rel='noreferrer' href={siteConfig('CONTACT_LINKEDIN')} title={'linkedIn'} >
<i className='fab fa-linkedin transform hover:scale-125 duration-150'/>
</a>}
{siteConfig('CONTACT_WEIBO') && <a target='_blank' rel='noreferrer' title={'weibo'} href={siteConfig('CONTACT_WEIBO')} >
<i className='fab fa-weibo transform hover:scale-125 duration-150'/>
</a>}
{siteConfig('CONTACT_INSTAGRAM') && <a target='_blank' rel='noreferrer' title={'instagram'} href={siteConfig('CONTACT_INSTAGRAM')} >
<i className='fab fa-instagram transform hover:scale-125 duration-150'/>
</a>}
{siteConfig('CONTACT_EMAIL') && <a target='_blank' rel='noreferrer' title={'email'} href={`mailto:${siteConfig('CONTACT_EMAIL')}`} >
<i className='fas fa-envelope transform hover:scale-125 duration-150'/>
</a>}
{JSON.parse(siteConfig('ENABLE_RSS')) && <a target='_blank' rel='noreferrer' title={'RSS'} href={'/feed'} >
<i className='fas fa-rss transform hover:scale-125 duration-150'/>
</a>}
{siteConfig('CONTACT_BILIBILI') && <a target='_blank' rel='noreferrer' title={'bilibili'} href={siteConfig('CONTACT_BILIBILI')} >
<i className='fab fa-bilibili transform hover:scale-125 duration-150'/>
</a>}
{siteConfig('CONTACT_YOUTUBE') && <a target='_blank' rel='noreferrer' title={'youtube'} href={siteConfig('CONTACT_YOUTUBE')} >
<i className='fab fa-youtube transform hover:scale-125 duration-150'/>
</a>}
</div>
</div>
}
export default SocialButton

View File

@@ -11,74 +11,74 @@ export const Team = () => {
{/* <!-- ====== Team Section Start --> */}
<section
id="team"
class="overflow-hidden bg-gray-1 pb-12 pt-20 dark:bg-dark-2 lg:pb-[90px] lg:pt-[120px]"
className="overflow-hidden bg-gray-1 pb-12 pt-20 dark:bg-dark-2 lg:pb-[90px] lg:pt-[120px]"
>
<div class="container mx-auto">
<div class="-mx-4 flex flex-wrap">
<div class="w-full px-4">
<div class="mx-auto mb-[60px] max-w-[485px] text-center">
<span class="mb-2 block text-lg font-semibold text-primary">
<div className="container mx-auto">
<div className="-mx-4 flex flex-wrap">
<div className="w-full px-4">
<div className="mx-auto mb-[60px] max-w-[485px] text-center">
<span className="mb-2 block text-lg font-semibold text-primary">
{siteConfig('STARTER_TEAM_TITLE', null, CONFIG)}
</span>
<h2
class="mb-3 text-3xl font-bold leading-[1.2] text-dark dark:text-white sm:text-4xl md:text-[40px]"
className="mb-3 text-3xl font-bold leading-[1.2] text-dark dark:text-white sm:text-4xl md:text-[40px]"
>
{siteConfig('STARTER_TEAM_TEXT_1', null, CONFIG)}
</h2>
<p dangerouslySetInnerHTML={
{ __html: siteConfig('STARTER_TEAM_TEXT_2', null, CONFIG) }
} class="text-base text-body-color dark:text-dark-6">
} className="text-base text-body-color dark:text-dark-6">
</p>
</div>
</div>
</div>
{/* 团队成员排列矩阵 */}
<div class="-mx-4 flex flex-wrap justify-center">
<div className="-mx-4 flex flex-wrap justify-center">
{CONFIG.STARTER_TEAM_ITEMS.map((item, index) => {
return <div key={index} class="w-full px-4 sm:w-1/2 lg:w-1/4 xl:w-1/4">
return <div key={index} className="w-full px-4 sm:w-1/2 lg:w-1/4 xl:w-1/4">
<div
class="group mb-8 rounded-xl bg-white px-5 pb-10 pt-12 shadow-testimonial dark:bg-dark dark:shadow-none"
className="group mb-8 rounded-xl bg-white px-5 pb-10 pt-12 shadow-testimonial dark:bg-dark dark:shadow-none"
>
{/* 头像 */}
<div class="relative z-10 mx-auto mb-5 h-[120px] w-[120px]">
<div className="relative z-10 mx-auto mb-5 h-[120px] w-[120px]">
<img
src={item.STARTER_TEAM_ITEM_AVATAR}
alt="team image"
class="h-[120px] w-[120px] rounded-full"
className="h-[120px] w-[120px] rounded-full"
/>
<span
class="absolute bottom-0 left-0 -z-10 h-10 w-10 rounded-full bg-secondary opacity-0 transition-all group-hover:opacity-100"
className="absolute bottom-0 left-0 -z-10 h-10 w-10 rounded-full bg-secondary opacity-0 transition-all group-hover:opacity-100"
></span>
<span
class="absolute right-0 top-0 -z-10 opacity-0 transition-all group-hover:opacity-100"
className="absolute right-0 top-0 -z-10 opacity-0 transition-all group-hover:opacity-100"
>
<SVGAvatarBG/>
</span>
</div>
{/* 文字介绍 */}
<div class="text-center">
<div className="text-center">
<h4
class="mb-1 text-lg font-semibold text-dark dark:text-white"
className="mb-1 text-lg font-semibold text-dark dark:text-white"
>
{item.STARTER_TEAM_ITEM_NICKNAME}
</h4>
<p class="mb-5 text-sm text-body-color dark:text-dark-6">
<p className="mb-5 text-sm text-body-color dark:text-dark-6">
{item.STARTER_TEAM_ITEM_DESCRIPTION}
</p>
{/* 社交链接 */}
<div class="flex items-center justify-center gap-5">
<a class="text-dark-6 hover:text-primary" >
<div className="flex items-center justify-center gap-5">
<a className="text-dark-6 hover:text-primary" >
<SVGFacebook/>
</a>
<a class="text-dark-6 hover:text-primary" >
<a className="text-dark-6 hover:text-primary" >
<SVGTwitter/>
</a>
<a class="text-dark-6 hover:text-primary" >
<a className="text-dark-6 hover:text-primary" >
<SVGInstagram/>
</a>
</div>

View File

@@ -20,6 +20,7 @@ const loadExternal = async () => {
return
}
// Testimonial
// eslint-disable-next-line no-unused-vars
const testimonialSwiper = new Swiper('.testimonial-carousel', {
slidesPerView: 1,
spaceBetween: 30,
@@ -45,7 +46,6 @@ const loadExternal = async () => {
}
}
});
console.log('swiper', testimonialSwiper)
};
export const Testimonials = () => {
@@ -58,64 +58,64 @@ export const Testimonials = () => {
{/* <!-- ====== Testimonial Section Start --> */}
<section
id="testimonials"
class="overflow-hidden bg-gray-1 py-20 dark:bg-dark-2 md:py-[120px]"
className="overflow-hidden bg-gray-1 py-20 dark:bg-dark-2 md:py-[120px]"
>
<div class="container mx-auto">
<div class="-mx-4 flex flex-wrap justify-center">
<div class="w-full px-4">
<div class="mx-auto mb-[60px] max-w-[485px] text-center">
<span class="mb-2 block text-lg font-semibold text-primary">
<div className="container mx-auto">
<div className="-mx-4 flex flex-wrap justify-center">
<div className="w-full px-4">
<div className="mx-auto mb-[60px] max-w-[485px] text-center">
<span className="mb-2 block text-lg font-semibold text-primary">
{siteConfig('STARTER_TESTIMONIALS_TITLE', null, CONFIG)}
</span>
<h2
class="mb-3 text-3xl font-bold leading-[1.2] text-dark dark:text-white sm:text-4xl md:text-[40px]"
className="mb-3 text-3xl font-bold leading-[1.2] text-dark dark:text-white sm:text-4xl md:text-[40px]"
>
{siteConfig('STARTER_TESTIMONIALS_TEXT_1', null, CONFIG)}
</h2>
<p class="text-base text-body-color dark:text-dark-6">
<p className="text-base text-body-color dark:text-dark-6">
{siteConfig('STARTER_TESTIMONIALS_TEXT_2', null, CONFIG)}
</p>
</div>
</div>
</div>
<div class="-m-5">
<div class="swiper testimonial-carousel common-carousel p-5">
<div class="swiper-wrapper">
<div className="-m-5">
<div className="swiper testimonial-carousel common-carousel p-5">
<div className="swiper-wrapper">
{/* 用户评价卡牌 */}
{CONFIG.STARTER_TESTIMONIALS_ITEMS.map((item, index) => {
return <div key={index} class="swiper-slide">
return <div key={index} className="swiper-slide">
<div
class="rounded-xl bg-white px-4 py-[30px] shadow-testimonial dark:bg-dark sm:px-[30px]"
className="rounded-xl bg-white px-4 py-[30px] shadow-testimonial dark:bg-dark sm:px-[30px]"
>
<div class="mb-[18px] flex items-center gap-[2px]">
<div className="mb-[18px] flex items-center gap-[2px]">
{ratings.map((rating, index) => (
<img key={index} alt="star icon"// 为每个图片设置唯一的 key 属性
src={siteConfig('STARTER_TESTIMONIALS_STAR_ICON', null, CONFIG)}/>
))}
</div>
<p class="mb-6 text-base text-body-color dark:text-dark-6">
<p className="mb-6 text-base text-body-color dark:text-dark-6">
{item.STARTER_TESTIMONIALS_ITEM_TEXT}
</p>
<a href={item.STARTER_TESTIMONIALS_ITEM_URL} class="flex items-center gap-4">
<div class="h-[50px] w-[50px] overflow-hidden rounded-full">
<a href={item.STARTER_TESTIMONIALS_ITEM_URL} className="flex items-center gap-4">
<div className="h-[50px] w-[50px] overflow-hidden rounded-full">
<img
src={item.STARTER_TESTIMONIALS_ITEM_AVATAR}
alt="author"
class="h-[50px] w-[50px] overflow-hidden rounded-full object-cover"
className="h-[50px] w-[50px] overflow-hidden rounded-full object-cover"
/>
</div>
<div>
<h3
class="text-sm font-semibold text-dark dark:text-white"
className="text-sm font-semibold text-dark dark:text-white"
>
{item.STARTER_TESTIMONIALS_ITEM_NICKNAME}
</h3>
<p class="text-xs text-body-secondary">
<p className="text-xs text-body-secondary">
{item.STARTER_TESTIMONIALS_ITEM_DESCRIPTION}
</p>
</div>
@@ -127,11 +127,11 @@ export const Testimonials = () => {
</div>
{/* 切换按钮 */}
<div class="mt-[60px] flex items-center justify-center gap-1">
<div class="swiper-button-prev">
<div className="mt-[60px] flex items-center justify-center gap-1">
<div className="swiper-button-prev">
<SVGLeftArrow/>
</div>
<div class="swiper-button-next">
<div className="swiper-button-next">
<SVGRightArrow/>
</div>
</div>

View File

@@ -0,0 +1,12 @@
export const SVGEmail = () => {
return <svg
width="34"
height="25"
viewBox="0 0 34 25"
className="fill-current"
>
<path
d="M30.5156 0.960938H3.17188C1.42188 0.960938 0 2.38281 0 4.13281V20.9219C0 22.6719 1.42188 24.0938 3.17188 24.0938H30.5156C32.2656 24.0938 33.6875 22.6719 33.6875 20.9219V4.13281C33.6875 2.38281 32.2656 0.960938 30.5156 0.960938ZM30.5156 2.875C30.7891 2.875 31.0078 2.92969 31.2266 3.09375L17.6094 11.3516C17.1172 11.625 16.5703 11.625 16.0781 11.3516L2.46094 3.09375C2.67969 2.98438 2.89844 2.875 3.17188 2.875H30.5156ZM30.5156 22.125H3.17188C2.51562 22.125 1.91406 21.5781 1.91406 20.8672V5.00781L15.0391 12.9922C15.5859 13.3203 16.1875 13.4844 16.7891 13.4844C17.3906 13.4844 17.9922 13.3203 18.5391 12.9922L31.6641 5.00781V20.8672C31.7734 21.5781 31.1719 22.125 30.5156 22.125Z"
/>
</svg>
}

View File

@@ -5,7 +5,7 @@ export const SVGFacebook = () => {
viewBox="0 0 18 18"
fill="none"
xmlns="http://www.w3.org/2000/svg"
class="fill-current"
className="fill-current"
>
<path
d="M13.3315 7.25625H11.7565H11.194V6.69375V4.95V4.3875H11.7565H12.9377C13.2471 4.3875 13.5002 4.1625 13.5002 3.825V0.84375C13.5002 0.534375 13.2752 0.28125 12.9377 0.28125H10.8846C8.66272 0.28125 7.11584 1.85625 7.11584 4.19062V6.6375V7.2H6.55334H4.64084C4.24709 7.2 3.88147 7.50937 3.88147 7.95937V9.98438C3.88147 10.3781 4.19084 10.7438 4.64084 10.7438H6.49709H7.05959V11.3063V16.9594C7.05959 17.3531 7.36897 17.7188 7.81897 17.7188H10.4627C10.6315 17.7188 10.7721 17.6344 10.8846 17.5219C10.9971 17.4094 11.0815 17.2125 11.0815 17.0437V11.3344V10.7719H11.6721H12.9377C13.3033 10.7719 13.5846 10.5469 13.6408 10.2094V10.1813V10.1531L14.0346 8.2125C14.0627 8.01562 14.0346 7.79063 13.8658 7.56562C13.8096 7.425 13.5565 7.28437 13.3315 7.25625Z"

View File

@@ -0,0 +1,255 @@
export const SVGFooterCircleBG = () => {
return <svg
width="102"
height="102"
viewBox="0 0 102 102"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M1.8667 33.1956C2.89765 33.1956 3.7334 34.0318 3.7334 35.0633C3.7334 36.0947 2.89765 36.9309 1.8667 36.9309C0.835744 36.9309 4.50645e-08 36.0947 0 35.0633C-4.50645e-08 34.0318 0.835744 33.1956 1.8667 33.1956Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M18.2939 33.1956C19.3249 33.1956 20.1606 34.0318 20.1606 35.0633C20.1606 36.0947 19.3249 36.9309 18.2939 36.9309C17.263 36.9309 16.4272 36.0947 16.4272 35.0633C16.4272 34.0318 17.263 33.1956 18.2939 33.1956Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M34.7209 33.195C35.7519 33.195 36.5876 34.0311 36.5876 35.0626C36.5876 36.0941 35.7519 36.9303 34.7209 36.9303C33.69 36.9303 32.8542 36.0941 32.8542 35.0626C32.8542 34.0311 33.69 33.195 34.7209 33.195Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M50.9341 33.195C51.965 33.195 52.8008 34.0311 52.8008 35.0626C52.8008 36.0941 51.965 36.9303 50.9341 36.9303C49.9031 36.9303 49.0674 36.0941 49.0674 35.0626C49.0674 34.0311 49.9031 33.195 50.9341 33.195Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M1.8667 16.7605C2.89765 16.7605 3.7334 17.5966 3.7334 18.6281C3.7334 19.6596 2.89765 20.4957 1.8667 20.4957C0.835744 20.4957 4.50645e-08 19.6596 0 18.6281C-4.50645e-08 17.5966 0.835744 16.7605 1.8667 16.7605Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M18.2939 16.7605C19.3249 16.7605 20.1606 17.5966 20.1606 18.6281C20.1606 19.6596 19.3249 20.4957 18.2939 20.4957C17.263 20.4957 16.4272 19.6596 16.4272 18.6281C16.4272 17.5966 17.263 16.7605 18.2939 16.7605Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M34.7209 16.7605C35.7519 16.7605 36.5876 17.5966 36.5876 18.6281C36.5876 19.6596 35.7519 20.4957 34.7209 20.4957C33.69 20.4957 32.8542 19.6596 32.8542 18.6281C32.8542 17.5966 33.69 16.7605 34.7209 16.7605Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M50.9341 16.7605C51.965 16.7605 52.8008 17.5966 52.8008 18.6281C52.8008 19.6596 51.965 20.4957 50.9341 20.4957C49.9031 20.4957 49.0674 19.6596 49.0674 18.6281C49.0674 17.5966 49.9031 16.7605 50.9341 16.7605Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M1.8667 0.324951C2.89765 0.324951 3.7334 1.16115 3.7334 2.19261C3.7334 3.22408 2.89765 4.06024 1.8667 4.06024C0.835744 4.06024 4.50645e-08 3.22408 0 2.19261C-4.50645e-08 1.16115 0.835744 0.324951 1.8667 0.324951Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M18.2939 0.324951C19.3249 0.324951 20.1606 1.16115 20.1606 2.19261C20.1606 3.22408 19.3249 4.06024 18.2939 4.06024C17.263 4.06024 16.4272 3.22408 16.4272 2.19261C16.4272 1.16115 17.263 0.324951 18.2939 0.324951Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M34.7209 0.325302C35.7519 0.325302 36.5876 1.16147 36.5876 2.19293C36.5876 3.2244 35.7519 4.06056 34.7209 4.06056C33.69 4.06056 32.8542 3.2244 32.8542 2.19293C32.8542 1.16147 33.69 0.325302 34.7209 0.325302Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M50.9341 0.325302C51.965 0.325302 52.8008 1.16147 52.8008 2.19293C52.8008 3.2244 51.965 4.06056 50.9341 4.06056C49.9031 4.06056 49.0674 3.2244 49.0674 2.19293C49.0674 1.16147 49.9031 0.325302 50.9341 0.325302Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M66.9037 33.1956C67.9346 33.1956 68.7704 34.0318 68.7704 35.0633C68.7704 36.0947 67.9346 36.9309 66.9037 36.9309C65.8727 36.9309 65.037 36.0947 65.037 35.0633C65.037 34.0318 65.8727 33.1956 66.9037 33.1956Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M83.3307 33.1956C84.3616 33.1956 85.1974 34.0318 85.1974 35.0633C85.1974 36.0947 84.3616 36.9309 83.3307 36.9309C82.2997 36.9309 81.464 36.0947 81.464 35.0633C81.464 34.0318 82.2997 33.1956 83.3307 33.1956Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M99.7576 33.1956C100.789 33.1956 101.624 34.0318 101.624 35.0633C101.624 36.0947 100.789 36.9309 99.7576 36.9309C98.7266 36.9309 97.8909 36.0947 97.8909 35.0633C97.8909 34.0318 98.7266 33.1956 99.7576 33.1956Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M66.9037 16.7605C67.9346 16.7605 68.7704 17.5966 68.7704 18.6281C68.7704 19.6596 67.9346 20.4957 66.9037 20.4957C65.8727 20.4957 65.037 19.6596 65.037 18.6281C65.037 17.5966 65.8727 16.7605 66.9037 16.7605Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M83.3307 16.7605C84.3616 16.7605 85.1974 17.5966 85.1974 18.6281C85.1974 19.6596 84.3616 20.4957 83.3307 20.4957C82.2997 20.4957 81.464 19.6596 81.464 18.6281C81.464 17.5966 82.2997 16.7605 83.3307 16.7605Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M99.7576 16.7605C100.789 16.7605 101.624 17.5966 101.624 18.6281C101.624 19.6596 100.789 20.4957 99.7576 20.4957C98.7266 20.4957 97.8909 19.6596 97.8909 18.6281C97.8909 17.5966 98.7266 16.7605 99.7576 16.7605Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M66.9037 0.324966C67.9346 0.324966 68.7704 1.16115 68.7704 2.19261C68.7704 3.22408 67.9346 4.06024 66.9037 4.06024C65.8727 4.06024 65.037 3.22408 65.037 2.19261C65.037 1.16115 65.8727 0.324966 66.9037 0.324966Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M83.3307 0.324951C84.3616 0.324951 85.1974 1.16115 85.1974 2.19261C85.1974 3.22408 84.3616 4.06024 83.3307 4.06024C82.2997 4.06024 81.464 3.22408 81.464 2.19261C81.464 1.16115 82.2997 0.324951 83.3307 0.324951Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M99.7576 0.324951C100.789 0.324951 101.624 1.16115 101.624 2.19261C101.624 3.22408 100.789 4.06024 99.7576 4.06024C98.7266 4.06024 97.8909 3.22408 97.8909 2.19261C97.8909 1.16115 98.7266 0.324951 99.7576 0.324951Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M1.8667 82.2029C2.89765 82.2029 3.7334 83.039 3.7334 84.0705C3.7334 85.102 2.89765 85.9382 1.8667 85.9382C0.835744 85.9382 4.50645e-08 85.102 0 84.0705C-4.50645e-08 83.039 0.835744 82.2029 1.8667 82.2029Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M18.2939 82.2029C19.3249 82.2029 20.1606 83.039 20.1606 84.0705C20.1606 85.102 19.3249 85.9382 18.2939 85.9382C17.263 85.9382 16.4272 85.102 16.4272 84.0705C16.4272 83.039 17.263 82.2029 18.2939 82.2029Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M34.7209 82.2026C35.7519 82.2026 36.5876 83.0387 36.5876 84.0702C36.5876 85.1017 35.7519 85.9378 34.7209 85.9378C33.69 85.9378 32.8542 85.1017 32.8542 84.0702C32.8542 83.0387 33.69 82.2026 34.7209 82.2026Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M50.9341 82.2026C51.965 82.2026 52.8008 83.0387 52.8008 84.0702C52.8008 85.1017 51.965 85.9378 50.9341 85.9378C49.9031 85.9378 49.0674 85.1017 49.0674 84.0702C49.0674 83.0387 49.9031 82.2026 50.9341 82.2026Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M1.8667 65.7677C2.89765 65.7677 3.7334 66.6039 3.7334 67.6353C3.7334 68.6668 2.89765 69.503 1.8667 69.503C0.835744 69.503 4.50645e-08 68.6668 0 67.6353C-4.50645e-08 66.6039 0.835744 65.7677 1.8667 65.7677Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M18.2939 65.7677C19.3249 65.7677 20.1606 66.6039 20.1606 67.6353C20.1606 68.6668 19.3249 69.503 18.2939 69.503C17.263 69.503 16.4272 68.6668 16.4272 67.6353C16.4272 66.6039 17.263 65.7677 18.2939 65.7677Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M34.7209 65.7674C35.7519 65.7674 36.5876 66.6036 36.5876 67.635C36.5876 68.6665 35.7519 69.5027 34.7209 69.5027C33.69 69.5027 32.8542 68.6665 32.8542 67.635C32.8542 66.6036 33.69 65.7674 34.7209 65.7674Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M50.9341 65.7674C51.965 65.7674 52.8008 66.6036 52.8008 67.635C52.8008 68.6665 51.965 69.5027 50.9341 69.5027C49.9031 69.5027 49.0674 68.6665 49.0674 67.635C49.0674 66.6036 49.9031 65.7674 50.9341 65.7674Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M1.8667 98.2644C2.89765 98.2644 3.7334 99.1005 3.7334 100.132C3.7334 101.163 2.89765 102 1.8667 102C0.835744 102 4.50645e-08 101.163 0 100.132C-4.50645e-08 99.1005 0.835744 98.2644 1.8667 98.2644Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M1.8667 49.3322C2.89765 49.3322 3.7334 50.1684 3.7334 51.1998C3.7334 52.2313 2.89765 53.0675 1.8667 53.0675C0.835744 53.0675 4.50645e-08 52.2313 0 51.1998C-4.50645e-08 50.1684 0.835744 49.3322 1.8667 49.3322Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M18.2939 98.2644C19.3249 98.2644 20.1606 99.1005 20.1606 100.132C20.1606 101.163 19.3249 102 18.2939 102C17.263 102 16.4272 101.163 16.4272 100.132C16.4272 99.1005 17.263 98.2644 18.2939 98.2644Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M18.2939 49.3322C19.3249 49.3322 20.1606 50.1684 20.1606 51.1998C20.1606 52.2313 19.3249 53.0675 18.2939 53.0675C17.263 53.0675 16.4272 52.2313 16.4272 51.1998C16.4272 50.1684 17.263 49.3322 18.2939 49.3322Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M34.7209 98.2647C35.7519 98.2647 36.5876 99.1008 36.5876 100.132C36.5876 101.164 35.7519 102 34.7209 102C33.69 102 32.8542 101.164 32.8542 100.132C32.8542 99.1008 33.69 98.2647 34.7209 98.2647Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M50.9341 98.2647C51.965 98.2647 52.8008 99.1008 52.8008 100.132C52.8008 101.164 51.965 102 50.9341 102C49.9031 102 49.0674 101.164 49.0674 100.132C49.0674 99.1008 49.9031 98.2647 50.9341 98.2647Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M34.7209 49.3326C35.7519 49.3326 36.5876 50.1687 36.5876 51.2002C36.5876 52.2317 35.7519 53.0678 34.7209 53.0678C33.69 53.0678 32.8542 52.2317 32.8542 51.2002C32.8542 50.1687 33.69 49.3326 34.7209 49.3326Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M50.9341 49.3326C51.965 49.3326 52.8008 50.1687 52.8008 51.2002C52.8008 52.2317 51.965 53.0678 50.9341 53.0678C49.9031 53.0678 49.0674 52.2317 49.0674 51.2002C49.0674 50.1687 49.9031 49.3326 50.9341 49.3326Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M66.9037 82.2029C67.9346 82.2029 68.7704 83.0391 68.7704 84.0705C68.7704 85.102 67.9346 85.9382 66.9037 85.9382C65.8727 85.9382 65.037 85.102 65.037 84.0705C65.037 83.0391 65.8727 82.2029 66.9037 82.2029Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M83.3307 82.2029C84.3616 82.2029 85.1974 83.0391 85.1974 84.0705C85.1974 85.102 84.3616 85.9382 83.3307 85.9382C82.2997 85.9382 81.464 85.102 81.464 84.0705C81.464 83.0391 82.2997 82.2029 83.3307 82.2029Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M99.7576 82.2029C100.789 82.2029 101.624 83.039 101.624 84.0705C101.624 85.102 100.789 85.9382 99.7576 85.9382C98.7266 85.9382 97.8909 85.102 97.8909 84.0705C97.8909 83.039 98.7266 82.2029 99.7576 82.2029Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M66.9037 65.7674C67.9346 65.7674 68.7704 66.6036 68.7704 67.635C68.7704 68.6665 67.9346 69.5027 66.9037 69.5027C65.8727 69.5027 65.037 68.6665 65.037 67.635C65.037 66.6036 65.8727 65.7674 66.9037 65.7674Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M83.3307 65.7677C84.3616 65.7677 85.1974 66.6039 85.1974 67.6353C85.1974 68.6668 84.3616 69.503 83.3307 69.503C82.2997 69.503 81.464 68.6668 81.464 67.6353C81.464 66.6039 82.2997 65.7677 83.3307 65.7677Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M99.7576 65.7677C100.789 65.7677 101.624 66.6039 101.624 67.6353C101.624 68.6668 100.789 69.503 99.7576 69.503C98.7266 69.503 97.8909 68.6668 97.8909 67.6353C97.8909 66.6039 98.7266 65.7677 99.7576 65.7677Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M66.9037 98.2644C67.9346 98.2644 68.7704 99.1005 68.7704 100.132C68.7704 101.163 67.9346 102 66.9037 102C65.8727 102 65.037 101.163 65.037 100.132C65.037 99.1005 65.8727 98.2644 66.9037 98.2644Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M66.9037 49.3322C67.9346 49.3322 68.7704 50.1684 68.7704 51.1998C68.7704 52.2313 67.9346 53.0675 66.9037 53.0675C65.8727 53.0675 65.037 52.2313 65.037 51.1998C65.037 50.1684 65.8727 49.3322 66.9037 49.3322Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M83.3307 98.2644C84.3616 98.2644 85.1974 99.1005 85.1974 100.132C85.1974 101.163 84.3616 102 83.3307 102C82.2997 102 81.464 101.163 81.464 100.132C81.464 99.1005 82.2997 98.2644 83.3307 98.2644Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M83.3307 49.3322C84.3616 49.3322 85.1974 50.1684 85.1974 51.1998C85.1974 52.2313 84.3616 53.0675 83.3307 53.0675C82.2997 53.0675 81.464 52.2313 81.464 51.1998C81.464 50.1684 82.2997 49.3322 83.3307 49.3322Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M99.7576 98.2644C100.789 98.2644 101.624 99.1005 101.624 100.132C101.624 101.163 100.789 102 99.7576 102C98.7266 102 97.8909 101.163 97.8909 100.132C97.8909 99.1005 98.7266 98.2644 99.7576 98.2644Z"
fill="white"
fillOpacity="0.08"
></path>
<path
d="M99.7576 49.3322C100.789 49.3322 101.624 50.1684 101.624 51.1998C101.624 52.2313 100.789 53.0675 99.7576 53.0675C98.7266 53.0675 97.8909 52.2313 97.8909 51.1998C97.8909 50.1684 98.7266 49.3322 99.7576 49.3322Z"
fill="white"
fillOpacity="0.08"
></path>
</svg>
}

View File

@@ -5,7 +5,7 @@ export const SVGInstagram = () => {
viewBox="0 0 18 18"
fill="none"
xmlns="http://www.w3.org/2000/svg"
class="fill-current"
className="fill-current"
>
<path
d="M9.02429 11.8066C10.5742 11.8066 11.8307 10.5501 11.8307 9.00018C11.8307 7.45022 10.5742 6.19373 9.02429 6.19373C7.47433 6.19373 6.21783 7.45022 6.21783 9.00018C6.21783 10.5501 7.47433 11.8066 9.02429 11.8066Z"

View File

@@ -1,6 +1,6 @@
export const SVGLeftArrow = () => {
return <svg
class="fill-current"
className="fill-current"
width="22"
height="22"
viewBox="0 0 22 22"

View File

@@ -0,0 +1,15 @@
export const SVGLocation = () => {
return <svg
width="29"
height="35"
viewBox="0 0 29 35"
className="fill-current"
>
<path
d="M14.5 0.710938C6.89844 0.710938 0.664062 6.72656 0.664062 14.0547C0.664062 19.9062 9.03125 29.5859 12.6406 33.5234C13.1328 34.0703 13.7891 34.3437 14.5 34.3437C15.2109 34.3437 15.8672 34.0703 16.3594 33.5234C19.9688 29.6406 28.3359 19.9062 28.3359 14.0547C28.3359 6.67188 22.1016 0.710938 14.5 0.710938ZM14.9375 32.2109C14.6641 32.4844 14.2812 32.4844 14.0625 32.2109C11.3828 29.3125 2.57812 19.3594 2.57812 14.0547C2.57812 7.71094 7.9375 2.625 14.5 2.625C21.0625 2.625 26.4219 7.76562 26.4219 14.0547C26.4219 19.3594 17.6172 29.2578 14.9375 32.2109Z"
/>
<path
d="M14.5 8.58594C11.2734 8.58594 8.59375 11.2109 8.59375 14.4922C8.59375 17.7188 11.2187 20.3984 14.5 20.3984C17.7812 20.3984 20.4062 17.7734 20.4062 14.4922C20.4062 11.2109 17.7266 8.58594 14.5 8.58594ZM14.5 18.4297C12.3125 18.4297 10.5078 16.625 10.5078 14.4375C10.5078 12.25 12.3125 10.4453 14.5 10.4453C16.6875 10.4453 18.4922 12.25 18.4922 14.4375C18.4922 16.625 16.6875 18.4297 14.5 18.4297Z"
/>
</svg>
}

View File

@@ -3,7 +3,7 @@ export const SVGQuestion = () => {
width="32"
height="32"
viewBox="0 0 34 34"
class="fill-current"
className="fill-current"
>
<path
d="M17.0008 0.690674C7.96953 0.690674 0.691406 7.9688 0.691406 17C0.691406 26.0313 7.96953 33.3625 17.0008 33.3625C26.032 33.3625 33.3633 26.0313 33.3633 17C33.3633 7.9688 26.032 0.690674 17.0008 0.690674ZM17.0008 31.5032C9.03203 31.5032 2.55078 24.9688 2.55078 17C2.55078 9.0313 9.03203 2.55005 17.0008 2.55005C24.9695 2.55005 31.5039 9.0313 31.5039 17C31.5039 24.9688 24.9695 31.5032 17.0008 31.5032Z"

View File

@@ -1,6 +1,6 @@
export const SVGRightArrow = () => {
return <svg
class="fill-current"
className="fill-current"
width="22"
height="22"
viewBox="0 0 22 22"

View File

@@ -5,7 +5,7 @@ export const SVGTwitter = () => {
viewBox="0 0 18 18"
fill="none"
xmlns="http://www.w3.org/2000/svg"
class="fill-current"
className="fill-current"
>
<path
d="M16.4647 4.83752C16.565 4.72065 16.4343 4.56793 16.2859 4.62263C15.9549 4.74474 15.6523 4.82528 15.2049 4.875C15.7552 4.56855 16.0112 4.13054 16.2194 3.59407C16.2696 3.46467 16.1182 3.34725 15.9877 3.40907C15.458 3.66023 14.8864 3.84658 14.2854 3.95668C13.6913 3.3679 12.8445 3 11.9077 3C10.1089 3 8.65027 4.35658 8.65027 6.02938C8.65027 6.26686 8.67937 6.49818 8.73427 6.71966C6.14854 6.59919 3.84286 5.49307 2.24098 3.79696C2.13119 3.68071 1.93197 3.69614 1.86361 3.83792C1.68124 4.21619 1.57957 4.63582 1.57957 5.07762C1.57957 6.12843 2.15446 7.05557 3.02837 7.59885C2.63653 7.58707 2.2618 7.51073 1.91647 7.38116C1.74834 7.31808 1.5556 7.42893 1.57819 7.59847C1.75162 8.9004 2.80568 9.97447 4.16624 10.2283C3.89302 10.2978 3.60524 10.3347 3.30754 10.3347C3.23536 10.3347 3.16381 10.3324 3.0929 10.3281C2.91247 10.3169 2.76583 10.4783 2.84319 10.6328C3.35357 11.6514 4.45563 12.3625 5.73809 12.3847C4.62337 13.1974 3.21889 13.6816 1.69269 13.6816C1.50451 13.6816 1.42378 13.9235 1.59073 14.0056C2.88015 14.6394 4.34854 15 5.90878 15C11.9005 15 15.1765 10.384 15.1765 6.38067C15.1765 6.24963 15.1732 6.11858 15.1672 5.98877C15.6535 5.66205 16.0907 5.27354 16.4647 4.83752Z"

View File

@@ -152,10 +152,10 @@ const CONFIG = {
STARTER_FAQ_TEXT_2: '我们收集了常见的用户疑问',
STARTER_FAQ_1_QUESTION: 'NotionNext有帮助文档吗',
STARTER_FAQ_1_ANSWER: 'NotionNext提供了<a href="https://docs.tangly1024.com/about" class="underline">帮助文档</a>,操作<a href="https://www.bilibili.com/video/BV1fM4y1L7Qi/" class="underline">演示视频</a>,以及<a href="https://docs.tangly1024.com/article/chat-community" class="underline">交流社群</a>来协助您完成网站的搭建部署',
STARTER_FAQ_1_ANSWER: 'NotionNext提供了<a href="https://docs.tangly1024.com/about" className="underline">帮助文档</a>,操作<a href="https://www.bilibili.com/video/BV1fM4y1L7Qi/" className="underline">演示视频</a>,以及<a href="https://docs.tangly1024.com/article/chat-community" className="underline">交流社群</a>来协助您完成网站的搭建部署',
STARTER_FAQ_2_QUESTION: '部署后要如何编写文章?',
STARTER_FAQ_2_ANSWER: '您可以在Notion中之间添加或修改类型为Post的页面内容将被实时同步在站点中详情参考<a class="underline" href="https://docs.tangly1024.com/article/start-to-write">《帮助文档》</a>',
STARTER_FAQ_2_ANSWER: '您可以在Notion中之间添加或修改类型为Post的页面内容将被实时同步在站点中详情参考<a className="underline" href="https://docs.tangly1024.com/article/start-to-write">《帮助文档》</a>',
STARTER_FAQ_3_QUESTION: '站点部署失败,更新失败?',
STARTER_FAQ_3_ANSWER: '通常是配置修改错误导致请检查配置或者重试操作步骤或者通过Vercel后台的Deployments中找到错误日志并向网友求助',
@@ -165,7 +165,7 @@ const CONFIG = {
STARTER_TEAM_TITLE: '团队成员',
STARTER_TEAM_TEXT_1: '我们的开发者团队',
STARTER_TEAM_TEXT_2: 'NotionNext 由众多开源技术爱好者们共同合作完成,感谢每一位<a class="underline" href="https://github.com/tangly1024/NotionNext/graphs/contributors">贡献者</a>',
STARTER_TEAM_TEXT_2: 'NotionNext 由众多开源技术爱好者们共同合作完成,感谢每一位<a className="underline" href="https://github.com/tangly1024/NotionNext/graphs/contributors">贡献者</a>',
// 这里不支持CONFIG和环境变量需要一一修改此处代码。
STARTER_TEAM_ITEMS: [
@@ -193,9 +193,92 @@ const CONFIG = {
// 博客文章区块
STARTER_BLOG_TITLE: '我们的博客',
STARTER_BLOG_COUNT: 3, // 首页博文区块默认展示前3篇文章
STARTER_BLOG_TEXT_1: '最近的新闻',
STARTER_BLOG_TEXT_2: '这里会发布一些关于NotionNext的最新动态包括新的动向、新的未来计划以及新功能的特性',
// 联系模块
STARTER_CONTACT_TITLE: '联系我们',
STARTER_CONTACT_TEXT: '告诉我们您遇到的问题',
STARTER_CONTACT_LOCATION_TITLE: '我们的位置',
STARTER_CONTACT_LOCATION_TEXT: '中国,福建',
STARTER_CONTACT_EMAIL_TITLE: '我们如何帮助您?',
STARTER_CONTACT_EMAIL_TEXT: 'mail@tangly1024.com',
STARTER_CONTACT_MSG_TITLE: '向我们留言',
STARTER_CONTACT_MSG_NAME: '姓名',
STARTER_CONTACT_MSG_EMAIL: '邮箱地址',
STARTER_CONTACT_MSG_PHONE: '联系电话',
STARTER_CONTACT_MSG_TEXT: '消息内容',
STARTER_CONTACT_MSG_SEND: '发送消息',
// 合作伙伴的图标
STARTER_BRANDS: [
{
IMAGE: '/images/starter/brands/graygrids.svg',
IMAGE_WHITE: '/images/starter/brands/graygrids-white.svg',
URL: 'https://graygrids.com/',
TITLE: 'graygrids'
},
{
IMAGE: '/images/starter/brands/lineicons.svg',
IMAGE_WHITE: '/images/starter/brands/lineicons-white.svg',
URL: 'https://lineicons.com/',
TITLE: 'lineicons'
},
{
IMAGE: '/images/starter/brands/uideck.svg',
IMAGE_WHITE: '/images/starter/brands/uideck-white.svg',
URL: 'https://uideck.com/',
TITLE: 'uideck'
},
{
IMAGE: '/images/starter/brands/ayroui.svg',
IMAGE_WHITE: '/images/starter/brands/ayroui-white.svg',
URL: 'https://ayroui.com/',
TITLE: 'ayroui'
},
{
IMAGE: '/images/starter/brands/tailgrids.svg',
IMAGE_WHITE: '/images/starter/brands/tailgrids-white.svg',
URL: '"https://tailgrids.com/',
TITLE: 'tailgrids'
}
],
STARTER_FOOTER_SLOGAN: '我们通过技术为品牌和公司创造数字体验。',
// 页脚三列菜单组
STARTER_FOOTER_LINK_GROUP: [
{
TITLE: '关于我们',
LINK_GROUP: [
{ TITLE: '官方主页', URL: '/#home' },
{ TITLE: '操作文档', URL: 'https://docs.tangly1024.com/about' },
{ TITLE: '帮助支持', URL: 'https://docs.tangly1024.com/article/how-to-question' },
{ TITLE: '合作申请', URL: 'https://docs.tangly1024.com/my-service' }
]
},
{
TITLE: '功能特性',
LINK_GROUP: [
{ TITLE: '部署指南', URL: 'https://docs.tangly1024.com/article/vercel-deploy-notion-next' },
{ TITLE: '升级指南', URL: 'https://docs.tangly1024.com/article/how-to-update-notionnext' },
{ TITLE: '最新版本', URL: 'https://docs.tangly1024.com/article/latest' }
]
},
{
TITLE: 'Notion写作',
LINK_GROUP: [
{ TITLE: 'Notion开始写作', URL: 'https://docs.tangly1024.com/article/start-to-write' },
{ TITLE: '快捷键提升效率', URL: 'https://docs.tangly1024.com/article/notion-short-key' },
{ TITLE: '中国大陆使用Notion', URL: 'https://docs.tangly1024.com/article/notion-faster' }
]
}
],
STARTER_FOOTER_BLOG_LATEST_TITLE: '最新文章',
STARTER_FOOTER_PRIVACY_POLICY_TEXT: '隐私政策',
STARTER_FOOTER_PRIVACY_POLICY_URL: '/privacy-policy',

View File

@@ -41,6 +41,7 @@ const loadExternal = async () => {
await loadExternalResource('https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js', 'js');
// 配合animatecss 实现延时滚动动画和AOS动画相似
const WOW = window.WOW;
console.log('加载WOW动画', WOW)
if (WOW) {
new WOW().init();
}
@@ -61,13 +62,13 @@ const LayoutBase = (props) => {
loadExternal()
}, [])
return <div id='theme-starter'>
return <div id='theme-starter' className={`${siteConfig('FONT_STYLE')} min-h-screen flex flex-col scroll-smooth`}>
<Style/>
<NavBar {...props}/>
{children}
<Footer/>
<Footer {...props}/>
{/* 悬浮按钮 */}
<BackToTopButton/>
@@ -83,15 +84,25 @@ const LayoutBase = (props) => {
const LayoutIndex = (props) => {
return (
<>
{/* 英雄区 */}
<Hero/>
{/* 产品特性 */}
<Features/>
{/* 关于 */}
<About/>
{/* 价格 */}
<Pricing/>
{/* 评价展示 */}
<Testimonials/>
{/* 常见问题 */}
<FAQ/>
{/* 团队介绍 */}
<Team/>
<Blog/>
{/* 博文列表 */}
<Blog {...props}/>
{/* 联系方式 */}
<Contact/>
{/* 合作伙伴 */}
<Brand/>
</>
)