An editorial Protocol guide with real font stacks, spacing and container scales, a responsive illustrated reading page, and a complete native-CSS form example.
Native Mozilla Protocol 22.0.0 CSS and package fonts; original HTML, illustration and JavaScript. No network form submission. · Implementation reference
02
Mozilla Protocol Design System Design Reference
Mozilla Protocol 22.0.0 published token JSON and native CSS. Dollar-prefixed names are Sass tokens. The original specimen uses the Mozilla typography theme; its density controls and circular illustration are application choices.
Mozilla Protocol Design System Editorial Composition
Start with a readable editorial hierarchy
Protocol serves editorial and marketing surfaces as well as supporting UI. The specimen opens with one large headline and an original circular illustration, then narrows into an article preview and a digest form. This composition gives the message room before asking the reader to operate controls. It is different from a dense administrative dashboard.
Separate the brand theme from the application idea
The example uses mzp-t-mozilla and native Protocol typography. Its article, illustration and density preference are original application content. Neither the native class names nor the font files make it an official Mozilla service. The footer states the scope, and the digest action only previews a confirmation.
Mozilla Protocol Design System Fonts and Title Utilities
Choose the brand-specific type pair
Protocol 22 exports Mozilla Headline and Mozilla Text stacks for Mozilla, and Metropolis with Inter for Firefox. The specimen loads the fonts supplied by the package. Keep headline and body roles separate: a display face on every paragraph removes the contrast that makes the editorial hierarchy useful.
Keep heading semantics independent of visual size
The hero is an h1 with mzp-u-title-lg. Supporting sections are h2 with mzp-u-title-xs, and the article title is h3 with mzp-u-title-2xs. Responsive utilities can change visual scale without changing that outline. The reading density control changes only the sample paragraphs; it does not resize the entire page or its controls.
h1 introduces the page.
h2 divides the reading preview and form.
h3 names the article excerpt.
Mozilla Protocol Design System Color and Illustration
Use illustration as editorial content
The circular gradient is original CSS artwork with a short accessible description. Its warm-to-purple treatment is not presented as a new official Mozilla logo or a token exported by Protocol. The rest of the page uses restrained neutral surfaces so the illustration and primary action retain a clear role.
Give form state its own meaning
The local email error has a written explanation and a visible invalid border. Success appears in a separate confirmation block that includes the entered example address and states that no email was sent. A colorful hero should not compete with the error state or make it ambiguous whether the form succeeded.
Mozilla Protocol Design System Component and Layout Scales
Use the two spacing scales deliberately
The published component spacing steps are 4, 8, 16, 24, 32 and 48px. A separate layout scale extends through 64, 96 and 192px. Use the smaller scale inside forms and cards, and the larger rhythm between editorial sections. Increasing every small gap to a layout value would dilute the relationship between a label and its field.
Constrain the line length before adding more columns
Mozilla Protocol Design System Buttons, Details and Form
Preserve the real form anatomy
The digest example is a native form with a visible label, email input, explanatory note, error text and submit button. Protocol styles the components; the application validates and reports the local result. A link is used for the hero action because it moves to an on-page section, while submission is a button.
Use a simple disclosure for supporting explanation
The What changes disclosure is a native details/summary pair. It explains the custom comfortable and compact paragraph values without interrupting the main article. This is not a fake navigation tab or a hidden prerequisite; the form and density controls remain usable whether the disclosure is open or closed.
Mozilla Protocol Design System Reading and Validation States
Change one reading preference at a time
The two density buttons form a labeled group and expose aria-pressed. Switching to Compact changes paragraph font size, line-height and bottom spacing in the article only. The text, title and form input stay in place. The example intentionally distinguishes this preference from switching Mozilla and Firefox brand themes.
Make local form recovery predictable
An invalid address reveals the error and focuses the input. Editing clears the stale error and hides any previous confirmation. A valid address displays a locally generated result and focuses that result. Try another address clears the form, removes invalid state and returns focus to the input; no asynchronous subscription is implied.
Submit an empty or malformed address and read the field error.
Enter an example address and preview the local confirmation.
Use Try another address to reset and restore input focus.
Mozilla Protocol Design System Accessible Editorial Controls
Give artwork and controls different roles
The illustration is an image-role element with concise alternative text. Density buttons, the disclosure and the submit action are actual controls. The email field references both its note and error through aria-describedby. A visible focus outline complements the native styling for keyboard use.
Keep the order meaningful when the layout stacks
The document order is headline, reading preview, explanation and form. On mobile, the same order remains; CSS does not move the form ahead of the context. The 180px mobile illustration is decorative editorial support rather than a fixed-width obstruction that makes the page scroll sideways.
Mozilla Protocol Design System CSS Integration
Bundle the published assets with the example
The supplied entry imports a compiled theme, protocol.css and protocol-components.css, then the application stylesheet. Protocol 22 requires the theme custom properties on :root; merely attaching a legacy brand class leaves typography unresolved. Compile protocol-theme.scss before starting Vite. A module-aware bundler follows their font and image URLs. The HTML, JavaScript and CSS blocks below provide the complete source of the specimen; there is no hidden newsletter backend or package-specific state provider.
Extend the form only when a real subscription service exists
Mozilla Protocol Design System Component Examples
index.html — complete editorial page
Semantic article, density controls, disclosure and local digest form with an original CSS illustration.
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>
The Sass configuration selects the brand; this is not a runtime class switch.
04
Mozilla Protocol Design System Agent Setup
Implementation Starting Point
The native CSS/fonts and original script were bundled for the local preview. Use a Node.js version supported by your Vite release. Keep the package license and asset attribution with a redistributed build.
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
A Prompt for Your Project
Agent Prompt
Create an editorial page with Mozilla Protocol 22.0.0. Read the actual font, spacing and container references. Use the supplied complete HTML/CSS/JS composition as a starting point, retain semantic headings and visible form labels, and distinguish original illustration/density choices from official tokens. Keep local validation honest; integrate a real subscription only after its service and consent requirements are defined.
05
Mozilla Protocol Design System Sources and Scope
OpenDesign application guide to Mozilla Protocol 22.0.0. The specimen runs the published CSS and bundled fonts with original copy, illustration and local form behavior. It is not a Mozilla product, newsletter or subscription service; brand and asset rights remain with their respective owners.