# Story 1.6: About Page Implementation **Status:** ready-for-dev **Epic:** Epic 1 - Webflow to Payload CMS + Astro Migration **Priority:** P1 (High - User-facing content page) **Estimated Time:** 8 hours --- ## Story **As a** Visitor, **I want** to learn about Enchun Digital's values and differences, **So that** I can trust them as my digital marketing partner. --- ## Context 這是 Epic 1 的第 6 個 Story,屬於「頁面實作」類別。About 頁面是建立品牌信任度的重要頁面,向潛在客戶展示恩群數位的核心理念和競爭優勢。 **Story Source:** - PRD: `/docs/prd/epic-1-stories-1.3-1.17-tasks.md` - Story 1.6 - Execution Plan: `/docs/prd/epic-1-execution-plan.md` - Implementation Readiness: `/Users/pukpuk/Dev/website-enchun-mgr/_bmad-output/planning-artifacts/implementation-readiness-report-2026-01-31.md` **原始 HTML 參考:** - [Source: research/www.enchun.tw/about-enchun.html](../../research/www.enchun.tw/about-enchun.html) - Webflow 原始頁面 **依賴關係:** - 依賴 Story 1.4 (Global Layout Components) - 需要共用 Header/Footer - 與 Story 1.5-1.11 可並行開發 --- ## Acceptance Criteria ### AC1: Hero Section - [ ] 標題顯示「關於恩群數位」 - [ ] 背景圖片符合 Webflow 設計 - [ ] 深色覆蓋層確保文字可讀性 - [ ] 響應式佈局(桌面/手機) ### AC2: Service Features Section - [ ] 4 個特色卡片顯示: - 在地化優先 - 高投資轉換率 - 數據優先 - 關係優於銷售 - [ ] 每個卡片包含 Icon + 標題 + 描述 - [ ] Grid 佈局(桌面 2x2,手機 1x4) - [ ] Hover 效果(陰影、上移) ### AC3: Comparison Table - [ ] 表格結構: - 左欄:恩群數位 - 右欄:其他行銷公司 - [ ] 多行對比項目(至少 3-5 項) - [ ] 表格樣式(邊框、間距、顏色) - [ ] 響應式設計(手機可水平滾動) ### AC4: CTA Section - [ ] 標題:「跟行銷顧問聊聊」 - [ ] 主要 CTA 按鈕連結到聯絡頁面 - [ ] 區塊背景色或設計突出 ### AC5: Visual Fidelity - [ ] 視覺保真度 ≥ 95%(對比 Webflow 原始設計) - [ ] 字型使用 Noto Sans TC - [ ] 顏色符合設計規範 ### AC6: Performance - [ ] Lighthouse Performance score ≥ 90 - [ ] FCP < 1.5s - [ ] LCP < 2.5s - [ ] CLS < 0.1 --- ## Tasks / Subtasks ### Task 1.6.1: Create About Page in Payload CMS (1h) **AC Coverage:** AC1, AC2, AC3, AC4 - [ ] 在 Pages collection 建立 about-enchun 頁面 - [ ] 設定 slug: `about-enchun` - [ ] Hero section blocks: - [ ] Title: "關於恩群數位" - [ ] 背景圖片 - [ ] Service features section: - [ ] 4 個特色卡片配置 - [ ] 在地化優先 - icon + title + description - [ ] 高投資轉換率 - icon + title + description - [ ] 數據優先 - icon + title + description - [ ] 關係優於銷售 - icon + title + description - [ ] Comparison table: - [ ] 恩群數位 vs 其他行銷公司 - [ ] 對比項目配置 - [ ] CTA section: - [ ] Title: "跟行銷顧問聊聊" - [ ] 按鈕連結 - [ ] SEO meta data (title, description, og:image) ### Task 1.6.2: Create about-enchun.astro Route (1.5h) **AC Coverage:** AC1-AC4 - [ ] 建立路由檔案 `apps/frontend/src/pages/about-enchun.astro` - [ ] 使用 MainLayout (來自 Story 1.4) - [ ] 從 Payload API 載入頁面內容 - [ ] API endpoint: `/api/pages?where[slug][equals]=about-enchun` - [ ] 錯誤處理 (404, API 失敗) - [ ] 實作各 section 組件的容器 - [ ] 設定頁面 meta tags ### Task 1.6.3: Implement Hero Section (1h) **AC Coverage:** AC1 - [ ] 建立 `Hero.astro` 組件(或複用首頁 Hero 組件) - [ ] 全背景圖片 - [ ] 標題:「關於恩群數位」 - [ ] 副標題(如有) - [ ] 深色覆蓋層(rgba(0,0,0,0.4)) - [ ] 響應式對齊(桌面置中,手機置中) - [ ] 淡入動畫效果 ### Task 1.6.4: Implement Service Features Section (1.5h) **AC Coverage:** AC2 - [ ] 建立 `ServiceFeatures.astro` 組件 - [ ] 4 個特色卡片配置: | 標題 | 描述 | Icon | |------|------|------| | 在地化優先 | 深耕台灣市場,了解本地消費者行為與文化 | `material-symbols:location-on` | | 高投資轉換率 | 專注 ROI,讓每分行銷預算發揮最大效益 | `material-symbols:trending-up` | | 數據優先 | 基於數據分析制定策略,精準掌握市場脈動 | `material-symbols:analytics` | | 關係優於銷售 | 建立長期合作關係,與客戶共同成長 | `material-symbols:handshake` | - [ ] Grid 佈局: - [ ] 桌面(≥768px):2 欄 x 2 行 - [ ] 手機(<768px):1 欄 x 4 行 - [ ] Hover 效果: - [ ] 陰影增加 - [ ] 卡片上移 4px - [ ] 過渡動畫 0.3s ease ### Task 1.6.5: Implement Comparison Table (1.5h) **AC Coverage:** AC3 - [ ] 建立 `ComparisonTable.astro` 組件 - [ ] 表格結構: ``` | 比較項目 | 恩群數位 | 其他行銷公司 | |----------|----------|--------------| | 數據分析 | 數據優先,精準投放 | 憑經驗判斷 | | 投資回報 | 專注 ROI | 不保證效果 | | 服務範圍 | 端到端解決方案 | 單一服務 | | 客戶關係 | 長期合作夥伴 | 專案制 | | 本地經驗 | 深耕台灣市場 | 通用方案 | ``` - [ ] 表格樣式: - [ ] 邊框:1px solid #e5e7eb - [ ] 標題行背景色:#f9fafb - [ ] 單元格內距:12px 16px - [ ] 文字對齊:left - [ ] 響應式設計: - [ ] 桌面:正常表格 - [ ] 手機:overflow-x-auto(可水平滾動) ### Task 1.6.6: Implement CTA Section (0.5h) **AC Coverage:** AC4 - [ ] 建立 `CTASection.astro` 組件(或複用首頁 CTA) - [ ] 標題:「跟行銷顧問聊聊」 - [ ] 副標題:「讓我們一起討論如何提升您的品牌」 - [ ] 主要 CTA 按鈕: - [ ] 文字:「立即聯絡」 - [ ] 連結:`/contact-us` - [ ] 樣式:主色背景,白色文字 - [ ] 區塊背景色或設計 ### Task 1.6.7: Performance and Visual Testing (1h) **AC Coverage:** AC5, AC6 - [ ] 圖片優化: - [ ] 轉換為 WebP 格式 - [ ] 響應式尺寸(桌面/手機) - [ ] 懶加載 - [ ] Lighthouse Performance audit: - [ ] Performance ≥ 90 - [ ] Accessibility ≥ 90 - [ ] Best Practices ≥ 90 - [ ] SEO ≥ 90 - [ ] 視覺保真度測試: - [ ] 與 Webflow 原始設計對比 - [ ] 字型、顏色、間距檢查 - [ ] 響應式斷點驗證 - [ ] 跨瀏覽器測試: - [ ] Chrome - [ ] Safari - [ ] Firefox - [ ] Edge --- ## Dev Technical Guidance ### Project Structure Notes **檔案位置:** ``` apps/frontend/src/ ├── pages/ │ └── about-enchun.astro ← 建立此路由檔案 ├── components/ │ ├── about/ │ │ ├── Hero.astro ← 關於頁 Hero │ │ ├── ServiceFeatures.astro ← 服務特色 │ │ ├── ComparisonTable.astro ← 對照表 │ │ └── CTASection.astro ← CTA 區塊 │ └── sections/ │ └── hero/ ← 可複用首頁 Hero └── layouts/ └── Layout.astro ← 來自 Story 1.4 ``` ### Payload CMS Content Structure **Pages Collection - About Page:** ```typescript // 在 Payload Admin 中建立 { title: "關於恩群數位", slug: "about-enchun", hero: { title: "關於恩群數位", subtitle: "專注數據導向的數位行銷服務", backgroundImage: "[上傳圖片到 R2]" }, serviceFeatures: [ { icon: "material-symbols:location-on", title: "在地化優先", description: "深耕台灣市場,了解本地消費者行為與文化" }, // ... 其他 3 個特色 ], comparisonTable: { rows: [ { item: "數據分析", enchun: "數據優先,精準投放", others: "憑經驗判斷" }, // ... 其他 4 項 ] }, cta: { title: "跟行銷顧問聊聊", subtitle: "讓我們一起討論如何提升您的品牌", buttonText: "立即聯絡", buttonLink: "/contact-us" }, seo: { title: "關於恩群數位 - 數據導向的數位行銷夥伴", description: "恩群數位提供專業的數位行銷服務,包含 Google Ads、社群代操、論壇行銷等,專注高投資轉換率。", ogImage: "[上傳 OG 圖片]" } } ``` ### API Integration Pattern **Payload API 呼叫範例:** ```typescript // apps/frontend/src/pages/about-enchun.astro --- import Layout from '../layouts/Layout.astro' import Hero from '../components/about/Hero.astro' import ServiceFeatures from '../components/about/ServiceFeatures.astro' import ComparisonTable from '../components/about/ComparisonTable.astro' import CTASection from '../components/about/CTASection.astro' const response = await fetch(`${import.meta.env.PAYLOAD_CMS_URL}/api/pages?where[slug][equals]=about-enchun&depth=1`) const data = await response.json() const page = data.docs[0] if (!page) { return Astro.redirect('/404') } --- ``` ### Design Tokens (來自 Webflow) **顏色系統:** ```css /* 主色調 */ --color-primary: #FF6B35; /* 恩群橙 */ --color-primary-dark: #E55A2B; --color-primary-light: #FF8C5A; /* 中性色 */ --color-gray-50: #F9FAFB; --color-gray-100: #F3F4F6; --color-gray-200: #E5E7EB; --color-gray-300: #D1D5DB; --color-gray-600: #4B5563; --color-gray-800: #1F2937; --color-gray-900: #111827; /* 文字顏色 */ --color-text: #1F2937; --color-text-secondary: #6B7280; --color-text-light: #9CA3AF; ``` **字型系統:** ```css /* 中文 */ --font-chinese: 'Noto Sans TC', sans-serif; /* 英文/數字 */ --font-english: 'Quicksand', sans-serif; /* 字級 */ --text-h1: clamp(2rem, 5vw, 3rem); /* 32px - 48px */ --text-h2: clamp(1.5rem, 4vw, 2.25rem); /* 24px - 36px */ --text-h3: clamp(1.25rem, 3vw, 1.875rem); /* 20px - 30px */ --text-body: 1rem; /* 16px */ --text-sm: 0.875rem; /* 14px */ ``` **間距系統:** ```css --spacing-xs: 0.5rem; /* 8px */ --spacing-sm: 1rem; /* 16px */ --spacing-md: 1.5rem; /* 24px */ --spacing-lg: 2rem; /* 32px */ --spacing-xl: 3rem; /* 48px */ --spacing-2xl: 4rem; /* 64px */ ``` ### Architecture Compliance 遵循專案架構模式: 1. **組件化設計:** - 使用 Astro 組件(`.astro`) - Props interface 使用 TypeScript - 可複用首頁組件(Hero, CTASection) 2. **響應式設計:** - 使用 Tailwind CSS 斷點 - Mobile-first 開發 - 斷點:sm(640px), md(768px), lg(1024px) 3. **性能優化:** - Astro 圖片優化 (``) - 懶加載非關鍵資源 - CSS 內聯關鍵路徑 4. **SEO 最佳化:** - 動態 meta tags - Open Graph tags - 結構化資料(JSON-LD) --- ## Testing Requirements ### Unit Tests ```typescript // apps/frontend/src/components/about/__tests__/ComparisonTable.spec.ts import { describe, it, expect } from 'vitest' describe('ComparisonTable Component', () => { it('should render all comparison rows', () => { const rows = [ { item: '數據分析', enchun: '數據優先', others: '憑經驗' }, { item: '投資回報', enchun: '專注 ROI', others: '不保證' } ] // 測試邏輯... }) it('should handle empty rows gracefully', () => { // 測試空資料... }) }) ``` ### Manual Testing Checklist **Hero Section:** - [ ] 標題「關於恩群數位」正確顯示 - [ ] 背景圖片載入成功 - [ ] 文字在深色覆蓋層上可讀 - [ ] 手機版標題大小適中 **Service Features:** - [ ] 4 個卡片全部顯示 - [ ] Icons 正確渲染 - [ ] Hover 效果流暢 - [ ] 手機版為單欄佈局 **Comparison Table:** - [ ] 表格所有行正確顯示 - [ ] 標題行有背景色 - [ ] 手機版可水平滾動 - [ ] 邊框和間距正確 **CTA Section:** - [ ] 標題「跟行銷顧問聊聊」顯示 - [ ] 按鈕可點擊並連結到正確頁面 - [ ] 區塊設計突出 **Performance:** - [ ] Lighthouse Performance ≥ 90 - [ ] 圖片使用 WebP 格式 - [ ] 無 layout shift --- ## Risk Assessment | Risk | Probability | Impact | Mitigation | |------|------------|--------|------------| | 設計標記未提取完全 | Medium | Medium | 在 Story 1.4 完成前提取完整設計標記 | | Payload API 延遲 | Low | Low | 使用靜態生成或快取 | | 圖片優化問題 | Low | Low | 使用 Astro Image 組件自動優化 | | 響應式斷點不一致 | Medium | Low | 使用 Tailwind 預設斷點 | --- ## Definition of Done - [ ] About 頁面路由建立完成 - [ ] Payload CMS 內容配置完成 - [ ] 所有 4 個 section 組件實作完成 - [ ] 視覺保真度 ≥ 95% - [ ] Lighthouse Performance ≥ 90 - [ ] 響應式設計通過所有斷點測試 - [ ] 跨瀏覽器測試通過 - [ ] 單元測試覆蓋核心組件 - [ ] sprint-status.yaml 更新狀態 - [ ] Story 狀態設為 ready-for-review --- ## Dev Agent Record ### Agent Model Used *To be filled by Dev Agent* ### Debug Log References *To be filled by Dev Agent* ### Completion Notes *To be filled by Dev Agent* ### File List *To be filled by Dev Agent* --- ## Change Log | Date | Action | Author | |------|--------|--------| | 2026-01-31 | Story created (Draft) | SM Agent (Bob) |