Awesome Lit
A curated list of awesome Lit resources.
Lit — a simple library
for building fast, lightweight web components.
At its core is a boilerplate-killing component base class that provides
reactive state, scoped styles, and a declarative template system that
leads the pack in size, speed, and expressiveness.
Contents
General resources
Overview
Implementations
Sorted by creation date (oldest first).
-
lit-element -
Simple base class for creating fast, lightweight Web Components.
-
[@gluon/gluon](https://www.npmjs.com/package/@gluon/gluon) - Lightweight library for building Web Components and applications.
-
[@lit-any/core](https://github.com/hypermedia-app/lit-any-core) - Partials library,
which uses lit-html to compose views and forms from smaller templates.
-
lit-html-element
- Base class for creating Web Components using lit-html.
-
fit-html -
Combination of lit-html, Web Components and Redux.
-
lit-html-brackets
- A lit-html extension that uses a bracket syntax similar to Angular’s
template syntax.
-
[@littleq/element-lite](https://www.npmjs.com/package/@littleq/element-lite) - A take on using lit-html and Polymer’s property mixin.
-
[@popeindustries/lit-html-server](https://www.npmjs.com/package/@popeindustries/lit-html-server) - Render lit-html templates on the server as Node.js streams.
-
ullr - Building Web
Components with Functional Programming Using lit-html.
-
ce-decorators
- TypeScript library for building Web Components based on decorators
proposal and lit-html.
-
[@appnest/lit-translate](https://www.npmjs.com/package/@appnest/lit-translate) - Lightweight i18n library providing a lit-html directive.
-
haunted - React’s
Hooks API but for standard web components and hyperHTML or lit-html.
-
fuco - Functional
component like React, but for Web Components.
-
lit-up - Minimal yet
scalable state pattern for reactive web apps with lit-html templates
-
lit-app - Isomorphic
lit-html based context for front-end apps, server-side rendering and
static sites
-
perlite - Declarative
way to create rich client-side widgets designed with server-side apps in
mind.
Renderers
The following libraries allow using lit-html as a renderer, while also
providing alternatives such as
HyperHTML or JSX.
-
[@corpuscule/lit-html-renderer](https://www.npmjs.com/package/@corpuscule/lit-html-renderer) - lit-html based renderer for
Corpuscule.
-
[@helikopter/render-lit-html](https://www.npmjs.com/package/@helikopter/render-lit-html) - lit-html based renderer for
Helicopter.
-
[@moleculejs/molecule-lit](https://www.npmjs.com/package/@moleculejs/molecule-lit) - lit-html based renderer for
Molecule.
-
[@skatejs/element-lit-html](https://www.npmjs.com/package/@skatejs/element-lit-html) - lit-html based renderer for
SkateJS.
-
icomponent-lit
- lit-html based renderer for
icomponent.
LitElement Extensions
These are not implementations of lit-html itself but rather community
extensions of the official LitElement base class.
-
[@adobe/lit-mobx](https://www.npmjs.com/package/@adobe/lit-mobx) - Mixin and base class for using mobx with LitElement.
-
[@apollo-elements/lit-apollo](https://www.npmjs.com/package/@apollo-elements/lit-apollo) - LitElement integrations with Apollo GraphQL.
-
[@collaborne/lit-flexbox-literals](https://www.npmjs.com/package/@collaborne/lit-flexbox-literals) - Provides LitElement CSS literals & classes ported from
[@polymer/iron-flex-layout](https://github.com/PolymerElements/iron-flex-layout).
-
[@morbidick/lit-element-notify](https://www.npmjs.com/package/@morbidick/lit-element-notify) - Small mixin for LitElement to get easy change events via the
properties getter.
-
fluent-localize-mixin
- LitElement extension that provides easy l10n out of the box.
-
haunted-lit-element
- A missing connection between
Haunted and
LitElement.
-
lit-robot -
LitElement integration with Robot.
-
lit-element-state
- Simple shared app state management for LitElement.
-
nextbone - Backbone
re-imagined with ES classes and decorators for using with LitElement.
-
wc-context - A
context implementation for web components with LitElement integration.
-
lit-element-state-decoupler
- Utility for state handling outside of the component for LitElement.
Other
-
[@feature-hub/dom](https://www.npmjs.com/package/@feature-hub/dom) - Library for building a
Feature Hub
integrator using Web Components.
Components
Component Libraries
Individual Components
-
<api-viewer>
- API documentation and live playground for Web Components.
-
<app-datepicker>
- Datepicker element built with LitElement and Material Design 2.
-
<burgton-button>
- Simple to use, customizable and accessible burger-button element.
-
<code-block>
- Web component that displays colorfully formatted code with Prism.js
and LitElement.
-
<codesandbox-button>
- Custom Element that shows a CodeSandbox demo when you click on it.
-
<dile-modal>
- Web Component to implement a modal box, based on LitElement.
-
<erd-editor>
- ERD Editor element database modeling tool built with LitElement
-
<granite-qrcode-generator>
- Custom element to generate and render QR Codes, using qr.js library.
-
<lit-datatable>
- Material Design implementation of a data table, powered by LitElement.
-
<lottie-player>
- Web Component for easily embedding and playing Lottie animations.
-
<model-viewer>
- A web component for rendering interactive 3D models.
-
<rapi-doc>
- Web Component to view OpenAPI 3.0 & Swagger 2.0 Spec.
-
<stl-part-viewer>
- LitElement web component that utilizes Three.js to display an STL
model file.
Starter Templates
-
open-wc-starter-app
- Starter app based on Open Web Components Recommendations.
-
generator-lit-element-next
- Generator for developing your next custom element with latest
LitElement in TypeScript.
-
pwa-starter -
LitElement edition of the PWABuilder pwa-starter.
-
[@rxdi/starter-client-lit-html](https://github.com/rxdi/starter-client-side-lit-html) - Client side
application build with
@rxdi
, lit-html, GraphQL, dependency
injection.
IDE Plugins
TypeScript Plugins
-
ts-lit-plugin
- Plugin that adds type checking and code completion for lit-html. Used
by
vscode-lit-plugin
.
-
typescript-lit-html-plugin
- TypeScript server plugin that adds IntelliSense for lit-html. Used by
vscode-lit-html
.
CDN
The following content delivery networks provide ES module versions of
lit-html and LitElement:
Note on using CDN
-
lit-html directives
might not work
with LitElement when using Pika CDN.
-
See
this issue
where the static build for CDN distribution is discussed.
Static Site Generators
-
Greenwood -
Modern and performant static site generator supporting Web Components
based development.
-
Hydrogen -
Static-site generator built with TypeScript, which uses templating
inspired by lit-html.
Examples
Videos
Podcasts
Blogs
-
A gentle introduction to lit-html
-
lit-html templates from zero to hero
-
lit-html Part 1 - A solution for DOM management in web components
-
lit-html Part 2 - Working with attributes and properties
-
Getting started with LitElement and TypeScript
-
Routing Management with LitElement and TypeScript
-
Navigation Lifecycle using Vaadin Router, LitElement and
TypeScript
-
Recreating The Arduino Pushbutton Using SVG And
<lit-element>
-
Building a chat with Twilio, lit-html, Parcel and TypeScript
-
Making a fullstack CRUD app with LitHTML, Redux, Express, and
Webpack
-
The future of Polymer & lit-html
-
A night experimenting with Lit-HTML
-
LitElement To Do App
-
A new, lean way of creating web apps
-
LitElement with Rollup, Babel & Karma
-
Let’s Build Web Components! Part 5: LitElement
-
Render HTML with Vanilla JavaScript and lit-html
-
Updating blog-pwa from Polymer to LitElement, Workbox, and Rollup
-
Here’s a minimalist no-frills Redux Toolkit & LitElement
example
Projects
Name |
URL |
Source |
Create Social Images |
https://createsocialimages.com |
Source
|
DevWeb Content Firehose |
https://devwebfeed.appspot.com |
Source
|
rx-metronome |
https://rx-metronome.web.app |
Source
|
Scandisk |
https://manzdev.github.io/scandisk-2.0/ |
Source
|
Web Skills |
https://andreasbm.github.io/web-skills/ |
Source
|
Inspired Solutions
These libraries do not depend on lit-html, but are inspired by some of its
concepts. They use html
tagged template literal, and leverage
the benefits of the same IDE Plugins for syntax
highlighting.
-
htm - Hyperscript Tagged
Markup: JSX alternative using standard tagged templates, with compiler
support.
-
hybrids - UI library
for creating Web Components with simple and functional API.
-
lit-ntml - Lightweight
and modern templating for SSR in Node.js, inspired by lit-html.
-
lite-html - A modern
replacement for VirtualDOM rendering engines.
-
modulor-html -
Missing template engine for Web Components.
-
nanohtml - HTML
template strings for the browser with support for Server Side Rendering
in Node.
-
picohtml -
Powerfully ~2kB (gzip) HTML template strings.
-
tiny-lit - Library
for building user interfaces using template literals.
Other awesome resources
If you want more awesome resources, check the
awesome
list!
License