Редакционное руководство по Protocol с настоящими гарнитурами, шкалами отступов и ширины контейнера, адаптивной иллюстрированной страницей для чтения и полноценным примером формы на нативном CSS.
Нативная версия Mozilla Protocol 22.0.0 CSS и шрифты пакета; оригинальные HTML, иллюстрация и JavaScript. Отправка формы по сети не выполняется. · Справочник по реализации
02
Mozilla Protocol Справочник дизайн-системы
Опубликованный JSON токенов Mozilla Protocol 22.0.0 и нативный CSS. Названия с префиксом доллара — это токены Sass. В оригинальном примере используется типографическая тема Mozilla; элементы управления плотностью текста и круговая иллюстрация — решения приложения.
Редакционная компоновка дизайн-системы Mozilla Protocol
Начните с удобной для чтения редакционной иерархии
Protocol подходит для редакционных и маркетинговых страниц, а также для интерфейсов. Образец начинается с крупного заголовка и оригинальной круглой иллюстрации, а затем переходит к анонсу статьи и форме подписки на дайджест. Такая композиция сначала даёт сообщению пространство, а уже потом предлагает читателю взаимодействовать с элементами управления. Это не плотная административная панель.
Отделяйте тему бренда от идеи приложения
В примере используются mzp-t-mozilla и стандартная типографика Protocol. Статья, иллюстрация и настройка плотности текста — оригинальный контент приложения. Ни стандартные имена классов, ни файлы шрифтов не превращают его в официальный сервис Mozilla. Область применения указана в нижнем колонтитуле, а действие с дайджестом лишь показывает пример подтверждения.
Mozilla Protocol Шрифты и утилиты заголовков дизайн-системы
Выберите типографическую пару для бренда
Protocol 22 предоставляет гарнитуры Mozilla Headline и Mozilla Text для Mozilla, а также Metropolis и Inter для Firefox. В примере загружаются шрифты из пакета. Разделяйте роли заголовков и основного текста: если использовать акцидентный шрифт в каждом абзаце, исчезнет контраст, благодаря которому редакционная иерархия работает.
Не связывайте семантику заголовков с их визуальным размером
Для главного заголовка используется h1 с mzp-u-title-lg. Заголовки разделов оформлены как h2 с mzp-u-title-xs, а заголовок статьи — как h3 с mzp-u-title-2xs. Адаптивные утилиты могут менять визуальный размер, не нарушая структуру заголовков. Настройка плотности текста меняет только пример абзацев, но не масштабирует всю страницу и элементы управления.
h1 обозначает заголовок страницы.
h2 разделяет превью статьи и форму.
h3 обозначает заголовок отрывка статьи.
Mozilla Protocol Цвет и иллюстрация в дизайн-системе
Используйте иллюстрацию как редакционный контент
Круговой градиент — оригинальная иллюстрация CSS с кратким описанием для средств доступности. Переход от тёплого оттенка к фиолетовому не представлен как новый официальный логотип Mozilla или токен Protocol. Остальная часть страницы оформлена сдержанными нейтральными фоновыми слоями, чтобы иллюстрация и основное действие сохраняли заметную роль.
Задайте отдельное значение состоянию формы
Локальная ошибка ввода адреса электронной почты сопровождается пояснением и заметной рамкой поля в состоянии ошибки. Успешный результат отображается в отдельном блоке подтверждения, где указан введённый пример адреса и поясняется, что письмо не отправлялось. Яркий первый экран не должен отвлекать от ошибки или создавать сомнения в том, была ли форма успешно отправлена.
Mozilla Protocol Шкалы компонентов и макета в дизайн-системе
Продуманно используйте обе шкалы отступов
Опубликованные шаги отступов для компонентов: 4, 8, 16, 24, 32 и 48px. Отдельная шкала макета дополняет их значениями 64, 96 и 192px. Используйте меньшую шкалу внутри форм и карточек, а более крупный ритм — между редакционными разделами. Если увеличить каждый небольшой промежуток до значения из шкалы макета, связь между подписью и полем ослабнет.
Ограничьте длину строки, прежде чем добавлять столбцы
Mozilla Protocol Кнопки, раскрывающийся блок и форма в дизайн-системе
Сохраните настоящую структуру формы
В примере с дайджестом используется стандартная форма с видимой подписью, полем электронной почты, пояснением, текстом ошибки и кнопкой отправки. Protocol оформляет компоненты, а приложение проверяет данные и показывает локальный результат. Для действия на первом экране используется ссылка, поскольку она ведёт к разделу этой же страницы; для отправки формы — кнопка.
Для дополнительного пояснения используйте простой раскрывающийся блок
Блок «Что меняется» — это стандартная пара details/summary. В нём поясняется, как заданы пользовательские значения плотности текста «комфортная» и «компактная», без прерывания чтения статьи. Это не имитация вкладки навигации и не скрытое обязательное условие: формой и настройками плотности можно пользоваться независимо от того, раскрыт блок или нет.
Mozilla Protocol Состояния чтения и валидации в дизайн-системе
Меняйте настройки чтения по одной
Две кнопки плотности текста объединены в подписанную группу и используют атрибут aria-pressed. Переключение на компактный режим меняет размер шрифта, высоту строки и нижний отступ только у абзацев статьи. Текст, заголовок и поле формы остаются на месте. В примере эта настройка намеренно отделена от переключения тем брендов Mozilla и Firefox.
Сделайте восстановление после ошибки формы предсказуемым
При вводе неверного адреса появляется ошибка, а фокус перемещается на поле. При редактировании устаревшая ошибка исчезает, а предыдущее подтверждение скрывается. Если адрес корректен, отображается результат, созданный локально, и фокус перемещается на него. Кнопка «Указать другой адрес» очищает форму, снимает состояние ошибки и возвращает фокус в поле; асинхронная подписка не выполняется.
Отправьте пустой или некорректный адрес и прочитайте сообщение об ошибке поля.
Введите пример адреса и посмотрите на локальное подтверждение.
Нажмите «Указать другой адрес», чтобы сбросить форму и вернуть фокус в поле.
Mozilla Protocol Доступные элементы управления редакционной страницы в дизайн-системе
Задайте разные роли иллюстрации и элементам управления
Для иллюстрации используется элемент с ролью изображения и кратким альтернативным текстом. Кнопки плотности, раскрывающийся блок и кнопка отправки — настоящие элементы управления. Поле электронной почты ссылается и на пояснение, и на сообщение об ошибке через aria-describedby. Видимая обводка фокуса дополняет стандартное оформление и помогает пользоваться страницей с клавиатуры.
Сохраните осмысленный порядок при переходе к одноколоночному макету
В документе сначала идут заголовок, превью статьи, пояснение и форма. На мобильных устройствах порядок остаётся таким же: CSS не переносит форму перед контекстом. Иллюстрация размером 180px для мобильных устройств служит редакционным дополнением, а не препятствием фиксированной ширины, из-за которого страница прокручивается по горизонтали.
Mozilla Protocol Интеграция с дизайн-системой CSS
Подключите поставляемые ресурсы к примеру
В предоставленной точке входа импортируются скомпилированная тема, protocol.css и protocol-components.css, а затем таблица стилей приложения. Для Protocol 22 необходимо задать пользовательские свойства темы на :root: одного класса бренда из предыдущей версии недостаточно для корректной типографики. Скомпилируйте protocol-theme.scss перед запуском Vite. Сборщик, поддерживающий модули, обработает URL шрифтов и изображений. Блоки HTML, JavaScript и CSS ниже содержат весь исходный код примера; скрытой серверной части рассылки или специфического для пакета провайдера состояния нет.
Дополняйте форму только при наличии реального сервиса подписки
Mozilla Protocol Примеры компонентов дизайн-системы
index.html — готовая редакционная страница
Семантическая статья, настройки плотности текста, раскрывающийся блок и локальная форма дайджеста с оригинальной иллюстрацией CSS.
html
<!doctype html>
<html lang="en">
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Reading specimen</title></head>
<body>
<main class="reading-example mzp-t-mozilla">
<header class="reading-top">
<strong>MOZILLA PROTOCOL · EDITORIAL SPECIMEN</strong
><span>Original example by OpenDesign</span>
</header>
<section class="reading-hero">
<div>
<h1 class="mzp-u-title-lg">A little more room to read.</h1>
<p>
Make space for useful ideas, quieter pages, and a reading rhythm that
feels like yours.
</p>
<a class="mzp-c-button" href="#reading-controls"
>Explore the reading preview</a
>
</div>
<div
class="orb"
role="img"
aria-label="Original warm-to-purple circular illustration"
></div>
</section>
<div class="reading-main">
<section id="reading-controls">
<h2 class="mzp-u-title-xs">Choose your reading rhythm</h2>
<p>
Compare two application-defined densities using the same short article.
</p>
<div class="density-options" role="group" aria-label="Reading density">
<button
class="mzp-c-button mzp-t-secondary"
data-density="comfortable"
aria-pressed="true"
>
Comfortable</button
><button
class="mzp-c-button mzp-t-secondary"
data-density="compact"
aria-pressed="false"
>
Compact
</button>
</div>
<article id="article-sample">
<h3 class="mzp-u-title-2xs">The open page</h3>
<p>
A useful page gives an idea enough room to breathe. Its headings show
the path, its paragraphs keep a readable measure, and its controls
remain easy to find.
</p>
<p>
Changing density should preserve the story. This preview adjusts
paragraph size and spacing without replacing the article or changing
your place in the task.
</p>
</article>
<details>
<summary>What changes in this example?</summary>
<p>
Comfortable uses 16px text with 1.6 line height. Compact uses 14px
with 1.4. These are example reading preferences, not separate official
Protocol themes.
</p>
</details>
</section>
<aside class="signup">
<h2 class="mzp-u-title-xs">Preview a reading digest</h2>
<p>
Try the form styling and local validation. No subscription is created.
</p>
<form id="reading-form" novalidate>
<label for="email">Email address</label
><input
id="email"
type="email"
autocomplete="email"
aria-describedby="email-note email-error"
/>
<p class="note" id="email-note">
Use an example address. Nothing will be sent.
</p>
<p id="email-error" class="error" role="alert" hidden>
Enter an email address, such as [email protected].
</p>
<button class="mzp-c-button" type="submit">Preview confirmation</button>
</form>
<div id="confirmation" tabindex="-1" role="status" hidden>
Local preview confirmed for <strong></strong>. No email was sent.<button
id="reset"
class="mzp-c-button mzp-t-secondary"
type="button"
>
Try another address
</button>
</div>
</aside>
</div>
<footer class="reading-footer">
Native Mozilla Protocol 22.0.0 CSS and fonts. Original illustration, copy
and JavaScript; not an official Mozilla service.
</footer>
</main>
<script type="module" src="/src/main.js"></script>
</body></html>
В конфигурации Sass выбирается бренд; переключение классов во время работы не используется.
04
Mozilla Protocol Настройка AI-агента для дизайн-системы
Отправная точка для реализации
Стандартные ресурсы из CSS/fonts и оригинальный скрипт включены в локальный пример. Используйте версию Node.js, поддерживаемую вашей версией Vite. Если вы распространяете сборку, сохраните лицензию пакета и атрибуцию ресурсов.
sh
npm create vite@latest protocol-reading -- --template vanilla
cd protocol-reading
npm install
npm install @mozilla-protocol/[email protected]
npm install --save-dev sass
npx sass --load-path=node_modules src/protocol-theme.scss src/protocol-theme.css
# Replace index.html; add src/main.js and src/protocol.css from the full examples.
npm run dev
Запрос для вашего проекта
Промпт для AI-агента
Создайте редакционную страницу с Mozilla Protocol 22.0.0. Сверьтесь с фактическими значениями шрифтов, отступов и ширины контейнера. Возьмите за основу предоставленную композицию HTML/CSS/JS целиком, сохраните семантические заголовки и видимые подписи полей, а оригинальную иллюстрацию и настройки плотности текста отличайте от официальных токенов. Не вводите пользователей в заблуждение насчёт локальной проверки; подключайте настоящий сервис подписки только после того, как определены его требования к сервису и согласию.
05
Mozilla Protocol Источники и область применения дизайн-системы
Руководство по приложению OpenDesign для Mozilla Protocol 22.0.0. В примере используются опубликованная CSS и включённые в комплект шрифты, а текст, иллюстрация и локальная логика формы оригинальные. Это не продукт Mozilla, не рассылка и не сервис подписки; права на бренды и ресурсы принадлежат их владельцам.