Communitygithub.com

capsrock/nordic-civic-design-skill

非官方技能。以北歐公共服務為靈感,設計、實作與檢視具備無圓角、強烈色彩、寬闊留白及大字級層次的網頁畫面。

nordic-civic-design-skill 是什麼?

這是一個專為打造北歐風格公共服務網頁而設計的 AI 技能,基底來自赫爾辛基設計系統(HDS)的公開 tokens 與元件值。它特別適合用於「北歐行政網站風格」、「HDS 風格」、「市民服務畫面」、「兼具公共服務感與設計感」等需求,例如申請表單、引導頁面、地方政府或公共設施網頁。技能強烈禁止使用赫爾辛基市的官方標誌、市徽、波浪圖案及 Helsinki Grotesk 字型檔案,也不可自稱「赫爾辛基市」,以避免仿冒官方網站。它支援多種開發平台與 AI agent(如 Claude Code),並提供 CSS tokens 檔、foundation 說明及元件指南作為參考,讓開發者能快速套用 HDS 的數值與構成邏輯。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/capsrock/nordic-civic-design-skill/tree/HEAD

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Nordic Civic Design

這是以 HDS 數值為基礎,打造公共服務畫面的設計方針。此為非官方技能,與赫爾辛基市無關。

目的並非讓成品看起來像市政府服務。使用的是數值與構成邏輯,而非任何可識別城市的元素。

禁止使用的項目

  • 標誌、市徽、波浪圖案: 標誌為註冊商標,禁止重製或修改。波浪圖案為市府視覺元素,未確認第三方使用條件。
  • Helsinki Grotesk 字型檔案: 為 Camelot Typefaces 的商業字體,禁止重新散布或用於 AI 訓練。不得隨附、嵌入網頁或應用程式。僅能在 CSS 中指定字型名稱。
  • 自稱「赫爾辛基市」的表述: 成品名稱或內文不得使用可能被誤解為市府官方的語詞。

字型

font-family: HelsinkiGroteskPro, "Schibsted Grotesk", Arial, "Noto Sans JP", sans-serif;
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&family=Schibsted+Grotesk:wght@400;500;700&display=swap">

在有授權的環境中會使用原始字型,其他環境則使用 Schibsted Grotesk。這並非 HDS 的指定,而是本技能的選擇。HDS 官方替代字型為 Arial。

Schibsted Grotesk 採用 OFL 1.1 授權,字重範圍 400 至 900。可以直接使用 HDS 的三個等級(400、500、700)。

日文字型並非 HDS 所指定。在日文畫面中,預設使用 Noto Sans JP,行高設為 1.75。這也是本技能的判斷。

形狀

形狀基準是 HDS 風格的關鍵,偏離會大幅改變印象。

  • 圓角為 0: 按鈕、輸入欄、卡片皆不使用。
  • 邊框寬度 2px: 用於按鈕、輸入欄、卡片邊框。
  • 操作元件高度 56px: 按鈕與輸入欄的標準尺寸。小型按鈕為 44px。
  • 不使用陰影: HDS 明確指出「陰影非品牌的一部分」。不用於表現高度、強調或文字裝飾。僅用於疊加內容的 toast 通知與對話框區隔。
  • 卡片預設無邊框: 此為 HDS 預設。無邊框卡片置於淺灰色(--color-black-5)背景上。若置於白底上,則加上 2px 邊框。白底處理方式為本技能的判斷。
  • 通知採用左側 8px 色帶: 不將整個區域填入強烈色彩,而是以淺色背景搭配左側色帶傳達訊息。

色彩

