【2026 最新】Claude Code 做網站教學:7 步打造高質感動畫網站(參考圖+Prompt+驗收)

最後更新: ·
Claude Code 做網站教學首圖:從參考圖、實作到驗收的高質感動畫網站流程

Claude Code 做網站,真正的難點不是「叫 AI 寫前端」,而是把模糊的好看,變成它能執行、你能驗收的規格。一篇在 X 流傳的動畫網站實作分享,作者自述約兩小時做出第一版視覺原型,並用高額 agency 報價作為對比。它很適合提供靈感,但不是工期或商業價值的證明;從原型到可正式上線,還隔著內容、授權、手機版、無障礙、效能、測試與部署。

這篇把那個流程重新做成新手能重複使用的版本:先整理參考圖,再用官方 Frontend Design 外掛建立設計規格,只做一個有記憶點的招牌動效,最後讓瀏覽器、build 與真人判斷共同驗收。你不必先會手寫 React,但仍要負責看懂變更範圍、測試結果與上線風險;「AI 幫你寫 code」不等於「你沒有技術責任」。

高質感網站 = 好參考 × 明確規格 × 可驗證迭代
這裡用乘法,是因為任何一項接近零,成果都會一起塌掉:只有參考圖會變成模仿;只有規格會變成紙上設計;只會生成、不驗收,則只是一次性的漂亮截圖。

Claude Code 做網站的四步迴圈:參考圖、設計規格、實作與驗收,核心公式是好參考乘明確規格乘可驗證迭代
把網站製作想成可重跑的迴圈;第四步驗收發現差異,就回到規格而不是一直補形容詞

Claude Code 做網站前,先定義這篇會交付什麼

完成本文後,你應該得到的是一個可以在本機啟動、具備桌機與手機版、包含一個手電筒 Hero 動效,並通過基本工程驗收的網站原型。它不是「價值一萬美元」的保證,也不自動包含品牌策略、專業攝影、法務審查、後端表單、分析同意、SEO 維護或長期保固。

  • 你要準備:Pro、Max、Team、Enterprise 或 Console 帳號(Claude.ai Free 不含 Claude Code)、Node.js、Git、1~3 張合法可用的參考圖,以及真實文案與作品素材。
  • 本文示範:Next.js+CSS;Motion 是選配,不是做動畫的必要條件。
  • 你要保留:每一輪修改前的 Git commit;不要把 API key、客戶機密或未授權素材放進前端專案或對話。
  • 你要判斷:AI 的設計建議是否服務受眾與主要任務,而不是只看畫面是否「很炫」。

如果你還不熟 coding agent,可以先讀 AlphaLab 的Claude Code vs Codex 比較AI Agent Harness 白話解釋。本文專注在「參考圖 → 規格 → 前端 → 驗收」這條實作線,不再重複介紹 Agent 基礎觀念。

第一步:安裝 Claude Code,建立可回復的專案

macOS、Linux 或 WSL 可依Claude Code 官方安裝文件使用原生安裝器,完成後確認版本與環境:

curl -fsSL https://claude.ai/install.sh | bash
claude --version
claude doctor

若從空白開始,本文用 Next.js 建立範例。Next.js 官方文件目前要求 Node.js 20.9 以上,預設專案包含 TypeScript、Tailwind CSS、ESLint、App Router 與 Turbopack;如果你已有 React/Astro/Vue 專案,就不要為了跟教學一致而重建。本文改用 Node 隨附的 npm,避免再增加一個 package manager 前置條件。

node --version
npx create-next-app@latest portfolio --yes
cd portfolio
claude

第一次使用時,在 Claude Code 內完成 /login。接著另開一個 terminal、進入同一個專案並啟動網站;第一個 terminal 保留給 Claude Code:

cd portfolio
npm run dev

先確認瀏覽器能打開本機網站,再建立第一個 commit。這個動作不是形式:當 Agent 大改版面、依賴或路由時,Git 會提供清楚、可操作的復原點。

第二步:裝官方 Frontend Design;第三方工具先別急

2026 年 7 月 27 日查核時,目前官方安裝主線是 Claude Code 啟動時會自動提供的 claude-plugins-official marketplace,直接安裝 Anthropic Verified 的 Frontend Design plugin

