行政・公共サービス · 新しいリソース

gov.cz デザインシステム.

6つのリソースを通じて、Gov Design System CEで実際に使われている色の役割、カードのスロット、ネイティブのページネーションを、フォーカスとページ状態を明示しながら詳しく見ていきます。

OpenDesign ガイド6章リファレンス項目25件オリジナルアプリケーションガイド
01

gov.cz デザインシステム インターフェースのプレビュー

2ページにわたるオリジナルのリソース6件を閲覧し、詳細を開いてから、その操作に戻ります。

実用的なサービスツールキットをページ送りで閲覧完全な例を開く
Native Gov CE 4.7.1のカード、ボタン、ページネーションの各コンポーネントを使用。データセットとフォーカス処理はオリジナルです。 · 実装リファレンス
02

gov.cz デザインシステム デザインリファレンス

@gov-design-system-ce/styles 4.7.1のtokens.cssに含まれるカラーのプリミティブとセマンティックエイリアスを使用しています。プレビューでは公開済みのスタイルとRobotoパッケージを使用しています。

プライマリーとニュートラルのプリミティブ

ソース
名前 / ルール値 / 設定用途
--color-primary-50rgb(242, 246, 252)公開済みの4.7.1プリミティブ値です。通常、アプリケーションでは対応するセマンティックロールを使用します。
--color-primary-100rgb(226, 238, 248)公開済みの4.7.1プリミティブ値です。通常、アプリケーションでは対応するセマンティックロールを使用します。
--color-primary-600rgb(0, 70, 155)公開済みの4.7.1プリミティブ値です。通常、アプリケーションでは対応するセマンティックロールを使用します。
--color-primary-700rgb(14, 53, 120)公開済みの4.7.1プリミティブ値です。通常、アプリケーションでは対応するセマンティックロールを使用します。
--color-primary-800rgb(16, 38, 87)公開済みの4.7.1プリミティブ値です。通常、アプリケーションでは対応するセマンティックロールを使用します。
--color-secondary-600rgb(250, 180, 19)公開済みの4.7.1プリミティブ値です。通常、アプリケーションでは対応するセマンティックロールを使用します。
--color-neutral-0rgb(255, 255, 255)公開済みの4.7.1プリミティブ値です。通常、アプリケーションでは対応するセマンティックロールを使用します。
--color-neutral-50rgb(246, 246, 246)公開済みの4.7.1プリミティブ値です。通常、アプリケーションでは対応するセマンティックロールを使用します。
--color-neutral-950rgb(38, 38, 38)公開済みの4.7.1プリミティブ値です。通常、アプリケーションでは対応するセマンティックロールを使用します。

読書とフィードバックのロール

ソース
名前 / ルール値 / 設定用途
--text-primaryvar(--color-neutral-950)ロールが分かるよう、セマンティックエイリアスを維持してください。すべてのエイリアスを、無関係なローカルの16進カラー値に置き換えないでください。
--text-secondaryvar(--color-neutral-700)ロールが分かるよう、セマンティックエイリアスを維持してください。すべてのエイリアスを、無関係なローカルの16進カラー値に置き換えないでください。
--text-primary-colorvar(--color-primary-600)ロールが分かるよう、セマンティックエイリアスを維持してください。すべてのエイリアスを、無関係なローカルの16進カラー値に置き換えないでください。
--text-whitevar(--color-neutral-0)ロールが分かるよう、セマンティックエイリアスを維持してください。すべてのエイリアスを、無関係なローカルの16進カラー値に置き換えないでください。
--text-status-errorvar(--color-error-700)ロールが分かるよう、セマンティックエイリアスを維持してください。すべてのエイリアスを、無関係なローカルの16進カラー値に置き換えないでください。
--text-status-successvar(--color-success-700)ロールが分かるよう、セマンティックエイリアスを維持してください。すべてのエイリアスを、無関係なローカルの16進カラー値に置き換えないでください。
--status-focusvar(--color-focus-600)ロールが分かるよう、セマンティックエイリアスを維持してください。すべてのエイリアスを、無関係なローカルの16進カラー値に置き換えないでください。
--status-warningvar(--color-warning-400)ロールが分かるよう、セマンティックエイリアスを維持してください。すべてのエイリアスを、無関係なローカルの16進カラー値に置き換えないでください。
--status-errorvar(--color-error-600)ロールが分かるよう、セマンティックエイリアスを維持してください。すべてのエイリアスを、無関係なローカルの16進カラー値に置き換えないでください。

