Merge remote-tracking branch 'origin/main' into cloudflare

This commit is contained in:
javayhu 2025-08-16 08:19:56 +08:00
commit 1f7c38f9f5
8 changed files with 22 additions and 22 deletions

View File

@ -6,7 +6,7 @@ export default function CallToActionSection() {
const t = useTranslations('HomePage.calltoaction'); const t = useTranslations('HomePage.calltoaction');
return ( return (
<section id="call-to-action" className="px-4 py-24 bg-background"> <section id="call-to-action" className="px-4 py-24 bg-muted/50">
<div className="mx-auto max-w-5xl px-6"> <div className="mx-auto max-w-5xl px-6">
<div className="text-center"> <div className="text-center">
<h2 className="text-balance text-4xl font-semibold lg:text-5xl"> <h2 className="text-balance text-4xl font-semibold lg:text-5xl">

View File

@ -56,7 +56,7 @@ export default function HeroSection() {
<AnimatedGroup variants={transitionVariants}> <AnimatedGroup variants={transitionVariants}>
<LocaleLink <LocaleLink
href={linkIntroduction} href={linkIntroduction}
className="hover:bg-background dark:hover:border-t-border bg-muted group mx-auto flex w-fit items-center gap-4 rounded-full border p-1 pl-4 shadow-md shadow-zinc-950/5 transition-colors duration-300 dark:border-t-white/5 dark:shadow-zinc-950" className="hover:bg-background group mx-auto flex w-fit items-center gap-4 rounded-full border p-1 pl-4 shadow-md shadow-zinc-950/5 transition-colors duration-300 dark:shadow-zinc-950"
> >
<span className="text-foreground text-sm"> <span className="text-foreground text-sm">
{t('introduction')} {t('introduction')}
@ -160,11 +160,11 @@ export default function HeroSection() {
<div className="relative -mr-56 mt-8 overflow-hidden px-2 sm:mr-0 sm:mt-12 md:mt-20"> <div className="relative -mr-56 mt-8 overflow-hidden px-2 sm:mr-0 sm:mt-12 md:mt-20">
<div <div
aria-hidden aria-hidden
className="bg-linear-to-b to-background absolute inset-0 z-10 from-transparent from-35%" className="bg-linear-to-b to-muted/50 absolute inset-0 z-10 from-transparent from-35%"
/> />
<div className="inset-shadow-2xs ring-background dark:inset-shadow-white/20 bg-background relative mx-auto max-w-6xl overflow-hidden rounded-2xl border p-4 shadow-lg shadow-zinc-950/15 ring-1"> <div className="inset-shadow-2xs ring-muted/50 dark:inset-shadow-white/20 bg-muted/50 relative mx-auto max-w-6xl overflow-hidden rounded-2xl border p-4 shadow-lg shadow-zinc-950/15 ring-1">
<Image <Image
className="bg-background relative hidden rounded-2xl dark:block" className="bg-muted/50 relative hidden rounded-2xl dark:block"
src="/blocks/music.png" src="/blocks/music.png"
alt="app screen" alt="app screen"
width={2796} width={2796}

View File

@ -90,7 +90,7 @@ const IntegrationCard = ({
const t = useTranslations('HomePage.integration'); const t = useTranslations('HomePage.integration');
return ( return (
<Card className="p-6 hover:bg-accent dark:hover:bg-accent"> <Card className="p-6 bg-transparent hover:bg-accent dark:hover:bg-card">
<div className="relative"> <div className="relative">
<div className="*:size-10">{children}</div> <div className="*:size-10">{children}</div>

View File

@ -17,11 +17,11 @@ export default function Integration2Section() {
return ( return (
<section> <section>
<div className="bg-background py-24"> <div className="bg-muted/50 py-24">
<div className="mx-auto max-w-5xl px-6"> <div className="mx-auto max-w-5xl px-6">
<div className="grid items-center sm:grid-cols-2"> <div className="grid items-center sm:grid-cols-2">
<div className="dark:bg-muted/50 relative mx-auto w-fit"> <div className="relative mx-auto w-fit">
<div className="bg-radial to-muted dark:to-background absolute inset-0 z-10 from-transparent to-75%" /> {/* <div className="bg-radial to-muted/50 dark:to-muted/50 absolute inset-0 z-10 from-transparent to-75%" /> */}
<div className="mx-auto mb-2 flex w-fit justify-center gap-2"> <div className="mx-auto mb-2 flex w-fit justify-center gap-2">
<IntegrationCard> <IntegrationCard>
<Gemini /> <Gemini />
@ -35,8 +35,8 @@ export default function Integration2Section() {
<MagicUI /> <MagicUI />
</IntegrationCard> </IntegrationCard>
<IntegrationCard <IntegrationCard
borderClassName="shadow-black-950/10 shadow-xl border-black/25 dark:border-white/25" borderClassName="border-black/25 dark:border-white/25"
className="dark:bg-white/10" className="dark:bg-muted"
> >
<Logo /> <Logo />
</IntegrationCard> </IntegrationCard>
@ -61,7 +61,7 @@ export default function Integration2Section() {
</h2> </h2>
<p className="text-muted-foreground">{t('description')}</p> <p className="text-muted-foreground">{t('description')}</p>
<div className="mt-12 flex flex-wrap justify-start gap-4"> <div className="mt-12 flex flex-wrap justify-center md:justify-start gap-4">
<Button asChild size="lg"> <Button asChild size="lg">
<LocaleLink href="/"> <LocaleLink href="/">
<span>{t('primaryButton')}</span> <span>{t('primaryButton')}</span>
@ -94,16 +94,13 @@ const IntegrationCard = ({
return ( return (
<div <div
className={cn( className={cn(
'bg-background relative flex size-20 rounded-xl dark:bg-transparent', 'relative flex size-20 rounded-xl bg-muted dark:bg-muted/50',
className className
)} )}
> >
<div <div
role="presentation" role="presentation"
className={cn( className={cn('absolute inset-0 rounded-xl', borderClassName)}
'absolute inset-0 rounded-xl border border-black/20 dark:border-white/25',
borderClassName
)}
/> />
<div className="relative z-20 m-auto size-fit *:size-8">{children}</div> <div className="relative z-20 m-auto size-fit *:size-8">{children}</div>
</div> </div>

View File

@ -4,7 +4,7 @@ export default function LogoCloudSection() {
const t = useTranslations('HomePage.logocloud'); const t = useTranslations('HomePage.logocloud');
return ( return (
<section id="logo-cloud" className="bg-background px-4 py-16"> <section id="logo-cloud" className="bg-muted/50 px-4 py-16">
<div className="mx-auto max-w-5xl px-6"> <div className="mx-auto max-w-5xl px-6">
<h2 className="text-center text-xl font-medium">{t('title')}</h2> <h2 className="text-center text-xl font-medium">{t('title')}</h2>

View File

@ -118,7 +118,10 @@ export default function TestimonialsSection() {
{testimonialChunks.map((chunk, chunkIndex) => ( {testimonialChunks.map((chunk, chunkIndex) => (
<div key={chunkIndex} className="space-y-3"> <div key={chunkIndex} className="space-y-3">
{chunk.map(({ name, role, quote, image }, index) => ( {chunk.map(({ name, role, quote, image }, index) => (
<Card key={index} className="shadow-none"> <Card
key={index}
className="shadow-none bg-transparent hover:bg-accent dark:hover:bg-card"
>
<CardContent className="grid grid-cols-[auto_1fr] gap-3 pt-4"> <CardContent className="grid grid-cols-[auto_1fr] gap-3 pt-4">
<Avatar className="size-9 border-2 border-gray-200"> <Avatar className="size-9 border-2 border-gray-200">
<AvatarImage <AvatarImage

View File

@ -41,7 +41,7 @@ export default function BlogCard({ locale, post }: BlogCardProps) {
{blogCategories.map((category, index) => ( {blogCategories.map((category, index) => (
<span <span
key={`${category?.slugs[0]}-${index}`} key={`${category?.slugs[0]}-${index}`}
className="text-xs font-medium text-white bg-black bg-opacity-50 px-2 py-1 rounded-md" className="text-xs font-medium text-white bg-black/50 bg-opacity-50 px-2 py-1 rounded-md"
> >
{category?.data.name} {category?.data.name}
</span> </span>

View File

@ -61,9 +61,9 @@ export function Navbar({ scroll }: NavBarProps) {
'sticky inset-x-0 top-0 z-40 py-4 transition-all duration-300', 'sticky inset-x-0 top-0 z-40 py-4 transition-all duration-300',
scroll scroll
? scrolled ? scrolled
? 'bg-background/80 backdrop-blur-md border-b supports-backdrop-filter:bg-background/60' ? 'bg-muted/50 backdrop-blur-md border-b supports-backdrop-filter:bg-muted/50'
: 'bg-transparent' : 'bg-transparent'
: 'border-b bg-background' : 'border-b bg-muted/50'
)} )}
> >
<Container className="px-4"> <Container className="px-4">