gitmyhub

shoelace

TypeScript ★ 14k updated 1mo ago ▣ archived

Shoelace is now Web Awesome. Come see what’s new!

A now-sunset library of accessible, framework-agnostic web component UI elements, buttons, dropdowns, dialogs, and more, that work with React, Vue, Angular, or plain HTML, the successor project is Web Awesome.

TypeScriptWeb ComponentsCSSNode.jsnpmsetup: easycomplexity 2/5

Shoelace was a collection of pre-built user interface components for the web. Components are things like buttons, dropdowns, dialogs, form inputs, and other building blocks that developers commonly need when building websites or apps. The idea behind Shoelace was to provide these pieces as standard web components, a browser-native format that works across different JavaScript frameworks rather than being tied to any one in particular.

Because it used the web components standard, Shoelace could be dropped into projects using React, Vue, Angular, or any other framework, or even into a plain HTML page with no framework at all. Styling was handled through standard CSS, including support for an official dark theme out of the box. The library was also designed with accessibility in mind, meaning the components were built to work with screen readers and keyboard navigation.

Shoelace is no longer actively developed. The project has been sunset by its creators in favor of a successor called Web Awesome, which the same team is now maintaining. The Shoelace code remains available under the MIT open-source license so existing projects using it can continue to do so, but no new features or bug fixes are being developed in this repository. The team asks that issues and contributions be directed to the Web Awesome project instead.

If you are starting a new project and were considering Shoelace, the README recommends looking at Web Awesome, which the authors describe as offering a larger set of components along with themes, utilities, and patterns.

For anyone who needs to run or fork the existing Shoelace codebase for historical or archival reasons, it requires Node.js version 14.17 or newer and uses standard npm commands to install, develop, and build.

Where it fits