プライマリーボタンの状態

ソース
名前 / ルール値 / 設定用途
--button-solid-primaryvar(--color-primary-600)公開済みのボタンスタイルで使用される実際の状態トークンです。無効、ホバー、アクティブの各状態を区別してください。
--button-solid-primary-hovervar(--color-primary-700)公開済みのボタンスタイルで使用される実際の状態トークンです。無効、ホバー、アクティブの各状態を区別してください。
--button-solid-primary-activevar(--color-primary-800)公開済みのボタンスタイルで使用される実際の状態トークンです。無効、ホバー、アクティブの各状態を区別してください。
--button-solid-disabledvar(--color-neutral-200)公開済みのボタンスタイルで使用される実際の状態トークンです。無効、ホバー、アクティブの各状態を区別してください。
--button-outlined-primaryvar(--color-primary-50)公開済みのボタンスタイルで使用される実際の状態トークンです。無効、ホバー、アクティブの各状態を区別してください。
--button-outlined-primary-hovervar(--color-primary-100)公開済みのボタンスタイルで使用される実際の状態トークンです。無効、ホバー、アクティブの各状態を区別してください。
--button-outlined-primary-activevar(--color-primary-200)公開済みのボタンスタイルで使用される実際の状態トークンです。無効、ホバー、アクティブの各状態を区別してください。
03

gov.cz デザインシステム 完全ガイド

実際のインターフェースで、このデザインシステムを選び、適用し、レビューするための実践ガイドです。

DESIGN-gov-cz.md

詳しいガイダンス、実装の出発点、ソースへのリンクをまとめています。

ガイドをダウンロード

gov.cz デザインシステム Gov CEの基盤とアセットの読み込み順序

パッケージのバージョンを揃える

この例では、コンポーネント、スタイル、アイコン、フォントのバージョンを4.7.1に固定しています。基盤となる5つのスタイルシートは、公開されている順序で読み込みます。それぞれの役割は異なります。変数だけではカードにスタイルは適用されず、カスタム要素を登録しただけでは、グローバルなコンポーネントCSSは読み込まれません。完全なエントリーポイントでは、5つすべてを読み込んだ後に、小規模な独自の構成レイヤーを追加しています。

この OpenDesign ガイドから

コンポーネントを登録する前に設定を初期化する

コンポーネントのエントリーモジュールを動的にインポートする前に、アイコンのパスを設定します。ページネーションは依存関係の一部として矢印アイコンを描画するため、この順序が重要です。サブディレクトリを維持したまま、アイコンのディレクトリ全体を設定済みの公開パスにコピーしてください。JavaScriptのインポートが成功しても、個別のアイコン読み込みリクエストが成功したとは限りません。

gov.cz デザインシステム セマンティックカラーと状態の参照

色をロールに結び付ける

このリファレンスでは、青のプライマリープリミティブと、テキスト、フォーカス、ボタンの状態を表すエイリアスを区別しています。見た目が同じ青をどこでも使うと、それぞれの役割に関する契約が失われます。このツールキットでは公式のソリッドプライマリーボタンを使い、アクティブ、ホバー、無効時の見た目はコンポーネントのスタイルシートに任せています。周囲のコレクションレイアウトのみ、CSSによるオリジナルです。

タイポグラフィとコンテンツの文脈を分かりやすく保つ

Robotoは対応するフォントパッケージから読み込みます。カードには、短く具体的な見出し、メタデータの行、閲覧アクションの前に概要を配置します。6件のリソース文は、OpenDesignによるオリジナルの練習用コンテンツであり、チェコ政府の公式案内を翻訳したものではありません。情報の階層と、政府サービスを装わない完全なローカル操作を示すことを目的としています。

gov.cz デザインシステム カードスロットと閲覧アクション

見出しをサポート対象のスロットに配置する

