我原本只是想替 Lukas Lab 換一套比較像自己的顏色。

背景不要那麼死白,改成帶一點溫度的暖白;文字不要只剩純黑,換成比較沉穩的深藍;連結再用藍灰色拉開層次。需求不複雜,也沒有要重做首頁、換主題或大改版面。

那一輪由 AI 協助操作 WordPress 全域樣式。色票建立了,欄位也設定了,編輯器顯示儲存成功,整個流程看起來十分和平。

結果我打開正式前台一看:

網站還是原本的白底黑字。

沒有錯誤訊息,沒有版面爆炸,也沒有按鈕突然消失。最麻煩的地方,正是它看起來什麼事都沒有發生。

如果我只看後台的「已儲存」,或只接受 AI 回報「已完成」,這張工單大概就會被當成施工成功。

幸好,網站最後是給讀者看的,不是給後台看的。

我只是想改顏色,沒有要把整個網站拆掉

這次原本要套用的核心配色只有六項:

項目色碼
網站背景#F7F5F0
一般文字#1F2A37
H1、H2、H3 與網站標題#1F2A37
一般連結#315676
按鈕背景#1F2A37
按鈕文字#FFFFFF

另外還準備了中性灰、米色、金棕與淺灰邊線,打算先放進可用色盤,之後再依首頁、文章卡片或資訊元件的實際需要使用。

問題就出在這批自訂色票。

儲存後,全域樣式裡部分顏色引用指向了 custom-,實際輸出的色票變數名稱卻是 custom。只差一個符號,對人眼來說很像同一個東西;對瀏覽器來說,它們就是兩個不同的名稱。

以下是概念化示意,不是完整的網站原始碼:

/* 樣式欄位實際引用 */
color: var(--wp--preset--color--custom-);

/* 頁面真正輸出的色票變數 */
--wp--preset--color--custom: #1F2A37;

前者找不到後者,正式前台自然拿不到預期的顏色,視覺上仍維持主題原本的呈現。

這不是「WordPress 改顏色一定會壞」,也不是所有區塊主題都會發生相同問題。它只是這一次施工中,色票名稱與引用沒有對上的具體錯誤。

儲存成功,不代表前台拿到了有效設定

這次翻車讓我重新確認一件很基本、卻很容易被跳過的事:

後台接受了設定,不等於瀏覽器最後讀到的是有效設定。

WordPress 編輯器負責把設定存進去,主題與全域樣式再把它們轉成前台可以使用的輸出,瀏覽器最後才依照那些規則顯示畫面。

這三段只要有一段沒有接好,就可能出現「後台看起來完成,前台卻沒有變」的情況。

所以驗收不能只看:

  • 儲存按鈕是否按下。
  • WordPress 是否跳出成功訊息。
  • AI 是否回報完成。
  • 編輯器內的模擬預覽是否看起來正常。

至少還要打開正式前台,確認真正公開的頁面已讀到新設定。

那次我檢查的不是單一頁面,而是首頁、長篇文章、分類頁與一般頁面。因為同一套全域顏色,在不同範本裡可能遇到不同背景、連結、按鈕與文字層級。

為什麼沒有繼續新增色票,試到它正常為止?

發現引用錯誤後,最直覺的做法可能是刪掉再建、換個名稱再建,或者繼續調整 Slug,直到其中一組剛好能用。

我沒有這樣做。

因為當問題已經發生在「色票名稱如何被輸出與引用」,繼續增加自訂色票,只會再增加更多名稱、Slug 與引用關係。表面上像是在修錯,實際上可能只是把更多變數堆到同一個還沒釐清的地方。

而且這次的真正目標只是讓六個核心顏色穩定生效,不是建立一套豪華色票管理系統。

所以我先把工作拆成兩件事:

  1. 先清掉這次造成的錯誤引用,讓網站回到乾淨狀態。
  2. 確認原本的字體、版面、範本與導覽都沒被影響,再重套真正需要的顏色。

功能少一點沒關係,狀態要先可理解。

第一步:只復原顏色,不重設整個網站

全域樣式最危險的地方,是它的範圍真的很「全域」。

如果為了修一組顏色,順手把整套樣式重設,可能連字體、字級、行高、內容寬度、區塊間距與其他既有設定一起回到預設值。顏色也許修好了,網站卻多出五個新問題。

因此這次復原有一道很清楚的邊界:

只能復原顏色;如果無法確認影響範圍,就停止。

實際處理順序是:

  1. 先確認正式前台仍可正常開啟,沒有文字消失、背景異常或版面跑掉。
  2. 只讀檢查現有自訂色票、色碼、Slug 與各欄位的引用方式。
  3. 查看樣式修訂紀錄,確認能不能辨識這次施工之前的版本。
  4. 能明確辨識,就復原至施工前的顏色狀態。
  5. 若無法辨識完整修訂,但能只重設「顏色」,就只重設顏色。
  6. 如果介面只能重設全部網站樣式,立即停止,不拿其他設定陪葬。

復原完成後,先儲存一次,再回到正式前台確認:白色背景、深色文字、黑色按鈕都已恢復,頁首、頁尾與版面維持原樣。

