GitHub

MathLive

Web components for math input, display, and accessibility.

Maintenance GitHub license

MathLive ships batteries-included UI components that bring TeX-quality math to the web. Drop a mathfield on the page, wire up the events you care about, and MathLive handles rendering, editing, speech, and keyboard UX for you.

  • 800+ built-in LaTeX commands with high-fidelity typesetting
  • Mobile-ready virtual keyboards and physical keyboard shortcuts
  • Export/import as LaTeX, MathML, ASCIIMath, Typst, or MathJSON
  • Screen-reader friendly with math-to-speech and ARIA labels
  • Highly customizable UI, themes, macros, commands, and behaviors

MathLive demo screenshot

Components at a Glance

<math-field> - The flagship math editor. Provides text-area like APIs (value, selection, executeCommand()), emits input and change events, and exposes a full virtual keyboard UI with custom layouts.

<math-span> - Inline, lightweight renderer for static math. Ideal for embedding expressions inside paragraphs without initializing a full mathfield.

<math-div> - Block-level renderer for static math and display equations. Useful for articles, assessments, or anywhere you previously called renderMathInDocument().

Both static components:

  • Accept LaTeX by default and support format="ascii-math" or format="math-json"
  • Expose a mode attribute (textstyle/displaystyle)
  • Lazy-load shared fonts once, defer rendering until visible via Intersection Observer, and auto-generate ARIA labels with speech-friendly text
  • Provide an imperative render() method when you need to update content programmatically
"

Read the original on github.com ↗