各gov-cardのheadlineスロットに見出しを設定します。メタデータ、説明、ボタンはコンテンツとして配置します。アクションのaria-labelにはリソース名を含め、支援技術が同じ「リソースを読む」ボタンを区別できるようにします。コンポーネントはARIA属性を内部の操作要素に引き継ぎます。独自のaccessible-label属性を作っても、そのようには機能しません。

レイアウトはコンポーネントの契約の外に置く

3列のCSSグリッドは、画面幅が狭い場合に1列になります。グリッドとブレークポイントはこの例のために作成したもので、公式カードの追加プロパティではありません。また、非常に幅の狭い埋め込みコンテナ内では、プレビューのbodyに設定された全体共通の最小幅320pxを解除しています。この限定的なレイアウト調整により、コンポーネントのスタイルを保ちながら、親ページの横方向へのはみ出しを防ぎます。

gov.cz デザインシステム ネイティブのページネーションとアプリケーションの状態

ネイティブのイベントペイロードを読み取る

gov-paginationにはtotal=6、page-size=3を設定します。gov-pageイベントのdetail.pagination.currentPageで、該当する3件のレコードを選択します。現在のページを操作するコントロールはページネーションコンポーネントが管理し、データセットと表示する項目範囲はアプリケーションが管理します。この英語の検証用ページでは、チェコ語のデフォルトのナビゲーションラベルをすべて英語に明示的に置き換えています。

  • totalはページ数ではなく、レコード数です。
  • page-sizeは、表示する項目範囲の長さを指定します。
  • gov-pageではdetail.pagination.currentPageを取得できます。
  • ナビゲーションラベルは、インターフェースの言語に合わせる必要があります。

ページ変更後に古い詳細情報を残さない

gov.cz デザインシステム 読み上げ時のフォーカスと戻る動作

開いた項目にフォーカスを移動する

「読む」操作でローカルの詳細領域に内容を表示し、その見出しにフォーカスを移します。コレクションの下に内容が追加される操作の後、キーボード利用者が移動先を明確に把握できます。フォーカス可能な見出しにはtabindex=-1を設定し、通常のTab移動位置を増やすことなく、アプリケーションからフォーカスできるようにします。開いた内容は通常の読み取り可能なテキストです。

開いた操作元に戻る

「リソースに戻る」を選ぶと詳細を非表示にし、元の内部ボタンにフォーカスを戻します。これはモーダルではありません。フォーカスを閉じ込めたり、ダイアログのセマンティクスを付与したり、ページを暗くしたりしません。元のコレクションは引き続き利用できます。項目を繰り返し開閉し、ページを移動することで、アプリケーションの状態とフォーカスが同じ項目に追従することを確認できます。

gov.cz デザインシステム ローカル統合の全体像

提供されたファイルを組み合わせて使う

エントリには、6件すべてのレコード、カードの作成、ページネーションの処理、詳細情報へのフォーカス移動を含む、完全なアプリケーションコードを記載しています。スタイルシートにはオリジナルのレイアウトだけを含めています。固定バージョンの4つのパッケージをインストールし、アイコンをコピーして、両方のファイルを素のViteプロジェクトに保存してください。ブラウザーのプレビューは、これらのコンポーネントエントリとローカルフォントアセットのみをバンドルします。

  1. Gov CEの4つのパッケージをすべて4.7.1でインストールします。
  2. サブディレクトリ構成を保ったまま、アイコンをpublic/assets/gov-cz-iconsにコピーします。
  3. 完全なJavaScriptとレイアウトCSSをsrcに保存します。
  4. アプリを実行し、ページ移動、フォーカスの復帰、アイコンのリクエストを確認します。

操作とアセットの読み込みを確認する

最初の項目を開き、元のボタンに戻ってから2ページ目に進み、別の項目を読みます。先頭では最初/前へのコントロールが無効になり、末尾では次/最後へのコントロールが無効になることを確認します。デスクトップとスマートフォンの画面幅に加え、さらに狭い埋め込み幅でも同じ操作を確認してください。ネットワークパネルでアイコンの欠落とJavaScriptエラーの両方を確認します。

gov.cz デザインシステムのコンポーネント例

main.js — ページネーション対応ツールキットの全コード

全データ、ネイティブコンポーネントの登録、ページ単位のデータ切り出し、読み上げ時のフォーカスを含みます。

