chore(landing): remover seção de galeria de telas
Remove a seção "Veja o que você pode fazer" com o componente ScreenshotTabs, as 14 imagens preview-*.webp, o link #telas do nav e o export pwaCompatList sem uso. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
Before Width: | Height: | Size: 129 KiB |
|
Before Width: | Height: | Size: 134 KiB |
|
Before Width: | Height: | Size: 103 KiB |
|
Before Width: | Height: | Size: 109 KiB |
|
Before Width: | Height: | Size: 80 KiB |
|
Before Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 180 KiB |
|
Before Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 122 KiB |
|
Before Width: | Height: | Size: 127 KiB |
|
Before Width: | Height: | Size: 138 KiB |
|
Before Width: | Height: | Size: 149 KiB |
|
Before Width: | Height: | Size: 170 KiB |
|
Before Width: | Height: | Size: 176 KiB |
@@ -9,7 +9,6 @@ import Image from "next/image";
|
||||
import Link from "next/link";
|
||||
import { AnimateOnScroll } from "@/features/landing/components/animate-on-scroll";
|
||||
import { MobileNav } from "@/features/landing/components/mobile-nav";
|
||||
import { ScreenshotTabs } from "@/features/landing/components/screenshot-tabs";
|
||||
import { SetupTabs } from "@/features/landing/components/setup-tabs";
|
||||
import {
|
||||
companionBanks,
|
||||
@@ -51,19 +50,19 @@ export default async function Page() {
|
||||
{/* Navigation */}
|
||||
<NavbarShell>
|
||||
{/* Center Navigation Links */}
|
||||
<nav className="hidden md:flex items-center gap-1 absolute left-1/2 -translate-x-1/2">
|
||||
<nav className="hidden md:flex items-center gap-1 absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2">
|
||||
{navLinks.map(({ href, label }) => (
|
||||
<a
|
||||
<Link
|
||||
key={href}
|
||||
href={href}
|
||||
className="rounded-md px-2 py-1.5 text-sm font-medium text-black/75 hover:text-black hover:bg-black/10 transition-colors dark:text-white/75 dark:hover:text-white dark:hover:bg-white/10"
|
||||
className="inline-flex h-9 items-center justify-center rounded-md px-2 text-sm font-medium leading-none text-primary-foreground/75 transition-colors hover:bg-primary-foreground/10 hover:text-primary-foreground dark:text-white/75 dark:hover:bg-white/10 dark:hover:text-white"
|
||||
>
|
||||
{label}
|
||||
</a>
|
||||
</Link>
|
||||
))}
|
||||
</nav>
|
||||
|
||||
<nav className="ml-auto flex items-center gap-2 md:gap-3">
|
||||
<nav className="ml-auto flex items-center gap-1">
|
||||
<AnimatedThemeToggler variant="navbar" />
|
||||
{!isPublicDomain &&
|
||||
(session?.user ? (
|
||||
@@ -71,26 +70,27 @@ export default async function Page() {
|
||||
<Button
|
||||
variant="navbar"
|
||||
size="sm"
|
||||
className="border border-black/20 dark:border-white/20"
|
||||
className="h-9 text-primary-foreground/75 hover:bg-primary-foreground/10 hover:text-primary-foreground shadow-none dark:text-white/75 dark:hover:bg-white/10 dark:hover:text-white"
|
||||
>
|
||||
Dashboard
|
||||
</Button>
|
||||
</Link>
|
||||
) : (
|
||||
<div className="hidden md:flex items-center gap-2">
|
||||
<div className="hidden md:flex items-center gap-1">
|
||||
<Link href="/login">
|
||||
<Button
|
||||
variant="ghost"
|
||||
size="sm"
|
||||
className="text-black/75 hover:bg-black/10 hover:text-black shadow-none dark:text-white/75 dark:hover:bg-white/10 dark:hover:text-white"
|
||||
className="h-9 text-primary-foreground/75 hover:bg-primary-foreground/10 hover:text-primary-foreground shadow-none dark:text-white/75 dark:hover:bg-white/10 dark:hover:text-white"
|
||||
>
|
||||
Entrar
|
||||
</Button>
|
||||
</Link>
|
||||
<Link href="/signup">
|
||||
<Button
|
||||
variant="ghost"
|
||||
size="sm"
|
||||
className="bg-black/10 border border-black/20 text-black shadow-none hover:bg-black/20 gap-2 dark:bg-white/10 dark:border-white/20 dark:text-white dark:hover:bg-white/20"
|
||||
className="h-9 text-primary-foreground/75 hover:bg-primary-foreground/10 hover:text-primary-foreground shadow-none dark:text-white/75 dark:hover:bg-white/10 dark:hover:text-white"
|
||||
>
|
||||
Começar
|
||||
</Button>
|
||||
@@ -207,31 +207,6 @@ export default async function Page() {
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* Screenshots Gallery Section */}
|
||||
<section id="telas" className="py-12 md:py-24">
|
||||
<div className="max-w-8xl mx-auto px-4">
|
||||
<div className="mx-auto max-w-6xl">
|
||||
<AnimateOnScroll>
|
||||
<div className="text-center mb-8 md:mb-12">
|
||||
<Badge variant="outline" className="mb-4">
|
||||
Conheça as telas
|
||||
</Badge>
|
||||
<h2 className="text-2xl sm:text-3xl md:text-4xl mb-3 md:mb-4 font-semibold">
|
||||
Veja o que você pode fazer
|
||||
</h2>
|
||||
<p className="text-base md:text-lg text-muted-foreground max-w-2xl mx-auto px-4 sm:px-0">
|
||||
Explore as principais telas do OpenMonetis
|
||||
</p>
|
||||
</div>
|
||||
</AnimateOnScroll>
|
||||
|
||||
<AnimateOnScroll>
|
||||
<ScreenshotTabs />
|
||||
</AnimateOnScroll>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* Features Section */}
|
||||
<section id="funcionalidades" className="py-12 md:py-24 bg-muted/40">
|
||||
<div className="max-w-8xl mx-auto px-4">
|
||||
|
||||
@@ -13,7 +13,6 @@ import {
|
||||
} from "@/shared/components/ui/sheet";
|
||||
|
||||
const navLinks = [
|
||||
{ href: "#telas", label: "Conheça as telas" },
|
||||
{ href: "#funcionalidades", label: "Funcionalidades" },
|
||||
{ href: "#mobile", label: "Mobile" },
|
||||
{ href: "#stack", label: "Stack" },
|
||||
|
||||
@@ -1,114 +0,0 @@
|
||||
"use client";
|
||||
|
||||
import {
|
||||
RiArrowLeftRightLine,
|
||||
RiAtLine,
|
||||
RiBankCard2Line,
|
||||
RiBarChart2Line,
|
||||
RiCalendarEventLine,
|
||||
RiFileDownloadLine,
|
||||
RiSecurePaymentLine,
|
||||
} from "@remixicon/react";
|
||||
import Image from "next/image";
|
||||
import { landingImages } from "@/features/landing/images";
|
||||
import {
|
||||
Tabs,
|
||||
TabsContent,
|
||||
TabsList,
|
||||
TabsTrigger,
|
||||
} from "@/shared/components/ui/tabs";
|
||||
|
||||
const { screenshots } = landingImages;
|
||||
|
||||
const sections = [
|
||||
{
|
||||
value: "lancamentos",
|
||||
label: "Lançamentos",
|
||||
icon: RiArrowLeftRightLine,
|
||||
...screenshots.lancamentos,
|
||||
},
|
||||
{
|
||||
value: "pre-lancamentos",
|
||||
label: "Pré-lançamentos",
|
||||
icon: RiAtLine,
|
||||
...screenshots.preLancamentos,
|
||||
},
|
||||
{
|
||||
value: "importacao",
|
||||
label: "Importação",
|
||||
icon: RiFileDownloadLine,
|
||||
...screenshots.importacao,
|
||||
},
|
||||
{
|
||||
value: "orcamentos",
|
||||
label: "Orçamentos",
|
||||
icon: RiBarChart2Line,
|
||||
...screenshots.orcamentos,
|
||||
},
|
||||
{
|
||||
value: "parcelas",
|
||||
label: "Análise de Parcelas",
|
||||
icon: RiSecurePaymentLine,
|
||||
...screenshots.parcelas,
|
||||
},
|
||||
{
|
||||
value: "calendario",
|
||||
label: "Calendário",
|
||||
icon: RiCalendarEventLine,
|
||||
...screenshots.calendario,
|
||||
},
|
||||
{
|
||||
value: "cartoes",
|
||||
label: "Cartões",
|
||||
icon: RiBankCard2Line,
|
||||
...screenshots.cartoes,
|
||||
},
|
||||
];
|
||||
|
||||
export function ScreenshotTabs() {
|
||||
return (
|
||||
<Tabs defaultValue="lancamentos" className="w-full">
|
||||
<div className="flex flex-col gap-6">
|
||||
<TabsList className="w-full h-auto flex-wrap gap-1">
|
||||
{sections.map((s) => (
|
||||
<TabsTrigger
|
||||
key={s.value}
|
||||
value={s.value}
|
||||
className="flex-1 gap-1.5 lowercase"
|
||||
>
|
||||
<s.icon className="size-4" />
|
||||
{s.label}
|
||||
</TabsTrigger>
|
||||
))}
|
||||
</TabsList>
|
||||
|
||||
{sections.map((s) => (
|
||||
<TabsContent key={s.value} value={s.value} className="w-full mt-0">
|
||||
<div className="rounded-lg overflow-hidden border bg-card">
|
||||
<div className="flex items-center gap-1.5 px-3 h-8 border-b bg-muted/50">
|
||||
<div className="size-2.5 rounded-full bg-muted-foreground/20" />
|
||||
<div className="size-2.5 rounded-full bg-muted-foreground/20" />
|
||||
<div className="size-2.5 rounded-full bg-muted-foreground/20" />
|
||||
<div className="ml-2 flex-1 max-w-52 h-4 rounded bg-muted-foreground/10" />
|
||||
</div>
|
||||
<Image
|
||||
src={s.light}
|
||||
alt={`Preview ${s.label}`}
|
||||
width={1920}
|
||||
height={1080}
|
||||
className="w-full h-auto dark:hidden"
|
||||
/>
|
||||
<Image
|
||||
src={s.dark}
|
||||
alt={`Preview ${s.label}`}
|
||||
width={1920}
|
||||
height={1080}
|
||||
className="w-full h-auto hidden dark:block"
|
||||
/>
|
||||
</div>
|
||||
</TabsContent>
|
||||
))}
|
||||
</div>
|
||||
</Tabs>
|
||||
);
|
||||
}
|
||||
@@ -36,7 +36,6 @@ export type FeatureItem = {
|
||||
};
|
||||
|
||||
export const navLinks = [
|
||||
{ href: "#telas", label: "Conheça as telas" },
|
||||
{ href: "#funcionalidades", label: "Funcionalidades" },
|
||||
{ href: "#mobile", label: "Mobile" },
|
||||
{ href: "#stack", label: "Stack" },
|
||||
@@ -160,22 +159,6 @@ export const pwaHighlights: FeatureItem[] = [
|
||||
},
|
||||
];
|
||||
|
||||
export const pwaCompatList = [
|
||||
{
|
||||
label: "Android",
|
||||
description:
|
||||
"Chrome e Edge — instale pelo banner ou pelo menu do navegador",
|
||||
},
|
||||
{
|
||||
label: "iOS / iPadOS",
|
||||
description: "Safari — adicione à tela inicial pelo menu compartilhar",
|
||||
},
|
||||
{
|
||||
label: "Desktop",
|
||||
description: "Chrome, Edge e outros — instale pela barra de endereço",
|
||||
},
|
||||
] as const;
|
||||
|
||||
export const companionSteps: FeatureItem[] = [
|
||||
{
|
||||
icon: RiNotification3Line,
|
||||
|
||||