The Style Guide branch now owns token reference, templates, and design-system management under Design. This surface is focused on the token layer only.
Focus must not rely on color alone if outline is removed.
live:
disabled
Disabled state for controls and disabled-like surfaces.
Token Deltas
color.semantic.textMuted → button, input
live:
invalid
Invalid/error state for inputs.
Token Deltas
color.semantic.danger → input, textarea, select
Must be conveyed with aria-invalid plus an error message surface.
Do not rely on color alone.
live:
Primitives
Atomic elements. Compile to semantic HTML. All styles source from token hooks.
primitive.text span
Default / as variants / muted
Default text ·
Strong ·
Emphasis ·
Small ·
Mark ·
Muted
primitive.paragraph p
tone: default / muted
The system compiles structured rules into reproducible output. Designers mutate rules. Content managers assemble screens. AI proposes structured changes.
Muted tone: used for supporting copy, metadata, or secondary descriptive text that should recede visually.
primitive.heading h1–h6
level 1–6
Heading Level 1 — 32px bold
Heading Level 2 — 24px bold
Heading Level 3 — 20px bold
Heading Level 4 — 18px bold
Heading Level 5 — 16px semibold
Heading Level 6 — 14px semibold wide
primitive.link a
appearance: inline / standalone / disabled
This sentence contains an inline link that flows with body text.
primitivehtml: div · slot: [any governed]Allowed: space.*, typography.*, color.semantic.*
flow-spaced content container · > * + * gap applies
Post Heading H3
This is the first paragraph of the content body. The cms.contentBody wrapper applies flow spacing between all direct children via margin-top on adjacent siblings.
A second paragraph. All content is sanitized into governed Myron components — no raw HTML injection. The flow gap is controlled by --myron-space-md.
First governed list item
Second governed list item
Third governed list item
A final paragraph after the list, demonstrating that flow spacing continues across all child types.
muted excerpt paragraph · compiles to primitive.paragraph
This is the content excerpt — a short summary of the post or article rendered in muted text. It is used in collection templates, card bodies, and search result snippets to give readers a preview without loading the full content body.
cms.contentFeaturedMedia
primitivehtml: div (aspect-ratio wrapper)Allowed: space.*, radius.*, border.widthPx.*, color.semantic.borderForbidden: shadow.*
aspect: auto · 16:9 · 4:3 · 1:1
aspect-auto
featured image · auto
aspect-16-9
16:9
aspect-4-3
4:3
aspect-1-1
1:1
Patterns
Source: myron.component-surface.patterns.v1.json5 · 9 patterns. Composed from primitives and structure. shadow.* forbidden on all patterns.
behavior: disclosure · CSS-only · +/− chevron via ::after pseudo-element
Frequently asked questions
What is Myron and who is it for?
Myron is a governed design system for modern CMS products. It's built for product teams that need consistent, accessible interfaces without sacrificing developer velocity.
What does "token-enforced" mean?
Every component declares allowed and forbidden token hooks in its spec. CSS only references tokens from the allowed list, preventing style drift and side-channel overrides.
How does the disclosure behavior work?
The FAQ disclosure uses the native HTML <details> and <summary> elements — no JavaScript required. The +/− toggle is rendered via a ::after pseudo-element on summary.
Is this accessible?
Yes. Native <details> is keyboard accessible. Focus ring is provided via focus-visible with Myron focus tokens. Screen readers announce the expanded/collapsed state natively.
3-column grid · items composed from composite.card
What teams are saying
"Myron cut our design debt in half. Token enforcement means even junior devs stay on-brand."
"The MCD process keeps our sprint work aligned with what's actually in scope. No more scope creep."
"We shipped the entire marketing site in 3 days using only Myron patterns. Incredible velocity."
SaaS Pack
Source: myron.component-surface.saas-pack.v1.json5 · 29 components (4 primitives, 13 composites, 8 patterns, 4 templates). Foundational pack — badge, chip, progressBar, pagination, emptyState, alert, and tableToolbar are consumed by all other extension packs. shadow.* forbidden on all.
a11y: role="tablist" on wrapper · role="tab" on each trigger · aria-selected="true/false" · aria-controls → panel id · role="tabpanel" · inactive panels get hidden
a11y: trigger uses aria-expanded + aria-controls · focus must be trapped inside open popover · z-index: --myron-z-overlay (20)
pattern.sidebarNav
patternvertical nav · active state · expandable groupsAllowed: color.semantic.*, typography.*, space.*, radius.*, border.*, motion.*Forbidden: shadow.*
pattern.sidebarNav · grouped · active item · nested sub-items
a11y: aria-current="page" on active item · group labels provide context for screen readers