JavaScript
import '@gov-design-system-ce/styles/tokens.css';
import '@gov-design-system-ce/styles/styles.css';
import '@gov-design-system-ce/styles/layout.css';
import '@gov-design-system-ce/styles/components.css';
import '@gov-design-system-ce/styles/animations.css';
import '@gov-design-system-ce/fonts/lib/roboto.css';
import './gov-cz.css';
window.GOV_DS_CONFIG={iconsPath:'/assets/gov-cz-icons'};
const resources=[
 {title:'Map the service journey',kind:'Workshop',time:'25 minutes',summary:'Connect the first question to a useful outcome.',body:'Start with the person’s goal. Record how they discover the service, what they need before starting and how they know the task has finished. Mark every hand-off where the person must repeat information.'},
 {title:'Write a clear action label',kind:'Writing guide',time:'10 minutes',summary:'Name what will happen after a button is activated.',body:'Use a verb and the object of the action. Compare Save draft with Send application and make the distinction explicit. Keep destructive and reversible actions visually and verbally distinguishable.'},
 {title:'Review keyboard access',kind:'Checklist',time:'20 minutes',summary:'Inspect focus order, visible focus and recovery.',body:'Work through the page using only the keyboard. Check the first useful control, the order through repeated items, the next-page action and return from a detail view. A selected page and keyboard focus are separate states.'},
 {title:'Prepare an error message',kind:'Writing guide',time:'15 minutes',summary:'Explain the issue next to a recoverable action.',body:'State what needs changing and how to change it. Preserve the person’s input. Avoid a generic failure message when the application knows which field or prerequisite is causing the problem.'},
 {title:'Test a narrow layout',kind:'Checklist',time:'20 minutes',summary:'Keep reading and actions available on a small screen.',body:'Inspect a long title, two lines of metadata and the pagination controls at a narrow width. Avoid hiding essential actions behind hover. Check that only a genuinely two-dimensional region scrolls sideways.'},
 {title:'Record the decision',kind:'Template',time:'10 minutes',summary:'Give the next team enough context to continue.',body:'Record the decision, the evidence used, the person responsible and the condition that would make the team revisit it. A useful record explains the reasoning without presenting an experiment as a settled rule.'}
];
document.querySelector('#root').innerHTML=`<main><p class="eyebrow">OPENDESIGN · ORIGINAL SERVICE TOOLKIT</p><h1>Small steps toward a clearer service</h1><p class="lead">Six practical resources for a team review. Explore two pages and open a resource without leaving the collection.</p><div id="cards" class="cards"></div><div class="pagination-row"><p id="range" role="status"></p><gov-pagination total="6" page-size="3" current="1" color="primary" size="s" accessible-page-label="Page" accessible-select-label="Choose a page" label-prev="Previous page" label-next="Next page" label-start="First page" label-end="Last page" aria-label="Toolkit pages"></gov-pagination></div><section id="detail" hidden aria-labelledby="detail-title"><p class="eyebrow" id="detail-meta"></p><h2 id="detail-title" tabindex="-1"></h2><p id="detail-body"></p><gov-button id="close" type="outlined" color="primary" size="m">Back to resources</gov-button></section><aside><strong>About this example</strong><p>These are original OpenDesign practice notes, not Czech government guidance. Cards, buttons and pagination use Gov Design System CE 4.7.1. Reading a resource is local and does not submit information.</p></aside></main>`;
await import('@gov-design-system-ce/components/dist/components/gov-card.js');
await import('@gov-design-system-ce/components/dist/components/gov-pagination.js');
let page=1,opened=-1;
const cards=document.querySelector('#cards'), detail=document.querySelector('#detail');
function render(){cards.replaceChildren();resources.slice((page-1)*3,page*3).forEach((r,i)=>{let id=(page-1)*3+i;let card=document.createElement('gov-card');card.innerHTML=`<h2 slot="headline">${r.title}</h2><p class="meta">${r.kind} · ${r.time}</p><p>${r.summary}</p><gov-button type="solid" color="primary" size="m" data-resource="${id}" aria-label="Read ${r.title}">Read resource</gov-button>`;cards.append(card)});document.querySelector('#range').textContent=`Resources ${(page-1)*3+1}–${page*3} of ${resources.length}`;detail.hidden=true;opened=-1;}
cards.addEventListener('gov-click',e=>{let b=e.target.closest('[data-resource]');if(!b)return;opened=Number(b.dataset.resource);let r=resources[opened];document.querySelector('#detail-meta').textContent=r.kind+' · '+r.time;document.querySelector('#detail-title').textContent=r.title;document.querySelector('#detail-body').textContent=r.body;detail.hidden=false;document.querySelector('#detail-title').focus();});
document.querySelector('gov-pagination').addEventListener('gov-page',e=>{page=e.detail.pagination.currentPage;render();});
document.querySelector('#close').addEventListener('gov-click',()=>{detail.hidden=true;const button=cards.querySelector(`[data-resource="${opened}"] button`);button?.focus();opened=-1;});render();

