HTML templates literals in JavaScript

Downloads in past


12,2093142.3.03 days ago5 years agoMinified + gzip package size for lit-html in KB


lit-html 2.0
Efficient, Expressive, Extensible HTML templates in JavaScript
Build Status Published on npm Join our Slack Mentioned in Awesome Lit
lit-html is the template system that powers the Lit library for building fast web components. When using lit-html to develop web components, most users should import lit-html via the lit package rather than installing and importing from lit-html directly.

About this release

This is a stable release of lit-html 2.0 (part of the Lit 2.0 release). If upgrading from previous versions of lit-html, please note the minor breaking changes from lit-html 1.0 in the Upgrade Guide.


Full documentation is available at


lit-html lets you write HTML templates in JavaScript with template literals.
lit-html templates are plain JavaScript and combine the familiarity of writing HTML with the power of JavaScript. lit-html takes care of efficiently rendering templates to DOM, including efficiently updating the DOM with new values.
import {html, render} from 'lit-html';

// This is a lit-html template function. It returns a lit-html template.
const helloTemplate = (name) => html`<div>Hello ${name}!</div>`;

// This renders <div>Hello Steve!</div> to the document body
render(helloTemplate('Steve'), document.body);

// This updates to <div>Hello Kevin!</div>, but only updates the ${name} part
render(helloTemplate('Kevin'), document.body);

lit-html provides two main exports:
  • html: A JavaScript template tag used to produce a TemplateResult, which is a container for a template, and the values that should populate the template.
  • render(): A function that renders a TemplateResult to a DOM container, such as an element or shadow root.


$ npm install lit-html

Or use from lit:
$ npm install lit


Please see