/plugin install frontend-design@claude-plugins-official
/reload-plugins

若找不到 marketplace,再執行:

/plugin marketplace add anthropics/claude-plugins-official
/plugin marketplace update claude-plugins-official
/plugin install frontend-design@claude-plugins-official
/reload-plugins

它的角色是設計規則書:要求 Agent 先定義受眾、任務、色彩 token、字體角色、版面與一個 signature moment,再寫 code、截圖、自我挑錯。它不是背景常駐的設計引擎;截至本文查核日,公開 SKILL.md 未列字體封鎖,plugin manifest 也未包含自動安裝 Motion/GSAP 的 hook 或 command。若不要 Agent 另外新增依賴,仍要在 prompt 明確禁止並審核變更。自然語言的前端任務可能自動觸發;為了讓教學在版本與命名衝突下更穩定,本文明確使用完整名稱 /frontend-design:frontend-design

Anthropic 官方 Frontend Design plugin 頁面,標示 Anthropic Verified、安裝於 Claude Code 與由 Anthropic 製作
官方 Frontend Design 的價值是提供設計判斷與檢查框架;截圖來源:Anthropic 官方 plugin 頁面,查核日 2026-07-27

UI UX Pro Max 則是 NextLevelBuilder 維護的第三方開源專案,提供大量風格、配色、字體與 stack 建議。它不是 Anthropic 產品,資料數量也會持續變動;若真的需要更多靈感,再依現行 repo 說明安裝,個人試用先選 Local scope,完成團隊審查、確定要共享後才用 Project scope。Claude Code 官方也提醒,第三方 plugin 能以你的使用者權限執行程式,所以「熱門」不能代替信任審查。

Claude Code 做網站三種方法比較:不用外掛、官方 Frontend Design 與第三方 UI UX Pro Max,官方外掛列為新手首選
低依賴順序:先用官方 Frontend Design;有成熟設計系統可不裝,真的需要大型靈感資料庫再評估第三方工具

第三步:整理參考圖,學設計語法而不是複製網站

Claude Code 官方支援拖入圖片、貼上圖片,或直接提供本機路徑。較有效的做法不是塞進十幾張完整長頁,而是替每一張圖寫出「它要回答的問題」。例如 Hero 看明暗對比、作品集看資訊密度、project detail 看敘事順序。

reference/
├── hero-light-reveal.png
├── portfolio-grid-density.png
└── project-detail-rhythm.png

檔名用語意,不要沿用 7.png11.png 這種會在 prompt 與文章間對錯圖的編號。然後建立一份簡短 manifest:

hero-light-reveal.png
只參考:暗色基底、局部照亮、標題與人物的前後關係
不要複製:人物照片、文案、Logo、精確版面

portfolio-grid-density.png
只參考:卡片大小差、留白節奏、作品排序
不要複製:原站作品圖、品牌色與互動細節

版權底線:把參考圖當 mood board,抽取色調、節奏、資訊階層與互動概念;不要搬用原站圖片、文字、Logo、程式碼,或照抄完整且高度識別性的組合。Pinterest 或 Awwwards 上看得到,不代表你取得商用授權,平台的使用條款也不會自動把第三方素材權利轉給你。正式上線前,逐項確認照片、圖示與字型授權;在台灣發布可再查閱經濟部智慧財產局著作權資料並向權利人確認。這是一般風險提醒,不是法律意見。

第四步:先進 Plan mode,把「高級感」翻成規格

一個常見的失敗,是一開始就說「做一個很高級、動畫很多的作品集」。高級感沒有單位,也不能驗收。一般 session 中,Plan mode 可讓 Claude 讀檔、執行探索命令、分析參考圖並提出計畫,但不編輯 source;已啟用 bypass permissions 的 session 是例外,因此本文不使用 bypass。先進入 Plan mode:

claude --permission-mode plan

接著貼上這份規劃 prompt:

/frontend-design:frontend-design

先不要寫程式,也不要安裝套件。
請讀取 ./reference 與現有專案,先問我缺少的關鍵問題;
等我回答並批准 plan 後才能改檔。

