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

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

Объедините токены интервалов USWDS, роли тем, семантические таблицы и нативные аккордеоны в интерфейсе для поиска и сравнения возможностей.

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

Предпросмотр интерфейса дизайн-системы USWDS

Ищите и фильтруйте вымышленные записи, восстанавливайтесь после отсутствия результатов и раскрывайте нативные панели требований.

Сравнение возможностей для исследованийОткрыть полный пример
Нативные USWDS 3.14.0 CSS и JavaScript аккордеона; явная локальная замена системного шрифта и собственная фильтрация. · Справочник по реализации
02

Дизайн-справочник дизайн-системы USWDS

Нативный дистрибутив компонентов USWDS 3.14.0. Токены по умолчанию — из официальной документации; замены шрифтов в предпросмотре явно указаны как локальные решения.

Шаги отступов

Источник
Название / правилоЗначение / конфигурацияПрименение
0.5 / 054pxШаг отступа в половину единицы и утилита формы
18pxБазовая единица отступа
1.5 / 10512pxПромежуточный отступ
216pxКомпактный внутренний отступ
324pxИнтервал между связанными материалами
432pxИнтервал между разделами
540pxУвеличенный интервал
648pxБольшой отступ
tablet640pxИменованный токен ширины
desktop1024pxИменованный токен ширины

Сопоставление типов по умолчанию

Источник
Название / правилоЗначение / конфигурацияПрименение
sanssource-sans-proТокен семейства шрифтов по типу
serifmerriweatherТокен семейства шрифтов по типу
body / uisansСопоставление по ролям
headingserifСопоставление по ролям
codemono → roboto-monoСопоставление роли кода

Цвета темы по умолчанию

Источник
Название / правилоЗначение / конфигурацияПрименение
primaryblue-60v / #005ea2Основной псевдоним
primary-lighterblue-10 / #d9e8f6Дополнительный оттенок основного цвета
primary-darkblue-warm-70v / #1a4480Более тёмный псевдоним основного цвета
inkgray-90 / #1b1b1bПсевдоним основного текста

Контракты компонентов

Источник
Название / правилоЗначение / конфигурацияПрименение
aria-controlsPanel IDСвязывает каждую кнопку аккордеона с содержимым.
aria-expandedtrue / falseВстроенный JS управляет состоянием раскрытия.
data-allow-multipleAccordion root attributeПозволяет независимо раскрывать панели.
usa-accordion--borderedRoot modifierДобавляет вариант с рамкой.
03

USWDS: полное руководство по дизайн-системе

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

DESIGN-uswds.md

Подробные рекомендации, отправная точка для реализации и ссылки на источники.

Скачать руководство

USWDS: настраиваемая дизайн-система Foundation

Токены по умолчанию — отправная точка для настройки

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

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

Предварительный просмотр — независимое исследование для сравнения возможностей в сфере исследований с использованием 3.14.0 CSS и аккордеона JavaScript. В нём не используются правительственный баннер и символика. Названия программ и этапы вымышлены, а фильтрация выполняется полностью в браузере.

Прочитать вспомогательную спецификацию

USWDS: отступы и токены темы дизайн-системы

Ориентируйтесь на единицу измерения, а не на число

Одна единица отступа USWDS равна 8px: units(2) означает 16px, а units(3) — 24px. Половинные токены позволяют задавать меньшие интервалы, а в записи утилиты для половины единицы используется 05. Утилита margin-2 не задаёт отступ в два пикселя.

В шкалу также входят именованные ширины, например tablet и desktop. Это повторно используемые токены, а не требование перерабатывать каждую страницу для каждого размера. В примере для размещения содержимого используется grid-container, а для таблицы — отдельная прокручиваемая область с фокусом.

scss
@use "uswds-core" as *;
.opportunity-meta {
  padding: units(2);
  margin-bottom: units(3);
}

Справочник по коду

Прочитать вспомогательную спецификацию

USWDS: шрифты и роли в дизайн-системе

Роль можно изменить, не переименовывая компоненты

По умолчанию токен sans соответствует Source Sans Pro, а serif — Merriweather. Для ролей body и UI задано семейство sans, для heading — serif. Функция family("body") разрешает эту цепочку. При описании проекта различайте семантическую роль и итоговое семейство шрифтов.

