diff --git a/public/llms.txt b/public/llms.txt index f6b2f97..7d846d6 100644 --- a/public/llms.txt +++ b/public/llms.txt @@ -4,6 +4,18 @@ This repository is a high-performance webpage built on **Next.js 16 (App Router) --- +## Website Navigation + +- [Documentation](https://pictopy.aossie.org/documentation) +- [Contribute](https://pictopy.aossie.org/contribute) +- [About Us](https://pictopy.aossie.org/about) +- [Contact](https://pictopy.aossie.org/contact) + +## Project Resources + +- [PictoPy Website](https://pictopy.aossie.org/) +- [PictoPy Website GitHub Repository](https://github.com/AOSSIE-Org/PictoPy-Website) + ## ЁЯУВ Project Architecture - **`src/app/[locale]/`**: Localized dynamic route group. All pages and layouts live here. diff --git a/src/app/[locale]/globals.css b/src/app/[locale]/globals.css index e3a6e17..a4e70ba 100644 --- a/src/app/[locale]/globals.css +++ b/src/app/[locale]/globals.css @@ -2,24 +2,6 @@ @theme { - /* Bind Tailwind v4 variables directly to semantic CSS variables */ - --color-background-primary: var(--background); - --color-background-secondary: var(--background-secondary); - --color-foreground-primary: var(--foreground); - --color-foreground-secondary: var(--foreground-secondary); - --color-foreground-muted: var(--foreground-muted); - --color-border-default: var(--border); - - --color-button-primary-bg: var(--button-primary-bg); - --color-button-primary-text: var(--button-primary-text); - --color-button-primary-border: var(--button-primary-border); - --color-button-primary-hover-bg: var(--button-primary-hover-bg); - --color-button-primary-hover-border: var(--button-primary-hover-border); - - --color-card-bg: var(--card-bg); - --color-card-border: var(--card-border); - --shadow-card: var(--card-shadow); - --color-status-error-bg: var(--status-error-bg); --color-status-error-text: var(--status-error-text); --color-status-neutral-bg: var(--status-neutral-bg); @@ -34,24 +16,6 @@ /* --- LIGHT MODE (Default) --- */ :root { - --background: #f5f5f5; - --background-secondary: #ffffff; - - --foreground: #1c1c1c; - --foreground-secondary: #121212; - --foreground-muted: #4d4d4d; - - --border: #e2e2e7; - - --button-primary-bg: #121212; - --button-primary-text: #ffffff; - --button-primary-border: #121212; - --button-primary-hover-bg: #2d2d2d; - --button-primary-hover-border: #2d2d2d; - - --card-bg: rgba(255, 255, 255, 0.85); - --card-border: #e2e2e7; - --card-shadow: 0 4px 12px rgba(0, 0, 0, 0.04); --status-error-bg: #fee2e2; --status-error-text: #dc2626; @@ -65,24 +29,6 @@ /* --- DARK MODE --- */ .dark { - --background: #101010; - --background-secondary: #000000; - - --foreground: #d3d3d3; - --foreground-secondary: #b4b4b4; - --foreground-muted: #7f8188; - - --border: #1e1e24; - - --button-primary-bg: #ffffff; - --button-primary-text: #101010; - --button-primary-border: transparent; - --button-primary-hover-bg: #e4e4e7; - --button-primary-hover-border: #e4e4e7; - - --card-bg: rgba(22, 22, 22, 0.85); - --card-border: #1e1e24; - --card-shadow: 0 4px 12px rgba(0, 0, 0, 0.25); --status-error-bg: rgba(69, 10, 10, 0.5); --status-error-text: #f87171; diff --git a/src/components/CTA.tsx b/src/components/CTA.tsx new file mode 100644 index 0000000..0b3b950 --- /dev/null +++ b/src/components/CTA.tsx @@ -0,0 +1,30 @@ +import { getTranslations } from "next-intl/server"; +import Download from "./Download"; + +async function CTA() { + const t = await getTranslations("Home.cta"); + return ( +
+
+
+

+ {t("title")} +

+ +

+ {t("description")} +

+
+ +
+ +
+
+
+ ); +} + +export default CTA; diff --git a/src/components/Download.tsx b/src/components/Download.tsx index 8a9347f..a99f102 100644 --- a/src/components/Download.tsx +++ b/src/components/Download.tsx @@ -82,7 +82,7 @@ function DownloadButton({ value }: DownloadButtonProps) { }} className="h-9 px-3 rounded-lg flex items-center gap-2 text-sm font-medium transition" > - + {value.label} ); diff --git a/src/components/FAQ.tsx b/src/components/FAQ.tsx new file mode 100644 index 0000000..8c516e2 --- /dev/null +++ b/src/components/FAQ.tsx @@ -0,0 +1,64 @@ +import { getTranslations } from "next-intl/server"; + +interface FAQItem { + question: string; + answer: string; +} + +export default async function FAQ() { + const t = await getTranslations("Home.faq"); + const faqs: FAQItem[] = t.raw("items") as FAQItem[]; + return ( +
+
+ {/* Header */} +
+

+ {t("title")} +

+ +

+ {t("description")} +

+
+ + {/* FAQ list */} +
+ {faqs.map((faq, index) => ( +
+ + + {faq.question} + + + {/* Plus / Minus */} + + +
+ {faq.answer} +
+
+ ))} +
+
+
+ ); +} diff --git a/src/components/HomePage.tsx b/src/components/HomePage.tsx index 2d101f8..d3a1aae 100644 --- a/src/components/HomePage.tsx +++ b/src/components/HomePage.tsx @@ -7,6 +7,10 @@ import MockUpWithDesc from "@/components/MockUpWithDesc"; import Metrics from "@/components/Metrics"; import SocialMediaCTA from "@/components/SocialMediaCTA"; import MacMockDesc from "@/components/MacMockDesc"; +import FAQ from "./FAQ"; +import CTA from "./CTA"; +import PictoPyText from "./PictpPyText"; +import Footer from "./ui/Footer"; export default function HomePage() { return ( @@ -18,6 +22,10 @@ export default function HomePage() { + + + +