diff --git a/src/App.css b/src/App.css
new file mode 100644
index 0000000..00d10d6
--- /dev/null
+++ b/src/App.css
@@ -0,0 +1,583 @@
+.app {
+  display: flex;
+  min-height: 100vh;
+  background-color: #f5f7fa;
+}
+
+/* Header */
+.header {
+  position: fixed;
+  top: 0;
+  left: 0;
+  right: 0;
+  height: 60px;
+  background: #fff;
+  border-bottom: 1px solid #e8eaed;
+  display: flex;
+  align-items: center;
+  padding: 0 20px;
+  z-index: 1000;
+  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
+}
+
+.header-left {
+  display: flex;
+  align-items: center;
+  gap: 12px;
+}
+
+.logo {
+  background: #ff4757;
+  color: white;
+  padding: 6px 12px;
+  border-radius: 6px;
+  font-size: 14px;
+  font-weight: bold;
+}
+
+.header-title {
+  font-size: 18px;
+  font-weight: 500;
+  color: #333;
+}
+
+.header-right {
+  margin-left: auto;
+  display: flex;
+  align-items: center;
+  gap: 12px;
+}
+
+.user-info {
+  display: flex;
+  align-items: center;
+  gap: 8px;
+  color: #666;
+  font-size: 14px;
+}
+
+/* Sidebar */
+.sidebar {
+  position: fixed;
+  left: 0;
+  top: 60px;
+  width: 200px;
+  height: calc(100vh - 60px);
+  background: #fff;
+  border-right: 1px solid #e8eaed;
+  overflow-y: auto;
+  z-index: 999;
+}
+
+.publish-btn {
+  margin: 16px;
+  background: #ff4757;
+  color: white;
+  padding: 10px 16px;
+  border-radius: 6px;
+  font-size: 14px;
+  font-weight: 500;
+  text-align: center;
+  transition: background 0.2s;
+}
+
+.publish-btn:hover {
+  background: #ff3742;
+}
+
+.nav-menu {
+  padding: 0;
+  list-style: none;
+}
+
+.nav-item {
+  border-bottom: 1px solid #f0f0f0;
+}
+
+.nav-link {
+  display: flex;
+  align-items: center;
+  padding: 12px 20px;
+  color: #333;
+  font-size: 14px;
+  transition: all 0.2s;
+  gap: 8px;
+}
+
+.nav-link:hover {
+  background: #f8f9fa;
+  color: #ff4757;
+}
+
+.nav-link.active {
+  background: linear-gradient(135deg, #ff4757, #ff6b7a);
+  color: white;
+  font-weight: 500;
+}
+
+.nav-link.active .lucide {
+  color: white;
+}
+
+.nav-submenu {
+  padding-left: 20px;
+  background: #fafafa;
+}
+
+.nav-submenu .nav-link {
+  padding: 8px 20px;
+  font-size: 13px;
+  color: #666;
+}
+
+.nav-submenu .nav-link:hover {
+  color: #ff4757;
+}
+
+/* Main Content */
+.main-content {
+  margin-left: 200px;
+  padding-top: 60px;
+  flex: 1;
+  min-height: 100vh;
+}
+
+.content-wrapper {
+  padding: 20px;
+  max-width: 1200px;
+  margin: 0 auto;
+}
+
+/* Upload Area */
+.upload-tabs {
+  display: flex;
+  gap: 20px;
+  margin-bottom: 30px;
+  border-bottom: 1px solid #e8eaed;
+}
+
+.upload-tab {
+  padding: 12px 0;
+  font-size: 16px;
+  color: #666;
+  cursor: pointer;
+  border-bottom: 2px solid transparent;
+  transition: all 0.2s;
+}
+
+.upload-tab.active {
+  color: #ff4757;
+  border-bottom-color: #ff4757;
+  font-weight: 500;
+}
+
+.upload-area {
+  background: #fff;
+  border-radius: 8px;
+  padding: 80px 40px;
+  text-align: center;
+  border: 2px dashed #ddd;
+  margin-bottom: 40px;
+  transition: all 0.2s;
+  min-height: 300px;
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+  position: relative;
+}
+
+.upload-area:hover {
+  border-color: #ff4757;
+  background: #fff8f8;
+}
+
+.upload-area.drag-over {
+  border-color: #ff4757;
+  background: #fff0f0;
+  transform: scale(1.02);
+}
+
+.upload-icon {
+  width: 100px;
+  height: 100px;
+  margin: 0 auto 30px;
+  background: #f8f9fa;
+  border-radius: 50%;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  font-size: 40px;
+  color: #ccc;
+  transition: all 0.3s ease;
+}
+
+.upload-area:hover .upload-icon {
+  background: #ff475710;
+  color: #ff4757;
+  transform: scale(1.1);
+}
+
+.upload-area.drag-over .upload-icon {
+  background: #ff475720;
+  color: #ff4757;
+  transform: scale(1.2);
+}
+
+.upload-title {
+  font-size: 20px;
+  color: #333;
+  margin-bottom: 12px;
+  font-weight: 500;
+}
+
+.upload-subtitle {
+  font-size: 14px;
+  color: #999;
+  margin-bottom: 30px;
+}
+
+.upload-btn {
+  background: #ff4757;
+  color: white;
+  padding: 14px 28px;
+  border-radius: 6px;
+  font-size: 16px;
+  font-weight: 500;
+  transition: background 0.2s;
+  min-width: 120px;
+}
+
+.upload-btn:hover:not(:disabled) {
+  background: #ff3742;
+}
+
+.upload-btn:disabled {
+  background: #ccc;
+  cursor: not-allowed;
+}
+
+.upload-btn.uploading {
+  background: #ff4757;
+  opacity: 0.8;
+}
+
+/* File Preview */
+.file-preview-area {
+  background: #fff;
+  border-radius: 8px;
+  padding: 20px;
+  margin-bottom: 40px;
+  border: 1px solid #e8eaed;
+}
+
+/* Preview Header */
+.preview-header {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  margin-bottom: 16px;
+}
+
+.preview-title {
+  font-size: 16px;
+  color: #333;
+  margin-bottom: 16px;
+  font-weight: 500;
+}
+
+.clear-files-btn {
+  background: #ff4757;
+  color: white;
+  padding: 6px 12px;
+  border-radius: 4px;
+  font-size: 12px;
+  transition: background 0.2s;
+}
+
+.clear-files-btn:hover {
+  background: #ff3742;
+}
+
+.file-grid {
+  display: grid;
+  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
+  gap: 16px;
+}
+
+.file-item {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  padding: 12px;
+  border: 1px solid #f0f0f0;
+  border-radius: 6px;
+  transition: all 0.2s ease;
+  position: relative;
+}
+
+.file-item:hover {
+  border-color: #ff4757;
+  box-shadow: 0 2px 8px rgba(255, 71, 87, 0.1);
+}
+
+.file-item:hover .remove-file-btn {
+  opacity: 1;
+}
+
+.remove-file-btn {
+  position: absolute;
+  top: 4px;
+  right: 4px;
+  background: rgba(255, 71, 87, 0.8);
+  color: white;
+  border-radius: 50%;
+  width: 20px;
+  height: 20px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  font-size: 14px;
+  font-weight: bold;
+  opacity: 0;
+  transition: all 0.2s;
+}
+
+.file-thumbnail {
+  width: 80px;
+  height: 80px;
+  border-radius: 6px;
+  overflow: hidden;
+  margin-bottom: 8px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  background: #f8f9fa;
+}
+
+.file-thumbnail img {
+  width: 100%;
+  height: 100%;
+  object-fit: cover;
+}
+
+.video-thumbnail {
+  color: #666;
+}
+
+.file-info {
+  text-align: center;
+  width: 100%;
+}
+
+.file-name {
+  font-size: 12px;
+  color: #333;
+  margin-bottom: 4px;
+  font-weight: 500;
+}
+
+.file-size {
+  font-size: 11px;
+  color: #999;
+}
+
+/* Upload Progress */
+.progress-container {
+  margin-top: 20px;
+  width: 100%;
+  max-width: 400px;
+}
+
+.progress-bar {
+  width: 100%;
+  height: 8px;
+  background-color: #f0f0f0;
+  border-radius: 4px;
+  overflow: hidden;
+  margin-bottom: 8px;
+}
+
+.progress-fill {
+  height: 100%;
+  background: linear-gradient(90deg, #ff4757, #ff6b7a);
+  border-radius: 4px;
+  transition: width 0.3s ease;
+  position: relative;
+}
+
+.progress-fill::after {
+  content: '';
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
+  animation: shimmer 1.5s infinite;
+}
+
+@keyframes shimmer {
+  0% { transform: translateX(-100%); }
+  100% { transform: translateX(100%); }
+}
+
+.progress-text {
+  text-align: center;
+  font-size: 12px;
+  color: #666;
+  font-weight: 500;
+}
+
+/* Upload Info */
+.upload-info {
+  display: flex;
+  gap: 60px;
+  justify-content: center;
+  margin-top: 40px;
+  padding: 20px;
+  opacity: 1;
+  transition: opacity 0.3s ease;
+}
+
+.upload-info.fade-in {
+  animation: fadeIn 0.3s ease-in-out;
+}
+
+@keyframes fadeIn {
+  from {
+    opacity: 0;
+    transform: translateY(10px);
+  }
+  to {
+    opacity: 1;
+    transform: translateY(0);
+  }
+}
+
+.info-item {
+  text-align: center;
+  flex: 1;
+  max-width: 300px;
+}
+
+.info-title {
+  font-size: 16px;
+  color: #333;
+  margin-bottom: 12px;
+  font-weight: 500;
+}
+
+.info-desc {
+  font-size: 13px;
+  color: #666;
+  line-height: 1.6;
+}
+
+/* Page Content Styles */
+.page-content {
+  padding: 40px;
+  background: white;
+  border-radius: 12px;
+  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
+  margin: 20px 0;
+  min-height: 500px;
+}
+
+.page-header {
+  margin-bottom: 40px;
+  padding-bottom: 20px;
+  border-bottom: 1px solid #e8eaed;
+}
+
+.page-title {
+  font-size: 24px;
+  font-weight: 600;
+  color: #333;
+  margin: 0;
+}
+
+.page-body {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  min-height: 400px;
+}
+
+.placeholder-content {
+  text-align: center;
+  max-width: 400px;
+}
+
+.placeholder-icon {
+  color: #ff4757;
+  margin-bottom: 20px;
+  display: flex;
+  justify-content: center;
+}
+
+.placeholder-title {
+  font-size: 20px;
+  font-weight: 500;
+  color: #333;
+  margin: 0 0 15px 0;
+}
+
+.placeholder-desc {
+  font-size: 14px;
+  color: #666;
+  line-height: 1.6;
+  margin: 0;
+}
+
+/* Responsive */
+@media (max-width: 768px) {
+  .sidebar {
+    transform: translateX(-100%);
+    transition: transform 0.3s;
+  }
+  
+  .main-content {
+    margin-left: 0;
+  }
+  
+  .header-title {
+    display: none;
+  }
+  
+  .upload-area {
+    padding: 60px 20px;
+    margin: 0 10px 30px;
+  }
+  
+  .upload-info {
+    flex-direction: column;
+    gap: 30px;
+    padding: 10px;
+  }
+  
+  .content-wrapper {
+    padding: 15px;
+  }
+  
+  .upload-tabs {
+    gap: 15px;
+  }
+  
+  .page-content {
+    padding: 20px;
+    margin: 10px;
+  }
+  
+  .page-title {
+    font-size: 20px;
+  }
+  
+  .placeholder-title {
+    font-size: 18px;
+  }
+  
+  .placeholder-desc {
+    font-size: 13px;
+  }
+}
diff --git a/src/App.jsx b/src/App.jsx
new file mode 100644
index 0000000..8388b7b
--- /dev/null
+++ b/src/App.jsx
@@ -0,0 +1,410 @@
+import React, { useState } from 'react'
+import { 
+  Home, 
+  Settings, 
+  BarChart3, 
+  PieChart, 
+  TrendingUp, 
+  Activity, 
+  BookOpen, 
+  Users, 
+  Upload, 
+  Image,
+  Video,
+  ChevronDown,
+  User
+} from 'lucide-react'
+import './App.css'
+
+function App() {
+  const [activeTab, setActiveTab] = useState('image')
+  const [expandedMenu, setExpandedMenu] = useState('dashboard')
+  const [activePage, setActivePage] = useState('dashboard') // 新增：当前激活的页面
+  const [isDragOver, setIsDragOver] = useState(false)
+  const [isUploading, setIsUploading] = useState(false)
+  const [uploadedFiles, setUploadedFiles] = useState([])
+  const [uploadProgress, setUploadProgress] = useState(0)
+
+  const validateFiles = (files) => {
+    const validImageTypes = ['image/jpeg', 'image/jpg', 'image/png', 'image/webp']
+    const validVideoTypes = ['video/mp4', 'video/mov', 'video/avi']
+    
+    const validTypes = activeTab === 'video' ? validVideoTypes : validImageTypes
+    const maxSize = activeTab === 'video' ? 2 * 1024 * 1024 * 1024 : 32 * 1024 * 1024 // 2GB for video, 32MB for images
+    
+    const invalidFiles = files.filter(file => {
+      return !validTypes.includes(file.type) || file.size > maxSize
+    })
+    
+    if (invalidFiles.length > 0) {
+      alert(`发现 ${invalidFiles.length} 个无效文件，请检查文件格式和大小`)
+      return false
+    }
+    
+    return true
+  }
+
+  const simulateUpload = (files) => {
+    setIsUploading(true)
+    setUploadProgress(0)
+    setUploadedFiles(files)
+    
+    // 模拟上传进度
+    const interval = setInterval(() => {
+      setUploadProgress(prev => {
+        if (prev >= 100) {
+          clearInterval(interval)
+          setIsUploading(false)
+          alert(`成功上传了 ${files.length} 个文件`)
+          return 100
+        }
+        return prev + 10
+      })
+    }, 200)
+  }
+
+  const handleFileUpload = () => {
+    if (isUploading) return
+    
+    const input = document.createElement('input')
+    input.type = 'file'
+    input.accept = activeTab === 'video' ? 'video/*' : 'image/*'
+    input.multiple = activeTab === 'image'
+    input.onchange = (e) => {
+      const files = Array.from(e.target.files)
+      if (files.length > 0 && validateFiles(files)) {
+        simulateUpload(files)
+      }
+    }
+    input.click()
+  }
+
+  const handleDragOver = (e) => {
+    e.preventDefault()
+    e.stopPropagation()
+    setIsDragOver(true)
+  }
+
+  const handleDragLeave = (e) => {
+    e.preventDefault()
+    e.stopPropagation()
+    setIsDragOver(false)
+  }
+
+  const handleDrop = (e) => {
+    e.preventDefault()
+    e.stopPropagation()
+    setIsDragOver(false)
+    
+    if (isUploading) return
+    
+    const files = Array.from(e.dataTransfer.files)
+    if (files.length > 0 && validateFiles(files)) {
+      simulateUpload(files)
+    }
+  }
+
+  const clearUploadedFiles = () => {
+    setUploadedFiles([])
+  }
+
+  const removeFile = (indexToRemove) => {
+    setUploadedFiles(prev => prev.filter((_, index) => index !== indexToRemove))
+  }
+
+  const menuItems = [
+    { id: 'home', label: '首页', icon: Home },
+    { id: 'notebooks', label: '笔记管理', icon: BookOpen },
+    {
+      id: 'dashboard',
+      label: '数据看板',
+      icon: BarChart3,
+      submenu: [
+        { id: 'overview', label: '账号概况' },
+        { id: 'content', label: '内容分析' },
+        { id: 'fans', label: '粉丝数据' }
+      ]
+    },
+    { id: 'activity', label: '活动中心', icon: Activity },
+    { id: 'notes', label: '笔记灵感', icon: BookOpen },
+    { id: 'creator', label: '创作学院', icon: Users },
+    { id: 'journal', label: '创作日刊', icon: BookOpen }
+  ]
+  const toggleMenu = (menuId) => {
+    setExpandedMenu(expandedMenu === menuId ? null : menuId)
+  }
+
+  // 新增：处理页面切换的函数
+  const handlePageChange = (pageId) => {
+    setActivePage(pageId)
+    // 如果点击的是有子菜单的项目，也要展开子菜单
+    const menuItem = menuItems.find(item => item.id === pageId)
+    if (menuItem && menuItem.submenu) {
+      setExpandedMenu(pageId)
+    }
+  }
+
+  return (
+    <div className="app">
+      {/* Header */}
+      <header className="header">
+        <div className="header-left">
+          <div className="logo">小红书</div>
+          <h1 className="header-title">创作服务平台</h1>
+        </div>
+        <div className="header-right">
+          <div className="user-info">
+            <User size={16} />
+            <span>小红薯63081EA1</span>
+          </div>
+        </div>
+      </header>
+
+      {/* Sidebar */}
+      <aside className="sidebar">
+        <button className="publish-btn">发布笔记</button>
+          <nav className="nav-menu">
+          {menuItems.map((item) => (
+            <div key={item.id} className="nav-item">
+              <a
+                href="#"
+                className={`nav-link ${activePage === item.id ? 'active' : ''}`}
+                onClick={(e) => {
+                  e.preventDefault()
+                  if (item.submenu) {
+                    toggleMenu(item.id)
+                  } else {
+                    handlePageChange(item.id)
+                  }
+                }}
+              >
+                <item.icon size={16} />
+                <span>{item.label}</span>
+                {item.submenu && <ChevronDown size={16} style={{ marginLeft: 'auto', transform: expandedMenu === item.id ? 'rotate(180deg)' : 'rotate(0deg)', transition: 'transform 0.3s ease' }} />}
+              </a>
+              
+              {item.submenu && expandedMenu === item.id && (
+                <div className="nav-submenu">
+                  {item.submenu.map((subItem) => (
+                    <a 
+                      key={subItem.id} 
+                      href="#" 
+                      className={`nav-link ${activePage === subItem.id ? 'active' : ''}`}
+                      onClick={(e) => {
+                        e.preventDefault()
+                        handlePageChange(subItem.id)
+                      }}
+                    >
+                      {subItem.label}
+                    </a>
+                  ))}
+                </div>
+              )}
+            </div>
+          ))}
+        </nav>
+      </aside>      {/* Main Content */}
+      <main className="main-content">
+        <div className="content-wrapper">
+          {activePage === 'dashboard' || activePage === 'overview' || activePage === 'content' || activePage === 'fans' ? (
+            // 上传页面内容（数据看板相关页面显示上传功能）
+            <>
+              {/* Upload Tabs */}
+              <div className="upload-tabs">
+                <button
+                  className={`upload-tab ${activeTab === 'video' ? 'active' : ''}`}
+                  onClick={() => setActiveTab('video')}
+                >
+                  上传视频
+                </button>
+                <button
+                  className={`upload-tab ${activeTab === 'image' ? 'active' : ''}`}
+                  onClick={() => setActiveTab('image')}
+                >
+                  上传图文
+                </button>
+              </div>
+
+              {/* Upload Area */}
+              <div 
+                className={`upload-area ${isDragOver ? 'drag-over' : ''}`}
+                onDragOver={handleDragOver}
+                onDragLeave={handleDragLeave}
+                onDrop={handleDrop}
+              >
+                <div className="upload-icon">
+                  {activeTab === 'video' ? <Video /> : <Image />}
+                </div>
+                <h2 className="upload-title">
+                  {activeTab === 'video' ? '拖拽视频到此处或点击上传' : '拖拽图片到此处或点击上传'}
+                </h2>
+                <p className="upload-subtitle">
+                  {activeTab === 'video' ? '(需支持上传格式)' : '(需支持上传格式)'}
+                </p>
+                <button 
+                  className={`upload-btn ${isUploading ? 'uploading' : ''}`} 
+                  onClick={handleFileUpload}
+                  disabled={isUploading}
+                >
+                  {isUploading ? `上传中... ${uploadProgress}%` : (activeTab === 'video' ? '上传视频' : '上传图片')}
+                </button>
+                
+                {/* Upload Progress Bar */}
+                {isUploading && (
+                  <div className="progress-container">
+                    <div className="progress-bar">
+                      <div 
+                        className="progress-fill" 
+                        style={{ width: `${uploadProgress}%` }}
+                      ></div>
+                    </div>
+                    <div className="progress-text">{uploadProgress}%</div>
+                  </div>
+                )}
+              </div>
+
+              {/* File Preview Area */}
+              {uploadedFiles.length > 0 && (
+                <div className="file-preview-area">
+                  <div className="preview-header">
+                    <h3 className="preview-title">已上传文件 ({uploadedFiles.length})</h3>
+                    <button className="clear-files-btn" onClick={clearUploadedFiles}>
+                      清除所有
+                    </button>
+                  </div>
+                  <div className="file-grid">
+                    {uploadedFiles.map((file, index) => (
+                      <div key={index} className="file-item">
+                        <button 
+                          className="remove-file-btn"
+                          onClick={() => removeFile(index)}
+                          title="删除文件"
+                        >
+                          ×
+                        </button>
+                        {file.type?.startsWith('image/') ? (
+                          <div className="file-thumbnail">
+                            <img src={URL.createObjectURL(file)} alt={file.name} />
+                          </div>
+                        ) : (
+                          <div className="file-thumbnail video-thumbnail">
+                            <Video size={24} />
+                          </div>
+                        )}
+                        <div className="file-info">
+                          <div className="file-name" title={file.name}>
+                            {file.name.length > 20 ? file.name.substring(0, 17) + '...' : file.name}
+                          </div>
+                          <div className="file-size">
+                            {(file.size / 1024 / 1024).toFixed(2)} MB
+                          </div>
+                        </div>
+                      </div>
+                    ))}
+                  </div>
+                </div>
+              )}
+
+              {/* Upload Info */}
+              <div className="upload-info fade-in" key={activeTab}>
+                {activeTab === 'image' ? (
+                  <>
+                    <div className="info-item">
+                      <h3 className="info-title">图片大小</h3>
+                      <p className="info-desc">
+                        支持上传的图片大小，<br />
+                        最大32MB的图片文件
+                      </p>
+                    </div>
+                    <div className="info-item">
+                      <h3 className="info-title">图片格式</h3>
+                      <p className="info-desc">
+                        支持上传的图片格式：<br />
+                        推荐使用png、jpg、jpeg、webp，不支持gif、live及其他转化的动图
+                      </p>
+                    </div>
+                    <div className="info-item">
+                      <h3 className="info-title">图片分辨率</h3>
+                      <p className="info-desc">
+                        不要竖图片尺寸，推荐上传3:4尺寸之间，分辨率不低于720*960的图片，<br />
+                        超过17张的时候图片将自动压缩至相配尺寸
+                      </p>
+                    </div>
+                  </>
+                ) : (
+                  <>
+                    <div className="info-item">
+                      <h3 className="info-title">视频大小</h3>
+                      <p className="info-desc">
+                        支持种类5分钟内视频，<br />
+                        最大2GB的视频文件
+                      </p>
+                    </div>
+                    <div className="info-item">
+                      <h3 className="info-title">视频格式</h3>
+                      <p className="info-desc">
+                        支持常用视频格式：<br />
+                        推荐使用mp4、mov
+                      </p>
+                    </div>
+                    <div className="info-item">
+                      <h3 className="info-title">视频分辨率</h3>
+                      <p className="info-desc">
+                        推荐上传720P (1280*720) 及以上视频，<br />
+                        超过1080P的视频可能可能导致上传稍慢且消耗流量
+                      </p>
+                    </div>
+                  </>
+                )}
+              </div>
+            </>
+          ) : (
+            // 其他页面的内容
+            <div className="page-content">
+              <div className="page-header">
+                <h1 className="page-title">
+                  {activePage === 'home' && '首页'}
+                  {activePage === 'notebooks' && '笔记管理'}
+                  {activePage === 'activity' && '活动中心'}
+                  {activePage === 'notes' && '笔记灵感'}
+                  {activePage === 'creator' && '创作学院'}
+                  {activePage === 'journal' && '创作日刊'}
+                </h1>
+              </div>
+              <div className="page-body">
+                <div className="placeholder-content">
+                  <div className="placeholder-icon">
+                    {activePage === 'home' && <Home size={48} />}
+                    {activePage === 'notebooks' && <BookOpen size={48} />}
+                    {activePage === 'activity' && <Activity size={48} />}
+                    {activePage === 'notes' && <BookOpen size={48} />}
+                    {activePage === 'creator' && <Users size={48} />}
+                    {activePage === 'journal' && <BookOpen size={48} />}
+                  </div>
+                  <h3 className="placeholder-title">
+                    {activePage === 'home' && '欢迎来到小红书创作平台'}
+                    {activePage === 'notebooks' && '笔记管理功能开发中'}
+                    {activePage === 'activity' && '活动中心功能开发中'}
+                    {activePage === 'notes' && '笔记灵感功能开发中'}
+                    {activePage === 'creator' && '创作学院功能开发中'}
+                    {activePage === 'journal' && '创作日刊功能开发中'}
+                  </h3>
+                  <p className="placeholder-desc">
+                    {activePage === 'home' && '在这里您可以管理您的创作内容，查看数据分析，获取创作灵感。'}
+                    {activePage === 'notebooks' && '这里将显示您的所有笔记，支持编辑、删除、分类等操作。'}
+                    {activePage === 'activity' && '这里将展示最新的平台活动，让您参与更多有趣的创作活动。'}
+                    {activePage === 'notes' && '这里将为您提供创作灵感和写作建议，帮助您创作更好的内容。'}
+                    {activePage === 'creator' && '这里将提供创作技巧教学和平台规则说明，助您成为优秀创作者。'}
+                    {activePage === 'journal' && '这里将展示创作相关的最新资讯和平台动态。'}
+                  </p>
+                </div>
+              </div>
+            </div>
+          )}
+        </div>
+      </main>
+    </div>
+  )
+}
+
+export default App
diff --git a/src/index.css b/src/index.css
new file mode 100644
index 0000000..72c144a
--- /dev/null
+++ b/src/index.css
@@ -0,0 +1,29 @@
+* {
+  margin: 0;
+  padding: 0;
+  box-sizing: border-box;
+}
+
+body {
+  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  background-color: #f5f7fa;
+}
+
+button {
+  border: none;
+  background: none;
+  cursor: pointer;
+  font-family: inherit;
+}
+
+a {
+  text-decoration: none;
+  color: inherit;
+}
+
+#root {
+  width: 100%;
+  min-height: 100vh;
+}
diff --git a/src/main.jsx b/src/main.jsx
new file mode 100644
index 0000000..b9a1a6d
--- /dev/null
+++ b/src/main.jsx
@@ -0,0 +1,10 @@
+import { StrictMode } from 'react'
+import { createRoot } from 'react-dom/client'
+import './index.css'
+import App from './App.jsx'
+
+createRoot(document.getElementById('root')).render(
+  <StrictMode>
+    <App />
+  </StrictMode>,
+)