В локальном примере для основного текста явно заданы Helvetica/Arial, а для заголовков — Georgia, поэтому загружать шрифты не требуется. Это переопределение для исследования, а не стандартная типографическая система USWDS. В рабочей сборке эти роли следует настроить через параметры uswds-core или скопировать поставляемые файлы шрифтов.

scss
@use "uswds-core" with (
  $theme-font-type-sans: "helvetica",
  $theme-font-type-serif: "georgia",
  $theme-font-role-body: "sans",
  $theme-font-role-heading: "serif"
);

Справочник по коду

Прочитать вспомогательную спецификацию

USWDS: псевдонимы цветов темы дизайн-системы

Связывайте псевдонимы с их назначением

По умолчанию псевдоним основного цвета соответствует blue-60v, #005ea2. Псевдоним primary-dark соответствует blue-warm-70v, #1a4480, а ink — gray-90, #1b1b1b. Это значения темы, а не требование использовать один и тот же фирменный цвет на каждом сайте USWDS.

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

Прочитать вспомогательную спецификацию

USWDS: сопоставление возможностей в дизайн-системе

Сохраняйте семантику таблицы

В примере используются подпись таблицы, заголовки столбцов с атрибутом scope="col" и название возможности с атрибутом scope="row". Это таблица, потому что читатели сравнивают одни и те же поля — тематику и этап — в разных записях. Эти связи сохраняются и при прокрутке области.

У прокручиваемой обёртки задан tabindex="0", чтобы пользователь клавиатуры мог перейти к ней. Широкие данные остаются в этой области и не растягивают весь документ. В примере используются обычные текстовые ячейки; для отсутствующих данных программы нужно предусмотреть явное состояние содержимого, а не подставлять выдуманное число.

Прочитать вспомогательную спецификацию

Сортировка — отдельное улучшение

В USWDS сортируемые заголовки поддерживаются атрибутом data-sortable. Для сортируемой таблицы также нужен usa-table__announcement-region с aria-live="polite". Для числовых данных может потребоваться data-sort-value, чтобы отформатированная сумма сортировалась как значение, а не по алфавиту. В этом сравнении сортировка не включена: демонстрация предназначена для фильтрации по тематике в трёх строках.

Прочитать вспомогательную спецификацию

USWDS: требования в раскрывающихся блоках дизайн-системы

Свяжите идентификаторы кнопки и панели

У каждой usa-accordion__button атрибут aria-controls указывает на связанную с ней usa-accordion__content. Встроенный механизм JavaScript обновляет aria-expanded и видимость. Модификатор с рамкой меняет оформление контейнера; data-allow-multiple позволяет одновременно раскрыть несколько разделов.

Кнопка находится внутри заголовка, чтобы структура содержимого оставалась понятной. Требования, по которым пользователь решает, подходит ли ему программа, следует показывать до раскрывающегося блока. Здесь панели содержат дополнительные рекомендации по подготовке и пояснение к вымышленному набору данных.

  • Заголовок описывает тему панели.
  • Кнопка содержит состояние раскрытия и целевой идентификатор.
  • Идентификатор панели остаётся неизменным при изменении её видимости.

Прочитать вспомогательную спецификацию

USWDS: установите всё дерево ресурсов дизайн-системы

Сохраняйте пути, используемые скомпилированным CSS

Установите @uswds/[email protected] и скопируйте каталог dist, сохранив структуру папок css, js, img и fonts. Таблица стилей использует относительные пути к значкам и шрифтам. Иначе страница может выглядеть почти правильно, но на ней не отобразятся символы раскрывающихся блоков или нужные шрифты.

Подключите uswds-init.min.js в секции head, затем таблицу стилей, а uswds.min.js — после разметки body. Библиотека включает поддержку аккордеона. Поле поиска и фильтр по тематике ниже реализованы на уровне приложения и не обращаются к удалённому сервису поиска.

Прочитать вспомогательную спецификацию

USWDS: фильтрация и восстановление исходного состояния дизайн-системы

Запрос должен показывать результат

Для элементов управления используются стандартные стили label, input, select и button; приложение сопоставляет запрос и выбранную тематику с тремя вымышленными записями. Количество результатов выводится в области с вежливым оповещением. Если совпадений нет, отображаются пояснение и кнопка сброса; введённый запрос сохраняется.