這一步沒有品牌感,也沒有完成新設計,但它建立了乾淨的起點。

第二步:不用自訂色票名稱,直接輸入色碼

確認復原完成後,我沒有再次建立那批自訂色票,也沒有繼續碰色票 Slug。

這一輪只在各個全域顏色欄位中直接輸入十六進位色碼,而且不一次改完六項。

第一輪:背景、文字與標題

先修改:

  • 網站背景:#F7F5F0
  • 一般文字:#1F2A37
  • 標題:#1F2A37

儲存後,離開編輯器預覽,實際開啟正式前台。

要確認的不是「大概有變」,而是暖白背景與深藍文字確實出現在公開頁面,且沒有再次輸出無法解析的顏色引用。頁首與頁尾文字也不能因背景改變而失去對比。

第一輪通過,才進入第二輪。

第二輪:連結與按鈕

再修改:

  • 一般連結:#315676
  • 按鈕背景:#1F2A37
  • 按鈕文字:#FFFFFF

再次儲存並驗證正式前台,確認連結可辨識、按鈕文字清楚,而且手機導覽與分類下拉仍能正常使用。

把六個欄位拆成兩輪,看起來多花了一次儲存與檢查;但若第二輪出錯,我至少知道問題只可能落在連結或按鈕,不必回頭猜六個欄位中的哪一個動了手腳。

分次施工不是拖慢速度,而是縮小故障範圍。

哪些情況應該立刻停止?

這次修復真正重要的,不只是做了哪些動作,還包括哪些事情一出現就不再往下做。

我的停止條件是:

  • 無法辨識安全的樣式修訂版本。
  • 復原顏色會連帶影響字體、版面或範本。
  • 無法清除錯誤的自訂色彩引用。
  • 編輯器再次產生不一致的 Slug。
  • 直接輸入色碼後,仍被轉成無效變數。
  • 正式前台與編輯器預覽結果不同。
  • 頁首、頁尾或按鈕文字變得難以閱讀。
  • WordPress 出現錯誤、警告或儲存衝突。
  • 必須修改自訂 CSS、theme.json、主題檔案或其他範本才能繼續。

這些條件的作用不是讓工作顯得謹慎,而是阻止一個顏色問題擴張成全站事故。

有些任務不是「想辦法完成」最重要,而是先知道自己不能拿什麼當代價。

修復後,網站最後留下什麼?

完成兩輪重套後,Lukas Lab 的核心配色穩定為:

用途最終色碼
背景#F7F5F0
正文與標題#1F2A37
連結#315676
按鈕背景#1F2A37
按鈕文字#FFFFFF

原本準備的中性灰、米色、金棕與淺灰邊線,這一輪完全沒有重新建立。

不是它們永遠不需要,而是當時沒有任何元件真的要用到它們。等首頁區塊、文章卡片或資訊元件出現明確情境,再在能看見實際效果的位置處理,比先把一排色票放著安心更容易維護。

網站最後得到的,不是一套最完整的品牌色盤,而是一套已經證明能正常工作的核心配色。

WordPress 全域樣式安全修改檢查表

如果你也準備修改 WordPress 區塊主題的全域樣式,可以先用這份簡化檢查表:

修改前

  • [ ] 記錄目前使用的主題與樣式狀態。
  • [ ] 確認這次只要改顏色、字體、版面,還是其他設定。
  • [ ] 截圖或記錄修改前的正式前台。
  • [ ] 選定首頁、文章頁、彙整頁與一般頁面作為驗證樣本。
  • [ ] 先寫下停止條件,不等出錯後才決定。

儲存後

  • [ ] 不只看「已儲存」訊息。
  • [ ] 打開正式前台,不只看編輯器模擬預覽。
  • [ ] 檢查頁首、頁尾、正文、連結與按鈕的對比。
  • [ ] 同時檢查桌機與手機。
  • [ ] 若前台未生效,先查輸出與引用,不要立刻新增更多設定。

發現錯誤時

  • [ ] 先確認網站仍可正常閱讀與操作。
  • [ ] 優先只復原出錯的設定域。
  • [ ] 無法確認影響範圍時停止,不重設全部樣式。
  • [ ] 修正後分批重套,每批都要重新驗證。
  • [ ] 保留修改前後紀錄,讓下一次不用重新猜測。

這份清單不保證 WordPress 永遠不會出錯,但至少能避免我們在修一個問題時,順手製造一整排新的問題。

最後,真正通過驗收的是前台,不是回報

這次事故沒有讓網站掛掉,也沒有造成資料遺失。它只是讓一套已經「儲存成功」的配色,沒有真正出現在讀者眼前。

但也正因為畫面沒有爆炸,它更容易被忽略。

AI 可以依照規格填欄位、按下儲存、比對色碼,也可以協助追查輸出與引用。可是哪一個畫面才算完成、出了問題要不要繼續、允許修到哪裡,最後仍然需要人做決定。

網站不是在後台完成的。讀者真正看見的前台,才是最後的驗收現場。

這也是我在這次配色翻車後,真正留下來的東西。