通知与推荐功能,css样式优化

Change-Id: I33d934bfdca88b7a8e6742be2a3c7323d28ffbcf
diff --git a/src/components/RequestDetail.css b/src/components/RequestDetail.css
index 0d47b71..6d544c9 100644
--- a/src/components/RequestDetail.css
+++ b/src/components/RequestDetail.css
@@ -1,213 +1,425 @@
-/* RequestDetail.css */

+/* RequestDetail.css - 个性化版本 */

 .request-detail-container {

-    max-width: 800px;

-    margin: 0 auto;

-    padding: 20px;

-  }

-  

-  .back-button {

-    background: none;

-    border: none;

-    color: #1890ff;

-    cursor: pointer;

-    font-size: 16px;

-    margin-bottom: 20px;

-    padding: 5px 0;

-  }

-  

-  .request-post {

-    background: #fff;

-    border-radius: 8px;

-    padding: 20px;

-    margin-bottom: 20px;

-    box-shadow: 0 1px 3px rgba(0,0,0,0.1);

-  }

-  

-  .post-header {

-    display: flex;

-    align-items: center;

-    margin-bottom: 15px;

-  }

-  

-  .post-avatar {

-    width: 40px;

-    height: 40px;

-    border-radius: 50%;

-    margin-right: 10px;

-  }

-  

-  .post-meta {

-    display: flex;

-    flex-direction: column;

-  }

-  

-  .post-author {

-    font-weight: bold;

-  }

-  

-  .post-date {

-    color: #888;

-    font-size: 14px;

+  max-width: 800px;

+  margin: 0 auto;

+  padding: 20px;

+  font-family: 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;

+}

+

+/* 返回按钮 - 渐变风格 */

+.back-button {

+  display: inline-flex;

+  align-items: center;

+  gap: 8px;

+  padding: 8px 16px;

+  background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);

+  color: white;

+  border: none;

+  border-radius: 6px;

+  font-weight: 600;

+  cursor: pointer;

+  transition: all 0.3s;

+  margin-bottom: 25px;

+  box-shadow: 0 2px 8px rgba(30, 60, 114, 0.2);

+}

+

+.back-button:hover {

+  transform: translateY(-2px);

+  box-shadow: 0 4px 12px rgba(30, 60, 114, 0.3);

+}

+

+.back-button::before {

+  content: "←";

+}

+

+/* 求种帖子卡片 - 3D悬浮效果 */

+.request-post {

+  background: white;

+  border-radius: 12px;

+  padding: 25px;

+  margin-bottom: 30px;

+  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);

+  transition: transform 0.3s, box-shadow 0.3s;

+  position: relative;

+  overflow: hidden;

+}

+

+.request-post:hover {

+  transform: translateY(-5px);

+  box-shadow: 0 12px 25px rgba(0, 0, 0, 0.12);

+}

+

+/* 帖子头部 - 圆形头像+渐变背景 */

+.post-header {

+  display: flex;

+  align-items: center;

+  margin-bottom: 20px;

+  position: relative;

+}

+

+.post-avatar {

+  width: 50px;

+  height: 50px;

+  border-radius: 50%;

+  margin-right: 15px;

+  object-fit: cover;

+  border: 3px solid rgba(30, 60, 114, 0.2);

+  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

+  color: white;

+  display: flex;

+  align-items: center;

+  justify-content: center;

+  font-weight: bold;

+  font-size: 20px;

+}

+

+.post-meta {

+  flex: 1;

+}

+

+.post-author {

+  font-weight: 700;

+  color: #1e3c72;

+  font-size: 18px;

+}

+

+.post-date {

+  color: #666;

+  font-size: 14px;

+  margin-top: 3px;

+}

+

+/* 帖子标题 - 渐变文字 */

+.post-title {

+  font-size: 28px;

+  margin: 0 0 20px;

+  background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);

+  -webkit-background-clip: text;

+  -webkit-text-fill-color: transparent;

+  font-weight: 800;

+}

+

+/* 帖子内容 - 更好的阅读体验 */

+.post-content {

+  line-height: 1.8;

+  color: #333;

+  font-size: 16px;

+  margin-bottom: 25px;

+}

+

+.post-content p {

+  margin-bottom: 15px;

+}

+

+/* 图片容器 - 圆角+阴影 */

+.post-image-container {

+  margin: 20px 0;

+  border-radius: 8px;

+  overflow: hidden;

+  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);

+  transition: transform 0.3s;

+}

+

+.post-image-container:hover {

+  transform: scale(1.02);

+}

+

+.post-image {

+  width: 100%;

+  height: auto;

+  max-height: 500px;

+  object-fit: contain;

+  display: block;

+}

+

+/* 帖子操作按钮 - 悬浮效果 */

+.post-actions {

+  display: flex;

+  gap: 15px;

+  margin-top: 25px;

+}

+

+.like-button, .favorite-button {

+  padding: 10px 20px;

+  border: none;

+  border-radius: 6px;

+  font-weight: 600;

+  cursor: pointer;

+  transition: all 0.3s;

+  display: flex;

+  align-items: center;

+  gap: 8px;

+}

