跳到主要內容

空狀態

三種空:還沒建立、搜尋無結果、權限不足,講法完全不同。

Empty State emptyonboarding
新分頁開啟 ↗

交給 Claude Code

複製 prompt,或下載整包檔案

下載檔案包(.zip)
看看 prompt 長什麼樣子
# 任務:用「螢光墨紙 / Neon Ink」風格,在 SvelteKit 專案中實作以下區塊

你是這個專案的前端工程師。請依照下面的設計系統與規範,把指定的 UI 區塊實作出來。
不要重新發明樣式,也不要自己挑顏色 —— 所有視覺決策都已經定義好了。

## 1. 這個風格是什麼

紙感底色 + 一種吵到不行的螢光色,工具型產品的最佳解。

- 個性:直率、高對比、手作感、工具氣質、年輕
- 適合:創作者工具、SaaS 產品官網、開發者工具、訂閱制服務
- 不適合:金融/醫療等需要穩重感的產品、大量彩色圖片的電商
- 風格參考:whatsub.equal2.app(重新實作,非複製)

## 2. 你收到的檔案

```
design-system/
  contract.css      設計 token 契約(變數定義 + reset + 版面 primitives)
  components.css    元件層(按鈕、輸入框、卡片…),只用 contract 的變數
  tokens.css        這個風格的 token 值 ← 換風格只要換這一個檔案
modules/
  <每個區塊的 .svelte 原始碼 + 已經去 scope 化的 component.css>
guides/
  <這次會用到的規範文件>
```

把 `design-system/` 三個檔案照順序 import 到全域樣式入口(contract → components → tokens),
然後才 import 各個模組的 component.css。

## 3. 要實作的區塊

- **空狀態**(`data/empty-state`):三種空:還沒建立、搜尋無結果、權限不足,講法完全不同。

## 4. 硬性規則(違反就是做錯,不是風格差異)

1. **只能用 token**:不可以出現任何寫死的色碼、字體名稱、陰影或圓角。
   一律使用 `var(--ds-*)`。要新的值,就先在 tokens.css 加一個 token。
2. **文字色不要用 --ds-accent**:品牌色多半在淺色底上對比不足。
   accent 當文字時一律用 `--ds-accent-ink`;accent 當底色時文字用 `--ds-on-accent`。
3. **間距只能用 `--ds-space-*`**,不可以出現 `margin: 13px` 這種數字。
4. **focus 一定要看得見**:不可以 `outline: none` 而不補上 `box-shadow: var(--ds-ring)`。
5. **RWD 用 clamp() 與 auto-fit grid**,能不用 media query 就不用。
6. **不要引入 UI 套件**(Tailwind、MUI、shadcn 都不要)。這套設計系統就是純 CSS 變數,
   引入套件會讓風格切換失效。
7. **語意標籤**:導覽用 `<nav>`、主要內容用 `<main>`、可點擊的東西用 `<button>` 或 `<a>`,
   不要用 `<div onclick>`。

### SvelteKit 專屬轉換規則

- 直接使用附上的 .svelte 檔,不要重寫成別的寫法。
- 元件已經是 Svelte 5 runes($state / $derived / $props),不要退回 export let。

## 5. 這個風格的關鍵 token(完整版在 tokens.css)

```css
:root {
  --ds-canvas: #F7F6F2;
  --ds-surface: #FFFFFF;
  --ds-ink: #0A0A0A;
  --ds-ink-2: #575751;
  --ds-accent: #39FF14;
  --ds-accent-ink: #1E7A0C;
  --ds-on-accent: #0A0A0A;
  --ds-line: #E5E3DC;
  --ds-font-display: Geologica, 'PingFang TC', 'Noto Sans TC', 'Microsoft JhengHei', sans-serif;
  --ds-font-body: Geologica, 'PingFang TC', 'Noto Sans TC', 'Microsoft JhengHei', sans-serif;
  --ds-font-mono: 'IBM Plex Mono', 'PingFang TC', 'Noto Sans TC', 'Microsoft JhengHei', sans-serif, monospace;
}
```

## 6. 相關規範文件

實作前請先讀這幾份(都在 guides/ 裡):
- `writing-for-users.md`


## 7. 完成條件(做完請自己檢查一遍)

- [ ] 全部區塊在 360px / 768px / 1440px 三個寬度都不會破版、不會橫向捲動
- [ ] 用瀏覽器搜尋原始碼,找不到任何 `#` 開頭的色碼(除了 tokens.css)
- [ ] 只用鍵盤可以走完所有互動,且每一步都看得到 focus 樣式
- [ ] 把 tokens.css 換成另一個風格的版本,版面不會壞掉
- [ ] 深色風格下文字對比正常(不要只在淺色底測試)

檔案包內容:PROMPT.mddesign-system/(contract + components + tokens)、modules/data-empty-state/(Svelte 原始碼 + 去 scope 化的 CSS)、以及這個模組會用到的規範文件。

做這個區塊之前先看

相關規範

顯示設定

這裡改的每一項,會即時套用到站上所有預覽。

風格

密度

圓角

動態

系統層級的「減少動態效果」永遠優先於這裡的設定。

語言