lunaDOM is a collection of lightweight, shadowDOM based web components built with JavaScript.
All web components extend the browser's native HTMLElement class.
Installation
Install lunaDOM from GitHub:
Using a Single Component
Import and use a component directly in your HTML:
What's Next?
This is personal project. I'm building a lightweight metaframework right now, and I want native shadowdom web components to be the foundation of it.
There are some goals for this component library:
- All components should be lightweight and fast
- All components should be shadowDOM encapsulated and not affect the global scope
- All components should be fully customizable and overridable with CSS variables
- All components should be easy to use with minimal markup and external configuration
- All components should be be accessible
Will be working on this in phases. There are some bugs. I will be cleaning them up as I go. I will most likely be adding new components to finish the library first, before I do major testing passes on individual components, as this is currently a recreational project and not sponsored.
I haven't done an accessibility pass yet, and I'm planning on adding a lot of the premium components you find in expensive libraries.
All components will be free and open source. Feel free to contribute, report bugs, or steal code for your own projects.
There is no TypeScript support currently.