import React, { useState, useEffect, useRef } from 'react';
import {
Monitor,
BookOpen,
Briefcase,
User,
MessageSquare,
ArrowLeft,
ArrowRight,
CreditCard,
Menu,
X,
ExternalLink,
ChevronRight,
ChevronLeft,
Zap,
Layout,
Globe,
Plus,
Minus,
Clock,
Calendar,
Facebook,
Twitter,
Link as LinkIcon,
Send,
CheckCircle,
Sparkles,
MousePointer2,
Search,
Hash,
Database,
Layers,
ChevronDown
} from 'lucide-react';
const App = () => {
const [currentPage, setCurrentPage] = useState('home');
const [selectedPost, setSelectedPost] = useState(null);
const [isMenuOpen, setIsMenuOpen] = useState(false);
const [scrolled, setScrolled] = useState(false);
const [formSubmitted, setFormSubmitted] = useState(false);
const [activeBlogTag, setActiveBlogTag] = useState('全部');
const [openFaqIndex, setOpenFaqIndex] = useState(null);
const siteConfig = {
title: "Superbiz",
primaryColor: "#00FF85",
logo: "Superbiz",
};
const allPosts = [
{ id: 1, title: "為什麼 2024 年你該放棄 Super.so 改用自定義渲染?", date: "2024-05-20", tag: "策略", readTime: "5 min", author: "Superbiz Team", image: "[文章封面1]" },
{ id: 2, title: "如何將綠界支付完美整合進你的 Notion 網站?", date: "2024-05-15", tag: "技術", readTime: "8 min", author: "Superbiz Team", image: "[文章封面2]" },
{ id: 3, title: "接案心法:如何幫客戶規劃最易維護的 Notion 後端?", date: "2024-05-10", tag: "心得", readTime: "6 min", author: "Superbiz Team", image: "[文章封面3]" },
{ id: 'case1', title: "Design Studio Portfolio: 從 Notion 到極速作品集", date: "2024-06-01", tag: "案例解析", readTime: "12 min", author: "Superbiz Team", image: "[案例 1 展示]" },
];
const caseStudies = [
{ id: 'case1', title: "Design Studio Portfolio", category: "設計組合", image: "[案例 1]", description: "將 50+ 個專案作品集完美轉化為極速加載的品牌展示牆。" },
{ id: 'case2', title: "SaaS Product Docs", category: "軟體文檔", image: "[案例 2]", description: "結構化的技術文件,支持全站搜索與多級目錄導航。" },
{ id: 'case3', title: "E-learning Platform", category: "線上課程", image: "[案例 3]", description: "串接付費牆與 Notion 數據庫,自動管理學員權限。" }
];
const blogTags = ['全部', '策略', '技術', '心得', '案例解析', '工具推薦'];
useEffect(() => {
const handleScroll = () => setScrolled(window.scrollY > 50);
window.addEventListener('scroll', handleScroll);
return () => window.removeEventListener('scroll', handleScroll);
}, []);
const useScrollReveal = () => {
const [isVisible, setIsVisible] = useState(false);
const domRef = useRef();
useEffect(() => {
const observer = new IntersectionObserver(entries => {
entries.forEach(entry => setIsVisible(entry.isIntersecting));
}, { threshold: 0.1 });
const current = domRef.current;
if (current) observer.observe(current);
return () => current && observer.unobserve(current);
}, []);
return [domRef, isVisible];
};
const Typewriter = ({ words }) => {
const [index, setIndex] = useState(0);
const [subIndex, setSubIndex] = useState(0);
const [reverse, setReverse] = useState(false);
useEffect(() => {
if (subIndex === words[index].length + 1 && !reverse) {
setTimeout(() => setReverse(true), 2000);
return;
}
if (subIndex === 0 && reverse) {
setReverse(false);
setIndex((prev) => (prev + 1) % words.length);
return;
}
const timeout = setTimeout(() => {
setSubIndex((prev) => prev + (reverse ? -1 : 1));
}, reverse ? 75 : 150);
return () => clearTimeout(timeout);
}, [subIndex, index, reverse, words]);
return (
{words[index].substring(0, subIndex)}
|
);
};
const Navbar = () => {
const [isResourceOpen, setIsResourceOpen] = useState(false);
return (
);
};
const Hero = () => {
const [revealRef, isVisible] = useScrollReveal();
return (
Superbiz._ | Notion 轉專業官網架設
讓你的 Notion
告別乏味的預設介面。我們為您的 Notion 注入靈魂,打造出具有 Premium 質感的全客製化品牌網站。
);
};
const FaqSection = () => {
const faqs = [
{ q: "為什麼選擇 Notion 建站而非 WordPress?", a: "因為我們致力於「低成本、高效率」。Notion 讓你可以像編輯文件一樣更新網站,且不需負擔昂貴的伺服器維護費與安全性外掛。" },
{ q: "我需要具備寫代碼的能力嗎?", a: "完全不需要。所有的代碼渲染與技術配置都由我處理,你只需要專注於在 Notion 裡輸入內容。" },
{ q: "關於退款政策?", a: "付款後 48 小時內可全額退款。一旦超過 48 小時或服務已交付(提供預覽網址),視同勞務完成,恕不接受退款。" }
];
return (
{faqs.map((faq, i) => (
))}
);
};
const ServiceSection = () => {
const [ref, isVisible] = useScrollReveal();
return (
{[
{ tag: "Starter", title: "一頁式官網方案", price: "5,000", features: ["1 個 Notion 數據庫連線", "自定義二級網域", "基礎 SEO 優化", "手機端完全適配"] },
{ tag: "Professional", title: "知識庫/部落格方案", price: "8,000", features: ["無限 Notion 頁面轉換", "自定義獨立網域", "ISR 極速渲染技術", "1對1維護教學"], featured: true },
{ tag: "Business", title: "動態商務/預約方案", price: "12,000", features: ["Tally 預約表單整合", "Line 導流自動化", "專業商務模板套用", "多語言支持能力"] }
].map((item, i) => (
{item.featured &&
Most Popular
}
{item.tag}
{item.title}
TWD
{item.price}
{item.features.map((f, idx) => (
-
{f}
))}
))}
);
};
const HelpCenterPage = () => (
Resources
幫助中心.
Knowledge Base & Tutorials
{[
{ icon:
, title: "新手上路", items: ["如何註冊您的第一本 Notion?", "為什麼我的 Notion 頁面沒顯示?", "理解 Notion API 授權機制"] },
{ icon:
, title: "內容維護", items: ["如何更新文章封面圖?", "設置 Slug 與友善連結", "使用資料庫管理作品集"] },
{ icon:
, title: "商業設定", items: ["綠界收款連結設置教學", "Tally 表單串接常見問題", "Line 官方帳號基本導流"] }
].map((box, i) => (
{box.icon}
{box.title}
{box.items.map((item, idx) => (
-
{item}
))}
))}
);
return (
{currentPage === 'home' && !selectedPost && (
<>
{ setSelectedPost(allPosts.find(p => p.id === id)); window.scrollTo(0,0); }} />
>
)}
{currentPage === 'help-center' && }
{/* 其他頁面依照 1.2 代碼結構繼續渲染,此處僅展示更新部分 */}
{currentPage === 'services' && }
{currentPage === 'blog' && }
{selectedPost && }
{currentPage === 'contact' && }
);
};
// 輔助組件 (從 1.2 代碼中移植並微調)
const CasesSection = ({ handleCaseClick }) => {
const caseStudies = [
{ id: 'case1', title: "Design Studio Portfolio", category: "設計組合", image: "[案例 1]", description: "將 50+ 個專案作品集完美轉化為極速加載的品牌展示牆。" },
{ id: 'case2', title: "SaaS Product Docs", category: "軟體文檔", image: "[案例 2]", description: "結構化的技術文件,支持全站搜索與多級目錄導航。" },
{ id: 'case3', title: "E-learning Platform", category: "線上課程", image: "[案例 3]", description: "串接付費牆與 Notion 數據庫,自動管理學員權限。" }
];
return (
{caseStudies.map((item) => (
handleCaseClick(item.id)} className="group relative bg-[#111111] border border-white/5 rounded-[40px] overflow-hidden hover:border-[#00FF85]/30 transition-all duration-500 cursor-pointer">
{item.category}
{item.title}
{item.description}
))}
);
};
const BlogList = ({ allPosts, setSelectedPost, blogTags, activeBlogTag, setActiveBlogTag }) => (
Insights.
{blogTags.map(tag => (
))}
{allPosts.filter(p => activeBlogTag === '全部' || p.tag === activeBlogTag).map(post => (
))}
);
const BlogDetail = ({ post, setSelectedPost, allPosts, setCurrentPage }) => (
{post.title}
[ 文章內容展示 ]
Notion 建站的未來不再僅僅是 Super.so 的簡單渲染,而是邁向更深度的客製化與動態交互...
Ready to Start?
聯繫我們,為您打造專屬品牌網站。
);
const ContactPage = ({ setFormSubmitted, formSubmitted, setCurrentPage }) => {
if (formSubmitted) return (
Success!
);
return (
Contact.
);
};
export default App;