diff --git a/src/pages/NewUserGuide/NewUserGuide.jsx b/src/pages/NewUserGuide/NewUserGuide.jsx
new file mode 100644
index 0000000..4c4d634
--- /dev/null
+++ b/src/pages/NewUserGuide/NewUserGuide.jsx
@@ -0,0 +1,85 @@
+import Header from '../../components/Header';
+import React, { useState } from 'react';
+import './NewUserGuide.css';
+
+const NewUserGuide = () => {
+  const [activeTab, setActiveTab] = useState('terms');
+
+  const renderContent = () => {
+    switch (activeTab) {
+      case 'terms':
+        return (
+          <div className="guide-content">
+            <h2>名词解释</h2>
+            <p>在本平台中，我们使用以下术语：</p>
+            <ul>
+              <li><strong>种子：</strong> 表示可下载的资源文件索引信息。</li>
+              <li><strong>做种：</strong> 指上传资源供他人下载。</li>
+              <li><strong>分享率：</strong> 上传流量与下载流量的比值。</li>
+              <li><strong>魔力值：</strong> 用于奖励活跃用户的虚拟积分。</li>
+              {/* 可继续添加名词 */}
+            </ul>
+          </div>
+        );
+      case 'tutorial':
+        return (
+          <div className="guide-content">
+            <h2>详细教程</h2>
+            <ol>
+              <li>注册并完善个人资料</li>
+              <li>浏览并下载感兴趣的种子资源</li>
+              <li>做种、评论、评分获得积分</li>
+              <li>发布你的第一个种子</li>
+              {/* 可继续扩展详细步骤 */}
+            </ol>
+          </div>
+        );
+      case 'tasks':
+        return (
+          <div className="guide-content">
+            <h2>成长任务</h2>
+            <p>完成以下任务可快速熟悉平台并获得奖励：</p>
+            <ul>
+              <li>🎯 浏览任意种子页面</li>
+              <li>🗣️ 在论坛发一条评论</li>
+              <li>📤 上传你的第一个资源</li>
+              <li>🌟 连续登录 3 天</li>
+            </ul>
+          </div>
+        );
+      default:
+        return null;
+    }
+  };
+
+  return (
+    <div className="new-user-guide-page">
+      <Header />
+      <div className="guide-container">
+        <div className="guide-nav">
+          <button
+            className={activeTab === 'terms' ? 'active' : ''}
+            onClick={() => setActiveTab('terms')}
+          >
+            名词解释
+          </button>
+          <button
+            className={activeTab === 'tutorial' ? 'active' : ''}
+            onClick={() => setActiveTab('tutorial')}
+          >
+            详细教程
+          </button>
+          <button
+            className={activeTab === 'tasks' ? 'active' : ''}
+            onClick={() => setActiveTab('tasks')}
+          >
+            成长任务
+          </button>
+        </div>
+        <div className="guide-main">{renderContent()}</div>
+      </div>
+    </div>
+  );
+};
+
+export default NewUserGuide;
