Стандарты и знания · Новый ресурс

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

Создавайте удобные для чтения интерфейсы с гибкой типографикой, семантическими цветовыми ролями и нативным сворачиваемым содержимым, которое остаётся читаемым без JavaScript.

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

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

Открывайте учебные планы по отдельности или все сразу; содержимое остаётся читаемым, даже если JavaScript отключён.

Изучите учебные сообщества в интернетеОткрыть полный пример
Нативный W3C CSS и main.js, датированный снимок CDN; системный шрифт в качестве резервного и исходное содержимое. · Справочник по реализации
02

Справочник по дизайну дизайн-система W3C

Официальная документация W3C и общедоступный снимок CDN, загруженный 3 октября 2026 года; изучены фактический CSS и нативный скрипт.

Гибкая типографика

Источник
Название / правилоЗначение / конфигурацияПрименение
Web font / fallbackNoto Sans / Trebuchet MS, Geneva, sans-serifНативный CSS применяет Noto Sans после загрузки шрифтов; в демонстрации используется системный резервный шрифт.
Fluid range320–1120px viewportЗа пределами этого диапазона значения clamp выходят на плато; резких скачков в типографике нет.
--w3c-text-0clamp(.9375rem, .9125rem + .125vw, 1rem)Основной текст: от 15px до 16px при стандартном размере корневого элемента.
--w3c-text-5clamp(1.6894rem, 1.6444rem + .2253vw, 1.802rem)Шкала H1; примерно 27–28.8px.
--w3c-text-7clamp(2.1382rem, 2.0811rem + .2851vw, 2.2807rem)Самый крупный размер шкалы text-xl, но не стандартный размер H1.
Body line height1.5Относительно гибкого размера шрифта.
Collapsible H3--w3c-text-1 / line-height 1.5Переопределение компонента: примерно 16.9–18px.

Семантические цвета

Источник
Название / правилоЗначение / конфигурацияПрименение
Text#111111 Почти чёрный; цвет основного текста для чтения.
Link#005a9c Синий W3C; отличается от цветов ссылок при наведении и посещении.
Hover / visited#002a56 / #75336cСохраняйте различие состояний.
Focus#f9dc4a Жёлтая подсветка фокуса с видимой границей.
Input border#545454 Контрастная роль отличается от роли декоративных разделителей.
Success / error#046704 / #a82615Цвета передают значение статуса, а не служат случайными акцентами.
Warning#c28605 Цвет границы для предупреждающих заметок.

Макет и интервалы

Источник
Название / правилоЗначение / конфигурацияПрименение
l-centermax-inline-size:70rem; padding-inline:5vwНативный контейнер для широкого экрана; в предпросмотре используется более узкое ограничение приложения — 55rem.
Reading measure41.25remМаксимальная ширина содержимого внутри сворачиваемых блоков.
Stack default1em between direct siblingsОфициальный миксин Sass принимает явно заданную меру; это не фиксированная шкала с шагом 8px.
Collapsible inset1.5625rem25px при стандартном размере корневого элемента.
Collapsible separation / radius1rem / .375remИнтервал 16px и скругление углов 6px.
Collapsible shadow-.0625rem .0625rem .25rem rgba(55,70,95,.12)Незначительное разделение поверхностей; нативное CSS.

Требования к прогрессивному улучшению

Источник
Название / правилоЗначение / конфигурацияПрименение
Outer hookdata-component="collapsibles"Скрипт находит корневой элемент каждого компонента.
Heading hookdata-heading="collapsibles"Скрипт добавляет настоящую кнопку в каждый заголовок.
Collapsed statearia-expanded=false; next sibling aria-hidden=trueРасширенный CSS требует маркер html.js, чтобы скрыть содержимое.
data-anchor="no"Suppress automatic heading anchors for this subtreeНе добавляйте ещё одну ссылку в заголовок сворачиваемого блока.
No JavaScriptAll content remains visibleНе поставляйте скрытое содержимое в качестве исходной разметки без улучшений.
03

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

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

