chih.yikuan
email-done
5ee5085
export function Features() {
const features = [
{
icon: (
<svg className="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" />
</svg>
),
title: "自動評分",
description: "使用 AI 精準評分選擇題、數值題,甚至開放式問題。",
color: "var(--color-primary)",
},
{
icon: (
<svg className="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z" />
</svg>
),
title: "智能解釋",
description: "為每個錯誤答案提供個人化解釋,幫助學生理解錯誤。",
color: "var(--color-accent)",
},
{
icon: (
<svg className="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z" />
</svg>
),
title: "同儕學習小組",
description: "AI 建議的學生分組,將表現優秀的學生與需要特定主題幫助的學生配對。",
color: "var(--color-success)",
},
{
icon: (
<svg className="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" />
</svg>
),
title: "電子郵件報告",
description: "直接在收件匣中接收精美的格式化報告,隨時可與學生或家長分享。",
color: "var(--color-warning)",
},
{
icon: (
<svg className="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z" />
</svg>
),
title: "隱私優先",
description: "學生資料安全處理。我們只存取您分享的內容,絕不儲存敏感資訊。",
color: "var(--color-primary-light)",
},
{
icon: (
<svg className="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M13 10V3L4 14h7v7l9-11h-7z" />
</svg>
),
title: "即時分析",
description: "幾秒內獲得全面洞察,而非數小時。更多時間教學,更少時間評分。",
color: "var(--color-accent-light)",
},
];
return (
<section id="features" className="py-20 px-6 bg-gradient-to-b from-transparent to-[var(--color-surface)]/50">
<div className="max-w-6xl mx-auto">
<div className="text-center mb-16">
<h2 className="font-display text-4xl font-bold text-[var(--color-text)] mb-4">
了解您的學生所需的一切
<span className="text-gradient"> 功能</span>
</h2>
<p className="text-lg text-[var(--color-text-muted)] max-w-2xl mx-auto">
ClassLens 結合 AI 的力量與深思熟慮的教育實踐,為您提供可操作的洞察。
</p>
</div>
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-6">
{features.map((feature, i) => (
<div
key={i}
className="card p-6 hover:shadow-lg transition-all hover:-translate-y-1 group"
>
<div
className="w-12 h-12 rounded-xl flex items-center justify-center mb-4 transition-transform group-hover:scale-110"
style={{
backgroundColor: `color-mix(in srgb, ${feature.color} 15%, transparent)`,
color: feature.color
}}
>
{feature.icon}
</div>
<h3 className="font-display text-xl font-semibold text-[var(--color-text)] mb-2">
{feature.title}
</h3>
<p className="text-[var(--color-text-muted)]">
{feature.description}
</p>
</div>
))}
</div>
{/* How it works */}
<div className="mt-24">
<h3 className="font-display text-3xl font-bold text-center text-[var(--color-text)] mb-12">
How It Works
</h3>
<div className="relative">
{/* Connection line */}
<div className="hidden lg:block absolute top-1/2 left-0 right-0 h-0.5 bg-gradient-to-r from-[var(--color-primary)] via-[var(--color-accent)] to-[var(--color-success)] -translate-y-1/2" />
<div className="grid lg:grid-cols-4 gap-8">
{[
{ step: 1, title: "Connect Google", desc: "Link your Google account to access Form responses" },
{ step: 2, title: "Share URL", desc: "Paste your Google Form or Sheets response URL" },
{ step: 3, title: "AI Analyzes", desc: "ClassLens grades, explains, and groups students" },
{ step: 4, title: "Get Report", desc: "Receive a beautiful report via email and dashboard" },
].map((item) => (
<div key={item.step} className="relative text-center">
<div className="w-12 h-12 mx-auto mb-4 rounded-full bg-gradient-to-br from-[var(--color-primary)] to-[var(--color-accent)] text-white font-bold text-xl flex items-center justify-center shadow-lg relative z-10">
{item.step}
</div>
<h4 className="font-display text-lg font-semibold text-[var(--color-text)] mb-2">
{item.title}
</h4>
<p className="text-sm text-[var(--color-text-muted)]">{item.desc}</p>
</div>
))}
</div>
</div>
</div>
</div>
</section>
);
}