В демонстрации намеренно разделены поиск возможностей и подача заявки. Раскрытие материалов для подготовки не создаёт черновик и не отмечает требование как выполненное. Для настоящей заявки на финансирование потребуются правила конкретной программы, аутентификация и сохранение состояния транзакции.

  1. Выберите категорию «Окружающая среда» и проверьте, какая возможность останется.
  2. Введите фразу без совпадений и нажмите «Сбросить фильтры».
  3. Раскройте обе панели с рекомендациями и проверьте, что их состояния не зависят друг от друга.

Прочитать вспомогательную спецификацию

USWDS: примеры компонентов дизайн-системы

Дополнительный аккордеон с рекомендациями по подготовке

Раскрывающийся блок USWDS с явной связью между кнопкой и панелью.

html
<div class="usa-accordion usa-accordion--bordered" data-allow-multiple>
  <h3 class="usa-accordion__heading">
    <button type="button" class="usa-accordion__button"
      aria-expanded="false" aria-controls="preparation">Before you prepare a draft</button>
  </h3>
  <div id="preparation" class="usa-accordion__content usa-prose" hidden>
    <p>This fictional opportunity asks for a project summary and a named contact.</p>
  </div>
</div>

Справочник по коду

Таблица для сравнения возможностей

Подпись и заголовки строк и столбцов сохраняют связи между сравниваемыми данными.

html
<div class="usa-table-container--scrollable" tabindex="0">
  <table class="usa-table usa-table--borderless">
    <caption>Illustrative research opportunities</caption>
    <thead><tr><th scope="col">Opportunity</th><th scope="col">Topic</th><th scope="col">Stage</th></tr></thead>
    <tbody><tr><th scope="row">Community water study</th><td>Environment</td><td>Example draft</td></tr></tbody>
  </table>
</div>

Справочник по коду

Полный автономный пример

Полный документ включает разметку, элементы управления и инициализацию. Распакуйте связанный архив примера, чтобы получить нужные относительные пути к ресурсам поставщика, затем запустите его через HTTP-сервер.