DESIGN-w3c.md

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

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

Прогрессивное улучшение дизайн-система W3C

Сначала содержимое, затем элементы управления

W3C отделяет базовые стили от расширенных компонентов. Изначально сворачиваемый блок отображается как обычные заголовки с расположенным под ними содержимым. Без скрипта пользователи могут прочитать все планы занятий. Скрипт main.js добавляет кнопки и меняет состояние только после обнаружения документированных атрибутов данных. Это отличается от подхода, при котором сразу поставляется уже скрытый аккордеон, а его элементы управления могут так и не инициализироваться.

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

В предпросмотре используются core.css, advanced.css и main.js из официального CDN, сохранённые в виде локального датированного снимка. Маркер html.js активирует расширенные селекторы. Если убрать этот маркер, атрибуты ARIA изменятся, но содержимое останется визуально открытым; предпросмотр специально проверяет фактическую видимость и значение aria-expanded.

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

Гибкая типографика и загрузка шрифтов дизайн-система W3C

Умеренный размер текста для чтения

Размер основного текста увеличивается с 15px при нижней границе ширины окна до 16px при 1120px. Шкала основана на девяти именованных пользовательских свойствах. Для H1 используется --w3c-text-5, а не наибольший размер --w3c-text-7; если без разбора использовать заголовок с размером 36px для каждого документа, это не будет соответствовать стандартной иерархии заголовков.

Предусмотренный веб-шрифт — Noto Sans. В нативном резервном стеке используются Trebuchet MS и Geneva, пока путь загрузки шрифтов не добавит fonts-loaded в корневой элемент. В этом самостоятельном примере остаётся активным резервный шрифт, и этот выбор обозначен явно. Гибкий размер шрифта и высота строки соответствуют нативным настройкам; в предпросмотре не заявлено точное совпадение метрик символов Noto Sans.

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

Ширина текста и интервалы дизайн-система W3C

Комбинируйте примитивы макета

Примитив l-center задаёт максимальную ширину по горизонтальной оси 70rem и боковые отступы 5vw. В предпросмотре добавлено специфичное для приложения ограничение 55rem, чтобы три коротких учебных плана оставались компактными. Это ограничение не является новым токеном W3C. Внутри каждого сворачиваемого блока нативная ширина текстовой колонки 41.25rem ограничивает длину строк.

Документированный миксин Stack создаёт колонку и добавляет margin-top непосредственным соседним элементам после первого. Значение по умолчанию — 1em; при вызове можно задать другую единицу измерения. Рассматривайте его как интервал между блоками, а не как основание придумывать глобальную пронумерованную шкалу отступов. Для самого сворачиваемого блока отдельно проверены внутренний отступ 25px, расстояние 16px и радиус 6px.

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

Семантические цветовые роли дизайн-система W3C

Сохраняйте различие между посещёнными ссылками и фокусом

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

Для фокуса используется жёлтый цвет с видимой границей. На странице настроек обычные границы отделены от более тёмных границ полей ввода. Там также указаны разные значения цветов информационных сообщений, успеха, предупреждений и ошибок. Сохраняйте роль цвета и проверяйте его сочетание с фактическим фоном: одной цветовой плашки недостаточно, чтобы подтвердить достаточный контраст состояния компонента.

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

Сворачиваемая разметка и скрипт дизайн-система W3C

Заголовок, кнопка и соседний блок содержимого

Каждый непосредственный дочерний элемент содержит заголовок, за которым сразу следует блок с содержимым. Скрипт использует nextElementSibling, чтобы найти этот блок, поэтому вставка посторонних метаданных между ними нарушит связь. Размещайте метку категории внутри элемента span заголовка, как в документированном примере списка групп. Скрипт оборачивает содержимое заголовка в кнопку.