コードリファレンス

  • コンポーネントのエントリをインポートする前に設定を実行します。ARIA名にはaria-labelを使用します。

gov-cz.css — オリジナルのコレクション構成

ネイティブコンポーネントのスタイルを保ちつつ、レスポンシブなグリッドと読みやすいローカル詳細を実現します。

CSS
body{margin:0;color:var(--text-primary);font-family:Roboto,Arial,sans-serif}main{max-width:1160px;margin:auto;padding:32px}.eyebrow{font-size:12px;letter-spacing:.08em;font-weight:700;color:var(--color-primary-600)}h1{max-width:22ch;font-size:40px;line-height:1.15;margin:16px 0}.lead{max-width:66ch;font-size:18px;line-height:1.6}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:32px 0}.cards gov-card{height:100%}.cards h2{font-size:22px;line-height:1.3}.cards p{margin-bottom:20px;line-height:1.6}.meta{font-size:14px;color:#555}.pagination-row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}#range{font-size:14px}#detail{padding:24px;border-left:4px solid var(--color-primary-600);background:var(--color-primary-50);margin-top:32px}#detail-body{max-width:66ch;line-height:1.7}aside{margin-top:32px;padding-top:24px;border-top:1px solid #ddd;font-size:14px;line-height:1.6}aside p{max-width:80ch}[hidden]{display:none!important}@media(max-width:760px){main{padding:20px}.cards{grid-template-columns:1fr}h1{font-size:32px}.pagination-row{display:block}gov-pagination{max-width:100%;overflow:auto}}

html,body{min-width:0}.eyebrow{overflow-wrap:anywhere}

コードリファレンス

  • グリッドレイアウトと埋め込み時の最小幅上書きは、オリジナルのアプリケーションCSSです。
04

gov.cz デザインシステム エージェント設定

実装の出発点

アイコンのサブディレクトリ構成を維持してください。この例ではコンポーネントのエントリモジュールを直接インポートするため、コピーしたlazy-loaderランタイムは必要ありません。

シェル
npm create vite@latest gov-toolkit -- --template vanilla
cd gov-toolkit
npm install
npm install @gov-design-system-ce/[email protected] @gov-design-system-ce/[email protected] @gov-design-system-ce/[email protected] @gov-design-system-ce/[email protected]
mkdir -p public/assets/gov-cz-icons
cp -R node_modules/@gov-design-system-ce/icons/lib/. public/assets/gov-cz-icons/
# Save the supplied files as src/main.js and src/gov-cz.css.
# The root index.html must contain <div id="root"></div> and load /src/main.js.
npm run dev

あなたのプロジェクト向けプロンプト

AI エージェント用プロンプト
ネイティブのカード、ボタン、ページネーションを使用して、Gov CE 4.7.1のツールキットを構築します。実際のスタイルシートの読み込み順とアイコンパスの設定を維持してください。gov-pageのdetail.pagination.currentPage、意味のある英語のARIAラベル、ページ変更時に古い詳細情報を閉じる動作、閲覧後にフォーカスを戻す動作を使用します。サンプルコンテンツの出典表記はそのまま残してください。
05

gov.cz デザインシステム 出典と対象範囲

Gov Design System CE 4.7.1のコンポーネント、スタイル、アイコン、フォントを用いた、オリジナルのOpenDesignサービスツールキットの検証例です。サンプルの文章とコレクションの動作はオリジナルであり、政府の公式サービスではありません。