feat: whyrating brand identity + landing page content
Replace boilerplate branding with WhyRating visual identity: - Inter + Nunito fonts, blue theme, light mode - Inline SVG logo component (whyrating.com wordmark) - Swap logos in header, footer, auth layout - Generate favicon/icons from brand SVG - Full landing page: hero, how-it-works, features, testimonials, FAQ - EN/ES translations for all sections - Report fan (abanico) component with 3 PDF page previews Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,42 +1,20 @@
|
||||
"use client";
|
||||
|
||||
import { useTranslation } from "@turbostarter/i18n";
|
||||
import { buttonVariants } from "@turbostarter/ui-web/button";
|
||||
import { Icons } from "@turbostarter/ui-web/icons";
|
||||
|
||||
import { pathsConfig } from "~/config/paths";
|
||||
import { TurboLink } from "~/modules/common/turbo-link";
|
||||
import { Banner } from "~/modules/marketing/home/banner";
|
||||
import { Faq } from "~/modules/marketing/home/faq";
|
||||
import { Features } from "~/modules/marketing/home/features";
|
||||
import { Hero } from "~/modules/marketing/home/hero";
|
||||
import { HowItWorks } from "~/modules/marketing/home/how-it-works";
|
||||
import { Testimonials } from "~/modules/marketing/home/testimonials";
|
||||
|
||||
const HomePage = () => {
|
||||
const { t } = useTranslation("common");
|
||||
|
||||
return (
|
||||
<main className="flex min-h-[calc(100vh-4rem)] flex-col items-center justify-center px-4">
|
||||
<div className="mx-auto max-w-3xl text-center">
|
||||
<h1 className="text-4xl font-bold tracking-tight sm:text-6xl">
|
||||
{t("home.title", { defaultValue: "Welcome to TurboStarter" })}
|
||||
</h1>
|
||||
<p className="mt-6 text-lg leading-8 text-muted-foreground">
|
||||
{t("home.description", { defaultValue: "The fastest way to build your next SaaS. Authentication, billing, database, and UI components — all pre-configured and ready to go." })}
|
||||
</p>
|
||||
<div className="mt-10 flex items-center justify-center gap-x-6">
|
||||
<TurboLink
|
||||
href={pathsConfig.auth.login}
|
||||
className={buttonVariants({ size: "lg" })}
|
||||
>
|
||||
{t("home.getStarted", { defaultValue: "Get Started" })}
|
||||
<Icons.ArrowRight className="ml-2 size-4" />
|
||||
</TurboLink>
|
||||
<TurboLink
|
||||
href="https://turbostarter.dev/docs"
|
||||
className={buttonVariants({ variant: "outline", size: "lg" })}
|
||||
target="_blank"
|
||||
>
|
||||
{t("home.documentation", { defaultValue: "Documentation" })}
|
||||
</TurboLink>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
<>
|
||||
<Hero />
|
||||
<HowItWorks />
|
||||
<Features />
|
||||
<Testimonials />
|
||||
<Faq />
|
||||
<Banner />
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
import { getTranslation } from "@turbostarter/i18n/server";
|
||||
import { Icons } from "@turbostarter/ui-web/icons";
|
||||
|
||||
import { pathsConfig } from "~/config/paths";
|
||||
import { WhyRatingLogo } from "~/modules/common/whyrating-logo";
|
||||
import { TurboLink } from "~/modules/common/turbo-link";
|
||||
|
||||
export default async function AuthLayout({
|
||||
@@ -9,8 +7,6 @@ export default async function AuthLayout({
|
||||
}: {
|
||||
children: React.ReactNode;
|
||||
}) {
|
||||
const { t } = await getTranslation({ ns: "common" });
|
||||
|
||||
return (
|
||||
<main className="grid h-full w-full flex-1 lg:grid-cols-2">
|
||||
<section className="flex h-full flex-col items-center justify-center p-6 lg:p-10">
|
||||
@@ -18,10 +14,9 @@ export default async function AuthLayout({
|
||||
<TurboLink
|
||||
href={pathsConfig.index}
|
||||
className="flex shrink-0 items-center gap-3"
|
||||
aria-label={t("home")}
|
||||
aria-label="whyrating.com"
|
||||
>
|
||||
<Icons.Logo className="text-primary h-8" />
|
||||
<Icons.LogoText className="text-foreground h-4" />
|
||||
<WhyRatingLogo />
|
||||
</TurboLink>
|
||||
</header>
|
||||
<div className="mt-16 mb-auto flex w-full max-w-md flex-col gap-6 pb-16">
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 15 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 19 KiB |
Reference in New Issue
Block a user