Государственные услуги · Новый ресурс

Дизайн-система gov.cz.

Изучите настоящие цветовые роли, слоты карточек и нативную пагинацию Gov Design System CE на примере полноценного инструментария для чтения шести ресурсов с явным управлением фокусом и состоянием страницы.

Руководство OpenDesign6 глав25 справочных записейАвторское руководство по приложению
01

Дизайн-система gov.cz Предварительный просмотр интерфейса

Просмотрите шесть оригинальных ресурсов на двух страницах, откройте материал для чтения и вернитесь к действию.

Переходите по страницам практического набора сервисных материаловОткрыть полный пример
Компоненты карточки, кнопки и пагинации Native Gov CE 4.7.1; оригинальный локальный набор данных и обработка фокуса. · Справочник по реализации
02

Дизайн-система gov.cz Справочник по дизайну

Фактические примитивы цветов и семантические псевдонимы из tokens.css пакета @gov-design-system-ce/styles 4.7.1. В предварительном просмотре используются опубликованные стили и пакет 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)Семантические псевдонимы сохранены, чтобы их роль оставалась видимой; не заменяйте каждый псевдоним несвязанным локальным HEX-значением.
--text-secondaryvar(--color-neutral-700)Семантические псевдонимы сохранены, чтобы их роль оставалась видимой; не заменяйте каждый псевдоним несвязанным локальным HEX-значением.
--text-primary-colorvar(--color-primary-600)Семантические псевдонимы сохранены, чтобы их роль оставалась видимой; не заменяйте каждый псевдоним несвязанным локальным HEX-значением.
--text-whitevar(--color-neutral-0)Семантические псевдонимы сохранены, чтобы их роль оставалась видимой; не заменяйте каждый псевдоним несвязанным локальным HEX-значением.
--text-status-errorvar(--color-error-700)Семантические псевдонимы сохранены, чтобы их роль оставалась видимой; не заменяйте каждый псевдоним несвязанным локальным HEX-значением.
--text-status-successvar(--color-success-700)Семантические псевдонимы сохранены, чтобы их роль оставалась видимой; не заменяйте каждый псевдоним несвязанным локальным HEX-значением.
--status-focusvar(--color-focus-600)Семантические псевдонимы сохранены, чтобы их роль оставалась видимой; не заменяйте каждый псевдоним несвязанным локальным HEX-значением.
--status-warningvar(--color-warning-400)Семантические псевдонимы сохранены, чтобы их роль оставалась видимой; не заменяйте каждый псевдоним несвязанным локальным HEX-значением.
--status-errorvar(--color-error-600)Семантические псевдонимы сохранены, чтобы их роль оставалась видимой; не заменяйте каждый псевдоним несвязанным локальным HEX-значением.

Состояния основной кнопки

Источник
Название / правилоЗначение / конфигурацияПрименение
--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. Пять таблиц стилей для основ подключаются в опубликованном порядке. У каждой из них своя задача: одних переменных недостаточно, чтобы оформить карточку, а одной регистрации пользовательского элемента — чтобы подключить глобальный компонент CSS. Полный файл точки входа подключает все пять таблиц перед небольшим оригинальным слоем композиции.

Из этого руководства OpenDesign

Инициализируйте конфигурацию до регистрации компонентов

Путь к значкам настраивается до запуска динамически импортируемых модулей точки входа компонентов. Порядок важен: компонент пагинации загружает значки стрелок в составе собственных зависимостей. Скопируйте всю папку со значками в настроенный общедоступный каталог, сохранив вложенные папки. Успешный импорт JavaScript не подтверждает успешную загрузку отдельных значков.

Дизайн-система gov.cz Ссылки на семантические цвета и состояния

Связывайте цвет с ролью

В справочнике голубой основной примитив отделён от псевдонимов текста, фокуса и состояния кнопки. Использование одного и того же визуально голубого цвета повсюду нарушило бы эти соглашения. В наборе используются официальные сплошные основные кнопки, а их активный, наведённый и отключённый вид задаётся таблицей стилей компонента. Только компоновка окружающей коллекции — оригинальная работа CSS.

Показывайте типографику и контекст содержимого

Roboto загружается из соответствующего пакета шрифтов. У карточек есть короткие заголовки с указанием действия, строка метаданных и краткое описание перед действием чтения. Тексты шести ресурсов — оригинальный учебный материал OpenDesign, а не перевод официальных инструкций правительства Чехии. Они предназначены для демонстрации иерархии и полного локального взаимодействия без имитации государственной службы.