Нативный код переключает aria-expanded у этой кнопки и aria-hidden у блока содержимого. Расширенная таблица стилей скрывает свёрнутый блок. Атрибут data-anchor="no" не позволяет отдельной функции добавления ссылок к заголовкам вставлять нежелательные ссылки в этот компонент. Инициализируйте main.js один раз: повторное улучшение приведёт к вложению дополнительных кнопок в заголовки.

html
<div class="component--collapsibles" data-component="collapsibles" data-anchor="no">
  <div>
    <h3 data-heading="collapsibles">Inclusive forms <span>Practical workshop</span></h3>
    <div>
      <p>Connect each field to its label, hint and recovery message.</p>
      <ul><li>Preserve entered values</li><li>Test keyboard recovery</li></ul>
    </div>
  </div>
</div>

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

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

Групповые элементы управления и работа с клавиатурой дизайн-система W3C

Расширяйте функциональность с помощью существующих кнопок

Развернуть все и Свернуть все — это дополнительные элементы управления из примера. Они проверяют каждую нативную кнопку и нажимают её, только если нужно изменить её состояние. Так переключение нативного состояния и визуальное правило остаются согласованными. Эти элементы не меняют напрямую один атрибут ARIA, оставляя другой в устаревшем состоянии.

Нативные кнопки поддерживают активацию клавишами Enter и Space. В предпросмотре проверяется работа с отдельной кнопкой, командами «Развернуть все» и «Свернуть все», а также повторное открытие одного блока с клавиатуры. Вежливое статусное сообщение описывает групповое действие. Исходный компонент позволяет одновременно открывать несколько планов; это не аккордеон, в котором может быть открыт только один элемент.

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

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

Дизайн-система W3C Ресурсы и интеграция

Без выдуманных инструкций по установке пакетов

На официальной странице начала работы опубликованы стабильные точки входа CDN для основных, расширенных и печатных стилей, а также main.js и дополнительных скриптов функций. В блоке настройки используются именно эти пути. Для этой реализации не требуется провайдер React или npm-пакет HTML. В локальной демонстрации используются загруженные файлы, поэтому пример работает без активного подключения к сети.

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

  • core.css: базовая типографика, макеты и компоненты без расширений.
  • advanced.css: правила для состояний, расширенных с помощью JavaScript.
  • main.js: находит хуки data-атрибутов и один раз подключает расширения поддерживаемых компонентов.

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

Дизайн-система W3C Область действия и проверка

Дизайн-система, а не сертификат соответствия

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

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

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

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

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

Заголовок и следующий за ним текст — обязательная структура; main.js добавляет переключатель.

html
<div class="component--collapsibles" data-component="collapsibles" data-anchor="no">
  <div>
    <h3 data-heading="collapsibles">Inclusive forms <span>Practical workshop</span></h3>
    <div>
      <p>Connect each field to its label, hint and recovery message.</p>
      <ul><li>Preserve entered values</li><li>Test keyboard recovery</li></ul>
    </div>
  </div>
</div>

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

Полный нативный список для обучения

Содержит маркер подключения расширений в корневом элементе, официальные ресурсы, нативные сворачиваемые разделы и элементы управления для всех разделов.

