62 karma · joined February 6, 2015
It small (<2kb minified and compressed) and opts for a CSS selector based API for updating component templates.
Component declarations can be used unchanged on both the client and server (node) to SSR components (using Shadow or Light DOM) and optionally hydrate on the client.
Read a quick overview at https://waferlib.netlify.app/docs/010-overview/030-quick/, or edit a live example at https://waferlib.netlify.app/docs/010-overview/040-example/.
All feedback welcome, thanks!
Technically it's written using Web Components (LitElement based) which I've really enjoyed using.
It makes use of Notification Triggers, an experimental API to schedule local notifications that don't require a network connection. Currently Chrome is the only browser that has an implementation of Notification Triggers.
- No dependencies - a standalone vanilla JS web component
- Lightweight - 5kb gzipped
- Use anywhere - use standalone or directly in your framework of choice with no wrappers
- Progressive enhancement - if the code fails to load, fallbacks to a native picker or a simple text box
- Accessible - works with mouse/touch/keyboard/screen readers and behaves as a native form element
- Locale aware - uses the browser locale language and date format by default
- Themeable - pass in custom colour schemes
- Browser support - works in all modern browsers on all devices (and IE11 - with polyfills)
- Material Design Web Components, https://github.com/material-components/material-components-w...
- Vaadin, https://vaadin.com/components
Built as an offline first, cross browser PWA using LitElement and Firebase in a web worker. 100% Lighthouse score and reliable even on slow/flakey connections.
With regard to the dial rotating rather than the needle, it's an interesting point (no pun intended :) I think each has its own merit for certain applications - probably worth adding an option to choose.