/** * 公开落地页的客户端展示组件。包含品牌导航、可点击的创作示意图、功能说明、工作方式、FAQ与登录/演示入口。 * 示意卡片只改变本页高亮,不创建真实画布元素;本模块不读取账号、不调用编辑器,也不持久化状态。 */ "use client"; import { useState } from "react"; import Link from "next/link"; import { ArrowUpRight, ArrowRight, ChevronDown, FileText, Image as ImageIcon, Layers, MousePointer2, Plus, Sparkles, Type } from "lucide-react"; import { Brand } from "@/components/brand"; import styles from "./landing-page.module.css"; /** 三个示意卡片对应的页脚说明;数组索引与active及预览按钮一一对应。 */ const cards = ["先留住一个念头", "让不同的线索相遇", "慢慢成为你的作品"]; /** FAQ静态问答数据;这里只呈现文案,访问权限与演示存储的实际执行在对应业务模块中。 */ const questions = [ ["还没想好要做什么,也可以开始吗?", "当然。一个词、一张参考图、一段还不成形的想法,都可以成为起点。先放下来,再慢慢找到它们之间的联系。"], ["我可以放些什么在画布里?", "文字、笔记、图片、脚本和图标。你可以自由移动、调整样式、用线连接,也可以用分区把相关内容放在一起。"], ["我的创作会自动公开吗?", "不会。工作空间需要登录访问,内容的访问范围由空间和材料权限控制。"], ["可以先体验,再注册吗?", "可以。点击「先逛逛工作台」进入本地演示。演示内容保留在当前浏览器,登录后可以建立自己的工作空间。"], ]; /** 本页只有两个交互状态:预览卡片单选,以及最多展开一个问题的FAQ。 * 导航锚点定位本页三个section;登录入口进入/login,本地演示入口携带demo=1进入工作台。 * 主体的SVG连线、花朵、光标和功能插图是展示图形,不接入画布命中、拖动或同步链路。 */ export default function LandingPage() { // 初始选中第一张预览卡;三张卡片与底部三个圆点均直接设置同一个索引,aria-pressed同步表达选择。 const [active, setActive] = useState(0); // null表示全部收起;点击当前问题置null,点击其它问题改索引。hidden与aria-expanded/controls对应同一状态。 const [faq, setFaq] = useState(null); // FAQ 的 hidden 只切换可见性,问答节点仍保留在 DOM;页面没有请求型加载或异步清理任务。 // 页面顺序:导航→首屏交互预览→理念横条→三个功能说明→工作步骤→FAQ→行动入口→页脚。 // 功能卡与步骤通过静态内容展示;FAQ以问题文本作key,步骤以序号作key,预览以说明作key。 // 状态仅在本次组件挂载期间保留;切换预览不自动轮播,FAQ展开不发网络请求。 return
登录开始创作
A LITTLE SPACE. ENDLESS POSSIBILITIES.

给想法一点
自由生长的空间。

不必一开始就井井有条。
把零散的灵感放下来,连接起来,
慢慢做成自己的作品。

打开你的创作空间 先逛逛工作台
✳ 留一点空白,给还没发生的好想法。
↗ 一些还不错的想法 PRIVATE SPACE
keep wondering.
{cards.map((label, index) =>
{cards[active]}100%
FOR THE CURIOUS MINDS.

认真生活的人,总有一些想法值得留下。

COLLECT / CONNECT / CREATE
01 — YOUR THINKING SPACE

思路可以自由,
也可以有迹可循。

从随手收集,到看见联系。
把整理变成创作的一部分。

01 / COLLECT

先留下,再想一想。

文字、图片、参考和碎片。灵感来的时候,
不需要先决定它应该放在哪个文件夹。

02 / CONNECT

让线索,自己说话。

在无限画布上自由摆放、连接与分组。
原本无关的东西,也许正好能碰出火花。

03 / CREATE

慢慢变成,你的作品。

调整文字、图标和画面细节。
让收集的每一点灵感,都有继续生长的可能。

“

不急着有答案。
先和自己的想法,待一会儿。

一个属于你的工作空间,
也是一张可以反复涂改的草稿纸。

a work in progress, always.
{[["01", "带着一点好奇,开始。", "从一张空白画布,或一个还没想好的念头出发。"], ["02", "把线索,放在一起。", "拖动、连接、分区,让自己的思路慢慢清晰。"], ["03", "继续打磨,不必着急完成。", "随时回来,加一点新想法,留下新的可能。"]].map(([number, title, copy]) =>
{number}

{title}

{copy}

)}
A FEW THINGS TO KNOW

开始之前,
你也许想知道。

{questions.map(([question, answer], index) =>
)}
YOUR NEXT IDEA STARTS HERE

好想法,
值得一个好地方。

不用准备好全部。带着一点好奇,先开始。

给想法留个位置
; }