數值位於 references/tokens.css,色彩用途與對比表位於 references/foundation.md。色彩名稱(如 bus、tram、metro、engel 等)源自赫爾辛基街景。

  • 操作色彩為 bus: --color-bus (#0000bf) 用於主要操作與連結。Hover 使用 --color-bus-dark。
  • 聚焦使用 coat-of-arms: 採用 --color-focus-outline 的 3px 輪廓線。深色背景上改為白色。
  • 內文使用 black-90: --color-black-90 (#1a1a1a)。文字顏色僅用黑色或白色,其他顏色僅於有特定意圖時使用。
  • 強調色以大面積呈現: summer、suomenlinna、metro 等作為標題色帶或分隔區塊使用。分散使用會削弱特色。建議每個畫面只用一種強調色。此建議為本技能的判斷。
  • 可放在白底上的品牌色僅四種: bus、brick、coat-of-arms、tram。metro 僅限用於大尺寸文字,summer 或 engel 等明亮色系只能作為色塊使用。
  • -light 與 -dark 變體不用作主色: 僅用於元件狀態(如 hover)與資訊類型區分。
  • 狀態色與強調色分開: error、success、alert、info 僅用於傳達狀態。品牌色不用於狀態顯示。務必搭配文字或圖示,不單用顏色傳達。

文字與背景的組合須符合 WCAG 2.1 AA 對比度要求。內文需達 4.5:1 以上,大字型 3:1 以上。品牌色上的文字顏色依照 foundation.md 表格(bus、coat-of-arms、tram、brick 上使用白色,其餘使用 black-90)。灰色文字最多使用 --color-black-60,--color-black-50 以下不得用於白底。

留白

以 4px 為基準。使用 --spacing-* 與 --spacing-layout-*,不自行建立中間值。

  • 元件內部與元件之間: --spacing-* 的 8、12、16、24、32px
  • 區塊之間: --spacing-layout-* 的 48、64、96、128px
  • 小留白聚集,大留白分離: 緊鄰的元件看起來有關聯。留白越大的區塊看起來越重要。
  • 依畫面性質調整密度: 宣傳或引導頁面留白較寬,資訊量大的業務畫面則較緊湊。

猶豫時選擇較寬的留白。寬闊的留白能營造畫面的穩定感。此句為本技能的判斷。網格採用 12 欄、最大寬度 1200px、Gutter 24px(行動版 16px)。

文字

  • 字重三等級: 內文 400、按鈕或表單標籤 500、強調 700。
  • 內文從 16px 起: 16px 是 HDS 內文的最小值,適用所有畫面寬度。文字量少的畫面預設使用 18px,窄畫面再降至 16px。14px 僅用於輔助文字與元件內部。
  • 標題兩層級: 桌機版 h1 為 64px、h2 為 48px。行動版與業務畫面中,h1 為 40px、h2 為 32px。標題層級應依語意使用;僅想改變外觀時,透過 token 調整大小。
  • 行高: 長篇內文 1.5、短段落與導言 1.2、單行標題與元件 1、小字與引用 1.75。

標題預設字重為 700。此為本技能的判斷,HDS 文件中未指定標題字重。數值表格與用途詳見 references/foundation.md。

元件

製作元件前請先閱讀 references/components.md。其中包含按鈕、輸入欄、核取方塊、通知、卡片、連結的數值與使用方式。重點如下:

  • 每個畫面僅一個 primary 按鈕: 僅用於畫面中最主要的操作。取消或關閉使用 supplementary 樣式,因其無邊框,務必加上圖示。頁面導覽使用連結而非按鈕。
  • 輸入欄務必附上標籤: 必填項目以 * 標示,並在表單開頭說明星號含義。
  • 通知僅用於重要資訊: 行內通知建議同時只出現一個,不應動態新增。錯誤等重要通知不會自動消失。
  • 不讓整張卡片可點擊: 若需整張可點,請使用 Linkbox。
  • 外部連結加上圖示: 原則上不開新分頁。

此處未列出的元件,請根據形狀、色彩、留白基準自行組合。未經確認的數值,不得標示為 HDS 的值。

檢查清單

完成後請檢查以下項目:

  1. 無殘留圓角與陰影(toast 通知與對話框陰影除外)
  2. 未使用 token 以外的色彩與留白數值
  3. 操作元件高度大於等於 44px
  4. 焦點輪廓線清晰可見
  5. 文字與背景對比度符合 AA 標準
  6. 未使用標誌、波浪圖案、市府名稱

參考來源

Token 與元件數值取自 hds-design-tokens 與 hds-core 6.0.7 版,使用方式則來自 HDS 官方文件(https://hds.hel.fi/ ,原文位於相同儲存庫的 site/src/docs)。兩者均採 MIT License,Copyright (c) 2023 City of Helsinki。授權條文見 references/LICENSE-HDS.txt。散布此技能時,請一併附上該檔案。色彩名稱由來依據赫爾辛基市視覺識別指引。

相關技能