4 ms·
When I write HTML/JS, productivity and convenience for me means the ability to easily style and not reinvent: a) Select dropdowns as feature-rich as select2 (s
by fareesh 3y ago
When I write HTML/JS, productivity and convenience for me means the ability to easily style and not reinvent:
a) Select dropdowns as feature-rich as select2 (search, style, custom click handlers, custom appearance in box, multiselect, callbacks)
b) Data Tables as feature-rich as jQuery DataTables (search, sort, paginate, w/ server-side data, callbacks)
c) A high-quality, customizable charting library that's interoperable with the components
d) A slider / carousel / swiper that's as feature-rich as swiper.js
e) A sane and typical component library (ideally from one place like Ant)
I don't build libraries, I want to use them to build applications, and I don't want to spend too much time re-inventing them or making them play nice with each other - i.e. figuring out when one of them is done initializing so that I can trigger the "initialize" of the other and so on.
The solutions thus far range from some compilation hellscape where I have to write everything in a custom dialect, which then gets compiled to HTML/CSS/JS and then I have to debug things cryptically because it's generated code.
The other end of the spectrum is something that's lightweight and uses the platform extensively like htmx or what lit appears to be positioned as.
I've written production applications using Angular, React, Vue, Alpine and it seems like the newer the library, the less likely it is to have an easy way to support the large selection of component libraries you could just throw together and they "just worked" in the days of jQuery + something. As a result, I end up having pages that are still jQuery + something because neither my users nor my customers care about these details, and the tradeoff is minor.
As a developer it sure would be nice to have a dx where you didn't have to reinvent these things or work with ancient libraries.
- spankalee 3y agoLit is there to help you write web components, so if you don't want to write components it's not a big help, and that's ok. The flip side is that you should ideally be able to find pre-made web components that fit your need, like I think you're asking for. There are a lot of components out there, which you can hopefully find with enough diligence. What's missing is a great comprehensive catalog of components. Something I've tried to work on, but it's hard to find enough time or funding to complete.
- fareesh 3y agoAgreed - components typically exist in various states of feature-richness, and invariably you end up finding an almost-perfect one, if you do. They also sometimes sit abandoned and unmaintained. Some catalogs use ratings/votes but they aren't a good heuristic to factor in these two details.
- gondo 3y agoDo you really need jQuery though? Pure JavaScript is viable these days.
- fareesh 3y agoMy needs are usually secondary to the library's dependencies. I'm more than happy writing vanilla JS for my own event handlers and components. I don't mind adding a small library like alpine either to make the click handlers etc easier to write.