html
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Research opportunities — OpenDesign study</title><script src="vendor/uswds-3.14.0/uswds-init.min.js"></script><link rel="stylesheet" href="vendor/uswds-3.14.0/css/uswds.min.css"><style>body,body *,body *:before,body *:after{font-family:Helvetica,Arial,sans-serif!important}h1,h2{font-family:Georgia,serif!important}body{color:#1b1b1b;margin:0}[hidden]{display:none!important}.study-head{background:#d9e8f6;padding:16px 0;border-bottom:4px solid #005ea2}.study-head p{margin:0}.study-form{display:flex;gap:24px;align-items:end;flex-wrap:wrap}.study-form>div{flex:1;min-width:200px}.study-form .usa-input,.study-form .usa-select{max-width:none}.usa-table{width:100%}.study-main{padding-top:32px;padding-bottom:48px}.usa-table th{min-width:120px}#count{margin-top:24px}.study-note{border-top:1px solid #a9aeb1;margin-top:32px;padding-top:16px;line-height:1.5}</style></head><body><header class="study-head"><div class="grid-container"><p><strong>OpenDesign · USWDS component study</strong><br>Fictional research records. No application is submitted.</p></div></header><main class="grid-container study-main"><h1>Research opportunities</h1><p class="usa-intro">Compare topics and read the preparation notes.</p><form class="study-form" id="filters"><div><label class="usa-label" for="query">Search opportunity names</label><input class="usa-input" id="query" type="search"></div><div><label class="usa-label" for="topic">Topic</label><select class="usa-select" id="topic"><option value="">All topics</option><option>Environment</option><option>Transport</option><option>Education</option></select></div><button type="submit" class="usa-button">Apply filters</button><button type="button" class="usa-button usa-button--outline" id="clear">Clear filters</button></form><p id="count" aria-live="polite">3 opportunities</p><div class="usa-table-container--scrollable" tabindex="0"><table class="usa-table usa-table--borderless"><caption>Illustrative research opportunities</caption><thead><tr><th scope="col">Opportunity</th><th scope="col">Topic</th><th scope="col">Stage</th></tr></thead><tbody><tr data-topic="Environment"><th scope="row">Community water study</th><td>Environment</td><td>Example draft</td></tr><tr data-topic="Transport"><th scope="row">Accessible transport research</th><td>Transport</td><td>Example review</td></tr><tr data-topic="Education"><th scope="row">Local skills survey</th><td>Education</td><td>Example draft</td></tr></tbody></table></div><p id="empty" hidden>No matching opportunities. Broaden the topic or clear the filters.</p><h2>Preparation notes</h2><div class="usa-accordion usa-accordion--bordered" data-allow-multiple>
  <h3 class="usa-accordion__heading">
    <button type="button" class="usa-accordion__button"
      aria-expanded="false" aria-controls="preparation">Before you prepare a draft</button>
  </h3>
  <div id="preparation" class="usa-accordion__content usa-prose" hidden>
    <p>This fictional opportunity asks for a project summary and a named contact.</p>
  </div>
<h3 class="usa-accordion__heading"><button type="button" class="usa-accordion__button" aria-expanded="false" aria-controls="scope">What the example data means</button></h3><div id="scope" class="usa-accordion__content usa-prose" hidden><p>Draft and review are demonstration stages. They do not indicate an actual funding programme or eligibility decision.</p></div>
</div><p class="study-note">USWDS 3.14.0 native accordion and styles, with local Helvetica/Georgia font overrides. Filters are original application code. <a href="vendor/uswds-3.14.0/LICENSE.md">Distribution licence</a>.</p></main><script src="vendor/uswds-3.14.0/uswds.min.js"></script><script>const rows=[...document.querySelectorAll('tbody tr')],q=document.getElementById('query'),t=document.getElementById('topic');function filter(){let n=0;for(const row of rows){const show=(!t.value||row.dataset.topic===t.value)&&row.firstElementChild.textContent.toLowerCase().includes(q.value.trim().toLowerCase());row.hidden=!show;if(show)n++}document.getElementById('count').textContent=n+' '+(n===1?'opportunity':'opportunities');document.getElementById('empty').hidden=n!==0;}document.getElementById('filters').addEventListener('submit',e=>{e.preventDefault();filter()});document.getElementById('clear').addEventListener('click',()=>{q.value='';t.value='';filter();q.focus()});</script></body></html>

Справочник по коду

  • Скачайте полный пример из раздела «Источники». Точная команда локального запуска приведена в README.
  • Оставьте пути к ресурсам поставщика относительными к этому документу; архив включает все ресурсы, используемые в предварительном просмотре.
04

USWDS: настройка AI-агента в дизайн-системе

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

Сохраните структуру каталога dist, чтобы CSS мог находить шрифты и значки. Это способ установки предварительно скомпилированного дистрибутива; для настройки темы нужна сборка Sass. ZIP-архив с полным рабочим примером в разделе «Источники» содержит также точные зависимости примера и весь документ. Распакуйте его, выполните python3 -m http.server 8080 в этом каталоге, затем откройте http://localhost:8080/uswds.html. Не открывайте примеры с модулями через file://.

sh / html
npm install @uswds/[email protected]
mkdir -p public/assets/uswds
cp -R node_modules/@uswds/uswds/dist public/assets/uswds/

<!-- HTML head -->
<script src="/assets/uswds/dist/js/uswds-init.min.js"></script>
<link rel="stylesheet" href="/assets/uswds/dist/css/uswds.min.css">
<!-- After the component markup, before closing body -->
<script src="/assets/uswds/dist/js/uswds.min.js"></script>

Запрос для вашего проекта

Промпт для AI-агента
Создайте вымышленную таблицу для сравнения возможностей в сфере исследований с использованием USWDS 3.14.0. Подключите полное дерево ресурсов dist, скрипт инициализации, таблицу стилей компонентов и JavaScript. Представьте сопоставимые записи в семантической таблице с подписью и заголовками столбцов; добавьте поиск с меткой и фильтрацию по категориям, количество результатов, полезное состояние при отсутствии совпадений и сброс фильтров. Используйте стандартные аккордеоны для дополнительных требований, но оставьте важную информацию для сравнения видимой. Сохраните документированные единицы отступов и соответствия ролей темы; обозначьте переопределение системных шрифтов. Не превращайте эту страницу в процесс подачи заявки и не создавайте впечатление, что здесь подтверждаются реальные критерии участия или обязательства по выделению гранта.
05

USWDS: источники и границы дизайн-системы

Независимое исследование компонентов USWDS 3.14.0. Записи о возможностях вымышлены; официальная символика федеральных органов и точка подачи заявок не используются. Helvetica/Arial и Georgia — локальные замены шрифтов, а не шрифтовые ресурсы по умолчанию USWDS.