受眾:尋找品牌影片合作的創意總監
唯一主要任務:看完代表作後寄出合作邀請
真實內容:只使用我提供的姓名、作品、年份與客戶
視覺方向:編輯感、暗色、克制,不要 SaaS 卡片牆

請提出:
1. 4–6 個具名色彩 token
2. display/body/utility 三種字體角色
3. 桌機與手機 ASCII wireframe
4. 一個招牌動效,以及觸控與 reduced-motion fallback
5. 哪些參考元素可以借鑑、哪些不應複製
6. 375/768/1440px 的驗收清單
7. 預計修改的檔案與依賴;不要自行部署

你要審的不是「Claude 有沒有寫得很專業」,而是每個決策能否回答三件事:服務誰、幫他完成什麼、怎麼證明做到了。想更深入理解為何清楚的上下文比超長 prompt 更重要,可搭配Context Engineering 教學

第五步:先做骨架與真實內容,再加一個招牌動畫

批准 plan 後,在目前 session 按 Shift+Tab 切到 Manual 逐次確認,或切到 Accept Edits 讓工作目錄內的檔案操作少一點提示;下面的 CLI flag 則是另開全新 session 時使用。注意:acceptEdits 也會自動核准工作目錄內的 rmrmdir 等操作;若刪檔必須人工確認,請留在 Manual 或設定明確的 ask rule。第一次不要同時做 loader、頁面轉場、磁吸按鈕、3D、視差與自訂游標;官方 Frontend Design 自己也強調,集中在一個有記憶點的 orchestrated moment,通常比全頁一直動更像有意圖的設計。

claude --permission-mode acceptEdits

實作 prompt 應鎖定順序與範圍:

/frontend-design:frontend-design

依已批准的 plan 實作第一版。
順序:
1. 先完成資訊架構、真實文案、連結與響應式骨架
2. 再套用色彩、字體與 spacing token
3. 最後只加入手電筒 Hero 這一個 signature motion

限制:
- 不改路由、表單提交、analytics 或既有資料流
- 不新增假客戶、假獎項、假 testimonial
- 不隱藏系統游標
- 動畫不能承載必要資訊
- 觸控裝置顯示靜態固定亮度
- prefers-reduced-motion 時停用跟隨效果
- 修改後執行 lint 與 build,但不要部署

手電筒 Hero 的原理:暗層+亮層+圓形遮罩

較穩妥的結構不是「游標所到之處才看得到內容」,而是文字永遠可讀、人物圖預設較暗;滑鼠只負責揭露同一張圖的亮層。觸控裝置沒有 hover,就顯示靜態固定亮度;使用者要求減少動態時,也回到靜態版本。

手電筒 Hero 動畫四層結構:可閱讀暗層、同圖亮層、跟隨 pointer 的圓形遮罩,以及觸控與 reduced motion fallback
效果只是漸進增強:沒有滑鼠、動畫被關閉或程式失效時,網站仍要完整可讀

下面是可放進 Next.js App Router 的實際元件。先將你有權使用的圖片放在 public/portrait.webp,或同步修改兩個 src。游標移動時不呼叫 React setState,而是透過 requestAnimationFrame 更新 CSS 變數;亮層是裝飾性重複圖片,所以使用空白 alt 並從輔助科技隱藏。

"use client"

import Image from "next/image"
import {
  PointerEvent as ReactPointerEvent,
  useEffect,
  useRef,
} from "react"
import styles from "./SpotlightHero.module.css"