+

+.like-button {

+  background: linear-gradient(135deg, #f6f7f9 0%, #e9ebee 100%);

+  color: #666;

+}

+

+.like-button:hover {

+  background: linear-gradient(135deg, #ebedf0 0%, #d8dadf 100%);

+  transform: translateY(-2px);

+  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);

+}

+

+.like-button.liked {

+  background: linear-gradient(135deg, #e6f7ff 0%, #bae7ff 100%);

+  color: #1890ff;

+}

+

+.favorite-button {

+  background: linear-gradient(135deg, #fff7e6 0%, #ffe7ba 100%);

+  color: #fa8c16;

+}

+

+.favorite-button:hover {

+  background: linear-gradient(135deg, #ffefd1 0%, #ffd591 100%);

+  transform: translateY(-2px);

+  box-shadow: 0 4px 8px rgba(250, 140, 22, 0.2);

+}

+

+.favorite-button.favorited {

+  background: linear-gradient(135deg, #fa8c16 0%, #ffc53d 100%);

+  color: white;

+}

+

+/* 评论区域 */

+.comments-section {

+  background: white;

+  border-radius: 12px;

+  padding: 25px;

+  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);

+}

+

+.comments-section h2 {

+  font-size: 22px;

+  color: #1e3c72;

+  margin-bottom: 20px;

+  padding-bottom: 10px;

+  border-bottom: 2px solid #f0f2f5;

+}

+

+/* 评论表单 - 现代设计 */

+.comment-form {

+  margin-bottom: 30px;

+}

+

+.comment-form textarea {

+  width: 100%;

+  padding: 15px;

+  border: 2px solid #f0f2f5;

+  border-radius: 8px;

+  resize: vertical;

+  min-height: 100px;

+  margin-bottom: 15px;

+  font-size: 15px;

+  transition: all 0.3s;

+}

+

+.comment-form textarea:focus {

+  border-color: #1e3c72;

+  box-shadow: 0 0 0 3px rgba(30, 60, 114, 0.2);

+  outline: none;

+}

+

+.form-actions {

+  display: flex;

+  gap: 15px;

+}

+

+.submit-comment {

+  padding: 12px 24px;

+  background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);

+  color: white;

+  border: none;

+  border-radius: 6px;

+  font-weight: 600;

+  cursor: pointer;

+  transition: all 0.3s;

+}

+

+.submit-comment:hover {

+  transform: translateY(-2px);

+  box-shadow: 0 4px 12px rgba(30, 60, 114, 0.3);

+}

+

+.submit-torrent {

+  padding: 12px 24px;

+  background: linear-gradient(135deg, #52c41a 0%, #a0d911 100%);

+  color: white;

+  border: none;

+  border-radius: 6px;

+  font-weight: 600;

+  cursor: pointer;

+  transition: all 0.3s;

+}

+

+.submit-torrent:hover {

+  transform: translateY(-2px);

+  box-shadow: 0 4px 12px rgba(82, 196, 26, 0.3);

+}

+

+/* 评论列表 - 卡片式设计 */

+.comment-list {

+  margin-top: 25px;

+}

+

+.comment-item {

+  display: flex;

+  padding: 20px;

+  margin-bottom: 20px;

+  background: #f9fafc;

+  border-radius: 10px;

+  transition: all 0.3s;

+}

+

+.comment-item:hover {

+  background: #f0f4f8;

+  transform: translateX(5px);

+}

+

+.comment-avatar {

+  width: 50px;

+  height: 50px;

+  border-radius: 50%;

+  margin-right: 15px;

+  object-fit: cover;

+  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

+  color: white;

+  display: flex;

+  align-items: center;

+  justify-content: center;

+  font-weight: bold;

+  font-size: 20px;

+  flex-shrink: 0;

+}

+

+.comment-content {

+  flex-grow: 1;

+}

+

+.comment-header {

+  display: flex;

+  justify-content: space-between;

+  align-items: center;

+  margin-bottom: 10px;

+}

+

+.comment-author {

+  font-weight: 700;

+  color: #1e3c72;

+}

+

+.comment-date {

+  color: #888;

+  font-size: 13px;

+}

+

+.comment-text {

+  line-height: 1.7;

+  color: #333;

+  margin-bottom: 15px;

+}

+

+/* 种子评论特殊样式 */

+.torrent-comment {

+  display: flex;

+  align-items: center;

+  padding: 15px;

+  background: linear-gradient(135deg, #e6f7ff 0%, #bae7ff 100%);

+  border-radius: 8px;

+  margin-bottom: 15px;

+  transition: all 0.3s;

+}

+

+.torrent-comment:hover {

+  background: linear-gradient(135deg, #d0e8ff 0%, #a0d0ff 100%);

+}

+

+.torrent-title {

+  color: #1e3c72;

+  font-weight: 600;

+  flex-grow: 1;

+}

+

+.torrent-size {

+  color: #666;

+  font-size: 14px;

+  margin: 0 15px;

+}

+

+.download-torrent {

+  padding: 8px 16px;

+  background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);

+  color: white;

+  border: none;

+  border-radius: 6px;

+  font-weight: 600;

+  cursor: pointer;

+  transition: all 0.3s;

+}

+

+.download-torrent:hover {

+  transform: translateY(-2px);

+  box-shadow: 0 4px 12px rgba(30, 60, 114, 0.3);

+}

+

+.comment-like {

+  background: none;

+  border: none;

+  color: #666;

+  cursor: pointer;

+  font-size: 14px;

+  padding: 5px 10px;

+  border-radius: 4px;

+  transition: all 0.3s;

+  display: flex;

+  align-items: center;

+  gap: 5px;

+}

+

+.comment-like:hover {

+  color: #1e3c72;

+  background: rgba(30, 60, 114, 0.1);

+}

+

+/* 响应式设计 */

+@media (max-width: 768px) {

+  .request-detail-container {

+    padding: 15px;

   }

   

   .post-title {

-    font-size: 20px;

-    margin: 0 0 15px;

-  }

-  

-  .post-content {

-    line-height: 1.6;

-    margin-bottom: 15px;

+    font-size: 24px;

   }

   

   .post-actions {

-    display: flex;

-    gap: 15px;

+    flex-direction: column;

   }

   

-  .like-button, .favorite-button {

-    padding: 5px 15px;

-    border-radius: 4px;

-    border: 1px solid #ddd;

-    background: #f5f5f5;

-    cursor: pointer;

-  }

-  

-  .like-button.liked {

-    background: #e6f7ff;

-    border-color: #91d5ff;

-    color: #1890ff;

-  }

-  

-  .favorite-button.favorited {

-    background: #fff7e6;

-    border-color: #ffd591;

-    color: #fa8c16;

-  }

-  

-  .comments-section {

-    background: #fff;

-    border-radius: 8px;

-    padding: 20px;

-    box-shadow: 0 1px 3px rgba(0,0,0,0.1);

-  }

-  

-  .comment-form {

-    margin-bottom: 20px;

-  }

-  

-  .comment-form textarea {

-    width: 100%;

-    padding: 10px;

-    border-radius: 4px;

-    border: 1px solid #ddd;

-    resize: vertical;

-    min-height: 80px;

-    margin-bottom: 10px;

-  }

-  

-  .form-actions {

-    display: flex;

-    gap: 10px;

-  }

-  

-  .submit-comment, .submit-torrent {

-    padding: 8px 16px;

-    border-radius: 4px;

-    border: none;

-    cursor: pointer;

-  }

-  

-  .submit-comment {

-    background: #1890ff;

-    color: white;

-  }

-  

-  .submit-torrent {

-    background: #52c41a;

-    color: white;

-  }

-  

-  .comment-list {

-    margin-top: 20px;

-  }

-  

-  .comment-item {

-    display: flex;

-    padding: 15px 0;

-    border-bottom: 1px solid #f0f0f0;

-  }

-  

-  .comment-item:last-child {

-    border-bottom: none;

+  .comment-item, .torrent-comment {

+    flex-direction: column;

   }

   

   .comment-avatar {

-    width: 40px;

-    height: 40px;

-    border-radius: 50%;

-    margin-right: 15px;

-    flex-shrink: 0;

-  }

-  

-  .comment-content {

-    flex-grow: 1;

-  }

-  

-  .comment-header {

-    display: flex;

-    justify-content: space-between;

-    margin-bottom: 8px;

-  }

-  

-  .comment-author {

-    font-weight: bold;

-  }

-  

-  .comment-date {

-    color: #888;

-    font-size: 14px;

-  }

-  

-  .comment-text {

-    line-height: 1.6;

-    margin-bottom: 8px;

+    margin-bottom: 15px;

   }

   

   .torrent-comment {

-    display: flex;

-    align-items: center;

-    margin-bottom: 8px;

-    padding: 8px;

-    background: #f0f8ff;

-    border-radius: 4px;

-  }

-  

-  .torrent-title {

-    color: #1890ff;

-    flex-grow: 1;

+    align-items: flex-start;

   }

   

   .torrent-size {

-    color: #666;

-    margin: 0 15px;

-    font-size: 14px;

+    margin: 10px 0;

   }

-  

-  .download-torrent {

-    background: #1890ff;

-    color: white;

-    border: none;

-    border-radius: 4px;

-    padding: 5px 10px;

-    cursor: pointer;

-  }

-  

-  .comment-like {

-    background: none;

-    border: none;

-    color: #666;

-    cursor: pointer;

-    font-size: 14px;

-    padding: 0;

-  }
\ No newline at end of file
+}

+

+/* 动画效果 */

+@keyframes fadeIn {

+  from { opacity: 0; transform: translateY(10px); }

+  to { opacity: 1; transform: translateY(0); }

+}

+

+.request-post, .comments-section {

+  animation: fadeIn 0.5s ease-out forwards;

+}
\ No newline at end of file