add mainView, reward, community pages

Change-Id: I70da6ed3e91ebf4124c2074b6508192a19ed9909
diff --git a/src/app/main.scss b/src/app/main.scss
new file mode 100644
index 0000000..90bf67d
--- /dev/null
+++ b/src/app/main.scss
@@ -0,0 +1,214 @@
+.Home {
+  padding: 2rem;
+  position: relative;
+  max-width: 1200px;
+  margin: 0 auto;
+  padding: 0 2rem;
+}
+
+.main-header {
+  display: flex;
+  flex-direction: row;
+  gap: 24px;
+  margin: 0 auto;
+  margin-bottom: 2rem;
+  margin-top: 2rem;
+}
+
+.section-header {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  margin-top: 20px;
+}
+
+.carousel-wrapper {
+  flex: 1;
+
+  .custom-carousel {
+    position: relative;
+
+    .carousel-item {
+      max-width: 100px;
+
+      img {
+        border-radius: 8px;
+        object-fit: cover;
+      }
+    }
+
+    .p-carousel-prev,
+    .p-carousel-next {
+      position: absolute;
+      top: 50%;
+      transform: translateY(-50%);
+      z-index: 10;
+      /* 保证在图片之上 */
+      width: 2.5rem;
+      height: 2.5rem;
+      border-radius: 50%;
+      background: rgba(255, 255, 255, 0);
+      color: #fff;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      pointer-events: auto;
+      /* 确保按钮可点击 */
+    }
+
+    /* 左箭头靠左 */
+    .p-carousel-prev {
+      left: 0.5rem;
+    }
+
+    /* 右箭头靠右 */
+    .p-carousel-next {
+      right: 0.5rem;
+    }
+  }
+}
+
+.rewards-panel {
+  display: flex;
+  flex-direction: column;
+  height: 350px;
+  width: 400px;
+  background: #fff;
+  border-radius: 10px;
+  padding: 1rem;
+  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
+
+  h2 {
+    color: #526665;
+    font-size: 1.25rem;
+    margin-bottom: 1rem;
+    padding-bottom: 0.5rem;
+    border-bottom: 1px solid #eee;
+    text-align: center;
+  }
+
+  .rewards-list {
+    display: flex;
+    flex-direction: column;
+    gap: 1rem;
+
+    .reward-item {
+      display: flex;
+      justify-content: space-between;
+      align-items: center;
+      padding: 0.75rem;
+      background: #f8f9fa;
+      border-radius: 6px;
+      transition: all 0.3s ease;
+
+      &:hover {
+        background: #f0f4f7;
+        transform: translateY(-2px);
+      }
+
+      .reward-title {
+        font-size: 0.7rem;
+        color: #333;
+      }
+
+      .reward-price {
+        font-weight: bold;
+        color: #526665;
+      }
+    }
+  }
+
+  .view-all-button {
+    width: 60%;
+    margin-left: 4.5rem;
+    margin-top: 2rem;
+  }
+}
+
+.site-stats {
+  max-width: 1200px;
+  margin: 2rem auto;
+  padding: 1rem;
+  background-color: #fff;
+  border-radius: 8px;
+  display: flex;
+  justify-content: space-around;
+  align-items: center;
+  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
+
+  .stat-item {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    gap: 0.5rem;
+
+    .stat-value {
+      font-size: 1.5rem;
+      font-weight: bold;
+      color: #333;
+    }
+
+    .stat-label {
+      font-size: 0.875rem;
+      color: #666;
+    }
+  }
+}
+
+.resource-grid {
+  display: grid;
+  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
+  gap: 1rem;
+
+  .resource-card {
+    transition: transform 0.2s ease;
+    cursor: pointer;
+    box-shadow: none !important;
+
+    .p-image {
+      img {
+        border-radius: 0.5rem 0.5rem 0 0;
+        object-fit: cover;
+      }
+    }
+
+    .p-card-body {
+      padding: 0;
+    }
+
+    .p-card-content {
+      padding: 0;
+    }
+
+    &:hover {
+      transform: translateY(-4px);
+    }
+
+    .card-content {
+      display: flex;
+      flex-direction: column;
+      position: relative;
+      margin-left: 16px;
+      margin-right: 16px;
+      margin-bottom: 16px;
+
+      h3 {
+        margin: 1rem 0;
+        font-size: 1rem;
+        line-height: 1.5;
+        color: #2d3748;
+      }
+
+      .view-count {
+        position: absolute;
+        bottom: 0rem;
+        right: 0rem;
+        display: flex;
+        align-items: center;
+        gap: 0.5rem;
+        color: #718096;
+        font-size: 0.9rem;
+      }
+    }
+  }
+}
\ No newline at end of file