html
<!doctype html><html lang="en"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><script>document.documentElement.classList.add("js")</script><title>Web learning circles</title><link rel="stylesheet" href="vendor/w3c-2026-10-03/core.css"><link rel="stylesheet" href="vendor/w3c-2026-10-03/advanced.css"><style>body{min-block-size:0;padding-block:2rem}.demo{max-inline-size:55rem}header{margin-bottom:2rem}.actions{display:flex;gap:1rem;flex-wrap:wrap;margin:1.5rem 0}.component--collapsibles{padding:1rem;background:#f8f8fb}footer{margin-top:2rem;border-top:1px solid #bdbdbd;padding-top:1rem;font-size:.875rem}#notice{min-height:1.5em}button{max-width:100%}</style><main class="l-center demo" data-anchor="no"><header><p>INDEPENDENT LEARNING PROGRAMME</p><h1>Web learning circles</h1><p class="lead">Explore three small-group sessions for people building a more usable web.</p></header><div class="actions"><button class="button button--ghost" id="expand">Expand all sessions</button><button class="button button--ghost" id="collapse">Collapse all sessions</button></div><p id="notice" role="status">Choose a session to read its outline.</p><div class="component--collapsibles" data-component="collapsibles" data-anchor="no"><div><h3 data-heading="collapsibles">Inclusive forms <span>Practical workshop</span></h3><div><p>Trace a form from its label to its hint, error message and recovery action. Compare the experience with a keyboard and with enlarged text.</p><ul><li>Associate labels and help text</li><li>Keep entered values after an error</li><li>Move focus only when it helps recovery</li></ul></div></div><div><h3 data-heading="collapsibles">Resilient reading <span>Discussion circle</span></h3><div><p>Examine document structure before adding interaction. The content in this example remains visible when JavaScript is unavailable.</p><p>Bring a short article and identify its heading hierarchy, reading measure and meaningful links.</p></div></div><div><h3 data-heading="collapsibles">International text <span>Peer review</span></h3><div><p>Review language declarations, long translated labels and mixed-direction text. A font choice alone cannot guarantee a usable multilingual interface.</p><p>All sessions are fictional examples, with no membership or registration service.</p></div></div></div><footer>Native W3C CDN styles and collapsible script, snapshot 3 October 2026. System font fallback; original learning content, no W3C affiliation.</footer></main><script src="vendor/w3c-2026-10-03/main.js"></script><script>document.querySelector('.component--collapsibles').addEventListener('click',()=>{const n=document.querySelectorAll('[data-heading] button[aria-expanded=true]').length;document.querySelector('#notice').textContent=n+' session outline'+(n===1?' is':'s are')+' expanded.'});function all(open){document.querySelectorAll('[data-heading="collapsibles"] button').forEach(b=>{if((b.getAttribute('aria-expanded')==='true')!==open)b.click()});document.querySelector('#notice').textContent=open?'All three session outlines are expanded.':'All session outlines are collapsed.'}document.querySelector('#expand').onclick=()=>all(true);document.querySelector('#collapse').onclick=()=>all(false);</script></html>

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

04

Дизайн-система W3C Настройка агента

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

Фактические пути к официальным ресурсам CDN. В локальном предварительном просмотре используются копии этих ресурсов и сохраняется резервный системный шрифт. В ZIP-архиве с полным рабочим примером, указанном в разделе «Источники», также есть точные зависимости для предварительного просмотра и полный документ. Распакуйте архив, выполните в этой папке команду python3 -m http.server 8080, затем откройте http://localhost:8080/w3c.html. Не открывайте примеры с модулями через file://.

html
<!-- Core is useful without JavaScript. -->
<link rel="stylesheet" href="https://www.w3.org/assets/website-2021/styles/core.css">
<link rel="stylesheet" href="https://www.w3.org/assets/website-2021/styles/advanced.css">
<link rel="stylesheet" href="https://www.w3.org/assets/website-2021/styles/print.css" media="print">
<script>document.documentElement.classList.add('js');</script>
<!-- Put component markup in the document, then load the script once. -->
<script defer src="https://www.w3.org/assets/website-2021/js/main.js"></script>

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

Промпт для AI-агента
Используйте основные и расширенные стили W3C вместе с main.js и маркером расширений html.js. Создавайте семантические заголовки с расположенным рядом сворачиваемым содержимым, используя фактические хуки data-атрибутов. Сохраняйте читаемую версию без JavaScript, нативную адаптивную типографику и семантические цвета ссылок и фокуса. Не выполняйте инициализацию дважды и не делайте вывод о соответствии требованиям WCAG только на основании оформления.
05

Дизайн-система W3C Источники и область действия

Независимый пример OpenDesign на основе официальных общедоступных ресурсов. Принадлежность к W3C и сертификация доступности не подразумеваются.