LEGO: Modern Web-Components
Native Web-Components?
Yes, you write native HTML, CSS and JS and create a native web-components W3C compliant.
It's stable and predictable.
If you have ever played with Web-Component-like frameworks (not to name Vue, React, Svelteโฆ), you may know how debugging gets tricky and requires extra tooling.
Because LEGO is native, your browser developper toobar is all you need.
debugger
works as expected,- step-by-step debugging,
- element inspector,
- the console with the live JS in the contextโฆ
It's all just normal!
What does LEGO actually look like?
/bricks/lean-welcome.html:
<template>
<h1>Welcome to LEGO</h1>
<p>The lean way to make web-components <slot></slot></p>
</template>
Later you can use it anywhere in your HTML:
<lean-welcome>powerful and easy</lean-welcome>
Will read in your HTML:
Welcome to LEGO
The lean way to make web-components powerful and easy
Of course there's so much more you can do. The documentation will guide you ๐
Pretty neat!
Getting Started in 3 minutes
You can just hop in and experiment your first HTML Element.
Follow this Getting Started guide for installing and writing your first component.
Once you're done with it you can write more components the same way and play with daily usage guide for passing advanced arguments, writing conditions and loops, dynamic styling, connecting to APIsโฆ
What Can You Actually Do With It?
You can create a simple reusable web-components for your HTML website or build a full fledge app with it. It's as light as powerful, fully driven by the web-browsers standards.
Various applications are running Lego in production for years now.
Because of the standards and the zero dependency you can rely on it for the long term.
Your site/app will still running and remain editable in 10+ years, and as long as web browsers will exist.
How Does LEGO Work?
LEGO (Lightweight Embedded Gluten-free Objects) is a base class that you extend and provide you with methods to use โป๏ธ reactive and ๐ก native web-components that are easy to digest ๐ฑ for your browser.
A small CLI in NodeJS come along to build ๐ your component. There's no Vite nor other 3rd parties, it's just an interpreter of ยฑ180 lines of readable code.
What is LEGO Behind?
- ๐ Minimalist:
7461 lines of readable code in its core (non-optimised, uncompressed, no cheating) - ๐ฑ Zero dependency: it uses Petit-Dom which is stable and embedded, so no bad suprise in the future
- โป๏ธ Reactive: updating the state recalculate the Virtual Dom when needed
- ๐ fast: using virtual dom through a thin layer makes it close to bare-metal
- ๐ง Simple: that's Vanilla, there isn't much to know, it's a raw class to extend; no magic โจ
- ๐ชถ 3 directives to enhance HTML:
:if
for conditions,:for
for loops,@myfuncname
to call an action - ๐ก Native: LEGO components are actual native web-components, you benefit from all the today's and tomorrow's possibilites (slot, Shadow DOM, โฆ).
Lego is not (and will never be):
- ๐ฏ A full bloated frontend framework with routing. Others do it well.
- ๐ A website builder with SSR or similar complexities.
- ๐ An HTML replacement that locks you into a specific technology.
Next Steps, Demo and Doc
๐งช View the demo and their source.
๐ Read the full documentation at https://lego.js.org
๐ญ Lego is inspired from the native Web-Component spec and Riot.
๐ง Customizing and contributing is just much lighter with simplicity, source that are easy to read, to hack and to maintain.
๐ You can read the core code that is only 61 LOC resulting that Lego is as light as 3Kb for the full bundle!