export function SpotlightHero() {
  const frame = useRef<number | null>(null)

  useEffect(() => {
    return () => {
      if (frame.current !== null) cancelAnimationFrame(frame.current)
    }
  }, [])

  function move(event: ReactPointerEvent<HTMLDivElement>) {
    if (
      event.pointerType === "touch" ||
      window.matchMedia("(prefers-reduced-motion: reduce)").matches ||
      !window.matchMedia("(hover: hover) and (pointer: fine)").matches
    ) return

    const node = event.currentTarget
    const clientX = event.clientX
    const clientY = event.clientY

    if (frame.current !== null) cancelAnimationFrame(frame.current)
    frame.current = requestAnimationFrame(() => {
      const rect = node.getBoundingClientRect()
      const x = clientX - rect.left
      const y = clientY - rect.top
      node.style.setProperty("--x", `${x}px`)
      node.style.setProperty("--y", `${y}px`)
      frame.current = null
    })
  }

  return (
    <section className={styles.hero}>
      <div className={styles.copy}>
        <p>Motion designer · Taipei</p>
        <h1>Light reveals the story.</h1>
        <a href="#work">View selected work</a>
      </div>

      <div
        id="work"
        aria-label="Selected work preview"
        className={styles.visual}
        onPointerMove={move}
      >
        <Image
          src="/portrait.webp"
          alt="動態設計師站在攝影棚燈光前"
          fill
          preload
          sizes="(max-width: 768px) 100vw, 50vw"
          className={styles.dim}
        />
        <Image
          src="/portrait.webp"
          alt=""
          aria-hidden="true"
          fill
          sizes="(max-width: 768px) 100vw, 50vw"
          className={styles.bright}
        />
      </div>
    </section>
  )
}

對應 CSS:

.hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(20rem, 1fr);
  min-height: 80svh;
  background: #111315;
  color: #f7f0e8;
}

.copy {
  align-self: center;
  padding: clamp(2rem, 6vw, 6rem);
}

.copy a:focus-visible {
  outline: 3px solid #f7f0e8;
  outline-offset: 4px;
}

.visual {
  --x: 50%;
  --y: 45%;
  position: relative;
  min-height: 34rem;
  overflow: clip;
}

.dim,
.bright {
  object-fit: cover;
}

.dim {
  filter: brightness(0.42) saturate(0.75);
}

.bright {
  opacity: 1;
}

@media (hover: hover) and (pointer: fine) {
  .bright {
    opacity: 1;
    clip-path: circle(9rem at var(--x) var(--y));
  }
}