Дизайн-система gov.cz Слоты карточки и действия чтения

Размещайте заголовок в поддерживаемом слоте

Для каждой gov-card заголовок передаётся в слот headline. Метаданные, описание и кнопка составляют содержимое. У действия задан aria-label с названием ресурса, чтобы вспомогательные технологии различали одинаковые кнопки «Читать ресурс». Компонент передаёт атрибуты ARIA своему внутреннему интерактивному элементу; выдуманный атрибут accessible-label этого не обеспечит.

Оставляйте компоновку за пределами контракта компонента

Сетка CSS из трёх колонок на узком экране становится одноколоночной. Сетка и её контрольная точка адаптивности созданы для этого примера и не являются дополнительными официальными свойствами карточки. В предварительном просмотре также снимается глобальное ограничение минимальной ширины body в 320px внутри очень узкого встроенного контейнера. Эта небольшая корректировка композиции сохраняет стилизацию компонента и предотвращает переполнение родительской страницы.

Дизайн-система gov.cz Нативная пагинация и состояние приложения

Читайте данные нативного события

Для gov-pagination заданы total=6 и page-size=3. Событие gov-page передаёт detail.pagination.currentPage, по которому выбираются соответствующие три записи. Компонент пагинации отвечает за элементы управления текущей страницей, а приложение — за набор данных и отображаемую его часть. Все стандартные чешские подписи навигации явно заменены английскими для этого примера на английском языке.

  • total — это число записей, а не число страниц.
  • page-size задаёт количество элементов на странице.
  • gov-page предоставляет detail.pagination.currentPage.
  • Подписи навигации должны соответствовать языку интерфейса.

Не допускайте отображения устаревших подробностей после смены страницы

Дизайн-система gov.cz Перемещение фокуса при чтении и возврате

Переместить фокус на открытую запись

Действие «Читать» заполняет локальную область с подробностями и переводит фокус на её заголовок. Так пользователи клавиатуры получают понятную точку назначения после действия, добавляющего содержимое под коллекцией. Для заголовка, на который можно переместить фокус, используется tabindex=-1: приложение может установить на него фокус, но он не становится дополнительной остановкой при обычном переходе клавишей Tab. Открытое содержимое остаётся обычным текстом для чтения.

Вернуться к действию, которое открыло запись

Кнопка «Назад к ресурсам» скрывает подробности и возвращает фокус на исходную внутреннюю кнопку. Это не модальное окно: фокус не блокируется внутри него, семантика диалога не добавляется, а страница не затемняется. Исходная коллекция остаётся доступной. Повторное открытие и закрытие записей, а также переход между страницами позволяют проверить, согласованно ли меняются состояние приложения и фокус при выборе разных ресурсов.

Дизайн-система gov.cz Полная локальная интеграция

Используйте предоставленные файлы вместе

В записи приведён полный код приложения: все шесть элементов, создание карточек, обработка пагинации и перемещение фокуса на подробности. Таблица стилей содержит только исходную композицию. Установите четыре пакета с зафиксированными версиями, скопируйте значки и сохраните оба файла в проекте на vanilla Vite. Предварительный просмотр в браузере включает ровно эти компоненты и локальные файлы шрифтов.

  1. Установите все четыре пакета Gov CE версии 4.7.1.
  2. Скопируйте значки в public/assets/gov-cz-icons, сохранив структуру подкаталогов.
  3. Сохраните полный JavaScript и композицию CSS в src.
  4. Запустите приложение и проверьте пагинацию, возврат фокуса и запросы значков.

Проверьте взаимодействие и загрузку ресурсов

Откройте первую запись, верните фокус на её кнопку, перейдите на вторую страницу и прочитайте другую запись. Убедитесь, что в начале отключены кнопки первой и предыдущей страниц, а в конце — следующей и последней. Проверьте этот сценарий на экранах настольных компьютеров и телефонов, в том числе при меньшей ширине встроенного блока. Помимо ошибок 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 Настройка агента

Отправная точка для реализации

Сохраняйте структуру подкаталогов значков. В этом примере напрямую импортируются модули точек входа компонентов; копировать среду выполнения для отложенной загрузки не требуется.

sh
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 Источники и область применения

Оригинальное исследование набора инструментов для сервисов OpenDesign на компонентах, стилях, значках и шрифтах Gov Design System CE 4.7.1. Текст примеров и поведение коллекции созданы для этого примера; это не официальный государственный сервис.