Files
sechskies/.cursor/rules/ai-change-boundaries.mdc
T

45 lines
4.8 KiB
Plaintext
Raw Normal View History

2026-05-14 11:05:12 +08:00
---
description: 變更範圍與全站樣式:未點名的檔案與 class 預設不碰;跨頁/共用 CSS 須先確認。
alwaysApply: true
---
# AI 變更邊界(sechskies
## 預設只做「被點名」的範圍
- 使用者若只提某頁(例如 **`minister_ge.html`**)、某區塊、某句文案:**只改該處**,不順手改 `index.html`、`minister.html`、`assets/js/portal-nav.js`、`assets/css/style.css` 全站區、或 **`assets/css/index.css`** 裡與首頁共用的規則。
- **未寫到的檔案=不開、不刪、不重構**;需要動到時,先用**一句話**說明「為何必須動」並等使用者確認,或改在回覆裡列出將被波及的檔案請使用者選是否要做。
## 共用樣式(`assets/css/style.css`、全站 class
- **禁止**因為某一頁要對齊視覺,就擅自改掉全站 class(例如 `.slogan-quote`、`.mark_b`、`section` 預設)在**其他頁**的呈現。
- **金句已分流**:覺醒稿用 **`slogan-quote slogan-quote--awakening`**(副標語彙:雙線+中置小字),首頁使命稿用 **`slogan-quote slogan-quote--mission`**(獨立奶油卡);基底 **`.slogan-quote` 不帶視覺****禁止**再只改基底就套兩種金句。
- 若使用者說「參考某區塊的樣式」:只代表**該次交辦的那一段/那一頁**可以長得像它;**不要**在未說明下把既有全站 class 整組換成另一套語彙。應優先:**該頁專用 wrapper class**、或**只加在該頁父層下的選取器**(例如 `.home-page #某區 …`),且仍須落在使用者允許的檔案範圍內。
## 一句話可避免的誤會
- 若需求可能影響多檔(導覽、首頁、共用 CSS):**先問**「是否只改 A,還是 B/C 也要一起?」再改。
2026-05-15 02:00:02 +08:00
## 站主版面與元件預設(設計大原則)
以下為全站/新區塊的**預設假設**,不必每個區域重複交代;若該次需求明講例外再打破。
- **同一列/並排多欄**:預設 **等高**(例如 flex 同列 `align-items: stretch`、grid 同列對齊高度),除非該次明講要頂對齊或其他非等高編排。
- **同一層級、同類可重複元件**(例如多張 **CARD**、同一 pattern 的 tile):預設 **等寬**(同一 breakpoint 下寬度一致),除非明講破格。
2026-05-15 18:09:31 +08:00
- **短字層**(站主慣稱「十字以內」——極短標、標籤、按鈕字、頂欄主標、區塊小標等;語意上不要硬拆成兩行):盡量 **單行、不換行**;**水平置中**。
- **內文層(body**(超過短字層——`<p>` 整段導語、說明、列表前引言):允許自然換行;**置左**對齊。規則敘述用「內文/body 層」,**不要**用某個 `*-lead`、`*-intro` 等 class 名當成這一層的定義。
- **怎麼判斷**:看**實際字數與語意**(是否明顯超過約十字、是否為段落內文),**不是**看 class 字串。HTML 裡的 `<body class="某頁">` 是**頁面作用範圍**,與「內文層」是兩件事,勿混為一談。
- **CSS 怎麼寫**:短字層 → 標題/按鈕等既有元件規則(多為置中)。內文層 → 在該頁 **`body.頁面類名` 底下**對**段落 `p`**(或該區 `section` 內 `p`)設 `text-align: left`;欄寬可 `max-width` + `margin-inline: auto`,但字仍左對齊。**禁止**在規則檔或新頁面把內文層綁死在自創 class 名上當唯一依據。
2026-05-15 02:00:02 +08:00
- **捲軸**:一般區塊 **不要**出現內嵌捲軸(避免預設 `overflow: auto/scroll` 把版面變成「盒子裡再拖條」);**只有**站主對該區曾**明講**要可捲動或強烈規定的例外才做捲動容器。
2026-05-15 18:09:31 +08:00
- **`img``canvas`**:一律 **等比例縮放**`object-fit: contain` 或 `max-width: 100%` + `height: auto`);**禁止**為了「撐滿」使用 `object-fit: fill` 或讓容器寬高比與圖面比例不一致卻強制 `width/height: 100%` 拉扁。滿欄時外殼可 100% 寬,圖本體置中、維持比例。
2026-05-15 02:00:02 +08:00
實作時仍以「只改被點名範圍」為上;若要拉一套新 grid/卡片列,優先在本區父層加 class,避免為了對齊去改未點名的全站共用規則。
2026-05-14 11:05:12 +08:00
## 文件與規則檔
- **不要**主動新增或長篇修改 `README`、`docs/*.md`、規則檔,除非使用者明講要寫入文件或規範。
2026-05-15 16:01:31 +08:00
- **助手自用筆記**(對話紀要、頁面編輯規格、實作備忘):只寫在 **`.cursor/`**(例如 `.cursor/*-notes.md`);**禁止**放在 `docs/`、`README` 或站主日常會開的目錄。回覆裡也不必貼長篇筆記內容。
2026-05-15 02:00:02 +08:00
- **例外**:使用者要求「把約定寫死/規則講清楚/不要再做錯」時,得**精準**更新 `.cursor/rules`(與 `portal-nav.js` 頂部註解對齊),避免重複踩雷;仍避免無關長文。
2026-05-14 11:05:12 +08:00
2026-05-15 02:00:02 +08:00
(與導覽開放、頂欄 vs `site-guide` 相關條文以 **`user-scope-and-nav.mdc`**、**`portal-nav-rules.mdc`** 為準;實作前兩份都讀。)