🔶 HN Redesign

現代化的 Hacker News 閱讀體驗

專案簡報 · Agent Product Team

2026 年 3 月 · PM Steve 主持

問題是什麼?

Hacker News 自 2007 年以來幾乎沒有改變。

📐 表格佈局,毫無視覺層次

👆 點擊目標太小,行動裝置操作困難

📱 沒有響應式設計 — 所有螢幕都是同一版面

🧠 老用戶早已習慣,新用戶直接離開

我們打造一個現代化的唯讀前端
重新想像 HN 的閱讀體驗,同時保留其核心心智模型。

目標使用者

使用者類型描述核心需求
每日 HN 讀者 每天查看 3-10 次 快速掃描、清楚的層級架構
隨意瀏覽者 透過分享連結進來 直覺導航、零學習成本
行動裝置使用者 通勤時用手機瀏覽 觸控友善、響應式、快速

驗證目標

✅ HN 的資訊架構可以在不損失易用性的前提下被重新設計

✅ 6 頁的 React SPA 涵蓋真實的架構與設計複雜度

✅ 具有關聯結構的 Mock 資料(文章 ↔ 使用者 ↔ 留言)能實現逼真的跨頁導航

✅ 自治 Agent 團隊能端到端交付完整產品

V1 範圍:多頁 Web App、客戶端路由、僅使用 Mock 資料 — 無後端

六個頁面,一個應用

🏠 首頁 / 文章列表

Top、New、Best、Ask HN、Show HN — 標籤切換,URL 驅動狀態

💬 文章詳情

完整文章標題 + 巢狀留言樹(4 層以上,依深度標色)

👤 使用者檔案

帳號、Karma、簡介 + 分頁顯示投稿與留言

✏️ 投稿頁面

連結 / Ask 切換、客戶端驗證、即時 StoryCard 預覽

🔍 搜尋

URL 驅動查詢參數、依類型/日期/分數篩選、文章 + 留言結果

🔖 書籤

透過 localStorage 收藏文章,專屬頁面含空狀態與移除功能

為何選這六個頁面?

文章 + 留言 — 核心 HN 流程。完整路由、URL 狀態、麵包屑。

使用者檔案 — 第二種實體,跨連結導航,不同版面模式。

投稿 — Feed App 中的表單頁面。驗證邏輯、不同互動模式。

搜尋 — URL 查詢參數、篩選控制項,與所有頁面相連。

書籤 — 唯一具有持久客戶端狀態的功能(localStorage),橫跨多頁。

每一頁都增添獨特的架構複雜度 — 不是湊數。

關鍵使用者流程

1. 瀏覽 → 閱讀 → 探索
首頁 → 文章 → 留言作者 → 使用者檔案 → 他的投稿 → 文章詳情

2. 搜尋 → 發現 → 收藏
搜尋欄 → 結果 → 依分數篩選 → 點擊文章 → 加入書籤

3. 投稿 → 預覽 → 瀏覽
投稿頁 → 填寫表單 → 即時預覽 → 「送出」→ Toast 通知 → 首頁

4. 策展 → 回顧
瀏覽 → 收藏多篇 → /bookmarks → 點擊已存文章 → 閱讀

5. 依類型篩選
首頁 → 「Ask HN」標籤 → 討論串 → 「Show HN」標籤 → 不同文章

全域功能

🧭 固定頂部導航 — Logo、文章標籤、搜尋、書籤徽章、投稿連結

📱 響應式版面 — 375px(iPhone SE)到 1440px 桌面版

🔙 瀏覽器歷史 — 前進/後退在所有路由皆正常運作

頁面轉場 — CSS 淡入淡出(200ms)

👆 觸控目標 — 所有互動元素最小 44×44px

🚫 404 頁面 — 樣式化的錯誤頁,含回首頁導航

設計原則

1. 可掃描勝過裝飾性 — 資訊密度是特色。視覺層級加速瀏覽,而非減速。

2. 溫暖中性色調 — 奶油色、柔和橙色,向 HN 經典致敬。現代對比度,不冷/不商業。

