tooling

Contrast audit

Every contrast-risk surface rendered in all three themes side-by-side. Run npm run audit:contrast to crawl this page with puppeteer, compute WCAG 2.2 contrast ratios for every text/background pair, and fail on regressions. CI gates on AAA (7:1 normal · 4.5:1 large) — see the accessibility page for the full conformance statement.

Light

data-theme="tti"

Default theme — TTI maroon on near-white surface.

H1 · Editorial

H2 · Section title

H3 · Subsection

Body text — Open Sans set at 15px on var(--text-primary). The quick brown fox jumps over the lazy dog. 0123456789.

Secondary text — var(--text-secondary). Muted by 8% for hierarchy without sacrificing readability.

Muted text — var(--text-muted). Lowest stop in the text-color ramp; metadata, captions, eyebrows.

Inline link in TTI navy styled span.

brand-filltext-on-brand · marketing panel
brand-accentdark text · gold accent
brand-primarybrand-text on page
surface-pageprimary text
surface-raisedprimary text
surface-sunkensecondary text
Info alert
Success alert
Warning alert
Danger alert
Tip alert
Compliance alert
publicinternalsensitiverestricted
completedrunningfailedqueued
topic:safetyenv:prodfiles42

card · static

Static card content

Body copy on a card surface. Tests muted and secondary text contrast against the elevated raised surface.

card · linked

Linked card with corner-drop

Hover triggers the maroon corner-drop signature. Active link state flips to brand-primary text on a 3% maroon-tint bg.

plain

Plain tone header

Body copy on the page surface, default tone.

neutral

Neutral tone

Sunken-gray panel.

maroon

Maroon tone

Inverted text on the brand surface — highest-contrast risk.

"Engineering-only treatments rarely hold past 24 months — this one is doing something different."

Dr. Lina Hassan · PI · Roadway Safety

Inline code token rendering, plus a fenced block:

const greet = (name: string) => {
  console.log(`hello ${name}`);
};

Dark

data-theme="tti-dark"

Dark mode — same brand vocabulary, inverted surfaces.

H1 · Editorial

H2 · Section title

H3 · Subsection

Body text — Open Sans set at 15px on var(--text-primary). The quick brown fox jumps over the lazy dog. 0123456789.

Secondary text — var(--text-secondary). Muted by 8% for hierarchy without sacrificing readability.

Muted text — var(--text-muted). Lowest stop in the text-color ramp; metadata, captions, eyebrows.

Inline link in TTI navy styled span.

brand-filltext-on-brand · marketing panel
brand-accentdark text · gold accent
brand-primarybrand-text on page
surface-pageprimary text
surface-raisedprimary text
surface-sunkensecondary text
Info alert
Success alert
Warning alert
Danger alert
Tip alert
Compliance alert
publicinternalsensitiverestricted
completedrunningfailedqueued
topic:safetyenv:prodfiles42

card · static

Static card content

Body copy on a card surface. Tests muted and secondary text contrast against the elevated raised surface.

card · linked

Linked card with corner-drop

Hover triggers the maroon corner-drop signature. Active link state flips to brand-primary text on a 3% maroon-tint bg.

plain

Plain tone header

Body copy on the page surface, default tone.

neutral

Neutral tone

Sunken-gray panel.

maroon

Maroon tone

Inverted text on the brand surface — highest-contrast risk.

"Engineering-only treatments rarely hold past 24 months — this one is doing something different."

Dr. Lina Hassan · PI · Roadway Safety

Inline code token rendering, plus a fenced block:

const greet = (name: string) => {
  console.log(`hello ${name}`);
};

High-contrast

data-theme="tti-hc"

WCAG AAA opt-in — pure black/white + bolder borders.

H1 · Editorial

H2 · Section title

H3 · Subsection

Body text — Open Sans set at 15px on var(--text-primary). The quick brown fox jumps over the lazy dog. 0123456789.

Secondary text — var(--text-secondary). Muted by 8% for hierarchy without sacrificing readability.

Muted text — var(--text-muted). Lowest stop in the text-color ramp; metadata, captions, eyebrows.

Inline link in TTI navy styled span.

brand-filltext-on-brand · marketing panel
brand-accentdark text · gold accent
brand-primarybrand-text on page
surface-pageprimary text
surface-raisedprimary text
surface-sunkensecondary text
Info alert
Success alert
Warning alert
Danger alert
Tip alert
Compliance alert
publicinternalsensitiverestricted
completedrunningfailedqueued
topic:safetyenv:prodfiles42

card · static

Static card content

Body copy on a card surface. Tests muted and secondary text contrast against the elevated raised surface.

card · linked

Linked card with corner-drop

Hover triggers the maroon corner-drop signature. Active link state flips to brand-primary text on a 3% maroon-tint bg.

plain

Plain tone header

Body copy on the page surface, default tone.

neutral

Neutral tone

Sunken-gray panel.

maroon

Maroon tone

Inverted text on the brand surface — highest-contrast risk.

"Engineering-only treatments rarely hold past 24 months — this one is doing something different."

Dr. Lina Hassan · PI · Roadway Safety

Inline code token rendering, plus a fenced block:

const greet = (name: string) => {
  console.log(`hello ${name}`);
};