@media (max-width: 48rem) {
  .hero {
    grid-template-columns: 1fr;
  }

  .visual {
    min-height: 28rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bright {
    opacity: 1;
    clip-path: none;
  }
}

這個版本刻意保持簡單。clip-path 在某些裝置可能造成較大的重繪成本,所以要用 Chrome Performance 實測;若掉幀,先縮小光圈、降低圖片尺寸,或把效果改成 opacity/transform 為主。web.dev 動畫效能指南建議優先動畫 transform 與 opacity,而不是反覆改 width、height、top、left 等幾何屬性。

第六步:別只叫 Claude 自評,要給它看得見的證據

「幫我檢查一下」的問題,是 Agent 很可能只重讀自己的 code。比較可靠的 QA prompt 要指定啟動網站、實際操作、截圖、列差異,再改一輪。Claude Code 的官方最佳實務也把可讀取的驗證訊號視為關鍵:build exit code、測試結果、console 與可比較的 screenshot 都比「看起來應該可以」有用。

請啟動網站並實際驗收,不要只讀 code。

1. 截圖 375、768、1440px 首頁
2. 比對 ./reference,只列「結構與設計語法」差異
3. 操作所有導覽、CTA、作品連結與表單
4. 用鍵盤走完整頁,確認 focus-visible
5. 模擬 prefers-reduced-motion: reduce
6. 檢查 console、水平 overflow、圖片 sizes 與 alt
7. 執行 npm run lint 與 npm run build

先回報證據與嚴重度;我批准後才修正。
不要部署、不要改 secrets、不要新增假內容。

若你的帳號與環境支援 Claude in Chrome,可用 claude --chrome 或 session 內的 /chrome 讓它讀 DOM、console、截圖與點擊測試。它目前需要 Chrome/Edge 等 Chromium 瀏覽器、1.0.36 以上 extension、直接向 Anthropic 訂閱的 Pro/Max/Team/Enterprise,以及 /login 登入;API key、setup-token、第三方 provider 與 WSL 目前皆不支援。若不符合條件,手動開瀏覽器截圖、貼回 Claude,一樣能完成迴圈。

隱私也要算進驗收。截至 2026 年 7 月 27 日,Anthropic 的Claude Code data usage 文件寫明:Pro/Max 等消費者帳號是否用於模型改進,取決於資料隱私設定;開啟時保留期為 5 年,關閉時為 30 天。Team/Enterprise/API 等商業條款預設不以 code 或 prompt 訓練模型,標準保留期為 30 天,合資格帳號才可另用 ZDR。本機 session transcript 預設也會以明文存放在 ~/.claude/projects/ 30 天。Chrome 整合則會共享瀏覽器的登入狀態;只開必要站點權限,不要用含客戶機密的主力登入環境測未知頁面。

npm run lint
npm run build

想把視覺比較固定成可重跑測試,可再加入 Playwright screenshot baseline;但基線必須由人先確認,而且最好在固定 OS 與瀏覽器版本執行。Lighthouse 是 lab 診斷,不等於真實使用者已通過 Core Web Vitals。

Claude Code 網站交稿前五道驗收:內容任務、響應式、動效、可存取性與工程驗收
Agent 回答「完成」只是狀態;內容、viewport、動效、無障礙與工程證據都過關,才是可交付

第七步:權限、部署與正式上線,必須留人類關卡

新手建議依序使用 Plan → Manual/acceptEdits。Auto mode 可以減少例行權限提示;截至 2026 年 7 月 27 日,權限文件的方案欄標示為 All plans,指可使用 Claude Code 的帳號類型,Claude.ai Free 本身不含 Claude Code;此外仍須符合 Team/Enterprise owner、支援模型與 provider 等條件。更重要的是,Anthropic 明確說 Auto mode 不保證安全,不能取代敏感操作的人類審查。

  • 可以讓 Agent 做:在工作目錄改元件、補 CSS、跑 lint/build、開 localhost、整理驗收清單。
  • 應保留確認:安裝第三方 plugin、刪檔、改資料庫、動 DNS、推 production、讀寫 secrets、送出對外訊息;要逐次確認刪檔時請留在 Manual,或為刪除設定 ask rule。
  • 不要用捷徑:不要為了少按幾次確認就教新手開 bypassPermissions--dangerously-skip-permissions
  • 上線前補齊:HTTPS、自訂網域、SEO title/description、OG 圖、404、表單真實送達、analytics 同意與隱私政策。

如果你常讓 Claude 進行長時間的多輪修改,可延伸閱讀Claude 省 Token 方法Claude Code Subagents 與 Agent Team,以及Loop Engineering 教學。但就這個網站任務而言,先把單一驗收迴圈跑穩,比一開始就擴成多 Agent 更重要。

5 個常見的失敗,以及怎麼救

1. 把參考圖當成逐像素訂單

症狀:成品像換掉 Logo 的別人網站。修法:把每張圖拆成「可借鑑/不可複製」,再要求 Claude 說明每個新決策如何服務你的受眾。若想進一步排除常見 AI 網站套路,可讀 AlphaLab 的Hallmark AI 網站設計實測;那篇重點是 design rulebook,本篇則是完整製作與驗收流程。

2. 把第一版當成終稿

症狀:桌機 Hero 很漂亮,手機卻先看到一大塊空白。修法:先要求差異清單,不要直接「全部修好」;依內容、響應式、動畫、無障礙、工程五類逐批修,每批都重跑相關測試。

3. 每個東西都在動

症狀:loader、標題、卡片、游標與背景同時搶注意力。修法:只保留一個 signature motion;其他互動用簡短、可預期的 transition,並遵從 prefers-reduced-motion

4. 用滑鼠影片證明「所有裝置都順」

症狀:桌面錄影流暢,就宣稱手機、觸控與真實效能都通過。修法:至少測 375、768、1440px、鍵盤、觸控 fallback、reduced motion、console 與 build;正式商業站再補 Safari、Firefox、真機與 field data。

5. 一裝第三方工具就開 Auto mode

症狀:你不知道 plugin 會執行什麼,也不知道 Agent 改了哪些依賴。修法:個人試用先用 Local scope、讀 manifest 與原始碼、保持 Git 乾淨;團隊審查通過、確定要共享後才切 Project scope,再逐步放寬。任何 production、secret 與對外操作都保留人工確認。

Claude Code 做網站常見問題

完全不會寫程式,也能跟做嗎?

能做出視覺原型,但不能把責任也外包。你可以不先會手寫 React,仍要會確認終端指令、辨認錯誤、保護 secrets、測試連結與判斷上線結果;正式商業站建議由能 review code 的人把關。

一定要安裝 Frontend Design plugin 嗎?

不用。Claude Code 本身就能讀參考圖與寫前端;plugin 的價值是把設計規劃與自我檢查變成可重複規則。已有成熟 design system 的團隊,直接提供 token、元件與驗收規格可能更準。

可以把 Awwwards 或 Pinterest 截圖直接丟給 Claude 嗎?

可以分析,不代表可以複製或商用素材。只抽取色調、節奏、資訊階層與互動概念;不要重用照片、文字、Logo、程式碼或完整辨識性組合,客戶機密與未授權素材也不要上傳。

Auto mode 會不會讓成品更好?

不會自動提高設計品質。它主要改變權限提示的頻率,不是更強的設計模型;還可能阻擋或回退到手動批准。新手先用 Plan 與 Manual/acceptEdits,更容易看清每輪變更。

動畫一定要用 Motion 嗎?

不用。簡單 hover、淡入與本文的基本遮罩可先用 CSS;只有在需要可中斷序列、手勢、layout transition 或複雜 orchestrated motion 時,再依 Motion for React 官方文件安裝 motion

手電筒動畫很卡,先改哪裡?

先量測,再縮小重繪範圍。不要在每次 pointer move 用 React state 重畫整個 component;壓縮圖片、限制光圈範圍、用 requestAnimationFrame,並在觸控與 reduced motion 回到靜態。若仍掉幀,放棄效果也比拖慢主要任務好。

可以直接叫 Claude 部署嗎?

技術上可以,流程上應先設關卡。先在本機通過 lint、build、瀏覽器與內容檢查,再由你確認 production target、環境變數、DNS 與 rollback。部署授權不該隱含在「幫我把網站做好」裡。

兩小時真的能做完嗎?費用是多少?

兩小時或許能完成第一版視覺原型,不能當 production 工期。內容準備、素材授權、responsive、可存取性、跨瀏覽器、表單、SEO、部署與修改輪數都會改變時間與成本;原作者的速度與價值對比是個人自述,不是通用報價。

給第一次做的人:只記住這 5 件事

  1. 先準備真實內容與合法素材,再找參考圖。
  2. 用 Plan mode 把受眾、唯一任務、token、版面與驗收寫清楚。
  3. 先用官方 Frontend Design;第三方 plugin 是選配,不是品質保證。
  4. 只做一個招牌動效,並提供觸控與 reduced-motion fallback。
  5. 用截圖、操作、lint、build 與真人複核完成迭代,不以 Agent 自評收工。

回到開頭的乘法:好參考給方向,明確規格讓 Claude 不靠猜,可驗證迭代把漂亮原型推向可靠網站。真正的「高質感」不是動畫數量,也不是一條神 prompt;它是每個設計決定都能解釋、每個工程結果都能重做。

延伸閱讀

主要查核來源與聲明

本文主要依據 Anthropic 的 Claude Code 安裝圖片工作流最佳實務權限模式plugin 安裝與安全資料使用官方 Frontend Design 原始碼;前端部分另查核 Next.js 安裝Next ImageMotionMDN reduced motionWeb Vitals 工具WCAG 2.2。參考圖與授權判斷另對照 Pinterest 條款台灣智慧財產局美國著作權局一般說明

查核日期:2026 年 7 月 27 日。Claude Code、plugin、權限模式與第三方工具會快速更新,實際安裝前請以連結中的官方文件為準。AI 可能產生錯誤;本文為教育用途,不構成法律、資安或商業報價建議,亦非 Anthropic 或第三方工具的付費合作內容。

ALPHALAB 社群

有問題?來 Telegram 聊

和 Terry、編輯、其他網友一起討論這篇文章。提問、分享觀點,回覆更即時。

加入 Telegram 討論

📩 訂閱 AlphaLab 電子報

每週一封,第一時間收到新文章與投資觀察。

我們不會 spam,隨時可退訂。