3. 大觸控區、緊密網格 — 44px+ 點擊目標、寬裕間距,桌面版仍保持資訊密度。

4. 漸進式揭露 — 重要資訊優先。留言可摺疊,metadata 為次要。

5. 系統原生感 — 系統字型堆疊,像是一個精心打造的工具 — 不是行銷網站。

設計系統

🎨 色彩 Token

--color-primary #FF6600

--color-secondary #6366F1

--color-background #FAFAF8

--color-text-primary #1A1A1A

🔤 字型排版

Inter + 系統字型堆疊

15px 基準 · 18px 標題 · 24px 大標

📐 間距與圓角

4px → 48px 間距比例(8 個 Token)

6px 按鈕 · 10px 卡片 · 16px 彈窗

🌈 留言深度色彩

L0 — 橘色

L1 — 靛藍

L2 — 青色

L3 — 紫色

元件庫

元件用途變體
Header全域導航 — Logo、標籤、搜尋、書籤、投稿桌面版 / 精簡版
StoryCard列表中的文章卡片 — 標題、網域、metadata預設 / ask / show
CommentTree遞迴巢狀留言,依深度標色
Comment單則留言,含作者、時間、摺疊功能預設 / 原作者
StoryForm投稿表單,含驗證 + 即時預覽連結 / ask
FilterBar搜尋篩選 — 類型、排序、日期
Toast臨時通知成功 / 錯誤 / 資訊
EmptyState無內容佔位書籤 / 搜尋

所有元件皆定義了響應式行為、狀態與驗收標準

技術堆疊

層級選擇原因
框架React 18指定使用、穩定、廣為人知
路由React Router v6巢狀路由、URL 參數、查詢字串
樣式CSS Modules零執行時期開銷、有作用域、乾淨 JSX
建置Vite 5快速 HMR、零設定、現代 ESM
狀態Context + useReducer書籤功能足夠 — 不需要 Redux
資料靜態 JS 模組關聯式 Mock 資料,未來可輕鬆替換 API
圖示Lucide React輕量、支援 Tree-shaking

為何使用 CSS Modules?

🚀 零執行時期成本 — 樣式在建置時解析,無 JS 額外開銷

🔒 預設有作用域 — 無命名衝突、不需 BEM

🎨 設計 Token 作為 CSS 自訂屬性 — 設計師定義 Token,元件自然取用

📦 檔案並置Header.jsx + Header.module.css 放在一起

🧹 乾淨的 JSX — 不像 Tailwind 有大量 Utility Class

曾考慮的替代方案:Tailwind(設定負擔)、styled-components(執行時期成本)、原生 CSS(命名衝突)

QA 結果

通過
整體判定
7/7
已測試頁面
45/48
規格項目
0
嚴重 / 主要問題

✅ 全部 5 個使用者流程已端對端測試

✅ 響應式版面在行動裝置與桌面版已驗證

✅ 設計系統 Token 在全站正確套用

✅ 乾淨建置 — 291KB JS、20KB CSS

⚠️ 4 個次要問題:檔案組織偏差(功能正常)

下一步

🔜 V2 構想

  • 接入真實 HN API
  • 深色模式切換
  • 分頁 / 無限捲動
  • 效能優化:延遲載入、SSR
  • 鍵盤快捷鍵

🔧 整理事項

  • 依 ARCHITECTURE.md 重整檔案
  • 分離 hooks 與 variables 檔案
  • 自訂 favicon
  • 增量式 git commits
  • 衝刺中期檢討

團隊 🤝

📋
Steve
PM — 需求與範疇
🔬
Stephen
研究員
🏗️
Tony
架構師
🎨
Natasha
設計師 — 設計系統
👁️
Vision
工程師 — 實作
Thor
QA — 測試

全自治 Agent 流程 · 單一衝刺 · 零人類程式碼

🔶 出貨吧。

HN Redesign — v1 完成

7 頁 · 45/48 規格項目 · 0 嚴重問題 · 🟢 通過

Agent Product Team · 2026 年 3 月